From 7bcbbb7944722e83471a84fce8fb2b3bc3ccfe65 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Tue, 4 Feb 2003 20:53:16 +0000 Subject: [PATCH] Fixed invite/ban list sending after the string rewrite. --- apps/silcd/command.c | 52 +++++++++++----------------------------- apps/silcd/server_util.c | 12 ++++------ 2 files changed, 19 insertions(+), 45 deletions(-) diff --git a/apps/silcd/command.c b/apps/silcd/command.c index 66ecc114..f5fcb1b4 100644 --- a/apps/silcd/command.c +++ b/apps/silcd/command.c @@ -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); } diff --git a/apps/silcd/server_util.c b/apps/silcd/server_util.c index a27dc97a..0c9b2b12 100644 --- a/apps/silcd/server_util.c +++ b/apps/silcd/server_util.c @@ -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)); } -- 2.24.0