Mark no_reconnect after DETACH command.
[silc.git] / apps / irssi / src / silc / core / client_ops.c
index ff9e962dea1b017b39622128de49be60d27b3d3e..407ad720f30fd8a910a0ff2d078459893e513157 100644 (file)
@@ -944,6 +944,7 @@ void silc_command(SilcClient client, SilcClientConnection conn,
   }
 
   switch (command) {
+
   case SILC_COMMAND_INVITE:
     printformat_module("fe-common/silc", server, NULL,
                       MSGLEVEL_CRAP, SILCTXT_CHANNEL_INVITING,
@@ -952,6 +953,11 @@ void silc_command(SilcClient client, SilcClientConnection conn,
                        (char *)conn->current_channel->channel_name :
                        (char *)cmd_context->argv[1]));
     break;
+
+  case SILC_COMMAND_DETACH:
+    server->no_reconnect = TRUE;
+    break;
+
   default:
     break;
   }
@@ -1116,11 +1122,11 @@ silc_command_reply(SilcClient client, SilcClientConnection conn,
          }
        }
        break;
-      }
-      
-      if (!success)
+      } else if (!success) {
+       silc_say_error("WHOIS: %s", silc_get_status_message(status));
        return;
-      
+      }
+
       client_entry = va_arg(vp, SilcClientEntry);
       nickname = va_arg(vp, char *);
       username = va_arg(vp, char *);
@@ -1247,10 +1253,10 @@ silc_command_reply(SilcClient client, SilcClientConnection conn,
          silc_say_error("%s: %s", tmp, 
                         silc_get_status_message(status));
        break;
-      }
-      
-      if (!success)
+      } else if (!success) {
+       silc_say_error("WHOWAS: %s", silc_get_status_message(status));
        return;
+      }
       
       (void)va_arg(vp, SilcClientEntry);
       nickname = va_arg(vp, char *);