Sfoglia il codice sorgente

Make dns_info fields more clear

Bryan Drewery 5 mesi fa
parent
commit
89ca1ce463
5 ha cambiato i file con 18 aggiunte e 20 eliminazioni
  1. 2 2
      src/adns.cc
  2. 9 9
      src/botnet.cc
  3. 3 3
      src/dcc.cc
  4. 2 4
      src/dcc.h
  5. 2 2
      src/mod/server.mod/servmsg.cc

+ 2 - 2
src/adns.cc

@@ -251,9 +251,9 @@ static void kill_dcc_dnswait(int idx, void *x)
 	struct dns_info *p = (struct dns_info *) x;
 
 	if (p) {
-		free(p->cbuf);
-		free(p->cptr);
+		free(p->caller_data);
 		// free(p) is same thing here.
+		assert(p == dcc[idx].u.other);
 		free(dcc[idx].u.other);
 		dcc[idx].u.other = NULL;
 	}

+ 9 - 9
src/botnet.cc

@@ -1084,8 +1084,8 @@ int botlink(const char *linker, int idx, char *nick)
       dcc[i].user = u;
       strlcpy(dcc[i].nick, nick, sizeof(dcc[i].nick));
       strlcpy(dcc[i].host, address, sizeof(dcc[i].host));
-      dcc[i].u.dns->cptr = strdup(linker);
-      dcc[i].u.dns->ibuf = idx;
+      dcc[i].u.dns->caller_data = strdup(linker);
+      dcc[i].u.dns->caller_idx = idx;
       dcc[i].bot = 1;
 
       if (unix_domain) {
@@ -1122,7 +1122,7 @@ static void botlink_dns_callback(int id, void *client_data, const char *host,
     return;
 
 //  if (valid_idx(i)) {
-//    idx = dcc[i].u.dns->ibuf;
+//    idx = dcc[i].u.dns->caller_idx;
 //  }
 
   bd::String ip_from_dns;
@@ -1154,10 +1154,10 @@ static void botlink_dns_callback(int id, void *client_data, const char *host,
 
 static void botlink_real(int i)
 {
-  int idx = dcc[i].u.dns->ibuf;
-  char *linker = strdup(dcc[i].u.dns->cptr);
-  free(dcc[i].u.dns->cptr);
-  dcc[i].u.dns->cptr = NULL;
+  int idx = dcc[i].u.dns->caller_idx;
+  char *linker = strdup((char *)dcc[i].u.dns->caller_data);
+  free(dcc[i].u.dns->caller_data);
+  dcc[i].u.dns->caller_data = NULL;
 
   changeover_dcc(i, &DCC_FORK_BOT, sizeof(struct bot_info));
   dcc[i].timeval = now;
@@ -1279,7 +1279,7 @@ void tandem_relay(int idx, char *nick, int i)
   dcc[idx].u.relay->sock = -1;
 
   dcc[i].timeval = now;
-  dcc[i].u.dns->ibuf = idx;
+  dcc[i].u.dns->caller_idx = idx;
   
   int dns_id = egg_dns_lookup(bi->address, 20, tandem_relay_dns_callback, (void *) (long) i);
   if (dns_id >= 0)
@@ -1302,7 +1302,7 @@ static void tandem_relay_dns_callback(int id, void *client_data,
     return;
 
   if (valid_idx(i))
-    idx = dcc[i].u.dns->ibuf;
+    idx = dcc[i].u.dns->caller_idx;
   
   if (idx < 0) {
     putlog(LOG_MISC, "*", "Can't find user for relay!  %d -> %d", i, idx);

+ 3 - 3
src/dcc.cc

@@ -1493,7 +1493,7 @@ dcc_telnet(int idx, char *buf, int ii)
   dcc[i].timeval = now;
   strlcpy(dcc[i].nick, "*", sizeof(dcc[i].nick));
 
-  dcc[i].u.dns->ibuf = idx;
+  dcc[i].u.dns->caller_idx = idx;
 
   int dns_id = egg_dns_reverse(s, 20, dcc_telnet_dns_callback, (void *) (long) i);
   if (dns_id >= 0)
@@ -1512,7 +1512,7 @@ static void dcc_telnet_dns_callback(int id, void *client_data, const char *ip,
   if (!valid_dns_id(i, id))
     return;
 
-  int idx = dcc[i].u.dns->ibuf;
+  int idx = dcc[i].u.dns->caller_idx;
 
   if (!valid_idx(idx)) {
     putlog(LOG_BOTS, "*", "Lost listening socket while resolving %s", dcc[i].host);
@@ -1558,7 +1558,7 @@ static void dcc_telnet_dns_forward_callback(int id, void *client_data,
   char s2[UHOSTLEN + 20] = "";
 
   if (valid_idx(i))
-    idx = dcc[i].u.dns->ibuf;
+    idx = dcc[i].u.dns->caller_idx;
 
   if (!valid_idx(idx)) {
     putlog(LOG_BOTS, "*", "Lost listening socket while resolving %s", iptostr(htonl(dcc[i].addr)));

+ 2 - 4
src/dcc.h

@@ -75,10 +75,8 @@ struct dcc_t {
 };
 
 struct dns_info {
-  char *cbuf;			/* free`d when done */
-  char *cptr;
-  int ibuf;
-  int ibuf2;
+  void *caller_data;			/* free`d when done */
+  int caller_idx;
 //  struct dcc_table *type;       /* type we are doing the lookup for          */
 };
 

+ 2 - 2
src/mod/server.mod/servmsg.cc

@@ -2121,7 +2121,7 @@ static void connect_server(void)
 
     dcc[newidx].timeval = now;
     dcc[newidx].sock = -1;
-    dcc[newidx].u.dns->cbuf = strdup(pass);
+    dcc[newidx].u.dns->caller_data = strdup(pass);
 
     cycle_time = server_cycle_wait;		/* wait N seconds before attempting next server connect */
 
@@ -2186,7 +2186,7 @@ static void server_dns_callback(int id, void *client_data, const char *host,
   if (addr.family == AF_INET)
     dcc[idx].addr = htonl(addr.u.addr.s_addr);
 
-  strlcpy(serverpass, (char *) dcc[idx].u.dns->cbuf, sizeof(serverpass));
+  strlcpy(serverpass, (char *) dcc[idx].u.dns->caller_data, sizeof(serverpass));
   changeover_dcc(idx, &SERVER_SOCKET, 0);
 
   //No proxy, use identd, 2 = spoof ident