Added SILC Server library.
[silc.git] / lib / silccore / silcmode.h
1 /*
2
3   silcmode.h
4
5   Author: Pekka Riikonen <priikone@silcnet.org>
6
7   Copyright (C) 2001 - 2005 Pekka Riikonen
8
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; version 2 of the License.
12
13   This program is distributed in the hope that it will be useful,
14   but WITHOUT ANY WARRANTY; without even the implied warranty of
15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   GNU General Public License for more details.
17
18 */
19
20 /****h* silccore/SILC Modes
21  *
22  * DESCRIPTION
23  *
24  * This header includes all mode definitions for the SILC. It includes
25  * channel modes, channel user mode and user modes.
26  *
27  ***/
28
29 #ifndef SILCMODE_H
30 #define SILCMODE_H
31
32
33 /****d* silccore/Modes/ChannelModes
34  *
35  * DESCRIPTION
36  *
37  *    All channel modes.
38  *
39  * SOURCE
40  */
41 #define SILC_CHANNEL_MODE_NONE          0x0000
42 #define SILC_CHANNEL_MODE_PRIVATE       0x0001 /* private channel */
43 #define SILC_CHANNEL_MODE_SECRET        0x0002 /* secret channel */
44 #define SILC_CHANNEL_MODE_PRIVKEY       0x0004 /* channel has private key */
45 #define SILC_CHANNEL_MODE_INVITE        0x0008 /* invite only channel */
46 #define SILC_CHANNEL_MODE_TOPIC         0x0010 /* topic setting by operator */
47 #define SILC_CHANNEL_MODE_ULIMIT        0x0020 /* user limit set */
48 #define SILC_CHANNEL_MODE_PASSPHRASE    0x0040 /* passphrase set */
49 #define SILC_CHANNEL_MODE_CIPHER        0x0080 /* sets cipher of the channel */
50 #define SILC_CHANNEL_MODE_HMAC          0x0100 /* sets hmac of the channel */
51 #define SILC_CHANNEL_MODE_FOUNDER_AUTH  0x0200 /* sets founder auth data */
52 #define SILC_CHANNEL_MODE_SILENCE_USERS 0x0400 /* sets founder auth data */
53 #define SILC_CHANNEL_MODE_SILENCE_OPERS 0x0800 /* sets founder auth data */
54 #define SILC_CHANNEL_MODE_CHANNEL_AUTH  0x1000 /* channel auth (signature) */
55 /***/
56
57 /****d* silccore/Modes/ChannelUserModes
58  *
59  * DESCRIPTION
60  *
61  *    All user modes on channel.  These indicate the user's status on the
62  *    channel.  Some of the modes can be set by channel founder and channel
63  *    operator.  Some modes may be set by users themself.
64  *
65  * SOURCE
66  */
67 #define SILC_CHANNEL_UMODE_NONE            0x00000000 /* Normal user */
68 #define SILC_CHANNEL_UMODE_CHANFO          0x00000001 /* channel founder */
69 #define SILC_CHANNEL_UMODE_CHANOP          0x00000002 /* channel operator */
70 #define SILC_CHANNEL_UMODE_BLOCK_MESSAGES  0x00000004 /* messages blocked */
71 #define SILC_CHANNEL_UMODE_BLOCK_MESSAGES_USERS  0x00000008 /* Block messages
72                                                                from normal
73                                                                users */
74 #define SILC_CHANNEL_UMODE_BLOCK_MESSAGES_ROBOTS 0x00000010 /* Block messages
75                                                                from robots */
76 #define SILC_CHANNEL_UMODE_QUIET           0x00000020 /* user is quiet */
77 /***/
78
79 /****d* silccore/Modes/SilcUserMode
80  *
81  * DESCRIPTION
82  *
83  *    SILC User modes. These indicate the status and presence of the client
84  *    in the SILC network.
85  *
86  * SOURCE
87  */
88 #define SILC_UMODE_NONE              0x00000000 /* Normal SILC user */
89 #define SILC_UMODE_SERVER_OPERATOR   0x00000001 /* Server operator */
90 #define SILC_UMODE_ROUTER_OPERATOR   0x00000002 /* Router (SILC) operator */
91 #define SILC_UMODE_GONE              0x00000004 /* Client is gone */
92 #define SILC_UMODE_INDISPOSED        0x00000008 /* Client is indisposed */
93 #define SILC_UMODE_BUSY              0x00000010 /* Client is busy */
94 #define SILC_UMODE_PAGE              0x00000020 /* Client requests paging */
95 #define SILC_UMODE_HYPER             0x00000040 /* Client is hyper active */
96 #define SILC_UMODE_ROBOT             0x00000080 /* Client is a robot */
97 #define SILC_UMODE_ANONYMOUS         0x00000100 /* Client is anonymous */
98 #define SILC_UMODE_BLOCK_PRIVMSG     0x00000200 /* Client blocks privmsgs */
99 #define SILC_UMODE_DETACHED          0x00000400 /* Client is detached */
100 #define SILC_UMODE_REJECT_WATCHING   0x00000800 /* Client rejects watching */
101 #define SILC_UMODE_BLOCK_INVITE      0x00001000 /* Client blocks invites */
102 /***/
103
104 #endif