#include <nServerInfo.h>
Public Member Functions | |
nServerInfoBase () | |
virtual | ~nServerInfoBase () |
bool | operator== (const nServerInfoBase &other) const |
bool | operator!= (const nServerInfoBase &other) const |
void | NetWrite (nMessage &m) const |
writes data to network message | |
void | NetRead (nMessage &m) |
reads data from network message | |
void | NetWriteThis (nMessage &m) const |
writes data to network message | |
void | NetReadThis (nMessage &m) |
reads data from network message | |
void | GetFrom (nSocket const *socket) |
fills data from this server and the given socket | |
nConnectError | Connect (nLoginType loginType=Login_All, const nSocket *socket=NULL) |
connect to this server ( using the specified socket ) | |
void | CopyFrom (const nServerInfoBase &other) |
copies server info | |
nServerInfoBase & | operator= (const nServerInfoBase &other) |
const tString & | GetName () const |
returns the server's name | |
tString const & | GetConnectionName (void) const |
Gets the internet name of the server ("192.168.10.10", "atron.dyndns.org"). | |
nServerInfoBase const & | GetConnectionName (tString &connectionName) const |
Gets the internet name of the server ("192.168.10.10", "atron.dyndns.org"). | |
unsigned int | GetPort (void) const |
Gets the network port the server listens on. | |
nServerInfoBase const & | GetPort (unsigned int &port) const |
Gets the network port the server listens on. | |
nAddress const & | GetAddress (void) const |
Gets the network address of the server. | |
nServerInfoBase const & | GetAddress (nAddress &address) const |
Gets the network address of the server. | |
nServerInfoBase const & | ClearAddress () const |
Clears the network address of the server ( so it gets requeried ). | |
Protected Member Functions | |
virtual void | DoNetWrite (nMessage &m) const |
writes data to network message | |
virtual void | DoNetRead (nMessage &m) |
reads data from network message | |
virtual void | DoGetFrom (nSocket const *socket) |
fills data from this server and the given socket | |
virtual const tString & | DoGetName () const |
returns the server's name | |
nServerInfoBase & | SetConnectionName (tString const &connectionName) |
Sets the internet name of the server ("192.168.10.10", "atron.dyndns.org"). | |
nServerInfoBase & | SetPort (unsigned int port) |
Sets the network port the server listens on. | |
Private Member Functions | |
nAddress & | AccessAddress (void) const |
Accesses the network address of the server. | |
nServerInfoBase & | SetAddress (nAddress const &address) |
Sets the network address of the server. | |
Private Attributes | |
tString | connectionName_ |
the internet name of the server ("192.168.10.10", "atron.dyndns.org") | |
unsigned int | port_ |
the network port the server listens on | |
std::auto_ptr< nAddress > | address_ |
the network address of the server |
Definition at line 47 of file nServerInfo.h.
nServerInfoBase::nServerInfoBase | ( | ) |
Definition at line 2367 of file nServerInfo.cpp.
02368 : connectionName_(""), 02369 port_(0) 02370 { 02371 }
nServerInfoBase::~nServerInfoBase | ( | ) | [virtual] |
bool nServerInfoBase::operator== | ( | const nServerInfoBase & | other | ) | const |
Definition at line 2395 of file nServerInfo.cpp.
References GetAddress(), and port_.
Referenced by operator!=().
02396 { 02397 return GetAddress() == other.GetAddress() && port_ == other.port_; 02398 }
bool nServerInfoBase::operator!= | ( | const nServerInfoBase & | other | ) | const |
Definition at line 2409 of file nServerInfo.cpp.
References operator==().
02410 { 02411 return ! operator == ( other ); 02412 }
void nServerInfoBase::NetWrite | ( | nMessage & | message | ) | const [inline] |
writes data to network message
message | message to write info to |
Definition at line 410 of file nServerInfo.h.
References DoNetWrite().
Referenced by nServerInfo::GiveBigServerInfoCommon(), nServerInfo::GiveSmallServerInfo(), and nServerInfo::TellMasterAboutMe().
00411 { 00412 DoNetWrite( message ); 00413 }
void nServerInfoBase::NetRead | ( | nMessage & | message | ) | [inline] |
reads data from network message
mesage | message to read from |
Definition at line 425 of file nServerInfo.h.
References DoNetRead().
Referenced by nServerInfo::GetBigServerInfoCommon(), nServerInfo::GetSmallServerInfo(), and nServerInfo::GiveBigServerInfoMaster().
00426 { 00427 DoNetRead( message ); 00428 }
void nServerInfoBase::NetWriteThis | ( | nMessage & | m | ) | const |
writes data to network message
m | message to write to |
Reimplemented in nServerInfo.
Definition at line 2519 of file nServerInfo.cpp.
References connectionName_, and port_.
Referenced by DoNetWrite(), nServerInfo::NetReadThis(), and nServerInfo::QueryServer().
02520 { 02521 m << port_; // write the port 02522 m << connectionName_; // and the name 02523 }
void nServerInfoBase::NetReadThis | ( | nMessage & | m | ) |
reads data from network message
m | message to read from |
Reimplemented in nServerInfo.
Definition at line 2544 of file nServerInfo.cpp.
References connectionName_, tString::Len(), port_, S_GlobalizeName(), S_LocalizeName(), nMessage::SenderID(), tString::Size(), sn_AcceptingFromBroadcast, sn_AcceptingFromMaster, sn_GetAdr(), sn_IsMaster, sn_ReadFiltered(), and tString::SubStr().
Referenced by DoNetRead().
02545 { 02546 m >> port_; // get the port 02547 sn_ReadFiltered( m, connectionName_ ); // get the connection name 02548 02549 if ( ( sn_IsMaster || sn_AcceptingFromBroadcast || sn_AcceptingFromMaster ) && connectionName_.Len()>1 ) // no valid name (must come directly from the server who does not know his own address) 02550 { 02551 // resolve DNS 02552 connectionName_ = S_LocalizeName( connectionName_ ); 02553 } 02554 else 02555 { 02556 #ifdef DEBUG_X 02557 if ( connectionName_.Len() > 1 ) 02558 { 02559 std::cout << "Overwriting source from " << connectionName_ << ".\n"; 02560 } 02561 #endif 02562 02563 sn_GetAdr( m.SenderID(), connectionName_ ); 02564 02565 // remove the port 02566 for (int i=connectionName_.Size()-1; i>=0; i--) 02567 if (':' == connectionName_[i]) 02568 { 02569 connectionName_ = connectionName_.SubStr( 0, i ); 02570 } 02571 02572 S_GlobalizeName( connectionName_ ); 02573 } 02574 }
void nServerInfoBase::GetFrom | ( | nSocket const * | socket | ) | [inline] |
fills data from this server and the given socket
socket | socket to get bare network information from |
Definition at line 440 of file nServerInfo.h.
References DoGetFrom().
Referenced by nServerInfo::GiveBigServerInfo(), nServerInfo::GiveSmallServerInfo(), and nServerInfo::TellMasterAboutMe().
00441 { 00442 DoGetFrom( socket ); 00443 }
nConnectError nServerInfoBase::Connect | ( | nLoginType | loginType = Login_All , |
|
const nSocket * | socket = NULL | |||
) |
connect to this server ( using the specified socket )
Definition at line 2424 of file nServerInfo.cpp.
References GetAddress(), nTIMEOUT, sn_Connect(), and ToString().
Referenced by ConnectToServerCore(), nServerInfo::GetFromMaster(), and nServerInfo::TellMasterAboutMe().
02425 { 02426 // refuse to connect without address 02427 if ( !GetAddress().IsSet() ) 02428 { 02429 // well, not really a timeout. But we would timeout if we tried to connect. 02430 return nTIMEOUT; 02431 } 02432 02433 //unsigned int portBack = sn_clientPort; 02434 //sn_clientPort = port_; 02435 if ( GetAddress().ToString().StartsWith( "*.*.*.*" ) ) 02436 { 02437 throw tGenericException( tOutput("$network_message_dns_error_inter"),tOutput("$network_message_dns_error_title")); 02438 } 02439 02440 nConnectError error = sn_Connect( GetAddress(), loginType, socket ); 02441 //sn_clientPort = portBack; 02442 02443 return error; 02444 }
void nServerInfoBase::CopyFrom | ( | const nServerInfoBase & | other | ) |
copies server info
other |
Definition at line 2456 of file nServerInfo.cpp.
References connectionName_, and port_.
Referenced by nServerInfo::GetBigServerInfoCommon(), and operator=().
02457 { 02458 port_ = other.port_; 02459 connectionName_ = other.connectionName_; 02460 }
nServerInfoBase & nServerInfoBase::operator= | ( | const nServerInfoBase & | other | ) |
other |
Definition at line 2473 of file nServerInfo.cpp.
References CopyFrom().
02474 { 02475 CopyFrom( other ); 02476 return *this; 02477 }
const tString & nServerInfoBase::GetName | ( | void | ) | const [inline] |
returns the server's name
Definition at line 346 of file nServerInfo.h.
References DoGetName().
Referenced by gServerFavoritesHolder::AddFavorite(), ConnectToServerCore(), nServerInfo::GetFromMaster(), gServerMenuItem::Render(), and nServerInfo::TellMasterAboutMe().
00347 { 00348 return DoGetName(); 00349 }
void nServerInfoBase::DoNetWrite | ( | nMessage & | m | ) | const [protected, virtual] |
writes data to network message
m | message to write to |
Reimplemented in nServerInfo.
Definition at line 2489 of file nServerInfo.cpp.
References NetWriteThis().
Referenced by nServerInfo::DoNetWrite(), and NetWrite().
02490 { 02491 NetWriteThis( m ); 02492 }
void nServerInfoBase::DoNetRead | ( | nMessage & | m | ) | [protected, virtual] |
reads data from network message
m | message to read from |
Reimplemented in nServerInfo.
Definition at line 2504 of file nServerInfo.cpp.
References NetReadThis().
Referenced by nServerInfo::DoNetRead(), and NetRead().
02505 { 02506 NetReadThis( m ); 02507 }
void nServerInfoBase::DoGetFrom | ( | nSocket const * | socket | ) | [protected, virtual] |
fills data from this server and the given socket
socket | socket to get bare network information from |
Reimplemented in nServerInfo.
Definition at line 2592 of file nServerInfo.cpp.
References connectionName_, nSocket::GetAddress(), nAddress::GetPort(), net_dns, port_, and sn_GetServerPort().
Referenced by nServerInfo::DoGetFrom(), and GetFrom().
02593 { 02594 // better not set connection name, the message recipient can figure it out more reliably 02595 connectionName_ = net_dns; 02596 02597 if ( ! socket ) 02598 { 02599 port_ = sn_GetServerPort(); 02600 } 02601 else 02602 { 02603 // fill port information from socket 02604 nAddress const & address = socket->GetAddress(); 02605 port_ = address.GetPort(); 02606 } 02607 }
const tString & nServerInfoBase::DoGetName | ( | void | ) | const [protected, virtual] |
returns the server's name
Reimplemented in nServerInfo.
Definition at line 2952 of file nServerInfo.cpp.
References connectionName_.
Referenced by GetName().
02953 { 02954 return connectionName_; 02955 }
tString const & nServerInfoBase::GetConnectionName | ( | void | ) | const [inline] |
Gets the internet name of the server ("192.168.10.10", "atron.dyndns.org").
Definition at line 455 of file nServerInfo.h.
References connectionName_.
Referenced by gServerFavoritesHolder::AddFavorite(), nServerInfo::GetSmallServerInfo(), gServerFavoritesHolder::IsFavorite(), Poll(), nServerInfo::Save(), sg_NetworkError(), and ToString().
00456 { 00457 return this->connectionName_; 00458 }
nServerInfoBase const & nServerInfoBase::GetConnectionName | ( | tString & | connectionName | ) | const [inline] |
Gets the internet name of the server ("192.168.10.10", "atron.dyndns.org").
connectionName | the internet name of the server ("192.168.10.10", "atron.dyndns.org") to fill |
Definition at line 471 of file nServerInfo.h.
References connectionName_.
00472 { 00473 connectionName = this->connectionName_; 00474 return *this; 00475 }
unsigned nServerInfoBase::GetPort | ( | void | ) | const [inline] |
Gets the network port the server listens on.
Definition at line 504 of file nServerInfo.h.
References port_.
Referenced by gServerFavoritesHolder::AddFavorite(), nServerInfo::GetSmallServerInfo(), gServerFavoritesHolder::IsFavorite(), Poll(), nServerInfo::Save(), sg_NetworkError(), and ToString().
00505 { 00506 return this->port_; 00507 }
nServerInfoBase const& nServerInfoBase::GetPort | ( | unsigned int & | port | ) | const [inline] |
Gets the network port the server listens on.
nAddress const & nServerInfoBase::GetAddress | ( | void | ) | const |
Gets the network address of the server.
Definition at line 2851 of file nServerInfo.cpp.
References AccessAddress().
Referenced by Connect(), nServerInfo::Load(), nServerInfo::NetReadThis(), operator==(), nServerInfo::QueryServer(), nServerInfo::StartQueryAll(), and nServerInfo::TellMasterAboutMe().
02852 { 02853 return this->AccessAddress(); 02854 }
nServerInfoBase const & nServerInfoBase::GetAddress | ( | nAddress & | address | ) | const |
Gets the network address of the server.
address | the network address of the server to fill |
Definition at line 2867 of file nServerInfo.cpp.
References AccessAddress().
02868 { 02869 address = this->AccessAddress(); 02870 return *this; 02871 }
nServerInfoBase const & nServerInfoBase::ClearAddress | ( | ) | const |
Clears the network address of the server ( so it gets requeried ).
Definition at line 2883 of file nServerInfo.cpp.
References address_.
Referenced by nServerInfo::StartQueryAll().
02884 { 02885 std::auto_ptr< nAddress > clearedAddress; 02886 address_ = clearedAddress; 02887 return *this; 02888 }
nAddress & nServerInfoBase::AccessAddress | ( | void | ) | const [private] |
Accesses the network address of the server.
Definition at line 2918 of file nServerInfo.cpp.
References address_, con, tNEW, and ToString().
Referenced by GetAddress(), and SetAddress().
02919 { 02920 // create address if it is not already there 02921 if ( !this->address_.get() ) 02922 { 02923 std::auto_ptr< nAddress > address( tNEW( nAddress ) ); 02924 02925 // fill it with hostname and port 02926 address->SetHostname( this->GetConnectionName() ); 02927 address->SetPort( this->GetPort() ); 02928 02929 this->address_ = address; 02930 02931 #ifdef DEBUG 02932 tString unresolved = ToString( *this ); 02933 tString resolved = this->address_->ToString(); 02934 if ( unresolved != resolved ) 02935 con << "Address of server " << unresolved << " determined to be " << resolved << "\n"; 02936 #endif 02937 } 02938 02939 return *this->address_; 02940 }
nServerInfoBase & nServerInfoBase::SetAddress | ( | nAddress const & | address | ) | [private] |
Sets the network address of the server.
address | the network address of the server to set |
Definition at line 2901 of file nServerInfo.cpp.
References AccessAddress().
02902 { 02903 AccessAddress() = address; 02904 return *this; 02905 }
nServerInfoBase & nServerInfoBase::SetConnectionName | ( | tString const & | connectionName | ) | [inline, protected] |
Sets the internet name of the server ("192.168.10.10", "atron.dyndns.org").
connectionName | the internet name of the server ("192.168.10.10", "atron.dyndns.org") to set |
Definition at line 488 of file nServerInfo.h.
References connectionName_.
Referenced by nServerInfo::Load(), and nServerInfoRedirect::nServerInfoRedirect().
00489 { 00490 this->connectionName_ = connectionName; 00491 return *this; 00492 }
nServerInfoBase& nServerInfoBase::SetPort | ( | unsigned int | port | ) | [inline, protected] |
Sets the network port the server listens on.
Referenced by nServerInfo::Load(), and nServerInfoRedirect::nServerInfoRedirect().
tString nServerInfoBase::connectionName_ [private] |
the internet name of the server ("192.168.10.10", "atron.dyndns.org")
Definition at line 79 of file nServerInfo.h.
Referenced by CopyFrom(), DoGetFrom(), DoGetName(), GetConnectionName(), NetReadThis(), NetWriteThis(), and SetConnectionName().
unsigned int nServerInfoBase::port_ [private] |
the network port the server listens on
Definition at line 80 of file nServerInfo.h.
Referenced by CopyFrom(), DoGetFrom(), GetPort(), NetReadThis(), NetWriteThis(), and operator==().
std::auto_ptr< nAddress > nServerInfoBase::address_ [mutable, private] |
the network address of the server
Definition at line 81 of file nServerInfo.h.
Referenced by AccessAddress(), and ClearAddress().