Fixed the server to check correctly number of connections per
[silc.git] / apps / silcd / server_util.c
index 7e83c5fc1947e8662d67a7441daf4d18f6a5d14f..4425e64dc5cdd96f4552b26c5af7692261205fad 100644 (file)
@@ -793,12 +793,14 @@ char *silc_server_name_modify_bad(const char *name, SilcUInt32 name_len)
 /* Find number of sockets by IP address indicated by `ip'. Returns 0 if
    socket connections with the IP address does not exist. */
 
-SilcUInt32 silc_server_num_sockets_by_ip(SilcServer server, const char *ip)
+SilcUInt32 silc_server_num_sockets_by_ip(SilcServer server, const char *ip,
+                                        SilcSocketType type)
 {
   int i, count;
 
   for (i = 0, count = 0; i < server->config->param.connections_max; i++) {
-    if (server->sockets[i] && !strcmp(server->sockets[i]->ip, ip))
+    if (server->sockets[i] && !strcmp(server->sockets[i]->ip, ip) &&
+       server->sockets[i]->type == type)
       count++;
   }