Hello Scott.
I tested initial handshake with Gnutella.
Correct initial handshake message is
"ECHOFREE CONNECT/0.4\n\n".
After sending that message to Gnutella,
TestGnuSock app receives next message from Gnutella
"ECHOFREE OK\n\n".
All above looks like correct exchanging of messages.
I have added TestGnuSock to the CVS server.
- Igor

----- Original Message -----
From: "Scott C. Best" <[EMAIL PROTECTED]>
To: "Igor Kotelevsky" <[EMAIL PROTECTED]>
Cc: "Kaboodle-devel" <[EMAIL PROTECTED]>
Sent: Friday, June 28, 2002 8:34 PM
Subject: Re: Some news about Gnutella bug


> Igor:
> The Gnutella server on 66.123.20.59 is running on port
> 4183, but it is expecting a different initial handshake than is
> the default with Gnutella. I don't think it's "GNUTELLA CONNECT",
> but it may be "ECHOFREE CONNECT". The source code (GnuSock.cpp)
> says "KABOODLE CONNECT", but I don't think that's what the
> server is using. The very old source code uses "ECHOFREE CONNECT",
> and I'm 99-percent sure I didn't change the Gnutella server on
> 66.123.20.59 to expect anything else.
>
> We did this so that our Gnutella server wouldn't be
> overwhelmed with Gnutella connections from other applications.
> Please try both with your test app, see if one of them works.
>
> -Scott
>
> On Fri, 28 Jun 2002, Igor Kotelevsky wrote:
>
> > Hello Scott.
> > You asked me:
> > > ...Please let
> > > me ask a basic question: why do we CGnuControl::RemoveNode()
> > > after we Connect?
> > Kaboodle removes the socket after *connect*
> > because the socket is closed after that *connect*.
> >
> > Yesterday I wrote:
> > > > I can expect 2 things.
> > > > First. Gnutella protocol changed.
> > > > Second. Other Kaboodle sockets disturb to work Gnutella socket.
> > Today I wrote little test application - see attachment TestGnuSock.zip.
> > TestGnuSock does exactly same steps of connection with Gnutella as
Kaboodle.
> > Additional sockets are absent in TestGnuSock.
> > TestGnuSock make following:
> > 1 - it creates socket connection with host 66.123.20.59
> > (Gnutella.GetEngaged.Net)
> > on the port number 4183 (please push the button "Connect to Gnutella");
> > 2 - it sends special message "GNUTELLA CONNECT/0.4\n\n" via that socket;
> > After #2 that socket has closed.
> > This looks similar as _other side_ of connection (66.123.20.59) _close_
> > socket after receiving above data "GNUTELLA CONNECT/0.4\n\n".
> >
> > It seems to me that my yesterday
> > > > Second. Other Kaboodle sockets disturb to work Gnutella socket.
> > is not valid.
> >
> > Today I can expect following.
> > First. Gnutella protocol changed.
> > Second. There is not server on the host
> > Gnutella.GetEngaged.Net, port number 4183,
> > which works with above protocol.
> >
> > - Igor
> >
> >
> > ----- Original Message -----
> > From: "Scott C. Best" <[EMAIL PROTECTED]>
> > To: "Igor Kotelevsky" <[EMAIL PROTECTED]>
> > Cc: "Kaboodle-devel" <[EMAIL PROTECTED]>
> > Sent: Friday, June 28, 2002 7:44 AM
> > Subject: Re: Some news about Gnutella bug
> >
> >
> > > Igor:
> > > Sounds like good progress on this bug. Please let
> > > me ask a basic question: why do we CGnuControl::RemoveNode()
> > > after we Connect? I would expect that we instead *keep* the
> > > Gnutella nodes, not Remove them.
> > >
> > > -Scott
> > >
> > > On Thu, 27 Jun 2002, Igor Kotelevsky wrote:
> > >
> > > > Hello Scott.
> > > > Today I found some news about Gnutella bug.
> > > >
> > > > Kaboodle always connect to Gnutella at startup.
> > > > That connection installs as follows:
> > > > 1 - Kaboodle creates a socket object CGnuControl
> > > > (MFC socket CAsyncSocket) in listen mode
> > > > (see the function BOOL CVPNManager::StartConnection( CGUID&
KaboodleID )
> > > > and it next callings);
> > > > 2 - Kaboodle calls the function
> > > > bool ConnectToPeer(char *szPeerAddress="66.123.20.59", char
> > > > *szPort="4183" );
> > > > 3 - Kaboodle saves that socket object
> > > > (see the function
> > > > BOOL CGnuControl::AddNode(CString Host="66.123.20.59", CString
> > > > Port="4183" ));
> > > > 4 - Kaboodle waits notifications from above socket;
> > > > 5 - When Kaboodle receives the notification "connection is
> > establishment"
> > > > (see the function void CGnuSock::OnConnect(int nErrorCode=0)),
> > > > than Kaboodle sends a special data
> > > > "GNUTELLA CONNECT/0.4\n\n\0" (first 22 bytes only) into that socket;
> > > > 6 - After that Kaboodle receives the notification "socket is close"
> > > > (see the function CGnuSock::OnClose(int nErrorCode=0))
> > > > and calls the function
> > > > void CGnuControl::RemoveNode(CString Host="66.123.20.59", CString
> > > > Port="4183")
> > > >
> > > > Steps #1-#6 are executed quickly (about 0.5 minute).
> > > > Those steps are not a result of user's command "connect to remote
> > network".
> > > > So, if a user really executes the command "connect to remote
network",
> > > > than Kaboodle doesn't calls to Gnutella - _Gnutella socket is
absent_.
> > > >
> > > > I made little test:
> > > > If I removed out the sending data "GNUTELLA CONNECT/0.4\n\n\0" from
step
> > #5,
> > > > than step #6 does not appear.
> > > >
> > > > I can expect 2 things.
> > > > First. Gnutella protocol changed.
> > > > Second. Other Kaboodle sockets disturb to work Gnutella socket.
> > > >
> > > > - Igor
> > > >
> > > >
> > > >
> > >
> > >
> >
> >
> >
> >
> >
> >
> >
>
>



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Kaboodle-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kaboodle-devel

Reply via email to