mirror of
https://github.com/NishiOwO/ircservices5.git
synced 2025-04-21 08:44:38 +00:00
955 lines
39 KiB
HTML
955 lines
39 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
|
|
<title>IRC Services - Frequently Asked Questions (FAQ)</title>
|
|
</head>
|
|
|
|
<body>
|
|
<a name=top></a>
|
|
<h1 align=center>IRC Services Manual</h1>
|
|
|
|
<h2 align=center>Frequently Asked Questions (FAQ)</h2>
|
|
|
|
<p align=right><font size=-1><a href=index.html>Table of Contents</a></font>
|
|
|
|
<!------------------------------------------------------------------------>
|
|
<p><hr>
|
|
|
|
<h2 align=center>Frequently Asked Questions (FAQ) concerning Services</h2>
|
|
|
|
<p><hr width="50%">
|
|
|
|
<h2>Index:</h2>
|
|
|
|
<h3>A. General questions</h3>
|
|
<a href="#A1">A.1. What is Services (a.k.a. IRC Services or Services for
|
|
IRC Networks)?</a>
|
|
<br><a href="#A2">A.2. Where can I find Services?</a>
|
|
<br><a href="#A3">A.3. Does Services run under Windows?</a>
|
|
<br><a href="#A4">A.4. How about other operating systems?</a>
|
|
|
|
<h3>B. Compiling and starting Services</h3>
|
|
B.1. (deleted)
|
|
<br><a href="#B1.5">B.1.5. Why does <tt>configure</tt> complain that my
|
|
compiler has bugs in it? Can't you work around them?</a>
|
|
<br><a href="#B2">B.2. <tt>configure</tt> reports that my system doesn't
|
|
have the <tt>strtok()</tt> function. Isn't that a bug?</a>
|
|
<br><a href="#B3">B.3. When I run "<tt>make</tt>", I get an error message like
|
|
"<tt>missing separator</tt>", "<tt>Need an operator</tt>",
|
|
"<tt>Unexpected end of line seen</tt>", etc.</a>
|
|
<br><a href="#B3.5">B.3.5. I get an error like "<tt>Makefile.inc not
|
|
found</tt>".</a>
|
|
<br>B.4. (deleted)
|
|
<br><a href="#B5">B.5. I need support for the XYZ protocol.</a>
|
|
<br><a href="#B6">B.6. Whenever I start Services, I get a message on my IRC
|
|
server saying "<tt>connection refused</tt>" or something similar,
|
|
and Services gives an error message from the server saying
|
|
"<tt>Closing Link: </tt>. . .".</a>
|
|
<br><a href="#B7">B.7. My IRC server is giving me messages like "<tt>Connection
|
|
to services.example.net[127.0.0.1] activated</tt>" and then
|
|
"<tt>Access denied -- no N line</tt>". Why?</a>
|
|
<br><a href="#B8">B.8. When I say "<tt>/connect services.*</tt>", it doesn't
|
|
work!</a>
|
|
<br><a href="#B9">B.9. Services complains in the logfile about being unable to
|
|
load the default language, or gives messages like "<tt>Warning: bad
|
|
number of strings (747, wanted 863) for language 0 (en_us)</tt>".</a>
|
|
|
|
<h3>C. Running Services</h3>
|
|
<a href="#C1">C.1. Services keeps giving errors saying that the data
|
|
directory is locked and the databases won't be updated.</a>
|
|
<br><a href="#C1.5">C.1.5. Services is giving "Can't create temporary
|
|
database file" errors.</a>
|
|
<br><a href="#C2">C.2. Services can't keep up with my network—it is
|
|
eventually disconnected with "<tt>Max SendQ exceeded</tt>". What
|
|
can I do about this?</a>
|
|
<br><a href="#C3">C.3. Services starts up okay, but if I try to register a
|
|
nickname, it replies with "<tt>Sorry, registration failed</tt>" or
|
|
"<tt>Internal error - unable to process request.</tt>"</a>
|
|
<br><a href="#C4">C.4. Services crashed with a segmentation fault.</a>
|
|
<br><a href="#C5">C.5. Services' channel mode setting doesn't work. I can't
|
|
set modes with OperServ, and every time ChanServ tries to set a
|
|
mode, my server reverses the change.</a>
|
|
<br><a href="#C5.5">C.5.5. But my U:lines are set correctly!</a>
|
|
<br><a href="#C6">C.6. My server sometimes sends messages saying "<tt>Notice --
|
|
User on services.example.net remotely JOINing new channel</tt>".</a>
|
|
<br><a href="#C7">C.7. How can I make Services send replies using
|
|
<tt>PRIVMSG</tt> (<tt>/msg</tt>) instead of <tt>NOTICE</tt>?</a>
|
|
<br><a href="#C8">C.8. Can I make ChanServ send channel modes all at once
|
|
instead of one at a time?</a>
|
|
<br><a href="#C9">C.9. I sometimes get errors in the log file about "user
|
|
record not found", "non-existent nick", or "unknown channel". What
|
|
are these?</a>
|
|
<br><a href="#C10">C.10. Long messages from Services sometimes get a colon
|
|
(":") inserted in the middle.</a>
|
|
<br><a href="#C11">C.11. Services crashes when loading databases on SPARC
|
|
systems.</a>
|
|
<br><a href="#C12">C.12. When using Services with InspIRCd, the IRC server
|
|
gives a warning about "nonstandard modes".</a>
|
|
|
|
<h3>D. NickServ features</h3>
|
|
<a href="#D1">D.1. Some people get nick collided when their nickname is
|
|
changed to <tt>Guest###</tt>.</a>
|
|
<br><a href="#D2">D.2. Trying to use <tt>REGISTER</tt> or <tt>SET EMAIL</tt>
|
|
resulted in an "address is unauthenticated" message, but the user
|
|
hasn't registered any nicknames before.</a>
|
|
|
|
<h3>E. ChanServ features</h3>
|
|
<a href="#E1">E.1. How do I make ChanServ join/stay in a channel?</a>
|
|
<br><a href="#E2">E.2. Services ignored the <tt>SET SUCCESSOR</tt> setting and
|
|
deleted a channel when the founder expired.</a>
|
|
<br><a href="#E3">E.3. When ChanServ sets the topic for a channel, it always
|
|
appends "<tt>(<i>nickname</i>)</tt>" to the end. How do I make it
|
|
not do that?</a>
|
|
<br><a href="#E4">E.4. The <tt>ACCESS</tt> command is confusing to some
|
|
users. Can you add a channel option to select between the
|
|
<tt>ACCESS</tt> and <tt>XOP</tt> commands?</a>
|
|
<br><a href="#E5">E.5. Why can't you force users to register E-mail
|
|
addresses with channels like you can with nicknames?</a>
|
|
<br><a href="#E6">E.6. If I use <tt>SET MLOCK</tt> on a channel to set a
|
|
key, then anyone who enters the channel when empty can see it! How
|
|
do I avoid this?</a>
|
|
<br>E.7. (deleted)
|
|
<br><a href="#E8">E.8. If a channel operator sets mode <tt>-o+v</tt> on
|
|
himself, ChanServ always sends <tt>-v</tt>.</a>
|
|
<br><a href="#E9">E.9. ChanServ <tt>UNBAN</tt> doesn't work properly on
|
|
Unreal.</a>
|
|
<br><a href="#E10">E.10. Why are the <tt>STATUS</tt> error messages so
|
|
strange? Why doesn't <tt>STATUS</tt> obey the language setting in
|
|
NickServ?</a>
|
|
<br><a href="#E11">E.11. Whenever a user enters an empty channel, I see
|
|
messages about "channel TS", and the user loses and then gets
|
|
channel ops again.</a>
|
|
<br><a href="#E12">E.12. When a user is autokicked from a channel,
|
|
sometimes Services doesn't ban them and they get stuck in a
|
|
join/kick loop.</a>
|
|
|
|
<h3>F. OperServ features</h3>
|
|
<a href="#F1">F.1. Using the OperServ <tt>JUPE</tt> command results in server
|
|
messages like "<tt>Server juped.server introduced by non-hub server
|
|
services.example.net</tt>" or causes Services to be disconnected.</a>
|
|
<br><a href="#F2">F.2. I can't use the <tt>ADMIN</tt> command to add
|
|
Services administrators—it tells me "<tt>Permission
|
|
denied.</tt>"</a>
|
|
<br><a href="#F3">F.3. How can I set up multiple Services super-users?</a>
|
|
<br><a href="#F4">F.4. When I add an autokill, the users matching it don't
|
|
get killed.</a>
|
|
<br><a href="#F5">F.5. Services reports (via <tt>/stats u</tt> or <tt>/msg
|
|
OperServ STATS</tt>) a different number of users online than I get
|
|
from doing <tt>/lusers</tt>.</a>
|
|
<br><a href="#F6">F.6. Trying to use OperServ gives me "Access denied", but my
|
|
nick is in the ServicesRoot directive and is registered, and I've
|
|
identified for my nick.</a>
|
|
<br><a href="#F7">F.7. I used the <tt>RAW</tt> command to do something, and
|
|
then Services stopped working!</a>
|
|
<br><a href="#F8">F.8. On Unreal, every time I use the <tt>/gline</tt>
|
|
command, Services cancels the G:line.</a>
|
|
<br><a href="#F9">F.9. Services doesn't add <tt>AKILL</tt>s/G:lines for
|
|
users matching autokill masks.</a>
|
|
<br><a href="#F10">F.10. Services doesn't kill users matching a newly-added
|
|
autokill mask even if <tt>ImmediatelySendAutokill</tt> is set.</a>
|
|
|
|
<h3>Z. Bug reporting and feature requests</h3>
|
|
<i>(section deleted)</i>
|
|
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font>
|
|
|
|
<!------------------------------------------------------------------------>
|
|
<p><hr>
|
|
|
|
<a name=A></a>
|
|
<h3 align=center>A. General questions</h3>
|
|
|
|
<a name=A1></a>
|
|
<p><dl><dt><b>A.1. What is Services (a.k.a. IRC Services or Services for
|
|
IRC Networks)?</b>
|
|
<dd><p>
|
|
Services is a software package providing various services such as
|
|
nickname and channel registration for IRC networks.
|
|
<a href=index.html>Read the documentation</a> for more information.
|
|
</dl>
|
|
|
|
<a name=A2></a>
|
|
<p><dl><dt><b>A.2. Where can I find Services?</b>
|
|
<dd><p>
|
|
See <a href="1.html#3">section 1-3</a> of the manual.
|
|
</dl>
|
|
|
|
<a name=A3></a>
|
|
<p><dl><dt><b>A.3. Does Services run under Windows?</b>
|
|
<dd><p>
|
|
Services has been reported to run when compiled under the
|
|
<a href="http://sources.redhat.com/cygwin/">Cygwin</a>
|
|
<font size=-1>[<tt>sources.redhat.com</tt>]</font> environment for
|
|
Windows, but has not been tested extensively and is not supported
|
|
by the author.
|
|
<p>
|
|
One user has reported success in running Services as a Windows
|
|
service; however, the database files must be owned by the Windows
|
|
user under which Services runs (<i>e.g.</i> Administrator), and the
|
|
files' security properties must be changed to prevent the file
|
|
owner from being altered.
|
|
</dl>
|
|
|
|
<a name=A4></a>
|
|
<p><dl><dt><b>A.4. How about other operating systems?</b>
|
|
<dd><p>
|
|
Services was at one point reported to be usable under OS/2;
|
|
however, it has not been tested recently and is not supported.
|
|
The author has also heard reports of Services being used with
|
|
moderate success on AmigaOS.
|
|
</dl>
|
|
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font>
|
|
|
|
<!------------------------------------------------------------------------>
|
|
<p><hr>
|
|
|
|
<a name=B></a>
|
|
<h3 align=center>B. Compiling and starting Services:</h3>
|
|
|
|
<a name=B1></a>
|
|
<p><dl><dt><i>B.1. (deleted)</i>
|
|
</dl>
|
|
|
|
<a name=B1.5></a>
|
|
<p><dl><dt><b>B.1.5. Why does <tt>configure</tt> complain that my
|
|
compiler has bugs in it? Can't you work around them?</b>
|
|
<dd><p>
|
|
GCC versions earlier than 3.4 have bugs which cause the
|
|
<tt>__builtin_apply()</tt> and <tt>__builtin_return()</tt>
|
|
pseudofunctions to be miscompiled (see GCC Bugzilla, bugs
|
|
<a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8028">8028</a> and
|
|
<a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11151">11151</a>
|
|
<font size=-1>[<tt>gcc.gnu.org</tt>]</font>, for details).
|
|
Working around this problem requires the use of assembly language,
|
|
so workarounds are platform-specific; Services has workarounds for
|
|
these bugs on the Intel x86, SPARC, and PowerPC platforms, but on
|
|
other systems, you will need to use GCC 3.4 or later, or the
|
|
<tt>configure</tt> script will report an error and refuse to
|
|
continue.
|
|
</dl>
|
|
|
|
<a name=B2></a>
|
|
<p><dl><dt><b>B.2. <tt>configure</tt> reports that my system doesn't
|
|
have the <tt>strtok()</tt> function. Isn't that a bug?</b>
|
|
<dd><p>
|
|
Many system libraries, including some versions of the libraries
|
|
used with Linux and Solaris, have subtle bugs in their
|
|
<tt>strtok()</tt> implementations which cause Services to perform
|
|
improperly, or even crash in some cases. The <tt>configure</tt>
|
|
script checks for these bugs, and reports <tt>strtok()</tt> as "not
|
|
found" if one or more bugs are present. (In fairness, the
|
|
definition of <tt>strtok()</tt> is vague in some respects, and
|
|
developers of these libraries may have interpreted it differently
|
|
than the way it is used in Services.)
|
|
</dl>
|
|
|
|
<a name=B3></a>
|
|
<p><dl><dt><b>B.3. When I run "<tt>make</tt>", I get an error message like
|
|
"<tt>missing separator</tt>", "<tt>Need an operator</tt>",
|
|
"<tt>Unexpected end of line seen</tt>", etc.</b>
|
|
<dd><p>
|
|
Your <tt>make</tt> program isn't compatible with the Makefile for
|
|
Services. The Makefile was designed to work with GNU
|
|
<tt>make</tt>, version 3.79 or later, and may not work with older
|
|
versions or other systems' "<tt>make</tt>" programs. In
|
|
particular, the <tt>make</tt> programs bundled with SunOS/Solaris
|
|
and FreeBSD have been reported not to work; you will need to use
|
|
GNU <tt>make</tt> on these systems. See the
|
|
<a href="2.html#1">system requirements section</a> for details.
|
|
</dl>
|
|
|
|
<a name=B3.5></a>
|
|
<p><dl><dt><b>B.3.5. I get an error like "<tt>Makefile.inc not found</tt>".</b>
|
|
<dd><p>
|
|
You forgot to run the <tt>configure</tt> script first. See the
|
|
<a href="2.html#3">installation directions</a>.
|
|
</dl>
|
|
|
|
<a name=B4></a>
|
|
<p><dl><dt><i>B.4. (deleted)</i>
|
|
</dl>
|
|
|
|
<a name=B5></a>
|
|
<p><dl><dt><b>B.5. I need support for the XYZ protocol.</b>
|
|
<dd><p>
|
|
Services can be made to support new IRC protocols with the addition
|
|
of new protocol modules. You will need to write a protocol module
|
|
to support the specific protocol you want to use; see the
|
|
<a href="tech/index.html">technical manual</a> for details.
|
|
</dl>
|
|
|
|
<a name=B6></a>
|
|
<p><dl><dt><b>B.6. Whenever I start Services, I get a message on my IRC
|
|
server saying "<tt>connection refused</tt>" or something similar,
|
|
and Services gives an error message from the server saying
|
|
"<tt>Closing Link: </tt>. . .".</b>
|
|
<dd><p>
|
|
You need to configure your IRC server to accept Services as an IRC
|
|
server. For IRC servers based on the irc2.x distribution, that
|
|
involves adding two lines like the following to your
|
|
<tt>ircd.conf</tt> file:
|
|
<blockquote>
|
|
<tt>C:127.0.0.1:password:services.whatever.net::99</tt>
|
|
<br><tt>N:127.0.0.1:password:services.whatever.net::99</tt>
|
|
</blockquote>
|
|
See your IRC server's documentation for details about configuring
|
|
your servers to accept connections from Services.
|
|
<p>
|
|
Note particularly that "no N:line" errors can mean any of several
|
|
things:
|
|
<p><ul>
|
|
<li>Services' IP address or host name is different than that in the
|
|
first parameter to the <tt>N:</tt> line. On some systems,
|
|
using "<tt>localhost</tt>" in the <tt>RemoteServer</tt>
|
|
configuration directive will not always get you the IP address
|
|
<tt>127.0.0.1</tt>! To check what hostname or IP address the
|
|
IRC server thinks you have, start up an IRC client on the same
|
|
machine you are running Services on, connect to the server
|
|
given in the <tt>RemoteServer</tt> directive, and do a
|
|
<tt>/whois</tt> on yourself; the hostname in the <tt>/whois</tt>
|
|
response should be used as the first <tt>N:</tt> line parameter.
|
|
<p>
|
|
<li>Your IRC server has been compiled to use encrypted <tt>N:</tt>
|
|
line passwords but you gave a plaintext password as the second
|
|
<tt>N:</tt> line parameter, or vice versa.
|
|
<p>
|
|
<li>The server name given as the third <tt>N:</tt> line parameter
|
|
does not match the name given in the <tt>ServerName</tt>
|
|
configuration directive. The third parameter is not the
|
|
IP address or hostname of the remote server (Services in this
|
|
case), but rather the server name presented in the server
|
|
registration (<tt>SERVER</tt>) message; this is an important
|
|
distinction that can be easily forgotten.
|
|
</ul>
|
|
</dl>
|
|
|
|
<a name=B7></a>
|
|
<p><dl><dt><b>B.7. My IRC server is giving me messages like "<tt>Connection
|
|
to services.example.net[127.0.0.1] activated</tt>" and then
|
|
"<tt>Access denied -- no N line</tt>". Why?</b>
|
|
<dd><p>
|
|
This is typically caused by including a port number in the C:line
|
|
for Services, which tells your server to try to autoconnect to it.
|
|
This is not what you want, because Services will connect to the
|
|
server itself, but does not listen for servers to connect to it.
|
|
The solution is to remove the port number from the C:line.
|
|
</dl>
|
|
|
|
<a name=B8></a>
|
|
<p><dl><dt><b>B.8. When I say "<tt>/connect services.*</tt>", it doesn't
|
|
work!</b>
|
|
<dd><p>
|
|
As described in answer B.7 above, Services does not listen for
|
|
connections, so you cannot <tt>/connect</tt> to it.
|
|
</dl>
|
|
|
|
<a name=B9></a>
|
|
<p><dl><dt><b>B.9. Services complains in the logfile about being unable to
|
|
load the default language, or gives messages like "<tt>Warning: bad
|
|
number of strings (747, wanted 863) for language 0 (en_us)</tt>".</b>
|
|
<dd><p>
|
|
You forgot to run "<tt>make install</tt>" after compiling Services.
|
|
</dl>
|
|
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font>
|
|
|
|
<!------------------------------------------------------------------------>
|
|
<p><hr>
|
|
|
|
<a name=C></a>
|
|
<h3 align=center>C. Running Services:</h3>
|
|
|
|
<a name=C1></a>
|
|
<p><dl><dt><b>C.1. Services keeps giving errors saying that the data
|
|
directory is locked and the databases won't be updated.</b>
|
|
<dd><p>
|
|
This can occur if Services was interrupted (<i>e.g.,</i> by a power
|
|
failure) or crashed while writing the databases. Remove the file
|
|
given in the warning message (this is the file specified by the
|
|
<tt>ircservices.conf</tt>
|
|
<a href="a.html#LockFilename"><tt>LockFilename</tt></a> directive,
|
|
by default "<tt>.lock</tt>" in the Services data directory), then
|
|
use the OperServ <a href="4.html#oper.update"><tt>UPDATE</tt></a>
|
|
command to save the databases; alternatively, the <tt>FORCE</tt>
|
|
option can be used with the OperServ <tt>UPDATE</tt> command to
|
|
perform both steps at once.
|
|
</dl>
|
|
|
|
<a name=C1.5></a>
|
|
<p><dl><dt><b>C.1.5. Services is giving "Can't create temporary database
|
|
file" errors.</b>
|
|
<dd><p>
|
|
Make certain that (1) the disk on which the databases are stored is
|
|
not full, and (2) that Services has permission to create files in
|
|
the data directory (on Unix systems, this means that the user-ID that
|
|
Services runs as must have write and execute permission on the data
|
|
directory, as well as execute permission on all parent directories
|
|
of the data directory).
|
|
</dl>
|
|
|
|
<a name=C2></a>
|
|
<p><dl><dt><b>C.2. Services can't keep up with my network—it is
|
|
eventually disconnected with "<tt>Max SendQ exceeded</tt>". What
|
|
can I do about this?</b>
|
|
<dd><p>
|
|
If you have a really large network (tens of thousands of
|
|
simultaneous users), Services in its default configuration may not
|
|
be able to keep up with all the network traffic. Here are some
|
|
possible ways to speed Services up:
|
|
<p><ul>
|
|
<li>Run it on a faster computer. (Services does <i>not</i> need to
|
|
run on the same system as an IRC server! If you have several
|
|
computers connected via Ethernet or another type of high-speed
|
|
network, it's perfectly fine to have an ircd on one machine and
|
|
Services on a separate machine.)
|
|
<li>Remove all unneeded modules from <tt>ircservices.conf</tt>.
|
|
<li>Configure Services with the <tt>-no-sorted-lists</tt> option
|
|
and recompile. (This will speed up nickname and channel
|
|
access, but commands like NickServ and ChanServ LIST will no
|
|
longer return names in alphabetical order.)
|
|
<li>Reduce the nickname and channel expiration periods.
|
|
<li>Reduce the size of your autokill, S-line, and session limit
|
|
exception lists as much as possible, or remove the relevant
|
|
modules (<tt>operserv/akill</tt>, <tt>operserv/sline</tt>, and
|
|
<tt>operserv/sessions</tt>) entirely.
|
|
<li>Reduce the maximum number of autokicks per channel. (This will
|
|
not have a direct effect, but it may keep the problem from
|
|
getting worse.)
|
|
<li>Increase the <tt>UpdateTimeout</tt> setting in
|
|
<tt>ircservices.conf</tt>, to reduce the frequency of database
|
|
synchronization. However, keep in mind that this will mean
|
|
more potential data loss if/when Services falls off your
|
|
network or crashes.
|
|
<li><b>Don't</b> run in debug mode!
|
|
</ul>
|
|
<p>Services has been successfully used on networks as large as
|
|
22,000 simultaneous users with 260,000 registered nicks.
|
|
</dl>
|
|
|
|
<a name=C3></a>
|
|
<p><dl><dt><b>C.3. Services starts up okay, but if I try to register a
|
|
nickname, it replies with "<tt>Sorry, registration failed</tt>" or
|
|
"<tt>Internal error - unable to process request.</tt>"</b>
|
|
<dd><p>
|
|
Make sure you've selected the correct IRC protocol (IRC server)
|
|
module in <tt>ircservices.conf</tt>, as described in
|
|
<a href="2.html#4">section 2-4</a>.
|
|
</dl>
|
|
|
|
<a name=C4></a>
|
|
<p><dl><dt><b>C.4. Services crashed with a segmentation fault.</b>
|
|
<dd><p>
|
|
Hopefully most of the bugs have been worked out of Services by now,
|
|
but if you run into a problem like this, you may find the
|
|
<tt>cron</tt> utility useful for dealing with such with it; the
|
|
<tt>ircservices-chk</tt> script, installed in the same place as the
|
|
<tt>ircservices</tt> executable, will check whether Services is
|
|
running and restart it if not (see
|
|
<a href="2.html#6-ircservices-chk">section 2-6</a> for details).
|
|
</dl>
|
|
|
|
<a name=C5></a>
|
|
<p><dl><dt><b>C.5. Services' channel mode setting doesn't work. I can't
|
|
set modes with OperServ, and every time ChanServ tries to set a
|
|
mode, my server reverses the change.</b>
|
|
<dd><p>
|
|
If you're running the DALnet, Unreal, or Undernet IRC server, make
|
|
sure <i>every</i> server on your network has a U:line for Services
|
|
in <tt>ircd.conf</tt>; for example:
|
|
<blockquote>
|
|
<tt>U:services.whatever.net:*:*</tt>
|
|
</blockquote>
|
|
Services will report in a <tt>WALLOPS</tt> or <tt>GLOBOPS</tt>
|
|
message the first time it discovers it cannot change modes.
|
|
</dl>
|
|
|
|
<a name=C5.5></a>
|
|
<p><dl><dt><b>C.5.5. But my U:lines are set correctly!</b>
|
|
<dd><p>
|
|
If the <tt>ircd.conf</tt> file was created, edited, or copied from
|
|
a Windows computer, then it may be corrupt (Windows inserts
|
|
<tt>^M</tt> characters at the end of every line), which will cause
|
|
the ircd to not recognize the U:line. Use a text editor such as vi
|
|
or Emacs to remove the <tt>^M</tt> characters, or re-create the
|
|
file from scratch.
|
|
</dl>
|
|
|
|
<a name=C6></a>
|
|
<p><dl><dt><b>C.6. My server sometimes sends messages saying "<tt>Notice --
|
|
User on services.example.net remotely JOINing new channel</tt>".</b>
|
|
<dd><p>
|
|
This is normal, and happens whenever ChanServ kicks a user from a
|
|
channel in which they were the first to enter (for example, a user
|
|
without privileges entering a channel with the <tt>RESTRICTED</tt>
|
|
setting active, or a user on the channel's autokick list). In this
|
|
case, ChanServ joins the channel for a short period of time to
|
|
prevent the user from joining again immediately after they've been
|
|
kicked. If you are using the Bahamut or Unreal IRC servers, this
|
|
will result in a message like the above; it can be safely ignored.
|
|
</dl>
|
|
|
|
<a name=C7></a>
|
|
<p><dl><dt><b>C.7. How can I make Services send replies using
|
|
<tt>PRIVMSG</tt> (<tt>/msg</tt>) instead of <tt>NOTICE</tt>?</b>
|
|
<dd><p>
|
|
You can't. RFC 1459 (the IRC protocol definition) requires that
|
|
all automated clients send all replies using <tt>NOTICE</tt> rather
|
|
than <tt>PRIVMSG</tt>, and Services follows that requirement. If
|
|
you want to change how Services replies appear in your IRC client,
|
|
change your client's settings.
|
|
</dl>
|
|
|
|
<a name=C8></a>
|
|
<p><dl><dt><b>C.8. Can I make ChanServ send channel modes all at once
|
|
instead of one at a time?</b>
|
|
<dd><p>
|
|
Yes; enable the <tt>MergeChannelModes</tt> directive in
|
|
<tt>ircservices.conf</tt>. (Note that this has minor security
|
|
implications—be sure to read the comments in the example
|
|
configuration file.)
|
|
</dl>
|
|
|
|
<a name=C9></a>
|
|
<p><dl><dt><b>C.9. I sometimes get errors in the log file about "user
|
|
record not found", "non-existent nick", or "unknown channel". What
|
|
are these?</b>
|
|
<dd><p>
|
|
These messages can appear when Services disconnects a user from the
|
|
network or removes (kicks) a user from a channel, and are the
|
|
result of time lag inherent in all networked systems. For example,
|
|
if an autokilled user connects to the network and immediately sends
|
|
a <tt>/join</tt> command to join a channel, the user's server may
|
|
receive the <tt>/join</tt> before it receives the disconnection
|
|
message from Services. Services will then receive the <tt>/join</tt>
|
|
for what it thinks is a user who no longer exists, and reports that
|
|
it received a message for a non-existent nickname.
|
|
<p>
|
|
These messages do not indicate a bug or other problem, and can be
|
|
safely ignored.
|
|
</dl>
|
|
|
|
<a name=C10></a>
|
|
<p><dl><dt><b>C.10. Long messages from Services sometimes get a colon
|
|
(":") inserted in the middle.</b>
|
|
<dd><p>
|
|
This is caused by a bug in the "mIRC" IRC client for Windows
|
|
computers; if you try to send a very long message using the
|
|
<tt>/operserv</tt> (or <tt>/nickserv</tt>, etc.) command, such as a
|
|
long global notice, then mIRC will insert a colon in the middle of
|
|
it. There is nothing Services can do to fix this, since Services
|
|
can't tell whether the colon was intentionally put there or not.
|
|
If you experience this problem, try upgrading mIRC to the latest
|
|
version or using another IRC client. Alternatively, as a
|
|
workaround you can use <tt>/msg OperServ</tt> instead of
|
|
<tt>/operserv</tt>.
|
|
<p>
|
|
See also <a href="http://trout.snt.utwente.nl/ubbthreads/ubbthreads.php?ubb=showflat&Number=117232&site_id=1#import">this thread</a>
|
|
<font size=-1>[<tt>trout.snt.utwente.nl</tt>]</font> on the mIRC
|
|
forums.
|
|
</dl>
|
|
|
|
<a name=C11></a>
|
|
<p><dl><dt><b>C.11. Services crashes when loading databases on SPARC
|
|
systems.</b>
|
|
<dd><p>
|
|
This is due to a bug in some versions of GCC running on SPARC
|
|
systems. Services contains a temporary workaround for this
|
|
problem, but it is very compiler- and environment-specific, and it
|
|
may not work for you. The bug has been filed in the GCC bug
|
|
database as
|
|
<a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11151">bug
|
|
11151</a> <font size=-1>[<tt>gcc.gnu.org</tt>]</font>, and has been
|
|
fixed as of GCC 3.4.
|
|
</dl>
|
|
|
|
<a name=C12></a>
|
|
<p><dl><dt><b>C.12. When using Services with InspIRCd, the IRC server
|
|
gives a warning about "nonstandard modes".</b>
|
|
<dd><p>
|
|
A message like the following:
|
|
<blockquote><tt>WARNING: The server services.example.net is sending
|
|
nonstandard modes: 'ChanServ MODE +r' where FMODE should be
|
|
used, and may cause desyncs.</tt></blockquote>
|
|
<p>
|
|
is a side effect of the way Services works, and can be safely
|
|
ignored; the "may cause desyncs" text does not apply to Services.
|
|
</dl>
|
|
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font>
|
|
|
|
<!------------------------------------------------------------------------>
|
|
<p><hr>
|
|
|
|
<a name=D></a>
|
|
<h3 align=center>D. NickServ features:</h3>
|
|
|
|
<a name=D1></a>
|
|
<p><dl><dt><b>D.1. Some people get nick collided when their nickname is
|
|
changed to <tt>Guest###</tt>.</b>
|
|
<dd><p>
|
|
Make sure you have <tt>Guest*</tt> (or whatever prefix you
|
|
specified in <tt>ircservices.conf</tt>) listed in a Q:line in the
|
|
<tt>ircd.conf</tt> file for <i>all</i> of your servers. For
|
|
example:
|
|
|
|
<blockquote>
|
|
<tt>Q::Reserved for Services:Guest*</tt>
|
|
</blockquote>
|
|
|
|
This prevents people from using <tt>Guest###</tt> nicks and
|
|
colliding people who get their nicks changed. Note that some IRC
|
|
servers will generate messages whenever someone gets their nick
|
|
changed to <tt>Guest###</tt> by Services and a configuration line
|
|
like the above is used; you may want to modify your IRC client's
|
|
configuration so it doesn't display the messages (or change the IRC
|
|
server itself so it doesn't generate them).
|
|
<p>
|
|
Alternatively, if your IRC server supports SQlines, you can set an
|
|
SQline on the same mask using the OperServ <tt>SQLINE ADD</tt>
|
|
command (in the <tt>operserv/sline</tt> module), and Services will
|
|
take care of making sure all servers have Q:lines for the nick.
|
|
</dl>
|
|
|
|
<a name=D2></a>
|
|
<p><dl><dt><b>D.2. Trying to use <tt>REGISTER</tt> or <tt>SET EMAIL</tt>
|
|
resulted in an "address is unauthenticated" message, but the user
|
|
hasn't registered any nicknames before.</b>
|
|
<dd><p>
|
|
Another user may have set the same E-mail address on their
|
|
nickname. Use the <tt>LISTEMAIL</tt> command to see what nicknames
|
|
have the problem address associated with them.
|
|
</dl>
|
|
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font>
|
|
|
|
<!------------------------------------------------------------------------>
|
|
<p><hr>
|
|
|
|
<a name=E></a>
|
|
<h3 align=center>E. ChanServ features:</h3>
|
|
|
|
<a name=E1></a>
|
|
<p><dl><dt><b>E.1. How do I make ChanServ join/stay in a channel?</b>
|
|
<dd><p>
|
|
You don't. Use a bot instead.
|
|
</dl>
|
|
|
|
<a name=E2></a>
|
|
<p><dl><dt><b>E.2. Services ignored the <tt>SET SUCCESSOR</tt> setting and
|
|
deleted a channel when the founder expired.</b>
|
|
<dd><p>
|
|
Normally, this is because the successor had too many channels
|
|
registered; in this case, you will see an entry in the log file
|
|
like the following:
|
|
|
|
<blockquote>
|
|
<tt>[date] Successor (SuccessorNick) of channel #somechannel owns
|
|
too many channels, deleting channel #somechannel</tt>
|
|
</blockquote>
|
|
</dl>
|
|
<a name=E3></a>
|
|
<p><dl><dt><b>E.3. When ChanServ sets the topic for a channel, it always
|
|
appends "<tt>(<i>nickname</i>)</tt>" to the end. How do I make it
|
|
not do that?</b>
|
|
<dd><p>
|
|
This has nothing to do with Services, and is a feature of the IRC
|
|
server itself which occurs when Services sets the topic on a
|
|
channel. The "(nickname)" is not actually included in the topic,
|
|
and the second and later users to join the channel will not see it.
|
|
There is no way to disable it for the first user, unless you modify
|
|
the IRC server itself.
|
|
</dl>
|
|
<a name=E4></a>
|
|
<p><dl><dt><b>E.4. The <tt>ACCESS</tt> command is confusing to some
|
|
users. Is there a way to select between the <tt>ACCESS</tt> and
|
|
<tt>XOP</tt> commands?</b>
|
|
<dd><p>
|
|
No; just tell those users to not use the <tt>ACCESS</tt> command.
|
|
(You can also disable the <tt>ACCESS</tt> command for the whole
|
|
network by removing or commenting out the
|
|
<tt>LoadModule chanserv/access-levels</tt> line in
|
|
<tt>ircservices.conf</tt>, but this will prevent even users who
|
|
understand the <tt>ACCESS</tt> command from using it.)
|
|
</dl>
|
|
<a name=E5></a>
|
|
<p><dl><dt><b>E.5. Why can't you force users to register E-mail
|
|
addresses with channels like you can with nicknames?</b>
|
|
<dd><p>
|
|
Such functionality is unneeded, because ChanServ requires users to
|
|
register their nicknames before allowing them to register channels.
|
|
As long as you require users to include E-mail addresses with
|
|
nicknames, you can just look up the address for the channel
|
|
founder's nickname if a problem arises with a particular channel.
|
|
</dl>
|
|
|
|
<a name=E6></a>
|
|
<p><dl><dt><b>E.6. If I use <tt>SET MLOCK</tt> on a channel to set a
|
|
key, then anyone who enters the channel when empty can see it! How
|
|
do I avoid this?</b>
|
|
<dd><p>
|
|
Set the <tt>RESTRICTED</tt> option for the channel, as described in
|
|
<a href="4.html#chan.set_mlock">the help for <tt>SET MLOCK</tt></a>,
|
|
or use a bot to keep the channel open.
|
|
</dl>
|
|
|
|
<a name=E7></a>
|
|
<p><dl><dt><i>E.7. (deleted)</i>
|
|
</dl>
|
|
|
|
<a name=E8></a>
|
|
<p><dl><dt><b>E.8. If a channel operator sets mode <tt>-o+v</tt> on
|
|
himself, ChanServ always sends <tt>-v</tt>.</b>
|
|
<dd><p>
|
|
This is a side effect of security measures which prevent non-autoop
|
|
users from getting a <tt>+v</tt> in before Services deops them.
|
|
Either do the <tt>+v</tt> before the <tt>-o</tt> or use the
|
|
ChanServ <tt>VOICE</tt> command.
|
|
</dl>
|
|
|
|
<a name=E9></a>
|
|
<p><dl><dt><b>E.9. ChanServ <tt>UNBAN</tt> doesn't work properly on
|
|
Unreal.</b>
|
|
<dd><p>
|
|
In recent versions of Unreal, it is possible to set bans on a
|
|
user's IP address. However, Unreal 3.2 servers do not send client
|
|
IP address information to Services, so it is impossible to tell
|
|
which IP-address bans match the user; thus the <tt>UNBAN</tt>
|
|
command will fail to remove them. Unreal 3.2.1 and later do send
|
|
IP addresses to Services, so if you upgrade all of your servers the
|
|
problem will go away.
|
|
</dl>
|
|
|
|
<a name=E10></a>
|
|
<p><dl><dt><b>E.10. Why are the <tt>STATUS</tt> error messages so
|
|
strange? Why doesn't <tt>STATUS</tt> obey the language setting in
|
|
NickServ?</b>
|
|
<dd><p>
|
|
The <tt>STATUS</tt> command is intended primarily for use by bots,
|
|
to allow them to take advantage of access level information stored
|
|
in Services. For this reason, the responses to the <tt>STATUS</tt>
|
|
command, including error messages, need to have a fixed format that
|
|
can be understood by a computer.
|
|
</dl>
|
|
|
|
|
|
<a name=E11></a>
|
|
<p><dl><dt><b>E.11. Whenever a user enters an empty channel, I see
|
|
messages about "channel TS", and the user loses and then gets
|
|
channel ops again.</b>
|
|
<dd><p>
|
|
These messages and mode changes are harmless, and are caused by the
|
|
<a href="a.html#protocol/(insert_protocol_name_here).CSSetChannelTime"><tt>CSSetChannelTime</tt></a>
|
|
configuration option (see also <a href="3.html#2-1.channel-ts">the
|
|
relevant part of section 3-2-1</a>). This functionality is
|
|
implemented by sending a message to the network that Services has
|
|
the "proper" timestamp (TS) and modes for the channel.
|
|
Unfortunately, many IRC servers blindly cancel their own modes,
|
|
including the channel ops of the user who initially joined the
|
|
channel, before noticing that Services is not actually changing any
|
|
modes; this results in the server sending out a "<tt>-o</tt>" mode
|
|
change immediately followed by a "<tt>+o</tt>". Some servers also
|
|
seem to think that the timestamp change is a bug (or hack attempt)
|
|
and send out a warning to IRC operators about it.
|
|
<p>
|
|
All of these messages are harmless and can be safely ignored, but
|
|
if they bother you, you may want to consider disabling the
|
|
<tt>CSSetChannelTime</tt> option.
|
|
</dl>
|
|
|
|
|
|
<a name=E12></a>
|
|
<p><dl><dt><b>E.12. When a user is autokicked from a channel,
|
|
sometimes Services doesn't ban them and they get stuck in a
|
|
join/kick loop.</b>
|
|
<dd><p>
|
|
If you are using the Unreal IRC server, this may be caused by
|
|
"extended ban types", specifically third-party Unreal modules that
|
|
add ban types beyond the standard types in Unreal 3.2 (<tt>q</tt>,
|
|
<tt>n</tt>, <tt>c</tt>, and <tt>r</tt>); Services cannot support
|
|
such ban types, since their behavior is undefined by the base
|
|
Unreal protocol. Try disabling such modules and see if the problem
|
|
persists.
|
|
</dl>
|
|
|
|
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font>
|
|
|
|
<!------------------------------------------------------------------------>
|
|
<p><hr>
|
|
|
|
<a name=F></a>
|
|
<h3 align=center>F. OperServ features:</h3>
|
|
|
|
<a name=F1></a>
|
|
<p><dl><dt><b>F.1. Using the OperServ <tt>JUPE</tt> command results in server
|
|
messages like "<tt>Server juped.server introduced by non-hub server
|
|
services.example.net</tt>" or causes Services to be disconnected.</b>
|
|
<dd><p>
|
|
In all irc2.x-derived IRC servers (and possibly others), every
|
|
server on the network must have an H:line for Services in the
|
|
<tt>ircd.conf</tt> file, which looks something like:
|
|
|
|
<blockquote>
|
|
<tt>H:*::services.example.net</tt>
|
|
</blockquote>
|
|
</dl>
|
|
|
|
<a name=F2></a>
|
|
<p><dl><dt><b>F.2. I can't use the <tt>ADMIN</tt> command to add Services
|
|
administrators—it tells me "<tt>Permission denied.</tt>"</b>
|
|
<dd><p>
|
|
Did you define yourself as the Services super-user? You need to
|
|
insert your nickname in the
|
|
<a href="a.html#operserv/main.ServicesRoot"><tt>ServicesRoot</tt></a>
|
|
directive in the <tt>operserv/main</tt> section of
|
|
<tt>modules.conf</tt>. Also make sure that you have registered and
|
|
identified for your nickname, and that you have IRC operator
|
|
privileges.
|
|
</dl>
|
|
|
|
<a name=F3></a>
|
|
<p><dl><dt><b>F.3. How can I set up multiple Services super-users?</b>
|
|
<dd><p>
|
|
You can't. However, you can allow Services administrators to
|
|
obtain Services super-user privilege by setting a password with the
|
|
OperServ <a href="4.html#oper.set_supass"><tt>SET SUPASS</tt></a>
|
|
command; Services admins can then use the
|
|
<a href="4.html#oper.su"><tt>SU</tt></a> command to obtain Services
|
|
super-user privilege.
|
|
</dl>
|
|
|
|
<a name=F4></a>
|
|
<p><dl><dt><b>F.4. When I add an autokill, the users matching it don't get
|
|
killed.</b>
|
|
<dd><p>
|
|
Services does not kill users when an autokill is added; it only
|
|
kills them when they next connect. This is designed behavior,
|
|
intended to reduce the possibility of a mistyped autokill causing
|
|
the wrong users to get killed. (Suppose you typed "<tt>AKILL ADD
|
|
*@*</tt>" and then accidentally hit Enter before finishing the host
|
|
mask . . .)
|
|
</dl>
|
|
|
|
<a name=F5></a>
|
|
<p><dl><dt><b>F.5. Services reports (via <tt>/stats u</tt> or <tt>/msg
|
|
OperServ STATS</tt>) a different number of users online than I get
|
|
from doing <tt>/lusers</tt>.</b>
|
|
<dd><p>
|
|
Services doesn't count its own pseudo-clients (NickServ, ChanServ,
|
|
etc.) in its user count, so Services will normally report a number
|
|
somewhat lower than /lusers. This number will vary depending on
|
|
which pseudo-clients are loaded, and will also change as nickname
|
|
enforcers are introduced and removed.
|
|
<p>
|
|
If you have a very large and/or busy network, there may be an
|
|
additional offset, either positive or negative, caused by lag
|
|
(1) between users signing on/off and Services recognizing them, or
|
|
(2) between Services killing a user and the servers receiving the
|
|
kill. On a network with under 500 simultaneous clients, this
|
|
difference should typically not be more than one at any time, but
|
|
it can increase quickly as the network grows in size. (If the
|
|
difference is abnormally large, see <a href="#C2">question C.2</a>
|
|
for ways to speed Services up.)
|
|
<p>
|
|
Finally, you may have encountered a bug in Services. If the
|
|
difference in counts increases over time without a corresponding
|
|
increase in the number of users online, then this is the most
|
|
likely explanation.
|
|
</dl>
|
|
|
|
<a name=F6></a>
|
|
<p><dl><dt><b>F.6. Trying to use OperServ gives me "Access denied", but my
|
|
nick is in the <tt>ServicesRoot</tt> directive and is registered,
|
|
and I've identified for my nick.</b>
|
|
<dd><p>
|
|
You need to be opered (<i>i.e.,</i> user mode <tt>+o</tt> from using
|
|
<tt>/oper</tt>; this is different from channel operator mode) to
|
|
access OperServ.
|
|
</dl>
|
|
|
|
<a name=F7></a>
|
|
<p><dl><dt><b>F.7. I used the <tt>RAW</tt> command to do something, and
|
|
then Services stopped working!</b>
|
|
<dd><p>
|
|
To quote from the help for the <tt>RAW</tt> command:
|
|
|
|
<blockquote>
|
|
<tt>This command is intended primarily for testing of Services
|
|
and IRC servers; it has a very limited range of uses on a
|
|
live network, and can wreak havoc on a network or cause
|
|
Services to crash if used improperly. <b>DO NOT USE THIS
|
|
COMMAND</b> unless you are absolutely certain you know
|
|
what you are doing!</tt>
|
|
</blockquote>
|
|
|
|
In particular, Services does <i>not</i> process any messages sent
|
|
with the <tt>RAW</tt> command; so if (for example) you use
|
|
<tt>KILL</tt> to kill a user, Services will think the user is still
|
|
online, and if they connect to the network again, Services may fail
|
|
to recognize the new user or even crash. You should not use the
|
|
<tt>RAW</tt> command without a detailed understanding of both the
|
|
IRC protocol and the internal design of Services itself.
|
|
</dl>
|
|
|
|
<a name=F8></a>
|
|
<p><dl><dt><b>F.8. On Unreal, every time I use the <tt>/gline</tt> command,
|
|
Services cancels the G:line.</b>
|
|
<dd><p>
|
|
This is designed behavior. Use the OperServ
|
|
<a href="4.html#oper.akill"><tt>AKILL</tt></a> command instead of
|
|
the <tt>/gline</tt> command.
|
|
</dl>
|
|
|
|
<a name=F9></a>
|
|
<p><dl><dt><b>F.9. Services doesn't add <tt>AKILL</tt>s/G:lines for users
|
|
matching autokill masks.</b>
|
|
<dd><p>
|
|
If you have
|
|
<a href="a.html#operserv/akill.EnableExclude"><tt>EnableExclude</tt></a>
|
|
defined in the <tt>operserv/akill</tt> section of
|
|
<tt>modules.conf</tt>, but your IRC server does not support
|
|
autokill exclusions, then Services will not add <tt>AKILL</tt>s or
|
|
G:lines, because doing so would prevent autokill exclusions from
|
|
working properly. See <a href="3.html#4-3-exclude">section
|
|
3-4-3</a> for details.
|
|
</dl>
|
|
|
|
<a name=F10></a>
|
|
<p><dl><dt><b>F.10. Services doesn't kill users matching a newly-added
|
|
autokill mask even if <tt>ImmediatelySendAutokill</tt> is set.</b>
|
|
<dd><p>
|
|
Services never kills users when a new autokill is added; the
|
|
<a href="a.html#operserv/akill.ImmediatelySendAutokill"><tt>ImmediatelySendAutokill</tt></a>
|
|
configuration directive only causes Services to send the autokill
|
|
itself (that is, the user/host mask from which to prohibit new
|
|
connections) to the IRC servers on your network. This is a safety
|
|
feature intended to limit the damage caused by a mistyped autokill;
|
|
see also <a href="#F4">answer F.4</a> above.
|
|
<p>
|
|
Note that some IRC servers will themselves kill users matching a
|
|
newly-added autokill; this is unrelated to Services.
|
|
</dl>
|
|
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font>
|
|
|
|
<!------------------------------------------------------------------------>
|
|
<p><hr>
|
|
|
|
<a name=Z></a>
|
|
<h3 align=center>Z. Bug reporting and feature requests:</h3>
|
|
|
|
<p><i>(This section has been deleted since Services is no longer being
|
|
maintained.)</i>
|
|
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font>
|
|
|
|
<!------------------------------------------------------------------------>
|
|
<p><hr>
|
|
|
|
<p align=right><font size=-1><a href="index.html">Table of Contents</a></font>
|
|
|
|
</body>
|
|
</html>
|