ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/ermyth/doc/poddoc/ircd.pod
Revision: 1.2
Committed: Tue Aug 28 17:08:06 2007 UTC (19 years, 1 month ago) by pippijn
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +3 -3 lines
Log Message:
- changed name
- updated the example config to the new system
- added more documentation
- enhanced documentation generators
- added a link to the pdf to the website
- added an RSS feed generator
- transitioned hooks to c++ callbacks
- did various merges with upstream along the way
- added const where appropriate
- removed the old block allocator
- fixed most memory leaks
- transitioned some dictionaries to std::map
- transitioned some lists to std::vector
- made some free functions members where appropriate
- renamed string to dynstr and added a static string ststr
- use NOW instead of time (NULL) if possible
- completely reworked database backends, crypto handlers and protocol handlers
  to use an object factory
- removed the old module system. ermyth does not do any dynamic loading anymore
- fixed most of the build system
- reworked how protocol commands work

File Contents

# User Rev Content
1 pippijn 1.1 =head1 IRCD-specific notes
2    
3     =head2 asuka
4    
5     You need U:lines for services on all servers on the network.
6    
7     You must enable join_chans as P10 is designed for services to work that way.
8    
9     P10 does not support logout, so users are killed (from the services server)
10 pippijn 1.2 when they log out. It is suggested that the logout module is not enabled.
11 pippijn 1.1 Users dropping their account will be killed; this cannot be avoided.
12     Furthermore, Ermyth assumes it is the only entity on the network sending
13     ACCOUNT messages.
14    
15     Asuka's +N (no notices/wallchops) mode is turned off whenever a
16     notice/wallchops is to be sent to a channel (it should not block notices from
17     remotes or wallchops, really). If you want a channel to be +N always, leave
18     verbose disabled.
19    
20     For host hiding (umode +x, <account>.<suffix>) to work, the hosthidesuffix
21     in serverinfo{} must be correct (same value as F:HIDDEN_HOST in ircd.conf).
22    
23     SETHOST (umode +h [ident@]host) is supported. When changing the ident via +h,
24     ermyth will not restore the ident on -h. This can be worked around by never
25     changing ident with +h, never doing -h or doing a +h with the original ident@
26     before -h.
27    
28     =head2 bahamut
29    
30     You need U:lines/super{} entries for services on all servers on the network.
31    
32     Bahamut is designed for services not joining channels, not having the ability
33     to prevent services being kicked/deopped and the like. If you want to use
34     fantasy commands, you will have to enable join_chans anyway; beware of bots
35     fighting with chanserv.
36    
37     Do not use the "services hub" server type.
38    
39     =head2 bircd
40    
41     You need U:lines for services on all servers on the network.
42    
43     You must enable join_chans as P10 is designed for services to work that way.
44    
45     P10 does not support logout, so users are killed (from the services server)
46 pippijn 1.2 when they log out. It is suggested that the logout module is not enabled.
47 pippijn 1.1 Users dropping their account will be killed; this cannot be avoided.
48     Furthermore, Ermyth assumes it is the only entity on the network sending
49     ACCOUNT messages.
50    
51     For host hiding (umode +x, <account>.<suffix>) to work, the hosthidesuffix
52     in serverinfo{} must be correct.
53    
54     =head2 charybdis
55    
56     You will need a service{} block on all servers.
57    
58     If you want to use akills, you need shared{} blocks for services on all servers
59     on the network.
60    
61     Ermyth supports both TS5 and TS6 protocol. It is recommended to use TS6
62     as it reduces ghosts/desyncs and propagates user IP addresses. Although
63     Ermyth does not support IPv6 connections itself, user IPv6 addresses will
64     be properly stored and logged.
65    
66     =head2 dreamforge
67    
68     You need U:lines for services on all servers on the network. If a server lacks
69     U:lines, a storm of mode changes may result.
70    
71     Dreamforge is designed for services not joining channels, not having the
72     ability to prevent services being kicked/deopped and the like. If you want to
73     use fantasy commands, you will have to enable join_chans anyway; beware of bots
74     fighting with chanserv.
75    
76     The TOPIC and TOPICAPPEND commands cannot be used to change topics as
77     dreamforge does not allow services to set newer topics. KEEPTOPIC and
78     TOPICLOCK can be used, however.
79    
80     Dreamforge is a dated IRCd, you should probably upgrade to a more
81     modern one.
82    
83     =head2 hyperion
84    
85     The channel mode +D is not supported and will be ignored. Bans with forward
86     channels will not be recognized properly. This may lead to problems like users
87     still being banned after a chanserv unban command.
88    
89     There are two methods to allow services to remember users after a netsplit or
90     restart and to enable things like channels only accessible for registered
91     users. The traditional dancer method is umode +e; it only works if the user is
92     logged in to the nick they are currently using. The new hyperion method using
93     SVSLOGIN and SIGNON does not have this restriction. It also allows changing
94     nick/ident/host at the same time, but Ermyth does not use that yet.
95     Consequently, NOIDPREFIX is not supported in a useful way.
96    
97     Ermyth will always set +e appropriately; if SVSLOGIN support is available, it
98     will be used (this assumes the whole network has it). SVSLOGIN support can
99     also be disabled with a simple source file change.
100    
101     The wallops option will report via +s server notices.
102    
103     Although Ermyth does not support IPv6 connections itself, user IPv6 addresses
104     will be properly stored and logged.
105    
106     =head2 inspircd
107    
108     You should use inspircd11 for inspircd 1.1.x. InspIRCd 1.0.x support
109     (inspircd10) has been dropped.
110    
111     You need <uline> tags for services on all servers on the network.
112    
113     Several of the modes supported by Ermyth are in optional modules. It should
114     usually not be a problem if those modules are not loaded. The exceptions to
115     this are the m_globops.so and m_services_account.so modules, which must be
116     loaded at all times on your inspircd servers if you wish to use this version of
117     ermyth. If the servers are protocol 1102 or newer, m_globops.so is not
118     required, although it will be used if loaded.
119    
120     The inspircd support is developed in cooperation with the inspircd
121     developers.
122    
123     =head2 ircnet
124    
125     Ermyth links as a server (C:, N:, H: lines), not as a service. IRCnet-style
126     services cannot do enough (like manipulating channel modes).
127    
128     Nick delay will lock any nicks killed, so /ns ghost is worthless; it is
129     probably best to use userserv instead of nickserv.
130    
131     Only # channels are supported.
132    
133     Tklines are used for /os akill but this only works on the server
134     Ermyth is directly linked to.
135    
136     It is recommended to enable join_chans, otherwise many things will be sent
137     from the server (possibly generating nasty server notices) or chanserv will
138     join and part to do the action. Alternatively, disable it and avoid commands
139     that cause Ermyth to kick as much as possible.
140    
141     Jupes will use SIDs numerically following services's SID, make sure to
142     leave plenty of space.
143    
144     =head2 nefarious
145    
146     You need U:lines for services on all servers on the network.
147    
148     You must enable join_chans as P10 is designed for services to work that way.
149    
150     Ermyth assumes it is the only entity on the network sending ACCOUNT messages.
151     Login-on-connect is not supported.
152    
153     For host hiding (umode +x, <account>.<suffix>) to work, the hosthidesuffix
154     in serverinfo{} must be correct (same value as F:HIDDEN_HOST in ircd.conf).
155     Only F:HOST_HIDING_STYLE:1 (<account>.<suffix>) is supported,
156     F:HOST_HIDING_STYLE:2 (scrambled hostname/IP) is not.
157    
158     SETHOST (umode +h [ident@]host) is supported. When changing the ident via +h,
159     ermyth will not restore the ident on -h. This can be worked around by never
160     changing ident with +h, never doing -h or doing a +h with the original ident@
161     before -h.
162    
163     Ban exceptions are supported, although some Nefarious versions have bugs where
164     they are not sent properly.
165    
166     =head2 officeirc
167    
168     Unlike other IRCds, OfficeIRC server names do not necessarily have a period in
169     them; this may cause some warnings about the config file which can safely be
170     ignored.
171    
172     =head2 plexus
173    
174     PleXusIRCd 3 is the only version supported.
175    
176     If you want services to function properly, you will need a shared { }
177     block for services, without any usermask entries, tagged for services:
178    
179     shared
180     {
181     name = "services.int";
182     type = all, services;
183     };
184    
185     The above block should do the trick.
186    
187     =head2 ptlink
188    
189     Ermyth's server name must match ServicesServer in network.dconf (on all
190     servers on the network).
191    
192     The following options/features are not recommended: HideServerOnWhois (not
193     effective), SecureModes (Ermyth does not set channels +r), RestrictedChans (not
194     implemented by Ermyth), user mode +H (various bugs and tricks allow users to
195     see the oper status anyway), stealth mode (highly unethical and various bugs
196     and tricks allow users to get around it).
197    
198     PTlink ircd allows services to do various special things like restarting the
199     server; write a module if you want to use those.
200    
201     By default, Ermyth assumes cmode +a (channel admin/protect, AdminWithDot in
202     network.dconf) and cmode +h (halfops, compile time option) are enabled. If
203     this is not the case, compile and load the ircd_noprotect and/or
204     ircd_nohalfops modules from contrib.
205    
206     Although Ermyth does not support IPv6 connections itself, user IPv6 addresses
207     will be properly stored and logged.
208    
209     =head2 ratbox
210    
211     If you want to use operserv kline, you need shared{} blocks or U:lines
212     for services on all servers on the network. Note that only hybrid 7.1
213     and ratbox support remote unkline, although it may appear to sort of
214     work in hybrid 7.0.
215    
216     If you use ratbox 2.1.x or newer, it is recommended to compile with
217     ratbox-services support as this will allow remembering logged-in state
218     across netsplits and services restarts, prevent deopping/kicking chanserv,
219     etc. You will need a service{} block on all servers.
220    
221     Hybrid 6.x or csircd should also work but they are not recommended; you
222     must leave join_chans enabled for full functionality.
223    
224     Ermyth supports both TS5 and TS6 protocol. It is recommended to use TS6
225     as it reduces ghosts/desyncs and propagates user IP addresses. Although
226     Ermyth does not support IPv6 connections itself, user IPv6 addresses will
227     be properly stored and logged.
228    
229     =head2 shadowircd
230    
231     Ermyth does not support the "modern" ShadowIRCd protocol,
232     revisions 3400 and 4000. You will need to use compatibility mode
233     with Ermyth. Proper care has been taken to ensure that Ermyth
234     complies with all requirements necessary for compatibility mode.
235    
236     Note that only ShadowIRCd 3.2 and later properly support the removal
237     of AKILLs, although it may appear to sort of work in earlier versions.
238    
239     =head2 sorcery
240    
241     You need U:lines for services on all servers on the network. If a server lacks
242     U:lines, a storm of mode changes may result.
243    
244     ircd-sor is designed for services not joining channels, not having the
245     ability to prevent services being kicked/deopped and the like. If you want to
246     use fantasy commands, you will have to enable join_chans anyway; beware of bots
247     fighting with chanserv.
248    
249     The TOPIC and TOPICAPPEND commands cannot be used to change topics as
250     ircd-sor does not allow services to set newer topics. KEEPTOPIC and
251     TOPICLOCK can be used, however.
252    
253     =head2 ultimate3
254    
255     You will need U:lines for services on all services on the network.
256    
257     =head2 undernet
258    
259     You need U:lines for services on all servers on the network.
260    
261     You must enable join_chans as P10 is designed for services to work that way.
262    
263     P10 does not support logout, so users are killed (from the services server)
264 pippijn 1.2 when they log out. It is suggested that the logout module is not enabled.
265 pippijn 1.1 Users dropping their account will be killed; this cannot be avoided.
266     Furthermore, Ermyth assumes it is the only entity on the network sending
267     ACCOUNT messages.
268    
269     For host hiding (umode +x, <account>.<suffix>) to work, the hosthidesuffix
270     in serverinfo{} must be correct (same value as F:HIDDEN_HOST in ircd.conf).
271    
272     Ermyth does not support IPv6 (neither IPv6 connections nor IPv6 IPs in P10
273     protocol). IPs of IPv6 clients will not be stored or logged.
274    
275     Ermyth does not support oplevels; they should be disabled.
276    
277     chanserv::changets can be used with ircu version 2.10.12.06 or newer; if any
278     server on the network is 2.10.11.x, netsplits will occur whenever Ermyth tries
279     to lower TS.
280    
281     =head2 unreal
282    
283     You need ulines{} for services on all servers on the network. If a server lacks
284     U:lines, a storm of mode changes may result.