Преглед изворни кода

* More misc fixes in transfer/share

svn: 1126
Bryan Drewery пре 22 година
родитељ
комит
651a95b117
3 измењених фајлова са 8 додато и 11 уклоњено
  1. 1 3
      src/mod/share.mod/share.c
  2. 5 8
      src/mod/transfer.mod/transfer.c
  3. 2 0
      src/users.c

+ 1 - 3
src/mod/share.mod/share.c

@@ -1076,6 +1076,7 @@ share_ufsend(int idx, char *par)
     sock = getsock(SOCK_BINARY);        /* Don't buffer this -> mark binary. */
 #endif /* USE_IPV6 */
     if (sock < 0 || open_telnet_dcc(sock, ip, port) < 0) {
+      fclose(f);
       killsock(sock);
       putlog(LOG_BOTS, "@", "Asynchronous connection failed!");
       dprintf(idx, "s e Can't connect to you!\n");
@@ -1092,7 +1093,6 @@ share_ufsend(int idx, char *par)
       dcc[i].u.xfer->f = f;
       dcc[i].sock = sock;
       strcpy(dcc[i].host, dcc[idx].nick);
-
       dcc[idx].status |= STAT_GETTING;
     }
   }
@@ -1431,13 +1431,11 @@ finish_share(int idx)
 
     killsock(dcc[j].sock);
     lostdcc(j);
-
     return;
   }
 
   /* SUCCESS! */
 
-
   unlink(dcc[idx].u.xfer->filename);
 
   loading = 0;

+ 5 - 8
src/mod/transfer.mod/transfer.c

@@ -306,6 +306,7 @@ void eof_dcc_fork_send(int idx)
       dcc[y].status &= ~STAT_GETTINGU;
     }
     putlog(LOG_BOTS, "*", "Failed binary transfer.");
+    unlink(dcc[idx].u.xfer->filename);
   } else {
     neterror(s1);
     if (!quiet_reject)
@@ -401,13 +402,11 @@ static void eof_dcc_send(int idx)
 	  (dcc[x].type->flags & DCT_BOT))
 	y = x;
     if (y) {
-      putlog(LOG_BOTS, "*",TRANSFER_USERFILE_LOST,
-	     dcc[y].nick);
+      putlog(LOG_BOTS, "*",TRANSFER_USERFILE_LOST, dcc[y].nick);
       unlink(dcc[idx].u.xfer->filename);
       /* Drop that bot */
       dprintf(y, "bye\n");
-      egg_snprintf(s, sizeof s,TRANSFER_USERFILE_DISCON,
-		   dcc[y].nick);
+      egg_snprintf(s, sizeof s,TRANSFER_USERFILE_DISCON, dcc[y].nick);
       botnet_send_unlinked(y, dcc[y].nick, s);
       chatout("*** %s %s\n", dcc[y].nick, s);
 
@@ -625,8 +624,7 @@ void dcc_get(int idx, char *buf, int len)
 	dcc[y].status &= ~STAT_SENDINGU;
         dcc[y].status |= STAT_UPDATED;
       }
-      putlog(LOG_BOTS, "*", "Completed binary file send to %s",
-	     dcc[y].nick);
+      putlog(LOG_BOTS, "*", "Completed binary file send to %s", dcc[y].nick);
       xnick[0] = 0;
 #ifdef HUB
       bupdating = 0;
@@ -651,8 +649,7 @@ void dcc_get(int idx, char *buf, int len)
   l = dcc_block;
   if (l == 0 || dcc[idx].status + l > dcc[idx].u.xfer->length)
     l = dcc[idx].u.xfer->length - dcc[idx].status;
-  dcc[idx].u.xfer->block_pending = pump_file_to_sock(dcc[idx].u.xfer->f,
-						     dcc[idx].sock, l);
+  dcc[idx].u.xfer->block_pending = pump_file_to_sock(dcc[idx].u.xfer->f, dcc[idx].sock, l);
   dcc[idx].status += l;
 }
 

+ 2 - 0
src/users.c

@@ -825,6 +825,7 @@ int readuserfile(const char *file, struct userrec **ret)
            if (channel_add(resultbuf, chan, options) != OK) {
              putlog(LOG_MISC, "*", "Channel parsing error in userfile on line %d", line);
              free(my_ptr);
+             fclose(f);
              return 0;
            }
            free(my_ptr);
@@ -947,6 +948,7 @@ int readuserfile(const char *file, struct userrec **ret)
 	  if (!attr[0] || !pass[0]) {
 	    putlog(LOG_MISC, "*", "* %s line: %d!", USERF_CORRUPT, line);
 	    lasthand[0] = 0;
+            fclose(f);
             return 0;
 	  } else {
             int isbot = 0;