diff -urP silc-server-0.9.18-orig/silcd/command.c silc-server-0.9.18/silcd/command.c --- silc-server-0.9.18-orig/silcd/command.c 2003-03-03 10:56:04.000000000 -0600 +++ silc-server-0.9.18/silcd/command.c 2004-06-10 17:03:02.000000000 -0500 @@ -1729,6 +1729,7 @@ { SilcServerCommandContext cmd = (SilcServerCommandContext)context; SilcServer server = cmd->server; + SilcClientEntry client = (SilcClientEntry)cmd->sock->user_data; SilcServerID *server_id; unsigned char *tmp; SilcUInt32 tmp_len; @@ -1738,6 +1739,14 @@ SILC_SERVER_COMMAND_CHECK(SILC_COMMAND_STATS, cmd, 1, 1); + /* Check whether client has the permissions. */ + if (!(client->mode & SILC_UMODE_SERVER_OPERATOR) && + !(client->mode & SILC_UMODE_ROUTER_OPERATOR)) { + silc_server_command_send_status_reply(cmd, SILC_COMMAND_PRIV_CONNECT, + SILC_STATUS_ERR_NO_SERVER_PRIV, 0); + goto out; + } + /* Get Server ID */ tmp = silc_argument_get_arg_type(cmd->args, 1, &tmp_len); if (!tmp) { diff -urP silc-server-0.9.18-orig/silcd/server.h silc-server-0.9.18/silcd/server.h --- silc-server-0.9.18-orig/silcd/server.h 2003-03-03 10:56:04.000000000 -0600 +++ silc-server-0.9.18/silcd/server.h 2004-06-10 13:10:28.000000000 -0500 @@ -64,6 +64,8 @@ #define SILC_ROUTER 1 #define SILC_BACKUP_ROUTER 2 +#define SILC_MASK_STATS 1 + /* Default parameter values */ /* Connection retry timeout. We implement exponential backoff algorithm diff -urP silc-server-0.9.18-orig/silcd/server_util.c silc-server-0.9.18/silcd/server_util.c --- silc-server-0.9.18-orig/silcd/server_util.c 2003-03-03 10:56:04.000000000 -0600 +++ silc-server-0.9.18/silcd/server_util.c 2004-06-11 08:28:53.000000000 -0500 @@ -1518,6 +1518,7 @@ ("Your host is %s, running version %s", server->server_name, server_version)); + if (!SILC_MASK_STATS) { if (server->server_type == SILC_ROUTER) { SILC_SERVER_SEND_NOTIFY(server, sock, SILC_NOTIFY_TYPE_NONE, ("There are %d clients, %d servers and %d " @@ -1554,6 +1555,7 @@ server->stat.my_clients, server->stat.my_channels)); } + } if (server->stat.server_ops || server->stat.router_ops) SILC_SERVER_SEND_NOTIFY(server, sock, SILC_NOTIFY_TYPE_NONE,