Reverted a change made to CUMODE command which broke it.
[silc.git] / apps / silcd / server.c
index 10530e00d7d4cacffbb5f65e07290a0eb3a5b6e9..0f3e2da518a05afdb0a171c576690dddf8a98066 100644 (file)
@@ -77,8 +77,6 @@ int silc_server_alloc(SilcServer *new_server)
 
 void silc_server_free(SilcServer server)
 {
-  int i;
-
   if (!server)
     return;
 
@@ -94,13 +92,6 @@ void silc_server_free(SilcServer server)
   }
 #endif
 
-  for (i = 0; i < server->config->param.connections_max; i++) {
-    if (!server->sockets[i])
-      continue;
-    silc_socket_free(server->sockets[i]);
-  }
-  silc_free(server->sockets);
-
   silc_server_config_unref(&server->config_ref);
   if (server->rng)
     silc_rng_free(server->rng);
@@ -584,6 +575,16 @@ void silc_server_stop(SilcServer server)
   SILC_LOG_DEBUG(("Stopping server"));
 
   if (server->schedule) {
+    int i;
+
+    for (i = 0; i < server->config->param.connections_max; i++) {
+      if (!server->sockets[i])
+       continue;
+      silc_socket_free(server->sockets[i]);
+    }
+    silc_free(server->sockets);
+    server->sockets = NULL;
+
     silc_schedule_stop(server->schedule);
     silc_schedule_uninit(server->schedule);
     server->schedule = NULL;