summaryrefslogtreecommitdiff
path: root/src/protocol/obsolete/hybrid.h
blob: 629e31ad1ba5dbbc43517dc38f21923e1aba2e66 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/* Hybrid IRCD functions
 *
 * (C) 2003-2009 Anope Team
 * Contact us at team@anope.org
 *
 * Please read COPYING and README for furhter details.
 *
 * Based on the original code of Epona by Lara.
 * Based on the original code of Services by Andy Church.
 *
 *
 */

#define UMODE_a 0x00000001  /* Admin status */
#define UMODE_b 0x00000080  /* See bot and drone flooding notices */
#define UMODE_c 0x00000100  /* Client connection/quit notices */
#define UMODE_d 0x00000200  /* See debugging notices */
#define UMODE_f 0x00000400  /* See I: line full notices */
#define UMODE_g 0x00000800  /* Server Side Ignore */
#define UMODE_i 0x00000004  /* Not shown in NAMES or WHO unless you share a channel */
#define UMODE_k 0x00001000  /* See server generated KILL messages */
#define UMODE_l 0x00002000  /* See LOCOPS messages */
#define UMODE_n 0x00004000  /* See client nick changes */
#define UMODE_o 0x00000008  /* Operator status */
#define UMODE_r 0x00000010  /* See rejected client notices */
#define UMODE_s 0x00008000  /* See general server notices */
#define UMODE_u 0x00010000  /* See unauthorized client notices */
#define UMODE_w 0x00000020  /* See server generated WALLOPS */
#define UMODE_x 0x00020000  /* See remote server connection and split notices */
#define UMODE_y 0x00040000  /* See LINKS, STATS (if configured), TRACE notices */
#define UMODE_z 0x00080000  /* See oper generated WALLOPS */

#define CMODE_i 0x00000001	 /* Invite only */
#define CMODE_m 0x00000002	 /* Users without +v/h/o cannot send text to the channel */
#define CMODE_n 0x00000004	 /* Users must be in the channel to send text to it */
#define CMODE_p 0x00000008	 /* Private is obsolete, this now restricts KNOCK */
#define CMODE_s 0x00000010	 /* The channel does not show up on NAMES or LIST */
#define CMODE_t 0x00000020	 /* Only chanops can change the topic */
#define CMODE_k 0x00000040	 /* Key/password for the channel. */
#define CMODE_l 0x00000080	 /* Limit the number of users in a channel */
#define CMODE_a 0x00000400	 /* Anonymous ops, chanops are hidden */


#define DEFAULT_MLOCK CMODE_n | CMODE_t

void hybrid_ProcessUsermodes(User * user, int ac, const char **av);
void hybrid_cmd_topic(const char *whosets, const char *chan, const char *whosetit, const char *topic, time_t when);
void hybrid_SendVhostDel(User * u);
void hybrid_SendAkill(const char *user, const char *host, const char *who, time_t when,time_t expires, const char *reason);
void hybrid_SendSVSKill(const char *source, const char *user, const char *buf);
void hybrid_SendSVSMode(User * u, int ac, const char **av);
void hybrid_cmd_372(const char *source, const char *msg);
void hybrid_cmd_372_error(const char *source);
void hybrid_cmd_375(const char *source);
void hybrid_cmd_376(const char *source);
void hybrid_cmd_nick(const char *nick, const char *name, const char *modes);
void hybrid_SendGuestNick(const char *nick, const char *user, const char *host, const char *real, const char *modes);
void hybrid_SendMode(const char *source, const char *dest, const char *buf);
void hybrid_SendClientIntroduction(const char *nick, const char *user, const char *host, const char *real, const char *modes);
void hybrid_SendKick(const char *source, const char *chan, const char *user, const char *buf);
void hybrid_SendNoticeChanops(const char *source, const char *dest, const char *buf);
void hybrid_cmd_notice(const char *source, const char *dest, const char *buf);
void hybrid_cmd_notice2(const char *source, const char *dest, const char *msg);
void hybrid_cmd_privmsg(const char *source, const char *dest, const char *buf);
void hybrid_cmd_privmsg2(const char *source, const char *dest, const char *msg);
void hybrid_SendGlobalNotice(const char *source, const char *dest, const char *msg);
void hybrid_SendGlobalPrivmsg(const char *source, const char *dest, const char *msg);
void hybrid_SendBotOp(const char *nick, const char *chan);
void hybrid_cmd_351(const char *source);
void hybrid_SendQuit(const char *source, const char *buf);
void hybrid_SendPong(const char *servname, const char *who);
void hybrid_SendJoin(const char *user, const char *channel, time_t chantime);
void hybrid_SendSQLineDel(const char *user);
void hybrid_SendInvite(const char *source, const char *chan, const char *nick);
void hybrid_SendPart(const char *nick, const char *chan, const char *buf);
void hybrid_cmd_391(const char *source, const char *timestr);
void hybrid_cmd_250(const char *buf);
void hybrid_cmd_307(const char *buf);
void hybrid_cmd_311(const char *buf);
void hybrid_cmd_312(const char *buf);
void hybrid_cmd_317(const char *buf);
void hybrid_cmd_219(const char *source, const char *letter);
void hybrid_cmd_401(const char *source, const char *who);
void hybrid_cmd_318(const char *source, const char *who);
void hybrid_cmd_242(const char *buf);
void hybrid_cmd_243(const char *buf);
void hybrid_cmd_211(const char *buf);
void hybrid_SendGlobops(const char *source, const char *buf);
void hybrid_SendGlobops_legacy(const char *source, const char *fmt);
void hybrid_SendSQLine(const char *mask, const char *reason);
void hybrid_SendSquit(const char *servname, const char *message);
void hybrid_SendSVSO(const char *source, const char *nick, const char *flag);
void hybrid_SendChangeBotNick(const char *oldnick, const char *newnick);
void hybrid_SendForceNickChange(const char *source, const char *guest, time_t when);
void hybrid_SendVhost(const char *nick, const char *vIdent, const char *vhost);
void hybrid_SendConnect(int servernum);
void hybrid_SendSVSHOLD(const char *nick);
void hybrid_SendSVSHOLDDel(const char *nick);
void hybrid_SendSGLineDel(const char *mask);
void hybrid_SendSZLineDel(const char *mask);
void hybrid_SendSZLine(const char *mask, const char *reason, const char *whom);
void hybrid_SendSGLine(const char *mask, const char *reason);
void hybrid_SendBanDel(const char *name, const char *nick);
void hybrid_SendSVSMode_chan(const char *name, const char *mode, const char *nick);
void hybrid_SendSVID(const char *nick, time_t ts);
void hybrid_SendUnregisteredNick(User * u);
void hybrid_SendSVID2(User * u, const char *ts);
void hybrid_SendSVID3(User * u, const char *ts);
void hybrid_SendEOB();
int hybrid_IsFloodModeParamValid(const char *value);
void hybrid_SendJupe(const char *jserver, const char *who, const char *reason);
int hybrid_IsNickValid(const char *nick);
void hybrid_SendCTCP(const char *source, const char *dest, const char *buf);

class HybridIRCdProto : public IRCDProtoNew {
	public:
		void SendAkillDel(const char *, const char *);
} ircd_proto;