|
From: Denis V. D. <de...@nu...> - 2001-05-31 00:13:03
|
Eric Warmenhoven <war...@ya...> writes: > Hi, > > In order to compile the icqlib that's currently in CVS on FreeBSD 4.2, I > had to add > > #include <sys/types.h> > > before the sys/socket.h include in icqpacket.c and socketmanager.h. Thanks for this, fixed. > Also, I had a question about the InvalidUIN and WrongPassword callbacks. > In udphandle.c, the both have invoke_callback followed by > > icq_UDPAck(icqlink, seq); > > In kicq though, both callbacks lead to the icqlink being deleted > (both callbacks call RegWindow::stop, which calls RegWindow::disconnect, > which calls icq_ICQLINKDelete). > > Once the icqlink is deleted, it returns to icq_ServerResponse in udphandle.c, > which immediately tries to use it. > > Shouldn't the calls be reversed? The icq_UDPAck first and then > invoke_callback? Hmm, it is more than just 2 callbacks. Most of the time we send acknowledgement packet after calling callback. Which I think could cause problems if client try to disconnect/delete icq_Link inside the callback, and which is causing them in kicq's RegWindow right now. Probably calling callbacks after acknowledging the packet would solve this kind of problems in general and RegWindow crash in particular. -- Denis V. Dmitrienko | E-mail: de...@de... | ICQ#: 5538614 Home page: http://denix.org | de...@kd... History became legend... Legend became myth. And some things that should not have been forgotten ...were lost. |