Problem Uploading To Shareaza In 0.44
#1
Posted 29 November 2004 - 09:48 PM
Shareaza Thread
#2
Posted 29 November 2004 - 11:19 PM
This is at least how aMule and xMule did it so far (Other ports as well I guess).
This post has been edited by Andu: 29 November 2004 - 11:20 PM
Seven for the Dwarf-lords in their halls of stone,
Nine for Mortal Men doomed to die,
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them
In the Land of Mordor where the Shadows lie.
Dark Lord of the Forum
Morph your Mule
Need a little help with your MorphXT? Click here
#3
Posted 30 November 2004 - 03:14 PM
#4
Posted 30 November 2004 - 05:29 PM
http://forums.sharea...=&postid=193931
--> this above is an attachment to a post. It is a zip of two file captures, one with Shareaza uploading to emule, one of Shareaza trying to download from emule (which is the more interesting one), and having emule drop the connection. Likely it dropped shareaza because of something Shareaza sent, or didn't send but that emule was expecting. If anyone here is familiar with emule's protocol and code, it ought not be difficult for them to quickly ID the problem.
#5
Posted 30 November 2004 - 05:55 PM
niRRity, on Nov 30 2004, 04:14 PM, said:
Do you think after a port like from eMule to aMule that the code looks much alike? Especially since none of the MFC libraries can be used?
The only thing that should be different between aMule and Shareaza is that aMule tried to copy the eMule implementation 1:1 while Mike had to reverse engineer the protocol and probably missed alot in the process.
If the Shareaza dev team really wants to get rid of this problem once and for all they have to read the eMule code in order to know how the protocol itself works. And then revise their own implementation of it. Otherwise you might end up with a working version for now but find the next problem with the next developments in the main ed2k clients.
Seven for the Dwarf-lords in their halls of stone,
Nine for Mortal Men doomed to die,
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them
In the Land of Mordor where the Shadows lie.
Dark Lord of the Forum
Morph your Mule
Need a little help with your MorphXT? Click here
#6
Posted 30 November 2004 - 07:01 PM
Shareaza sets the 'Extended Protocol' tag to 1. Which means that in extent to the file hash, part count and part map has to be sent which is not done.
Check the following link under section 4.2
eDonkey2000 Protocol
- Compiled for 32 and 64 bit Windows versions
- Optimized for fast (100Mbit/s) Internet connections
- Faster file completion via Dynamic Block Requests and dropping of stalling sources
- Faster searching via KAD with equal or reduced overhead
- Less GUI lockups through multi-threaded disk IO operations
- VIP "Payback" queue
- Fakealyzer (helps you chosing the right files)
- Quality Of Service to keep eMule from disturbing VoIP and other important applications (Vista/7/8 only!)
#7
Posted 30 November 2004 - 07:51 PM
netfinity, on Nov 30 2004, 08:01 PM, said:
[OT]Thanks for that link. That's really a helpful documentation[/OT]
cya Skyw4lker
#8
Posted 30 November 2004 - 08:36 PM
Seven for the Dwarf-lords in their halls of stone,
Nine for Mortal Men doomed to die,
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them
In the Land of Mordor where the Shadows lie.
Dark Lord of the Forum
Morph your Mule
Need a little help with your MorphXT? Click here
#9
Posted 30 November 2004 - 10:01 PM
I guess what most concerns shareaza is the note in section 4.2 on that hydranode.com page.
Quote
OP_REQFILE = 0x58, //!< <hash>hash
Note:
eMule ExtReqV1 adds <u16>count<count>bitarray partmap
eMule ExtReqV2 adds <u16>completesources
I'm still a bit fuzzy about what is wrong, and I don't understand the protocol very well. Shareaza doesn't appear to be using the emule extensions in its file request. Is it required since it says in the handshake just before that it supports emule extensions? If Shareaza added this bitarray partmap and complete sources, what protocol is the form of the packet? (I guess the answer to that is easy to find out I'll just run emule and look ).
This post has been edited by crf: 30 November 2004 - 10:03 PM
#10
Posted 30 November 2004 - 10:01 PM
#11
Posted 30 November 2004 - 10:35 PM
crf, on Dec 1 2004, 12:01 AM, said:
crf, on Dec 1 2004, 12:01 AM, said:
crf, on Dec 1 2004, 12:01 AM, said:
There is a reason to send what parts you have to the uploading client and that is to help it trim the list of sources sent to you by the source request, so it only contains those you need.
- Compiled for 32 and 64 bit Windows versions
- Optimized for fast (100Mbit/s) Internet connections
- Faster file completion via Dynamic Block Requests and dropping of stalling sources
- Faster searching via KAD with equal or reduced overhead
- Less GUI lockups through multi-threaded disk IO operations
- VIP "Payback" queue
- Fakealyzer (helps you chosing the right files)
- Quality Of Service to keep eMule from disturbing VoIP and other important applications (Vista/7/8 only!)
#12
Posted 01 December 2004 - 02:11 AM
QWORD nParts = ( pDownload->m_nSize + ED2K_PART_SIZE - 1 ) / ED2K_PART_SIZE; pPacket->WriteShortLE( (WORD)nParts ); if ( pDownload->m_pHashsetBlock != NULL && pDownload->m_nHashsetBlock == nParts ) { for ( QWORD nPart = 0; nPart < nParts; ) { BYTE nByte = 0; for ( DWORD nBit = 0; nBit < 8 && nPart < nParts; nBit++, nPart++ ) { if ( pDownload->m_pHashsetBlock[ nPart ] == TS_TRUE ) { nByte |= ( 1 << nBit ); } } pPacket->WriteByte( nByte ); } } else { for ( QWORD nPart = 0; nPart < nParts; ) { BYTE nByte = 0; for ( DWORD nBit = 0; nBit < 8 && nPart < nParts; nBit++, nPart++ ) { QWORD nOffset = nPart * ED2K_PART_SIZE; QWORD nLength = min( ED2K_PART_SIZE, pDownload->m_nSize - nOffset ); if ( pDownload->IsRangeUseful( nOffset, nLength ) == FALSE ) { nByte |= ( 1 << nBit ); } } pPacket->WriteByte( nByte ); } }
It does not include (or advertise support for) the complete source count, since it would be difficult to calculate a meaningful value when it is not possible to determine which parts some clients have. (HTTP sources, etc)
#13
Posted 01 December 2004 - 09:54 AM
I can't find anything wrong with the code. It should send those part maps, but it aint happening. The only explanation would be if m_bEmRequest accidentally gets resetted somewhere.
- Compiled for 32 and 64 bit Windows versions
- Optimized for fast (100Mbit/s) Internet connections
- Faster file completion via Dynamic Block Requests and dropping of stalling sources
- Faster searching via KAD with equal or reduced overhead
- Less GUI lockups through multi-threaded disk IO operations
- VIP "Payback" queue
- Fakealyzer (helps you chosing the right files)
- Quality Of Service to keep eMule from disturbing VoIP and other important applications (Vista/7/8 only!)
#14
Posted 01 December 2004 - 04:24 PM
#15
Posted 01 December 2004 - 07:47 PM
The capture I took defnitely shows that shareaza wasn't sending those things.
But at least it ought to be, so the problem is less large than it could be.
This post has been edited by crf: 01 December 2004 - 07:48 PM
#16
Posted 02 December 2004 - 12:38 AM
Click for picture
-edit-
Some interesting server stuff in that ed2k summary, though. No use for the current problem, but I think I'll take a closer look at what improvements can be made this weekend...
This post has been edited by MogTheCat: 02 December 2004 - 01:57 AM
#17
Posted 02 December 2004 - 10:12 AM
#18
Posted 02 December 2004 - 10:25 AM
Seven for the Dwarf-lords in their halls of stone,
Nine for Mortal Men doomed to die,
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them
In the Land of Mordor where the Shadows lie.
Dark Lord of the Forum
Morph your Mule
Need a little help with your MorphXT? Click here
#19
Posted 02 December 2004 - 12:25 PM
#20
Posted 02 December 2004 - 01:08 PM
02.12.2004 14:11:36: Added source to bad source list (Global) - file ??? : x.x.x.x 'Geminitm (shareaza.com)' (Shareaza v0.28,Error/None)
That seems to be the most common problem I could find. Applies to both Shareaza 0.28 and 0.30.
The german part just says that the packet was corrupt or faulty.
Seven for the Dwarf-lords in their halls of stone,
Nine for Mortal Men doomed to die,
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them
In the Land of Mordor where the Shadows lie.
Dark Lord of the Forum
Morph your Mule
Need a little help with your MorphXT? Click here