In cServerData.h search for:
Code: Select all
void ResetDefaults( void );Code: Select all
void RefreshIPs( void );Code: Select all
CServerData::~CServerData()
{
}Code: Select all
void CServerData::RefreshIPs( void )
{
struct hostent *lpHostEntry=NULL;
for( size_t cnt = 0; cnt < serverList.size(); ++cnt )
{
if( !serverList[cnt].getDomain().empty() )
{
if( ( lpHostEntry = gethostbyname( serverList[cnt].getDomain().c_str() ) ) != NULL )
{
struct in_addr *pinaddr;
pinaddr = ((struct in_addr*)lpHostEntry->h_addr);
serverList[cnt].setIP( inet_ntoa(*pinaddr) );
}
}
}
}Code: Select all
// Worldsave
UI32 oldtime, newtime;
bool autosaved;
SaveStatus worldSaveProgress;
Code: Select all
// IP Update
UI32 oldIPtime, newIPtime;
bool ipupdated;Code: Select all
// Worldsave
void SetNewTime( UI32 newVal );
UI32 GetNewTime( void ) const;
void SetOldTime( UI32 newVal );
UI32 GetOldTime( void ) const;
void SetAutoSaved( bool newVal );
bool GetAutoSaved( void ) const;
void SetWorldSaveProgress( SaveStatus newVal );
SaveStatus GetWorldSaveProgress( void ) const;Code: Select all
// IP update
UI32 GetNewIPTime( void ) const;
void SetNewIPTime( UI32 newVal );
UI32 GetOldIPTime( void ) const;
void SetOldIPTime( UI32 newVal );
void SetIPUpdated( bool newVal );
bool GetIPUpdated( void ) const;Code: Select all
void CWorldMain::SetOldTime( UI32 newVal )
{
oldtime = newVal;
}Code: Select all
//o--------------------------------------------------------------------------o
//| Function - UI32 NewIPTime()
//o--------------------------------------------------------------------------o
//| Purpose - Time for next auto IP update
//o--------------------------------------------------------------------------o
UI32 CWorldMain::GetNewIPTime( void ) const
{
return newIPtime;
}
void CWorldMain::SetNewIPTime( UI32 newVal )
{
newIPtime = newVal;
}
//o--------------------------------------------------------------------------o
//| Function - UI32 OldIPTime()
//o--------------------------------------------------------------------------o
//| Purpose - Time of last auto IP update
//o--------------------------------------------------------------------------o
UI32 CWorldMain::GetOldIPTime( void ) const
{
return oldIPtime;
}
void CWorldMain::SetOldIPTime( UI32 newVal )
{
oldIPtime = newVal;
}
//o--------------------------------------------------------------------------o
//| Function - bool IPUpdated()
//o--------------------------------------------------------------------------o
//| Purpose - have IPs been updated
//o--------------------------------------------------------------------------o
bool CWorldMain::GetIPUpdated( void ) const
{
return ipupdated;
}
void CWorldMain::SetIPUpdated( bool newVal )
{
ipupdated = newVal;
}Code: Select all
SetAutoSaved( false );
SaveNewWorld( false );
}
}Code: Select all
UI32 oldIPTime = GetOldIPTime();
if( !GetIPUpdated() )
{
SetIPUpdated( true );
time((time_t *)&oldIPTime);
SetOldIPTime( oldIPTime );
}
UI32 newIPTime = GetNewIPTime();
time((time_t *)&newIPTime);
SetNewIPTime( newIPTime );
if( difftime( GetNewIPTime(), GetOldIPTime() ) >= 120 )
{
ServerData()->RefreshIPs();
SetIPUpdated( false );
}