X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fserver_util.c;fp=apps%2Fsilcd%2Fserver_util.c;h=084628cb7affdd65cc50889d0aa982a153ffa0d9;hb=8ef48975ffcb3daee6167e9766c2b344c73152d1;hp=545ec504320478204ed4152f74d6123711f880a1;hpb=a6edbe541e15f554bde13f47cb7042201ab3048b;p=silc.git diff --git a/apps/silcd/server_util.c b/apps/silcd/server_util.c index 545ec504..084628cb 100644 --- a/apps/silcd/server_util.c +++ b/apps/silcd/server_util.c @@ -1056,9 +1056,12 @@ silc_server_find_socket_by_host(SilcServer server, SilcUInt32 silc_server_num_sockets_by_remote(SilcServer server, const char *ip, const char *hostname, - SilcUInt16 port) + SilcUInt16 port, + SilcConnectionType type) { SilcServerConnection conn; + SilcIDListData idata; + SilcConnectionType t = SILC_CONN_UNKNOWN; int count = 0; if (!ip && !hostname) @@ -1066,9 +1069,14 @@ SilcUInt32 silc_server_num_sockets_by_remote(SilcServer server, silc_dlist_start(server->conns); while ((conn = silc_dlist_get(server->conns))) { + if (conn->sock) { + idata = silc_packet_get_context(conn->sock); + if (idata) + t = idata->conn_type; + } if (((ip && !strcmp(conn->remote_host, ip)) || (hostname && !strcmp(conn->remote_host, hostname))) && - conn->remote_port == port) + conn->remote_port == port && t == type) count++; }