Просмотр исходного кода

Fixed a bug in cmd_chaddr with copying over old hublevel/uplink

svn: 107
Bryan Drewery 23 лет назад
Родитель
Сommit
a378d389a3
1 измененных файлов с 6 добавлено и 1 удалено
  1. 6 1
      src/cmds.c

+ 6 - 1
src/cmds.c

@@ -1537,7 +1537,7 @@ static void cmd_chaddr(struct userrec *u, int idx, char *par)
 #else
   char *handle, *addr, *p, *q;
 #endif /* USE_IPV6 */
-  struct bot_addr *bi;
+  struct bot_addr *bi, *obi;
   struct userrec *u1;
 
   handle = newsplit(&par);
@@ -1561,6 +1561,7 @@ static void cmd_chaddr(struct userrec *u, int idx, char *par)
   putlog(LOG_CMDS, "*", "#%s# chaddr %s %s", dcc[idx].nick, handle, addr);
   dprintf(idx, "Changed bot's address.\n");
 
+  obi = (struct bot_addr *) get_user(&USERENTRY_BOTADDR, u1);
   bi = (struct bot_addr *) get_user(&USERENTRY_BOTADDR, u1);
   if (bi) {
     telnet_port = bi->telnet_port;
@@ -1569,6 +1570,10 @@ static void cmd_chaddr(struct userrec *u, int idx, char *par)
 
   bi = user_malloc(sizeof(struct bot_addr));
 
+  bi->uplink = user_malloc(strlen(obi->uplink) + 1);
+  strcpy(bi->uplink, obi->uplink);
+  bi->hublevel = obi->hublevel;
+
   q = strchr(addr, ':');
   if (!q) {
     bi->address = user_malloc(strlen(addr) + 1);