Przeglądaj źródła

* Store the pass in u.other

svn: 1437
Bryan Drewery 21 lat temu
rodzic
commit
6a002bac98
2 zmienionych plików z 5 dodań i 4 usunięć
  1. 0 1
      src/dcc.h
  2. 5 3
      src/mod/server.mod/servmsg.c

+ 0 - 1
src/dcc.h

@@ -39,7 +39,6 @@ struct dcc_t {
     int ident_sock;
     int ident_sock;
     int dns_id;
     int dns_id;
     void *other;
     void *other;
-    char buf[101];
   } u;                          /* Special use depending on type        */
   } u;                          /* Special use depending on type        */
 
 
   in_addr_t addr;                      /* IP address in host byte order         */
   in_addr_t addr;                      /* IP address in host byte order         */

+ 5 - 3
src/mod/server.mod/servmsg.c

@@ -1351,7 +1351,7 @@ static void connect_server(void)
  
  
     trying_server = now;
     trying_server = now;
 
 
-    newidx = new_dcc(&SERVER_SOCKET, 0);
+    newidx = new_dcc(&SERVER_SOCKET, strlen(pass) + 1);
     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;
@@ -1373,7 +1373,7 @@ static void connect_server(void)
 
 
     dcc[newidx].timeval = now;
     dcc[newidx].timeval = now;
     dcc[newidx].sock = -1;
     dcc[newidx].sock = -1;
-    strcpy(dcc[newidx].u.buf, pass);
+    dcc[newidx].u.other = (void *) strdup(pass);
 
 
     cycle_time = 15;		/* wait 15 seconds before attempting next server connect */
     cycle_time = 15;		/* wait 15 seconds before attempting next server connect */
 
 
@@ -1405,7 +1405,9 @@ static void server_dns_callback(void *client_data, const char *host, char **ips)
   if (addr.family == AF_INET)
   if (addr.family == AF_INET)
     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.other);
+  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);