static void server_setup_fill_server(SERVER_CONNECT_REC *conn, SERVER_SETUP_REC *sserver) { g_return_if_fail(IS_SERVER_CONNECT(conn)); g_return_if_fail(IS_SERVER_SETUP(sserver)); sserver->last_connect = time(NULL); if (sserver->no_proxy) g_free_and_null(conn->proxy); if (sserver->family != 0 && conn->family == 0) conn->family = sserver->family; if (sserver->port > 0 && conn->port <= 0) conn->port = sserver->port; conn->use_ssl = sserver->use_ssl; if (conn->ssl_cert == NULL && sserver->ssl_cert != NULL && sserver->ssl_cert[0] != '\0') conn->ssl_cert = g_strdup(sserver->ssl_cert); if (conn->ssl_pkey == NULL && sserver->ssl_pkey != NULL && sserver->ssl_pkey[0] != '\0') conn->ssl_pkey = g_strdup(sserver->ssl_pkey); conn->ssl_verify = sserver->ssl_verify; if (conn->ssl_cafile == NULL && sserver->ssl_cafile != NULL && sserver->ssl_cafile[0] != '\0') conn->ssl_cafile = g_strdup(sserver->ssl_cafile); if (conn->ssl_capath == NULL && sserver->ssl_capath != NULL && sserver->ssl_capath[0] != '\0') conn->ssl_capath = g_strdup(sserver->ssl_capath); server_setup_fill_reconn(conn, sserver); signal_emit("server setup fill server", 2, conn, sserver); }
static void sserver_connect(SERVER_SETUP_REC *rec, SERVER_CONNECT_REC *conn) { conn->family = rec->family; conn->address = g_strdup(rec->address); if (conn->port == 0) conn->port = rec->port; server_setup_fill_reconn(conn, rec); server_reconnect_add(conn, rec->last_connect+reconnect_time); server_connect_unref(conn); }
static void sserver_connect(SERVER_SETUP_REC *rec, SERVER_CONNECT_REC *conn) { conn->address = g_strdup(rec->address); if (conn->port == 0) conn->port = rec->port; server_setup_fill_reconn(conn, rec); if (rec->last_connect > time(NULL)-reconnect_time) { /* can't reconnect this fast, wait.. */ server_reconnect_add(conn, rec->last_connect+reconnect_time); } else { /* connect to server.. */ server_connect(conn); } }