updates.
[silc.git] / apps / silcd / server.c
index 54dc325a85814406c9108f2e6153185cd7812e27..0bb81178e249b1020161923619f4660733393768 100644 (file)
@@ -2300,7 +2300,7 @@ void silc_server_remove_from_channels(SilcServer server,
                                         signoff_message, signoff_message ?
                                         strlen(signoff_message) : 0);
 
-    if (keygen) {
+    if (keygen && !(channel->mode & SILC_CHANNEL_MODE_PRIVKEY)) {
       /* Re-generate channel key */
       silc_server_create_channel_key(server, channel, 0);
       
@@ -2575,6 +2575,11 @@ void silc_server_create_channel_key(SilcServer server,
 
   SILC_LOG_DEBUG(("Generating channel key"));
 
+  if (channel->mode & SILC_CHANNEL_MODE_PRIVKEY) {
+    SILC_LOG_DEBUG(("Channel has private keys, will not generate new key"));
+    return;
+  }
+
   if (!channel->channel_key)
     if (!silc_cipher_alloc("aes-256-cbc", &channel->channel_key))
       return;