Update of /cvsroot/wpdev/wolfpack/network
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10727/network
Modified Files:
network.cpp network.h uopacket.cpp uosocket.cpp
Log Message:
- Added missing copyright headers to some new files
- Console will show if Python is UCS2 or UCS4
- Removed few lines of dead code
- Some internationalization fixes
Index: network.cpp
===================================================================
RCS file: /cvsroot/wpdev/wolfpack/network/network.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** network.cpp 19 Aug 2004 01:22:56 -0000 1.4
--- network.cpp 19 Sep 2004 16:25:36 -0000 1.5
***************
*** 44,62 ****
// Library Includes
#include <qstringlist.h>
! cNetwork::cNetwork()
{
- loginSockets.setAutoDelete( true );
- uoSockets.setAutoDelete( true );
- netIo_ = new cAsyncNetIO;
- loginServer_ = 0;
- gameServer_ = 0;
}
cNetwork::~cNetwork()
{
! delete loginServer_;
! delete gameServer_;
! delete netIo_;
}
--- 44,85 ----
// Library Includes
#include <qstringlist.h>
+ #include <qmutex.h>
!
! class cNetwork::cNetworkPrivate
! {
! public:
! QPtrList<cUOSocket> uoSockets;
! QPtrList<cUOSocket> loginSockets;
! cAsyncNetIO* netIo_;
! cListener* loginServer_;
! cListener* gameServer_;
! QMutex mutex;
!
! cNetworkPrivate()
! {
! loginSockets.setAutoDelete( true );
! uoSockets.setAutoDelete( true );
! netIo_ = new cAsyncNetIO;
! loginServer_ = 0;
! gameServer_ = 0;
! }
!
! ~cNetworkPrivate()
! {
! delete loginServer_;
! delete gameServer_;
! delete netIo_;
! }
! };
!
!
! cNetwork::cNetwork() : d( new cNetworkPrivate )
{
}
cNetwork::~cNetwork()
{
! delete d;
}
***************
*** 66,106 ****
// Check for new Connections (LoginServer)
! if ( loginServer_ && loginServer_->haveNewConnection() )
{
! QSocketDevice* socket = loginServer_->getNewConnection();
! netIo_->registerSocket( socket, true );
cUOSocket* uosocket = new cUOSocket( socket );
! loginSockets.append( uosocket );
// Notify the admin
! uosocket->log( QString( "Client connected to login server (%1).\n" ).arg( socket->peerAddress().toString() ) );
}
// Check for new Connections (GameServer)
! if ( gameServer_ && gameServer_->haveNewConnection() )
{
! QSocketDevice* socket = gameServer_->getNewConnection();
! netIo_->registerSocket( socket, false );
cUOSocket* uosocket = new cUOSocket( socket );
! loginSockets.append( uosocket );
// Notify the admin
! uosocket->log( QString( "Client connected to game server (%1).\n" ).arg( socket->peerAddress().toString() ) );
}
// fast return
! if ( !uoSockets.isEmpty() || !loginSockets.isEmpty() )
{
// Check for new Packets
cUOSocket* uoSocket = 0;
! for ( uoSocket = uoSockets.first(); uoSocket; uoSocket = uoSockets.next() )
{
// Check for disconnected sockets
if ( uoSocket->socket()->error() != QSocketDevice::NoError || !uoSocket->socket()->isValid() || !uoSocket->socket()->isWritable() || uoSocket->socket()->isInactive() || !uoSocket->socket()->isOpen() )
{
! uoSocket->log( "Client disconnected.\n" );
uoSocket->disconnect();
! netIo_->unregisterSocket( uoSocket->socket() );
! uoSockets.remove( uoSocket );
}
else
--- 89,129 ----
// Check for new Connections (LoginServer)
! if ( d->loginServer_ && d->loginServer_->haveNewConnection() )
{
! QSocketDevice* socket = d->loginServer_->getNewConnection();
! d->netIo_->registerSocket( socket, true );
cUOSocket* uosocket = new cUOSocket( socket );
! d->loginSockets.append( uosocket );
// Notify the admin
! uosocket->log( tr( "Client connected to login server (%1).\n" ).arg( socket->peerAddress().toString() ) );
}
// Check for new Connections (GameServer)
! if ( d->gameServer_ && d->gameServer_->haveNewConnection() )
{
! QSocketDevice* socket = d->gameServer_->getNewConnection();
! d->netIo_->registerSocket( socket, false );
cUOSocket* uosocket = new cUOSocket( socket );
! d->loginSockets.append( uosocket );
// Notify the admin
! uosocket->log( tr( "Client connected to game server (%1).\n" ).arg( socket->peerAddress().toString() ) );
}
// fast return
! if ( !d->uoSockets.isEmpty() || !d->loginSockets.isEmpty() )
{
// Check for new Packets
cUOSocket* uoSocket = 0;
! for ( uoSocket = d->uoSockets.first(); uoSocket; uoSocket = d->uoSockets.next() )
{
// Check for disconnected sockets
if ( uoSocket->socket()->error() != QSocketDevice::NoError || !uoSocket->socket()->isValid() || !uoSocket->socket()->isWritable() || uoSocket->socket()->isInactive() || !uoSocket->socket()->isOpen() )
{
! uoSocket->log( tr("Client disconnected.\n") );
uoSocket->disconnect();
! d->netIo_->unregisterSocket( uoSocket->socket() );
! d->uoSockets.remove( uoSocket );
}
else
***************
*** 116,120 ****
{
uoSocket->log( LOG_PYTHON, e.error() + "\n" );
! uoSocket->log( LOG_ERROR, "Disconnecting due to an unhandled exception.\n" );
uoSocket->disconnect();
}
--- 139,143 ----
{
uoSocket->log( LOG_PYTHON, e.error() + "\n" );
! uoSocket->log( LOG_ERROR, tr("Disconnecting due to an unhandled exception.\n") );
uoSocket->disconnect();
}
***************
*** 122,132 ****
}
! for ( uoSocket = loginSockets.first(); uoSocket; uoSocket = loginSockets.next() )
{
if ( uoSocket->socket()->error() != QSocketDevice::NoError || !uoSocket->socket()->isValid() || !uoSocket->socket()->isOpen() )
{
! uoSocket->log( "Client disconnected.\n" );
! netIo_->unregisterSocket( uoSocket->socket() );
! loginSockets.remove();
continue;
}
--- 145,155 ----
}
! for ( uoSocket = d->loginSockets.first(); uoSocket; uoSocket = d->loginSockets.next() )
{
if ( uoSocket->socket()->error() != QSocketDevice::NoError || !uoSocket->socket()->isValid() || !uoSocket->socket()->isOpen() )
{
! uoSocket->log( tr("Client disconnected.\n") );
! d->netIo_->unregisterSocket( uoSocket->socket() );
! d->loginSockets.remove();
continue;
}
***************
*** 136,140 ****
if ( uoSocket->state() == cUOSocket::InGame )
{
! uoSockets.append( loginSockets.take() );
}
}
--- 159,163 ----
if ( uoSocket->state() == cUOSocket::InGame )
{
! d->uoSockets.append( d->loginSockets.take() );
}
}
***************
*** 149,167 ****
if ( Config::instance()->enableLogin() )
{
! loginServer_ = new cListener( Config::instance()->loginPort() );
! loginServer_->start();
! Console::instance()->send( QString( "LoginServer running on port %1\n" ).arg( Config::instance()->loginPort() ) );
if ( Config::instance()->serverList().size() < 1 )
! Console::instance()->log( LOG_WARNING, "LoginServer enabled but there no Game server entries found\n Check your wolfpack.xml settings" );
}
if ( Config::instance()->enableGame() )
{
! gameServer_ = new cListener( Config::instance()->gamePort() );
! gameServer_->start();
! Console::instance()->send( QString( "GameServer running on port %1\n" ).arg( Config::instance()->gamePort() ) );
}
! netIo_->start();
cComponent::load();
}
--- 172,190 ----
if ( Config::instance()->enableLogin() )
{
! d->loginServer_ = new cListener( Config::instance()->loginPort() );
! d->loginServer_->start();
! Console::instance()->send( tr( "LoginServer running on port %1\n" ).arg( Config::instance()->loginPort() ) );
if ( Config::instance()->serverList().size() < 1 )
! Console::instance()->log( LOG_WARNING, tr("LoginServer enabled but there no Game server entries found\n Check your wolfpack.xml settings") );
}
if ( Config::instance()->enableGame() )
{
! d->gameServer_ = new cListener( Config::instance()->gamePort() );
! d->gameServer_->start();
! Console::instance()->send( tr( "GameServer running on port %1\n" ).arg( Config::instance()->gamePort() ) );
}
! d->netIo_->start();
cComponent::load();
}
***************
*** 177,221 ****
void cNetwork::unload()
{
! if ( loginServer_ )
{
! loginServer_->cancel();
! loginServer_->wait();
! delete loginServer_;
! loginServer_ = 0;
}
! if ( gameServer_ )
{
! gameServer_->cancel();
! gameServer_->wait();
! delete gameServer_;
! gameServer_ = 0;
}
// Disconnect all connected sockets
cUOSocket* socket;
! for ( socket = uoSockets.first(); socket; socket = uoSockets.next() )
{
socket->disconnect();
! netIo_->unregisterSocket( socket->socket() );
}
! uoSockets.clear();
! for ( socket = loginSockets.first(); socket; socket = loginSockets.next() )
{
socket->disconnect();
! netIo_->unregisterSocket( socket->socket() );
}
! loginSockets.clear();
! netIo_->cancel();
! netIo_->wait();
cComponent::unload();
}
void cNetwork::broadcast( const QString& message, Q_UINT16 color, Q_UINT16 font )
{
! for ( cUOSocket*socket = uoSockets.first(); socket; socket = uoSockets.next() )
{
socket->sysMessage( message, color, font );
--- 200,279 ----
void cNetwork::unload()
{
! if ( d->loginServer_ )
{
! d->loginServer_->cancel();
! d->loginServer_->wait();
! delete d->loginServer_;
! d->loginServer_ = 0;
}
! if ( d->gameServer_ )
{
! d->gameServer_->cancel();
! d->gameServer_->wait();
! delete d->gameServer_;
! d->gameServer_ = 0;
}
// Disconnect all connected sockets
cUOSocket* socket;
! for ( socket = d->uoSockets.first(); socket; socket = d->uoSockets.next() )
{
socket->disconnect();
! d->netIo_->unregisterSocket( socket->socket() );
}
! d->uoSockets.clear();
! for ( socket = d->loginSockets.first(); socket; socket = d->loginSockets.next() )
{
socket->disconnect();
! d->netIo_->unregisterSocket( socket->socket() );
}
! d->loginSockets.clear();
! d->netIo_->cancel();
! d->netIo_->wait();
cComponent::unload();
}
+ void cNetwork::lock()
+ {
+ d->mutex.lock();
+ }
+
+ void cNetwork::unlock()
+ {
+ d->mutex.unlock();
+ }
+
+ cAsyncNetIO* cNetwork::netIo()
+ {
+ return d->netIo_;
+ }
+
+ cUOSocket* cNetwork::first()
+ {
+ return d->uoSockets.first();
+ }
+
+ cUOSocket* cNetwork::next()
+ {
+ return d->uoSockets.next();
+ }
+
+ Q_UINT32 cNetwork::count()
+ {
+ return d->uoSockets.count();
+ }
+
+ QPtrListIterator<cUOSocket> cNetwork::getIterator()
+ {
+ return QPtrListIterator<cUOSocket>( d->uoSockets );
+ }
+
void cNetwork::broadcast( const QString& message, Q_UINT16 color, Q_UINT16 font )
{
! for ( cUOSocket*socket = d->uoSockets.first(); socket; socket = d->uoSockets.next() )
{
socket->sysMessage( message, color, font );
Index: network.h
===================================================================
RCS file: /cvsroot/wpdev/wolfpack/network/network.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** network.h 19 Aug 2004 01:22:56 -0000 1.3
--- network.h 19 Sep 2004 16:25:37 -0000 1.4
***************
*** 30,34 ****
// Library Includes
- #include <qmutex.h>
#include <qptrlist.h>
--- 30,33 ----
***************
*** 40,44 ****
//Forward class Declaration
- class cNetworkStuff;
class cAsyncNetIO;
class cListener;
--- 39,42 ----
***************
*** 47,57 ****
class cNetwork : public cComponent
{
! QPtrList<cUOSocket> uoSockets;
! QPtrList<cUOSocket> loginSockets;
! cAsyncNetIO* netIo_;
! cListener* loginServer_;
! cListener* gameServer_;
! QMutex mutex;
!
public:
cNetwork();
--- 45,50 ----
class cNetwork : public cComponent
{
! class cNetworkPrivate;
! cNetworkPrivate* d;
public:
cNetwork();
***************
*** 69,100 ****
void poll( void ); // called by the main loop
! void lock()
! {
! mutex.lock();
! }
! void unlock()
! {
! mutex.unlock();
! }
! cAsyncNetIO* netIo()
! {
! return netIo_;
! }
! cUOSocket* first()
! {
! return uoSockets.first();
! }
! cUOSocket* next()
! {
! return uoSockets.next();
! }
! Q_UINT32 count()
! {
! return uoSockets.count();
! }
! QPtrListIterator<cUOSocket> getIterator()
! {
! return QPtrListIterator<cUOSocket>( uoSockets );
! }
void broadcast( const QString& message, Q_UINT16 color = 0x84d, Q_UINT16 font = 0 );
--- 62,72 ----
void poll( void ); // called by the main loop
! void lock();
! void unlock();
! cAsyncNetIO* netIo();
! cUOSocket* first();
! cUOSocket* next();
! Q_UINT32 count();
! QPtrListIterator<cUOSocket> getIterator();
void broadcast( const QString& message, Q_UINT16 color = 0x84d, Q_UINT16 font = 0 );
Index: uosocket.cpp
===================================================================
RCS file: /cvsroot/wpdev/wolfpack/network/uosocket.cpp,v
retrieving revision 1.414
retrieving revision 1.415
diff -C2 -d -r1.414 -r1.415
*** uosocket.cpp 19 Sep 2004 04:00:35 -0000 1.414
--- uosocket.cpp 19 Sep 2004 16:25:37 -0000 1.415
***************
*** 816,820 ****
_account = authRet;
! log( QString( "Automatically created account '%1'.\n" ).arg( username ) );
return true;
}
--- 816,820 ----
_account = authRet;
! log( tr( "Automatically created account '%1'.\n" ).arg( username ) );
return true;
}
***************
*** 823,836 ****
break;
case cAccounts::BadPassword:
! log( QString( "Failed to log in as '%1', wrong password\n" ).arg( username ) );
denyPacket.setReason( cUOTxDenyLogin::DL_BADPASSWORD );
break;
case cAccounts::Wipped:
case cAccounts::Banned:
! log( QString( "Failed to log in as '%1', Wipped/Banned account\n" ).arg( username ) );
denyPacket.setReason( cUOTxDenyLogin::DL_BLOCKED );
break;
case cAccounts::AlreadyInUse:
! log( QString( "Failed to log in as '%1', account is already in use\n" ).arg( username ) );
denyPacket.setReason( cUOTxDenyLogin::DL_INUSE );
break;
--- 823,836 ----
break;
case cAccounts::BadPassword:
! log( tr( "Failed to log in as '%1', wrong password\n" ).arg( username ) );
denyPacket.setReason( cUOTxDenyLogin::DL_BADPASSWORD );
break;
case cAccounts::Wipped:
case cAccounts::Banned:
! log( tr( "Failed to log in as '%1', Wipped/Banned account\n" ).arg( username ) );
denyPacket.setReason( cUOTxDenyLogin::DL_BLOCKED );
break;
case cAccounts::AlreadyInUse:
! log( tr( "Failed to log in as '%1', account is already in use\n" ).arg( username ) );
denyPacket.setReason( cUOTxDenyLogin::DL_INUSE );
break;
***************
*** 839,848 ****
};
! log( QString( "Failed to log in as '%1'.\n" ).arg( username ) );
send( &denyPacket );
}
else if ( error == cAccounts::NoError )
{
! log( QString( "Logged in as '%1'.\n" ).arg( username ) );
}
--- 839,848 ----
};
! log( tr( "Failed to log in as '%1'.\n" ).arg( username ) );
send( &denyPacket );
}
else if ( error == cAccounts::NoError )
{
! log( tr( "Logged in as '%1'.\n" ).arg( username ) );
}
Index: uopacket.cpp
===================================================================
RCS file: /cvsroot/wpdev/wolfpack/network/uopacket.cpp,v
retrieving revision 1.45
retrieving revision 1.46
diff -C2 -d -r1.45 -r1.46
*** uopacket.cpp 10 Aug 2004 03:24:29 -0000 1.45
--- uopacket.cpp 19 Sep 2004 16:25:37 -0000 1.46
***************
*** 196,246 ****
QByteArray temp( rawPacket.size() * 2 ); // worst case scenario for memory size
- //#define OLDCOMPRESS
- #ifdef OLDCOMPRESS
- unsigned char * pIn = ( unsigned char * ) rawPacket.data();
- unsigned char * pOut = ( unsigned char * ) temp.data();
-
- int actByte = 0;
- int bitByte = 0;
- int nrBits;
- unsigned int value;
- unsigned int len = rawPacket.size();
-
- while ( len-- )
- {
- nrBits = bitTable[*pIn].size;
- value = bitTable[*pIn++].code;
-
- while ( nrBits-- )
- {
- pOut[actByte] = ( pOut[actByte] << 1 ) | ( unsigned char ) ( ( value >> nrBits ) & 0x1 );
- bitByte = ( bitByte + 1 ) & 0x07;
- if ( !bitByte )
- ++actByte;
- }
- }
-
- nrBits = bitTable[256].size;
- value = bitTable[256].code;
-
- while ( nrBits-- )
- {
- pOut[actByte] = ( pOut[actByte] << 1 ) | ( unsigned char ) ( ( value >> nrBits ) & 0x1 );
-
- bitByte = ( bitByte + 1 ) & 0x07;
- if ( !bitByte )
- ++actByte;
- }
-
- if ( bitByte )
- {
- while ( bitByte < 8 )
- {
- pOut[actByte] <<= 1;
- ++bitByte;
- }
- ++actByte;
- }
- #else
int bufferSize = 0; // 32 bits buffer size (bits)
Q_INT32 buffer32 = 0; // 32 bits buffer to store the compressed data until it's larger than 1 byte
--- 196,199 ----
***************
*** 279,283 ****
temp[actByte++] = ( unsigned char ) ( buffer32 << 8 - bufferSize ) & 0xFF;//& 31;
}
- #endif
compressedBuffer.duplicate( temp.data(), actByte );
}
--- 232,235 ----
|