5 Author: Pekka Riikonen <priikone@poseidon.pspt.fi>
7 Copyright (C) 2001 Pekka Riikonen
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
24 /* Forward declarations */
25 typedef struct SilcSetModePayloadStruct *SilcSetModePayload;
27 /* Mode types defined for Set Mode payload */
28 #define SILC_MODE_TYPE_CHANNEL 0
29 #define SILC_MODE_TYPE_UCHANNEL 1
30 #define SILC_MODE_RESERVED 2 /* RESERVED */
31 #define SILC_MODE_PRIVATE 32768 /* RESERVED */
34 #define SILC_CHANNEL_MODE_NONE 0x0000
35 #define SILC_CHANNEL_MODE_PRIVATE 0x0001 /* private channel */
36 #define SILC_CHANNEL_MODE_SECRET 0x0002 /* secret channel */
37 #define SILC_CHANNEL_MODE_PRIVKEY 0x0004 /* channel has private key */
38 #define SILC_CHANNEL_MODE_INVITE 0x0008 /* invite only channel */
39 #define SILC_CHANNEL_MODE_TOPIC 0x0010 /* topic setting by operator */
40 #define SILC_CHANNEL_MODE_ULIMIT 0x0020 /* user limit set */
41 #define SILC_CHANNEL_MODE_PASSPHRASE 0x0040 /* passphrase set */
42 #define SILC_CHANNEL_MODE_BAN 0x0080 /* ban list set */
43 #define SILC_CHANNEL_MODE_INVITE_LIST 0x0100 /* invite list set */
44 #define SILC_CHANNEL_MODE_CIPHER 0x0200 /* sets cipher of channel */
46 /* User modes on channel */
47 #define SILC_CHANNEL_UMODE_NONE 0x0000 /* Normal user */
48 #define SILC_CHANNEL_UMODE_CHANFO 0x0001 /* channel founder */
49 #define SILC_CHANNEL_UMODE_CHANOP 0x0002 /* channel operator */
52 SilcSetModePayload silc_set_mode_payload_parse(SilcBuffer buffer);
53 SilcBuffer silc_set_mode_payload_encode(unsigned short mode_type,
54 unsigned int mode_mask,
57 void silc_set_mode_payload_free(SilcSetModePayload payload);
58 unsigned short silc_set_mode_get_type(SilcSetModePayload payload);
59 unsigned int silc_set_mode_get_mode(SilcSetModePayload payload);
60 unsigned int silc_set_mode_get_arg_num(SilcSetModePayload payload);
61 SilcArgumentPayload silc_set_mode_get_args(SilcSetModePayload payload);