/[svn]/ircd-hybrid/include/channel_mode.h
ViewVC logotype

Annotation of /ircd-hybrid/include/channel_mode.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 758 - (hide annotations)
Fri Aug 18 14:26:11 2006 UTC (14 years, 2 months ago) by michael
File MIME type: text/x-csrc
File size: 3285 byte(s)
- Fixed ban cache as reported by ThaPrince

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     #define CAN_SEND_NONOP 1
39     #define CAN_SEND_OPV 2
40    
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 db 227 #define MODE_PARANOID 0x0001
53 adx 30 #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    
59     /* cache flags for silence on ban */
60     #define CHFL_BAN_CHECKED 0x0080
61     #define CHFL_BAN_SILENCED 0x0100
62    
63     #define MODE_QUERY 0
64     #define MODE_ADD 1
65     #define MODE_DEL -1
66    
67     #define CHACCESS_NOTONCHAN -1
68     #define CHACCESS_PEON 0
69     #define CHACCESS_HALFOP 1
70     #define CHACCESS_CHANOP 2
71    
72     /* name invisible */
73     #define SecretChannel(x) (((x)->mode.mode & MODE_SECRET))
74     #define PubChannel(x) (!SecretChannel(x))
75     /* knock is forbidden, halfops can't kick/deop other halfops.
76     * +pi means paranoid and will generate notices on each invite */
77 db 227 #define ParanoidChannel(x) (((x)->mode.mode & MODE_PARANOID))
78 adx 30
79     struct ChModeChange
80     {
81     char letter;
82     const char *arg;
83     const char *id;
84     int dir;
85     int caps;
86     int nocaps;
87     int mems;
88     struct Client *client;
89     };
90    
91     struct ChCapCombo
92     {
93     int count;
94     int cap_yes;
95     int cap_no;
96     };
97    
98 adx 190 EXTERN struct Callback *channel_access_cb;
99 adx 49
100 adx 190 void init_channel_modes(void);
101     void set_chcap_usage_counts(struct Client *);
102     void unset_chcap_usage_counts(struct Client *);
103    
104     EXTERN int add_id(struct Client *, struct Channel *, char *, int);
105     EXTERN void set_channel_mode(struct Client *, struct Client *, struct Channel *,
106 adx 30 struct Membership *, int, char **, char *);
107 adx 190 EXTERN void clear_ban_cache(struct Channel *);
108 michael 758 EXTERN void clear_ban_cache_client(struct Client *);
109 adx 30 #endif /* INCLUDED_channel_mode_h */

Properties

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

svnadmin@ircd-hybrid.org
ViewVC Help
Powered by ViewVC 1.1.28