updates.
[silc.git] / apps / silcd / server.c
index 6543828594e7ae6839715c16868684172c95be7d..a735140a7009c1f68cc03afb64683d693ed40f5a 100644 (file)
@@ -1697,12 +1697,9 @@ bool silc_server_packet_parse(SilcPacketParserContext *parser_context,
     break;
   case SILC_SOCKET_TYPE_SERVER:
   case SILC_SOCKET_TYPE_ROUTER:
-    /* Packets from servers are parsed as soon as possible */
-    silc_schedule_task_add(server->schedule, sock->sock,
-                          silc_server_packet_parse_real,
-                          (void *)parser_context, 0, 1,
-                          SILC_TASK_TIMEOUT,
-                          SILC_TASK_PRI_NORMAL);
+    /* Packets from servers are parsed immediately */
+    silc_server_packet_parse_real(server->schedule, 0, sock->sock,
+                                 parser_context);
     break;
   default:
     return TRUE;
@@ -2481,8 +2478,8 @@ void silc_server_remove_from_channels(SilcServer server,
        silc_schedule_task_del_by_context(server->schedule, channel->rekey);
       if (silc_idlist_del_channel(server->local_list, channel))
        server->stat.my_channels--;
-      else if (silc_idlist_del_channel(server->global_list, channel))
-       server->stat.my_channels--;
+      else 
+        silc_idlist_del_channel(server->global_list, channel);
       continue;
     }
 
@@ -2533,8 +2530,8 @@ void silc_server_remove_from_channels(SilcServer server,
       /* Remove the channel entry */
       if (silc_idlist_del_channel(server->local_list, channel))
        server->stat.my_channels--;
-      else if (silc_idlist_del_channel(server->global_list, channel))
-       server->stat.my_channels--;
+      else 
+        silc_idlist_del_channel(server->global_list, channel);
       continue;
     }
 
@@ -2601,8 +2598,8 @@ int silc_server_remove_from_one_channel(SilcServer server,
       silc_schedule_task_del_by_context(server->schedule, channel->rekey);
     if (silc_idlist_del_channel(server->local_list, channel))
       server->stat.my_channels--;
-    else if (silc_idlist_del_channel(server->global_list, channel))
-      server->stat.my_channels--;
+    else 
+      silc_idlist_del_channel(server->global_list, channel);
     silc_buffer_free(clidp);
     return FALSE;
   }
@@ -2653,8 +2650,8 @@ int silc_server_remove_from_one_channel(SilcServer server,
     /* Remove the channel entry */
     if (silc_idlist_del_channel(server->local_list, channel))
       server->stat.my_channels--;
-    else if (silc_idlist_del_channel(server->global_list, channel))
-      server->stat.my_channels--;
+    else 
+      silc_idlist_del_channel(server->global_list, channel);
     return FALSE;
   }