[Gossip-dev] File transfers
Martyn Russell
martyn at imendio.com
Sun Apr 1 12:55:02 CEST 2007
Dimitur Kirov wrote:
Hi Dimitur, thanks for the work on this! and sorry for the late reply.
> The initial work on filetransfers for gossip is attached in gnome
> bugzilla. There are some things that I want do discuss before going on.
Woohoo, I have yet to take a look, but I will do as soon as possible.
> LmBsSession is the public class. It is designed to keep track of all
> transfers among all accounts. Currently libgossip creates one instance
> of this class per account. I suggest to change this and put LmBsSession
> instance in gossip-session, so that we have one LmBsSession per program.
That makes sense to me too yes.
> LmBsClient class is used for all socket io actions. In the future it
> will be replaced by lm-socket.c , because they overlap in
> functionality. This will require extending the lm-socket class with
> some functionality for synchronous communication:
> - callback for data_written event
> - ability to add and remove socket watches for reading
Hmm, are you just extending the synchronous functionality here and also
have asynchronous functionality available?
> Function "lm_bs_transfer_send_success_reply" from lb-bs-transfer.c
> sends a streamhost activation reply. It could be better suited in
> libgossip, instead of loudmouth, but at the same time this will make
> LmBsSession more complicated.
I will take a look at the patch shortly and get back to you on this.
> xep 0096 requires that clients with FT support should advertise their
> FT profile as a result of disco info request. I added the following
> features and I'm not sure if they cover everything that gossip has:
> <feature var="http://jabber.org/protocol/disco#info"></feature>
> <feature var="http://jabber.org/protocol/si"></feature>
> <feature
> var="http://jabber.org/protocol/si/profile/file-transfer"></feature>
> <feature var="http://jabber.org/protocol/bytestreams"></feature>
> <feature var="http://jabber.org/protocol/muc"></feature>
Yes, we should be able to do that with little trouble. We have
protocols/jabber/gossip-disco.[ch] to handle that sort of thing, I am
not sure of the state I left it in :) it might need some work.
> Currently file transfer session ids are generated with a simple
> incremental rule GOSSIPSID1,GOSSIPSID2 .. etc. This is not good from
> security point of view, because every internet user will be able to
> steal a file if he knows that certain user runs gossip.
OK. Actually Micke, isn't this something you changed in Loudmouth? So
the message IDs are now a generated number?
> Proxy support helps users behind masqueraded networks to send files.
> However it is a bad practice to hardcode a predefined set of proxies
> and at the same time users should not be bothered to enter FT proxy in
> gossip settings. Do you think it is worth to implement proxy support
> now, or better leave it for later versions ?
Hmm, I think perhaps it is better to implement that later so we have
something working.
> File request dialog (ui/file_transfer.glade) looks old-fashioned. IMO
> it will be better to have this request notification in chat windows,
> similar to muc invitations.
That's a good idea, less dialogs, etc.
> Finally, we can enable the xep-0047 support with a simple rule like:
> if file is <= 20Kb and the sender supports ibb, prefer ibb over
> bytestreams. It is not appropriate to use this method for large files,
> because user will be banned from server, due to high traffic.
Yes, this makes sense.
--
Regards,
Martyn
More information about the Gossip-dev
mailing list