Fixed invite/ban list sending after the string rewrite.
authorPekka Riikonen <priikone@silcnet.org>
Tue, 4 Feb 2003 20:53:16 +0000 (20:53 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Tue, 4 Feb 2003 20:53:16 +0000 (20:53 +0000)
apps/silcd/command.c
apps/silcd/server_util.c

index 66ecc11424818b43922e5374b669e81d891f8df4..f5fcb1b4846bf6d5dc3e1bcb6741268decb8ace7 100644 (file)
@@ -1222,14 +1222,9 @@ SILC_SERVER_CMD_FUNC(invite)
                                          channel->invite_list)),
                       SILC_STR_END);
     silc_hash_table_list(channel->invite_list, &htl);
-    while (silc_hash_table_get(&htl, (void **)&type, (void **)&tmp2)) {
-      if (type == 1)
-       list = silc_argument_payload_encode_one(list, (char *)tmp2,
-                                               strlen((char *)tmp2), type);
-      else
-       list = silc_argument_payload_encode_one(list, tmp2->data, tmp2->len,
-                                               type);
-    }
+    while (silc_hash_table_get(&htl, (void **)&type, (void **)&tmp2))
+      list = silc_argument_payload_encode_one(list, tmp2->data, tmp2->len,
+                                             type);
     silc_hash_table_list_reset(&htl);
   }
 
@@ -2050,17 +2045,10 @@ static void silc_server_command_join_channel(SilcServer server,
                       SILC_STR_END);
 
     silc_hash_table_list(channel->invite_list, &htl);
-    while (silc_hash_table_get(&htl, (void **)&tmp_len, (void **)&reply)) {
-      if (tmp_len == 1)
-       invite_list = silc_argument_payload_encode_one(invite_list,
-                                                      (char *)reply,
-                                                      strlen((char *)reply),
-                                                      tmp_len);
-      else
-       invite_list = silc_argument_payload_encode_one(invite_list,
-                                                      reply->data,
-                                                      reply->len, tmp_len);
-    }
+    while (silc_hash_table_get(&htl, (void **)&tmp_len, (void **)&reply))
+      invite_list = silc_argument_payload_encode_one(invite_list,
+                                                    reply->data,
+                                                    reply->len, tmp_len);
     silc_hash_table_list_reset(&htl);
   }
 
@@ -2076,17 +2064,10 @@ static void silc_server_command_join_channel(SilcServer server,
                       SILC_STR_END);
 
     silc_hash_table_list(channel->ban_list, &htl);
-    while (silc_hash_table_get(&htl, (void **)&tmp_len, (void **)&reply)) {
-      if (tmp_len == 1)
-       ban_list = silc_argument_payload_encode_one(ban_list,
-                                                   (char *)reply,
-                                                   strlen((char *)reply),
-                                                   tmp_len);
-      else
-       ban_list = silc_argument_payload_encode_one(ban_list,
-                                                   reply->data,
-                                                   reply->len, tmp_len);
-    }
+    while (silc_hash_table_get(&htl, (void **)&tmp_len, (void **)&reply))
+      ban_list = silc_argument_payload_encode_one(ban_list,
+                                                 reply->data,
+                                                 reply->len, tmp_len);
     silc_hash_table_list_reset(&htl);
   }
 
@@ -4215,14 +4196,9 @@ SILC_SERVER_CMD_FUNC(ban)
                                          channel->ban_list)),
                       SILC_STR_END);
     silc_hash_table_list(channel->ban_list, &htl);
-    while (silc_hash_table_get(&htl, (void **)&type, (void **)&tmp2)) {
-      if (type == 1)
-       list = silc_argument_payload_encode_one(list, (char *)tmp2,
-                                               strlen((char *)tmp2), type);
-      else
-       list = silc_argument_payload_encode_one(list, tmp2->data, tmp2->len,
-                                               type);
-    }
+    while (silc_hash_table_get(&htl, (void **)&type, (void **)&tmp2))
+      list = silc_argument_payload_encode_one(list, tmp2->data, tmp2->len,
+                                             type);
     silc_hash_table_list_reset(&htl);
   }
 
index a27dc97abc49ce0069cc5c5351b62d2bfa1f6fc9..0c9b2b1298d6b7d82f10fcd45aa9b2b36a684a7a 100644 (file)
@@ -1798,13 +1798,11 @@ void silc_server_inviteban_process(SilcServer server, SilcHashTable list,
          tmp2 = silc_calloc(1, sizeof(*tmp2));
          silc_hash_table_add(list, (void *)1, tmp2);
        }
-       if (tmp[len - 1] == ',') {
+       if (tmp[len - 1] == ',')
          tmp[len - 1] = '\0';
-         len--;
-       }
        if (len) {
-         silc_buffer_strformat(tmp2, tmp, len, SILC_STR_END);
-         silc_buffer_strformat(tmp2, ",", 1, SILC_STR_END);
+         silc_buffer_strformat(tmp2, tmp, SILC_STR_END);
+         silc_buffer_strformat(tmp2, ",", SILC_STR_END);
        }
 
       } else if (type == 2) {
@@ -1874,8 +1872,8 @@ void silc_server_inviteban_process(SilcServer server, SilcHashTable list,
            if (start && strlen(start) >= len) {
              end = start + len;
              n = silc_calloc(strlen(string) - len, sizeof(*n));
-             memcpy(n, string, start - string);
-             memcpy(n, end + 1, ((string + strlen(string)) - end) - 1);
+             strncat(n, string, start - string);
+             strncat(n, end + 1, ((string + strlen(string)) - end) - 1);
              silc_free(tmp2->head);
              silc_buffer_set(tmp2, n, strlen(n));
            }