X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fserver_util.c;h=de2d5d02148af1f6d31e5f87e1cde41a5bb2e518;hb=bbcf6d6759de9df452d8df3be8b906ddeb1317a5;hp=3a549ae7ac7dc0cc982e69468a7f261aeaad31f1;hpb=7ad7a5c30e47d85d3f1ab536e762aea6e15b73d0;p=silc.git diff --git a/apps/silcd/server_util.c b/apps/silcd/server_util.c index 3a549ae7..de2d5d02 100644 --- a/apps/silcd/server_util.c +++ b/apps/silcd/server_util.c @@ -43,7 +43,8 @@ silc_server_remove_clients_channels(SilcServer server, return; SILC_LOG_DEBUG(("Remove client %s from all channels", - client->nickname ? client->nickname : "")); + client->nickname ? client->nickname : + (unsigned char *)"")); if (silc_hash_table_find(clients, client, NULL, NULL)) silc_hash_table_del(clients, client); @@ -1514,7 +1515,7 @@ void silc_server_kill_client(SilcServer server, /* Remove the client from all channels. This generates new keys to the channels as well. */ silc_server_remove_from_channels(server, NULL, remote_client, FALSE, - NULL, TRUE); + NULL, TRUE, FALSE); /* Remove the client entry, If it is locally connected then we will also disconnect the client here */ @@ -1724,7 +1725,7 @@ bool silc_server_inviteban_match(SilcServer server, SilcHashTable list, unsigned char *tmp = NULL; SilcUInt32 len = 0, t; SilcHashTableList htl; - SilcBuffer entry; + SilcBuffer entry, idp = NULL; bool ret = FALSE; if (type < 1 || type > 3 || !check) @@ -1741,10 +1742,11 @@ bool silc_server_inviteban_match(SilcServer server, SilcHashTable list, return FALSE; } if (type == 3) { - tmp = silc_id_id2str(check, SILC_ID_CLIENT); - if (!tmp) + idp = silc_id_payload_encode(check, SILC_ID_CLIENT); + if (!idp) return FALSE; - len = silc_id_get_len(check, SILC_ID_CLIENT); + tmp = idp->data; + len = idp->len; } /* Compare the list */ @@ -1764,7 +1766,9 @@ bool silc_server_inviteban_match(SilcServer server, SilcHashTable list, } silc_hash_table_list_reset(&htl); - silc_free(tmp); + if (!idp) + silc_free(tmp); + silc_buffer_free(idp); return ret; } @@ -1907,8 +1911,8 @@ void silc_server_inviteban_process(SilcServer server, SilcHashTable list, /* Delete from the invite list */ silc_hash_table_list(list, &htl); while (silc_hash_table_get(&htl, (void **)&type, (void **)&tmp2)) { - if (type == 2 && !memcmp(tmp2->data, tmp, len)) { - silc_hash_table_del_by_context(list, (void *)2, tmp2); + if (type == 3 && !memcmp(tmp2->data, tmp, len)) { + silc_hash_table_del_by_context(list, (void *)3, tmp2); silc_buffer_free(tmp2); break; }