From: <Jef...@us...> - 2007-11-16 03:08:21
|
Revision: 329 http://libirc.svn.sourceforge.net/libirc/?rev=329&view=rev Author: JeffM2501 Date: 2007-11-15 19:08:18 -0800 (Thu, 15 Nov 2007) Log Message: ----------- send the connection event when we first get some data, not when the MOTD is done. This gives us the best possible state as early as possible. Modified Paths: -------------- trunk/libirc/include/IRCClient.h trunk/libirc/src/IRCClient.cpp trunk/libirc/src/irClientEvents.cpp Modified: trunk/libirc/include/IRCClient.h =================================================================== --- trunk/libirc/include/IRCClient.h 2007-11-16 01:52:22 UTC (rev 328) +++ trunk/libirc/include/IRCClient.h 2007-11-16 03:08:18 UTC (rev 329) @@ -269,6 +269,7 @@ teIRCConnectionState ircConnectionState; bool registered; + bool connected; virtual teIRCConnectionState getConnectionState ( void ){return ircConnectionState;} virtual void setConnectionState ( teIRCConnectionState state ){ircConnectionState = state;} Modified: trunk/libirc/src/IRCClient.cpp =================================================================== --- trunk/libirc/src/IRCClient.cpp 2007-11-16 01:52:22 UTC (rev 328) +++ trunk/libirc/src/IRCClient.cpp 2007-11-16 03:08:18 UTC (rev 329) @@ -65,6 +65,7 @@ ircServerPort = _DEFAULT_IRC_PORT; ircConnectionState = eNotConnected; logHandler = &defaultLogger; + connected = false; } // irc client @@ -85,6 +86,7 @@ { minCycleTime = 0.1f; registered = false; + connected = false; nickname = ""; // if any old conenctions are around, kill em if (netHandler) @@ -112,6 +114,7 @@ if (!netHandler && (!tcpClient || !server.size())) return false; + connected = false; reportedServerHost = ircServerName = server; ircServerPort = _DEFAULT_IRC_PORT; if ( port > 0 ) @@ -130,6 +133,7 @@ bool IRCClient::disconnect ( std::string reason ) { + connected = false; if (ircConnectionState >= eLoggedIn) { if (!reason.size()) @@ -214,6 +218,18 @@ std::string theLine = lastRecevedData; tvPacketList &packets = connection->getPackets(); + if (!connected) + { + // we know we are connected here cus we have data pending + if (getConnectionState() < eTCPConenct) + setConnectionState(eTCPConenct); + + trBaseEventInfo info; // no info + callEventHandler(eIRCConnectedEvent,info); + + connected = false; + } + while(packets.size()) { TCPPacket &packet = *(packets.begin()); Modified: trunk/libirc/src/irClientEvents.cpp =================================================================== --- trunk/libirc/src/irClientEvents.cpp 2007-11-16 01:52:22 UTC (rev 328) +++ trunk/libirc/src/irClientEvents.cpp 2007-11-16 03:08:18 UTC (rev 329) @@ -46,13 +46,8 @@ void IRCClient::endMOTD ( void ) { - // we know we are conencted here - if (getConnectionState() < eTCPConenct) - setConnectionState(eTCPConenct); - trBaseEventInfo info; // no info callEventHandler(eIRCEndMOTDEvent,info); - callEventHandler(eIRCConnectedEvent,info); } void IRCClient::joinMessage ( BaseIRCCommandInfo &info ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |