[Gossip-dev] File transfers

Martyn Russell martyn at imendio.com
Wed Apr 4 20:21:51 CEST 2007


Dimitur Kirov wrote:
> The initial work on filetransfers for gossip is attached in gnome
> bugzilla. There are some things that I want do discuss before going on.
> 
> 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.
> 
> 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
> 
> 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. 
> 
> 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>
> 
> 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.
> 
> 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 ?
> 
> 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. 
> 
> 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.

I have just tried out the patches and it works very nicely indeed.
Micke, I have commented on the bug, any chance we can get this new API
into Loudmouth?

-- 
Regards,
Martyn


More information about the Gossip-dev mailing list