|
@@ -1320,8 +1320,6 @@ static cmd_t my_raw_binds[] =
|
|
|
{NULL, NULL, NULL, NULL}
|
|
{NULL, NULL, NULL, NULL}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-//static void server_resolve_success(int);
|
|
|
|
|
-//static void server_resolve_failure(int);
|
|
|
|
|
static void server_dns_callback(void *, const char *, char **);
|
|
static void server_dns_callback(void *, const char *, char **);
|
|
|
|
|
|
|
|
/* Hook up to a server
|
|
/* Hook up to a server
|
|
@@ -1353,7 +1351,7 @@ static void connect_server(void)
|
|
|
|
|
|
|
|
trying_server = now;
|
|
trying_server = now;
|
|
|
|
|
|
|
|
- newidx = new_dcc(&SERVER_SOCKET, sizeof(struct dns_info));
|
|
|
|
|
|
|
+ newidx = new_dcc(&SERVER_SOCKET, 0);
|
|
|
if (newidx < 0) {
|
|
if (newidx < 0) {
|
|
|
putlog(LOG_SERV, "*", "NO MORE DCC CONNECTIONS -- Can't create server connection.");
|
|
putlog(LOG_SERV, "*", "NO MORE DCC CONNECTIONS -- Can't create server connection.");
|
|
|
trying_server = 0;
|
|
trying_server = 0;
|
|
@@ -1377,16 +1375,6 @@ static void connect_server(void)
|
|
|
dcc[newidx].sock = -1;
|
|
dcc[newidx].sock = -1;
|
|
|
strcpy(dcc[newidx].u.buf, pass);
|
|
strcpy(dcc[newidx].u.buf, pass);
|
|
|
|
|
|
|
|
-/* dcc[newidx].u.dns->host = (char *) calloc(1, strlen(botserver) + 1);
|
|
|
|
|
- strcpy(dcc[newidx].u.dns->host, botserver);
|
|
|
|
|
- dcc[newidx].u.dns->cbuf = (char *) calloc(1, strlen(pass) + 1);
|
|
|
|
|
- strcpy(dcc[newidx].u.dns->cbuf, pass);
|
|
|
|
|
- dcc[newidx].u.dns->dns_success = server_resolve_success;
|
|
|
|
|
- dcc[newidx].u.dns->dns_failure = server_resolve_failure;
|
|
|
|
|
- dcc[newidx].u.dns->dns_type = RES_IPBYHOST;
|
|
|
|
|
- dcc[newidx].u.dns->type = &SERVER_SOCKET;
|
|
|
|
|
-*/
|
|
|
|
|
-
|
|
|
|
|
cycle_time = 15; /* wait 15 seconds before attempting next server connect */
|
|
cycle_time = 15; /* wait 15 seconds before attempting next server connect */
|
|
|
|
|
|
|
|
/* I'm resolving... don't start another server connect request */
|
|
/* I'm resolving... don't start another server connect request */
|
|
@@ -1418,18 +1406,10 @@ static void server_dns_callback(void *client_data, const char *host, char **ips)
|
|
|
dcc[idx].addr = htonl(addr.u.addr.s_addr);
|
|
dcc[idx].addr = htonl(addr.u.addr.s_addr);
|
|
|
|
|
|
|
|
strcpy(serverpass, dcc[idx].u.buf);
|
|
strcpy(serverpass, dcc[idx].u.buf);
|
|
|
-// changeover_dcc(idx, &SERVER_SOCKET, 0);
|
|
|
|
|
identd_open();
|
|
identd_open();
|
|
|
|
|
|
|
|
serv = open_telnet(ips[0], dcc[idx].port);
|
|
serv = open_telnet(ips[0], dcc[idx].port);
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-//#ifdef USE_IPV6
|
|
|
|
|
-// serv = open_telnet(dcc[idx].host, dcc[idx].port);
|
|
|
|
|
-//#else
|
|
|
|
|
-// serv = open_telnet(iptostr(htonl(dcc[idx].addr)), dcc[idx].port);
|
|
|
|
|
-//#endif /* USE_IPV6 */
|
|
|
|
|
-
|
|
|
|
|
if (serv < 0) {
|
|
if (serv < 0) {
|
|
|
putlog(LOG_SERV, "*", "Failed connect to %s (%s)", dcc[idx].host, strerror(errno));
|
|
putlog(LOG_SERV, "*", "Failed connect to %s (%s)", dcc[idx].host, strerror(errno));
|
|
|
trying_server = 0;
|
|
trying_server = 0;
|
|
@@ -1452,49 +1432,4 @@ static void server_dns_callback(void *client_data, const char *host, char **ips)
|
|
|
/* Wait for async connect now */
|
|
/* Wait for async connect now */
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-#ifdef NO
|
|
|
|
|
-static void server_resolve_failure(int idx)
|
|
|
|
|
-{
|
|
|
|
|
- putlog(LOG_SERV, "*", "Failed connect to %s (DNS lookup failed)", dcc[idx].host);
|
|
|
|
|
- resolvserv = 0;
|
|
|
|
|
- trying_server = 0;
|
|
|
|
|
- lostdcc(idx);
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-static void server_resolve_success(int idx)
|
|
|
|
|
-{
|
|
|
|
|
- resolvserv = 0;
|
|
|
|
|
- dcc[idx].addr = dcc[idx].u.dns->ip;
|
|
|
|
|
- strcpy(serverpass, dcc[idx].u.dns->cbuf);
|
|
|
|
|
- changeover_dcc(idx, &SERVER_SOCKET, 0);
|
|
|
|
|
- identd_open();
|
|
|
|
|
-#ifdef USE_IPV6
|
|
|
|
|
- serv = open_telnet(dcc[idx].host, dcc[idx].port);
|
|
|
|
|
-#else
|
|
|
|
|
- serv = open_telnet(iptostr(htonl(dcc[idx].addr)), dcc[idx].port);
|
|
|
|
|
-#endif /* USE_IPV6 */
|
|
|
|
|
- if (serv < 0) {
|
|
|
|
|
- putlog(LOG_SERV, "*", "Failed connect to %s (%s)", dcc[idx].host, strerror(errno));
|
|
|
|
|
- trying_server = 0;
|
|
|
|
|
- lostdcc(idx);
|
|
|
|
|
- } else {
|
|
|
|
|
- int i = 1;
|
|
|
|
|
-
|
|
|
|
|
- /* set these now so if we fail disconnect_server() can cleanup right. */
|
|
|
|
|
- dcc[idx].sock = serv;
|
|
|
|
|
- servidx = idx;
|
|
|
|
|
- setsockopt(serv, 6, TCP_NODELAY, &i, sizeof(int));
|
|
|
|
|
- /* Queue standard login */
|
|
|
|
|
- dcc[idx].timeval = now;
|
|
|
|
|
- SERVER_SOCKET.timeout_val = &server_timeout;
|
|
|
|
|
- /* Another server may have truncated it, so use the original */
|
|
|
|
|
- strcpy(botname, origbotname);
|
|
|
|
|
- /* Start alternate nicks from the beginning */
|
|
|
|
|
- altnick_char = 0;
|
|
|
|
|
-
|
|
|
|
|
- /* Wait for async result now */
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-#endif /* NO */
|
|
|
|
|
#endif /* LEAF */
|
|
#endif /* LEAF */
|