ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/include/channel_mode.h
Revision: 1173
Committed: Sun Aug 14 00:23:02 2011 UTC (14 years ago) by michael
Content type: text/x-chdr
Original Path: ircd-hybrid-8/include/channel_mode.h
File size: 3474 byte(s)
Log Message:
- add usermode +R; only registered clients may message other clients with that mode set
- add channelmode +R; only registered clients may join a channel with that mode set

File Contents

# User Rev Content
1 adx 30 /*
2     * ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
3     * channel_mode.h: The ircd channel mode header.
4     *
5     * Copyright (C) 2002 by the past and present ircd coders, and others.
6     *
7     * This program is free software; you can redistribute it and/or modify
8     * it under the terms of the GNU General Public License as published by
9     * the Free Software Foundation; either version 2 of the License, or
10     * (at your option) any later version.
11     *
12     * This program is distributed in the hope that it will be useful,
13     * but WITHOUT ANY WARRANTY; without even the implied warranty of
14     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15     * GNU General Public License for more details.
16     *
17     * You should have received a copy of the GNU General Public License
18     * along with this program; if not, write to the Free Software
19     * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
20     * USA
21     *
22 knight 31 * $Id$
23 adx 30 */
24    
25    
26     #ifndef INCLUDED_channel_mode_h
27     #define INCLUDED_channel_mode_h
28    
29     #include "ircd_defs.h" /* buffer sizes */
30    
31     #define MODEBUFLEN 200
32    
33     /* Maximum mode changes allowed per client, per server is different */
34     #define MAXMODEPARAMS 4
35    
36     /* can_send results */
37     #define CAN_SEND_NO 0
38 michael 1173 #define CAN_SEND_NONOP -1
39     #define CAN_SEND_OPV -2
40 adx 30
41    
42     /* Channel related flags */
43     #define CHFL_CHANOP 0x0001 /* Channel operator */
44     #define CHFL_HALFOP 0x0002 /* Channel half op */
45     #define CHFL_VOICE 0x0004 /* the power to speak */
46     #define CHFL_DEOPPED 0x0008 /* deopped by us, modes need to be bounced */
47     #define CHFL_BAN 0x0010 /* ban channel flag */
48     #define CHFL_EXCEPTION 0x0020 /* exception to ban channel flag */
49     #define CHFL_INVEX 0x0040
50    
51     /* channel modes ONLY */
52     #define MODE_PRIVATE 0x0001
53     #define MODE_SECRET 0x0002
54     #define MODE_MODERATED 0x0004
55     #define MODE_TOPICLIMIT 0x0008
56     #define MODE_INVITEONLY 0x0010
57     #define MODE_NOPRIVMSGS 0x0020
58 michael 1150 #define MODE_SSLONLY 0x0040
59     #define MODE_OPERONLY 0x0080
60 michael 1167 #define MODE_REGISTERED 0x0100 /* Channel has been registered with ChanServ */
61 michael 1173 #define MODE_REGONLY 0x0200
62 adx 30
63     /* cache flags for silence on ban */
64     #define CHFL_BAN_CHECKED 0x0080
65     #define CHFL_BAN_SILENCED 0x0100
66    
67     #define MODE_QUERY 0
68     #define MODE_ADD 1
69     #define MODE_DEL -1
70    
71     #define CHACCESS_NOTONCHAN -1
72     #define CHACCESS_PEON 0
73     #define CHACCESS_HALFOP 1
74     #define CHACCESS_CHANOP 2
75    
76     /* name invisible */
77     #define SecretChannel(x) (((x)->mode.mode & MODE_SECRET))
78     #define PubChannel(x) (!SecretChannel(x))
79     /* knock is forbidden, halfops can't kick/deop other halfops.
80     * +pi means paranoid and will generate notices on each invite */
81     #define PrivateChannel(x) (((x)->mode.mode & MODE_PRIVATE))
82    
83     struct ChModeChange
84     {
85     char letter;
86     const char *arg;
87     const char *id;
88     int dir;
89 michael 1015 unsigned int caps;
90     unsigned int nocaps;
91 adx 30 int mems;
92     struct Client *client;
93     };
94    
95     struct ChCapCombo
96     {
97     int count;
98 michael 1015 unsigned int cap_yes;
99     unsigned int cap_no;
100 adx 30 };
101    
102     extern int add_id(struct Client *, struct Channel *, char *, int);
103     extern void set_channel_mode(struct Client *, struct Client *, struct Channel *,
104     struct Membership *, int, char **, char *);
105     extern void clear_ban_cache(struct Channel *);
106 michael 759 extern void clear_ban_cache_client(struct Client *);
107 adx 30 extern void init_chcap_usage_counts(void);
108     extern void set_chcap_usage_counts(struct Client *);
109     extern void unset_chcap_usage_counts(struct Client *);
110     #endif /* INCLUDED_channel_mode_h */

Properties

Name Value
svn:eol-style native
svn:keywords Id Revision