Fixed MOTD command reply sending.
[silc.git] / apps / silcd / command.c
index c89aaf71c14261fb590a696abb2dae1cd42ee07d..2a354d25f40102476b71705f6e56b46101d89baf 100644 (file)
@@ -823,7 +823,7 @@ SILC_SERVER_CMD_FUNC(list)
 
   /* If we are normal server, send the command to router, since we
      want to know all channels in the network. */
-  if (!cmd->pending && server->server_type == SILC_SERVER && 
+  if (!cmd->pending && server->server_type != SILC_ROUTER && 
       !server->standalone) {
     SilcBuffer tmpbuf;
     SilcUInt16 old_ident;
@@ -1212,19 +1212,13 @@ SILC_SERVER_CMD_FUNC(invite)
   /* Send command reply */
   tmp = silc_argument_get_arg_type(cmd->args, 1, &len);
 
-  if (add || del)
-    packet = 
-      silc_command_reply_payload_encode_va(SILC_COMMAND_INVITE,
-                                          SILC_STATUS_OK, 0, ident, 2,
-                                          2, tmp, len,
-                                          3, channel->invite_list,
-                                          channel->invite_list ?
-                                          strlen(channel->invite_list) : 0);
-  else
-    packet = 
-      silc_command_reply_payload_encode_va(SILC_COMMAND_INVITE,
-                                          SILC_STATUS_OK, 0, ident, 1,
-                                          2, tmp, len);
+  packet = 
+    silc_command_reply_payload_encode_va(SILC_COMMAND_INVITE,
+                                        SILC_STATUS_OK, 0, ident, 2,
+                                        2, tmp, len,
+                                        3, channel->invite_list,
+                                        channel->invite_list ?
+                                        strlen(channel->invite_list) : 0);
   silc_server_packet_send(server, cmd->sock, SILC_PACKET_COMMAND_REPLY, 0, 
                          packet->data, packet->len, FALSE);
   silc_buffer_free(packet);
@@ -2377,7 +2371,7 @@ SILC_SERVER_CMD_FUNC(motd)
     }
 
     if (!entry) {
-      silc_server_command_send_status_reply(cmd, SILC_COMMAND_INFO,
+      silc_server_command_send_status_reply(cmd, SILC_COMMAND_MOTD,
                                            SILC_STATUS_ERR_NO_SUCH_SERVER, 0);
       goto out;
     }
@@ -3633,12 +3627,14 @@ SILC_SERVER_CMD_FUNC(watch)
 
   SILC_SERVER_COMMAND_CHECK(SILC_COMMAND_WATCH, cmd, 1, 3);
 
-  if (server->server_type == SILC_SERVER && !server->standalone) {
+  if (server->server_type != SILC_ROUTER && !server->standalone) {
     if (!cmd->pending) {
       /* Send the command to router */
       SilcBuffer tmpbuf;
       SilcUInt16 old_ident;
 
+      SILC_LOG_DEBUG(("Forwarding WATCH to router"));
+
       old_ident = silc_command_get_ident(cmd->payload);
       silc_command_set_ident(cmd->payload, ++server->cmd_ident);
       tmpbuf = silc_command_payload_encode_payload(cmd->payload);
@@ -3659,6 +3655,8 @@ SILC_SERVER_CMD_FUNC(watch)
       /* Received reply from router, just send same data to the client. */
       SilcServerCommandReplyContext reply = context2;
       SilcStatus status;
+
+      SILC_LOG_DEBUG(("Received reply to WATCH from router"));
       silc_command_get_status(reply->payload, &status, NULL);
       silc_server_command_send_status_reply(cmd, SILC_COMMAND_WATCH, status,
                                            0);