/* silcstatus.h Author: Pekka Riikonen Copyright (C) 2002 - 2007 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; 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 GNU General Public License for more details. */ /****h* silccore/SILC Status Types * * DESCRIPTION * * This header includes the SILC Status Types that are used with * command replies and with notify packets. With command reply packets * they indicate whether error occurred during procesing of the command * and indicate the error type. With notify type they always indicate * which error occurred. Both command reply and notify type share the * same status types. * ***/ #ifndef SILCSTATUS_H #define SILCSTATUS_H /****d* silccore/StatusTypes/SilcStatus * * NAME * * typedef SilcUInt8 SilcStatus * * DESCRIPTION * * The SilcStatus type definition and the status defines. The * server returns a status in each Command Payload indicating * the status of the command. The server can also return this * inside SILC_NOTIFY_TYPE_ERROR notify type. * * SOURCE */ typedef SilcUInt8 SilcStatus; /* Command Status messages */ #define SILC_STATUS_OK 0 #define SILC_STATUS_LIST_START 1 #define SILC_STATUS_LIST_ITEM 2 #define SILC_STATUS_LIST_END 3 #define SILC_STATUS_ERR_NO_SUCH_NICK 10 #define SILC_STATUS_ERR_NO_SUCH_CHANNEL 11 #define SILC_STATUS_ERR_NO_SUCH_SERVER 12 #define SILC_STATUS_ERR_INCOMPLETE_INFORMATION 13 #define SILC_STATUS_ERR_NO_RECIPIENT 14 #define SILC_STATUS_ERR_UNKNOWN_COMMAND 15 #define SILC_STATUS_ERR_WILDCARDS 16 #define SILC_STATUS_ERR_NO_CLIENT_ID 17 #define SILC_STATUS_ERR_NO_CHANNEL_ID 18 #define SILC_STATUS_ERR_NO_SERVER_ID 19 #define SILC_STATUS_ERR_BAD_CLIENT_ID 20 #define SILC_STATUS_ERR_BAD_CHANNEL_ID 21 #define SILC_STATUS_ERR_NO_SUCH_CLIENT_ID 22 #define SILC_STATUS_ERR_NO_SUCH_CHANNEL_ID 23 #define SILC_STATUS_ERR_NICKNAME_IN_USE 24 #define SILC_STATUS_ERR_NOT_ON_CHANNEL 25 #define SILC_STATUS_ERR_USER_NOT_ON_CHANNEL 26 #define SILC_STATUS_ERR_USER_ON_CHANNEL 27 #define SILC_STATUS_ERR_NOT_REGISTERED 28 #define SILC_STATUS_ERR_NOT_ENOUGH_PARAMS 29 #define SILC_STATUS_ERR_TOO_MANY_PARAMS 30 #define SILC_STATUS_ERR_PERM_DENIED 31 #define SILC_STATUS_ERR_BANNED_FROM_SERVER 32 #define SILC_STATUS_ERR_BAD_PASSWORD 33 #define SILC_STATUS_ERR_CHANNEL_IS_FULL 34 #define SILC_STATUS_ERR_NOT_INVITED 35 #define SILC_STATUS_ERR_BANNED_FROM_CHANNEL 36 #define SILC_STATUS_ERR_UNKNOWN_MODE 37 #define SILC_STATUS_ERR_NOT_YOU 38 #define SILC_STATUS_ERR_NO_CHANNEL_PRIV 39 #define SILC_STATUS_ERR_NO_CHANNEL_FOPRIV 40 #define SILC_STATUS_ERR_NO_SERVER_PRIV 41 #define SILC_STATUS_ERR_NO_ROUTER_PRIV 42 #define SILC_STATUS_ERR_BAD_NICKNAME 43 #define SILC_STATUS_ERR_BAD_CHANNEL 44 #define SILC_STATUS_ERR_AUTH_FAILED 45 #define SILC_STATUS_ERR_UNKNOWN_ALGORITHM 46 #define SILC_STATUS_ERR_NO_SUCH_SERVER_ID 47 #define SILC_STATUS_ERR_RESOURCE_LIMIT 48 #define SILC_STATUS_ERR_NO_SUCH_SERVICE 49 #define SILC_STATUS_ERR_NOT_AUTHENTICATED 50 #define SILC_STATUS_ERR_BAD_SERVER_ID 51 #define SILC_STATUS_ERR_KEY_EXCHANGE_FAILED 52 #define SILC_STATUS_ERR_BAD_VERSION 53 #define SILC_STATUS_ERR_TIMEDOUT 54 #define SILC_STATUS_ERR_UNSUPPORTED_PUBLIC_KEY 55 #define SILC_STATUS_ERR_OPERATION_ALLOWED 56 #define SILC_STATUS_ERR_BAD_SERVER 57 #define SILC_STATUS_ERR_BAD_USERNAME 58 #define SILC_STATUS_ERR_NO_SUCH_PUBLIC_KEY 59 /***/ #define SILC_STATUS_IS_ERROR(status) (status >= SILC_STATUS_ERR_NO_SUCH_NICK) /****f* silccore/SilcStatusTypes/silc_status_get_args * * SYNOPSIS * * SilcUInt32 silc_status_get_args(SilcStatus status, * SilcArgumentPayload args, * void **ret_arg1, **ret_arg2); * * DESCRIPTION * * Parses and returns the arguments from the `args' by the status type * indicated by `status'. Returns the number of arguments (0, 1 or 2) * parsed. The caller must free with silc_free the returned arguments. * ***/ SilcUInt32 silc_status_get_args(SilcStatus status, SilcArgumentPayload args, void **ret_arg1, void **ret_arg2); #endif /* SILCSTATUS_H */