X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcclient%2Fcommand_reply.h;h=4e5cdbee8178e133c15d7940dfd7c73306bedb3e;hb=a818c5b5411bbc4436d1c5f011236985c96bb787;hp=30e669893e8bc7baaac9e117955195054d434058;hpb=622dbba14878964ca76301bdf9c8f59f3312fbc7;p=silc.git diff --git a/lib/silcclient/command_reply.h b/lib/silcclient/command_reply.h index 30e66989..4e5cdbee 100644 --- a/lib/silcclient/command_reply.h +++ b/lib/silcclient/command_reply.h @@ -1,16 +1,15 @@ /* - command_reply.h + command_reply.h - Author: Pekka Riikonen + Author: Pekka Riikonen Copyright (C) 1997 - 2001 Pekka Riikonen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - + the Free Software Foundation; version 2 of the License. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -27,11 +26,8 @@ typedef struct { SilcCommand cmd; } SilcClientCommandReply; -/* All client command replys */ -extern SilcClientCommandReply silc_command_reply_list[]; - /* Context sent as argument to all command reply functions */ -typedef struct { +struct SilcClientCommandReplyContextStruct { SilcClient client; SilcSocketConnection sock; SilcCommandPayload payload; @@ -39,21 +35,16 @@ typedef struct { SilcPacketContext *packet; /* If defined this executes the pending command. */ - SilcClientPendingDestructor destructor; SilcCommandCb callback; void *context; - unsigned short ident; -} *SilcClientCommandReplyContext; + SilcUInt16 ident; +}; /* Macros */ -/* Macro used for command declaration in command reply list structure */ -#define SILC_CLIENT_CMD_REPLY(func, cmd ) \ -{ silc_client_command_reply_##func, SILC_COMMAND_##cmd } - /* Macro used to declare command reply functions */ -#define SILC_CLIENT_CMD_REPLY_FUNC(func) \ -void silc_client_command_reply_##func(void *context) +#define SILC_CLIENT_CMD_REPLY_FUNC(func) \ +void silc_client_command_reply_##func(void *context, void *context2) /* Status message structure. Messages are defined below. */ typedef struct { @@ -63,9 +54,10 @@ typedef struct { /* Status messages returned by the server */ #define STAT(x) SILC_STATUS_ERR_##x -extern const SilcCommandStatusMessage silc_command_status_messages[]; +DLLAPI extern const SilcCommandStatusMessage silc_command_status_messages[]; /* Prototypes */ + void silc_client_command_reply_process(SilcClient client, SilcSocketConnection sock, SilcPacketContext *packet); @@ -92,11 +84,18 @@ SILC_CLIENT_CMD_REPLY_FUNC(umode); SILC_CLIENT_CMD_REPLY_FUNC(cmode); SILC_CLIENT_CMD_REPLY_FUNC(cumode); SILC_CLIENT_CMD_REPLY_FUNC(kick); +SILC_CLIENT_CMD_REPLY_FUNC(ban); SILC_CLIENT_CMD_REPLY_FUNC(close); SILC_CLIENT_CMD_REPLY_FUNC(shutdown); SILC_CLIENT_CMD_REPLY_FUNC(silcoper); SILC_CLIENT_CMD_REPLY_FUNC(leave); SILC_CLIENT_CMD_REPLY_FUNC(users); -SILC_CLIENT_CMD_REPLY_FUNC(ban); +SILC_CLIENT_CMD_REPLY_FUNC(getkey); +SILC_CLIENT_CMD_REPLY_FUNC(quit); + +/* Internal command reply functions */ +SILC_CLIENT_CMD_REPLY_FUNC(whois_i); +SILC_CLIENT_CMD_REPLY_FUNC(identify_i); +SILC_CLIENT_CMD_REPLY_FUNC(info_i); #endif