updates.
[runtime.git] / lib / silcclient / command_reply.h
index 2b7acf7f346ee42578a4d2cceec007f2a1899350..d6f9faf1e28a2ffb88253d38f7d71bb91a2faecf 100644 (file)
@@ -39,8 +39,10 @@ typedef struct {
   SilcPacketContext *packet;
 
   /* If defined this executes the pending command. */
+  SilcClientPendingDestructor destructor;
+  SilcCommandCb callback;
   void *context;
-  SilcClientCommandCallback callback;
+  unsigned short ident;
 } *SilcClientCommandReplyContext;
 
 /* Macros */
@@ -53,23 +55,6 @@ typedef struct {
 #define SILC_CLIENT_CMD_REPLY_FUNC(func) \
 void silc_client_command_reply_##func(void *context)
 
-/* Macro used to execute command replies */
-#define SILC_CLIENT_COMMAND_REPLY_EXEC(ctx)            \
-do {                                                   \
-  SilcClientCommandReply *cmd;                         \
-                                                       \
-  for (cmd = silc_command_reply_list; cmd->cb; cmd++)  \
-    if (cmd->cmd == silc_command_get(ctx->payload)) {  \
-      cmd->cb(ctx);                                    \
-      break;                                           \
-    }                                                  \
-                                                       \
-  if (cmd == NULL) {                                   \
-    silc_free(ctx);                                    \
-    return;                                            \
-  }                                                    \
-} while(0)
-
 /* Prototypes */
 void silc_client_command_reply_process(SilcClient client,
                                       SilcSocketConnection sock,
@@ -81,7 +66,6 @@ SILC_CLIENT_CMD_REPLY_FUNC(nick);
 SILC_CLIENT_CMD_REPLY_FUNC(list);
 SILC_CLIENT_CMD_REPLY_FUNC(topic);
 SILC_CLIENT_CMD_REPLY_FUNC(invite);
-SILC_CLIENT_CMD_REPLY_FUNC(quit);
 SILC_CLIENT_CMD_REPLY_FUNC(kill);
 SILC_CLIENT_CMD_REPLY_FUNC(info);
 SILC_CLIENT_CMD_REPLY_FUNC(links);
@@ -99,7 +83,7 @@ SILC_CLIENT_CMD_REPLY_FUNC(cumode);
 SILC_CLIENT_CMD_REPLY_FUNC(kick);
 SILC_CLIENT_CMD_REPLY_FUNC(restart);
 SILC_CLIENT_CMD_REPLY_FUNC(close);
-SILC_CLIENT_CMD_REPLY_FUNC(die);
+SILC_CLIENT_CMD_REPLY_FUNC(shutdown);
 SILC_CLIENT_CMD_REPLY_FUNC(silcoper);
 SILC_CLIENT_CMD_REPLY_FUNC(leave);
 SILC_CLIENT_CMD_REPLY_FUNC(users);