File Transfer Implementation - GSOC Project 2013

Ashish Gupta ashmew2 at
Thu Jun 13 15:09:06 EDT 2013


I setup wireshark on my machine and used it to capture packets when "Send a
File.." was selected from Pidgin as well as the official Yahoo! Messenger.
Both the packets differed greatly in length. I've been looking at the yahoo
protocol for some time now, and trying to figure out where exactly in the
code is the packet prepared and sent. I'm sure that is inside
yahoo_fillexfer.*, but where exactly is what I've been after. Since the
packet sent by pidgin is only 235 bytes as opposed to yahoo's more than
thousand bytes packet, what should I be adding ? I'd be grateful if I could
get some hints on what exactly should I populate it once I figure out how
the send-request-packet is put together.

Also, what is the significance of the "sssiiiisiii" string sequence that is
hashed in yahoo_xfer_init_15(PurpleXfer *xfer) in yahoo_filexfer.c ?

As a side note, is it okay if I am devoting all this while to tackling the
yahoo side of the GSoC project and not the other two parts (Google Talk
File Transfer and Protocol Independent File Transfer) ? Maybe I can just
look at those two when I'm done with fixing the Yahoo Transfer.

I've tried to set up gdb along side pidgin, But I guess it's not possible
to make it into a line by line debugger where I can actually look at the
code being executed whenever a file transfer is initiated (or maybe it is?).

Is there a more standard and useful way of debugging the code and knowing
in the code base how things move around (except for the -d switch for
pidgin) ?

Thanks a lot!


On Tue, Jun 11, 2013 at 6:58 PM, Sulabh Mahajan < at>wrote:

> I will suggest you to look at the yahoo prpl tickets that are file
> transfer related. You will get a fairly good idea of what doesn't work from
> there.
> At the bare minimum the following should work:
> pidgin to pidgin
> pidgin to y! msngr
> y! msngr to pidgin
> Most likely you will NOT need to rewrite the whole thing. Usually the
> protocol keeps changing little by little and breaks file transfers every
> few months. Not much hacking is required to fix it back.
> Said that I haven't looked at the ymsg protocol for quite some time
> and don't know exactly what has changed.
> You will need to reverse engineer file transfers between yahoo messengers
> and see exactly where is our implementation varying from the protocol.
> You will need the following:
> 1. wireshark or any other capable packet sniffer
> 2. windows machine with yahoo messenger
> 3. linux with pidgin
> 4. knowledge on using gdb and valgrind.
> Let me know what else you need to start fixing yahoo transfers.
> Ping me in case you see me online and need help.
> I will take a look today and see if I can list down major things that
> don't work.
> Regards,
> Sulabh Mahajan
> On Sun, Jun 9, 2013 at 2:47 PM, Ashish Gupta <ashmew2 at> wrote:
>> Hello Sulabh,
>> I have been going through the Yahoo prpl for a bit now,
>> Do you have a list of issues as to what does not work in the code? Any
>> specific modules I could look at, Or would i need to rewrite the whole
>> thing from scratch ? I'm putting in various debug messages in the
>> yahoo_filexfer.c right now and trying to understand the program flow.
>> Thanks,
>> Ashish
>> On Wed, May 29, 2013 at 2:17 PM, Ashish Gupta <ashmew2 at> wrote:
>>> Hi Sulab,
>>> I have made the proposal public now and it can be viewed at the link :
>>> I have an exam scheduled on 31st May and i will begin work after that.
>>>  I will surely contact you via this thread as soon as i am starting work
>>> with the Y! FT.
>>> Thanks.
>>>  On Wed, May 29, 2013 at 12:09 PM, Sulabh Mahajan < at>wrote:
>>>> Hi Ashish,
>>>> Congrats for getting accepted for GSoC. I haven't read your proposal
>>>> yet, looks like the link accessible to mentors only. I should be able to
>>>> help you with the Y! file transfers.
>>>> Let me know when you get started and need any kind of help.
>>>> Regards,
>>>> Sulabh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Devel mailing list