X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fserver.c;h=61b4c50dca6239703ae171a18615f6e65693a208;hb=a818c5b5411bbc4436d1c5f011236985c96bb787;hp=c2caa843ab5c8fe977e536bf8e2d3c3d0b264540;hpb=f5655eda8412bc7b03b6162cad01ad612719ad4a;p=silc.git diff --git a/apps/silcd/server.c b/apps/silcd/server.c index c2caa843..61b4c50d 100644 --- a/apps/silcd/server.c +++ b/apps/silcd/server.c @@ -845,7 +845,7 @@ SILC_TASK_CALLBACK(silc_server_connect_to_router_final) SilcBuffer packet; SilcServerHBContext hb_context; unsigned char *id_string; - uint32 id_len; + SilcUInt32 id_len; SilcIDListData idata; SilcServerConfigConnParams *param; @@ -1041,9 +1041,9 @@ silc_server_accept_new_connection_lookup(SilcSocketConnection sock, port = server->sockets[server->sock]->port; /* Listenning port */ /* Check whether this connection is denied to connect to us. */ - deny = silc_server_config_find_denied(server, sock->ip, port); + deny = silc_server_config_find_denied(server, sock->ip); if (!deny) - deny = silc_server_config_find_denied(server, sock->hostname, port); + deny = silc_server_config_find_denied(server, sock->hostname); if (deny) { /* The connection is denied */ SILC_LOG_INFO(("Connection %s (%s) is denied", @@ -1284,8 +1284,8 @@ SILC_TASK_CALLBACK(silc_server_accept_new_connection_final) SilcServerHBContext hb_context; SilcUnknownEntry entry = (SilcUnknownEntry)sock->user_data; void *id_entry; - uint32 hearbeat_timeout = server->config->param.keepalive_secs; - uint32 num_sockets; + SilcUInt32 hearbeat_timeout = server->config->param.keepalive_secs; + SilcUInt32 num_sockets; SILC_LOG_DEBUG(("Start")); @@ -1317,7 +1317,7 @@ SILC_TASK_CALLBACK(silc_server_accept_new_connection_final) { SilcClientEntry client; SilcServerConfigClient *conn = ctx->cconfig; - uint32 max_per_host = server->config->param.connections_max_per_host; + SilcUInt32 max_per_host = server->config->param.connections_max_per_host; /* Check for maximum connections limit */ if (conn->param) { @@ -1383,10 +1383,10 @@ SILC_TASK_CALLBACK(silc_server_accept_new_connection_final) bool backup_local = FALSE; bool backup_router = FALSE; char *backup_replace_ip = NULL; - uint16 backup_replace_port = 0; + SilcUInt16 backup_replace_port = 0; SilcServerConfigServer *sconn = ctx->sconfig; SilcServerConfigRouter *rconn = ctx->rconfig; - uint32 max_per_host = server->config->param.connections_max_per_host; + SilcUInt32 max_per_host = server->config->param.connections_max_per_host; if (ctx->conn_type == SILC_SOCKET_TYPE_ROUTER && rconn) { if (rconn->param) { @@ -1562,7 +1562,7 @@ SILC_TASK_CALLBACK(silc_server_packet_process) SilcIDListData idata; SilcCipher cipher = NULL; SilcHmac hmac = NULL; - uint32 sequence = 0; + SilcUInt32 sequence = 0; int ret; if (!sock) @@ -2288,7 +2288,7 @@ void silc_server_packet_parse_type(SilcServer server, /* Creates connection to a remote router. */ void silc_server_create_connection(SilcServer server, - const char *remote_host, uint32 port) + const char *remote_host, SilcUInt32 port) { SilcServerConnection sconn; @@ -2642,6 +2642,7 @@ void silc_server_remove_from_channels(SilcServer server, /* Remove client from channel's client list */ silc_hash_table_del(channel->user_list, chl->client); + channel->user_count--; /* If there is no global users on the channel anymore mark the channel as local channel. Do not check if the removed client is local client. */ @@ -2679,6 +2680,7 @@ void silc_server_remove_from_channels(SilcServer server, while (silc_hash_table_get(&htl2, NULL, (void *)&chl2)) { silc_hash_table_del(chl2->client->channels, channel); silc_hash_table_del(channel->user_list, chl2->client); + channel->user_count--; silc_free(chl2); } silc_hash_table_list_reset(&htl2); @@ -2766,6 +2768,7 @@ int silc_server_remove_from_one_channel(SilcServer server, /* Remove client from channel's client list */ silc_hash_table_del(channel->user_list, chl->client); + channel->user_count--; /* If there is no global users on the channel anymore mark the channel as local channel. Do not check if the client is local client. */ @@ -2802,6 +2805,7 @@ int silc_server_remove_from_one_channel(SilcServer server, while (silc_hash_table_get(&htl2, NULL, (void *)&chl2)) { silc_hash_table_del(chl2->client->channels, channel); silc_hash_table_del(channel->user_list, chl2->client); + channel->user_count--; silc_free(chl2); } silc_hash_table_list_reset(&htl2); @@ -3022,11 +3026,11 @@ SILC_TASK_CALLBACK(silc_server_channel_key_rekey) bool silc_server_create_channel_key(SilcServer server, SilcChannelEntry channel, - uint32 key_len) + SilcUInt32 key_len) { int i; unsigned char channel_key[32], hash[32]; - uint32 len; + SilcUInt32 len; SILC_LOG_DEBUG(("Generating channel key")); @@ -3062,8 +3066,7 @@ bool silc_server_create_channel_key(SilcServer server, /* Save the key */ channel->key_len = len * 8; - channel->key = silc_calloc(len, sizeof(*channel->key)); - memcpy(channel->key, channel_key, len); + channel->key = silc_memdup(channel_key, len); memset(channel_key, 0, sizeof(channel_key)); /* Generate HMAC key from the channel key data and set it */ @@ -3106,7 +3109,7 @@ SilcChannelEntry silc_server_save_channel_key(SilcServer server, SilcChannelKeyPayload payload = NULL; SilcChannelID *id = NULL; unsigned char *tmp, hash[32]; - uint32 tmp_len; + SilcUInt32 tmp_len; char *cipher; SILC_LOG_DEBUG(("Start")); @@ -3174,8 +3177,7 @@ SilcChannelEntry silc_server_save_channel_key(SilcServer server, /* Save the key */ channel->key_len = tmp_len * 8; - channel->key = silc_calloc(tmp_len, sizeof(unsigned char)); - memcpy(channel->key, tmp, tmp_len); + channel->key = silc_memdup(tmp, tmp_len); silc_cipher_set_key(channel->channel_key, tmp, channel->key_len); /* Generate HMAC key from the channel key data and set it */ @@ -3279,7 +3281,7 @@ static void silc_server_announce_get_servers(SilcServer server, } static SilcBuffer -silc_server_announce_encode_notify(SilcNotifyType notify, uint32 argc, ...) +silc_server_announce_encode_notify(SilcNotifyType notify, SilcUInt32 argc, ...) { va_list ap; SilcBuffer p; @@ -3529,7 +3531,7 @@ void silc_server_announce_get_channels(SilcServer server, SilcBuffer *channels, SilcBuffer *channel_users, SilcBuffer **channel_users_modes, - uint32 *channel_users_modes_c, + SilcUInt32 *channel_users_modes_c, SilcBuffer **channel_topics, SilcChannelID ***channel_ids, unsigned long creation_time) @@ -3538,8 +3540,8 @@ void silc_server_announce_get_channels(SilcServer server, SilcIDCacheEntry id_cache; SilcChannelEntry channel; unsigned char *cid; - uint32 id_len; - uint16 name_len; + SilcUInt32 id_len; + SilcUInt16 name_len; int len; int i = *channel_users_modes_c; bool announce; @@ -3626,7 +3628,7 @@ void silc_server_announce_channels(SilcServer server, SilcBuffer channels = NULL, channel_users = NULL; SilcBuffer *channel_users_modes = NULL; SilcBuffer *channel_topics = NULL; - uint32 channel_users_modes_c = 0; + SilcUInt32 channel_users_modes_c = 0; SilcChannelID **channel_ids = NULL; SILC_LOG_DEBUG(("Announcing channels and channel users")); @@ -3748,14 +3750,14 @@ void silc_server_get_users_on_channel(SilcServer server, SilcChannelEntry channel, SilcBuffer *user_list, SilcBuffer *mode_list, - uint32 *user_count) + SilcUInt32 *user_count) { SilcChannelClientEntry chl; SilcHashTableList htl; SilcBuffer client_id_list; SilcBuffer client_mode_list; SilcBuffer idp; - uint32 list_count = 0, len = 0; + SilcUInt32 list_count = 0, len = 0; silc_hash_table_list(channel->user_list, &htl); while (silc_hash_table_get(&htl, NULL, (void *)&chl)) @@ -3801,11 +3803,11 @@ void silc_server_save_users_on_channel(SilcServer server, SilcClientID *noadd, SilcBuffer user_list, SilcBuffer mode_list, - uint32 user_count) + SilcUInt32 user_count) { int i; - uint16 idp_len; - uint32 mode; + SilcUInt16 idp_len; + SilcUInt32 mode; SilcClientID *client_id; SilcClientEntry client; SilcIDCacheEntry cache; @@ -3880,6 +3882,7 @@ void silc_server_save_users_on_channel(SilcServer server, chl->channel = channel; silc_hash_table_add(channel->user_list, chl->client, chl); silc_hash_table_add(client->channels, chl->channel, chl); + channel->user_count++; } } } @@ -3891,7 +3894,7 @@ void silc_server_save_users_on_channel(SilcServer server, SilcSocketConnection silc_server_get_client_route(SilcServer server, unsigned char *id_data, - uint32 id_len, + SilcUInt32 id_len, SilcClientID *client_id, SilcIDListData *idata) { @@ -3976,8 +3979,8 @@ SilcBuffer silc_server_get_client_channel_list(SilcServer server, SilcChannelClientEntry chl; SilcHashTableList htl; unsigned char *cid; - uint32 id_len; - uint16 name_len; + SilcUInt32 id_len; + SilcUInt16 name_len; int len; silc_hash_table_list(client->channels, &htl);