Do not send send_remove_id if standalone server.
authorPekka Riikonen <priikone@silcnet.org>
Fri, 2 Feb 2001 09:25:08 +0000 (09:25 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Fri, 2 Feb 2001 09:25:08 +0000 (09:25 +0000)
apps/silcd/command.c
apps/silcd/server.c

index 656cf67ce97084a0279780e0d9824b64df9f3a93..db82e83dd81c36c45b8fb229a70e06e51c87e190 100644 (file)
@@ -1914,6 +1914,8 @@ SILC_SERVER_CMD_FUNC(join)
     goto out;
   }
   client_id = silc_id_payload_parse_id(tmp, tmp_len);
+  if (!client_id)
+    goto out;
 
   /* Get cipher name */
   cipher = silc_argument_get_arg_type(cmd->args, 4, NULL);
index 4a55bac69f4db50002d00590654d0d272c935504..e5157b92a83c67a8418452d627518a72e9260882 100644 (file)
@@ -1630,7 +1630,7 @@ void silc_server_free_sock_user_data(SilcServer server,
       /* XXX must take some info to history before freeing */
 
       /* Send REMOVE_ID packet to routers. */
-      if (!server->standalone)
+      if (!server->standalone && server->router)
        silc_server_send_remove_id(server, server->router->connection,
                                   server->server_type == SILC_SERVER ?
                                   FALSE : TRUE, user_data->id, 
@@ -1647,10 +1647,11 @@ void silc_server_free_sock_user_data(SilcServer server,
       SilcServerEntry user_data = (SilcServerEntry)sock->user_data;
 
       /* Send REMOVE_ID packet to routers. */
-      silc_server_send_remove_id(server, server->router->connection,
-                                server->server_type == SILC_SERVER ?
-                                FALSE : TRUE, user_data->id, 
-                                SILC_ID_SERVER_LEN, SILC_ID_SERVER);
+      if (!server->standalone && server->router)
+       silc_server_send_remove_id(server, server->router->connection,
+                                  server->server_type == SILC_SERVER ?
+                                  FALSE : TRUE, user_data->id, 
+                                  SILC_ID_CLIENT_LEN, SILC_ID_CLIENT);
       break;
     }
     break;