#12213 closed defect (fixed)
Yahoo filetransfer randomly never start with message "Waiting for transfer to begin" (on pidgin filetransfer gui) and "Receiving 1 file from xxx" (on yahoo messenger)
| Reported by: | john13 | Owned by: | sulabh.dev |
|---|---|---|---|
| Milestone: | 2.7.3 | Component: | Yahoo!/Yahoo! JAPAN |
| Version: | 2.7.1 | Keywords: | filetransfer |
| Cc: |
Description
Hi,
First note that transfers from Yahoo (tested with 8.1, 9 and last 10) to Pidgin always work fine.
When trying to send file from Pidgin to Yahoo clients (tested with same versions) sometimes fails and sometimes works. More failures than successes.
When fails : The message "Waiting for transfer to begin" is displayed on Pidgin. And after accepted on Yahoo client, "Receiving 1 file from xxx" is displayed but file never comes to yahoo client.
Log only displays that and nothing still no action :
(23:56:21) xfer: request accepted for 041484F0 (23:56:25) yahoo: 73 bytes to read, rxlen is 93 (23:56:25) yahoo: Yahoo Service: 0xdc Status: 1 (23:56:25) dnsquery: Performing DNS lookup for relay.msg.yahoo.com (23:56:25) dnsquery: IP resolved for relay.msg.yahoo.com
Nota : only one IP (lan) and 1 IP (WAN) are used and correctly found at startup.
I've compiled the progam under Cygwin and extended the error log to remark that when it fails IP is a negative long value at line
actaddr = addr->sin_addr.s_addr;
(from method :
static void yahoo_xfer_dns_connected_15(GSList *hosts, gpointer data, const char *error_message)from file "yahoo_filexfer.c")
EXAMPLE OF SUCCESS:
(23:08:50) MWK: Entering : yahoo_xfer_dns_connected_15 - 4 addr= 0 (23:08:50) MWK: Entering : yahoo_xfer_dns_connected_15 - 4bis addr=56835744, actaddr=728795234 (23:08:50) MWK: Entering : yahoo_xfer_dns_connected_15 - 4ter d=98, c=136, b=112, a=43 (23:08:50) MWK: Entering : yahoo_xfer_dns_connected_15 - 5 , url 98.136.112.43
EXAMPLE 1 OF FAILURE:
(23:08:47) MWK: Entering : yahoo_xfer_dns_connected_15 - 4 addr= 0 (23:08:47) MWK: Entering : yahoo_xfer_dns_connected_15 - 4bis addr=57040008, actaddr=-1653503902 (23:08:47) MWK: Entering : yahoo_xfer_dns_connected_15 - 4ter d=-158, c=-119, b=-142, a=-98 (23:08:47) MWK: Entering : yahoo_xfer_dns_connected_15 - 5 , url -158.-119.-142.-98
EXAMPLE 2 OF FAILURE:
(23:25:08) MWK: Entering : yahoo_xfer_dns_connected_15 - 4 addr= 0 (23:25:08) MWK: Entering : yahoo_xfer_dns_connected_15 - 4bis addr=56121952, actaddr=-1687058334 (23:25:08) MWK: Entering : yahoo_xfer_dns_connected_15 - 4ter d=-158, c=-119, b=-142, a=-100 (23:25:08) MWK: Entering : yahoo_xfer_dns_connected_15 - 5 , url -158.-119.-142.-100
so the code
url = g_strdup_printf("%ld.%ld.%ld.%ld", d, c, b, a);
contains something wrong (negative ints) to allow correct transfert.
Thanks you for solving it (don't know exactly how sockaddr_in works...).
Change History (3)
comment:1 Changed 8 years ago by QuLogic
comment:2 Changed 8 years ago by qulogic@…
- Milestone set to 2.7.2
- Resolution set to fixed
- Status changed from new to closed
(In da989b76dd8d021004b552840e9ad62dfe970bd9):
Fix Yahoo file transfers that get stuck saying \"Waiting for transfer to
begin\". The IP address and its parts should be unsigned. Also, this math
was a bit too complicated. Integer division means we don't need to care
about the fractional part.
Fixes #12213.
comment:3 Changed 7 years ago by MarkDoliner
- Milestone changed from 2.7.2 to 2.7.3
This change will actually go out in 2.7.3.




Ticket #11695 has been marked as a duplicate of this ticket.