[standards-jig] JEP-0105 question

Ryan Eatmon reatmon at jabber.org
Tue Jan 27 00:45:18 UTC 2004


The rational of doing it that way was to piggy back off of 
file-transfer.  If you notice this is just sort of a pre file transfer 
negotiation.  The next step is to do a file transfer for each file. 
That's why each one is marked with a separate id and the only way to do 
this without having renegotiate the transfer options for all of the 
files is to track the id of the corresponding transfers.

Now you have to track two things:

1) Transfer options.  You negotiate these at the tree level and remember 
them for each file.

2) File options (path, name, size, etc...).  This is tracked by the 
unique id for each file and it was the clients would use to track which 
file is which on the corresponding file transfers.

Yes it is being worked.  I'm waiting for the proxy65 to be updated to 
use the latest twisted.  Once that happens I'll keep working on my 
implementation and trying to work out small details like this.


Krzysztof Szyntar wrote:
> I've just read JEP-0105 (Tree Transfer Stream Initiation Profile)
> and one detail seems strange to me:
> 
> "Sender" first sends tree-transfer stream initiation IQ, marking it
> with a stream id, then for each subsequent file transfer uses "sid"
> attribute of the file as the id.
> 
> IMHO, it would be more convenient to preserve the original id of the
> stream. In this way it's much easier to keep track of many streams.
> (I guess it is teoretically possible to have many streams active
> simultainously)
> 
> So instead of:
> 
> <iq type='set' id='offer1' to='receiver at jabber.org/resource'>
>   <si 
>     xmlns='http://jabber.org/protocol/si' 
>     id='*stream_id_1*'
>     profile='http://jabber.org/protocol/si/profile/tree-transfer'>
>     <tree ..>
>     ..
>     <file sid='*ft1*'
>           .../>
>     </tree>
>   </si>
> </iq>
> 
> and:
> <iq type='set' id='offer2' to='receiver at jabber.org/resource'>
>   <si xmlns='http://jabber.org/protocol/si' 
>       id='*ft1*'
>       profile='http://jabber.org/protocol/si/profile/file-transfer'>
>     <file xmlns='http://jabber.org/protocol/si/profile/file-transfer'
>           ../>
>   </si>
> </iq>
> 
> I'd rather send:
> <iq type='set' id='offer1' to='receiver at jabber.org/resource'>
>   <si 
>     xmlns='http://jabber.org/protocol/si' 
>     id='*stream_id_1*'
>     profile='http://jabber.org/protocol/si/profile/tree-transfer'>
>     <tree ..>
>     ..
>     <file id='*ft1*'
>           .../>
>     </tree>
>   </si>
> </iq>
> 
> and:
> <iq type='set' id='offer2' to='receiver at jabber.org/resource'>
>   <si xmlns='http://jabber.org/protocol/si' 
>       id='*stream_id_1*'
>       profile='http://jabber.org/protocol/si/profile/file-transfer'>
>     <file id='*ft1*'
>          xmlns='http://jabber.org/protocol/si/profile/file-transfer'
>           ../>
>   </si>
> </iq>
> 
> thus preserving the stream id and repeating the id attribute of a
> file.
> 
> It may appear as a trifle detail, but when I thought about the
> possible implementation of the JEP, things are much easier and "clean"
> this way. Was there any rationale behind the use of ids proposed in the
> current edition of the JEP?
> 
> One more question - is anyone working on this JEP now? Is it expected
> to become "Draft" soon?
>   
> 

-- 
Ryan Eatmon
reatmon at jabber.org




More information about the Standards mailing list