Esempio n. 1
0
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);
	}
	
}
Esempio n. 2
0
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);
}
Esempio n. 3
0
File: hash.c Progetto: darksis/x3
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);
}
Esempio n. 4
0
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;
}