ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/ermyth/include/services.h
(Generate patch)

Comparing ermyth/include/services.h (file contents):
Revision 1.3 by pippijn, Sat Jul 21 15:01:26 2007 UTC vs.
Revision 1.4 by pippijn, Tue Aug 28 17:08:07 2007 UTC

1/* 1/*
2 * Copyright © 2005 William Pitcock, et al. 2 * Copyright © 2005 William Pitcock, et al.
3 * Rights to this code are as documented in doc/pod/license.pod. 3 * Rights to this code are as documented in doc/pod/license.pod.
4 * 4 *
5 * Data structures related to services psuedo-clients. 5 * Data structures related to services psuedo-clients.
6 * 6 *
7 * $Id: services.h,v 1.3 2007/07/21 15:01:26 pippijn Exp $ 7 * $Id: services.h,v 1.4 2007/08/28 17:08:07 pippijn Exp $
8 */ 8 */
9 9
10#ifndef SERVICES_H 10#ifndef SERVICES_H
11#define SERVICES_H 11#define SERVICES_H
12 12
13/* core services */ 13#include <map>
14#include <stdexcept>
15
16// service base class
14struct chansvs_t 17struct svs_t
15{ 18{
16 char *nick; /* the IRC client's nickname */ 19 char *nick; /* the IRC client's nickname */
17 char *user; /* the IRC client's username */ 20 char *user; /* the IRC client's username */
18 char *host; /* the IRC client's hostname */ 21 char *host; /* the IRC client's hostname */
19 char *real; /* the IRC client's realname */ 22 char *real; /* the IRC client's realname */
20 char *disp; /* the IRC client's dispname */ 23 char *disp; /* the IRC client's dispname */
21 24
25 service_t *me; /* our service struct */
26};
27
28/* core services */
29struct chansvs_t : svs_t
30{
22 bool fantasy; /* enable fantasy commands */ 31 bool fantasy; /* enable fantasy commands */
23 32
24 unsigned int ca_vop; /* xop access levels */ 33 unsigned int ca_vop; /* xop access levels */
25 unsigned int ca_hop; 34 unsigned int ca_hop;
26 unsigned int ca_aop; 35 unsigned int ca_aop;
28 37
29 char *trigger; /* trigger, e.g. !, ` or . */ 38 char *trigger; /* trigger, e.g. !, ` or . */
30 39
31 bool changets; /* use TS to better deop people */ 40 bool changets; /* use TS to better deop people */
32 41
33 service_t *me; /* our user_t struct */
34
35 time_t expiry; /* expiry time */ 42 time_t expiry; /* expiry time */
36 43
37 unsigned int maxchanacs; /* max entries in chanacs list */ 44 unsigned maxchanacs; /* max entries in chanacs list */
45 unsigned maxfounders; /* max founders per channel */
38}; 46};
39 47
40struct globsvs_t 48struct globsvs_t : svs_t
41{ 49{
42 char *nick;
43 char *user;
44 char *host;
45 char *real;
46 char *disp; /* the IRC client's dispname */
47
48 service_t *me;
49}; 50};
50 51
51struct opersvs_t 52struct opersvs_t : svs_t
52{ 53{
53 char *nick;
54 char *user;
55 char *host;
56 char *real;
57 char *disp; /* the IRC client's dispname */
58
59 service_t *me;
60}; 54};
61 55
62struct memosvs_t 56struct memosvs_t : svs_t
63{ 57{
64 char *nick;
65 char *user;
66 char *host;
67 char *real;
68 char *disp;
69
70 service_t *me;
71}; 58};
72 59
60struct gamesvs_t : svs_t
61{
62};
63
64
73/* authentication services */ 65/* authentication services */
74struct nicksvs_t 66struct nicksvs_t : svs_t
75{ 67{
76 bool spam; 68 bool spam;
77 bool no_nick_ownership; 69 bool no_nick_ownership;
78 70
79 char *nick;
80 char *user;
81 char *host;
82 char *real;
83 char *disp; /* the IRC client's dispname */
84
85 service_t *me;
86
87 time_t expiry; /* expiry time */ 71 time_t expiry; /* expiry time */
88}; 72};
89 73
90struct saslsvs_t 74struct saslsvs_t : svs_t
91{ 75{
92 char *nick;
93 char *user;
94 char *host;
95 char *real;
96 char *disp; /* the IRC client's dispname */
97
98 service_t *me;
99};
100
101struct gamesvs_t
102{
103 char *nick;
104 char *user;
105 char *host;
106 char *real;
107 char *disp; /* the IRC client's dispname */
108
109 service_t *me;
110}; 76};
111 77
112/* help us keep consistent messages */ 78/* help us keep consistent messages */
113#define STR_INSUFFICIENT_PARAMS _("Insufficient parameters for \2%s\2.") 79#define STR_INSUFFICIENT_PARAMS _("Insufficient parameters for \2%s\2.")
114#define STR_INVALID_PARAMS _("Invalid parameters for \2%s\2.") 80#define STR_INVALID_PARAMS _("Invalid parameters for \2%s\2.")
115 81
116/* atheme.c */ 82/* global.C */
117E chansvs_t chansvs; 83E chansvs_t chansvs;
118E globsvs_t globsvs; 84E globsvs_t globsvs;
119E opersvs_t opersvs; 85E opersvs_t opersvs;
120E memosvs_t memosvs; 86E memosvs_t memosvs;
87E gamesvs_t gamesvs;
121E nicksvs_t nicksvs; 88E nicksvs_t nicksvs;
122E saslsvs_t saslsvs; 89E saslsvs_t saslsvs;
123E gamesvs_t gamesvs;
124 90
125/* servtree.c */ 91/* servtree.c */
126E service_t *fcmd_agent; 92E service_t *fcmd_agent;
127 93
128/* services.c */ 94/* services.c */
95typedef std::pair<char const * const, service_t *> service_pair;
96typedef std::map<char const * const, service_t *, str_lt> service_map;
97E service_map services;
98
129E int authservice_loaded; 99E unsigned authservice_loaded;
130E int use_myuser_access; 100E int use_myuser_access;
131E int use_svsignore; 101E int use_svsignore;
132 102
133E int ban (user_t *source, channel_t *chan, user_t *target); 103E int ban (user_t *source, channel_t *chan, user_t *target);
134E int remove_banlike (user_t *source, channel_t *chan, int type, user_t *target); 104E int remove_banlike (user_t *source, channel_t *chan, int type, user_t *target);
135E int remove_ban_exceptions (user_t *source, channel_t *chan, user_t *target); 105E int remove_ban_exceptions (user_t *source, channel_t *chan, user_t *target);
136E void join (char *chan, char *nick); 106E void join (char const * const chan, char const * const nick);
137E void joinall (char *name); 107E void joinall (char *name);
138E void part (char *chan, char *nick); 108E void part (char *chan, char *nick);
139E void partall (char *name); 109E void partall (char *name);
140E void verbose (mychan_t *mychan, char *fmt, ...); 110E void verbose (mychan_t *mychan, char const * const fmt, ...);
141E void snoop (char *fmt, ...); 111E void snoop (char const * const fmt, ...);
142E void notice (char *from, char *to, char const *message, ...); 112E void notice (char const * const from, char const * const to, char const * const message, ...);
113E void notice (char const * const from, char const * const to, char const * const message, va_list va);
143E void command_fail (sourceinfo_t *si, faultcode_t code, const char *fmt, ...); 114E void command_fail (sourceinfo_t *si, faultcode_t code, char const * const fmt, ...);
144E void command_success_nodata (sourceinfo_t *si, const char *fmt, ...); 115E void command_success_nodata (sourceinfo_t *si, char const * const fmt, ...);
145E void command_success_string (sourceinfo_t *si, const char *result, const char *fmt, ...); 116E void command_success_string (sourceinfo_t *si, char const * const result, char const * const fmt, ...);
146E void command_success_table (sourceinfo_t *si, table_t * table); 117E void command_success_table (sourceinfo_t *si, table_t * table);
147E const char *get_source_name (sourceinfo_t *si); 118E char const * const get_source_name (sourceinfo_t *si);
148E const char *get_source_mask (sourceinfo_t *si); 119E char const * const get_source_mask (sourceinfo_t *si);
149E const char *get_oper_name (sourceinfo_t *si); 120E char const * const get_oper_name (sourceinfo_t *si);
150E void wallops (char *, ...); 121E void wallops (char const * const , ...);
151E void verbose_wallops (char *, ...); 122E void verbose_wallops (char const * const, ...);
152 123
153/* ptasks.c */ 124/* ptasks.c */
154E void handle_topic (channel_t *, char *, time_t, char *); 125E void handle_topic (channel_t *c, char const * const setter, time_t ts, char const * const topic);
155E int floodcheck (user_t *, user_t *); 126E int floodcheck (user_t *u, user_t *t);
156 127
157/* ctcp-common.c */ 128/* ctcp-common.c */
158E void common_ctcp_init (void); 129E void common_ctcp_init (void);
159E unsigned int handle_ctcp_common (sourceinfo_t *si, char *, char *); 130E unsigned int handle_ctcp_common (sourceinfo_t *si, char *, char *);
160 131

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines