static void CheckMissing(struct servercstruct *server) { int delay; if(!IsConnecting(server->sinfo)&&(server->nexttry<=currtime) ) { if(server->server!=NULL) { DelServer(server->server); server->server=NULL; } if(botinfo->maxtries != 0 && server->conatt >= botinfo->maxtries) { NotConnectable(server->sinfo); return; } server->conatt++; delay=CalcConDelay(server->conatt); server->nexttry=currtime+delay; info_log("Connecting to %s attempt %i next attempt in %i seconds\n",server->address, server->conatt, delay); AddServer(server->sinfo, server->address, botinfo->nick); /* convert botinfo->timout (minutes) to sinfo->timeout (seconds) */ server->sinfo->timeout=botinfo->timeout * 60; //disconnectonidle(server->sinfo); connect_to_host(server->sinfo,server->address,server->port); } }
void socket_destroyed(struct io_fd *fd) { if (fd && fd->state != IO_CONNECTED) log_module(MAIN_LOG, LOG_ERROR, "Connection to server lost."); socket_io_fd = NULL; cManager.uplink->state = DISCONNECTED; if (self->uplink) DelServer(self->uplink, 0, NULL); }
static void hash_cleanup(UNUSED_ARG(void *extra)) { dict_iterator_t it, next; DelServer(self, 0, NULL); for (it = dict_first(channels); it; it = next) { next = iter_next(it); DelChannel(iter_data(it)); } dict_delete(channels); dict_delete(clients); dict_delete(servers); userList_clean(&curr_opers); count_opers = 0; free(slf_list); free(slf_list_extra); free(nuf_list); free(nuf_list_extra); free(ncf2_list); free(ncf2_list_extra); free(duf_list); free(duf_list_extra); free(ncf_list); free(ncf_list_extra); free(jf_list); free(jf_list_extra); free(dcf_list); free(dcf_list_extra); free(pf_list); free(pf_list_extra); free(kf_list); free(kf_list_extra); free(tf_list); free(tf_list_extra); }
bool ServerManager::RemoveServer(PlayerID_t id) { bool ret = false; switch (id) { case SCENE_PLAYER_ID: { SOCKET s = m_ScenePlayer.GetSocket()->getSOCKET( ); Assert(s!=INVALID_SOCKET); ret = DelServer( s ); Assert(ret); m_ScenePlayer.CleanUp( ); g_pLog->log_debug("%u,%u,RemoveServer().....Scene....OK",0,0); } break; case LOGIN_PLAYER_ID: { return true;; } break; case BILLING_PLAYER_ID: { return true; } break; default: { return false; } } return ret; }