/************************************************************************************************************************************ *Save server data (query info) * ipl = long representation of ip * port = query port * engine = engine id * flag = query flags (optional) * sql = sql connection to use (optional, better to use an allocated connection then grabbing from the pool) * *Returns: * >0 = server id * -1 = unable to save server (exists already?) * -2 = should never happen (since the id is new in the db) */ int threadhub::saveNewServer(unsigned ipl, unsigned short int port, int engine, int flag=GM_DEFAULT_QUERY_FLAGS, sql_p *sql=NULL) { int ret=-1; bool sql_allocated=false; if (sql==NULL) { sql = _sql_cs.allocItem(); sql_allocated = true; } ret = sql->save_new_server(ipl,port,engine,flag); if ( ret>0 ) { if ( !this->allocateID(ret) ) { //nasty ret=-2; } } if (sql_allocated) _sql_cs.freeItem(sql); return ret; }