[READ-ONLY] Mirror of https://github.com/VibeDevelopers/Comet.
0

Configure Feed

Select the types of activity you want to include in your feed.

convert SGML guide to RST

the rationale behind switching away from SGML/Docbook is the following:

* SGML is hard to edit for humans
* the output is not much prettier
* the toolchain is not well supported and missing from the build
* the build is not hooked into anywhere, no automation

the reason why RST was chosen:

* it allows for a strong structure like Docbook
* the theme from Read The Docs is pretty
* it also supports mobile devices
* sphinx can easily output to PDF and ePUB formats
* RST is plaintext that can be easily edited and diff'd
* RST can be automatically built by ReadTheDocs and the toolchain is
readily available
* the output is also parsed by Github so documentation can be read
straight from GH

the reason why Markdown was not chosen:

* the current strong structure would be hard to replicate
* markdown is not standardized and output varies according to the
implementation

the docs were converted with Pandoc, using the following commands:

mkdir oper-guide
for source in sgml/oper-guide/*.sgml; do
pandoc --toc -s -f docbook -t rst $source -o oper-guide/$(basename $source .sgml).rst
done
cd oper-guide
sphinx-quickstart
git add *.rst make.bat conf.py
git add -f Makefile
git rm -r ../sgml

[merged from d4214e9445d9f9d0f0ede3e09a9f81deee9: doc/sgml/oper-guide/config.sgml]

authored by

Antoine Beaupré and committed by
Simon Arlott
(Aug 12, 2018, 9:15 AM +0100) 2ae078d8 6d8a8851

+3452 -3573
+225
doc/oper-guide/Makefile
··· 1 + # Makefile for Sphinx documentation 2 + # 3 + 4 + # You can set these variables from the command line. 5 + SPHINXOPTS = 6 + SPHINXBUILD = sphinx-build 7 + PAPER = 8 + BUILDDIR = _build 9 + 10 + # Internal variables. 11 + PAPEROPT_a4 = -D latex_paper_size=a4 12 + PAPEROPT_letter = -D latex_paper_size=letter 13 + ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . 14 + # the i18n builder cannot share the environment and doctrees with the others 15 + I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . 16 + 17 + .PHONY: help 18 + help: 19 + @echo "Please use \`make <target>' where <target> is one of" 20 + @echo " html to make standalone HTML files" 21 + @echo " dirhtml to make HTML files named index.html in directories" 22 + @echo " singlehtml to make a single large HTML file" 23 + @echo " pickle to make pickle files" 24 + @echo " json to make JSON files" 25 + @echo " htmlhelp to make HTML files and a HTML help project" 26 + @echo " qthelp to make HTML files and a qthelp project" 27 + @echo " applehelp to make an Apple Help Book" 28 + @echo " devhelp to make HTML files and a Devhelp project" 29 + @echo " epub to make an epub" 30 + @echo " epub3 to make an epub3" 31 + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" 32 + @echo " latexpdf to make LaTeX files and run them through pdflatex" 33 + @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" 34 + @echo " text to make text files" 35 + @echo " man to make manual pages" 36 + @echo " texinfo to make Texinfo files" 37 + @echo " info to make Texinfo files and run them through makeinfo" 38 + @echo " gettext to make PO message catalogs" 39 + @echo " changes to make an overview of all changed/added/deprecated items" 40 + @echo " xml to make Docutils-native XML files" 41 + @echo " pseudoxml to make pseudoxml-XML files for display purposes" 42 + @echo " linkcheck to check all external links for integrity" 43 + @echo " doctest to run all doctests embedded in the documentation (if enabled)" 44 + @echo " coverage to run coverage check of the documentation (if enabled)" 45 + @echo " dummy to check syntax errors of document sources" 46 + 47 + .PHONY: clean 48 + clean: 49 + rm -rf $(BUILDDIR)/* 50 + 51 + .PHONY: html 52 + html: 53 + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html 54 + @echo 55 + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." 56 + 57 + .PHONY: dirhtml 58 + dirhtml: 59 + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml 60 + @echo 61 + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." 62 + 63 + .PHONY: singlehtml 64 + singlehtml: 65 + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml 66 + @echo 67 + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." 68 + 69 + .PHONY: pickle 70 + pickle: 71 + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle 72 + @echo 73 + @echo "Build finished; now you can process the pickle files." 74 + 75 + .PHONY: json 76 + json: 77 + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json 78 + @echo 79 + @echo "Build finished; now you can process the JSON files." 80 + 81 + .PHONY: htmlhelp 82 + htmlhelp: 83 + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp 84 + @echo 85 + @echo "Build finished; now you can run HTML Help Workshop with the" \ 86 + ".hhp project file in $(BUILDDIR)/htmlhelp." 87 + 88 + .PHONY: qthelp 89 + qthelp: 90 + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp 91 + @echo 92 + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ 93 + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" 94 + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Charybdisoperatorguide.qhcp" 95 + @echo "To view the help file:" 96 + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Charybdisoperatorguide.qhc" 97 + 98 + .PHONY: applehelp 99 + applehelp: 100 + $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp 101 + @echo 102 + @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." 103 + @echo "N.B. You won't be able to view it unless you put it in" \ 104 + "~/Library/Documentation/Help or install it in your application" \ 105 + "bundle." 106 + 107 + .PHONY: devhelp 108 + devhelp: 109 + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp 110 + @echo 111 + @echo "Build finished." 112 + @echo "To view the help file:" 113 + @echo "# mkdir -p $$HOME/.local/share/devhelp/Charybdisoperatorguide" 114 + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Charybdisoperatorguide" 115 + @echo "# devhelp" 116 + 117 + .PHONY: epub 118 + epub: 119 + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub 120 + @echo 121 + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." 122 + 123 + .PHONY: epub3 124 + epub3: 125 + $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3 126 + @echo 127 + @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3." 128 + 129 + .PHONY: latex 130 + latex: 131 + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 132 + @echo 133 + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." 134 + @echo "Run \`make' in that directory to run these through (pdf)latex" \ 135 + "(use \`make latexpdf' here to do that automatically)." 136 + 137 + .PHONY: latexpdf 138 + latexpdf: 139 + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 140 + @echo "Running LaTeX files through pdflatex..." 141 + $(MAKE) -C $(BUILDDIR)/latex all-pdf 142 + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." 143 + 144 + .PHONY: latexpdfja 145 + latexpdfja: 146 + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 147 + @echo "Running LaTeX files through platex and dvipdfmx..." 148 + $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja 149 + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." 150 + 151 + .PHONY: text 152 + text: 153 + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text 154 + @echo 155 + @echo "Build finished. The text files are in $(BUILDDIR)/text." 156 + 157 + .PHONY: man 158 + man: 159 + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man 160 + @echo 161 + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." 162 + 163 + .PHONY: texinfo 164 + texinfo: 165 + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo 166 + @echo 167 + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." 168 + @echo "Run \`make' in that directory to run these through makeinfo" \ 169 + "(use \`make info' here to do that automatically)." 170 + 171 + .PHONY: info 172 + info: 173 + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo 174 + @echo "Running Texinfo files through makeinfo..." 175 + make -C $(BUILDDIR)/texinfo info 176 + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." 177 + 178 + .PHONY: gettext 179 + gettext: 180 + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale 181 + @echo 182 + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." 183 + 184 + .PHONY: changes 185 + changes: 186 + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes 187 + @echo 188 + @echo "The overview file is in $(BUILDDIR)/changes." 189 + 190 + .PHONY: linkcheck 191 + linkcheck: 192 + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck 193 + @echo 194 + @echo "Link check complete; look for any errors in the above output " \ 195 + "or in $(BUILDDIR)/linkcheck/output.txt." 196 + 197 + .PHONY: doctest 198 + doctest: 199 + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest 200 + @echo "Testing of doctests in the sources finished, look at the " \ 201 + "results in $(BUILDDIR)/doctest/output.txt." 202 + 203 + .PHONY: coverage 204 + coverage: 205 + $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage 206 + @echo "Testing of coverage in the sources finished, look at the " \ 207 + "results in $(BUILDDIR)/coverage/python.txt." 208 + 209 + .PHONY: xml 210 + xml: 211 + $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml 212 + @echo 213 + @echo "Build finished. The XML files are in $(BUILDDIR)/xml." 214 + 215 + .PHONY: pseudoxml 216 + pseudoxml: 217 + $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml 218 + @echo 219 + @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." 220 + 221 + .PHONY: dummy 222 + dummy: 223 + $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy 224 + @echo 225 + @echo "Build finished. Dummy builder generates no files."
+12
doc/oper-guide/charybdis-oper-guide.rst
··· 1 + ============================================ 2 + Operators guide for the charybdis IRC server 3 + ============================================ 4 + 5 + :Author: Jilles Tjoelker 6 + :Date: 2009 7 + 8 + .. contents:: 9 + :depth: 3 10 + .. 11 + 12 + INTRO UMODES CMODES UCOMMANDS COMMANDS OPRIVS CONFIG
+258
doc/oper-guide/cmodes.rst
··· 1 + .. contents:: 2 + :depth: 3 3 + .. 4 + 5 + Cmodes 6 + ====== 7 + 8 + Meanings of channel modes 9 + ========================= 10 + 11 + +b, channel ban 12 + --------------- 13 + 14 + Bans take one parameter which can take several forms. The most common 15 + form is +b nick!user@host. The wildcards \* and ? are allowed, matching 16 + zero-or-more, and exactly-one characters respectively. The masks will be 17 + trimmed to fit the maximum allowable length for the relevant element. 18 + Bans are also checked against the IP address, even if it resolved or is 19 + spoofed. CIDR is supported, like \*!\*@10.0.0.0/8. This is most useful 20 + with IPv6. Bans are not checked against the real hostname behind any 21 + kind of spoof, except if host mangling is in use (e.g. 22 + ``extensions/ip_cloaking.so``): if the user's host is mangled, their 23 + real hostname is checked additionally, and if a user has no spoof but 24 + could enable mangling, the mangled form of their hostname is checked 25 + additionally. Hence, it is not possible to evade bans by toggling host 26 + mangling. 27 + 28 + The second form (extban) is +b $type or +b $type:data. type is a single 29 + character (case insensitive) indicating the type of match, optionally 30 + preceded by a tilde (~) to negate the comparison. data depends on type. 31 + Each type is loaded as a module. The available types (if any) are listed 32 + in the EXTBAN token of the 005 (RPL\_ISUPPORT) numeric. See 33 + ``doc/extban.txt`` in the source distribution for more information. 34 + 35 + If no parameter is given, the list of bans is returned. All users can 36 + use this form. The plus sign should also be omitted. 37 + 38 + Matching users will not be allowed to join the channel or knock on it. 39 + If they are already on the channel, they may not send to it or change 40 + their nick. 41 + 42 + +c, colour filter 43 + ----------------- 44 + 45 + This cmode activates the colour filter for the channel. This filters out 46 + bold, underline, reverse video, beeps, mIRC colour codes, and ANSI 47 + escapes. Note that escape sequences will usually leave cruft sent to the 48 + channel, just without the escape characters themselves. 49 + 50 + +e, ban exemption 51 + ----------------- 52 + 53 + This mode takes one parameter of the same form as bans, which overrides 54 + +b and +q bans for all clients it matches. 55 + 56 + This can be useful if it is necessary to ban an entire ISP due to 57 + persistent abuse, but some users from that ISP should still be allowed 58 + in. For example: /mode #channel +be \*!\*@\*.example.com 59 + \*!\*someuser@host3.example.com 60 + 61 + Only channel operators can see +e changes or request the list. 62 + 63 + +f, channel forwarding 64 + ---------------------- 65 + 66 + This mode takes one parameter, the name of a channel (+f #channel). If 67 + the channel also has the +i cmode set, and somebody attempts to join 68 + without either being expliticly invited, or having an invex (+I), then 69 + they will instead join the channel named in the mode parameter. The 70 + client will also be sent a 470 numeric giving the original and target 71 + channels. 72 + 73 + Users are similarly forwarded if the +j cmode is set and their attempt 74 + to join is throttled, if +l is set and there are already too many users 75 + in the channel or if +r is set and they are not identified. 76 + 77 + Forwards may only be set to +F channels, or to channels the setter has 78 + ops in. 79 + 80 + Without parameter (/mode #channel f or /mode #channel +f) the forward 81 + channel is returned. This form also works off channel. 82 + 83 + +F, allow anybody to forward to this 84 + ------------------------------------ 85 + 86 + When this mode is set, anybody may set a forward from a channel they 87 + have ops in to this channel. Otherwise they have to have ops in this 88 + channel. 89 + 90 + +g, allow anybody to invite 91 + --------------------------- 92 + 93 + When this mode is set, anybody may use the INVITE command on the channel 94 + in question. When it is unset, only channel operators may use the INVITE 95 + command. 96 + 97 + When this mode is set together with +i, +j, +l or +r, all channel 98 + members can influence who can join. 99 + 100 + +i, invite only 101 + --------------- 102 + 103 + When this cmode is set, no client can join the channel unless they have 104 + an invex (+I) or are invited with the INVITE command. 105 + 106 + +I, invite exception (invex) 107 + ---------------------------- 108 + 109 + This mode takes one parameter of the same form as bans. Matching clients 110 + do not need to be invited to join the channel when it is invite-only 111 + (+i). Unlike the INVITE command, this does not override +j, +l and +r. 112 + 113 + Only channel operators can see +I changes or request the list. 114 + 115 + +j, join throttling 116 + ------------------- 117 + 118 + This mode takes one parameter of the form n:t, where n and t are 119 + positive integers. Only n users may join in each period of t seconds. 120 + 121 + Invited users can join regardless of +j, but are counted as normal. 122 + 123 + Due to propagation delays between servers, more users may be able to 124 + join (by racing for the last slot on each server). 125 + 126 + +k, key (channel password) 127 + -------------------------- 128 + 129 + Taking one parameter, when set, this mode requires a user to supply the 130 + key in order to join the channel: /JOIN #channel key. 131 + 132 + +l, channel member limit 133 + ------------------------ 134 + 135 + Takes one numeric parameter, the number of users which are allowed to be 136 + in the channel before further joins are blocked. Invited users may join 137 + regardless. 138 + 139 + Due to propagation delays between servers, more users may be able to 140 + join (by racing for the last slot on each server). 141 + 142 + +L, large ban list 143 + ------------------ 144 + 145 + Channels with this mode will be allowed larger banlists (by default, 500 146 + instead of 50 entries for +b, +q, +e and +I together). Only network 147 + operators with resv privilege may set this mode. 148 + 149 + +m, moderated 150 + ------------- 151 + 152 + When a channel is set +m, only users with +o or +v on the channel can 153 + send to it. 154 + 155 + Users can still knock on the channel or change their nick. 156 + 157 + +n, no external messages 158 + ------------------------ 159 + 160 + When set, this mode prevents users from sending to the channel without 161 + being in it themselves. This is recommended. 162 + 163 + +o, channel operator 164 + -------------------- 165 + 166 + This mode takes one parameter, a nick, and grants or removes channel 167 + operator privilege to that user. Channel operators have full control 168 + over the channel, having the ability to set all channel modes except +L 169 + and +P, and kick users. Like voiced users, channel operators can always 170 + send to the channel, overriding +b, +m and +q modes and the per-channel 171 + flood limit. In most clients channel operators are marked with an '@' 172 + sign. 173 + 174 + The privilege is lost if the user leaves the channel or server in any 175 + way. 176 + 177 + Most networks will run channel registration services (e.g. ChanServ) 178 + which ensure the founder (and users designated by the founder) can 179 + always gain channel operator privileges and provide some features to 180 + manage the channel. 181 + 182 + +p, paranoid channel 183 + -------------------- 184 + 185 + When set, the KNOCK command cannot be used on the channel to request an 186 + invite, and users will not be shown the channel in WHOIS replies unless 187 + they are on it. Unlike in traditional IRC, +p and +s can be set 188 + together. 189 + 190 + +P, permanent channel 191 + --------------------- 192 + 193 + Channels with this mode (which is accessible only to network operators 194 + with resv privilege) set will not be destroyed when the last user 195 + leaves. 196 + 197 + This makes it less likely modes, bans and the topic will be lost and 198 + makes it harder to abuse network splits, but also causes more unwanted 199 + restoring of old modes, bans and topics after long splits. 200 + 201 + +q, quiet 202 + --------- 203 + 204 + This mode behaves exactly like +b (ban), except that the user may still 205 + join the channel. The net effect is that they cannot knock on the 206 + channel, send to the channel or change their nick while on channel. 207 + 208 + +Q, block forwarded users 209 + ------------------------- 210 + 211 + Channels with this mode set are not valid targets for forwarding. Any 212 + attempt to forward to this channel will be ignored, and the user will be 213 + handled as if the attempt was never made (by sending them the relevant 214 + error message). 215 + 216 + This does not affect the ability to set +f. 217 + 218 + +r, block unidentified 219 + ---------------------- 220 + 221 + When set, this mode prevents unidentified users from joining. Invited 222 + users can still join. 223 + 224 + +s, secret channel 225 + ------------------ 226 + 227 + When set, this mode prevents the channel from appearing in the output of 228 + the LIST, WHO and WHOIS command by users who are not on it. Also, the 229 + server will refuse to answer WHO, NAMES, TOPIC and LIST queries from 230 + users not on the channel. 231 + 232 + +t, topic limit 233 + --------------- 234 + 235 + When set, this mode prevents users who are not channel operators from 236 + changing the topic. 237 + 238 + +v, voice 239 + --------- 240 + 241 + This mode takes one parameter, a nick, and grants or removes voice 242 + privilege to that user. Voiced users can always send to the channel, 243 + overriding +b, +m and +q modes and the per-channel flood limit. In most 244 + clients voiced users are marked with a plus sign. 245 + 246 + The privilege is lost if the user leaves the channel or server in any 247 + way. 248 + 249 + +z, reduced moderation 250 + ---------------------- 251 + 252 + When +z is set, the effects of +m, +b and +q are relaxed. For each 253 + message, if that message would normally be blocked by one of these 254 + modes, it is instead sent to all channel operators. This is intended for 255 + use in moderated debates. 256 + 257 + Note that +n is unaffected by this. To silence a given user completely, 258 + remove them from the channel.
+809
doc/oper-guide/commands.rst
··· 1 + .. contents:: 2 + :depth: 3 3 + .. 4 + 5 + Operator Commands 6 + ================= 7 + 8 + Network management commands 9 + =========================== 10 + 11 + **Note** 12 + 13 + All commands and names are case insensitive. Parameters consisting 14 + of one or more separate letters, such as in MODE, STATS and WHO, are 15 + case sensitive. 16 + 17 + CONNECT 18 + ------- 19 + 20 + CONNECT 21 + target 22 + port 23 + source 24 + Initiate a connection attempt to server target. If a port is given, 25 + connect to that port on the target, otherwise use the one given in 26 + ``ircd.conf``. If source is given, tell that server to initiate the 27 + connection attempt, otherwise it will be made from the server you are 28 + attached to. 29 + 30 + To use the default port with source, specify 0 for port. 31 + 32 + SQUIT 33 + ----- 34 + 35 + SQUIT 36 + server 37 + reason 38 + Closes down the link to server from this side of the network. If a 39 + reason is given, it will be sent out in the server notices on both sides 40 + of the link. 41 + 42 + REHASH 43 + ------ 44 + 45 + REHASH 46 + BANS 47 + DNS 48 + MOTD 49 + OMOTD 50 + TKLINES 51 + TDLINES 52 + TXLINES 53 + TRESVS 54 + REJECTCACHE 55 + HELP 56 + server 57 + With no parameter given, ``ircd.conf`` will be reread and parsed. The 58 + server argument is a wildcard match of server names. 59 + 60 + BANS 61 + Rereads ``kline.conf``, ``dline.conf``, ``xline.conf``, 62 + ``resv.conf`` and their .perm variants 63 + 64 + DNS 65 + Reread ``/etc/resolv.conf``. 66 + 67 + MOTD 68 + Reload the MOTD file 69 + 70 + OMOTD 71 + Reload the operator MOTD file 72 + 73 + TKLINES 74 + Clears temporary K:lines. 75 + 76 + TDLINES 77 + Clears temporary D:lines. 78 + 79 + TXLINES 80 + Clears temporary X:lines. 81 + 82 + TRESVS 83 + Clears temporary reservations. 84 + 85 + REJECTCACHE 86 + Clears the client rejection cache. 87 + 88 + HELP 89 + Refreshes the help system cache. 90 + 91 + RESTART 92 + ------- 93 + 94 + RESTART 95 + server 96 + Cause an immediate total shutdown of the IRC server, and restart from 97 + scratch as if it had just been executed. 98 + 99 + This reexecutes the ircd using the compiled-in path, visible as SPATH in 100 + INFO. 101 + 102 + **Note** 103 + 104 + This command cannot be used remotely. The server name is used only 105 + as a safety measure. 106 + 107 + DIE 108 + --- 109 + 110 + DIE 111 + server 112 + Immediately terminate the IRC server, after sending notices to all 113 + connected clients and servers 114 + 115 + **Note** 116 + 117 + This command cannot be used remotely. The server name is used only 118 + as a safety measure. 119 + 120 + SET 121 + --- 122 + 123 + SET 124 + ADMINSTRING 125 + AUTOCONN 126 + AUTOCONNALL 127 + FLOODCOUNT 128 + IDENTTIMEOUT 129 + MAX 130 + OPERSTRING 131 + SPAMNUM 132 + SPAMTIME 133 + SPLITMODE 134 + SPLITNUM 135 + SPLITUSERS 136 + value 137 + The SET command sets a runtime-configurable value. 138 + 139 + Most of the ``ircd.conf`` equivalents have a default\_ prefix and are 140 + only read on startup. SET is the only way to change these at run time. 141 + 142 + Most of the values can be queried by omitting value. 143 + 144 + ADMINSTRING 145 + Sets string shown in WHOIS for admins. (umodes +o and +a set, umode 146 + +S not set). 147 + 148 + AUTOCONN 149 + Sets auto-connect on or off for a particular server. Takes two 150 + parameters, server name and new state. 151 + 152 + To see these values, use /stats c. Changes to this are lost on a 153 + rehash. 154 + 155 + AUTOCONNALL 156 + Globally sets auto-connect on or off. If disabled, no automatic 157 + connections are done; if enabled, automatic connections are done 158 + following the rules for them. 159 + 160 + FLOODCOUNT 161 + The number of lines allowed to be sent to a connection before 162 + throttling it due to flooding. Note that this variable is used for 163 + both channels and clients. 164 + 165 + For channels, op or voice overrides this; for users, IRC operator 166 + status or op or voice on a common channel overrides this. 167 + 168 + IDENTTIMEOUT 169 + Timeout for requesting ident from a client. 170 + 171 + MAX 172 + Sets the maximum number of connections to value. 173 + 174 + This number cannot exceed maxconnections - MAX\_BUFFER. 175 + maxconnections is the rlimit for number of open files. MAX\_BUFFER 176 + is defined in config.h, normally 60. 177 + 178 + MAXCLIENTS is an alias for this. 179 + 180 + OPERSTRING 181 + Sets string shown in WHOIS for opers (umode +o set, umodes +a and +S 182 + not set). 183 + 184 + SPAMNUM 185 + Sets how many join/parts to channels constitutes a possible spambot. 186 + 187 + SPAMTIME 188 + Below this time on a channel counts as a join/part as above. 189 + 190 + SPLITMODE 191 + Sets splitmode to value: 192 + 193 + ON 194 + splitmode is permanently on 195 + 196 + OFF 197 + splitmode is permanently off (default if no\_create\_on\_split 198 + and no\_join\_on\_split are disabled) 199 + 200 + AUTO 201 + ircd chooses splitmode based on SPLITUSERS and SPLITNUM (default 202 + if no\_create\_on\_split or no\_join\_on\_split are enabled) 203 + 204 + SPLITUSERS 205 + Sets the minimum amount of users needed to deactivate automatic 206 + splitmode. 207 + 208 + SPLITNUM 209 + Sets the minimum amount of servers needed to deactivate automatic 210 + splitmode. Only servers that have finished bursting count for this. 211 + 212 + User management commands 213 + ======================== 214 + 215 + KILL 216 + ---- 217 + 218 + KILL 219 + nick 220 + reason 221 + Disconnects the user with the given nick from the server they are 222 + connected to, with the reason given, if present, and broadcast a server 223 + notice announcing this. 224 + 225 + Your nick and the reason will appear on channels. 226 + 227 + CLOSE 228 + ----- 229 + 230 + Closes all connections from and to clients and servers who have not 231 + completed registering. 232 + 233 + KLINE 234 + ----- 235 + 236 + KLINE 237 + length 238 + user 239 + @ 240 + host 241 + user 242 + @ 243 + a 244 + . 245 + b 246 + . 247 + c 248 + . 249 + d 250 + ON 251 + servername 252 + : 253 + reason 254 + Adds a K:line to ``kline.conf`` to ban the given user@host from using 255 + that server. 256 + 257 + If the optional parameter length is given, the K:line will be temporary 258 + (i.e. it will not be stored on disk) and last that long in minutes. 259 + 260 + If an IP address is given, the ban will be against all hosts matching 261 + that IP regardless of DNS. The IP address can be given as a full address 262 + (192.168.0.1), as a CIDR mask (192.168.0.0/24), or as a glob 263 + (192.168.0.\*). 264 + 265 + All clients matching the K:line will be disconnected from the server 266 + immediately. 267 + 268 + If a reason is specified, it will be sent to the client when they are 269 + disconnected, and whenever a connection is attempted which is banned. 270 + 271 + If the ON part is specified, the K:line is set on servers matching the 272 + given mask (provided a matching shared{} block exists there). Otherwise, 273 + if specified in a cluster{} block, the K:Line will be propagated across 274 + the network accordingly. 275 + 276 + UNKLINE 277 + ------- 278 + 279 + UNKLINE 280 + user 281 + @ 282 + host 283 + ON 284 + servername 285 + Will attempt to remove a K:line matching user@host from ``kline.conf``, 286 + and will flush a temporary K:line. 287 + 288 + XLINE 289 + ----- 290 + 291 + XLINE 292 + length 293 + mask 294 + ON 295 + servername 296 + : 297 + reason 298 + Works similarly to KLINE, but matches against the real name field. The 299 + wildcards are \* (any sequence), ? (any character), # (a digit) and @ (a 300 + letter); wildcard characters can be escaped with a backslash. The 301 + sequence \\s matches a space. 302 + 303 + All clients matching the X:line will be disconnected from the server 304 + immediately. 305 + 306 + The reason is never sent to users. Instead, they will be exited with 307 + “Bad user info”. 308 + 309 + If the ON part is specified, the X:line is set on servers matching the 310 + given mask (provided a matching shared{} block exists there). Otherwise, 311 + if specified in a cluster{} block, the X:line will be propagated across 312 + the network accordingly. 313 + 314 + UNXLINE 315 + ------- 316 + 317 + UNXLINE 318 + mask 319 + ON 320 + servername 321 + Will attempt to remove an X:line from ``xline.conf``, and will flush a 322 + temporary X:line. 323 + 324 + RESV 325 + ---- 326 + 327 + RESV 328 + length 329 + channel 330 + mask 331 + ON 332 + servername 333 + : 334 + reason 335 + If used on a channel, “jupes” the channel locally. Joins to the channel 336 + will be disallowed and generate a server notice on +y, and users will 337 + not be able to send to the channel. Channel jupes cannot contain 338 + wildcards. 339 + 340 + If used on a nickname mask, prevents local users from using a nick 341 + matching the mask (the same wildcard characters as xlines). There is no 342 + way to exempt the initial nick from this. 343 + 344 + In neither case will current users of the nick or channel be kicked or 345 + disconnected. 346 + 347 + This facility is not designed to make certain nicks or channels 348 + oper-only. 349 + 350 + The reason is never sent to users. 351 + 352 + If the ON part is specified, the resv is set on servers matching the 353 + given mask (provided a matching shared{} block exists there). Otherwise, 354 + if specified in a cluster{} block, the resv will be propagated across 355 + the network accordingly. 356 + 357 + UNRESV 358 + ------ 359 + 360 + UNRESV 361 + channel 362 + mask 363 + ON 364 + servername 365 + Will attempt to remove a resv from ``resv.conf``, and will flush a 366 + temporary resv. 367 + 368 + DLINE 369 + ----- 370 + 371 + DLINE 372 + length 373 + a 374 + . 375 + b 376 + . 377 + c 378 + . 379 + d 380 + ON 381 + servername 382 + : 383 + reason 384 + Adds a D:line to ``dline.conf``, which will deny any connections from 385 + the given IP address. The IP address can be given as a full address 386 + (192.168.0.1) or as a CIDR mask (192.168.0.0/24). 387 + 388 + If the optional parameter length is given, the D:line will be temporary 389 + (i.e. it will not be stored on disk) and last that long in minutes. 390 + 391 + All clients matching the D:line will be disconnected from the server 392 + immediately. 393 + 394 + If a reason is specified, it will be sent to the client when they are 395 + disconnected, and, if dline\_reason is enabled, whenever a connection is 396 + attempted which is banned. 397 + 398 + D:lines are less load on a server, and may be more appropriate if 399 + somebody is flooding connections. 400 + 401 + If the ON part is specified, the D:line is set on servers matching the 402 + given mask (provided a matching shared{} block exists there, which is 403 + not the case by default). Otherwise, the D:Line will be set on the local 404 + server only. 405 + 406 + Only exempt{} blocks exempt from D:lines. Being a server or having 407 + kline\_exempt in auth{} does *not* exempt (different from K/G/X:lines). 408 + 409 + UNDLINE 410 + ------- 411 + 412 + UNDLINE 413 + a.b.c.d 414 + ON 415 + servername 416 + Will attempt to remove a D:line from ``dline.conf``, and will flush a 417 + temporary D:line. 418 + 419 + TESTGECOS 420 + --------- 421 + 422 + TESTGECOS 423 + gecos 424 + Looks up X:Lines matching the given gecos. 425 + 426 + TESTLINE 427 + -------- 428 + 429 + TESTLINE 430 + nick 431 + ! 432 + user 433 + @ 434 + host 435 + a 436 + . 437 + b 438 + . 439 + c 440 + . 441 + d 442 + Looks up the given hostmask or IP address and reports back on any auth{} 443 + blocks, D: or K: lines found. If nick is given, also searches for nick 444 + resvs. 445 + 446 + For temporary items the number of minutes until the item expires is 447 + shown (as opposed to the hit count in STATS q/Q/x/X). 448 + 449 + This command will not perform DNS lookups; for best results you must 450 + testline a host and its IP form. 451 + 452 + The given username should begin with a tilde (~) if identd is not in 453 + use. As of charybdis 2.1.1, no\_tilde and username truncation will be 454 + taken into account like in the normal client access check. 455 + 456 + As of charybdis 2.2.0, a channel name can be specified and the RESV will 457 + be returned, if there is one. 458 + 459 + TESTMASK 460 + -------- 461 + 462 + TESTMASK 463 + hostmask 464 + gecos 465 + Searches the network for users that match the hostmask and gecos given, 466 + returning the number of matching users on this server and other servers. 467 + 468 + The hostmask is of the form user@host or user@ip/cidr with \* and ? 469 + wildcards, optionally preceded by nick!. 470 + 471 + The gecos field accepts the same wildcards as xlines. 472 + 473 + The IP address checked against is 255.255.255.255 if the IP address is 474 + unknown (remote client on a TS5 server) or 0 if the IP address is hidden 475 + (auth{} spoof). 476 + 477 + LUSERS 478 + ------ 479 + 480 + LUSERS 481 + mask 482 + nick 483 + server 484 + Shows various user and channel counts. 485 + 486 + The mask parameter is obsolete but must be used when querying a remote 487 + server. 488 + 489 + TRACE 490 + ----- 491 + 492 + TRACE 493 + server 494 + nick 495 + location 496 + With no argument or one argument which is the current server, TRACE 497 + gives a list of all connections to the current server and a summary of 498 + connection classes. 499 + 500 + With one argument which is another server, TRACE displays the path to 501 + the specified server, and all servers, opers and -i users on that 502 + server, along with a summary of connection classes. 503 + 504 + With one argument which is a client, TRACE displays the path to that 505 + client, and that client's information. 506 + 507 + If location is given, the command is executed on that server; no path is 508 + displayed. 509 + 510 + When listing connections, type, name and class is shown in addition to 511 + information depending on the type: 512 + 513 + Try. 514 + A server we are trying to make a TCP connection to. 515 + 516 + H.S. 517 + A server we have established a TCP connection to, but is not yet 518 + registered. 519 + 520 + ???? 521 + An incoming connection that has not yet registered as a user or a 522 + server (“unknown”). Shows the username, hostname, IP address and the 523 + time the connection has been open. It is possible that the ident or 524 + DNS lookups have not completed yet, and in any case no tildes are 525 + shown here. Unknown connections may not have a name yet. 526 + 527 + User 528 + A registered unopered user. Shows the username, hostname, IP 529 + address, the time the client has not sent anything (as in STATS l) 530 + and the time the user has been idle (from PRIVMSG only, as in 531 + WHOIS). 532 + 533 + Oper 534 + Like User, but opered. 535 + 536 + Serv 537 + A registered server. Shows the number of servers and users reached 538 + via this link, who made this connection and the time the server has 539 + not sent anything. 540 + 541 + ETRACE 542 + ------ 543 + 544 + ETRACE 545 + nick 546 + Shows client information about the given target, or about all local 547 + clients if no target is specified. 548 + 549 + PRIVS 550 + ----- 551 + 552 + PRIVS 553 + nick 554 + Displays effective operator privileges for the specified nick, or for 555 + yourself if no nick is given. This includes all privileges from the 556 + operator block, the name of the operator block and those privileges from 557 + the auth block that have an effect after the initial connection. 558 + 559 + The exact output depends on the server the nick is on, see the matching 560 + version of this document. If the remote server does not support this 561 + extension, you will not receive a reply. 562 + 563 + MASKTRACE 564 + --------- 565 + 566 + MASKTRACE 567 + hostmask 568 + gecos 569 + Searches the local server or network for users that match the hostmask 570 + and gecos given. Network searches require the oper\_spy privilege and an 571 + '!' before the hostmask. The matching works the same way as TESTMASK. 572 + 573 + The hostmask is of the form user@host or user@ip/cidr with \* and ? 574 + wildcards, optionally preceded by nick!. 575 + 576 + The gecos field accepts the same wildcards as xlines. 577 + 578 + The IP address field contains 255.255.255.255 if the IP address is 579 + unknown (remote client on a TS5 server) or 0 if the IP address is hidden 580 + (auth{} spoof). 581 + 582 + CHANTRACE 583 + --------- 584 + 585 + CHANTRACE 586 + channel 587 + Displays information about users in a channel. Opers with the oper\_spy 588 + privilege can get the information without being on the channel, by 589 + prefixing the channel name with an '!'. 590 + 591 + The IP address field contains 255.255.255.255 if the IP address is 592 + unknown (remote client on a TS5 server) or 0 if the IP address is hidden 593 + (auth{} spoof). 594 + 595 + SCAN 596 + ---- 597 + 598 + SCAN UMODES 599 + + 600 + modes 601 + - 602 + modes 603 + no-list 604 + list 605 + global 606 + list-max 607 + number 608 + mask 609 + nick!user@host 610 + Searches the local server or network for users that have the umodes 611 + given with + and do not have the umodes given with -. no-list disables 612 + the listing of matching users and only shows the count. list enables the 613 + listing (default). global extends the search to the entire network 614 + instead of local users only. list-max limits the listing of matching 615 + users to the given amount. mask causes only users matching the given 616 + nick!user@host mask to be selected. Only the displayed host is 617 + considered, not the IP address or real host behind dynamic spoofs. 618 + 619 + The IP address field contains 255.255.255.255 if the IP address is 620 + unknown (remote client on a TS5 server) or 0 if the IP address is hidden 621 + (auth{} spoof). 622 + 623 + Network searches where a listing is given are operspy commands. 624 + 625 + CHGHOST 626 + ------- 627 + 628 + CHGHOST 629 + nick 630 + value 631 + Set the hostname associated with a particular nick for the duration of 632 + this session. This command is disabled by default because of the abuse 633 + potential and little practical use. 634 + 635 + Miscellaneous commands 636 + ====================== 637 + 638 + ADMIN 639 + ----- 640 + 641 + ADMIN 642 + nick 643 + server 644 + Shows the information in the admin{} block. 645 + 646 + INFO 647 + ---- 648 + 649 + INFO 650 + nick 651 + server 652 + Shows information about the authors of the IRC server, and some 653 + information about this server instance. Opers also get a list of 654 + configuration options. 655 + 656 + TIME 657 + ---- 658 + 659 + TIME 660 + nick 661 + server 662 + Shows the local time on the given server, in a human-readable format. 663 + 664 + VERSION 665 + ------- 666 + 667 + VERSION 668 + nick 669 + server 670 + Shows version information, a few compile/config options, the SID and the 671 + 005 numerics. The 005 numeric will be remapped to 105 for remote 672 + requests. 673 + 674 + STATS 675 + ----- 676 + 677 + STATS 678 + type 679 + nick 680 + server 681 + Display various statistics and configuration information. 682 + 683 + A 684 + Show DNS servers 685 + 686 + b 687 + Show active nick delays 688 + 689 + B 690 + Show hash statistics 691 + 692 + c 693 + Show connect blocks 694 + 695 + d 696 + Show temporary D:lines 697 + 698 + D 699 + Show permanent D:lines 700 + 701 + e 702 + Show exempt blocks (exceptions to D:lines) 703 + 704 + E 705 + Show events 706 + 707 + f 708 + Show file descriptors 709 + 710 + h 711 + Show hub\_mask/leaf\_mask 712 + 713 + i 714 + Show auth blocks, or matched auth blocks 715 + 716 + k 717 + Show temporary K:lines, or matched K:lines 718 + 719 + K 720 + Show permanent K:lines, or matched K:lines 721 + 722 + l 723 + Show hostname and link information about the given nick. With a 724 + server name, show information about opers and servers on that 725 + server; opers get information about all local connections if they 726 + query their own server. No hostname is shown for server connections. 727 + 728 + L 729 + Like l, but show IP address instead of hostname 730 + 731 + m 732 + Show commands and their usage statistics (total counts, total bytes, 733 + counts from server connections) 734 + 735 + n 736 + Show blacklist blocks (DNS blacklists) with hit counts since last 737 + rehash and (parenthesized) reference counts. The reference count 738 + shows how many clients are waiting on a lookup of this blacklist or 739 + have been found and are waiting on registration to complete. 740 + 741 + o 742 + Show operator blocks 743 + 744 + O 745 + Show privset blocks 746 + 747 + p 748 + Show logged on network operators which are not set AWAY. 749 + 750 + P 751 + Show listen blocks (ports) 752 + 753 + q 754 + Show temporarily resv'ed nicks and channels with hit counts 755 + 756 + Q 757 + Show permanently resv'ed nicks and channels with hit counts since 758 + last rehash bans 759 + 760 + r 761 + Show resource usage by the ircd 762 + 763 + t 764 + Show generic server statistics about local connections 765 + 766 + u 767 + Show server uptime 768 + 769 + U 770 + Show shared (c), cluster (C) and service (s) blocks 771 + 772 + v 773 + Show connected servers and brief status 774 + 775 + x 776 + Show temporary X:lines with hit counts 777 + 778 + X 779 + Show permanent X:lines with hit counts since last rehash bans 780 + 781 + y 782 + Show class blocks 783 + 784 + z 785 + Show memory usage statistics 786 + 787 + Z 788 + Show ziplinks statistics 789 + 790 + ? 791 + Show connected servers and link information about them 792 + 793 + WALLOPS 794 + ------- 795 + 796 + WALLOPS 797 + : 798 + message 799 + Sends a WALLOPS message to all users who have the +w umode set. This is 800 + for things you don't mind the whole network knowing about. 801 + 802 + OPERWALL 803 + -------- 804 + 805 + OPERWALL 806 + : 807 + message 808 + Sends an OPERWALL message to all opers who have the +z umode set. +z is 809 + restricted, OPERWALL should be considered private communications.
+423
doc/oper-guide/conf.py
··· 1 + # -*- coding: utf-8 -*- 2 + # 3 + # Charybdis operator guide documentation build configuration file, created by 4 + # sphinx-quickstart on Sat Mar 25 10:41:29 2017. 5 + # 6 + # This file is execfile()d with the current directory set to its 7 + # containing dir. 8 + # 9 + # Note that not all possible configuration values are present in this 10 + # autogenerated file. 11 + # 12 + # All configuration values have a default; values that are commented out 13 + # serve to show the default. 14 + 15 + # If extensions (or modules to document with autodoc) are in another directory, 16 + # add these directories to sys.path here. If the directory is relative to the 17 + # documentation root, use os.path.abspath to make it absolute, like shown here. 18 + # 19 + # import os 20 + # import sys 21 + # sys.path.insert(0, os.path.abspath('.')) 22 + 23 + # -- General configuration ------------------------------------------------ 24 + 25 + # If your documentation needs a minimal Sphinx version, state it here. 26 + # 27 + # needs_sphinx = '1.0' 28 + 29 + # Add any Sphinx extension module names here, as strings. They can be 30 + # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom 31 + # ones. 32 + extensions = [] 33 + 34 + # Add any paths that contain templates here, relative to this directory. 35 + templates_path = ['_templates'] 36 + 37 + # The suffix(es) of source filenames. 38 + # You can specify multiple suffix as a list of string: 39 + # 40 + # source_suffix = ['.rst', '.md'] 41 + source_suffix = '.rst' 42 + 43 + # The encoding of source files. 44 + # 45 + # source_encoding = 'utf-8-sig' 46 + 47 + # The master toctree document. 48 + master_doc = 'index' 49 + 50 + # General information about the project. 51 + project = u'Charybdis operator guide' 52 + copyright = u'2017, Jilles Tjoelker' 53 + author = u'Jilles Tjoelker' 54 + 55 + # The version info for the project you're documenting, acts as replacement for 56 + # |version| and |release|, also used in various other places throughout the 57 + # built documents. 58 + # 59 + # The short X.Y version. 60 + version = u'3.5' 61 + # The full version, including alpha/beta/rc tags. 62 + release = u'3.5' 63 + 64 + # The language for content autogenerated by Sphinx. Refer to documentation 65 + # for a list of supported languages. 66 + # 67 + # This is also used if you do content translation via gettext catalogs. 68 + # Usually you set "language" from the command line for these cases. 69 + language = None 70 + 71 + # There are two options for replacing |today|: either, you set today to some 72 + # non-false value, then it is used: 73 + # 74 + # today = '' 75 + # 76 + # Else, today_fmt is used as the format for a strftime call. 77 + # 78 + # today_fmt = '%B %d, %Y' 79 + 80 + # List of patterns, relative to source directory, that match files and 81 + # directories to ignore when looking for source files. 82 + # This patterns also effect to html_static_path and html_extra_path 83 + exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] 84 + 85 + # The reST default role (used for this markup: `text`) to use for all 86 + # documents. 87 + # 88 + # default_role = None 89 + 90 + # If true, '()' will be appended to :func: etc. cross-reference text. 91 + # 92 + # add_function_parentheses = True 93 + 94 + # If true, the current module name will be prepended to all description 95 + # unit titles (such as .. function::). 96 + # 97 + # add_module_names = True 98 + 99 + # If true, sectionauthor and moduleauthor directives will be shown in the 100 + # output. They are ignored by default. 101 + # 102 + # show_authors = False 103 + 104 + # The name of the Pygments (syntax highlighting) style to use. 105 + pygments_style = 'sphinx' 106 + 107 + # A list of ignored prefixes for module index sorting. 108 + # modindex_common_prefix = [] 109 + 110 + # If true, keep warnings as "system message" paragraphs in the built documents. 111 + # keep_warnings = False 112 + 113 + # If true, `todo` and `todoList` produce output, else they produce nothing. 114 + todo_include_todos = False 115 + 116 + 117 + # -- Options for HTML output ---------------------------------------------- 118 + 119 + # The theme to use for HTML and HTML Help pages. See the documentation for 120 + # a list of builtin themes. 121 + # 122 + html_theme = 'alabaster' 123 + 124 + # Theme options are theme-specific and customize the look and feel of a theme 125 + # further. For a list of options available for each theme, see the 126 + # documentation. 127 + # 128 + # html_theme_options = {} 129 + 130 + # Add any paths that contain custom themes here, relative to this directory. 131 + # html_theme_path = [] 132 + 133 + # The name for this set of Sphinx documents. 134 + # "<project> v<release> documentation" by default. 135 + # 136 + # html_title = u'Charybdis operator guide v3.5' 137 + 138 + # A shorter title for the navigation bar. Default is the same as html_title. 139 + # 140 + # html_short_title = None 141 + 142 + # The name of an image file (relative to this directory) to place at the top 143 + # of the sidebar. 144 + # 145 + # html_logo = None 146 + 147 + # The name of an image file (relative to this directory) to use as a favicon of 148 + # the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 149 + # pixels large. 150 + # 151 + # html_favicon = None 152 + 153 + # Add any paths that contain custom static files (such as style sheets) here, 154 + # relative to this directory. They are copied after the builtin static files, 155 + # so a file named "default.css" will overwrite the builtin "default.css". 156 + html_static_path = ['_static'] 157 + 158 + # Add any extra paths that contain custom files (such as robots.txt or 159 + # .htaccess) here, relative to this directory. These files are copied 160 + # directly to the root of the documentation. 161 + # 162 + # html_extra_path = [] 163 + 164 + # If not None, a 'Last updated on:' timestamp is inserted at every page 165 + # bottom, using the given strftime format. 166 + # The empty string is equivalent to '%b %d, %Y'. 167 + # 168 + # html_last_updated_fmt = None 169 + 170 + # If true, SmartyPants will be used to convert quotes and dashes to 171 + # typographically correct entities. 172 + # 173 + # html_use_smartypants = True 174 + 175 + # Custom sidebar templates, maps document names to template names. 176 + # 177 + # html_sidebars = {} 178 + 179 + # Additional templates that should be rendered to pages, maps page names to 180 + # template names. 181 + # 182 + # html_additional_pages = {} 183 + 184 + # If false, no module index is generated. 185 + # 186 + # html_domain_indices = True 187 + 188 + # If false, no index is generated. 189 + # 190 + # html_use_index = True 191 + 192 + # If true, the index is split into individual pages for each letter. 193 + # 194 + # html_split_index = False 195 + 196 + # If true, links to the reST sources are added to the pages. 197 + # 198 + # html_show_sourcelink = True 199 + 200 + # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. 201 + # 202 + # html_show_sphinx = True 203 + 204 + # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. 205 + # 206 + # html_show_copyright = True 207 + 208 + # If true, an OpenSearch description file will be output, and all pages will 209 + # contain a <link> tag referring to it. The value of this option must be the 210 + # base URL from which the finished HTML is served. 211 + # 212 + # html_use_opensearch = '' 213 + 214 + # This is the file name suffix for HTML files (e.g. ".xhtml"). 215 + # html_file_suffix = None 216 + 217 + # Language to be used for generating the HTML full-text search index. 218 + # Sphinx supports the following languages: 219 + # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' 220 + # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr', 'zh' 221 + # 222 + # html_search_language = 'en' 223 + 224 + # A dictionary with options for the search language support, empty by default. 225 + # 'ja' uses this config value. 226 + # 'zh' user can custom change `jieba` dictionary path. 227 + # 228 + # html_search_options = {'type': 'default'} 229 + 230 + # The name of a javascript file (relative to the configuration directory) that 231 + # implements a search results scorer. If empty, the default will be used. 232 + # 233 + # html_search_scorer = 'scorer.js' 234 + 235 + # Output file base name for HTML help builder. 236 + htmlhelp_basename = 'Charybdisoperatorguidedoc' 237 + 238 + # -- Options for LaTeX output --------------------------------------------- 239 + 240 + latex_elements = { 241 + # The paper size ('letterpaper' or 'a4paper'). 242 + # 243 + # 'papersize': 'letterpaper', 244 + 245 + # The font size ('10pt', '11pt' or '12pt'). 246 + # 247 + # 'pointsize': '10pt', 248 + 249 + # Additional stuff for the LaTeX preamble. 250 + # 251 + # 'preamble': '', 252 + 253 + # Latex figure (float) alignment 254 + # 255 + # 'figure_align': 'htbp', 256 + } 257 + 258 + # Grouping the document tree into LaTeX files. List of tuples 259 + # (source start file, target name, title, 260 + # author, documentclass [howto, manual, or own class]). 261 + latex_documents = [ 262 + (master_doc, 'Charybdisoperatorguide.tex', u'Charybdis operator guide Documentation', 263 + u'Jilles Tjoelker', 'manual'), 264 + ] 265 + 266 + # The name of an image file (relative to this directory) to place at the top of 267 + # the title page. 268 + # 269 + # latex_logo = None 270 + 271 + # For "manual" documents, if this is true, then toplevel headings are parts, 272 + # not chapters. 273 + # 274 + # latex_use_parts = False 275 + 276 + # If true, show page references after internal links. 277 + # 278 + # latex_show_pagerefs = False 279 + 280 + # If true, show URL addresses after external links. 281 + # 282 + # latex_show_urls = False 283 + 284 + # Documents to append as an appendix to all manuals. 285 + # 286 + # latex_appendices = [] 287 + 288 + # It false, will not define \strong, \code, itleref, \crossref ... but only 289 + # \sphinxstrong, ..., \sphinxtitleref, ... To help avoid clash with user added 290 + # packages. 291 + # 292 + # latex_keep_old_macro_names = True 293 + 294 + # If false, no module index is generated. 295 + # 296 + # latex_domain_indices = True 297 + 298 + 299 + # -- Options for manual page output --------------------------------------- 300 + 301 + # One entry per manual page. List of tuples 302 + # (source start file, name, description, authors, manual section). 303 + man_pages = [ 304 + (master_doc, 'charybdisoperatorguide', u'Charybdis operator guide Documentation', 305 + [author], 1) 306 + ] 307 + 308 + # If true, show URL addresses after external links. 309 + # 310 + # man_show_urls = False 311 + 312 + 313 + # -- Options for Texinfo output ------------------------------------------- 314 + 315 + # Grouping the document tree into Texinfo files. List of tuples 316 + # (source start file, target name, title, author, 317 + # dir menu entry, description, category) 318 + texinfo_documents = [ 319 + (master_doc, 'Charybdisoperatorguide', u'Charybdis operator guide Documentation', 320 + author, 'Charybdisoperatorguide', 'One line description of project.', 321 + 'Miscellaneous'), 322 + ] 323 + 324 + # Documents to append as an appendix to all manuals. 325 + # 326 + # texinfo_appendices = [] 327 + 328 + # If false, no module index is generated. 329 + # 330 + # texinfo_domain_indices = True 331 + 332 + # How to display URL addresses: 'footnote', 'no', or 'inline'. 333 + # 334 + # texinfo_show_urls = 'footnote' 335 + 336 + # If true, do not generate a @detailmenu in the "Top" node's menu. 337 + # 338 + # texinfo_no_detailmenu = False 339 + 340 + 341 + # -- Options for Epub output ---------------------------------------------- 342 + 343 + # Bibliographic Dublin Core info. 344 + epub_title = project 345 + epub_author = author 346 + epub_publisher = author 347 + epub_copyright = copyright 348 + 349 + # The basename for the epub file. It defaults to the project name. 350 + # epub_basename = project 351 + 352 + # The HTML theme for the epub output. Since the default themes are not 353 + # optimized for small screen space, using the same theme for HTML and epub 354 + # output is usually not wise. This defaults to 'epub', a theme designed to save 355 + # visual space. 356 + # 357 + # epub_theme = 'epub' 358 + 359 + # The language of the text. It defaults to the language option 360 + # or 'en' if the language is not set. 361 + # 362 + # epub_language = '' 363 + 364 + # The scheme of the identifier. Typical schemes are ISBN or URL. 365 + # epub_scheme = '' 366 + 367 + # The unique identifier of the text. This can be a ISBN number 368 + # or the project homepage. 369 + # 370 + # epub_identifier = '' 371 + 372 + # A unique identification for the text. 373 + # 374 + # epub_uid = '' 375 + 376 + # A tuple containing the cover image and cover page html template filenames. 377 + # 378 + # epub_cover = () 379 + 380 + # A sequence of (type, uri, title) tuples for the guide element of content.opf. 381 + # 382 + # epub_guide = () 383 + 384 + # HTML files that should be inserted before the pages created by sphinx. 385 + # The format is a list of tuples containing the path and title. 386 + # 387 + # epub_pre_files = [] 388 + 389 + # HTML files that should be inserted after the pages created by sphinx. 390 + # The format is a list of tuples containing the path and title. 391 + # 392 + # epub_post_files = [] 393 + 394 + # A list of files that should not be packed into the epub file. 395 + epub_exclude_files = ['search.html'] 396 + 397 + # The depth of the table of contents in toc.ncx. 398 + # 399 + # epub_tocdepth = 3 400 + 401 + # Allow duplicate toc entries. 402 + # 403 + # epub_tocdup = True 404 + 405 + # Choose between 'default' and 'includehidden'. 406 + # 407 + # epub_tocscope = 'default' 408 + 409 + # Fix unsupported image types using the Pillow. 410 + # 411 + # epub_fix_images = False 412 + 413 + # Scale large images. 414 + # 415 + # epub_max_image_width = 0 416 + 417 + # How to display URL addresses: 'footnote', 'no', or 'inline'. 418 + # 419 + # epub_show_urls = 'inline' 420 + 421 + # If false, no index is generated. 422 + # 423 + # epub_use_index = True
+784
doc/oper-guide/config.rst
··· 1 + .. contents:: 2 + :depth: 3 3 + .. 4 + 5 + Server config file format 6 + ========================= 7 + 8 + General format 9 + ============== 10 + 11 + The config file consists of a series of BIND-style blocks. Each block 12 + consists of a series of values inside it which pertain to configuration 13 + settings that apply to the given block. 14 + 15 + Several values take lists of values and have defaults preset inside 16 + them. Prefix a keyword with a tilde (~) to override the default and 17 + disable it. 18 + 19 + A line may also be a .include directive, which is of the form .include 20 + "file" and causes file to be read in at that point, before the rest of 21 + the current file is processed. Relative paths are first tried relative 22 + to PREFIX and then relative to ETCPATH (normally PREFIX/etc). 23 + 24 + Anything from a # to the end of a line is a comment. Blank lines are 25 + ignored. C-style comments are also supported. 26 + 27 + Specific blocks and directives 28 + ============================== 29 + 30 + Not all configuration blocks and directives are listed here, only the 31 + most common ones. More blocks and directives will be documented in later 32 + revisions of this manual. 33 + 34 + loadmodule directive 35 + -------------------- 36 + 37 + loadmodule " 38 + text 39 + "; 40 + Loads a module into the IRCd. In charybdis 1.1, most modules are 41 + automatically loaded in. In future versions, it is intended to remove 42 + this behaviour as to allow for easy customization of the IRCd's 43 + featureset. 44 + 45 + serverinfo {} block 46 + ------------------- 47 + 48 + serverinfo { name = " 49 + text 50 + "; sid = " 51 + text 52 + "; description = " 53 + text 54 + "; network\_name = " 55 + text 56 + "; hub = 57 + boolean 58 + ; vhost = " 59 + text 60 + "; vhost6 = " 61 + text 62 + "; }; 63 + The serverinfo {} block defines the core operational parameters of the 64 + IRC server. 65 + 66 + name 67 + The name of the IRC server that you are configuring. This must 68 + contain at least one dot. It is not necessarily equal to any DNS 69 + name. This must be unique on the IRC network. 70 + 71 + sid 72 + A unique ID which describes the server. This consists of one digit 73 + and two characters which can be digits or letters. 74 + 75 + description 76 + A user-defined field of text which describes the IRC server. This 77 + information is used in /links and /whois requests. Geographical 78 + location information could be a useful use of this field, but most 79 + administrators put a witty saying inside it instead. 80 + 81 + network\_name 82 + The name of the IRC network that this server will be a member of. 83 + This is used in the welcome message and NETWORK= in 005. 84 + 85 + hub 86 + A boolean which defines whether or not this IRC server will be 87 + serving as a hub, i.e. have multiple servers connected to it. 88 + 89 + vhost 90 + An optional text field which defines an IPv4 address from which 91 + to connect outward to other IRC servers. 92 + 93 + vhost6 94 + An optional text field which defines an IPv6 address from which 95 + to connect outward to other IRC servers. 96 + 97 + admin {} block 98 + -------------- 99 + 100 + admin { name = " 101 + text 102 + "; description = " 103 + text 104 + "; email = " 105 + text 106 + "; }; 107 + This block provides the information which is returned by the ADMIN 108 + command. 109 + 110 + name 111 + The name of the administrator running this service. 112 + 113 + description 114 + The description of the administrator's position in the network. 115 + 116 + email 117 + A point of contact for the administrator, usually an e-mail address. 118 + 119 + class {} block 120 + -------------- 121 + 122 + class " 123 + name 124 + " { ping\_time = 125 + duration 126 + ; number\_per\_ident = 127 + number 128 + ; number\_per\_ip = 129 + number 130 + ; number\_per\_ip\_global = 131 + number 132 + ; cidr\_ipv4\_bitlen = 133 + number 134 + ; cidr\_ipv6\_bitlen = 135 + number 136 + ; number\_per\_cidr = 137 + number 138 + ; max\_number = 139 + number 140 + ; sendq = 141 + size 142 + ; }; 143 + class " 144 + name 145 + " { ping\_time = 146 + duration 147 + ; connectfreq = 148 + duration 149 + ; max\_number = 150 + number 151 + ; sendq = 152 + size 153 + ; }; 154 + Class blocks define classes of connections for later use. The class name 155 + is used to connect them to other blocks in the config file (auth{} and 156 + connect{}). They must be defined before they are used. 157 + 158 + Classes are used both for client and server connections, but most 159 + variables are different. 160 + 161 + ping\_time 162 + The amount of time between checking pings for clients, e.g.: 2 163 + minutes 164 + 165 + number\_per\_ident 166 + The amount of clients which may be connected from a single identd 167 + username on a per-IP basis, globally. Unidented clients all count as 168 + the same username. 169 + 170 + number\_per\_ip 171 + The amount of clients which may be connected from a single IP 172 + address. 173 + 174 + number\_per\_ip\_global 175 + The amount of clients which may be connected globally from a single 176 + IP address. 177 + 178 + cidr\_ipv4\_bitlen 179 + The netblock length to use with CIDR-based client limiting for IPv4 180 + users in this class (between 0 and 32). 181 + 182 + cidr\_ipv6\_bitlen 183 + The netblock length to use with CIDR-based client limiting for IPv6 184 + users in this class (between 0 and 128). 185 + 186 + number\_per\_cidr 187 + The amount of clients which may be connected from a single netblock. 188 + 189 + If this needs to differ between IPv4 and IPv6, make different 190 + classes for IPv4 and IPv6 users. 191 + 192 + max\_number 193 + The maximum amount of clients which may use this class at any given 194 + time. 195 + 196 + sendq 197 + The maximum size of the queue of data to be sent to a client before 198 + it is dropped. 199 + 200 + ping\_time 201 + The amount of time between checking pings for servers, e.g.: 2 202 + minutes 203 + 204 + connectfreq 205 + The amount of time between autoconnects. This must at least be one 206 + minute, as autoconnects are evaluated with that granularity. 207 + 208 + max\_number 209 + The amount of servers to autoconnect to in this class. More 210 + precisely, no autoconnects are done if the number of servers in this 211 + class is greater than or equal max\_number 212 + 213 + sendq 214 + The maximum size of the queue of data to be sent to a server before 215 + it is dropped. 216 + 217 + auth {} block 218 + ------------- 219 + 220 + auth { user = " 221 + hostmask 222 + "; password = " 223 + text 224 + "; spoof = " 225 + text 226 + "; flags = 227 + list 228 + ; class = " 229 + text 230 + "; }; 231 + auth {} blocks allow client connections to the server, and set various 232 + properties concerning those connections. 233 + 234 + Auth blocks are evaluated from top to bottom in priority, so put special 235 + blocks first. 236 + 237 + user 238 + A hostmask (user@host) that the auth {} block applies to. It is 239 + matched against the hostname and IP address (using :: shortening for 240 + IPv6 and prepending a 0 if it starts with a colon) and can also use 241 + CIDR masks. You can have multiple user entries. 242 + 243 + password 244 + An optional password to use for authenticating into this auth{} 245 + block. If the password is wrong the user will not be able to connect 246 + (will not fall back on another auth{} block). 247 + 248 + spoof 249 + An optional fake hostname (or user@host) to apply to users 250 + authenticated to this auth{} block. In STATS i and TESTLINE, an 251 + equals sign (=) appears before the user@host and the spoof is shown. 252 + 253 + flags 254 + A list of flags to apply to this auth{} block. They are listed 255 + below. Some of the flags appear as a special character, 256 + parenthesized in the list, before the user@host in STATS i and 257 + TESTLINE. 258 + 259 + class 260 + A name of a class to put users matching this auth{} block into. 261 + 262 + encrypted 263 + The password used has been encrypted. 264 + 265 + spoof\_notice 266 + Causes the IRCd to send out a server notice when activating a spoof 267 + provided by this auth{} block. 268 + 269 + exceed\_limit (>) 270 + Users in this auth{} block can exceed class-wide limitations. 271 + 272 + dnsbl\_exempt ($) 273 + Users in this auth{} block are exempted from DNS blacklist checks. 274 + However, they will still be warned if they are listed. 275 + 276 + kline\_exempt (^) 277 + Users in this auth{} block are exempted from DNS blacklists, k:lines 278 + and x:lines. 279 + 280 + spambot\_exempt 281 + Users in this auth{} block are exempted from spambot checks. 282 + 283 + shide\_exempt 284 + Users in this auth{} block are exempted from some serverhiding 285 + effects. 286 + 287 + jupe\_exempt 288 + Users in this auth{} block do not trigger an alarm when joining 289 + juped channels. 290 + 291 + resv\_exempt 292 + Users in this auth{} block may use reserved nicknames and channels. 293 + 294 + **Note** 295 + 296 + The initial nickname may still not be reserved. 297 + 298 + flood\_exempt (\|) 299 + Users in this auth{} block may send arbitrary amounts of commands 300 + per time unit to the server. This does not exempt them from any 301 + other flood limits. You should use this setting with caution. 302 + 303 + no\_tilde (-) 304 + Users in this auth{} block will not have a tilde added to their 305 + username if they do not run identd. 306 + 307 + need\_ident (+) 308 + Users in this auth{} block must have identd, otherwise they will be 309 + rejected. 310 + 311 + need\_ssl 312 + Users in this auth{} block must be connected via SSL/TLS, otherwise 313 + they will be rejected. 314 + 315 + need\_sasl 316 + Users in this auth{} block must identify via SASL, otherwise they 317 + will be rejected. 318 + 319 + exempt {} block 320 + --------------- 321 + 322 + exempt { ip = " 323 + ip 324 + "; }; 325 + An exempt block specifies IP addresses which are exempt from D:lines and 326 + throttling. Multiple addresses can be specified in one block. Clients 327 + coming from these addresses can still be K/G/X:lined or banned by a DNS 328 + blacklist unless they also have appropriate flags in their auth{} block. 329 + 330 + ip 331 + The IP address or CIDR range to exempt. 332 + 333 + privset {} block 334 + ---------------- 335 + 336 + privset { extends = " 337 + name 338 + "; privs = 339 + list 340 + ; }; 341 + A privset (privilege set) block specifies a set of operator privileges. 342 + 343 + extends 344 + An optional privset to inherit. The new privset will have all 345 + privileges that the given privset has. 346 + 347 + privs 348 + Privileges to grant to this privset. These are described in the 349 + operator privileges section. 350 + 351 + operator {} block 352 + ----------------- 353 + 354 + operator " 355 + name 356 + " { user = " 357 + hostmask 358 + "; password = " 359 + text 360 + "; rsa\_public\_key\_file = " 361 + text 362 + "; umodes = 363 + list 364 + ; snomask = " 365 + text 366 + "; flags = 367 + list 368 + ; }; 369 + Operator blocks define who may use the OPER command to gain extended 370 + privileges. 371 + 372 + user 373 + A hostmask that users trying to use this operator {} block must 374 + match. This is checked against the original host and IP address; 375 + CIDR is also supported. So auth {} spoofs work in operator {} 376 + blocks; the real host behind them is not checked. Other kind of 377 + spoofs do not work in operator {} blocks; the real host behind them 378 + is checked. 379 + 380 + Note that this is different from charybdis 1.x where all kinds of 381 + spoofs worked in operator {} blocks. 382 + 383 + password 384 + A password used with the OPER command to use this operator {} block. 385 + Passwords are encrypted by default, but may be unencrypted if 386 + ~encrypted is present in the flags list. 387 + 388 + rsa\_public\_key\_file 389 + An optional path to a RSA public key file associated with the 390 + operator {} block. This information is used by the CHALLENGE 391 + command, which is an alternative authentication scheme to the 392 + traditional OPER command. 393 + 394 + umodes 395 + A list of usermodes to apply to successfully opered clients. 396 + 397 + snomask 398 + An snomask to apply to successfully opered clients. 399 + 400 + privset 401 + The privilege set granted to successfully opered clients. This must 402 + be defined before this operator{} block. 403 + 404 + flags 405 + A list of flags to apply to this operator{} block. They are listed 406 + below. 407 + 408 + encrypted 409 + The password used has been encrypted. This is enabled by default, 410 + use ~encrypted to disable it. 411 + 412 + need\_ssl 413 + Restricts use of this operator{} block to SSL/TLS connections only. 414 + 415 + connect {} block 416 + ---------------- 417 + 418 + connect " 419 + name 420 + " { host = " 421 + text 422 + "; send\_password = " 423 + text 424 + "; accept\_password = " 425 + text 426 + "; port = 427 + number 428 + ; hub\_mask = " 429 + mask 430 + "; leaf\_mask = " 431 + mask 432 + "; class = " 433 + text 434 + "; flags = 435 + list 436 + ; aftype = 437 + protocol 438 + ; }; 439 + Connect blocks define what servers may connect or be connected to. 440 + 441 + host 442 + The hostname or IP to connect to. 443 + 444 + **Note** 445 + 446 + Furthermore, if a hostname is used, it must have an A or AAAA 447 + record (no CNAME) and it must be the primary hostname for 448 + inbound connections to work. 449 + 450 + send\_password 451 + The password to send to the other server. 452 + 453 + accept\_password 454 + The password that should be accepted from the other server. 455 + 456 + port 457 + The port on the other server to connect to. 458 + 459 + hub\_mask 460 + An optional domain mask of servers allowed to be introduced by this 461 + link. Usually, "\*" is fine. Multiple hub\_masks may be specified, 462 + and any of them may be introduced. Violation of hub\_mask and 463 + leaf\_mask restrictions will cause the local link to be closed. 464 + 465 + leaf\_mask 466 + An optional domain mask of servers not allowed to be introduced by 467 + this link. Multiple leaf\_masks may be specified, and none of them 468 + may be introduced. leaf\_mask has priority over hub\_mask. 469 + 470 + class 471 + The name of the class this server should be placed into. 472 + 473 + flags 474 + A list of flags concerning the connect block. They are listed below. 475 + 476 + aftype 477 + The protocol that should be used to connect with, either ipv4 or 478 + ipv6. This defaults to neither, allowing connection using either 479 + address family. 480 + 481 + encrypted 482 + The value for accept\_password has been encrypted. 483 + 484 + autoconn 485 + The server should automatically try to connect to the server defined 486 + in this connect {} block if it's not connected already and 487 + max\_number in the class is not reached yet. 488 + 489 + compressed 490 + Ziplinks should be used with this server connection. This compresses 491 + traffic using zlib, saving some bandwidth and speeding up netbursts. 492 + 493 + If you have trouble setting up a link, you should turn this off as 494 + it often hides error messages. 495 + 496 + topicburst 497 + Topics should be bursted to this server. 498 + 499 + This is enabled by default. 500 + 501 + listen {} block 502 + --------------- 503 + 504 + listen { host = " 505 + text 506 + "; port = 507 + number 508 + ; }; 509 + A listen block specifies what ports a server should listen on. 510 + 511 + host 512 + An optional host to bind to. Otherwise, the ircd will listen on all 513 + available hosts. 514 + 515 + port 516 + A port to listen on. You can specify multiple ports via commas, and 517 + define a range by seperating the start and end ports with two dots 518 + (..). 519 + 520 + modules {} block 521 + ---------------- 522 + 523 + modules { path = " 524 + text 525 + "; module = 526 + text 527 + ; }; 528 + The modules block specifies information for loadable modules. 529 + 530 + path 531 + Specifies a path to search for loadable modules. 532 + 533 + module 534 + Specifies a module to load, similar to loadmodule. 535 + 536 + general {} block 537 + ---------------- 538 + 539 + modules { 540 + values 541 + }; 542 + The general block specifies a variety of options, many of which were in 543 + ``config.h`` in older daemons. The options are documented in 544 + ``reference.conf``. 545 + 546 + channel {} block 547 + ---------------- 548 + 549 + modules { 550 + values 551 + }; 552 + The channel block specifies a variety of channel-related options, many 553 + of which were in ``config.h`` in older daemons. The options are 554 + documented in ``reference.conf``. 555 + 556 + serverhide {} block 557 + ------------------- 558 + 559 + modules { 560 + values 561 + }; 562 + The serverhide block specifies options related to server hiding. The 563 + options are documented in ``reference.conf``. 564 + 565 + blacklist {} block 566 + ------------------ 567 + 568 + blacklist { host = " 569 + text 570 + "; reject\_reason = " 571 + text 572 + "; }; 573 + The blacklist block specifies DNS blacklists to check. Listed clients 574 + will not be allowed to connect. IPv6 clients are not checked against 575 + these. 576 + 577 + Multiple blacklists can be specified, in pairs with first host then 578 + reject\_reason. 579 + 580 + host 581 + The DNSBL to use. 582 + 583 + reject\_reason 584 + The reason to send to listed clients when disconnecting them. 585 + 586 + alias {} block 587 + -------------- 588 + 589 + alias " 590 + name 591 + " { target = " 592 + text 593 + "; }; 594 + Alias blocks allow the definition of custom commands. These commands 595 + send PRIVMSG to the given target. A real command takes precedence above 596 + an alias. 597 + 598 + target 599 + The target nick (must be a network service (umode +S)) or 600 + user@server. In the latter case, the server cannot be this server, 601 + only opers can use user starting with "opers" reliably and the user 602 + is interpreted on the target server only so you may need to use 603 + nick@server instead). 604 + 605 + cluster {} block 606 + ---------------- 607 + 608 + cluster { name = " 609 + text 610 + "; flags = 611 + list 612 + ; }; 613 + The cluster block specifies servers we propagate things to 614 + automatically. This does not allow them to set bans, you need a separate 615 + shared{} block for that. 616 + 617 + Having overlapping cluster{} items will cause the command to be executed 618 + twice on the target servers. This is particularly undesirable for ban 619 + removals. 620 + 621 + The letters in parentheses denote the flags in /stats U. 622 + 623 + name 624 + The server name to share with, this may contain wildcards and may be 625 + stacked. 626 + 627 + flags 628 + The list of what to share, all the name lines above this (up to 629 + another flags entry) will receive these flags. They are listed 630 + below. 631 + 632 + kline (K) 633 + Permanent K:lines 634 + 635 + tkline (k) 636 + Temporary K:lines 637 + 638 + unkline (U) 639 + K:line removals 640 + 641 + xline (X) 642 + Permanent X:lines 643 + 644 + txline (x) 645 + Temporary X:lines 646 + 647 + unxline (Y) 648 + X:line removals 649 + 650 + resv (Q) 651 + Permanently reserved nicks/channels 652 + 653 + tresv (q) 654 + Temporarily reserved nicks/channels 655 + 656 + unresv (R) 657 + RESV removals 658 + 659 + locops (L) 660 + LOCOPS messages (sharing this with \* makes LOCOPS rather similar to 661 + OPERWALL which is not useful) 662 + 663 + all 664 + All of the above 665 + 666 + shared {} block 667 + --------------- 668 + 669 + shared { oper = " 670 + user@host 671 + ", " 672 + server 673 + "; flags = 674 + list 675 + ; }; 676 + The shared block specifies opers allowed to perform certain actions on 677 + our server remotely. These are ordered top down. The first one matching 678 + will determine the oper's access. If access is denied, the command will 679 + be silently ignored. 680 + 681 + The letters in parentheses denote the flags in /stats U. 682 + 683 + oper 684 + The user@host the oper must have, and the server they must be on. 685 + This may contain wildcards. 686 + 687 + flags 688 + The list of what to allow, all the oper lines above this (up to 689 + another flags entry) will receive these flags. They are listed 690 + below. 691 + 692 + **Note** 693 + 694 + While they have the same names, the flags have subtly different 695 + meanings from those in the cluster{} block. 696 + 697 + kline (K) 698 + Permanent and temporary K:lines 699 + 700 + tkline (k) 701 + Temporary K:lines 702 + 703 + unkline (U) 704 + K:line removals 705 + 706 + xline (X) 707 + Permanent and temporary X:lines 708 + 709 + txline (x) 710 + Temporary X:lines 711 + 712 + unxline (Y) 713 + X:line removals 714 + 715 + resv (Q) 716 + Permanently and temporarily reserved nicks/channels 717 + 718 + tresv (q) 719 + Temporarily reserved nicks/channels 720 + 721 + unresv (R) 722 + RESV removals 723 + 724 + all 725 + All of the above; this does not include locops, rehash, dline, 726 + tdline or undline. 727 + 728 + locops (L) 729 + LOCOPS messages (accepting this from \* makes LOCOPS rather similar 730 + to OPERWALL which is not useful); unlike the other flags, this can 731 + only be accepted from \*@\* although it can be restricted based on 732 + source server. 733 + 734 + rehash (H) 735 + REHASH commands; all options can be used 736 + 737 + dline (D) 738 + Permanent and temporary D:lines 739 + 740 + tdline (d) 741 + Temporary D:lines 742 + 743 + undline (E) 744 + D:line removals 745 + 746 + none 747 + Allow nothing to be done 748 + 749 + service {} block 750 + ---------------- 751 + 752 + service { name = " 753 + text 754 + "; }; 755 + The service block specifies privileged servers (services). These servers 756 + have extra privileges such as setting login names on users and 757 + introducing clients with umode +S (unkickable, hide channels, etc). This 758 + does not allow them to set bans, you need a separate shared{} block for 759 + that. 760 + 761 + Do not place normal servers here. 762 + 763 + Multiple names may be specified but there may be only one service{} 764 + block. 765 + 766 + name 767 + The server name to grant special privileges. This may not contain 768 + wildcards. 769 + 770 + Hostname resolution (DNS) 771 + ========================= 772 + 773 + Charybdis uses solely DNS for all hostname/address lookups (no 774 + ``/etc/hosts`` or anything else). The DNS servers are taken from 775 + ``/etc/resolv.conf``. If this file does not exist or no valid IP 776 + addresses are listed in it, the local host (127.0.0.1) is used. (Note 777 + that the latter part did not work in older versions of Charybdis.) 778 + 779 + IPv4 as well as IPv6 DNS servers are supported, but it is not possible 780 + to use both IPv4 and IPv6 in ``/etc/resolv.conf``. 781 + 782 + For both security and performance reasons, it is recommended that a 783 + caching nameserver such as BIND be run on the same machine as Charybdis 784 + and that ``/etc/resolv.conf`` only list 127.0.0.1.
+22
doc/oper-guide/index.rst
··· 1 + .. Charybdis operator guide documentation master file, created by 2 + sphinx-quickstart on Sat Mar 25 10:41:29 2017. 3 + You can adapt this file completely to your liking, but it should at least 4 + contain the root `toctree` directive. 5 + 6 + Welcome to Charybdis operator guide's documentation! 7 + ==================================================== 8 + 9 + Contents: 10 + 11 + .. toctree:: 12 + :maxdepth: 2 13 + 14 + 15 + 16 + Indices and tables 17 + ================== 18 + 19 + * :ref:`genindex` 20 + * :ref:`modindex` 21 + * :ref:`search` 22 +
+24
doc/oper-guide/intro.rst
··· 1 + .. contents:: 2 + :depth: 3 3 + .. 4 + 5 + Introduction 6 + ============ 7 + 8 + Scope of this document 9 + ====================== 10 + 11 + This document describes the commands and functions available to 12 + operators in the charybdis ircd, as used on 13 + `AthemeNet <http://www.atheme.net>`__. 14 + 15 + This document, and various ideas for features of charybdis, have been 16 + taken from dancer-ircd/hyperion, the ircd used on freenode, mainly 17 + written by Andrew Suffield and Jilles Tjoelker. 18 + 19 + While this document may be of some interest to the users of charybdis 20 + servers, it is intended as a reference for network staff. 21 + 22 + Charybdis is based on ircd-ratbox 2.1.4, although much has changed. 23 + `ircd-ratbox <http://www.ircd-ratbox.org>`__ is commonly used on efnet, 24 + and some other networks.
+281
doc/oper-guide/make.bat
··· 1 + @ECHO OFF 2 + 3 + REM Command file for Sphinx documentation 4 + 5 + if "%SPHINXBUILD%" == "" ( 6 + set SPHINXBUILD=sphinx-build 7 + ) 8 + set BUILDDIR=_build 9 + set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . 10 + set I18NSPHINXOPTS=%SPHINXOPTS% . 11 + if NOT "%PAPER%" == "" ( 12 + set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% 13 + set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% 14 + ) 15 + 16 + if "%1" == "" goto help 17 + 18 + if "%1" == "help" ( 19 + :help 20 + echo.Please use `make ^<target^>` where ^<target^> is one of 21 + echo. html to make standalone HTML files 22 + echo. dirhtml to make HTML files named index.html in directories 23 + echo. singlehtml to make a single large HTML file 24 + echo. pickle to make pickle files 25 + echo. json to make JSON files 26 + echo. htmlhelp to make HTML files and a HTML help project 27 + echo. qthelp to make HTML files and a qthelp project 28 + echo. devhelp to make HTML files and a Devhelp project 29 + echo. epub to make an epub 30 + echo. epub3 to make an epub3 31 + echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter 32 + echo. text to make text files 33 + echo. man to make manual pages 34 + echo. texinfo to make Texinfo files 35 + echo. gettext to make PO message catalogs 36 + echo. changes to make an overview over all changed/added/deprecated items 37 + echo. xml to make Docutils-native XML files 38 + echo. pseudoxml to make pseudoxml-XML files for display purposes 39 + echo. linkcheck to check all external links for integrity 40 + echo. doctest to run all doctests embedded in the documentation if enabled 41 + echo. coverage to run coverage check of the documentation if enabled 42 + echo. dummy to check syntax errors of document sources 43 + goto end 44 + ) 45 + 46 + if "%1" == "clean" ( 47 + for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i 48 + del /q /s %BUILDDIR%\* 49 + goto end 50 + ) 51 + 52 + 53 + REM Check if sphinx-build is available and fallback to Python version if any 54 + %SPHINXBUILD% 1>NUL 2>NUL 55 + if errorlevel 9009 goto sphinx_python 56 + goto sphinx_ok 57 + 58 + :sphinx_python 59 + 60 + set SPHINXBUILD=python -m sphinx.__init__ 61 + %SPHINXBUILD% 2> nul 62 + if errorlevel 9009 ( 63 + echo. 64 + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 65 + echo.installed, then set the SPHINXBUILD environment variable to point 66 + echo.to the full path of the 'sphinx-build' executable. Alternatively you 67 + echo.may add the Sphinx directory to PATH. 68 + echo. 69 + echo.If you don't have Sphinx installed, grab it from 70 + echo.http://sphinx-doc.org/ 71 + exit /b 1 72 + ) 73 + 74 + :sphinx_ok 75 + 76 + 77 + if "%1" == "html" ( 78 + %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html 79 + if errorlevel 1 exit /b 1 80 + echo. 81 + echo.Build finished. The HTML pages are in %BUILDDIR%/html. 82 + goto end 83 + ) 84 + 85 + if "%1" == "dirhtml" ( 86 + %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml 87 + if errorlevel 1 exit /b 1 88 + echo. 89 + echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. 90 + goto end 91 + ) 92 + 93 + if "%1" == "singlehtml" ( 94 + %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml 95 + if errorlevel 1 exit /b 1 96 + echo. 97 + echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. 98 + goto end 99 + ) 100 + 101 + if "%1" == "pickle" ( 102 + %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle 103 + if errorlevel 1 exit /b 1 104 + echo. 105 + echo.Build finished; now you can process the pickle files. 106 + goto end 107 + ) 108 + 109 + if "%1" == "json" ( 110 + %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json 111 + if errorlevel 1 exit /b 1 112 + echo. 113 + echo.Build finished; now you can process the JSON files. 114 + goto end 115 + ) 116 + 117 + if "%1" == "htmlhelp" ( 118 + %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp 119 + if errorlevel 1 exit /b 1 120 + echo. 121 + echo.Build finished; now you can run HTML Help Workshop with the ^ 122 + .hhp project file in %BUILDDIR%/htmlhelp. 123 + goto end 124 + ) 125 + 126 + if "%1" == "qthelp" ( 127 + %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp 128 + if errorlevel 1 exit /b 1 129 + echo. 130 + echo.Build finished; now you can run "qcollectiongenerator" with the ^ 131 + .qhcp project file in %BUILDDIR%/qthelp, like this: 132 + echo.^> qcollectiongenerator %BUILDDIR%\qthelp\Charybdisoperatorguide.qhcp 133 + echo.To view the help file: 134 + echo.^> assistant -collectionFile %BUILDDIR%\qthelp\Charybdisoperatorguide.ghc 135 + goto end 136 + ) 137 + 138 + if "%1" == "devhelp" ( 139 + %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp 140 + if errorlevel 1 exit /b 1 141 + echo. 142 + echo.Build finished. 143 + goto end 144 + ) 145 + 146 + if "%1" == "epub" ( 147 + %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub 148 + if errorlevel 1 exit /b 1 149 + echo. 150 + echo.Build finished. The epub file is in %BUILDDIR%/epub. 151 + goto end 152 + ) 153 + 154 + if "%1" == "epub3" ( 155 + %SPHINXBUILD% -b epub3 %ALLSPHINXOPTS% %BUILDDIR%/epub3 156 + if errorlevel 1 exit /b 1 157 + echo. 158 + echo.Build finished. The epub3 file is in %BUILDDIR%/epub3. 159 + goto end 160 + ) 161 + 162 + if "%1" == "latex" ( 163 + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex 164 + if errorlevel 1 exit /b 1 165 + echo. 166 + echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. 167 + goto end 168 + ) 169 + 170 + if "%1" == "latexpdf" ( 171 + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex 172 + cd %BUILDDIR%/latex 173 + make all-pdf 174 + cd %~dp0 175 + echo. 176 + echo.Build finished; the PDF files are in %BUILDDIR%/latex. 177 + goto end 178 + ) 179 + 180 + if "%1" == "latexpdfja" ( 181 + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex 182 + cd %BUILDDIR%/latex 183 + make all-pdf-ja 184 + cd %~dp0 185 + echo. 186 + echo.Build finished; the PDF files are in %BUILDDIR%/latex. 187 + goto end 188 + ) 189 + 190 + if "%1" == "text" ( 191 + %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text 192 + if errorlevel 1 exit /b 1 193 + echo. 194 + echo.Build finished. The text files are in %BUILDDIR%/text. 195 + goto end 196 + ) 197 + 198 + if "%1" == "man" ( 199 + %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man 200 + if errorlevel 1 exit /b 1 201 + echo. 202 + echo.Build finished. The manual pages are in %BUILDDIR%/man. 203 + goto end 204 + ) 205 + 206 + if "%1" == "texinfo" ( 207 + %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo 208 + if errorlevel 1 exit /b 1 209 + echo. 210 + echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. 211 + goto end 212 + ) 213 + 214 + if "%1" == "gettext" ( 215 + %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale 216 + if errorlevel 1 exit /b 1 217 + echo. 218 + echo.Build finished. The message catalogs are in %BUILDDIR%/locale. 219 + goto end 220 + ) 221 + 222 + if "%1" == "changes" ( 223 + %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes 224 + if errorlevel 1 exit /b 1 225 + echo. 226 + echo.The overview file is in %BUILDDIR%/changes. 227 + goto end 228 + ) 229 + 230 + if "%1" == "linkcheck" ( 231 + %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck 232 + if errorlevel 1 exit /b 1 233 + echo. 234 + echo.Link check complete; look for any errors in the above output ^ 235 + or in %BUILDDIR%/linkcheck/output.txt. 236 + goto end 237 + ) 238 + 239 + if "%1" == "doctest" ( 240 + %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest 241 + if errorlevel 1 exit /b 1 242 + echo. 243 + echo.Testing of doctests in the sources finished, look at the ^ 244 + results in %BUILDDIR%/doctest/output.txt. 245 + goto end 246 + ) 247 + 248 + if "%1" == "coverage" ( 249 + %SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage 250 + if errorlevel 1 exit /b 1 251 + echo. 252 + echo.Testing of coverage in the sources finished, look at the ^ 253 + results in %BUILDDIR%/coverage/python.txt. 254 + goto end 255 + ) 256 + 257 + if "%1" == "xml" ( 258 + %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml 259 + if errorlevel 1 exit /b 1 260 + echo. 261 + echo.Build finished. The XML files are in %BUILDDIR%/xml. 262 + goto end 263 + ) 264 + 265 + if "%1" == "pseudoxml" ( 266 + %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml 267 + if errorlevel 1 exit /b 1 268 + echo. 269 + echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. 270 + goto end 271 + ) 272 + 273 + if "%1" == "dummy" ( 274 + %SPHINXBUILD% -b dummy %ALLSPHINXOPTS% %BUILDDIR%/dummy 275 + if errorlevel 1 exit /b 1 276 + echo. 277 + echo.Build finished. Dummy builder generates no files. 278 + goto end 279 + ) 280 + 281 + :end
+133
doc/oper-guide/oprivs.rst
··· 1 + .. contents:: 2 + :depth: 3 3 + .. 4 + 5 + Oper privileges 6 + =============== 7 + 8 + Meanings of oper privileges 9 + =========================== 10 + 11 + These are specified in privset{}. 12 + 13 + oper:admin, server administrator 14 + -------------------------------- 15 + 16 + Various privileges intended for server administrators. Among other 17 + things, this automatically sets umode +a and allows loading modules. 18 + 19 + oper:die, die and restart 20 + ------------------------- 21 + 22 + This grants permission to use DIE and RESTART, shutting down or 23 + restarting the server. 24 + 25 + oper:global\_kill, global kill 26 + ------------------------------ 27 + 28 + Allows using KILL on users on any server. 29 + 30 + oper:hidden, hide from /stats p 31 + ------------------------------- 32 + 33 + This privilege currently does nothing, but was designed to hide bots 34 + from /stats p so users will not message them for help. 35 + 36 + oper:hidden\_admin, hidden administrator 37 + ---------------------------------------- 38 + 39 + This grants everything granted to the oper:admin privilege, except the 40 + ability to set umode +a. If both oper:admin and oper:hidden\_admin are 41 + possessed, umode +a can still not be used. 42 + 43 + oper:kline, kline and dline 44 + --------------------------- 45 + 46 + Allows using KLINE and DLINE, to ban users by user@host mask or IP 47 + address. 48 + 49 + oper:local\_kill, kill local users 50 + ---------------------------------- 51 + 52 + This grants permission to use KILL on users on the same server, 53 + disconnecting them from the network. 54 + 55 + oper:mass\_notice, global notices and wallops 56 + --------------------------------------------- 57 + 58 + Allows using server name ($$mask) and hostname ($#mask) masks in NOTICE 59 + and PRIVMSG to send a message to all matching users, and allows using 60 + the WALLOPS command to send a message to all users with umode +w set. 61 + 62 + oper:operwall, send/receive operwall 63 + ------------------------------------ 64 + 65 + Allows using the OPERWALL command and umode +z to send and receive 66 + operwalls. 67 + 68 + oper:rehash, rehash 69 + ------------------- 70 + 71 + Allows using the REHASH command, to rehash various configuration files 72 + or clear certain lists. 73 + 74 + oper:remoteban, set remote bans 75 + ------------------------------- 76 + 77 + This grants the ability to use the ON argument on DLINE/KLINE/XLINE/RESV 78 + and UNDLINE/UNKLINE/UNXLINE/UNRESV to set and unset bans on other 79 + servers, and the server argument on REHASH. This is only allowed if the 80 + oper may perform the action locally, and if the remote server has a 81 + shared{} block. 82 + 83 + **Note** 84 + 85 + If a cluster{} block is present, bans are sent remotely even if the 86 + oper does not have oper:remoteban privilege. 87 + 88 + oper:resv, channel control 89 + -------------------------- 90 + 91 + This allows using /resv, /unresv and changing the channel modes +L and 92 + +P. 93 + 94 + oper:routing, remote routing 95 + ---------------------------- 96 + 97 + This allows using the third argument of the CONNECT command, to instruct 98 + another server to connect somewhere, and using SQUIT with an argument 99 + that is not locally connected. (In both cases all opers with +w set will 100 + be notified.) 101 + 102 + oper:spy, use operspy 103 + --------------------- 104 + 105 + This allows using /mode !#channel, /whois !nick, /who !#channel, 106 + /chantrace !#channel, /topic !#channel, /who !mask, /masktrace 107 + !user@host :gecos and /scan umodes +modes-modes global list to see 108 + through secret channels, invisible users, etc. 109 + 110 + All operspy usage is broadcasted to opers with snomask +Z set (on the 111 + entire network) and optionally logged. If you grant this to anyone, it 112 + is a good idea to establish concrete policies describing what it is to 113 + be used for, and what not. 114 + 115 + If operspy\_dont\_care\_user\_info is enabled, /who mask is operspy 116 + also, and /who !mask, /who mask, /masktrace !user@host :gecos and /scan 117 + umodes +modes-modes global list do not generate +Z notices or logs. 118 + 119 + oper:unkline, unkline and undline 120 + --------------------------------- 121 + 122 + Allows using UNKLINE and UNDLINE. 123 + 124 + oper:xline, xline and unxline 125 + ----------------------------- 126 + 127 + Allows using XLINE and UNXLINE, to ban/unban users by realname. 128 + 129 + snomask:nick\_changes, see nick changes 130 + --------------------------------------- 131 + 132 + Allows using snomask +n to see local client nick changes. This is 133 + designed for monitor bots.
+180
doc/oper-guide/ucommands.rst
··· 1 + .. contents:: 2 + :depth: 3 3 + .. 4 + 5 + User Commands 6 + ============= 7 + 8 + User commands 9 + ============= 10 + 11 + Standard IRC commands are not listed here. Several of the commands in 12 + the operator commands chapter can also be used by normal users. 13 + 14 + ACCEPT 15 + ------ 16 + 17 + ACCEPT 18 + nick 19 + , 20 + - 21 + nick 22 + , 23 + ... 24 + Adds or removes users from your accept list for umode +g and +R. Users 25 + are automatically removed when they quit, split or change nick. 26 + 27 + ACCEPT 28 + \* 29 + Lists all users on your accept list. 30 + 31 + Support of this command is indicated by the CALLERID token in 32 + RPL\_ISUPPORT (005); the optional parameter indicates the letter of the 33 + “only allow accept users to send private messages” umode, otherwise +g. 34 + In charybdis this is always +g. 35 + 36 + CNOTICE 37 + ------- 38 + 39 + CNOTICE 40 + nick 41 + channel 42 + : 43 + text 44 + Providing you are opped (+o) or voiced (+v) in channel, and nick is a 45 + member of channel, CNOTICE generates a NOTICE towards nick. 46 + 47 + CNOTICE bypasses any anti-spam measures in place. If you get “Targets 48 + changing too fast, message dropped”, you should probably use this 49 + command, for example sending a notice to every user joining a certain 50 + channel. 51 + 52 + As of charybdis 3.1, NOTICE automatically behaves as CNOTICE if you are 53 + in a channel fulfilling the conditions. 54 + 55 + Support of this command is indicated by the CNOTICE token in 56 + RPL\_ISUPPORT (005). 57 + 58 + CPRIVMSG 59 + -------- 60 + 61 + CPRIVMSG 62 + nick 63 + channel 64 + : 65 + text 66 + Providing you are opped (+o) or voiced (+v) in channel, and nick is a 67 + member of channel, CPRIVMSG generates a PRIVMSG towards nick. 68 + 69 + CPRIVMSG bypasses any anti-spam measures in place. If you get “Targets 70 + changing too fast, message dropped”, you should probably use this 71 + command. 72 + 73 + As of charybdis 3.1, PRIVMSG automatically behaves as CPRIVMSG if you 74 + are in a channel fulfilling the conditions. 75 + 76 + Support of this command is indicated by the CPRIVMSG token in 77 + RPL\_ISUPPORT (005). 78 + 79 + FINDFORWARDS 80 + ------------ 81 + 82 + FINDFORWARDS 83 + channel 84 + **Note** 85 + 86 + This command is only available if the ``m_findforwards.so`` 87 + extension is loaded. 88 + 89 + Displays which channels forward to the given channel (via cmode +f). If 90 + there are very many channels the list will be truncated. 91 + 92 + You must be a channel operator on the channel or an IRC operator to use 93 + this command. 94 + 95 + HELP 96 + ---- 97 + 98 + HELP 99 + topic 100 + Displays help information. topic can be INDEX, CREDITS, UMODE, CMODE, 101 + SNOMASK or a command name. 102 + 103 + There are separate help files for users and opers. Opers can use UHELP 104 + to query the user help files. 105 + 106 + IDENTIFY 107 + -------- 108 + 109 + IDENTIFY 110 + parameters... 111 + **Note** 112 + 113 + This command is only available if the ``m_identify.so`` extension is 114 + loaded. 115 + 116 + Sends an identify command to either NickServ or ChanServ. If the first 117 + parameter starts with #, the command is sent to ChanServ, otherwise to 118 + NickServ. The word IDENTIFY, a space and all parameters are concatenated 119 + and sent as a PRIVMSG to the service. If the service is not online or 120 + does not have umode +S set, no message will be sent. 121 + 122 + The exact syntax for this command depends on the services package in 123 + use. 124 + 125 + KNOCK 126 + ----- 127 + 128 + KNOCK 129 + channel 130 + Requests an invite to the given channel. The channel must be locked 131 + somehow (+ikl), must not be +p and you may not be banned or quieted. 132 + Also, this command is rate limited. 133 + 134 + If successful, all channel operators will receive a 710 numeric. The 135 + recipient field of this numeric is the channel. 136 + 137 + Support of this command is indicated by the KNOCK token in RPL\_ISUPPORT 138 + (005). 139 + 140 + MONITOR 141 + ------- 142 + 143 + Server side notify list. This list contains nicks. When a user connects, 144 + quits with a listed nick or changes to or from a listed nick, you will 145 + receive a 730 numeric if the nick went online and a 731 numeric if the 146 + nick went offline. 147 + 148 + Support of this command is indicated by the MONITOR token in 149 + RPL\_ISUPPORT (005); the parameter indicates the maximum number of 150 + nicknames you may have in your monitor list. 151 + 152 + You may only use this command once per second. 153 + 154 + More details can be found in ``doc/monitor.txt`` in the source 155 + distribution. 156 + 157 + MONITOR + 158 + nick 159 + , 160 + ... 161 + Adds nicks to your monitor list. You will receive 730 and 731 numerics 162 + for the nicks. 163 + 164 + MONITOR - 165 + nick 166 + , 167 + ... 168 + Removes nicks from your monitor list. No output is generated for this 169 + command. 170 + 171 + MONITOR C 172 + Clears your monitor list. No output is generated for this command. 173 + 174 + MONITOR L 175 + Lists all nicks on your monitor list, using 732 numerics and ending with 176 + a 733 numeric. 177 + 178 + MONITOR S 179 + Shows status for all nicks on your monitor list, using 730 and 731 180 + numerics.
+301
doc/oper-guide/umodes.rst
··· 1 + .. contents:: 2 + :depth: 3 3 + .. 4 + 5 + Umodes 6 + ====== 7 + 8 + Meanings of user modes 9 + ====================== 10 + 11 + +a, server administrator 12 + ------------------------ 13 + 14 + This vanity usermode is used to denote a server administrator in WHOIS 15 + output. All local “admin” privileges are independent of it, though 16 + services packages may grant extra privileges to +a users. 17 + 18 + +D, deaf 19 + -------- 20 + 21 + **Note** 22 + 23 + This is a user umode, which anybody can set. It is not specific to 24 + operators. 25 + 26 + Users with the +D umode set will not receive messages sent to channels. 27 + Joins, parts, topic changes, mode changes, etc are received as normal, 28 + as are private messages. 29 + 30 + Support of this umode is indicated by the DEAF token in RPL\_ISUPPORT 31 + (005); the parameter indicates the letter of the umode. Note that 32 + several common IRCD implementations have an umode like this (typically 33 + +d) but do not have the token in 005. 34 + 35 + +g, Caller ID 36 + ------------- 37 + 38 + **Note** 39 + 40 + This is a user umode, which anybody can set. It is not specific to 41 + operators. 42 + 43 + Users with the +g umode set will only receive private messages from 44 + users on a session-defined whitelist, defined by the /accept command. If 45 + a user who is not on the whitelist attempts to send a private message, 46 + the target user will receive a rate-limited notice saying that the user 47 + wishes to speak to them. 48 + 49 + Network operators are not affected by the callerid whitelist system in 50 + the event that they need to speak to users who have it enabled. 51 + 52 + Support of this umode is indicated by the CALLERID token in 53 + RPL\_ISUPPORT (005); the optional parameter indicates the letter of the 54 + umode, otherwise +g. 55 + 56 + +i, invisible 57 + ------------- 58 + 59 + **Note** 60 + 61 + This is a user umode, which anybody can set. It is not specific to 62 + operators. 63 + 64 + Invisible users do not show up in WHO and NAMES unless you can see them. 65 + 66 + +l, receive locops 67 + ------------------ 68 + 69 + LOCOPS is a version of OPERWALL that is sent to opers on a single server 70 + only. With cluster{} and shared{} blocks they can optionally be 71 + propagated further. 72 + 73 + Unlike OPERWALL, any oper can send and receive LOCOPS. 74 + 75 + +o, operator 76 + ------------ 77 + 78 + This indicates global operator status. 79 + 80 + +Q, disable forwarding 81 + ---------------------- 82 + 83 + **Note** 84 + 85 + This is a user umode, which anybody can set. It is not specific to 86 + operators. 87 + 88 + This umode prevents you from being affected by channel forwarding. If 89 + enabled on a channel, channel forwarding sends you to another channel if 90 + you could not join. See channel mode +f for more information. 91 + 92 + +R, reject messages from unauthenticated users 93 + ---------------------------------------------- 94 + 95 + **Note** 96 + 97 + This is a user umode, which anybody can set. It is not specific to 98 + operators. 99 + 100 + If a user has the +R umode set, then any users who are not authenticated 101 + will receive an error message if they attempt to send a private message 102 + or notice to the +R user. 103 + 104 + Opers and accepted users (like in +g) are exempt. Unlike +g, the target 105 + user is not notified of failed messages. 106 + 107 + +s, receive server notices 108 + -------------------------- 109 + 110 + This umode allows an oper to receive server notices. The requested types 111 + of server notices are specified as a parameter (“snomask”) to this 112 + umode. 113 + 114 + +S, network service 115 + ------------------- 116 + 117 + **Note** 118 + 119 + This umode can only be set by servers named in a service{} block. 120 + 121 + This umode grants various features useful for services. For example, 122 + clients with this umode cannot be kicked or deopped on channels, can 123 + send to any channel, do not show channels in WHOIS, can be the target of 124 + services aliases and do not appear in /stats p. No server notices are 125 + sent for hostname changes by services clients; server notices about 126 + kills are sent to snomask +k instead of +s. 127 + 128 + The exact effects of this umode are variable; no user or oper on an 129 + actual charybdis server can set it. 130 + 131 + +w, receive wallops 132 + ------------------- 133 + 134 + **Note** 135 + 136 + This is a user umode, which anybody can set. It is not specific to 137 + operators. 138 + 139 + Users with the +w umode set will receive WALLOPS messages sent by opers. 140 + Opers with +w additionally receive WALLOPS sent by servers (e.g. remote 141 + CONNECT, remote SQUIT, various severe misconfigurations, many services 142 + packages). 143 + 144 + +z, receive operwall 145 + -------------------- 146 + 147 + OPERWALL differs from WALLOPS in that the ability to receive such 148 + messages is restricted. Opers with +z set will receive OPERWALL 149 + messages. 150 + 151 + +Z, SSL user 152 + ------------ 153 + 154 + This umode is set on clients connected via SSL/TLS. It cannot be set or 155 + unset after initial connection. 156 + 157 + Snomask usage 158 + ============= 159 + 160 + Usage is as follows: 161 + 162 + MODE 163 + nick 164 + +s 165 + +/-flags 166 + To set snomasks. 167 + 168 + MODE 169 + nick 170 + -s 171 + To clear all snomasks. 172 + 173 + Umode +s will be set if at least one snomask is set. 174 + 175 + Umode +s is oper only by default, but even if you allow nonopers to set 176 + it, they will not get any server notices. 177 + 178 + Meanings of server notice masks 179 + =============================== 180 + 181 + +b, bot warnings 182 + ---------------- 183 + 184 + Opers with the +b snomask set will receive warning messages from the 185 + server when potential flooders and spambots are detected. 186 + 187 + +c, client connections 188 + ---------------------- 189 + 190 + Opers who have the +c snomask set will receive server notices when 191 + clients attach to the local server. 192 + 193 + +C, extended client connection notices 194 + -------------------------------------- 195 + 196 + Opers who have the +C snomask set will receive server notices when 197 + clients attach to the local server. Unlike the +c snomask, the 198 + information is displayed in a format intended to be parsed by scripts, 199 + and includes the two unused fields of the USER command. 200 + 201 + +d, debug 202 + --------- 203 + 204 + The +d snomask provides opers extra information which may be of interest 205 + to debuggers. It will also cause the user to receive server notices if 206 + certain assertions fail inside the server. Its precise meaning is 207 + variable. Do not depend on the effects of this snomask as they can and 208 + will change without notice in later revisions. 209 + 210 + +f, full warning 211 + ---------------- 212 + 213 + Opers with the +f snomask set will receive notices when a user 214 + connection is denied because a connection limit is exceeded (one of the 215 + limits in a class{} block, or the total per-server limit settable with 216 + /quote set max). 217 + 218 + +F, far client connection notices 219 + --------------------------------- 220 + 221 + **Note** 222 + 223 + This snomask is only available if the ``sno_farconnect.so`` 224 + extension is loaded. 225 + 226 + Opers with +F receive server notices when clients connect or disconnect 227 + on other servers. The notices have the same format as those from the +c 228 + snomask, except that the class is ? and the source server of the notice 229 + is the server the user is/was on. 230 + 231 + No notices are generated for netsplits and netjoins. Hence, these 232 + notices cannot be used to keep track of all clients on the network. 233 + 234 + There is no far equivalent of the +C snomask. 235 + 236 + +k, server kill notices 237 + ----------------------- 238 + 239 + Opers with the +k snomask set will receive server notices when services 240 + kill users and when other servers kill and save (forced nick change to 241 + UID) users. Kills and saves by this server are on +d or +s. 242 + 243 + +n, nick change notices 244 + ----------------------- 245 + 246 + An oper with +n set will receive a server notice every time a local user 247 + changes their nick, giving the old and new nicks. This is mostly useful 248 + for bots that track all users on a single server. 249 + 250 + +r, notices on name rejections 251 + ------------------------------ 252 + 253 + Opers with this snomask set will receive a server notice when somebody 254 + tries to use an invalid username, or if a dumb HTTP proxy tries to 255 + connect. 256 + 257 + +s, generic server notices 258 + -------------------------- 259 + 260 + This snomask allows an oper to receive generic server notices. This 261 + includes kills from opers (except services). 262 + 263 + +u, unauthorized connections 264 + ---------------------------- 265 + 266 + This snomask allows an oper to see when users try to connect who do not 267 + have an available auth{} block. 268 + 269 + +W, whois notifications 270 + ----------------------- 271 + 272 + **Note** 273 + 274 + This snomask is only available if the ``sno_whois.so`` extension is 275 + loaded. 276 + 277 + Opers with +W receive notices when a WHOIS is executed on them on their 278 + server (showing idle time). 279 + 280 + +x, extra routing notices 281 + ------------------------- 282 + 283 + Opers who have the +x snomask set will get notices about servers 284 + connecting and disconnecting on the whole network. This includes all 285 + servers connected behind the affected link. This can get rather noisy 286 + but is useful for keeping track of all linked servers. 287 + 288 + +y, spy 289 + ------- 290 + 291 + Opers with +y receive notices when users try to join RESV'ed (“juped”) 292 + channels. Additionally, if certain extension modules are loaded, they 293 + will receive notices when special commands are used. 294 + 295 + +Z, operspy notices 296 + ------------------- 297 + 298 + Opers with +Z receive notices whenever an oper anywhere on the network 299 + uses operspy. 300 + 301 + This snomask can be configured to be only effective for admins.
-60
doc/sgml/oper-guide/charybdis-oper-guide.sgml
··· 1 - <!DOCTYPE Book PUBLIC "-//OASIS//DTD DocBook V4.2//EN" [ 2 - <!ENTITY intro SYSTEM "intro.sgml"> 3 - <!ENTITY oprivs SYSTEM "oprivs.sgml"> 4 - <!ENTITY umodes SYSTEM "umodes.sgml"> 5 - <!ENTITY cmodes SYSTEM "cmodes.sgml"> 6 - <!ENTITY ucommands SYSTEM "ucommands.sgml"> 7 - <!ENTITY commands SYSTEM "commands.sgml"> 8 - <!ENTITY config SYSTEM "config.sgml"> 9 - ]> 10 - <book id="charybdis-oper-guide"> 11 - <bookinfo> 12 - <date>2009</date> 13 - <title>Operators guide for the charybdis IRC server</title> 14 - <author> 15 - <firstname>William</firstname> 16 - <surname>Pitcock</surname> 17 - </author> 18 - <author> 19 - <firstname>Jilles</firstname> 20 - <surname>Tjoelker</surname> 21 - </author> 22 - <copyright> 23 - <year>2005-2009</year> 24 - <holder>William Pitcock and Jilles Tjoelker</holder> 25 - </copyright> 26 - <legalnotice> 27 - <para> 28 - Permission is granted to copy, distribute and/or modify this document under the terms of the GNU 29 - General Public License, Version 2 or any later version published by the Free Software Foundation 30 - </para> 31 - </legalnotice> 32 - </bookinfo> 33 - <toc> 34 - </toc> 35 - &intro; 36 - &umodes; 37 - &cmodes; 38 - &ucommands; 39 - &commands; 40 - &oprivs; 41 - &config; 42 - </book> 43 - <!-- Keep this comment at the end of the file 44 - Local variables: 45 - mode: sgml 46 - sgml-omittag:t 47 - sgml-shorttag:t 48 - sgml-namecase-general:t 49 - sgml-general-insert-case:lower 50 - sgml-minimize-attributes:nil 51 - sgml-always-quote-attributes:t 52 - sgml-indent-step:2 53 - sgml-indent-data:t 54 - sgml-parent-document:nil 55 - sgml-exposed-tags:nil 56 - sgml-local-catalogs:("/usr/lib/sgml/catalog") 57 - sgml-local-ecat-files:nil 58 - fill-column: 105 59 - End: 60 - -->
-324
doc/sgml/oper-guide/cmodes.sgml
··· 1 - <chapter id="cmodes"> 2 - <title>Cmodes</title> 3 - <sect1> 4 - <title>Meanings of channel modes</title> 5 - <sect2> 6 - <title>+b, channel ban</title> 7 - <para> 8 - Bans take one parameter which can take several forms. 9 - The most common form is +b nick!user@host. 10 - The wildcards * and ? are allowed, matching zero-or-more, and 11 - exactly-one characters respectively. The masks will be trimmed to fit the maximum allowable 12 - length for the relevant element. 13 - Bans are also checked against the IP address, even if it resolved or 14 - is spoofed. 15 - CIDR is supported, like *!*@10.0.0.0/8. This is most useful with 16 - IPv6. 17 - Bans are not checked against the real hostname behind any kind 18 - of spoof, except if host mangling is in use (e.g. 19 - <filename>extensions/ip_cloaking.so</filename>): 20 - if the user's host is mangled, their real hostname is checked 21 - additionally, and if a user has no spoof but could enable mangling, 22 - the mangled form of their hostname is checked additionally. 23 - Hence, it is not possible to evade bans by toggling 24 - host mangling. 25 - </para> 26 - <para> 27 - The second form (extban) is +b $type or +b $type:data. 28 - type is a single character (case insensitive) indicating the 29 - type of match, optionally preceded by a tilde (~) to negate the 30 - comparison. data depends on type. Each type is loaded as a module. 31 - The available types (if any) 32 - are listed in the EXTBAN token of the 005 (RPL_ISUPPORT) numeric. 33 - See <filename>doc/extban.txt</filename> in the source distribution 34 - for more information. 35 - </para> 36 - <para> 37 - If no parameter is given, the list of bans is returned. All users 38 - can use this form. The plus sign should also be omitted. 39 - </para> 40 - <para> 41 - Matching users will not be allowed to join the channel or knock 42 - on it. If they are already on the channel, they may not send to 43 - it or change their nick. 44 - </para> 45 - </sect2> 46 - <sect2> 47 - <title>+c, colour filter</title> 48 - <para> 49 - This cmode activates the colour filter for the channel. This filters out bold, underline, 50 - reverse video, beeps, mIRC colour codes, and ANSI escapes. Note that escape sequences will 51 - usually leave cruft sent to the channel, just without the escape characters themselves. 52 - </para> 53 - </sect2> 54 - <sect2> 55 - <title>+e, ban exemption</title> 56 - <para> 57 - This mode takes one parameter of the same form as bans, which 58 - overrides +b and +q bans for all clients it matches. 59 - </para> 60 - <para> 61 - This can be useful if it is necessary to ban an entire ISP 62 - due to persistent abuse, but some users from that ISP should 63 - still be allowed in. For example: 64 - /mode #channel +be *!*@*.example.com *!*someuser@host3.example.com 65 - </para> 66 - <para> 67 - Only channel operators can see +e changes or request the list. 68 - </para> 69 - </sect2> 70 - <sect2> 71 - <title>+f, channel forwarding</title> 72 - <para> 73 - This mode takes one parameter, the name of a channel (+f #channel). If the channel also has the 74 - +i cmode set, and somebody attempts to join without either being expliticly invited, or having 75 - an invex (+I), then they will instead join the channel named in the mode parameter. The client 76 - will also be sent a 470 numeric giving the original and target channels. 77 - </para> 78 - <para> 79 - Users are similarly forwarded if the +j cmode is set and their attempt to join is throttled, 80 - if +l is set and there are already too many users in the channel 81 - or if +r is set and they are not identified. 82 - </para> 83 - <para> 84 - Forwards may only be set to +F channels, or to channels the setter 85 - has ops in. 86 - </para> 87 - <para> 88 - Without parameter (/mode #channel f or /mode #channel +f) the 89 - forward channel is returned. This form also works off channel. 90 - </para> 91 - </sect2> 92 - <sect2> 93 - <title>+F, allow anybody to forward to this</title> 94 - <para> 95 - When this mode is set, anybody may set a forward from a channel 96 - they have ops in to this channel. Otherwise they have to have ops 97 - in this channel. 98 - </para> 99 - </sect2> 100 - <sect2> 101 - <title>+g, allow anybody to invite</title> 102 - <para> 103 - When this mode is set, anybody may use the INVITE command on the channel in question. When it 104 - is unset, only channel operators may use the INVITE command. 105 - </para> 106 - <para> 107 - When this mode is set together with +i, +j, +l or +r, all channel members can influence who can join. 108 - </para> 109 - </sect2> 110 - <sect2> 111 - <title>+i, invite only</title> 112 - <para> 113 - When this cmode is set, no client can join the channel unless they have an invex (+I) or are 114 - invited with the INVITE command. 115 - </para> 116 - </sect2> 117 - <sect2> 118 - <title>+I, invite exception (invex)</title> 119 - <para> 120 - This mode takes one parameter of the same form as bans. Matching 121 - clients do not need to be invited to join the channel when it is invite-only (+i). 122 - Unlike the INVITE command, this does not override +j, +l and +r. 123 - </para> 124 - <para> 125 - Only channel operators can see +I changes or request the list. 126 - </para> 127 - </sect2> 128 - <sect2> 129 - <title>+j, join throttling</title> 130 - <para> 131 - This mode takes one parameter of the form <replaceable>n</replaceable>:<replaceable>t</replaceable>, where <replaceable>n</replaceable> and <replaceable>t</replaceable> are positive integers. Only <replaceable>n</replaceable> users may join in each period of <replaceable>t</replaceable> seconds. 132 - </para> 133 - <para> 134 - Invited users can join regardless of +j, but are counted as normal. 135 - </para> 136 - <para> 137 - Due to propagation delays between servers, more users may be 138 - able to join (by racing for the last slot on each server). 139 - </para> 140 - </sect2> 141 - <sect2> 142 - <title>+k, key (channel password)</title> 143 - <para> 144 - Taking one parameter, when set, this mode requires a user to supply the key in order to join 145 - the channel: /JOIN #channel key. 146 - </para> 147 - </sect2> 148 - <sect2> 149 - <title>+l, channel member limit</title> 150 - <para> 151 - Takes one numeric parameter, the number of users which are allowed to be in the channel before 152 - further joins are blocked. 153 - Invited users may join regardless. 154 - </para> 155 - <para> 156 - Due to propagation delays between servers, more users may be 157 - able to join (by racing for the last slot on each server). 158 - </para> 159 - </sect2> 160 - <sect2> 161 - <title>+L, large ban list</title> 162 - <para> 163 - Channels with this mode will be allowed larger banlists (by default, 164 - 500 instead of 50 entries for +b, +q, +e and +I together). 165 - Only network operators with resv privilege may set this mode. 166 - </para> 167 - </sect2> 168 - <sect2> 169 - <title>+m, moderated</title> 170 - <para> 171 - When a channel is set +m, only users with +o or +v on the channel can send to it. 172 - </para> 173 - <para> 174 - Users can still knock on the channel or change their nick. 175 - </para> 176 - </sect2> 177 - <sect2> 178 - <title>+n, no external messages</title> 179 - <para> 180 - When set, this mode prevents users from sending to the channel without being in it themselves. 181 - This is recommended. 182 - </para> 183 - </sect2> 184 - <sect2> 185 - <title>+o, channel operator</title> 186 - <para> 187 - This mode takes one parameter, a nick, and grants or removes channel 188 - operator privilege to that user. Channel operators have full control 189 - over the channel, having the ability to set all channel modes except 190 - +L and +P, and kick users. 191 - Like voiced users, channel operators can always 192 - send to the channel, overriding +b, +m and +q modes and the 193 - per-channel flood limit. 194 - In most clients channel operators are marked with an '@' sign. 195 - </para> 196 - <para> 197 - The privilege is lost if the user leaves the channel or server 198 - in any way. 199 - </para> 200 - <para> 201 - Most networks will run channel registration services (e.g. ChanServ) 202 - which ensure the founder (and users designated by the founder) can 203 - always gain channel operator privileges and provide some features 204 - to manage the channel. 205 - </para> 206 - </sect2> 207 - <sect2> 208 - <title>+p, paranoid channel</title> 209 - <para> 210 - When set, the KNOCK command cannot be used on the channel 211 - to request an invite, and users will not be shown the 212 - channel in WHOIS replies unless they are on it. 213 - Unlike in traditional IRC, +p and +s can be set together. 214 - </para> 215 - </sect2> 216 - <sect2> 217 - <title>+P, permanent channel</title> 218 - <para> 219 - Channels with this mode (which is accessible only to network operators with resv privilege) set will not be destroyed 220 - when the last user leaves. 221 - </para> 222 - <para> 223 - This makes it less likely modes, bans and the topic will be lost and 224 - makes it harder to abuse network splits, but also causes more 225 - unwanted restoring of old modes, bans and topics after long splits. 226 - </para> 227 - </sect2> 228 - <sect2> 229 - <title>+q, quiet</title> 230 - <para> 231 - This mode behaves exactly like +b (ban), except that the user may still join 232 - the channel. The net effect is that they cannot knock on the channel, 233 - send to the channel or change their nick while on channel. 234 - </para> 235 - </sect2> 236 - <sect2> 237 - <title>+Q, block forwarded users</title> 238 - <para> 239 - Channels with this mode set are not valid targets for forwarding. Any attempt to forward to 240 - this channel will be ignored, and the user will be handled as if the attempt was never made (by 241 - sending them the relevant error message). 242 - </para> 243 - <para> 244 - This does not affect the ability to set +f. 245 - </para> 246 - </sect2> 247 - <sect2> 248 - <title>+r, block unidentified</title> 249 - <para> 250 - When set, this mode prevents unidentified users from joining. 251 - Invited users can still join. 252 - </para> 253 - </sect2> 254 - <!-- not planned (jilles) 255 - <sect2> 256 - <title>+R, quiet unidentified</title> 257 - <para> 258 - When set, this mode prevents unidentified users from sending to the channel, although they can 259 - still join. 260 - </para> 261 - <para> 262 - Please note that this mode is not implemented in Charybdis 1.0.x, and is documented in 263 - expectation for upcoming Charybdis 1.1. 264 - </para> 265 - </sect2> 266 - --> 267 - <sect2> 268 - <title>+s, secret channel</title> 269 - <para> 270 - When set, this mode prevents the channel from appearing in the 271 - output of the LIST, WHO and WHOIS command by users who are not on 272 - it. Also, the server will refuse to answer WHO, NAMES, TOPIC and 273 - LIST queries from users not on the channel. 274 - </para> 275 - </sect2> 276 - <sect2> 277 - <title>+t, topic limit</title> 278 - <para> 279 - When set, this mode prevents users who are not channel operators 280 - from changing the topic. 281 - </para> 282 - </sect2> 283 - <sect2> 284 - <title>+v, voice</title> 285 - <para> 286 - This mode takes one parameter, a nick, and grants or removes voice 287 - privilege to that user. Voiced users can always send to the channel, 288 - overriding +b, +m and +q modes and the per-channel flood limit. 289 - In most clients voiced users are marked with a plus sign. 290 - </para> 291 - <para> 292 - The privilege is lost if the user leaves the channel or server 293 - in any way. 294 - </para> 295 - </sect2> 296 - <sect2> 297 - <title>+z, reduced moderation</title> 298 - <para> 299 - When +z is set, the effects of +m, +b and +q are relaxed. For each message, if that message 300 - would normally be blocked by one of these modes, it is instead sent to all channel operators. This is intended for use in moderated debates. 301 - </para> 302 - <para> 303 - Note that +n is unaffected by this. To silence a given user completely, 304 - remove them from the channel. 305 - </para> 306 - </sect2> 307 - </sect1> 308 - </chapter> 309 - <!-- Keep this comment at the end of the file 310 - Local variables: 311 - mode: sgml 312 - sgml-omittag:t 313 - sgml-shorttag:t 314 - sgml-namecase-general:t 315 - sgml-general-insert-case:lower 316 - sgml-minimize-attributes:nil 317 - sgml-always-quote-attributes:t 318 - sgml-indent-step:2 319 - sgml-indent-data:t 320 - sgml-parent-document:("charybdis-oper-guide.sgml" "book") 321 - sgml-exposed-tags:nil 322 - fill-column:105 323 - End: 324 - -->
-1151
doc/sgml/oper-guide/commands.sgml
··· 1 - <chapter id="commands"> 2 - <title>Operator Commands</title> 3 - <sect1> 4 - <title>Network management commands</title> 5 - <note> 6 - <para> 7 - All commands and names are case insensitive. 8 - Parameters consisting of one or more separate letters, 9 - such as in MODE, STATS and WHO, are case sensitive. 10 - </para> 11 - </note> 12 - <sect2> 13 - <title>CONNECT</title> 14 - <cmdsynopsis><command>CONNECT</command> 15 - <arg choice=plain><replaceable>target</replaceable></arg> 16 - <arg><replaceable>port</replaceable></arg> 17 - <arg><replaceable>source</replaceable></arg> 18 - </cmdsynopsis> 19 - <para> 20 - Initiate a connection attempt to server <replaceable class=parameter>target</replaceable>. If a port is 21 - given, connect to that port on the target, otherwise use the one given in <filename>ircd.conf</filename>. If 22 - <replaceable class=parameter>source</replaceable> is given, tell that server to initiate the connection 23 - attempt, otherwise it will be made from the server you are attached to. 24 - </para> 25 - <para> 26 - To use the default port with <replaceable class=parameter>source</replaceable>, 27 - specify 0 for <replaceable class=parameter>port</replaceable>. 28 - </para> 29 - </sect2> 30 - <sect2> 31 - <title>SQUIT</title> 32 - <cmdsynopsis> 33 - <command>SQUIT</command> 34 - <arg choice=plain><replaceable>server</replaceable></arg> 35 - <arg><replaceable>reason</replaceable></arg> 36 - </cmdsynopsis> 37 - <para> 38 - Closes down the link to <replaceable>server</replaceable> from this side of the network. If a reason is 39 - given, it will be sent out in the server notices on both sides of the link. 40 - </para> 41 - </sect2> 42 - <sect2> 43 - <title>REHASH</title> 44 - <cmdsynopsis> 45 - <command>REHASH</command> 46 - <group> 47 - <arg>BANS</arg> 48 - <arg>DNS</arg> 49 - <arg>MOTD</arg> 50 - <arg>OMOTD</arg> 51 - <arg>TKLINES</arg> 52 - <arg>TDLINES</arg> 53 - <arg>TXLINES</arg> 54 - <arg>TRESVS</arg> 55 - <arg>REJECTCACHE</arg> 56 - <arg>HELP</arg> 57 - </group> 58 - <arg><replaceable>server</replaceable></arg> 59 - </cmdsynopsis> 60 - <para> 61 - With no parameter given, <filename>ircd.conf</filename> will be reread and parsed. 62 - The server argument is a wildcard match of server names. 63 - </para> 64 - <variablelist> 65 - <title>Parameters</title> 66 - <varlistentry> 67 - <term>BANS</term> 68 - <listitem> 69 - <para>Rereads <filename>kline.conf</filename>, <filename>dline.conf</filename>, <filename>xline.conf</filename>, <filename>resv.conf</filename> and their .perm variants</para> 70 - </listitem> 71 - </varlistentry> 72 - <varlistentry> 73 - <term>DNS</term> 74 - <listitem> 75 - <para>Reread <filename>/etc/resolv.conf</filename>.</para> 76 - </listitem> 77 - </varlistentry> 78 - <varlistentry> 79 - <term>MOTD</term> 80 - <listitem> 81 - <para>Reload the MOTD file</para> 82 - </listitem> 83 - </varlistentry> 84 - <varlistentry> 85 - <term>OMOTD</term> 86 - <listitem> 87 - <para>Reload the operator MOTD file</para> 88 - </listitem> 89 - </varlistentry> 90 - <varlistentry> 91 - <term>TKLINES</term> 92 - <listitem> 93 - <para>Clears temporary K:lines.</para> 94 - </listitem> 95 - </varlistentry> 96 - <varlistentry> 97 - <term>TDLINES</term> 98 - <listitem> 99 - <para>Clears temporary D:lines.</para> 100 - </listitem> 101 - </varlistentry> 102 - <varlistentry> 103 - <term>TXLINES</term> 104 - <listitem> 105 - <para>Clears temporary X:lines.</para> 106 - </listitem> 107 - </varlistentry> 108 - <varlistentry> 109 - <term>TRESVS</term> 110 - <listitem> 111 - <para>Clears temporary reservations.</para> 112 - </listitem> 113 - </varlistentry> 114 - <varlistentry> 115 - <term>REJECTCACHE</term> 116 - <listitem> 117 - <para>Clears the client rejection cache.</para> 118 - </listitem> 119 - </varlistentry> 120 - <varlistentry> 121 - <term>HELP</term> 122 - <listitem> 123 - <para>Refreshes the help system cache.</para> 124 - </listitem> 125 - </varlistentry> 126 - </variablelist> 127 - </sect2> 128 - <sect2> 129 - <title>RESTART</title> 130 - <cmdsynopsis> 131 - <command>RESTART</command> 132 - <arg choice=plain><replaceable>server</replaceable></arg> 133 - </cmdsynopsis> 134 - <para> 135 - Cause an immediate total shutdown of the IRC server, and restart from scratch as if it had just been executed. 136 - </para> 137 - <para> 138 - This reexecutes the ircd using the compiled-in path, visible 139 - as SPATH in INFO. 140 - </para> 141 - <note> 142 - <para>This command cannot be used remotely. The server name is used only as a safety measure.</para> 143 - </note> 144 - </sect2> 145 - <sect2> 146 - <title>DIE</title> 147 - <cmdsynopsis> 148 - <command>DIE</command> 149 - <arg choice=plain><replaceable>server</replaceable></arg> 150 - </cmdsynopsis> 151 - <para>Immediately terminate the IRC server, after sending notices to all connected clients and servers</para> 152 - <note> 153 - <para>This command cannot be used remotely. The server name is used only as a safety measure.</para> 154 - </note> 155 - </sect2> 156 - <sect2> 157 - <title>SET</title> 158 - <cmdsynopsis> 159 - <command>SET</command> 160 - <group> 161 - <arg>ADMINSTRING</arg> 162 - <arg>AUTOCONN</arg> 163 - <arg>AUTOCONNALL</arg> 164 - <arg>FLOODCOUNT</arg> 165 - <arg>IDENTTIMEOUT</arg> 166 - <arg>MAX</arg> 167 - <arg>OPERSTRING</arg> 168 - <arg>SPAMNUM</arg> 169 - <arg>SPAMTIME</arg> 170 - <arg>SPLITMODE</arg> 171 - <arg>SPLITNUM</arg> 172 - <arg>SPLITUSERS</arg> 173 - </group> 174 - <arg choice=plain><replaceable>value</replaceable></arg> 175 - </cmdsynopsis> 176 - <para>The SET command sets a runtime-configurable value.</para> 177 - <para> 178 - Most of the <filename>ircd.conf</filename> equivalents have 179 - a default_ prefix and are only read on startup. SET is the only 180 - way to change these at run time. 181 - </para> 182 - <para> 183 - Most of the values can be queried by omitting 184 - <replaceable>value</replaceable>. 185 - </para> 186 - <variablelist> 187 - <varlistentry> 188 - <term>ADMINSTRING</term> 189 - <listitem><para> 190 - Sets string shown in WHOIS for admins. 191 - (umodes +o and +a set, umode +S not set). 192 - </para></listitem> 193 - </varlistentry> 194 - <varlistentry> 195 - <term>AUTOCONN</term> 196 - <listitem><para> 197 - Sets auto-connect on or off for a particular server. 198 - Takes two parameters, server name and new state. 199 - </para><para> 200 - To see these values, use /stats c. 201 - Changes to this are lost on a rehash. 202 - </para></listitem> 203 - </varlistentry> 204 - <varlistentry> 205 - <term>AUTOCONNALL</term> 206 - <listitem><para> 207 - Globally sets auto-connect on or off. If disabled, no automatic 208 - connections are done; if enabled, automatic connections are done 209 - following the rules for them. 210 - </para></listitem> 211 - </varlistentry> 212 - <varlistentry> 213 - <term>FLOODCOUNT</term> 214 - <listitem><para> 215 - The number of lines allowed to be sent to a connection before 216 - throttling it due to flooding. 217 - Note that this variable is used for both 218 - channels and clients. 219 - </para><para> 220 - For channels, op or voice overrides this; for users, IRC 221 - operator status or op or voice on a common channel overrides 222 - this. 223 - </para></listitem> 224 - </varlistentry> 225 - <varlistentry> 226 - <term>IDENTTIMEOUT</term> 227 - <listitem><para> 228 - Timeout for requesting ident from a client. 229 - </para></listitem> 230 - </varlistentry> 231 - <varlistentry> 232 - <term>MAX</term> 233 - <listitem><para> 234 - Sets the maximum number of connections 235 - to <replaceable>value</replaceable>. 236 - </para><para> 237 - This number cannot exceed maxconnections - MAX_BUFFER. 238 - maxconnections is the rlimit for number of open files. 239 - MAX_BUFFER is defined in config.h, normally 60. 240 - </para><para> 241 - MAXCLIENTS is an alias for this. 242 - </para></listitem> 243 - </varlistentry> 244 - <varlistentry> 245 - <term>OPERSTRING</term> 246 - <listitem><para> 247 - Sets string shown in WHOIS for opers 248 - (umode +o set, umodes +a and +S not set). 249 - </para></listitem> 250 - </varlistentry> 251 - <varlistentry> 252 - <term>SPAMNUM</term> 253 - <listitem><para> 254 - Sets how many join/parts to channels 255 - constitutes a possible spambot. 256 - </para></listitem> 257 - </varlistentry> 258 - <varlistentry> 259 - <term>SPAMTIME</term> 260 - <listitem><para> 261 - Below this time on a channel 262 - counts as a join/part as above. 263 - </para></listitem> 264 - </varlistentry> 265 - <varlistentry> 266 - <term>SPLITMODE</term> 267 - <listitem><para> 268 - Sets splitmode to <replaceable>value</replaceable>: 269 - <variablelist> 270 - <varlistentry> 271 - <term>ON</term> 272 - <listitem><para>splitmode is permanently on</para></listitem> 273 - </varlistentry> 274 - <varlistentry> 275 - <term>OFF</term> 276 - <listitem><para>splitmode is permanently off (default if no_create_on_split and no_join_on_split are disabled)</para></listitem> 277 - </varlistentry> 278 - <varlistentry> 279 - <term>AUTO</term> 280 - <listitem><para>ircd chooses splitmode based on SPLITUSERS and SPLITNUM (default if no_create_on_split or no_join_on_split are enabled)</para></listitem> 281 - </varlistentry> 282 - </variablelist> 283 - </para></listitem> 284 - </varlistentry> 285 - <varlistentry> 286 - <term>SPLITUSERS</term> 287 - <listitem><para> 288 - Sets the minimum amount of users needed to 289 - deactivate automatic splitmode. 290 - </para></listitem> 291 - </varlistentry> 292 - <varlistentry> 293 - <term>SPLITNUM</term> 294 - <listitem><para> 295 - Sets the minimum amount of servers needed to 296 - deactivate automatic splitmode. 297 - Only servers that have finished bursting count for this. 298 - </para></listitem> 299 - </varlistentry> 300 - </variablelist> 301 - </sect2> 302 - </sect1> 303 - <sect1 id="usercommands"> 304 - <title>User management commands</title> 305 - <sect2> 306 - <title>KILL</title> 307 - <cmdsynopsis> 308 - <command>KILL</command> 309 - <arg choice=plain><replaceable>nick</replaceable></arg> 310 - <arg><replaceable>reason</replaceable></arg> 311 - </cmdsynopsis> 312 - <para> 313 - Disconnects the user with the given nick from the server they are connected to, 314 - with the reason given, if present, and broadcast a server notice announcing this. 315 - </para> 316 - <para> 317 - Your nick and the reason will appear on channels. 318 - </para> 319 - </sect2> 320 - <sect2> 321 - <title>CLOSE</title> 322 - <para> 323 - Closes all connections from and to clients and servers who have not completed registering. 324 - </para> 325 - </sect2> 326 - <sect2> 327 - <title>KLINE</title> 328 - <cmdsynopsis> 329 - <command>KLINE</command> 330 - <arg><replaceable>length</replaceable></arg> 331 - <group> 332 - <arg choice=plain><replaceable>user</replaceable>@<replaceable>host</replaceable></arg> 333 - <arg choice=plain><replaceable>user</replaceable>@<replaceable>a</replaceable>.<replaceable>b</replaceable>.<replaceable>c</replaceable>.<replaceable>d</replaceable></arg> 334 - </group> 335 - <arg>ON <replaceable>servername</replaceable></arg> 336 - <arg>:<replaceable>reason</replaceable></arg> 337 - </cmdsynopsis> 338 - <para> 339 - Adds a K:line to <filename>kline.conf</filename> to ban the given user@host from using that 340 - server. 341 - </para> 342 - <para> 343 - If the optional parameter <replaceable>length</replaceable> is given, the K:line will 344 - be temporary (i.e. it will not be stored on disk) and last that 345 - long in minutes. 346 - </para> 347 - <para> 348 - If an IP address is given, the ban will be against all hosts matching that IP regardless 349 - of DNS. The IP address can be given as a full address (192.168.0.1), as a CIDR mask 350 - (192.168.0.0/24), or as a glob (192.168.0.*). 351 - </para> 352 - <para> 353 - All clients matching the K:line will be disconnected from the server immediately. 354 - </para> 355 - <para> 356 - If a reason is specified, it will be sent to the client when they are disconnected, and 357 - whenever a connection is attempted which is banned. 358 - </para> 359 - <para> 360 - If the ON part is specified, the K:line is set on servers matching 361 - the given mask (provided a matching shared{} block exists there). 362 - Otherwise, if specified in a cluster{} block, the K:Line will be 363 - propagated across the network accordingly. 364 - </para> 365 - </sect2> 366 - <sect2> 367 - <title>UNKLINE</title> 368 - <cmdsynopsis> 369 - <command>UNKLINE</command> 370 - <arg choice=plain><replaceable>user</replaceable>@<replaceable>host</replaceable></arg> 371 - <arg>ON <replaceable>servername</replaceable></arg> 372 - </cmdsynopsis> 373 - <para> 374 - Will attempt to remove a K:line matching user@host from <filename>kline.conf</filename>, and will flush 375 - a temporary K:line. 376 - </para> 377 - </sect2> 378 - <sect2> 379 - <title>XLINE</title> 380 - <cmdsynopsis> 381 - <command>XLINE</command> 382 - <arg><replaceable>length</replaceable></arg> 383 - <arg choice=plain><replaceable>mask</replaceable></arg> 384 - <arg>ON <replaceable>servername</replaceable></arg> 385 - <arg>:<replaceable>reason</replaceable></arg> 386 - </cmdsynopsis> 387 - <para> 388 - Works similarly to KLINE, but matches against the real name field. 389 - The wildcards are * (any sequence), ? (any character), 390 - # (a digit) and @ (a letter); wildcard characters can be 391 - escaped with a backslash. The sequence \s matches a space. 392 - </para> 393 - <para> 394 - All clients matching the X:line will be disconnected from the server immediately. 395 - </para> 396 - <para> 397 - The reason is never sent to users. Instead, they will be exited 398 - with <quote>Bad user info</quote>. 399 - </para> 400 - <para> 401 - If the ON part is specified, the X:line is set on servers matching 402 - the given mask (provided a matching shared{} block exists there). 403 - Otherwise, if specified in a cluster{} block, the X:line will be 404 - propagated across the network accordingly. 405 - </para> 406 - </sect2> 407 - <sect2> 408 - <title>UNXLINE</title> 409 - <cmdsynopsis> 410 - <command>UNXLINE</command> 411 - <arg choice=plain><replaceable>mask</replaceable></arg> 412 - <arg>ON <replaceable>servername</replaceable></arg> 413 - </cmdsynopsis> 414 - <para> 415 - Will attempt to remove an X:line from <filename>xline.conf</filename>, and will flush 416 - a temporary X:line. 417 - </para> 418 - </sect2> 419 - <sect2> 420 - <title>RESV</title> 421 - <cmdsynopsis> 422 - <command>RESV</command> 423 - <arg><replaceable>length</replaceable></arg> 424 - <group> 425 - <arg choice=plain><replaceable>channel</replaceable></arg> 426 - <arg choice=plain><replaceable>mask</replaceable></arg> 427 - </group> 428 - <arg>ON <replaceable>servername</replaceable></arg> 429 - <arg>:<replaceable>reason</replaceable></arg> 430 - </cmdsynopsis> 431 - <para> 432 - If used on a channel, <quote>jupes</quote> the channel locally. Joins to the 433 - channel will be disallowed and generate a server notice on +y, and 434 - users will not be able to send to the channel. Channel jupes cannot 435 - contain wildcards. 436 - </para> 437 - <para> 438 - If used on a nickname mask, prevents local users from using a nick 439 - matching the mask (the same wildcard characters as xlines). There 440 - is no way to exempt the initial nick from this. 441 - </para> 442 - <para> 443 - In neither case will current users of the nick or channel be 444 - kicked or disconnected. 445 - </para> 446 - <para> 447 - This facility is not designed to make certain nicks 448 - or channels oper-only. 449 - </para> 450 - <para> 451 - The reason is never sent to users. 452 - </para> 453 - <para> 454 - If the ON part is specified, the resv is set on servers matching 455 - the given mask (provided a matching shared{} block exists there). 456 - Otherwise, if specified in a cluster{} block, the resv will be 457 - propagated across the network accordingly. 458 - </para> 459 - </sect2> 460 - <sect2> 461 - <title>UNRESV</title> 462 - <cmdsynopsis> 463 - <command>UNRESV</command> 464 - <group> 465 - <arg choice=plain><replaceable>channel</replaceable></arg> 466 - <arg choice=plain><replaceable>mask</replaceable></arg> 467 - </group> 468 - <arg>ON <replaceable>servername</replaceable></arg> 469 - </cmdsynopsis> 470 - <para> 471 - Will attempt to remove a resv from <filename>resv.conf</filename>, and will flush 472 - a temporary resv. 473 - </para> 474 - </sect2> 475 - <sect2> 476 - <title>DLINE</title> 477 - <cmdsynopsis> 478 - <command>DLINE</command> 479 - <arg><replaceable>length</replaceable></arg> 480 - <arg choice=plain><replaceable>a</replaceable>.<replaceable>b</replaceable>.<replaceable>c</replaceable>.<replaceable>d</replaceable></arg> 481 - <arg>ON <replaceable>servername</replaceable></arg> 482 - <arg>:<replaceable>reason</replaceable></arg> 483 - </cmdsynopsis> 484 - <para> 485 - Adds a D:line to <filename>dline.conf</filename>, which will deny any connections 486 - from the given IP address. 487 - The IP address can be given as a full address (192.168.0.1) or 488 - as a CIDR mask (192.168.0.0/24). 489 - </para> 490 - <para> 491 - If the optional parameter <replaceable>length</replaceable> is given, the D:line will 492 - be temporary (i.e. it will not be stored on disk) and last that 493 - long in minutes. 494 - </para> 495 - <para> 496 - All clients matching the D:line will be disconnected from the server immediately. 497 - </para> 498 - <para> 499 - If a reason is specified, it will be sent to the client when they are disconnected, and, 500 - if dline_reason is enabled, 501 - whenever a connection is attempted which is banned. 502 - </para> 503 - <para> 504 - D:lines are less load on a server, and may be more appropriate if somebody is flooding 505 - connections. 506 - </para> 507 - <para> 508 - If the ON part is specified, the D:line is set on servers matching 509 - the given mask (provided a matching shared{} block exists there, 510 - which is not the case by default). 511 - Otherwise, the D:Line will be set on the local server only. 512 - </para> 513 - <para> 514 - Only exempt{} blocks exempt from D:lines. 515 - Being a server or having kline_exempt in auth{} does 516 - <emphasis>not</emphasis> exempt (different from K/G/X:lines). 517 - </para> 518 - </sect2> 519 - <sect2> 520 - <title>UNDLINE</title> 521 - <cmdsynopsis> 522 - <command>UNDLINE</command> 523 - <arg choice=plain><replaceable>a.b.c.d</replaceable></arg> 524 - <arg>ON <replaceable>servername</replaceable></arg> 525 - </cmdsynopsis> 526 - <para> 527 - Will attempt to remove a D:line from <filename>dline.conf</filename>, and will flush 528 - a temporary D:line. 529 - </para> 530 - </sect2> 531 - <sect2> 532 - <title>TESTGECOS</title> 533 - <cmdsynopsis> 534 - <command>TESTGECOS</command> 535 - <arg choice=plain><replaceable>gecos</replaceable></arg> 536 - </cmdsynopsis> 537 - <para> 538 - Looks up X:Lines matching the given gecos. 539 - </para> 540 - </sect2> 541 - <sect2> 542 - <title>TESTLINE</title> 543 - <cmdsynopsis> 544 - <command>TESTLINE</command> 545 - <arg><replaceable>nick</replaceable>!</arg> 546 - <group> 547 - <arg choice=plain><replaceable>user</replaceable>@<replaceable>host</replaceable></arg> 548 - <arg choice=plain><replaceable>a</replaceable>.<replaceable>b</replaceable>.<replaceable>c</replaceable>.<replaceable>d</replaceable></arg> 549 - </group> 550 - </cmdsynopsis> 551 - <para> 552 - Looks up the given hostmask or IP address and reports back on any auth{} blocks, D: or K: lines found. 553 - If <replaceable>nick</replaceable> is given, also searches for 554 - nick resvs. 555 - </para> 556 - <para> 557 - For temporary items the number of minutes until the item expires 558 - is shown (as opposed to the hit count in STATS q/Q/x/X). 559 - </para> 560 - <para> 561 - This command will not perform DNS lookups; for best 562 - results you must testline a host and its IP form. 563 - </para> 564 - <para> 565 - The given username should begin with a tilde (~) if identd is not 566 - in use. As of charybdis 2.1.1, no_tilde and username truncation will 567 - be taken into account like in the normal client access check. 568 - </para> 569 - <para> 570 - As of charybdis 2.2.0, a channel name can be specified and the 571 - RESV will be returned, if there is one. 572 - </para> 573 - </sect2> 574 - <sect2> 575 - <title>TESTMASK</title> 576 - <cmdsynopsis> 577 - <command>TESTMASK</command> 578 - <arg choice=plain><replaceable>hostmask</replaceable></arg> 579 - <arg><replaceable>gecos</replaceable></arg> 580 - </cmdsynopsis> 581 - <para> 582 - Searches the network for users that match the hostmask and gecos given, 583 - returning the number of matching users on this server and other servers. 584 - </para> 585 - <para> 586 - The <replaceable>hostmask</replaceable> is of the form user@host 587 - or user@ip/cidr with * and ? wildcards, optionally preceded by 588 - nick!. 589 - </para> 590 - <para> 591 - The <replaceable>gecos</replaceable> field accepts the same wildcards 592 - as xlines. 593 - </para> 594 - <para> 595 - The IP address checked against is 255.255.255.255 if the IP address 596 - is unknown (remote client on a TS5 server) or 0 if the IP address 597 - is hidden (auth{} spoof). 598 - </para> 599 - </sect2> 600 - <sect2> 601 - <title>LUSERS</title> 602 - <cmdsynopsis> 603 - <command>LUSERS</command> 604 - <arg><replaceable>mask</replaceable></arg> 605 - <group> 606 - <arg><replaceable>nick</replaceable></arg> 607 - <arg><replaceable>server</replaceable></arg> 608 - </group> 609 - </cmdsynopsis> 610 - <para> 611 - Shows various user and channel counts. 612 - </para> 613 - <para> 614 - The <replaceable>mask</replaceable> parameter is obsolete 615 - but must be used when querying a remote server. 616 - </para> 617 - </sect2> 618 - <sect2> 619 - <title>TRACE</title> 620 - <cmdsynopsis> 621 - <command>TRACE</command> 622 - <group> 623 - <arg><replaceable>server</replaceable></arg> 624 - <arg><replaceable>nick</replaceable></arg> 625 - </group> 626 - <arg><replaceable>location</replaceable></arg> 627 - </cmdsynopsis> 628 - <para> 629 - With no argument or one argument which is the current server, 630 - TRACE gives a list of all connections to the current server 631 - and a summary of connection classes. 632 - </para> 633 - <para> 634 - With one argument which is another server, TRACE displays the path 635 - to the specified server, and all servers, opers and -i users 636 - on that server, along with a summary of connection classes. 637 - </para> 638 - <para> 639 - With one argument which is a client, TRACE displays the 640 - path to that client, and that client's information. 641 - </para> 642 - <para> 643 - If location is given, the command is executed on that server; 644 - no path is displayed. 645 - </para> 646 - <para> 647 - When listing connections, type, name and class is shown 648 - in addition to information depending on the type: 649 - </para> 650 - <variablelist> 651 - <title>TRACE types</title> 652 - <varlistentry> 653 - <term>Try.</term> 654 - <listitem><para> 655 - A server we are trying to make a TCP connection to. 656 - </para></listitem> 657 - </varlistentry> 658 - <varlistentry> 659 - <term>H.S.</term> 660 - <listitem><para> 661 - A server we have established a TCP connection to, but is not 662 - yet registered. 663 - </para></listitem> 664 - </varlistentry> 665 - <varlistentry> 666 - <term>????</term> 667 - <listitem><para> 668 - An incoming connection that has not yet registered as 669 - a user or a server (<quote>unknown</quote>). 670 - Shows the username, hostname, IP address 671 - and the time the connection has been open. It is possible 672 - that the ident or DNS lookups have not completed yet, and in 673 - any case no tildes are shown here. 674 - Unknown connections may not have a name yet. 675 - </para></listitem> 676 - </varlistentry> 677 - <varlistentry> 678 - <term>User</term> 679 - <listitem><para> 680 - A registered unopered user. 681 - Shows the username, hostname, IP address, the time the client 682 - has not sent anything (as in STATS l) and the time the user has 683 - been idle (from PRIVMSG only, as in WHOIS). 684 - </para></listitem> 685 - </varlistentry> 686 - <varlistentry> 687 - <term>Oper</term> 688 - <listitem><para> 689 - Like User, but opered. 690 - </para></listitem> 691 - </varlistentry> 692 - <varlistentry> 693 - <term>Serv</term> 694 - <listitem><para> 695 - A registered server. 696 - Shows the number of servers and users reached via this link, 697 - who made this connection and the time the server has not sent 698 - anything. 699 - </para></listitem> 700 - </varlistentry> 701 - </variablelist> 702 - </sect2> 703 - <sect2> 704 - <title>ETRACE</title> 705 - <cmdsynopsis> 706 - <command>ETRACE</command> 707 - <arg><replaceable>nick</replaceable></arg> 708 - </cmdsynopsis> 709 - <para> 710 - Shows client information about the given target, or about all local clients if 711 - no target is specified. 712 - </para> 713 - </sect2> 714 - <sect2> 715 - <title>PRIVS</title> 716 - <cmdsynopsis> 717 - <command>PRIVS</command> 718 - <arg><replaceable>nick</replaceable></arg> 719 - </cmdsynopsis> 720 - <para> 721 - Displays effective operator privileges for 722 - the specified nick, or for yourself if no nick is 723 - given. This includes all privileges from the operator 724 - block, the name of the operator block and those 725 - privileges from the auth block that have an effect 726 - after the initial connection. 727 - </para> 728 - <para> 729 - The exact output depends on the server the nick is on, 730 - see the matching version of this document. 731 - If the remote server does not support this extension, you will not 732 - receive a reply. 733 - </para> 734 - </sect2> 735 - <sect2> 736 - <title>MASKTRACE</title> 737 - <cmdsynopsis> 738 - <command>MASKTRACE</command> 739 - <arg choice=plain><replaceable>hostmask</replaceable></arg> 740 - <arg><replaceable>gecos</replaceable></arg> 741 - </cmdsynopsis> 742 - <para> 743 - Searches the local server or network for users that match the hostmask and gecos given. 744 - Network searches require the oper_spy privilege and an '!' 745 - before the hostmask. 746 - The matching works the same way as TESTMASK. 747 - </para> 748 - <para> 749 - The <replaceable>hostmask</replaceable> is of the form user@host 750 - or user@ip/cidr with * and ? wildcards, optionally preceded by 751 - nick!. 752 - </para> 753 - <para> 754 - The <replaceable>gecos</replaceable> field accepts the same wildcards 755 - as xlines. 756 - </para> 757 - <para> 758 - The IP address field contains 255.255.255.255 if the IP address 759 - is unknown (remote client on a TS5 server) or 0 if the IP address 760 - is hidden (auth{} spoof). 761 - </para> 762 - </sect2> 763 - <sect2> 764 - <title>CHANTRACE</title> 765 - <cmdsynopsis> 766 - <command>CHANTRACE</command> 767 - <arg choice=plain><replaceable>channel</replaceable></arg> 768 - </cmdsynopsis> 769 - <para> 770 - Displays information about users in a channel. 771 - Opers with the oper_spy privilege 772 - can get the information without being on the channel, 773 - by prefixing the channel name with an '!'. 774 - </para> 775 - <para> 776 - The IP address field contains 255.255.255.255 if the IP address 777 - is unknown (remote client on a TS5 server) or 0 if the IP address 778 - is hidden (auth{} spoof). 779 - </para> 780 - </sect2> 781 - <sect2> 782 - <title>SCAN</title> 783 - <cmdsynopsis> 784 - <command>SCAN UMODES</command> 785 - <arg choice=plain>+<replaceable>modes</replaceable>-<replaceable>modes</replaceable></arg> 786 - <arg>no-list</arg> 787 - <arg>list</arg> 788 - <arg>global</arg> 789 - <arg>list-max <replaceable>number</replaceable></arg> 790 - <arg>mask <replaceable>nick!user@host</replaceable></arg> 791 - </cmdsynopsis> 792 - <para> 793 - Searches the local server or network for users that have the umodes given with + and do not have the umodes given with -. 794 - no-list disables the listing of matching users and only shows the count. 795 - list enables the listing (default). 796 - global extends the search to the entire network instead of local users only. 797 - list-max limits the listing of matching users to the given amount. 798 - mask causes only users matching the given nick!user@host mask 799 - to be selected. Only the displayed host is considered, not the 800 - IP address or real host behind dynamic spoofs. 801 - </para> 802 - <para> 803 - The IP address field contains 255.255.255.255 if the IP address 804 - is unknown (remote client on a TS5 server) or 0 if the IP address 805 - is hidden (auth{} spoof). 806 - </para> 807 - <para> 808 - Network searches where a listing is given 809 - are operspy commands. 810 - </para> 811 - </sect2> 812 - <sect2> 813 - <title>CHGHOST</title> 814 - <cmdsynopsis> 815 - <command>CHGHOST</command> 816 - <arg choice=plain><replaceable>nick</replaceable></arg> 817 - <arg choice=plain><replaceable>value</replaceable></arg> 818 - </cmdsynopsis> 819 - <para> 820 - Set the hostname associated with a particular nick for the duration of this session. 821 - This command is disabled by default because of the abuse potential 822 - and little practical use. 823 - </para> 824 - </sect2> 825 - </sect1> 826 - <sect1 id="misccommands"> 827 - <title>Miscellaneous commands</title> 828 - <sect2> 829 - <title>ADMIN</title> 830 - <cmdsynopsis> 831 - <command>ADMIN</command> 832 - <group> 833 - <arg><replaceable>nick</replaceable></arg> 834 - <arg><replaceable>server</replaceable></arg> 835 - </group> 836 - </cmdsynopsis> 837 - <para> 838 - Shows the information in the admin{} block. 839 - </para> 840 - </sect2> 841 - <sect2> 842 - <title>INFO</title> 843 - <cmdsynopsis> 844 - <command>INFO</command> 845 - <group> 846 - <arg><replaceable>nick</replaceable></arg> 847 - <arg><replaceable>server</replaceable></arg> 848 - </group> 849 - </cmdsynopsis> 850 - <para> 851 - Shows information about the authors of the IRC server, and 852 - some information about this server instance. 853 - Opers also get a list of configuration options. 854 - </para> 855 - </sect2> 856 - <sect2> 857 - <title>TIME</title> 858 - <cmdsynopsis> 859 - <command>TIME</command> 860 - <group> 861 - <arg><replaceable>nick</replaceable></arg> 862 - <arg><replaceable>server</replaceable></arg> 863 - </group> 864 - </cmdsynopsis> 865 - <para> 866 - Shows the local time on the given server, in a human-readable format. 867 - </para> 868 - </sect2> 869 - <sect2> 870 - <title>VERSION</title> 871 - <cmdsynopsis> 872 - <command>VERSION</command> 873 - <group> 874 - <arg><replaceable>nick</replaceable></arg> 875 - <arg><replaceable>server</replaceable></arg> 876 - </group> 877 - </cmdsynopsis> 878 - <para> 879 - Shows version information, a few compile/config options, 880 - the SID and the 005 numerics. 881 - The 005 numeric will be remapped to 105 for remote requests. 882 - </para> 883 - </sect2> 884 - <sect2> 885 - <title>STATS</title> 886 - <cmdsynopsis> 887 - <command>STATS</command> 888 - <arg><replaceable>type</replaceable></arg> 889 - <group> 890 - <arg><replaceable>nick</replaceable></arg> 891 - <arg><replaceable>server</replaceable></arg> 892 - </group> 893 - </cmdsynopsis> 894 - <para> 895 - Display various statistics and configuration information. 896 - </para> 897 - <variablelist> 898 - <title>Values for <replaceable>type</replaceable></title> 899 - <varlistentry> 900 - <term>A</term> 901 - <listitem> 902 - <para>Show DNS servers</para> 903 - </listitem> 904 - </varlistentry> 905 - <varlistentry> 906 - <term>b</term> 907 - <listitem> 908 - <para>Show active nick delays</para> 909 - </listitem> 910 - </varlistentry> 911 - <varlistentry> 912 - <term>B</term> 913 - <listitem> 914 - <para>Show hash statistics</para> 915 - </listitem> 916 - </varlistentry> 917 - <varlistentry> 918 - <term>c</term> 919 - <listitem> 920 - <para>Show connect blocks</para> 921 - </listitem> 922 - </varlistentry> 923 - <varlistentry> 924 - <term>d</term> 925 - <listitem> 926 - <para>Show temporary D:lines</para> 927 - </listitem> 928 - </varlistentry> 929 - <varlistentry> 930 - <term>D</term> 931 - <listitem> 932 - <para>Show permanent D:lines</para> 933 - </listitem> 934 - </varlistentry> 935 - <varlistentry> 936 - <term>e</term> 937 - <listitem> 938 - <para>Show exempt blocks (exceptions to D:lines)</para> 939 - </listitem> 940 - </varlistentry> 941 - <varlistentry> 942 - <term>E</term> 943 - <listitem> 944 - <para>Show events</para> 945 - </listitem> 946 - </varlistentry> 947 - <varlistentry> 948 - <term>f</term> 949 - <listitem> 950 - <para>Show file descriptors</para> 951 - </listitem> 952 - </varlistentry> 953 - <varlistentry> 954 - <term>h</term> 955 - <listitem> 956 - <para>Show hub_mask/leaf_mask</para> 957 - </listitem> 958 - </varlistentry> 959 - <varlistentry> 960 - <term>i</term> 961 - <listitem> 962 - <para>Show auth blocks, or matched auth blocks</para> 963 - </listitem> 964 - </varlistentry> 965 - <varlistentry> 966 - <term>k</term> 967 - <listitem> 968 - <para>Show temporary K:lines, or matched K:lines</para> 969 - </listitem> 970 - </varlistentry> 971 - <varlistentry> 972 - <term>K</term> 973 - <listitem> 974 - <para>Show permanent K:lines, or matched K:lines</para> 975 - </listitem> 976 - </varlistentry> 977 - <varlistentry> 978 - <term>l</term> 979 - <listitem> 980 - <para> 981 - Show hostname and link information about the given nick. 982 - With a server name, show information about opers and servers 983 - on that server; opers get information about all local 984 - connections if they query their own server. 985 - No hostname is shown for server connections. 986 - </para> 987 - </listitem> 988 - </varlistentry> 989 - <varlistentry> 990 - <term>L</term> 991 - <listitem> 992 - <para>Like l, but show IP address instead of hostname</para> 993 - </listitem> 994 - </varlistentry> 995 - <varlistentry> 996 - <term>m</term> 997 - <listitem> 998 - <para>Show commands and their usage statistics (total counts, total bytes, counts from server connections)</para> 999 - </listitem> 1000 - </varlistentry> 1001 - <varlistentry> 1002 - <term>n</term> 1003 - <listitem> 1004 - <para>Show blacklist blocks (DNS blacklists) with hit counts since last rehash and (parenthesized) reference counts. The reference count shows how many clients are waiting on a lookup of this blacklist or have been found and are waiting on registration to complete.</para> 1005 - </listitem> 1006 - </varlistentry> 1007 - <varlistentry> 1008 - <term>o</term> 1009 - <listitem> 1010 - <para>Show operator blocks</para> 1011 - </listitem> 1012 - </varlistentry> 1013 - <varlistentry> 1014 - <term>O</term> 1015 - <listitem> 1016 - <para>Show privset blocks</para> 1017 - </listitem> 1018 - </varlistentry> 1019 - <varlistentry> 1020 - <term>p</term> 1021 - <listitem> 1022 - <para>Show logged on network operators which are not set AWAY.</para> 1023 - </listitem> 1024 - </varlistentry> 1025 - <varlistentry> 1026 - <term>P</term> 1027 - <listitem> 1028 - <para>Show listen blocks (ports)</para> 1029 - </listitem> 1030 - </varlistentry> 1031 - <varlistentry> 1032 - <term>q</term> 1033 - <listitem> 1034 - <para>Show temporarily resv'ed nicks and channels with hit counts</para> 1035 - </listitem> 1036 - </varlistentry> 1037 - <varlistentry> 1038 - <term>Q</term> 1039 - <listitem> 1040 - <para>Show permanently resv'ed nicks and channels with hit counts since last rehash bans</para> 1041 - </listitem> 1042 - </varlistentry> 1043 - <varlistentry> 1044 - <term>r</term> 1045 - <listitem> 1046 - <para>Show resource usage by the ircd</para> 1047 - </listitem> 1048 - </varlistentry> 1049 - <varlistentry> 1050 - <term>t</term> 1051 - <listitem> 1052 - <para>Show generic server statistics about local connections</para> 1053 - </listitem> 1054 - </varlistentry> 1055 - <varlistentry> 1056 - <term>u</term> 1057 - <listitem> 1058 - <para>Show server uptime</para> 1059 - </listitem> 1060 - </varlistentry> 1061 - <varlistentry> 1062 - <term>U</term> 1063 - <listitem> 1064 - <para>Show shared (c), cluster (C) and service (s) blocks</para> 1065 - </listitem> 1066 - </varlistentry> 1067 - <varlistentry> 1068 - <term>v</term> 1069 - <listitem> 1070 - <para>Show connected servers and brief status</para> 1071 - </listitem> 1072 - </varlistentry> 1073 - <varlistentry> 1074 - <term>x</term> 1075 - <listitem> 1076 - <para>Show temporary X:lines with hit counts</para> 1077 - </listitem> 1078 - </varlistentry> 1079 - <varlistentry> 1080 - <term>X</term> 1081 - <listitem> 1082 - <para>Show permanent X:lines with hit counts since last rehash bans</para> 1083 - </listitem> 1084 - </varlistentry> 1085 - <varlistentry> 1086 - <term>y</term> 1087 - <listitem> 1088 - <para>Show class blocks</para> 1089 - </listitem> 1090 - </varlistentry> 1091 - <varlistentry> 1092 - <term>z</term> 1093 - <listitem> 1094 - <para>Show memory usage statistics</para> 1095 - </listitem> 1096 - </varlistentry> 1097 - <varlistentry> 1098 - <term>Z</term> 1099 - <listitem> 1100 - <para>Show ziplinks statistics</para> 1101 - </listitem> 1102 - </varlistentry> 1103 - <varlistentry> 1104 - <term>?</term> 1105 - <listitem> 1106 - <para>Show connected servers and link information about them</para> 1107 - </listitem> 1108 - </varlistentry> 1109 - </variablelist> 1110 - </sect2> 1111 - <sect2> 1112 - <title>WALLOPS</title> 1113 - <cmdsynopsis> 1114 - <command>WALLOPS</command> 1115 - <arg choice=plain>:<replaceable>message</replaceable></arg> 1116 - </cmdsynopsis> 1117 - <para> 1118 - Sends a WALLOPS message to all users who have the +w umode set. This is for 1119 - things you don't mind the whole network knowing about. 1120 - </para> 1121 - </sect2> 1122 - <sect2> 1123 - <title>OPERWALL</title> 1124 - <cmdsynopsis> 1125 - <command>OPERWALL</command> 1126 - <arg choice=plain>:<replaceable>message</replaceable></arg> 1127 - </cmdsynopsis> 1128 - <para> 1129 - Sends an OPERWALL message to all opers who have the +z umode set. +z is restricted, 1130 - OPERWALL should be considered private communications. 1131 - </para> 1132 - </sect2> 1133 - </sect1> 1134 - </chapter> 1135 - <!-- Keep this comment at the end of the file 1136 - Local variables: 1137 - mode: sgml 1138 - sgml-omittag:t 1139 - sgml-shorttag:t 1140 - sgml-namecase-general:t 1141 - sgml-general-insert-case:lower 1142 - sgml-minimize-attributes:nil 1143 - sgml-always-quote-attributes:t 1144 - sgml-indent-step:2 1145 - sgml-indent-data:t 1146 - sgml-parent-document: ("charybdis-oper-guide.sgml" "book") 1147 - sgml-exposed-tags:nil 1148 - sgml-local-ecat-files:nil 1149 - fill-column:105 1150 - End: 1151 - -->
-1177
doc/sgml/oper-guide/config.sgml
··· 1 - <chapter id="config"> 2 - <title>Server config file format</title> 3 - <sect1> 4 - <title>General format</title> 5 - <para> 6 - The config file consists of a series of BIND-style blocks. Each block consists of a series 7 - of values inside it which pertain to configuration settings that apply to the given block. 8 - </para> 9 - <para> 10 - Several values take lists of values and have defaults preset inside 11 - them. Prefix a keyword with a tilde (~) to override the default and 12 - disable it. 13 - </para> 14 - <para> 15 - A line may also be a .include directive, which is of the form <synopsis>.include "<replaceable>file</replaceable>"</synopsis> 16 - and causes <replaceable>file</replaceable> to be read in at that point, before the rest of the current file is 17 - processed. 18 - Relative paths are first tried relative to PREFIX and then relative 19 - to ETCPATH (normally PREFIX/etc). 20 - </para> 21 - <para> 22 - Anything from a # to the end of a line is a comment. Blank lines are ignored. C-style comments are also supported. 23 - </para> 24 - </sect1> 25 - <sect1 id="configlines"> 26 - <title>Specific blocks and directives</title> 27 - <para> 28 - Not all configuration blocks and directives are listed here, only the most common ones. More blocks and directives will 29 - be documented in later revisions of this manual. 30 - </para> 31 - <sect2> 32 - <title>loadmodule directive</title> 33 - <synopsis> 34 - loadmodule "<replaceable>text</replaceable>";</synopsis> 35 - <para> 36 - Loads a module into the IRCd. In charybdis 1.1, most modules are automatically loaded in. In future versions, it is 37 - intended to remove this behaviour as to allow for easy customization of the IRCd's featureset. 38 - </para> 39 - </sect2> 40 - <sect2> 41 - <title>serverinfo {} block</title> 42 - <synopsis> 43 - serverinfo { 44 - name = "<replaceable>text</replaceable>"; 45 - sid = "<replaceable>text</replaceable>"; 46 - description = "<replaceable>text</replaceable>"; 47 - network_name = "<replaceable>text</replaceable>"; 48 - hub = <replaceable>boolean</replaceable>; 49 - vhost = "<replaceable>text</replaceable>"; 50 - vhost6 = "<replaceable>text</replaceable>"; 51 - };</synopsis> 52 - <para> 53 - The serverinfo {} block defines the core operational parameters of the IRC server. 54 - </para> 55 - <variablelist> 56 - <title>serverinfo {} variables</title> 57 - <varlistentry> 58 - <term>name</term> 59 - <listitem> 60 - <para> 61 - The name of the IRC server that you are configuring. This 62 - must contain at least one dot. It is not necessarily equal 63 - to any DNS name. This must be unique on the IRC network. 64 - </para> 65 - </listitem> 66 - </varlistentry> 67 - <varlistentry> 68 - <term>sid</term> 69 - <listitem> 70 - <para> 71 - A unique ID which describes the server. 72 - This consists of one digit and two characters which can be 73 - digits or letters. 74 - </para> 75 - </listitem> 76 - </varlistentry> 77 - <varlistentry> 78 - <term>description</term> 79 - <listitem> 80 - <para> 81 - A user-defined field of text which describes the IRC server. This information is used in 82 - /links and /whois requests. Geographical location information could be a useful use of 83 - this field, but most administrators put a witty saying inside it instead. 84 - </para> 85 - </listitem> 86 - </varlistentry> 87 - <varlistentry> 88 - <term>network_name</term> 89 - <listitem> 90 - <para> 91 - The name of the IRC network that this server will be a member of. 92 - This is used in the welcome message and NETWORK= in 005. 93 - </para> 94 - </listitem> 95 - </varlistentry> 96 - <varlistentry> 97 - <term>hub</term> 98 - <listitem> 99 - <para> 100 - A boolean which defines whether or not this IRC server will be serving as a hub, i.e. have multiple servers connected to it. 101 - </para> 102 - </listitem> 103 - </varlistentry> 104 - <varlistentry> 105 - <term>vhost</term> 106 - <listitem> 107 - <para> 108 - An optional text field which defines an IPv4 address from which to connect outward to other IRC servers. 109 - </para> 110 - </listitem> 111 - </varlistentry> 112 - <varlistentry> 113 - <term>vhost6</term> 114 - <listitem> 115 - <para> 116 - An optional text field which defines an IPv6 address from which to connect outward to other IRC servers. 117 - </para> 118 - </listitem> 119 - </varlistentry> 120 - </variablelist> 121 - </sect2> 122 - <sect2> 123 - <title>admin {} block</title> 124 - <synopsis> 125 - admin { 126 - name = "<replaceable>text</replaceable>"; 127 - description = "<replaceable>text</replaceable>"; 128 - email = "<replaceable>text</replaceable>"; 129 - };</synopsis> 130 - <para> 131 - This block provides the information which is returned by the ADMIN command. 132 - </para> 133 - <variablelist> 134 - <title>admin {} variables</title> 135 - <varlistentry> 136 - <term>name</term> 137 - <listitem> 138 - <para>The name of the administrator running this service.</para> 139 - </listitem> 140 - </varlistentry> 141 - <varlistentry> 142 - <term>description</term> 143 - <listitem> 144 - <para>The description of the administrator's position in the network.</para> 145 - </listitem> 146 - </varlistentry> 147 - <varlistentry> 148 - <term>email</term> 149 - <listitem> 150 - <para>A point of contact for the administrator, usually an e-mail address.</para> 151 - </listitem> 152 - </varlistentry> 153 - </variablelist> 154 - </sect2> 155 - <sect2> 156 - <title>class {} block</title> 157 - <synopsis> 158 - class "<replaceable>name</replaceable>" { 159 - ping_time = <replaceable>duration</replaceable>; 160 - number_per_ident = <replaceable>number</replaceable>; 161 - number_per_ip = <replaceable>number</replaceable>; 162 - number_per_ip_global = <replaceable>number</replaceable>; 163 - cidr_ipv4_bitlen = <replaceable>number</replaceable>; 164 - cidr_ipv6_bitlen = <replaceable>number</replaceable>; 165 - number_per_cidr = <replaceable>number</replaceable>; 166 - max_number = <replaceable>number</replaceable>; 167 - sendq = <replaceable>size</replaceable>; 168 - };</synopsis> 169 - <synopsis> 170 - class "<replaceable>name</replaceable>" { 171 - ping_time = <replaceable>duration</replaceable>; 172 - connectfreq = <replaceable>duration</replaceable>; 173 - max_number = <replaceable>number</replaceable>; 174 - sendq = <replaceable>size</replaceable>; 175 - };</synopsis> 176 - <para> 177 - Class blocks define classes of connections for later use. 178 - The class name is used to connect them to 179 - other blocks in the config file (auth{} and connect{}). 180 - They must be defined before they are used. 181 - </para> 182 - <para> 183 - Classes are used both for client and server connections, 184 - but most variables are different. 185 - </para> 186 - <variablelist> 187 - <title>class {} variables: client classes</title> 188 - <varlistentry> 189 - <term>ping_time</term> 190 - <listitem> 191 - <para>The amount of time between checking pings for clients, e.g.: 2 minutes</para> 192 - </listitem> 193 - </varlistentry> 194 - <varlistentry> 195 - <term>number_per_ident</term> 196 - <listitem> 197 - <para>The amount of clients which may be connected from a single identd username on a per-IP basis, globally. Unidented clients all count as the same username.</para> 198 - </listitem> 199 - </varlistentry> 200 - <varlistentry> 201 - <term>number_per_ip</term> 202 - <listitem> 203 - <para>The amount of clients which may be connected from a single IP address.</para> 204 - </listitem> 205 - </varlistentry> 206 - <varlistentry> 207 - <term>number_per_ip_global</term> 208 - <listitem> 209 - <para>The amount of clients which may be connected globally from a single IP address.</para> 210 - </listitem> 211 - </varlistentry> 212 - <varlistentry> 213 - <term>cidr_ipv4_bitlen</term> 214 - <listitem> 215 - <para>The netblock length to use with CIDR-based client limiting for IPv4 users in this class (between 0 and 32).</para> 216 - </listitem> 217 - </varlistentry> 218 - <varlistentry> 219 - <term>cidr_ipv6_bitlen</term> 220 - <listitem> 221 - <para>The netblock length to use with CIDR-based client limiting for IPv6 users in this class (between 0 and 128).</para> 222 - </listitem> 223 - </varlistentry> 224 - <varlistentry> 225 - <term>number_per_cidr</term> 226 - <listitem> 227 - <para>The amount of clients which may be connected from a single netblock.</para> 228 - <para>If this needs to differ between IPv4 and IPv6, make different classes for IPv4 and IPv6 users.</para> 229 - </listitem> 230 - </varlistentry> 231 - <varlistentry> 232 - <term>max_number</term> 233 - <listitem> 234 - <para>The maximum amount of clients which may use this class at any given time.</para> 235 - </listitem> 236 - </varlistentry> 237 - <varlistentry> 238 - <term>sendq</term> 239 - <listitem> 240 - <para>The maximum size of the queue of data to be sent to a client before it is dropped.</para> 241 - </listitem> 242 - </varlistentry> 243 - </variablelist> 244 - <variablelist> 245 - <title>class {} variables: server classes</title> 246 - <varlistentry> 247 - <term>ping_time</term> 248 - <listitem> 249 - <para>The amount of time between checking pings for servers, e.g.: 2 minutes</para> 250 - </listitem> 251 - </varlistentry> 252 - <varlistentry> 253 - <term>connectfreq</term> 254 - <listitem> 255 - <para>The amount of time between autoconnects. This must at least be one minute, as autoconnects are evaluated with that granularity.</para> 256 - </listitem> 257 - </varlistentry> 258 - <varlistentry> 259 - <term>max_number</term> 260 - <listitem> 261 - <para>The amount of servers to autoconnect to in this class. More precisely, no autoconnects are done if the number of servers in this class is greater than or equal max_number</para> 262 - </listitem> 263 - </varlistentry> 264 - <varlistentry> 265 - <term>sendq</term> 266 - <listitem> 267 - <para>The maximum size of the queue of data to be sent to a server before it is dropped.</para> 268 - </listitem> 269 - </varlistentry> 270 - </variablelist> 271 - </sect2> 272 - <sect2> 273 - <title>auth {} block</title> 274 - <synopsis> 275 - auth { 276 - user = "<replaceable>hostmask</replaceable>"; 277 - password = "<replaceable>text</replaceable>"; 278 - spoof = "<replaceable>text</replaceable>"; 279 - flags = <replaceable>list</replaceable>; 280 - class = "<replaceable>text</replaceable>"; 281 - };</synopsis> 282 - <para> 283 - auth {} blocks allow client connections to the server, and set various properties concerning those connections. 284 - </para> 285 - <para> 286 - Auth blocks are evaluated from top to bottom in priority, so put special blocks first. 287 - </para> 288 - <variablelist> 289 - <title>auth {} variables</title> 290 - <varlistentry> 291 - <term>user</term> 292 - <listitem> 293 - <para> 294 - A hostmask (user@host) that the auth {} block applies to. 295 - It is matched against the hostname and IP address (using :: 296 - shortening for IPv6 and prepending a 0 if it starts with 297 - a colon) and can also use CIDR masks. 298 - You can have multiple user entries. 299 - </para> 300 - </listitem> 301 - </varlistentry> 302 - <varlistentry> 303 - <term>password</term> 304 - <listitem> 305 - <para> 306 - An optional password to use for authenticating into this auth{} 307 - block. If the password is wrong the user will not be able to 308 - connect (will not fall back on another auth{} block). 309 - </para> 310 - </listitem> 311 - </varlistentry> 312 - <varlistentry> 313 - <term>spoof</term> 314 - <listitem> 315 - <para>An optional fake hostname (or user@host) to apply to users authenticated to this auth{} block. In STATS i and TESTLINE, an equals sign (=) appears before the user@host and the spoof is shown.</para> 316 - </listitem> 317 - </varlistentry> 318 - <varlistentry> 319 - <term>flags</term> 320 - <listitem> 321 - <para>A list of flags to apply to this auth{} block. They are listed below. Some of the flags appear as a special character, parenthesized in the list, before the user@host in STATS i and TESTLINE.</para> 322 - </listitem> 323 - </varlistentry> 324 - <varlistentry> 325 - <term>class</term> 326 - <listitem> 327 - <para>A name of a class to put users matching this auth{} block into.</para> 328 - </listitem> 329 - </varlistentry> 330 - </variablelist> 331 - <variablelist> 332 - <title>auth {} flags</title> 333 - <varlistentry> 334 - <term>encrypted</term> 335 - <listitem> 336 - <para>The password used has been encrypted.</para> 337 - </listitem> 338 - </varlistentry> 339 - <varlistentry> 340 - <term>spoof_notice</term> 341 - <listitem> 342 - <para>Causes the IRCd to send out a server notice when activating a spoof provided by this auth{} block.</para> 343 - </listitem> 344 - </varlistentry> 345 - <varlistentry> 346 - <term>exceed_limit (&gt;)</term> 347 - <listitem> 348 - <para>Users in this auth{} block can exceed class-wide limitations.</para> 349 - </listitem> 350 - </varlistentry> 351 - <varlistentry> 352 - <term>dnsbl_exempt ($)</term> 353 - <listitem> 354 - <para>Users in this auth{} block are exempted from DNS blacklist checks. However, they will still be warned if they are listed.</para> 355 - </listitem> 356 - </varlistentry> 357 - <varlistentry> 358 - <term>kline_exempt (^)</term> 359 - <listitem> 360 - <para>Users in this auth{} block are exempted from DNS blacklists, k:lines and x:lines.</para> 361 - </listitem> 362 - </varlistentry> 363 - <varlistentry> 364 - <term>spambot_exempt</term> 365 - <listitem> 366 - <para>Users in this auth{} block are exempted from spambot checks.</para> 367 - </listitem> 368 - </varlistentry> 369 - <varlistentry> 370 - <term>shide_exempt</term> 371 - <listitem> 372 - <para>Users in this auth{} block are exempted from some serverhiding effects.</para> 373 - </listitem> 374 - </varlistentry> 375 - <varlistentry> 376 - <term>jupe_exempt</term> 377 - <listitem> 378 - <para>Users in this auth{} block do not trigger an alarm when joining juped channels.</para> 379 - </listitem> 380 - </varlistentry> 381 - <varlistentry> 382 - <term>resv_exempt</term> 383 - <listitem> 384 - <para>Users in this auth{} block may use reserved nicknames and channels.</para> 385 - <note><para>The initial nickname may still not be reserved.</para></note> 386 - </listitem> 387 - </varlistentry> 388 - <varlistentry> 389 - <term>flood_exempt (|)</term> 390 - <listitem> 391 - <para> 392 - Users in this auth{} block may send arbitrary amounts of 393 - commands per time unit to the server. This does not exempt 394 - them from any other flood limits. 395 - You should use this setting with caution. 396 - </para> 397 - </listitem> 398 - </varlistentry> 399 - <varlistentry> 400 - <term>no_tilde (-)</term> 401 - <listitem> 402 - <para>Users in this auth{} block will not have a tilde added to their username if they do not run identd.</para> 403 - </listitem> 404 - </varlistentry> 405 - <varlistentry> 406 - <term>need_ident (+)</term> 407 - <listitem> 408 - <para>Users in this auth{} block must have identd, otherwise they will be rejected.</para> 409 - </listitem> 410 - </varlistentry> 411 - <varlistentry> 412 - <term>need_ssl</term> 413 - <listitem> 414 - <para>Users in this auth{} block must be connected via SSL/TLS, otherwise they will be rejected.</para> 415 - </listitem> 416 - </varlistentry> 417 - <varlistentry> 418 - <term>need_sasl</term> 419 - <listitem> 420 - <para>Users in this auth{} block must identify via SASL, otherwise they will be rejected.</para> 421 - </listitem> 422 - </varlistentry> 423 - </variablelist> 424 - </sect2> 425 - <sect2> 426 - <title>exempt {} block</title> 427 - <synopsis> 428 - exempt { 429 - ip = "<replaceable>ip</replaceable>"; 430 - };</synopsis> 431 - <para> 432 - An exempt block specifies IP addresses which are exempt from D:lines 433 - and throttling. 434 - Multiple addresses can be specified in one block. 435 - Clients coming from these addresses can still be K/G/X:lined or 436 - banned by a DNS blacklist unless 437 - they also have appropriate flags in their auth{} block. 438 - </para> 439 - <variablelist> 440 - <title>exempt {} variables</title> 441 - <varlistentry> 442 - <term>ip</term> 443 - <listitem> 444 - <para>The IP address or CIDR range to exempt.</para> 445 - </listitem> 446 - </varlistentry> 447 - </variablelist> 448 - </sect2> 449 - <sect2> 450 - <title>privset {} block</title> 451 - <synopsis> 452 - privset { 453 - extends = "<replaceable>name</replaceable>"; 454 - privs = <replaceable>list</replaceable>; 455 - };</synopsis> 456 - <para> 457 - A privset (privilege set) block specifies a set of 458 - operator privileges. 459 - </para> 460 - <variablelist> 461 - <title>privset {} variables</title> 462 - <varlistentry> 463 - <term>extends</term> 464 - <listitem> 465 - <para>An optional privset to inherit. The new privset will have all privileges that the given privset has.</para> 466 - </listitem> 467 - </varlistentry> 468 - <varlistentry> 469 - <term>privs</term> 470 - <listitem> 471 - <para>Privileges to grant to this privset. These are described in the operator privileges section.</para> 472 - </listitem> 473 - </varlistentry> 474 - </variablelist> 475 - </sect2> 476 - <sect2> 477 - <title>operator {} block</title> 478 - <synopsis> 479 - operator "<replaceable>name</replaceable>" { 480 - user = "<replaceable>hostmask</replaceable>"; 481 - password = "<replaceable>text</replaceable>"; 482 - rsa_public_key_file = "<replaceable>text</replaceable>"; 483 - umodes = <replaceable>list</replaceable>; 484 - snomask = "<replaceable>text</replaceable>"; 485 - flags = <replaceable>list</replaceable>; 486 - };</synopsis> 487 - <para> 488 - Operator blocks define who may use the OPER command to gain extended privileges. 489 - </para> 490 - <variablelist> 491 - <title>operator {} variables</title> 492 - <varlistentry> 493 - <term>user</term> 494 - <listitem> 495 - <para> 496 - A hostmask that users trying to use this operator {} block 497 - must match. This is checked against the original host and IP 498 - address; CIDR is also supported. So auth {} spoofs work in 499 - operator {} blocks; the real host behind them is not checked. 500 - Other kind of spoofs do not work in operator {} blocks; the 501 - real host behind them is checked. 502 - </para> 503 - <para> 504 - Note that this is different from charybdis 1.x where all 505 - kinds of spoofs worked in operator {} blocks. 506 - </para> 507 - </listitem> 508 - </varlistentry> 509 - <varlistentry> 510 - <term>password</term> 511 - <listitem> 512 - <para> 513 - A password used with the OPER command to use this operator {} block. 514 - Passwords are encrypted by default, but may be unencrypted if ~encrypted is present 515 - in the flags list. 516 - </para> 517 - </listitem> 518 - </varlistentry> 519 - <varlistentry> 520 - <term>rsa_public_key_file</term> 521 - <listitem> 522 - <para> 523 - An optional path to a RSA public key file associated with the operator {} block. 524 - This information is used by the CHALLENGE command, which is an alternative authentication 525 - scheme to the traditional OPER command. 526 - </para> 527 - </listitem> 528 - </varlistentry> 529 - <varlistentry> 530 - <term>umodes</term> 531 - <listitem> 532 - <para>A list of usermodes to apply to successfully opered clients.</para> 533 - </listitem> 534 - </varlistentry> 535 - <varlistentry> 536 - <term>snomask</term> 537 - <listitem> 538 - <para> 539 - An snomask to apply to successfully opered clients. 540 - </para> 541 - </listitem> 542 - </varlistentry> 543 - <varlistentry> 544 - <term>privset</term> 545 - <listitem> 546 - <para> 547 - The privilege set granted to successfully opered clients. 548 - This must be defined before this operator{} block. 549 - </para> 550 - </listitem> 551 - </varlistentry> 552 - <varlistentry> 553 - <term>flags</term> 554 - <listitem> 555 - <para>A list of flags to apply to this operator{} block. They are listed below.</para> 556 - </listitem> 557 - </varlistentry> 558 - </variablelist> 559 - <variablelist> 560 - <title>operator {} flags</title> 561 - <varlistentry> 562 - <term>encrypted</term> 563 - <listitem> 564 - <para>The password used has been encrypted. This is enabled by default, use ~encrypted to disable it.</para> 565 - </listitem> 566 - </varlistentry> 567 - <varlistentry> 568 - <term>need_ssl</term> 569 - <listitem> 570 - <para>Restricts use of this operator{} block to SSL/TLS connections only.</para> 571 - </listitem> 572 - </varlistentry> 573 - </variablelist> 574 - </sect2> 575 - <sect2> 576 - <title>connect {} block</title> 577 - <synopsis> 578 - connect "<replaceable>name</replaceable>" { 579 - host = "<replaceable>text</replaceable>"; 580 - send_password = "<replaceable>text</replaceable>"; 581 - accept_password = "<replaceable>text</replaceable>"; 582 - port = <replaceable>number</replaceable>; 583 - hub_mask = "<replaceable>mask</replaceable>"; 584 - leaf_mask = "<replaceable>mask</replaceable>"; 585 - class = "<replaceable>text</replaceable>"; 586 - flags = <replaceable>list</replaceable>; 587 - aftype = <replaceable>protocol</replaceable>; 588 - };</synopsis> 589 - <para> 590 - Connect blocks define what servers may connect or be connected to. 591 - </para> 592 - <variablelist> 593 - <title>connect {} variables</title> 594 - <varlistentry> 595 - <term>host</term> 596 - <listitem> 597 - <para>The hostname or IP to connect to.</para> 598 - <note><para> 599 - Furthermore, if a hostname is used, it must have an A or AAAA 600 - record (no CNAME) and it must be the primary 601 - hostname for inbound connections to work. 602 - </para></note> 603 - </listitem> 604 - </varlistentry> 605 - <varlistentry> 606 - <term>send_password</term> 607 - <listitem> 608 - <para>The password to send to the other server.</para> 609 - </listitem> 610 - </varlistentry> 611 - <varlistentry> 612 - <term>accept_password</term> 613 - <listitem> 614 - <para>The password that should be accepted from the other server.</para> 615 - </listitem> 616 - </varlistentry> 617 - <varlistentry> 618 - <term>port</term> 619 - <listitem> 620 - <para>The port on the other server to connect to.</para> 621 - </listitem> 622 - </varlistentry> 623 - <varlistentry> 624 - <term>hub_mask</term> 625 - <listitem> 626 - <para> 627 - An optional domain mask of servers allowed to be introduced 628 - by this link. Usually, "*" is fine. Multiple hub_masks may be 629 - specified, and any of them may be introduced. 630 - Violation of hub_mask and leaf_mask restrictions will 631 - cause the local link to be closed. 632 - </para> 633 - </listitem> 634 - </varlistentry> 635 - <varlistentry> 636 - <term>leaf_mask</term> 637 - <listitem> 638 - <para> 639 - An optional domain mask of servers not allowed to be 640 - introduced by this link. Multiple leaf_masks may be specified, 641 - and none of them may be introduced. leaf_mask has priority 642 - over hub_mask. 643 - </para> 644 - </listitem> 645 - </varlistentry> 646 - <varlistentry> 647 - <term>class</term> 648 - <listitem> 649 - <para>The name of the class this server should be placed into.</para> 650 - </listitem> 651 - </varlistentry> 652 - <varlistentry> 653 - <term>flags</term> 654 - <listitem> 655 - <para>A list of flags concerning the connect block. They are listed below.</para> 656 - </listitem> 657 - </varlistentry> 658 - <varlistentry> 659 - <term>aftype</term> 660 - <listitem> 661 - <para>The protocol that must be used to connect with, either ipv4 or ipv6. This defaults to neither, allowing connection using either address family.</para> 662 - </listitem> 663 - </varlistentry> 664 - </variablelist> 665 - <variablelist> 666 - <title>connect {} flags</title> 667 - <varlistentry> 668 - <term>encrypted</term> 669 - <listitem> 670 - <para>The value for accept_password has been encrypted.</para> 671 - </listitem> 672 - </varlistentry> 673 - <varlistentry> 674 - <term>autoconn</term> 675 - <listitem> 676 - <para> 677 - The server should automatically try to connect to the server defined in this 678 - connect {} block if it's not connected already and max_number 679 - in the class is not reached yet. 680 - </para> 681 - </listitem> 682 - </varlistentry> 683 - <varlistentry> 684 - <term>compressed</term> 685 - <listitem> 686 - <para>Ziplinks should be used with this server connection. 687 - This compresses traffic using zlib, saving some bandwidth 688 - and speeding up netbursts.</para> 689 - <para>If you have trouble setting up a link, you should 690 - turn this off as it often hides error messages.</para> 691 - </listitem> 692 - </varlistentry> 693 - <varlistentry> 694 - <term>topicburst</term> 695 - <listitem> 696 - <para>Topics should be bursted to this server.</para> 697 - <para>This is enabled by default.</para> 698 - </listitem> 699 - </varlistentry> 700 - </variablelist> 701 - </sect2> 702 - <sect2> 703 - <title>listen {} block</title> 704 - <synopsis> 705 - listen { 706 - host = "<replaceable>text</replaceable>"; 707 - port = <replaceable>number</replaceable>; 708 - };</synopsis> 709 - <para> 710 - A listen block specifies what ports a server should listen on. 711 - </para> 712 - <variablelist> 713 - <title>listen {} variables</title> 714 - <varlistentry> 715 - <term>host</term> 716 - <listitem> 717 - <para>An optional host to bind to. Otherwise, the ircd will listen on all available hosts.</para> 718 - </listitem> 719 - </varlistentry> 720 - <varlistentry> 721 - <term>port</term> 722 - <listitem> 723 - <para> 724 - A port to listen on. You can specify multiple ports via commas, and define a range by seperating 725 - the start and end ports with two dots (..). 726 - </para> 727 - </listitem> 728 - </varlistentry> 729 - </variablelist> 730 - </sect2> 731 - <sect2> 732 - <title>modules {} block</title> 733 - <synopsis> 734 - modules { 735 - path = "<replaceable>text</replaceable>"; 736 - module = <replaceable>text</replaceable>; 737 - };</synopsis> 738 - <para> 739 - The modules block specifies information for loadable modules. 740 - </para> 741 - <variablelist> 742 - <title>modules {} variables</title> 743 - <varlistentry> 744 - <term>path</term> 745 - <listitem> 746 - <para>Specifies a path to search for loadable modules.</para> 747 - </listitem> 748 - </varlistentry> 749 - <varlistentry> 750 - <term>module</term> 751 - <listitem> 752 - <para> 753 - Specifies a module to load, similar to loadmodule. 754 - </para> 755 - </listitem> 756 - </varlistentry> 757 - </variablelist> 758 - </sect2> 759 - <sect2> 760 - <title>general {} block</title> 761 - <synopsis> 762 - modules { 763 - <replaceable>values</replaceable> 764 - };</synopsis> 765 - <para> 766 - The general block specifies a variety of options, many of which 767 - were in <filename>config.h</filename> in older daemons. 768 - The options are documented in <filename>reference.conf</filename>. 769 - </para> 770 - </sect2> 771 - <sect2> 772 - <title>channel {} block</title> 773 - <synopsis> 774 - modules { 775 - <replaceable>values</replaceable> 776 - };</synopsis> 777 - <para> 778 - The channel block specifies a variety of channel-related options, 779 - many of which were in <filename>config.h</filename> in older daemons. 780 - The options are documented in <filename>reference.conf</filename>. 781 - </para> 782 - </sect2> 783 - <sect2> 784 - <title>serverhide {} block</title> 785 - <synopsis> 786 - modules { 787 - <replaceable>values</replaceable> 788 - };</synopsis> 789 - <para> 790 - The serverhide block specifies options related to server hiding. 791 - The options are documented in <filename>reference.conf</filename>. 792 - </para> 793 - </sect2> 794 - <sect2> 795 - <title>blacklist {} block</title> 796 - <synopsis> 797 - blacklist { 798 - host = "<replaceable>text</replaceable>"; 799 - reject_reason = "<replaceable>text</replaceable>"; 800 - };</synopsis> 801 - <para> 802 - The blacklist block specifies DNS blacklists to check. 803 - Listed clients will not be allowed to connect. 804 - IPv6 clients are not checked against these. 805 - </para> 806 - <para> 807 - Multiple blacklists can be specified, in pairs with first host 808 - then reject_reason. 809 - </para> 810 - <variablelist> 811 - <title>blacklist {} variables</title> 812 - <varlistentry> 813 - <term>host</term> 814 - <listitem> 815 - <para>The DNSBL to use.</para> 816 - </listitem> 817 - </varlistentry> 818 - <varlistentry> 819 - <term>reject_reason</term> 820 - <listitem> 821 - <para>The reason to send to listed clients when disconnecting them.</para> 822 - </listitem> 823 - </varlistentry> 824 - </variablelist> 825 - </sect2> 826 - <sect2> 827 - <title>alias {} block</title> 828 - <synopsis> 829 - alias "<replaceable>name</replaceable>" { 830 - target = "<replaceable>text</replaceable>"; 831 - };</synopsis> 832 - <para> 833 - Alias blocks allow the definition of custom commands. 834 - These commands send PRIVMSG to the given target. A real 835 - command takes precedence above an alias. 836 - </para> 837 - <variablelist> 838 - <title>alias {} variables</title> 839 - <varlistentry> 840 - <term>target</term> 841 - <listitem> 842 - <para> 843 - The target nick (must be a network service (umode +S)) or 844 - user@server. 845 - In the latter case, the server cannot be this server, 846 - only opers can use user starting with "opers" reliably and 847 - the user is interpreted on the target server only 848 - so you may need to use nick@server instead). 849 - </para> 850 - </listitem> 851 - </varlistentry> 852 - </variablelist> 853 - </sect2> 854 - <sect2> 855 - <title>cluster {} block</title> 856 - <synopsis> 857 - cluster { 858 - name = "<replaceable>text</replaceable>"; 859 - flags = <replaceable>list</replaceable>; 860 - };</synopsis> 861 - <para> 862 - The cluster block specifies servers we propagate things to 863 - automatically. 864 - This does not allow them to set bans, you need a separate shared{} 865 - block for that. 866 - </para> 867 - <para> 868 - Having overlapping cluster{} items will cause the command to 869 - be executed twice on the target servers. This is particularly 870 - undesirable for ban removals. 871 - </para> 872 - <para> 873 - The letters in parentheses denote the flags in /stats U. 874 - </para> 875 - <variablelist> 876 - <title>cluster {} variables</title> 877 - <varlistentry> 878 - <term>name</term> 879 - <listitem> 880 - <para>The server name to share with, this may contain wildcards 881 - and may be stacked.</para> 882 - </listitem> 883 - </varlistentry> 884 - <varlistentry> 885 - <term>flags</term> 886 - <listitem> 887 - <para>The list of what to share, all the name lines above this 888 - (up to another flags entry) will receive these flags. 889 - They are listed below.</para> 890 - </listitem> 891 - </varlistentry> 892 - </variablelist> 893 - <variablelist> 894 - <title>cluster {} flags</title> 895 - <varlistentry> 896 - <term>kline (K)</term> 897 - <listitem> 898 - <para>Permanent K:lines</para> 899 - </listitem> 900 - </varlistentry> 901 - <varlistentry> 902 - <term>tkline (k)</term> 903 - <listitem> 904 - <para>Temporary K:lines</para> 905 - </listitem> 906 - </varlistentry> 907 - <varlistentry> 908 - <term>unkline (U)</term> 909 - <listitem> 910 - <para>K:line removals</para> 911 - </listitem> 912 - </varlistentry> 913 - <varlistentry> 914 - <term>xline (X)</term> 915 - <listitem> 916 - <para>Permanent X:lines</para> 917 - </listitem> 918 - </varlistentry> 919 - <varlistentry> 920 - <term>txline (x)</term> 921 - <listitem> 922 - <para>Temporary X:lines</para> 923 - </listitem> 924 - </varlistentry> 925 - <varlistentry> 926 - <term>unxline (Y)</term> 927 - <listitem> 928 - <para>X:line removals</para> 929 - </listitem> 930 - </varlistentry> 931 - <varlistentry> 932 - <term>resv (Q)</term> 933 - <listitem> 934 - <para>Permanently reserved nicks/channels</para> 935 - </listitem> 936 - </varlistentry> 937 - <varlistentry> 938 - <term>tresv (q)</term> 939 - <listitem> 940 - <para>Temporarily reserved nicks/channels</para> 941 - </listitem> 942 - </varlistentry> 943 - <varlistentry> 944 - <term>unresv (R)</term> 945 - <listitem> 946 - <para>RESV removals</para> 947 - </listitem> 948 - </varlistentry> 949 - <varlistentry> 950 - <term>locops (L)</term> 951 - <listitem> 952 - <para>LOCOPS messages (sharing this with * makes LOCOPS rather 953 - similar to OPERWALL which is not useful)</para> 954 - </listitem> 955 - </varlistentry> 956 - <varlistentry> 957 - <term>all</term> 958 - <listitem> 959 - <para>All of the above</para> 960 - </listitem> 961 - </varlistentry> 962 - </variablelist> 963 - </sect2> 964 - <sect2> 965 - <title>shared {} block</title> 966 - <synopsis> 967 - shared { 968 - oper = "<replaceable>user@host</replaceable>", "<replaceable>server</replaceable>"; 969 - flags = <replaceable>list</replaceable>; 970 - };</synopsis> 971 - <para> 972 - The shared block specifies opers allowed to perform certain actions 973 - on our server remotely. 974 - These are ordered top down. The first one matching will determine 975 - the oper's access. 976 - If access is denied, the command will be silently ignored. 977 - </para> 978 - <para> 979 - The letters in parentheses denote the flags in /stats U. 980 - </para> 981 - <variablelist> 982 - <title>shared {} variables</title> 983 - <varlistentry> 984 - <term>oper</term> 985 - <listitem> 986 - <para>The user@host the oper must have, and the server they must 987 - be on. This may contain wildcards.</para> 988 - </listitem> 989 - </varlistentry> 990 - <varlistentry> 991 - <term>flags</term> 992 - <listitem> 993 - <para>The list of what to allow, all the oper lines above this 994 - (up to another flags entry) will receive these flags. 995 - They are listed below.</para> 996 - </listitem> 997 - </varlistentry> 998 - </variablelist> 999 - <note><para> 1000 - While they have the same names, the flags have subtly different 1001 - meanings from those in the cluster{} block. 1002 - </para></note> 1003 - <variablelist> 1004 - <title>shared {} flags</title> 1005 - <varlistentry> 1006 - <term>kline (K)</term> 1007 - <listitem> 1008 - <para>Permanent and temporary K:lines</para> 1009 - </listitem> 1010 - </varlistentry> 1011 - <varlistentry> 1012 - <term>tkline (k)</term> 1013 - <listitem> 1014 - <para>Temporary K:lines</para> 1015 - </listitem> 1016 - </varlistentry> 1017 - <varlistentry> 1018 - <term>unkline (U)</term> 1019 - <listitem> 1020 - <para>K:line removals</para> 1021 - </listitem> 1022 - </varlistentry> 1023 - <varlistentry> 1024 - <term>xline (X)</term> 1025 - <listitem> 1026 - <para>Permanent and temporary X:lines</para> 1027 - </listitem> 1028 - </varlistentry> 1029 - <varlistentry> 1030 - <term>txline (x)</term> 1031 - <listitem> 1032 - <para>Temporary X:lines</para> 1033 - </listitem> 1034 - </varlistentry> 1035 - <varlistentry> 1036 - <term>unxline (Y)</term> 1037 - <listitem> 1038 - <para>X:line removals</para> 1039 - </listitem> 1040 - </varlistentry> 1041 - <varlistentry> 1042 - <term>resv (Q)</term> 1043 - <listitem> 1044 - <para>Permanently and temporarily reserved nicks/channels</para> 1045 - </listitem> 1046 - </varlistentry> 1047 - <varlistentry> 1048 - <term>tresv (q)</term> 1049 - <listitem> 1050 - <para>Temporarily reserved nicks/channels</para> 1051 - </listitem> 1052 - </varlistentry> 1053 - <varlistentry> 1054 - <term>unresv (R)</term> 1055 - <listitem> 1056 - <para>RESV removals</para> 1057 - </listitem> 1058 - </varlistentry> 1059 - <varlistentry> 1060 - <term>all</term> 1061 - <listitem> 1062 - <para>All of the above; this does not include locops, rehash, dline, tdline or undline.</para> 1063 - </listitem> 1064 - </varlistentry> 1065 - <varlistentry> 1066 - <term>locops (L)</term> 1067 - <listitem> 1068 - <para>LOCOPS messages (accepting this from * makes LOCOPS rather 1069 - similar to OPERWALL which is not useful); unlike the other flags, 1070 - this can only be accepted from *@* although it can be 1071 - restricted based on source server.</para> 1072 - </listitem> 1073 - </varlistentry> 1074 - <varlistentry> 1075 - <term>rehash (H)</term> 1076 - <listitem> 1077 - <para>REHASH commands; all options can be used</para> 1078 - </listitem> 1079 - </varlistentry> 1080 - <varlistentry> 1081 - <term>dline (D)</term> 1082 - <listitem> 1083 - <para>Permanent and temporary D:lines</para> 1084 - </listitem> 1085 - </varlistentry> 1086 - <varlistentry> 1087 - <term>tdline (d)</term> 1088 - <listitem> 1089 - <para>Temporary D:lines</para> 1090 - </listitem> 1091 - </varlistentry> 1092 - <varlistentry> 1093 - <term>undline (E)</term> 1094 - <listitem> 1095 - <para>D:line removals</para> 1096 - </listitem> 1097 - </varlistentry> 1098 - <varlistentry> 1099 - <term>none</term> 1100 - <listitem> 1101 - <para>Allow nothing to be done</para> 1102 - </listitem> 1103 - </varlistentry> 1104 - </variablelist> 1105 - </sect2> 1106 - <sect2> 1107 - <title>service {} block</title> 1108 - <synopsis> 1109 - service { 1110 - name = "<replaceable>text</replaceable>"; 1111 - };</synopsis> 1112 - <para> 1113 - The service block specifies privileged servers (services). These 1114 - servers have extra privileges such as setting login names on users 1115 - and introducing clients with umode +S (unkickable, hide channels, etc). 1116 - This does not allow them to set bans, you need a separate shared{} 1117 - block for that. 1118 - </para> 1119 - <para> 1120 - Do not place normal servers here. 1121 - </para> 1122 - <para> 1123 - Multiple names may be specified but there may be only one service{} 1124 - block. 1125 - </para> 1126 - <variablelist> 1127 - <title>service {} variables</title> 1128 - <varlistentry> 1129 - <term>name</term> 1130 - <listitem> 1131 - <para>The server name to grant special privileges. This may not 1132 - contain wildcards.</para> 1133 - </listitem> 1134 - </varlistentry> 1135 - </variablelist> 1136 - </sect2> 1137 - </sect1> 1138 - <sect1> 1139 - <title>Hostname resolution (DNS)</title> 1140 - <para> 1141 - Charybdis uses solely DNS for all hostname/address lookups 1142 - (no <filename>/etc/hosts</filename> or anything else). 1143 - The DNS servers are taken from <filename>/etc/resolv.conf</filename>. 1144 - If this file does not exist or no valid IP addresses are listed in it, 1145 - the local host (127.0.0.1) is used. (Note that the latter part 1146 - did not work in older versions of Charybdis.) 1147 - </para> 1148 - <para> 1149 - IPv4 as well as IPv6 DNS servers are supported, but it is not 1150 - possible to use both IPv4 and IPv6 in 1151 - <filename>/etc/resolv.conf</filename>. 1152 - </para> 1153 - <para> 1154 - For both security and performance reasons, it is recommended 1155 - that a caching nameserver such as BIND be run on the same machine 1156 - as Charybdis and that <filename>/etc/resolv.conf</filename> only 1157 - list 127.0.0.1. 1158 - </para> 1159 - </sect1> 1160 - </chapter> 1161 - <!-- Keep this comment at the end of the file 1162 - Local variables: 1163 - mode: sgml 1164 - sgml-omittag:t 1165 - sgml-shorttag:t 1166 - sgml-namecase-general:t 1167 - sgml-general-insert-case:lower 1168 - sgml-minimize-attributes:nil 1169 - sgml-always-quote-attributes:t 1170 - sgml-indent-step:2 1171 - sgml-indent-data:t 1172 - sgml-parent-document: ("dancer-oper-guide.sgml" "book") 1173 - sgml-exposed-tags:nil 1174 - fill-column:105 1175 - sgml-validate-command: "nsgmls -e -g -s -u dancer-oper-guide.sgml" 1176 - End: 1177 - -->
-41
doc/sgml/oper-guide/intro.sgml
··· 1 - <chapter id="intro"> 2 - <title>Introduction</title> 3 - <sect1> 4 - <title>Scope of this document</title> 5 - <para> 6 - This document describes the commands and functions available to operators in 7 - the charybdis ircd, as used on <ulink url="http://www.atheme.net">AthemeNet</ulink>. 8 - </para> 9 - <para> 10 - This document, and various ideas for features of charybdis, have 11 - been taken from dancer-ircd/hyperion, the ircd used on freenode, 12 - mainly written by Andrew Suffield and Jilles Tjoelker. 13 - </para> 14 - <para> 15 - While this document may be of some interest to the users of charybdis servers, 16 - it is intended as a reference for network staff. 17 - </para> 18 - <para> 19 - Charybdis is based on ircd-ratbox 2.1.4, although much has changed. 20 - <ulink url="http://www.ircd-ratbox.org">ircd-ratbox</ulink> is commonly used 21 - on efnet, and some other networks. 22 - </para> 23 - </sect1> 24 - </chapter> 25 - <!-- Keep this comment at the end of the file 26 - Local variables: 27 - mode: sgml 28 - sgml-omittag:t 29 - sgml-shorttag:t 30 - sgml-namecase-general:t 31 - sgml-general-insert-case:lower 32 - sgml-minimize-attributes:nil 33 - sgml-always-quote-attributes:t 34 - sgml-indent-step:2 35 - sgml-indent-data:t 36 - sgml-parent-document: ("charybdis-oper-guide.sgml" "book") 37 - sgml-exposed-tags:nil 38 - fill-column:105 39 - sgml-validate-command: "nsgmls -e -g -s -u charybdis-oper-guide.sgml" 40 - End: 41 - -->
-171
doc/sgml/oper-guide/oprivs.sgml
··· 1 - <chapter id="oprivs"> 2 - <title>Oper privileges</title> 3 - <sect1 id="oprivlist"> 4 - <title>Meanings of oper privileges</title> 5 - <para> 6 - These are specified in privset{}. 7 - </para> 8 - <sect2> 9 - <title>oper:admin, server administrator</title> 10 - <para> 11 - Various privileges intended for server administrators. 12 - Among other things, this automatically sets umode +a and allows 13 - loading modules. 14 - </para> 15 - </sect2> 16 - <sect2> 17 - <title>oper:die, die and restart</title> 18 - <para> 19 - This grants permission to use DIE and RESTART, shutting down 20 - or restarting the server. 21 - </para> 22 - </sect2> 23 - <sect2> 24 - <title>oper:global_kill, global kill</title> 25 - <para> 26 - Allows using KILL on users on any server. 27 - </para> 28 - </sect2> 29 - <sect2> 30 - <title>oper:hidden, hide from /stats p</title> 31 - <para> 32 - This privilege currently does nothing, but was designed 33 - to hide bots from /stats p so users will not message them 34 - for help. 35 - </para> 36 - </sect2> 37 - <sect2> 38 - <title>oper:hidden_admin, hidden administrator</title> 39 - <para> 40 - This grants everything granted to the oper:admin privilege, 41 - except the ability to set umode +a. If both oper:admin and oper:hidden_admin 42 - are possessed, umode +a can still not be used. 43 - </para> 44 - </sect2> 45 - <sect2> 46 - <title>oper:kline, kline and dline</title> 47 - <para> 48 - Allows using KLINE and DLINE, to ban users by user@host mask 49 - or IP address. 50 - </para> 51 - </sect2> 52 - <sect2> 53 - <title>oper:local_kill, kill local users</title> 54 - <para> 55 - This grants permission to use KILL on users on the same server, 56 - disconnecting them from the network. 57 - </para> 58 - </sect2> 59 - <sect2> 60 - <title>oper:mass_notice, global notices and wallops</title> 61 - <para> 62 - Allows using server name ($$mask) and hostname ($#mask) masks in 63 - NOTICE and PRIVMSG to send a message to all matching users, and 64 - allows using the WALLOPS command to send a message to all users 65 - with umode +w set. 66 - </para> 67 - </sect2> 68 - <sect2> 69 - <title>oper:operwall, send/receive operwall</title> 70 - <para> 71 - Allows using the OPERWALL command and umode +z to send and 72 - receive operwalls. 73 - </para> 74 - </sect2> 75 - <sect2> 76 - <title>oper:rehash, rehash</title> 77 - <para> 78 - Allows using the REHASH command, to rehash various configuration 79 - files or clear certain lists. 80 - </para> 81 - </sect2> 82 - <sect2> 83 - <title>oper:remoteban, set remote bans</title> 84 - <para> 85 - This grants the ability to use the ON argument on 86 - DLINE/KLINE/XLINE/RESV and UNDLINE/UNKLINE/UNXLINE/UNRESV to set 87 - and unset bans on other servers, and the server argument on REHASH. 88 - This is only allowed if the oper may perform the action locally, 89 - and if the remote server has a shared{} block. 90 - </para> 91 - <note><para> 92 - If a cluster{} block is present, bans are sent remotely even 93 - if the oper does not have oper:remoteban privilege. 94 - </para></note> 95 - </sect2> 96 - <sect2> 97 - <title>oper:resv, channel control</title> 98 - <para> 99 - This allows using /resv, /unresv and changing the channel 100 - modes +L and +P. 101 - </para> 102 - </sect2> 103 - <sect2> 104 - <title>oper:routing, remote routing</title> 105 - <para> 106 - This allows using the third argument of the CONNECT command, to 107 - instruct another server to connect somewhere, and using SQUIT 108 - with an argument that is not locally connected. 109 - (In both cases all opers with +w set will be notified.) 110 - </para> 111 - </sect2> 112 - <sect2> 113 - <title>oper:spy, use operspy</title> 114 - <para> 115 - This allows using /mode !#channel, /whois !nick, /who !#channel, 116 - /chantrace !#channel, /topic !#channel, /who !mask, 117 - /masktrace !user@host :gecos and /scan umodes +modes-modes global list 118 - to see through secret channels, invisible users, etc. 119 - </para> 120 - <para> 121 - All operspy usage is broadcasted to opers with snomask +Z set 122 - (on the entire network) and optionally logged. 123 - If you grant this to anyone, it is a good idea to establish 124 - concrete policies describing what it is to be used for, and 125 - what not. 126 - </para> 127 - <para> 128 - If operspy_dont_care_user_info is enabled, /who mask is operspy 129 - also, and /who !mask, /who mask, /masktrace !user@host :gecos 130 - and /scan umodes +modes-modes global list do not generate +Z notices 131 - or logs. 132 - </para> 133 - </sect2> 134 - <sect2> 135 - <title>oper:unkline, unkline and undline</title> 136 - <para> 137 - Allows using UNKLINE and UNDLINE. 138 - </para> 139 - </sect2> 140 - <sect2> 141 - <title>oper:xline, xline and unxline</title> 142 - <para> 143 - Allows using XLINE and UNXLINE, to ban/unban users by realname. 144 - </para> 145 - </sect2> 146 - <sect2> 147 - <title>snomask:nick_changes, see nick changes</title> 148 - <para> 149 - Allows using snomask +n to see local client nick changes. 150 - This is designed for monitor bots. 151 - </para> 152 - </sect2> 153 - </sect1> 154 - </chapter> 155 - <!-- Keep this comment at the end of the file 156 - Local variables: 157 - mode: sgml 158 - sgml-omittag:t 159 - sgml-shorttag:t 160 - sgml-namecase-general:t 161 - sgml-general-insert-case:lower 162 - sgml-minimize-attributes:nil 163 - sgml-always-quote-attributes:t 164 - sgml-indent-step:2 165 - sgml-indent-data:t 166 - sgml-parent-document: ("charybdis-oper-guide.sgml" "book") 167 - sgml-exposed-tags:nil 168 - fill-column: 105 169 - sgml-validate-command: "nsgmls -e -g -s -u charybdis-oper-guide.sgml" 170 - End: 171 - -->
-33
doc/sgml/oper-guide/stylesheet.dsl
··· 1 - <!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ 2 - <!ENTITY docbook-html.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook HTML Stylesheet//EN" CDATA DSSSL> 3 - <!ENTITY docbook-print.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN" CDATA DSSSL> 4 - ]> 5 - 6 - <style-sheet> 7 - <style-specification id="print" use="print-stylesheet"> 8 - <style-specification-body> 9 - 10 - (define %generate-book-titlepage% #t) 11 - (define %generate-book-titlepage-on-separate-page% #t) 12 - (define %generate-book-toc% #t) 13 - (define %generate-book-toc-on-titlepage% #f) 14 - 15 - </style-specification-body> 16 - </style-specification> 17 - 18 - <style-specification id="html" use="html-stylesheet"> 19 - <style-specification-body> 20 - 21 - (define %header-navigation% #t) 22 - (define %section-autolabel% #t) 23 - (define %root-filename% "index") 24 - (define %use-id-as-filename% #t) 25 - (define %css-decoration% #t) 26 - (define %example-rules% #t) 27 - 28 - </style-specification-body> 29 - </style-specification> 30 - 31 - <external-specification id="print-stylesheet" document="docbook-print.dsl"> 32 - <external-specification id="html-stylesheet" document="docbook-html.dsl"> 33 - </style-sheet>
-239
doc/sgml/oper-guide/ucommands.sgml
··· 1 - <chapter id="ucommands"> 2 - <title>User Commands</title> 3 - <sect1> 4 - <title>User commands</title> 5 - <para> 6 - Standard IRC commands are not listed here. 7 - Several of the commands in the operator commands chapter 8 - can also be used by normal users. 9 - </para> 10 - <sect2> 11 - <title>ACCEPT</title> 12 - <cmdsynopsis><command>ACCEPT</command> 13 - <arg choice=plain><replaceable>nick</replaceable>,</arg> 14 - <arg choice=plain>-<replaceable>nick</replaceable>,</arg> 15 - <arg choice=plain><replaceable>...</replaceable></arg> 16 - </cmdsynopsis> 17 - <para> 18 - Adds or removes users from your accept list for umode +g and +R. 19 - Users are automatically removed when they quit, split or change 20 - nick. 21 - </para> 22 - <cmdsynopsis><command>ACCEPT</command> 23 - <arg choice=plain>*</arg> 24 - </cmdsynopsis> 25 - <para> 26 - Lists all users on your accept list. 27 - </para> 28 - <para> 29 - Support of this command is indicated by the CALLERID token in 30 - RPL_ISUPPORT (005); the optional parameter indicates the letter 31 - of the <quote>only allow accept users to send private messages</quote> 32 - umode, otherwise +g. In charybdis this is always +g. 33 - </para> 34 - </sect2> 35 - <sect2> 36 - <title>CNOTICE</title> 37 - <cmdsynopsis><command>CNOTICE</command> 38 - <arg choice=plain><replaceable>nick</replaceable></arg> 39 - <arg choice=plain><replaceable>channel</replaceable></arg> 40 - <arg choice=plain>:<replaceable>text</replaceable></arg> 41 - </cmdsynopsis> 42 - <para> 43 - Providing you are opped (+o) or voiced (+v) in 44 - <replaceable>channel</replaceable>, and <replaceable>nick</replaceable> 45 - is a member of <replaceable>channel</replaceable>, CNOTICE generates a NOTICE towards 46 - <replaceable>nick</replaceable>. 47 - </para> 48 - <para> 49 - CNOTICE bypasses any anti-spam measures in place. 50 - If you get <quote>Targets changing too fast, message dropped</quote>, 51 - you should probably use this command, for example sending a 52 - notice to every user joining a certain channel. 53 - </para> 54 - <para> 55 - As of charybdis 3.1, NOTICE automatically behaves as CNOTICE 56 - if you are in a channel fulfilling the conditions. 57 - </para> 58 - <para> 59 - Support of this command is indicated by the CNOTICE token in 60 - RPL_ISUPPORT (005). 61 - </para> 62 - </sect2> 63 - <sect2> 64 - <title>CPRIVMSG</title> 65 - <cmdsynopsis><command>CPRIVMSG</command> 66 - <arg choice=plain><replaceable>nick</replaceable></arg> 67 - <arg choice=plain><replaceable>channel</replaceable></arg> 68 - <arg choice=plain>:<replaceable>text</replaceable></arg> 69 - </cmdsynopsis> 70 - <para> 71 - Providing you are opped (+o) or voiced (+v) in 72 - <replaceable>channel</replaceable>, and <replaceable>nick</replaceable> 73 - is a member of <replaceable>channel</replaceable>, CPRIVMSG generates a PRIVMSG towards 74 - <replaceable>nick</replaceable>. 75 - </para> 76 - <para> 77 - CPRIVMSG bypasses any anti-spam measures in place. 78 - If you get <quote>Targets changing too fast, message dropped</quote>, 79 - you should probably use this command. 80 - </para> 81 - <para> 82 - As of charybdis 3.1, PRIVMSG automatically behaves as CPRIVMSG 83 - if you are in a channel fulfilling the conditions. 84 - </para> 85 - <para> 86 - Support of this command is indicated by the CPRIVMSG token in 87 - RPL_ISUPPORT (005). 88 - </para> 89 - </sect2> 90 - <sect2> 91 - <title>FINDFORWARDS</title> 92 - <cmdsynopsis><command>FINDFORWARDS</command> 93 - <arg choice=plain><replaceable>channel</replaceable></arg> 94 - </cmdsynopsis> 95 - <para> 96 - <note> 97 - <para> 98 - This command is only available if the <filename>m_findforwards.so</filename> extension is loaded. 99 - </para> 100 - </note> 101 - Displays which channels forward to the given channel (via cmode +f). 102 - If there are very many channels the list will be truncated. 103 - </para> 104 - <para> 105 - You must be a channel operator on the channel or an IRC operator 106 - to use this command. 107 - </para> 108 - </sect2> 109 - <sect2> 110 - <title>HELP</title> 111 - <cmdsynopsis><command>HELP</command> 112 - <arg><replaceable>topic</replaceable></arg> 113 - </cmdsynopsis> 114 - <para> 115 - Displays help information. <replaceable>topic</replaceable> can 116 - be INDEX, CREDITS, UMODE, CMODE, SNOMASK or a command name. 117 - </para> 118 - <para> 119 - There are separate help files for users and opers. Opers can use 120 - UHELP to query the user help files. 121 - </para> 122 - </sect2> 123 - <sect2> 124 - <title>IDENTIFY</title> 125 - <cmdsynopsis><command>IDENTIFY</command> 126 - <arg choice=plain><replaceable>parameters...</replaceable></arg> 127 - </cmdsynopsis> 128 - <para> 129 - <note> 130 - <para> 131 - This command is only available if the <filename>m_identify.so</filename> extension is loaded. 132 - </para> 133 - </note> 134 - Sends an identify command to either NickServ or ChanServ. 135 - If the first parameter starts with #, the command is sent to 136 - ChanServ, otherwise to NickServ. 137 - The word IDENTIFY, a space and all parameters are concatenated 138 - and sent as a PRIVMSG to the service. 139 - If the service is not online or does not have umode +S set, 140 - no message will be sent. 141 - </para> 142 - <para> 143 - The exact syntax for this command depends on the services package 144 - in use. 145 - </para> 146 - </sect2> 147 - <sect2> 148 - <title>KNOCK</title> 149 - <cmdsynopsis><command>KNOCK</command> 150 - <arg choice=plain><replaceable>channel</replaceable></arg> 151 - </cmdsynopsis> 152 - <para> 153 - Requests an invite to the given channel. The channel must be 154 - locked somehow (+ikl), must not be +p and you may not be banned 155 - or quieted. Also, this command is rate limited. 156 - </para> 157 - <para> 158 - If successful, all channel operators will receive a 710 numeric. 159 - The recipient field of this numeric is the channel. 160 - </para> 161 - <para> 162 - Support of this command is indicated by the KNOCK token in 163 - RPL_ISUPPORT (005). 164 - </para> 165 - </sect2> 166 - <sect2> 167 - <title>MONITOR</title> 168 - <para> 169 - Server side notify list. This list contains nicks. When a user 170 - connects, quits with a listed nick or changes to or from a listed 171 - nick, you will receive a 730 numeric if the nick went online and 172 - a 731 numeric if the nick went offline. 173 - </para> 174 - <para> 175 - Support of this command is indicated by the MONITOR token in 176 - RPL_ISUPPORT (005); the parameter indicates the maximum number 177 - of nicknames you may have in your monitor list. 178 - </para> 179 - <para> 180 - You may only use this command once per second. 181 - </para> 182 - <para> 183 - More details can be found in <filename>doc/monitor.txt</filename> 184 - in the source distribution. 185 - </para> 186 - <cmdsynopsis><command>MONITOR +</command> 187 - <arg choice=plain><replaceable>nick</replaceable>,</arg> 188 - <arg choice=plain><replaceable>...</replaceable></arg> 189 - </cmdsynopsis> 190 - <para> 191 - Adds nicks to your monitor list. You will receive 730 and 731 192 - numerics for the nicks. 193 - </para> 194 - <cmdsynopsis><command>MONITOR -</command> 195 - <arg choice=plain><replaceable>nick</replaceable>,</arg> 196 - <arg choice=plain><replaceable>...</replaceable></arg> 197 - </cmdsynopsis> 198 - <para> 199 - Removes nicks from your monitor list. No output is generated for 200 - this command. 201 - </para> 202 - <cmdsynopsis><command>MONITOR C</command> 203 - </cmdsynopsis> 204 - <para> 205 - Clears your monitor list. No output is generated for 206 - this command. 207 - </para> 208 - <cmdsynopsis><command>MONITOR L</command> 209 - </cmdsynopsis> 210 - <para> 211 - Lists all nicks on your monitor list, using 732 numerics and 212 - ending with a 733 numeric. 213 - </para> 214 - <cmdsynopsis><command>MONITOR S</command> 215 - </cmdsynopsis> 216 - <para> 217 - Shows status for all nicks on your monitor list, using 730 and 731 218 - numerics. 219 - </para> 220 - </sect2> 221 - </sect1> 222 - </chapter> 223 - <!-- Keep this comment at the end of the file 224 - Local variables: 225 - mode: sgml 226 - sgml-omittag:t 227 - sgml-shorttag:t 228 - sgml-namecase-general:t 229 - sgml-general-insert-case:lower 230 - sgml-minimize-attributes:nil 231 - sgml-always-quote-attributes:t 232 - sgml-indent-step:2 233 - sgml-indent-data:t 234 - sgml-parent-document: ("charybdis-oper-guide.sgml" "book") 235 - sgml-exposed-tags:nil 236 - sgml-local-ecat-files:nil 237 - fill-column:105 238 - End: 239 - -->
-377
doc/sgml/oper-guide/umodes.sgml
··· 1 - <chapter id="umodes"> 2 - <title>Umodes</title> 3 - <sect1 id="umodelist"> 4 - <title>Meanings of user modes</title> 5 - <sect2> 6 - <title>+a, server administrator</title> 7 - <para> 8 - This vanity usermode is used to denote a server administrator in WHOIS output. 9 - All local <quote>admin</quote> privileges are independent of it, though services 10 - packages may grant extra privileges to +a users. 11 - </para> 12 - </sect2> 13 - <sect2> 14 - <title>+D, deaf</title> 15 - <para> 16 - <note> 17 - <para> 18 - This is a user umode, which anybody can set. It is not specific to operators. 19 - </para> 20 - </note> 21 - Users with the +D umode set will not receive messages sent to 22 - channels. Joins, parts, topic changes, mode changes, etc are 23 - received as normal, as are private messages. 24 - </para> 25 - <para> 26 - Support of this umode is indicated by the DEAF token in 27 - RPL_ISUPPORT (005); the parameter indicates the letter 28 - of the umode. Note that several common IRCD implementations have 29 - an umode like this (typically +d) but do not have the token in 005. 30 - </para> 31 - </sect2> 32 - <sect2> 33 - <title>+g, Caller ID</title> 34 - <para> 35 - <note> 36 - <para> 37 - This is a user umode, which anybody can set. It is not specific to operators. 38 - </para> 39 - </note> 40 - Users with the +g umode set will only receive private messages from users on a 41 - session-defined whitelist, defined by the /accept command. If a user who is not 42 - on the whitelist attempts to send a private message, the target user will receive a rate-limited notice saying that the user 43 - wishes to speak to them. 44 - </para> 45 - <para> 46 - Network operators are not affected by the callerid whitelist system in the event 47 - that they need to speak to users who have it enabled. 48 - </para> 49 - <para> 50 - Support of this umode is indicated by the CALLERID token in 51 - RPL_ISUPPORT (005); the optional parameter indicates the letter 52 - of the umode, otherwise +g. 53 - </para> 54 - </sect2> 55 - <sect2> 56 - <title>+i, invisible</title> 57 - <para> 58 - <note> 59 - <para> 60 - This is a user umode, which anybody can set. It is not specific to operators. 61 - </para> 62 - </note> 63 - Invisible users do not show up in WHO and NAMES unless you can see them. 64 - </para> 65 - </sect2> 66 - <!-- not planned (jilles) 67 - <sect2> 68 - <title>+I, refuse invite</title> 69 - <para> 70 - <note> 71 - <para> 72 - This is a user umode, which anybody can set. It is not specific to operators. 73 - </para> 74 - </note> 75 - If you have the +I umode set, nobody will be able to issue an INVITE to let you 76 - in to a channel. 77 - </para> 78 - <para> 79 - This mode is not yet implemented. It will be implemented in Charybdis 1.1. 80 - </para> 81 - </sect2> 82 - --> 83 - <sect2> 84 - <title>+l, receive locops</title> 85 - <para> 86 - LOCOPS is a version of OPERWALL that is sent to opers on a single 87 - server only. With cluster{} and shared{} blocks they can optionally 88 - be propagated further. 89 - </para> 90 - <para> 91 - Unlike OPERWALL, any oper can send and receive LOCOPS. 92 - </para> 93 - </sect2> 94 - <sect2> 95 - <title>+o, operator</title> 96 - <para> 97 - This indicates global operator status. 98 - </para> 99 - </sect2> 100 - <sect2> 101 - <title>+Q, disable forwarding</title> 102 - <para> 103 - <note> 104 - <para> 105 - This is a user umode, which anybody can set. It is not specific to operators. 106 - </para> 107 - </note> 108 - This umode prevents you from being affected by channel forwarding. 109 - If enabled on a channel, channel forwarding sends you to another 110 - channel if you could not join. See channel mode +f for more 111 - information. 112 - </para> 113 - </sect2> 114 - <sect2> 115 - <title>+R, reject messages from unauthenticated users</title> 116 - <para> 117 - <note> 118 - <para> 119 - This is a user umode, which anybody can set. It is not specific to operators. 120 - </para> 121 - </note> 122 - If a user has the +R umode set, then any users who are not authenticated 123 - will receive an error message if they attempt to send a private 124 - message or notice to the +R user. 125 - </para> 126 - <para> 127 - Opers and accepted users (like in +g) are exempt. 128 - Unlike +g, the target user is not notified of failed messages. 129 - </para> 130 - </sect2> 131 - <sect2> 132 - <title>+s, receive server notices</title> 133 - <para> 134 - This umode allows an oper to receive server notices. 135 - The requested types of server notices are specified as a 136 - parameter (<quote>snomask</quote>) to this umode. 137 - </para> 138 - </sect2> 139 - <sect2> 140 - <title>+S, network service</title> 141 - <para> 142 - <note> 143 - <para> 144 - This umode can only be set by servers named in a service{} 145 - block. 146 - </para> 147 - </note> 148 - This umode grants various features useful for services. For example, 149 - clients with this umode cannot be kicked or deopped on channels, 150 - can send to any channel, do not show channels in WHOIS, 151 - can be the target of services aliases and do not appear in /stats p. 152 - No server notices are sent for hostname changes by services clients; 153 - server notices about kills are sent to snomask +k instead of +s. 154 - </para> 155 - <para> 156 - The exact effects of this umode are variable; no user or oper on 157 - an actual charybdis server can set it. 158 - </para> 159 - </sect2> 160 - <sect2> 161 - <title>+w, receive wallops</title> 162 - <para> 163 - <note> 164 - <para> 165 - This is a user umode, which anybody can set. It is not specific to operators. 166 - </para> 167 - </note> 168 - Users with the +w umode set will receive WALLOPS messages sent by opers. 169 - Opers with +w additionally receive WALLOPS sent by servers (e.g. 170 - remote CONNECT, remote SQUIT, various severe misconfigurations, 171 - many services packages). 172 - </para> 173 - </sect2> 174 - <sect2> 175 - <title>+z, receive operwall</title> 176 - <para> 177 - OPERWALL differs from WALLOPS in that the ability to receive such messages is 178 - restricted. Opers with +z set will receive OPERWALL messages. 179 - </para> 180 - </sect2> 181 - <sect2> 182 - <title>+Z, SSL user</title> 183 - <para> 184 - This umode is set on clients connected via SSL/TLS. 185 - It cannot be set or unset after initial connection. 186 - </para> 187 - </sect2> 188 - </sect1> 189 - <sect1 id="snomaskusage"> 190 - <title>Snomask usage</title> 191 - <para> 192 - Usage is as follows: 193 - </para> 194 - <cmdsynopsis><command>MODE</command> 195 - <arg choice=plain><replaceable>nick</replaceable></arg> 196 - <arg choice=plain>+s</arg> 197 - <arg choice=plain><replaceable>+/-flags</replaceable></arg> 198 - </cmdsynopsis> 199 - <para> 200 - To set snomasks. 201 - </para> 202 - <cmdsynopsis><command>MODE</command> 203 - <arg choice=plain><replaceable>nick</replaceable></arg> 204 - <arg choice=plain>-s</arg> 205 - </cmdsynopsis> 206 - <para> 207 - To clear all snomasks. 208 - </para> 209 - <para> 210 - Umode +s will be set if at least one snomask is set. 211 - </para> 212 - <para> 213 - Umode +s is oper only by default, but even if you allow nonopers to 214 - set it, they will not get any server notices. 215 - </para> 216 - </sect1> 217 - <sect1 id="snomasklist"> 218 - <title>Meanings of server notice masks</title> 219 - <sect2> 220 - <title>+b, bot warnings</title> 221 - <para> 222 - Opers with the +b snomask set will receive warning messages from the server when potential 223 - flooders and spambots are detected. 224 - </para> 225 - </sect2> 226 - <sect2> 227 - <title>+c, client connections</title> 228 - <para> 229 - Opers who have the +c snomask set will receive server notices when clients attach to the 230 - local server. 231 - </para> 232 - </sect2> 233 - <sect2> 234 - <title>+C, extended client connection notices</title> 235 - <para> 236 - Opers who have the +C snomask set will receive server notices when clients attach to the 237 - local server. Unlike the +c snomask, the information is displayed in a format intended 238 - to be parsed by scripts, and includes the two unused fields of the USER command. 239 - </para> 240 - </sect2> 241 - <sect2> 242 - <title>+d, debug</title> 243 - <para> 244 - The +d snomask provides opers extra information which may be of interest to debuggers. 245 - It will also cause the user to receive server notices if certain assertions fail inside the 246 - server. Its precise meaning is variable. Do not depend on the 247 - effects of this snomask as they can and will change without notice in later revisions. 248 - </para> 249 - </sect2> 250 - <sect2> 251 - <title>+f, full warning</title> 252 - <para> 253 - Opers with the +f snomask set will receive notices when a user 254 - connection is denied because a connection limit is exceeded 255 - (one of the limits in a class{} block, or the total per-server 256 - limit settable with /quote set max). 257 - </para> 258 - </sect2> 259 - <sect2> 260 - <title>+F, far client connection notices</title> 261 - <para> 262 - <note> 263 - <para> 264 - This snomask is only available if the <filename>sno_farconnect.so</filename> extension is loaded. 265 - </para> 266 - </note> 267 - Opers with +F receive server notices when clients connect or 268 - disconnect on other servers. The notices have the same format 269 - as those from the +c snomask, except that the class is ? and 270 - the source server of the notice is the server the user is/was on. 271 - </para> 272 - <para> 273 - No notices are generated for netsplits and netjoins. 274 - Hence, these notices cannot be used to keep track of all 275 - clients on the network. 276 - </para> 277 - <para> 278 - There is no far equivalent of the +C snomask. 279 - </para> 280 - </sect2> 281 - <sect2> 282 - <title>+k, server kill notices</title> 283 - <para> 284 - Opers with the +k snomask set will receive server notices when 285 - services kill users and when 286 - other servers kill and save (forced nick change to UID) users. 287 - Kills and saves by this server are on +d or +s. 288 - </para> 289 - </sect2> 290 - <sect2> 291 - <title>+n, nick change notices</title> 292 - <para> 293 - An oper with +n set will receive a server notice every time a local user changes their nick, 294 - giving the old and new nicks. 295 - This is mostly useful for bots that track all users on a single server. 296 - </para> 297 - </sect2> 298 - <sect2> 299 - <title>+r, notices on name rejections</title> 300 - <para> 301 - Opers with this snomask set will receive a server notice when somebody tries to use an 302 - invalid username, or if a dumb HTTP proxy tries to connect. 303 - </para> 304 - </sect2> 305 - <sect2> 306 - <title>+s, generic server notices</title> 307 - <para> 308 - This snomask allows an oper to receive generic server notices. 309 - This includes kills from opers (except services). 310 - </para> 311 - </sect2> 312 - <sect2> 313 - <title>+u, unauthorized connections</title> 314 - <para> 315 - This snomask allows an oper to see when users try to connect who do not have an 316 - available auth{} block. 317 - </para> 318 - </sect2> 319 - <sect2> 320 - <title>+W, whois notifications</title> 321 - <para> 322 - <note> 323 - <para> 324 - This snomask is only available if the <filename>sno_whois.so</filename> extension is loaded. 325 - </para> 326 - </note> 327 - Opers with +W receive notices when a WHOIS is executed on them 328 - on their server (showing idle time). 329 - </para> 330 - </sect2> 331 - <sect2> 332 - <title>+x, extra routing notices</title> 333 - <para> 334 - Opers who have the +x snomask set will get notices about servers 335 - connecting and disconnecting on the whole network. This includes 336 - all servers connected behind the affected link. This can get 337 - rather noisy but is useful for keeping track of all linked 338 - servers. 339 - </para> 340 - </sect2> 341 - <sect2> 342 - <title>+y, spy</title> 343 - <para> 344 - Opers with +y receive notices when users try to join RESV'ed (<quote>juped</quote>) channels. 345 - Additionally, if certain extension modules are loaded, they will 346 - receive notices when special commands are used. 347 - </para> 348 - </sect2> 349 - <sect2> 350 - <title>+Z, operspy notices</title> 351 - <para> 352 - Opers with +Z receive notices whenever an oper anywhere on the 353 - network uses operspy. 354 - </para> 355 - <para> 356 - This snomask can be configured to be only effective for admins. 357 - </para> 358 - </sect2> 359 - </sect1> 360 - </chapter> 361 - <!-- Keep this comment at the end of the file 362 - Local variables: 363 - mode: sgml 364 - sgml-omittag:t 365 - sgml-shorttag:t 366 - sgml-namecase-general:t 367 - sgml-general-insert-case:lower 368 - sgml-minimize-attributes:nil 369 - sgml-always-quote-attributes:t 370 - sgml-indent-step:2 371 - sgml-indent-data:t 372 - sgml-parent-document: ("charybdis-oper-guide.sgml" "book") 373 - sgml-exposed-tags:nil 374 - fill-column: 105 375 - sgml-validate-command: "nsgmls -e -g -s -u charybdis-oper-guide.sgml" 376 - End: 377 - -->