2019-01-23 09:30:51 +01:00

6715 lines
320 KiB
HTML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Style-Type" content="text/css"/>
<style type="text/css">@import "style.css";</style>
<title>IRC Services Technical Reference Manual - Appendix B. Function index</title>
</head>
<body>
<h1 class="title" id="top">IRC Services Technical Reference Manual</h1>
<h2 class="section-title">Appendix B. Function index</h2>
<p><b>Note:</b> This index does not include functions defined in modules.</p>
<p style="text-align: center">
<a href="#A">A</a> |
<a href="#B">B</a> |
<a href="#C">C</a> |
<a href="#D">D</a> |
<a href="#E">E</a> |
<a href="#F">F</a> |
<a href="#G">G</a> |
<a href="#H">H</a> |
<a href="#I">I</a> |
<a href="#J">J</a> |
<a href="#K">K</a> |
<a href="#L">L</a> |
<a href="#M">M</a> |
<a href="#N">N</a> |
<a href="#O">O</a> |
<a href="#P">P</a> |
<a href="#Q">Q</a> |
<a href="#R">R</a> |
<a href="#S">S</a> |
<a href="#T">T</a> |
<a href="#U">U</a> |
<a href="#V">V</a> |
<a href="#W">W</a> |
<a href="#X">X</a> |
<a href="#Y">Y</a> |
<a href="#Z">Z</a>
</p>
<p class="backlink"><a href="index.html">Table of Contents</a></p>
<!------------------------------------------------------------------------>
<hr/>
<table class="function-index">
<tr class="function-index-header">
<th class="function-index-name">Function name and file</th>
<th class="function-index-params">Parameters</th>
<th class="function-index-return">Return value</th>
<th class="function-index-purpose">Purpose</th>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="A">
<th class="function-index-letter" colspan="5">A</th>
</tr>
<tr class="function-index" id="actions.c_actions_cleanup">
<td class="function-index-name">actions_cleanup<br/>&nbsp;&nbsp;&nbsp;(actions.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Performs cleanup actions
for the high-level action routines.</td>
</tr>
<tr class="function-index" id="actions.c_actions_init">
<td class="function-index-name">actions_init<br/>&nbsp;&nbsp;&nbsp;(actions.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>ac</i></tt>:
Command-line argument count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Command-line argument vector.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Performs initialization
actions for the high-level action routines.</td>
</tr>
<tr class="function-index" id="modules.h_add_callback">
<td class="function-index-name">add_callback<br/>&nbsp;&nbsp;&nbsp;(modules.h)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Handle of the module for the callback, or
<tt>NULL</tt> for a core callback.</p>
<p class="function-param"><tt>const char *<i>name</i></tt>:
Callback name.</p>
<p class="function-param"><tt>callback_t <i>callback</i></tt>:
Callback function to add.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Adds a callback function
to the specified callback in the specified module.
Equivalent to <tt>add_callback_pri()</tt> with a
priority of zero.</td>
</tr>
<tr class="function-index" id="modules.h_add_callback_pri">
<td class="function-index-name">add_callback_pri<br/>&nbsp;&nbsp;&nbsp;(modules.h)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Handle of the module for the callback, or
<tt>NULL</tt> for a core callback.</p>
<p class="function-param"><tt>const char *<i>name</i></tt>:
Callback name.</p>
<p class="function-param"><tt>callback_t <i>callback</i></tt>:
Callback function to add.</p>
<p class="function-param"><tt>int <i>priority</i></tt>:
Priority at which function is to be added.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Adds a callback function
to the specified callback in the specified module,
with a certain priority (higher priority values
cause the function to be called earlier).</td>
</tr>
<tr class="function-index" id="modules.c__add_callback_pri">
<td class="function-index-name">_add_callback_pri<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Handle of the module for the callback, or
<tt>NULL</tt> for a core callback.</p>
<p class="function-param"><tt>const char *<i>name</i></tt>:
Callback name.</p>
<p class="function-param"><tt>callback_t <i>callback</i></tt>:
Callback function to add.</p>
<p class="function-param"><tt>int <i>priority</i></tt>:
Priority at which function is to be added.</p>
<p class="function-param"><tt>const Module *<i>caller</i></tt>:
Handle of the calling module.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Implements the
<tt>add_callback()</tt> and <tt>add_callback_pri()</tt>
macros.</td>
</tr>
<tr class="function-index" id="channels.c_add_channel">
<td class="function-index-name">add_channel<br/>&nbsp;&nbsp;&nbsp;(channel.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Channel *<i>channel</i></tt>:
Channel to add.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Adds the given channel to the hash table.</td>
</tr>
<tr class="function-index" id="actions.c_add_mode_with_params">
<td class="function-index-name">add_mode_with_params<br/>&nbsp;&nbsp;&nbsp;(actions.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>struct modedata *<i>md</i></tt>:
Channel mode data being modified.</p>
<p class="function-param"><tt>char <i>mode</i></tt>:
Mode character to append.</p>
<p class="function-param"><tt>int <i>is_add</i></tt>:
Nonzero if the mode is being added, zero if
it is being removed.</p>
<p class="function-param"><tt>int <i>params</i></tt>:
Number of parameters in <tt><i>parambuf</i></tt>.</p>
<p class="function-param"><tt>const char *<i>parambuf</i></tt>:
Space-separated parameters for the mode.</p>
<p class="function-param"><tt>int <i>len</i></tt>:
Length of <tt><i>parambuf</i></tt>.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Called by
<tt>set_cmode()</tt> to append a mode character
that takes parameters to the accumulated mode
changes for a channel. Flushes out the accumulated
mode changes if no space is available to append the
mode or its parameters.</td>
</tr>
<tr class="function-index" id="servers.c_add_server">
<td class="function-index-name">add_server<br/>&nbsp;&nbsp;&nbsp;(servers.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Server *<i>server</i></tt>:
Server to add.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Adds the given server to the hash table.</td>
</tr>
<tr class="function-index" id="timeout.c_add_timeout">
<td class="function-index-name">add_timeout<br/>&nbsp;&nbsp;&nbsp;(timeout.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>delay</i></tt>:
Delay in seconds.</p>
<p class="function-param"><tt>void (*<i>code</i>)(Timeout *)</tt>:
Function to call when timeout expires.</p>
<p class="function-param"><tt>int <i>repeat</i></tt>:
Nonzero to make the timeout repeating.</p></td>
<td class="function-index-return"><p class="function-param"><tt>Timeout *</tt>:
New timeout handle.</p></td>
<td class="function-index-purpose">Creates a new timeout that
expires in <tt><i>delay</i></tt> seconds. If
<tt><i>repeat</i></tt> is nonzero, the timeout will
be restarted after the timeout function is called,
otherwise the timeout will be deleted.</td>
</tr>
<tr class="function-index" id="timeout.c_add_timeout_ms">
<td class="function-index-name">add_timeout_ms<br/>&nbsp;&nbsp;&nbsp;(timeout.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>uint32 <i>delay</i></tt>:
Delay in milliseconds.</p>
<p class="function-param"><tt>void (*<i>code</i>)(Timeout *)</tt>:
Function to call when timeout expires.</p>
<p class="function-param"><tt>int <i>repeat</i></tt>:
Nonzero to make the timeout repeating.</p></td>
<td class="function-index-return"><p class="function-param"><tt>Timeout *</tt>:
New timeout handle.</p></td>
<td class="function-index-purpose">Creates a new timeout
that expires in <tt><i>delay</i></tt> milliseconds.
Otherwise identical to <tt>add_timeout()</tt>.</td>
</tr>
<tr class="function-index" id="users.c_add_user">
<td class="function-index-name">add_user<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>User *<i>user</i></tt>:
User to add.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Adds the given user to the hash table.</td>
</tr>
<tr class="function-index" id="language.c_addstring">
<td class="function-index-name">addstring<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>name</i></tt>:
Identifier for the new string.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Index for the new string (nonnegative), or -1 on
failure.</p></td>
<td class="function-index-purpose">Adds a new string
identifier to the language tables. The string is
set to empty in all languages.</td>
</tr>
<tr class="function-index" id="misc.c_atolsafe">
<td class="function-index-name">atolsafe<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>s</i></tt>:
String to convert.</p>
<p class="function-param"><tt>long <i>min</i></tt>:
Minimum acceptable value.</p>
<p class="function-param"><tt>long <i>max</i></tt>:
Maximum acceptable value.</p></td>
<td class="function-index-return"><p class="function-param"><tt>long</tt>:
Converted value, or <tt><i>min</i>-1</tt> on
error.</p></td>
<td class="function-index-purpose">Converts a base 10
numeric string to a <tt>long</tt> value, ensuring
that the string contains no invalid characters and
that it is within the inclusive range
<tt><i>min</i></tt> through <tt><i>max</i></tt>.
Sets <tt>errno</tt> to <tt>EINVAL</tt> if the
string contains invalid characters, and to
<tt>ERANGE</tt> if the converted value is outside
the specified range.</td>
</tr>
<tr class="function-index" id="tools_convert-sirv.c_auspice_load_admin">
<td class="function-index-name">auspice_load_admin<br/>&nbsp;&nbsp;&nbsp;(tools/convert-sirv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Auspice
<tt>admin.db</tt> data file.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="B">
<th class="function-index-letter" colspan="5">B</th>
</tr>
<tr class="function-index" id="actions.c_bad_password">
<td class="function-index-name">bad_password<br/>&nbsp;&nbsp;&nbsp;(actions.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>service</i></tt>:
Nickname of relevant pseudoclient.</p>
<p class="function-param"><tt>User *<i>u</i></tt>:
User that sent the bad password.</p>
<p class="function-param"><tt>const char *<i>what</i></tt>:
What the bad password was for (used in the
kill message).</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
2 if the user was killed, 1 if the user will be
killed on the next bad password, else 0.</p></td>
<td class="function-index-purpose">Sends a "password
incorrect" notice from the given pseudoclient to
the user, and checks the user's bad password count
against the <tt>BadPassLimit</tt> setting, killing
or warning the user as appropriate.</td>
</tr>
<tr class="function-index" id="tools_convert-sirv.c_bolivia_load_gline">
<td class="function-index-name">bolivia_load_gline<br/>&nbsp;&nbsp;&nbsp;(tools/convert-sirv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Bolivia
<tt>gline.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-sirv.c_bolivia_load_qline">
<td class="function-index-name">bolivia_load_qline<br/>&nbsp;&nbsp;&nbsp;(tools/convert-sirv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Bolivia
<tt>qline.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-sirv.c_bolivia_load_zline">
<td class="function-index-name">bolivia_load_zline<br/>&nbsp;&nbsp;&nbsp;(tools/convert-sirv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Bolivia
<tt>zline.db</tt> data file.</td>
</tr>
<tr class="function-index" id="sockets.c_buffered_write">
<td class="function-index-name">buffered_write<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to send data on.</p>
<p class="function-param"><tt>const char *<i>buf</i></tt>:
Data to send.</p>
<p class="function-param"><tt>int <i>len</i></tt>:
Length of data to send.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Number of bytes sent or buffered, or -1 on
error.</p></td>
<td class="function-index-purpose">Writes the given data to
the given socket, buffering any data that cannot be
sent immediately.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="C">
<th class="function-index-letter" colspan="5">C</th>
</tr>
<tr class="function-index" id="modules.h_call_callback">
<td class="function-index-name">call_callback<br/>&nbsp;&nbsp;&nbsp;(modules.h)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>id</i></tt>:
ID of the callback to call.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
The value returned by the first callback function
to return a nonzero value; zero if all callback
functions returned zero; or -1 on error.</p></td>
<td class="function-index-purpose">Calls a module callback
with no arguments.</td>
</tr>
<tr class="function-index" id="modules.h_call_callback_1">
<td class="function-index-name">call_callback_1<br/>&nbsp;&nbsp;&nbsp;(modules.h)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>id</i></tt>:
ID of the callback to call.</p>
<p class="function-param"><tt>void *<i>arg1</i></tt>:
Callback function parameter.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
The value returned by the first callback function
to return a nonzero value; zero if all callback
functions returned zero; or -1 on error.</p></td>
<td class="function-index-purpose">Calls a module callback
with one argument.</td>
</tr>
<tr class="function-index" id="modules.h_call_callback_2">
<td class="function-index-name">call_callback_2<br/>&nbsp;&nbsp;&nbsp;(modules.h)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>id</i></tt>:
ID of the callback to call.</p>
<p class="function-param"><tt>void *<i>arg1</i></tt>:
First callback function parameter.</p>
<p class="function-param"><tt>void *<i>arg2</i></tt>:
Second callback function parameter.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
The value returned by the first callback function
to return a nonzero value; zero if all callback
functions returned zero; or -1 on error.</p></td>
<td class="function-index-purpose">Calls a module callback
with two arguments.</td>
</tr>
<tr class="function-index" id="modules.h_call_callback_3">
<td class="function-index-name">call_callback_3<br/>&nbsp;&nbsp;&nbsp;(modules.h)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>id</i></tt>:
ID of the callback to call.</p>
<p class="function-param"><tt>void *<i>arg1</i></tt>:
First callback function parameter.</p>
<p class="function-param"><tt>void *<i>arg2</i></tt>:
Second callback function parameter.</p>
<p class="function-param"><tt>void *<i>arg3</i></tt>:
Third callback function parameter.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
The value returned by the first callback function
to return a nonzero value; zero if all callback
functions returned zero; or -1 on error.</p></td>
<td class="function-index-purpose">Calls a module callback
with three arguments.</td>
</tr>
<tr class="function-index" id="modules.h_call_callback_4">
<td class="function-index-name">call_callback_4<br/>&nbsp;&nbsp;&nbsp;(modules.h)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>id</i></tt>:
ID of the callback to call.</p>
<p class="function-param"><tt>void *<i>arg1</i></tt>:
First callback function parameter.</p>
<p class="function-param"><tt>void *<i>arg2</i></tt>:
Second callback function parameter.</p>
<p class="function-param"><tt>void *<i>arg3</i></tt>:
Third callback function parameter.</p>
<p class="function-param"><tt>void *<i>arg4</i></tt>:
Fourth callback function parameter.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
The value returned by the first callback function
to return a nonzero value; zero if all callback
functions returned zero; or -1 on error.</p></td>
<td class="function-index-purpose">Calls a module callback
with four arguments.</td>
</tr>
<tr class="function-index" id="modules.h_call_callback_5">
<td class="function-index-name">call_callback_5<br/>&nbsp;&nbsp;&nbsp;(modules.h)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>id</i></tt>:
ID of the callback to call.</p>
<p class="function-param"><tt>void *<i>arg1</i></tt>:
First callback function parameter.</p>
<p class="function-param"><tt>void *<i>arg2</i></tt>:
Second callback function parameter.</p>
<p class="function-param"><tt>void *<i>arg3</i></tt>:
Third callback function parameter.</p>
<p class="function-param"><tt>void *<i>arg4</i></tt>:
Fourth callback function parameter.</p>
<p class="function-param"><tt>void *<i>arg5</i></tt>:
Fifth callback function parameter.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
The value returned by the first callback function
to return a nonzero value; zero if all callback
functions returned zero; or -1 on error.</p></td>
<td class="function-index-purpose">Calls a module callback
with five arguments.</td>
</tr>
<tr class="function-index" id="modules.c__call_callback_5">
<td class="function-index-name">_call_callback_5<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Handle for the calling module.</p>
<p class="function-param"><tt>int <i>id</i></tt>:
ID of the callback to call.</p>
<p class="function-param"><tt>void *<i>arg1</i></tt>:
First callback function parameter.</p>
<p class="function-param"><tt>void *<i>arg2</i></tt>:
Second callback function parameter.</p>
<p class="function-param"><tt>void *<i>arg3</i></tt>:
Third callback function parameter.</p>
<p class="function-param"><tt>void *<i>arg4</i></tt>:
Fourth callback function parameter.</p>
<p class="function-param"><tt>void *<i>arg5</i></tt>:
Fifth callback function parameter.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
The value returned by the first callback function
to return a nonzero value; zero if all callback
functions returned zero; or -1 on error.</p></td>
<td class="function-index-purpose">Implements the
<tt>call_callback()</tt> and
<tt>call_callback_<i>N</i>()</tt> macros.</td>
</tr>
<tr class="function-index" id="channels.c_chan_adduser">
<td class="function-index-name">chan_adduser<br/>&nbsp;&nbsp;&nbsp;(channels.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>User *<i>user</i></tt>:
User to add to channel.</p>
<p class="function-param"><tt>const char *<i>chan</i></tt>:
Channel to add user to.</p>
<p class="function-param"><tt>int32 <i>modes</i></tt>:
Initial channel user modes for the user.</p></td>
<td class="function-index-return"><p class="function-param"><tt>Channel *</tt>:
The channel record for the channel.</p></td>
<td class="function-index-purpose">Adds a user to a channel,
creating the channel record if it does not exist.</td>
</tr>
<tr class="function-index" id="channels.c_chan_deluser">
<td class="function-index-name">chan_deluser<br/>&nbsp;&nbsp;&nbsp;(channels.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>User *<i>user</i></tt>:
User to remove from channel.</p>
<p class="function-param"><tt>Channel *<i>c</i></tt>:
Channel to remove user from.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Removes a user from a
channel, deleting the channel record if the channel
becomes empty.</td>
</tr>
<tr class="function-index" id="channels.c_chan_has_ban">
<td class="function-index-name">chan_has_ban<br/>&nbsp;&nbsp;&nbsp;(channels.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>chan</i></tt>:
Name of channel to check.</p>
<p class="function-param"><tt>const char *<i>ban</i></tt>:
Ban mask to look for.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the given mask is found on the channel's
ban list, else zero.</p></td>
<td class="function-index-purpose">Returns whether the
channel's ban list contains the given mask
(searched for case-insensitively).</td>
</tr>
<tr class="function-index" id="users.c_change_user_nick">
<td class="function-index-name">change_user_nick<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>User *<i>user</i></tt>:
User whose nickname is changing.</p>
<p class="function-param"><tt>const char *<i>nick</i></tt>:
New nickname.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Changes a user's nickname.</td>
</tr>
<tr class="function-index" id="channels.c_channel_cleanup">
<td class="function-index-name">channel_cleanup<br/>&nbsp;&nbsp;&nbsp;(channels.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Performs cleanup actions
for the channel management subsystem.</td>
</tr>
<tr class="function-index" id="channels.c_channel_init">
<td class="function-index-name">channel_init<br/>&nbsp;&nbsp;&nbsp;(channels.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>ac</i></tt>:
Command-line argument count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Command-line argument vector.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Performs initialization
actions for the channel management subsystem.</td>
</tr>
<tr class="function-index" id="tools_convert-sirv.c_check_auspice">
<td class="function-index-name">check_auspice<br/>&nbsp;&nbsp;&nbsp;(tools/convert-sirv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return"><p class="function-param"><tt>const char *</tt>:
String describing database type, or <tt>NULL</tt>
if no database was found.</p></td>
<td class="function-index-purpose">Checks for the presence
of Auspice databases.</td>
</tr>
<tr class="function-index" id="tools_convert-sirv.c_check_bolivia">
<td class="function-index-name">check_bolivia<br/>&nbsp;&nbsp;&nbsp;(tools/convert-sirv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return"><p class="function-param"><tt>const char *</tt>:
String describing database type, or <tt>NULL</tt>
if no database was found.</p></td>
<td class="function-index-purpose">Checks for the presence
of Bolivia databases.</td>
</tr>
<tr class="function-index" id="tools_convert-cygnus.c_check_cygnus">
<td class="function-index-name">check_cygnus<br/>&nbsp;&nbsp;&nbsp;(tools/convert-cygnus.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return"><p class="function-param"><tt>const char *</tt>:
String describing database type, or <tt>NULL</tt>
if no database was found.</p></td>
<td class="function-index-purpose">Checks for the presence
of Cygnus databases.</td>
</tr>
<tr class="function-index" id="tools_convert-ver8.c_check_daylight">
<td class="function-index-name">check_daylight<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ver8.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return"><p class="function-param"><tt>const char *</tt>:
String describing database type, or <tt>NULL</tt>
if no database was found.</p></td>
<td class="function-index-purpose">Checks for the presence
of Daylight databases.</td>
</tr>
<tr class="function-index" id="tools_convert-epona.c_check_epona">
<td class="function-index-name">check_epona<br/>&nbsp;&nbsp;&nbsp;(tools/convert-epona.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return"><p class="function-param"><tt>const char *</tt>:
String describing database type, or <tt>NULL</tt>
if no database was found.</p></td>
<td class="function-index-purpose">Checks for the presence
of Epona/Anope databases.</td>
</tr>
<tr class="function-index" id="tools_convert-hybserv.c_check_hybserv">
<td class="function-index-name">check_hybserv<br/>&nbsp;&nbsp;&nbsp;(tools/convert-hybserv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return"><p class="function-param"><tt>const char *</tt>:
String describing database type, or <tt>NULL</tt>
if no database was found.</p></td>
<td class="function-index-purpose">Checks for the presence
of HybServ databases.</td>
</tr>
<tr class="function-index" id="tools_convert-ver8.c_check_ircs_1_2">
<td class="function-index-name">check_ircs_1_2<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ver8.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return"><p class="function-param"><tt>const char *</tt>:
String describing database type, or <tt>NULL</tt>
if no database was found.</p></td>
<td class="function-index-purpose">Checks for the presence
of IRCS 1.2 databases.</td>
</tr>
<tr class="function-index" id="log.c_check_log_rotate">
<td class="function-index-name">check_log_rotate<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Checks whether the log
file needs to be rotated, and does so if necessary.
Used internally by logging routines.</td>
</tr>
<tr class="function-index" id="tools_convert-magick.c_check_magick_14b2">
<td class="function-index-name">check_magick_14b2<br/>&nbsp;&nbsp;&nbsp;(tools/convert-magick.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return"><p class="function-param"><tt>const char *</tt>:
String describing database type, or <tt>NULL</tt>
if no database was found.</p></td>
<td class="function-index-purpose">Checks for the presence
of Magick 1.4 databases.</td>
</tr>
<tr class="function-index" id="modules.c_check_module_symbol">
<td class="function-index-name">check_module_symbol<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Handle of the module in which symbol is to be
looked up, or <tt>NULL</tt> for any module.</p>
<p class="function-param"><tt>const char *<i>symname</i></tt>:
Symbol to look up.</p>
<p class="function-param"><tt>void **<i>resultptr</i></tt>:
Location in which the symbol's value is to
be stored on success (may be <tt>NULL</tt>
if the symbol's value is not required).</p>
<p class="function-param"><tt>const char **<i>errorptr</i></tt>:
Location in which an error message is to be
stored on failure (may be <tt>NULL</tt> if
the error message is not required).</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the symbol was found, zero otherwise.</p></td>
<td class="function-index-purpose">Looks up a symbol in a
given (or any) module. If the symbol is found (the
return value is nonzero), the symbol's value is
stored in the location pointed to by
<tt><i>resultptr</i></tt>; otherwise, an error
message is stored in the location pointed to by
<tt><i>errorptr</i></tt>.</td>
</tr>
<tr class="function-index" id="encrypt.c_check_password">
<td class="function-index-name">check_password<br/>&nbsp;&nbsp;&nbsp;(encrypt.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>plaintext</i></tt>:
Plaintext password to check.</p>
<p class="function-param"><tt>const Password *<i>password</i></tt>:
Encrypted password to check against.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
1 if the password matches; 0 if the password does
not match; -1 if an error occurs during checking.</p></td>
<td class="function-index-purpose">Checks a user-entered
plaintext string against an encrypted password.</td>
</tr>
<tr class="function-index" id="tools_convert-ptlink.c_check_ptlink">
<td class="function-index-name">check_ptlink<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ptlink.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return"><p class="function-param"><tt>const char *</tt>:
String describing database type, or <tt>NULL</tt>
if no database was found.</p></td>
<td class="function-index-purpose">Checks for the presence
of PTlink databases.</td>
</tr>
<tr class="function-index" id="tools_convert-sirv.c_check_sirv">
<td class="function-index-name">check_sirv<br/>&nbsp;&nbsp;&nbsp;(tools/convert-sirv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return"><p class="function-param"><tt>const char *</tt>:
String describing database type, or <tt>NULL</tt>
if no database was found.</p></td>
<td class="function-index-purpose">Checks for the presence
of Sirv databases.</td>
</tr>
<tr class="function-index" id="sockets.c_check_sockets">
<td class="function-index-name">check_sockets<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Checks all open sockets
for activity, taking appropriate action for any
pending socket events..</td>
</tr>
<tr class="function-index" id="timeout.c_check_timeouts">
<td class="function-index-name">check_timeouts<br/>&nbsp;&nbsp;&nbsp;(timeout.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Checks for expired timeouts.</td>
</tr>
<tr class="function-index" id="tools_convert-trircd.c_check_trircd">
<td class="function-index-name">check_trircd<br/>&nbsp;&nbsp;&nbsp;(tools/convert-trircd.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return"><p class="function-param"><tt>const char *</tt>:
String describing database type, or <tt>NULL</tt>
if no database was found.</p></td>
<td class="function-index-purpose">Checks for the presence
of trircd databases.</td>
</tr>
<tr class="function-index" id="tools_convert-magick.c_check_wrecked_1_2">
<td class="function-index-name">check_wrecked_1_2<br/>&nbsp;&nbsp;&nbsp;(tools/convert-magick.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return"><p class="function-param"><tt>const char *</tt>:
String describing database type, or <tt>NULL</tt>
if no database was found.</p></td>
<td class="function-index-purpose">Checks for the presence
of Wrecked 1.2 databases.</td>
</tr>
<tr class="function-index" id="init.c_cleanup">
<td class="function-index-name">cleanup<br/>&nbsp;&nbsp;&nbsp;(init.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Performs program cleanup.</td>
</tr>
<tr class="function-index" id="actions.c_clear_bans">
<td class="function-index-name">clear_bans<br/>&nbsp;&nbsp;&nbsp;(actions.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>sender</i></tt>:
Sender name to use with mode changes.</p>
<p class="function-param"><tt>Channel *<i>chan</i></tt>:
Channel to operate on.</p>
<p class="function-param"><tt>User *<i>u</i></tt>:
The user to clear matching bans against, or
<tt>NULL</tt> to clear all bans on the
channel.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Called by
<tt>clear_channel()</tt> to clear bans on a
channel.</td>
</tr>
<tr class="function-index" id="actions.c_clear_channel">
<td class="function-index-name">clear_channel<br/>&nbsp;&nbsp;&nbsp;(actions.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Channel *<i>chan</i></tt>:
Channel to operate on.</p>
<p class="function-param"><tt>int <i>what</i></tt>:
Operation to perform (<tt>CLEAR_*</tt>).</p>
<p class="function-param"><tt>const void *<i>param</i></tt>:
Parameter for operation.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Clears modes and/or
users from a channel.</td>
</tr>
<tr class="function-index" id="actions.c_clear_modes">
<td class="function-index-name">clear_modes<br/>&nbsp;&nbsp;&nbsp;(actions.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>sender</i></tt>:
Sender name to use with mode changes.</p>
<p class="function-param"><tt>Channel *<i>chan</i></tt>:
Channel to operate on.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Called by
<tt>clear_channel()</tt> to clear all binary modes
from the given channel.</td>
</tr>
<tr class="function-index" id="encrypt.c_clear_password">
<td class="function-index-name">clear_password<br/>&nbsp;&nbsp;&nbsp;(encrypt.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Password *<i>password</i></tt>:
<tt>Password</tt> structure to clear.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Clears data from a
Password structure, returning it to its original,
initialized state.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_clear_password">
<td class="function-index-name">clear_password<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Password *<i>password</i></tt>:
<tt>Password</tt> structure to clear.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Clears data from a
Password structure. Analogous to
<tt>clear_password()</tt> in <tt>encrypt.c</tt>.</td>
</tr>
<tr class="function-index" id="actions.c_clear_umodes">
<td class="function-index-name">clear_umodes<br/>&nbsp;&nbsp;&nbsp;(actions.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>sender</i></tt>:
Sender name to use with mode changes.</p>
<p class="function-param"><tt>Channel *<i>chan</i></tt>:
Channel to operate on.</p>
<p class="function-param"><tt>int32 <i>modes</i></tt>:
Mode flags to clear.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Called by
<tt>clear_channel()</tt> to clear some or all
channel user modes from the given channel.</td>
</tr>
<tr class="function-index" id="actions.c_clear_users">
<td class="function-index-name">clear_users<br/>&nbsp;&nbsp;&nbsp;(actions.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>sender</i></tt>:
Sender name to use for <tt>KICK</tt> messages.</p>
<p class="function-param"><tt>Channel *<i>chan</i></tt>:
Channel to operate on.</p>
<p class="function-param"><tt>const char *<i>reason</i></tt>:
Reason to use in <tt>KICK</tt> messages.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Called by
<tt>clear_channel()</tt> to remove all users from
the given channel.</td>
</tr>
<tr class="function-index" id="sockets.c_close_listener">
<td class="function-index-name">close_listener<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Listener socket to close.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Zero on success, -1 on error.</p></td>
<td class="function-index-purpose">Closes a listener socket,
returning the socket to an unused state.</td>
</tr>
<tr class="function-index" id="log.c_close_log">
<td class="function-index-name">close_log<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Closes any open log
file.</td>
</tr>
<tr class="function-index" id="conffile.c_config_error">
<td class="function-index-name">config_error<br/>&nbsp;&nbsp;&nbsp;(conffile.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>filename</i></tt>:
Name of file being processed.</p>
<p class="function-param"><tt>int <i>linenum</i></tt>:
Line number being processed.</p>
<p class="function-param"><tt>const char *<i>message</i></tt>:
Warning/error message (a
<tt>printf()</tt>-like format string).</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Logs a warning or error
message that occurs during configuration file
processing.</td>
</tr>
<tr class="function-index" id="conffile.c_configure">
<td class="function-index-name">configure<br/>&nbsp;&nbsp;&nbsp;(conffile.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>modulename</i></tt>:
Name of module to process, or <tt>NULL</tt>
when handling core configuration directives.</p>
<p class="function-param"><tt>ConfigDirective *<i>directives</i></tt>:
Configuration directive array.</p>
<p class="function-param"><tt>int <i>action</i></tt>:
<tt>CONFIGURE_READ</tt> and/or <tt>CONFIGURE_SET</tt>.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Reads in a configuration
file.</td>
</tr>
<tr class="function-index" id="sockets.c_conn">
<td class="function-index-name">conn<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to connect (must be in an unused
state).</p>
<p class="function-param"><tt>const char *<i>host</i></tt>:
Hostname or IP address of host to connect
to.</p>
<p class="function-param"><tt>int <i>port</i></tt>:
TCP port on remote host to connect to.</p>
<p class="function-param"><tt>const char *<i>lhost</i></tt>:
Hostname or IP address to use as the
socket's local address, or <tt>NULL</tt> to
let the system choose an address.</p>
<p class="function-param"><tt>int <i>lport</i></tt>:
TCP port to use as the socket's local port
number, or <tt>NULL</tt> to let the system
choose an address.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Zero on success, -1 on error.</p></td>
<td class="function-index-purpose">Establishes a connection
to a remote host.</td>
</tr>
<tr class="function-index" id="main.c_connect_callback">
<td class="function-index-name">connect_callback<br/>&nbsp;&nbsp;&nbsp;(main.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Connecting socket.</p>
<p class="function-param"><tt>void *<i>param_unused</i></tt>:
Parameter (unused).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Callback for server
socket connection.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_convert_acclev">
<td class="function-index-name">convert_acclev<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int16 <i>old</i></tt>:
Old access level.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int16</tt>:
New access level.</p></td>
<td class="function-index-purpose">Converts channel access
levels from values used in Services 4.5 and earlier
to values used in current Services versions.</td>
</tr>
<tr class="function-index" id="encrypt.c_copy_password">
<td class="function-index-name">copy_password<br/>&nbsp;&nbsp;&nbsp;(encrypt.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Password *<i>to</i></tt>:
Destination <tt>Password</tt> structure.</p>
<p class="function-param"><tt>const Password *<i>from</i></tt>:
Source <tt>Password</tt> structure.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Copies the contents of
one <tt>Password</tt> structure to another.</td>
</tr>
<tr class="function-index" id="users.c_create_mask">
<td class="function-index-name">create_mask<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>User *<i>u</i></tt>:
User to create the mask for.</p>
<p class="function-param"><tt>int <i>use_fakehost</i></tt>:
Nonzero to use the user's fake hostname,
if available; zero to always use the user's
real hostname.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
A <tt>malloc()</tt>ed string containing the
resulting mask.</p></td>
<td class="function-index-purpose">Creates a mask which can
be expected to match the user in most cases.</td>
</tr>
<tr class="function-index" id="modes.c_cumode_prefix_to_flag">
<td class="function-index-name">cumode_prefix_to_flag<br/>&nbsp;&nbsp;&nbsp;(modes.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char <i>c</i></tt>:
Channel user mode prefix.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int32</tt>:
Mode flag corresponding to prefix character, or
0 if no such mode exists.</p></td>
<td class="function-index-purpose">Returns the mode flag
corresponding to a channel user mode prefix
character, such as the "<tt>@</tt>" that indicates
a channel operator.</td>
</tr>
<tr class="function-index" id="tools_convert-cygnus.c_cyg_load_chan">
<td class="function-index-name">cyg_load_chan<br/>&nbsp;&nbsp;&nbsp;(tools/convert-cygnus.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Cygnus
<tt>chanserv.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-cygnus.c_cyg_load_nick">
<td class="function-index-name">cyg_load_nick<br/>&nbsp;&nbsp;&nbsp;(tools/convert-cygnus.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Cygnus
<tt>nickserv.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-cygnus.c_cyg_load_root">
<td class="function-index-name">cyg_load_root<br/>&nbsp;&nbsp;&nbsp;(tools/convert-cygnus.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Cygnus
<tt>rootserv.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-cygnus.c_cyg_strtok_remaining">
<td class="function-index-name">cyg_strtok_remaining<br/>&nbsp;&nbsp;&nbsp;(tools/convert-cygnus.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
Remaining text in the buffer.</p></td>
<td class="function-index-purpose">Returns any text
remaining in the last string buffer passed to
<tt>strtok()</tt>, like <tt>strtok(NULL, "")</tt>,
with any leading and trailing whitespace stripped.
Similar to <tt>strtok_remaining()</tt> in
<tt>misc.c</tt>.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="D">
<th class="function-index-letter" colspan="5">D</th>
</tr>
<tr class="function-index" id="databases.c_database_cleanup">
<td class="function-index-name">database_cleanup<br/>&nbsp;&nbsp;&nbsp;(databases.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Performs cleanup actions
for the database subsystem.</td>
</tr>
<tr class="function-index" id="databases.c_database_init">
<td class="function-index-name">database_init<br/>&nbsp;&nbsp;&nbsp;(databases.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>ac</i></tt>:
Command-line argument count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Command-line argument vector.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Performs initialization
actions for the database subsystem.</td>
</tr>
<tr class="function-index" id="misc.c_decode_base64">
<td class="function-index-name">decode_base64<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>in</i></tt>:
Input base64 string.</p>
<p class="function-param"><tt>void *<i>out</i></tt>:
Output buffer, or <tt>NULL</tt> if only the
return value is needed.</p>
<p class="function-param"><tt>int <i>outsize</i></tt>:
Output buffer size (ignored if
<tt><i>out</i></tt> is <tt>NULL</tt>).</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Required output buffer size.</p></td>
<td class="function-index-purpose">Decodes a base64 string.</td>
</tr>
<tr class="function-index" id="conffile.c_deconfigure">
<td class="function-index-name">deconfigure<br/>&nbsp;&nbsp;&nbsp;(conffile.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>ConfigDirective *<i>directives</i></tt>:
Configuration directive array.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Restores all configuration
variables to their original values.</td>
</tr>
<tr class="function-index" id="encrypt.c_decrypt_password">
<td class="function-index-name">decrypt_password<br/>&nbsp;&nbsp;&nbsp;(encrypt.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const Password *<i>password</i></tt>:
Password to decrypt.</p>
<p class="function-param"><tt>char *<i>dest</i></tt>:
Buffer to store plaintext password in.</p>
<p class="function-param"><tt>int <i>size</i></tt>:
Size of <tt><i>dest</i></tt>, in bytes.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
0 on success; &gt;0 (required buffer size) if the
provided plaintext buffer is too small; -2 if the
cipher in use does not allow decryption; -1 on
other error.</p></td>
<td class="function-index-purpose">Decrypts a password,
if possible.</td>
</tr>
<tr class="function-index" id="encrypt.c_default_check_password">
<td class="function-index-name">default_check_password<br/>&nbsp;&nbsp;&nbsp;(encrypt.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>plaintext</i></tt>:
Plaintext password to check.</p>
<p class="function-param"><tt>const char *<i>password</i></tt>:
Encrypted password to check against.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
1 if the password matches; 0 if the password does
not match; -1 if an error occurs during checking.</p></td>
<td class="function-index-purpose">Default implementation
of <tt>check_password()</tt>; simply performs a
<tt>strcmp()</tt>.</td>
</tr>
<tr class="function-index" id="encrypt.c_default_decrypt">
<td class="function-index-name">default_decrypt<br/>&nbsp;&nbsp;&nbsp;(encrypt.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>src</i></tt>:
Password to decrypt.</p>
<p class="function-param"><tt>char *<i>dest</i></tt>:
Buffer to store plaintext password in.</p>
<p class="function-param"><tt>int <i>size</i></tt>:
Size of <tt><i>dest</i></tt>, in bytes.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
0 on success; &gt;0 (required buffer size) if the
provided plaintext buffer is too small; -2 if the
cipher in use does not allow decryption; -1 on
other error.</p></td>
<td class="function-index-purpose">Default implementation
of <tt>decrypt_password()</tt>; simply copies the
password to the output buffer.</td>
</tr>
<tr class="function-index" id="encrypt.c_default_encrypt">
<td class="function-index-name">default_encrypt<br/>&nbsp;&nbsp;&nbsp;(encrypt.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>src</i></tt>:
Plaintext password to encrypt.</p>
<p class="function-param"><tt>int <i>len</i></tt>:
Length of password.</p>
<p class="function-param"><tt>char *<i>dest</i></tt>:
Destination buffer.</p>
<p class="function-param"><tt>int <i>size</i></tt>:
Size of destination buffer.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
0 on success; &gt;0 (required buffer size) if the
destination buffer is too small; -1 on error.</p></td>
<td class="function-index-purpose">Default implementation
of <tt>encrypt_password()</tt>. Simply copies the
source to the destination, without encryption.</td>
</tr>
<tr class="function-index" id="channels.c_del_channel">
<td class="function-index-name">del_channel<br/>&nbsp;&nbsp;&nbsp;(channel.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Channel *<i>channel</i></tt>:
Channel to remove.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Removes the given channel from the hash table.</td>
</tr>
<tr class="function-index" id="commands.c_del_commandlist">
<td class="function-index-name">del_commandlist<br/>&nbsp;&nbsp;&nbsp;(commands.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>id</i></tt>:
ID of command list to delete.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Deletes a command list.
The list must be empty (all commands unregistered)
before it can be deleted.</td>
</tr>
<tr class="function-index" id="servers.c_del_server">
<td class="function-index-name">del_server<br/>&nbsp;&nbsp;&nbsp;(servers.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Server *<i>server</i></tt>:
Server to remove.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Removes the given server from the hash table.</td>
</tr>
<tr class="function-index" id="timeout.c_del_timeout">
<td class="function-index-name">del_timeout<br/>&nbsp;&nbsp;&nbsp;(timeout.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Timeout *<i>t</i></tt>:
Timeout to delete.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Deletes the given timeout.</td>
</tr>
<tr class="function-index" id="users.c_del_user">
<td class="function-index-name">del_user<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>User *<i>user</i></tt>:
User to remove.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Removes the given user from the hash table.</td>
</tr>
<tr class="function-index" id="servers.c_delete_server">
<td class="function-index-name">delete_server<br/>&nbsp;&nbsp;&nbsp;(servers.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Server *<i>server</i></tt>:
Server record to delete.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Deletes the given server
record, removing it from the hash table and freeing
all resources used by the record.</td>
</tr>
<tr class="function-index" id="users.c_delete_user">
<td class="function-index-name">delete_user<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>User *<i>user</i></tt>:
User record to delete.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Deletes a user record,
removing it from the hash table and server's user
list and freeing all resources used by the record.</td>
</tr>
<tr class="function-index" id="signals.c_disable_signals">
<td class="function-index-name">disable_signals<br/>&nbsp;&nbsp;&nbsp;(signals.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Disables processing of
<tt>SIGTERM</tt>/<tt>SIGHUP</tt>/<tt>SIGUSR2</tt>
signals.</td>
</tr>
<tr class="function-index" id="sockets.c_disconn">
<td class="function-index-name">disconn<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to disconnect.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Zero on success, -1 on error.</p></td>
<td class="function-index-purpose">Disconnects an active
connection, returning the socket to an unused
state.</td>
</tr>
<tr class="function-index" id="main.c_disconnect_callback">
<td class="function-index-name">disconnect_callback<br/>&nbsp;&nbsp;&nbsp;(main.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Disconnecting socket.</p>
<p class="function-param"><tt>void *<i>param</i></tt>:
Disconnection type.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Callback for server
socket disconnection.</td>
</tr>
<tr class="function-index" id="sockets.c_do_accept">
<td class="function-index-name">do_accept<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket on which event occurred.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Handles an incoming
connection event on a listener socket, accepting
the connection and calling the socket's
<tt>SCB_ACCEPT</tt> callback as appropriate.</td>
</tr>
<tr class="function-index" id="conffile.c_do_all_directives">
<td class="function-index-name">do_all_directives<br/>&nbsp;&nbsp;&nbsp;(conffile.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>action</i></tt>:
<tt>ACTION_COPYNEW</tt> or <tt>ACTION_RESTORESAVED</tt>.</p>
<p class="function-param"><tt>ConfigDirective *<i>directives</i></tt>:
Configuration directive array.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Copies new (temporary) or
old (saved) values to configuration variables.</td>
</tr>
<tr class="function-index" id="sockets.c_do_callback">
<td class="function-index-name">do_callback<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket for which callback is being called.
If <tt>NULL</tt>, the routine does nothing.</p>
<p class="function-param"><tt>SocketCallback <i>cb</i></tt>:
Callback function to call. If <tt>NULL</tt>,
the routine does nothing.</p>
<p class="function-param"><tt>void *<i>param</i></tt>:
Parameter to callback function.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
0 if the socket was disconnected, else 1.</p></td>
<td class="function-index-purpose">Calls a callback
function for a socket, handling delayed
disconnection after the callback function returns.</td>
</tr>
<tr class="function-index" id="channels.c_do_cmode">
<td class="function-index-name">do_cmode<br/>&nbsp;&nbsp;&nbsp;(channels.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Processes a
<tt>MODE</tt> message (for a channel target) from
the remote server.</td>
</tr>
<tr class="function-index" id="channels.c_do_cumode">
<td class="function-index-name">do_cumode<br/>&nbsp;&nbsp;&nbsp;(channels.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>Channel *<i>chan</i></tt>:
Channel on which to operate.</p>
<p class="function-param"><tt>int32 <i>flag</i></tt>:
Mode flag to change.</p>
<p class="function-param"><tt>int <i>add</i></tt>:
Nonzero to add the mode, zero to remove it.</p>
<p class="function-param"><tt>const char *<i>nick</i></tt>:
Nickname whose modes are to be changed.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Changes the channel user
mode for a user on a channel.</td>
</tr>
<tr class="function-index" id="init.c_do_DefTimeZone">
<td class="function-index-name">do_DefTimeZone<br/>&nbsp;&nbsp;&nbsp;(init.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>filename</i></tt>:
Name of configuration file being processed.</p>
<p class="function-param"><tt>int <i>linenum</i></tt>:
Line number in configuration file.</p>
<p class="function-param"><tt>char *<i>param</i></tt>:
Parameters to configuration directive.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Handles the
<tt>DefTimeZone</tt> option in
<tt>ircservices.conf</tt>.</td>
</tr>
<tr class="function-index" id="sockets.c_do_disconn">
<td class="function-index-name">do_disconn<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket being disconnected.</p>
<p class="function-param"><tt>void *<i>code</i></tt>:
Disconnection code (<tt>DISCONN_*</tt>).</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
-1 on error, else 0.</p></td>
<td class="function-index-purpose">Performs internal
handling for a socket being disconnected.</td>
</tr>
<tr class="function-index" id="init.c_do_IgnoreThreshold">
<td class="function-index-name">do_IgnoreThreshold<br/>&nbsp;&nbsp;&nbsp;(init.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>filename</i></tt>:
Name of configuration file being processed.</p>
<p class="function-param"><tt>int <i>linenum</i></tt>:
Line number in configuration file.</p>
<p class="function-param"><tt>char *<i>param</i></tt>:
Parameters to configuration directive.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Handles the
<tt>IgnoreThreshold</tt> option in
<tt>ircservices.conf</tt>.</td>
</tr>
<tr class="function-index" id="users.c_do_join">
<td class="function-index-name">do_join<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Processes a
<tt>JOIN</tt> message from the remote server.</td>
</tr>
<tr class="function-index" id="users.c_do_kick">
<td class="function-index-name">do_kick<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Processes a
<tt>KICK</tt> message from the remote server.</td>
</tr>
<tr class="function-index" id="users.c_do_kill">
<td class="function-index-name">do_kill<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Processes a
<tt>KILL</tt> message from the remote server.</td>
</tr>
<tr class="function-index" id="init.c_do_LoadLanguageText">
<td class="function-index-name">do_LoadLanguageText<br/>&nbsp;&nbsp;&nbsp;(init.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>filename</i></tt>:
Name of configuration file being processed.</p>
<p class="function-param"><tt>int <i>linenum</i></tt>:
Line number in configuration file.</p>
<p class="function-param"><tt>char *<i>param</i></tt>:
Parameters to configuration directive.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Handles the
<tt>LoadLanguageText</tt> option in
<tt>ircservices.conf</tt>. Filenames given are
gathered in the <tt>LoadLanguageText</tt> array in
the order they are encountered.</td>
</tr>
<tr class="function-index" id="send.c_do_load_module">
<td class="function-index-name">do_load_module<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>mod</i></tt>:
Handle of newly-loaded module.</p>
<p class="function-param"><tt>const char *<i>name</i></tt>:
Name of newly-loaded module.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Zero.</p></td>
<td class="function-index-purpose">Watches for newly-loaded
protocol modules, to ensure that the protocol
module sets up the message sending interfaces
correctly.</td>
</tr>
<tr class="function-index" id="init.c_do_LoadModule">
<td class="function-index-name">do_LoadModule<br/>&nbsp;&nbsp;&nbsp;(init.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>filename</i></tt>:
Name of configuration file being processed.</p>
<p class="function-param"><tt>int <i>linenum</i></tt>:
Line number in configuration file.</p>
<p class="function-param"><tt>char *<i>param</i></tt>:
Parameters to configuration directive.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Handles the
<tt>LoadModule</tt> option in
<tt>ircservices.conf</tt>. Filenames given are
gathered in the <tt>LoadModule</tt> array in the
order they are encountered.</td>
</tr>
<tr class="function-index" id="log.c_do_log">
<td class="function-index-name">do_log<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>debuglevel</i></tt>:
Minimum debug level at which this message
should be written.</p>
<p class="function-param"><tt>int <i>do_perror</i></tt>:
Nonzero if a system error message should be
appended.</p>
<p class="function-param"><tt>const char *<i>modulename</i></tt>:
The name of the module writing the log
message; <tt>NULL</tt> for log messages
from the core.</p>
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
The <tt>printf()</tt>-style log message
format string.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Internal routine that
implements all of the logging functions.</td>
</tr>
<tr class="function-index" id="misc.c_do_match_wild">
<td class="function-index-name">do_match_wild<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>pattern</i></tt>:
Pattern to match against.</p>
<p class="function-param"><tt>const char *<i>str</i></tt>:
String to check.</p>
<p class="function-param"><tt>int <i>docase</i></tt>:
Whether case should be considered (nonzero)
or not (zero).</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the string matches the pattern, else
zero.</p></td>
<td class="function-index-purpose">Internal function
implementing <tt>match_wild()</tt> and
<tt>match_wild_nocase</tt>.</td>
</tr>
<tr class="function-index" id="users.c_do_nick">
<td class="function-index-name">do_nick<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Processes a
<tt>NICK</tt> message from the remote server.</td>
</tr>
<tr class="function-index" id="users.c_do_part">
<td class="function-index-name">do_part<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Processes a
<tt>PART</tt> message from the remote server.</td>
</tr>
<tr class="function-index" id="users.c_do_quit">
<td class="function-index-name">do_quit<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Processes a
<tt>QUIT</tt> message from the remote server.</td>
</tr>
<tr class="function-index" id="conffile.c_do_read_config_file">
<td class="function-index-name">do_read_config_file<br/>&nbsp;&nbsp;&nbsp;(conffile.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>modulename</i></tt>:
Name of module to process, or <tt>NULL</tt>
when handling core configuration directives.</p>
<p class="function-param"><tt>ConfigDirective *<i>directives</i></tt>:
Configuration directive array.</p>
<p class="function-param"><tt>FILE *<i>f</i></tt>:
File to read from.</p>
<p class="function-param"><tt>const char *<i>filename</i></tt>:
Name of file being read.</p>
<p class="function-param"><tt>int <i>recursion_level</i></tt>:
Recursion depth (increases by one for
each recursive call).</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Reads and parses a
configuration file.</td>
</tr>
<tr class="function-index" id="init.c_do_RunGroup">
<td class="function-index-name">do_RunGroup<br/>&nbsp;&nbsp;&nbsp;(init.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>filename</i></tt>:
Name of configuration file being processed.</p>
<p class="function-param"><tt>int <i>linenum</i></tt>:
Line number in configuration file.</p>
<p class="function-param"><tt>char *<i>param</i></tt>:
Parameters to configuration directive.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Handles the
<tt>RunGroup</tt> option in
<tt>ircservices.conf</tt>.</td>
</tr>
<tr class="function-index" id="servers.c_do_server">
<td class="function-index-name">do_server<br/>&nbsp;&nbsp;&nbsp;(servers.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Processes a
<tt>SERVER</tt> message from the remote server.</td>
</tr>
<tr class="function-index" id="init.c_do_ServiceUser">
<td class="function-index-name">do_ServiceUser<br/>&nbsp;&nbsp;&nbsp;(init.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>filename</i></tt>:
Name of configuration file being processed.</p>
<p class="function-param"><tt>int <i>linenum</i></tt>:
Line number in configuration file.</p>
<p class="function-param"><tt>char *<i>param</i></tt>:
Parameters to configuration directive.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Handles the
<tt>ServiceUser</tt> option in
<tt>ircservices.conf</tt>.</td>
</tr>
<tr class="function-index" id="signals.c_do_sigsetjmp">
<td class="function-index-name">do_sigsetjmp<br/>&nbsp;&nbsp;&nbsp;(signals.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>void *<i>bufptr</i></tt>:
Pointer to a <tt>sigjmp_buf</tt>.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Initializes the error trap.</td>
</tr>
<tr class="function-index" id="servers.c_do_squit">
<td class="function-index-name">do_squit<br/>&nbsp;&nbsp;&nbsp;(servers.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Processes an
<tt>SQUIT</tt> message from the remote server.</td>
</tr>
<tr class="function-index" id="channels.c_do_topic">
<td class="function-index-name">do_topic<br/>&nbsp;&nbsp;&nbsp;(channels.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Processes a
<tt>TOPIC</tt> message from the remote server.</td>
</tr>
<tr class="function-index" id="init.c_do_Umask">
<td class="function-index-name">do_Umask<br/>&nbsp;&nbsp;&nbsp;(init.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>filename</i></tt>:
Name of configuration file being processed.</p>
<p class="function-param"><tt>int <i>linenum</i></tt>:
Line number in configuration file.</p>
<p class="function-param"><tt>char *<i>param</i></tt>:
Parameters to configuration directive.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Handles the
<tt>Umask</tt> option in
<tt>ircservices.conf</tt>.</td>
</tr>
<tr class="function-index" id="users.c_do_umode">
<td class="function-index-name">do_umode<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Processes a
<tt>MODE</tt> message (for a user target) from the
remote server.</td>
</tr>
<tr class="function-index" id="databases.c_do_unload_module">
<td class="function-index-name">do_unload_module<br/>&nbsp;&nbsp;&nbsp;(databases.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const Module *<i>module</i></tt>:
Module being unloaded.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Callback return value (always 0).</p></td>
<td class="function-index-purpose">Checks that modules being
unloaded have not forgotten to unregister database
tables.</td>
</tr>
<tr class="function-index" id="misc.c_dotime">
<td class="function-index-name">dotime<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>s</i></tt>:
String to process.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Equivalent number of seconds, or -1 if the string
is not a valid time string.</p></td>
<td class="function-index-purpose">Converts a time string
(a string such as "<tt>2d</tt>" or "<tt>1h30m</tt>")
to a number of seconds. Recognized time units are
"<tt>s</tt>" for seconds, "<tt>m</tt>" for minutes,
"<tt>h</tt>" for hours, and "<tt>d</tt>" for days.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="E">
<th class="function-index-letter" colspan="5">E</th>
</tr>
<tr class="function-index" id="signals.c_enable_signals">
<td class="function-index-name">enable_signals<br/>&nbsp;&nbsp;&nbsp;(signals.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Enables processing of
<tt>SIGTERM</tt>/<tt>SIGHUP</tt>/<tt>SIGUSR2</tt>
signals.</td>
</tr>
<tr class="function-index" id="misc.c_encode_base64">
<td class="function-index-name">encode_base64<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const void *<i>in</i></tt>:
Input buffer.</p>
<p class="function-param"><tt>int <i>insize</i></tt>:
Input buffer size.</p>
<p class="function-param"><tt>char *<i>out</i></tt>:
Output buffer, or <tt>NULL</tt> if only the
return value is needed.</p>
<p class="function-param"><tt>int <i>outsize</i></tt>:
Output buffer size (ignored if
<tt><i>out</i></tt> is <tt>NULL</tt>).</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Required output buffer size.</p></td>
<td class="function-index-purpose">Encodes a buffer
containing arbitrary data into a base64 string,
truncated at <tt><i>outsize</i>-1</tt> bytes and
null-terminated.</td>
</tr>
<tr class="function-index" id="encrypt.c_encrypt_password">
<td class="function-index-name">encrypt_password<br/>&nbsp;&nbsp;&nbsp;(encrypt.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>plaintext</i></tt>:
Plaintext password to encrypt.</p>
<p class="function-param"><tt>int <i>len</i></tt>:
Length of password.</p>
<p class="function-param"><tt>Password *<i>password</i></tt>:
Destination <tt>Password</tt> structure.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
0 on success; &gt;0 (required buffer size) if the
destination buffer is too small; -1 on error.</p></td>
<td class="function-index-purpose">Encrypts a password.</td>
</tr>
<tr class="function-index" id="tools_convert-epona.c_epona_load_chan">
<td class="function-index-name">epona_load_chan<br/>&nbsp;&nbsp;&nbsp;(tools/convert-epona.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Epona/Anope
<tt>chan.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-epona.c_epona_load_exception">
<td class="function-index-name">epona_load_exception<br/>&nbsp;&nbsp;&nbsp;(tools/convert-epona.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Epona/Anope
<tt>exception.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-epona.c_epona_load_news">
<td class="function-index-name">epona_load_news<br/>&nbsp;&nbsp;&nbsp;(tools/convert-epona.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Epona/Anope
<tt>news.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-epona.c_epona_load_nick">
<td class="function-index-name">epona_load_nick<br/>&nbsp;&nbsp;&nbsp;(tools/convert-epona.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Epona/Anope
<tt>nick.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-epona.c_epona_load_oper">
<td class="function-index-name">epona_load_oper<br/>&nbsp;&nbsp;&nbsp;(tools/convert-epona.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Epona/Anope
<tt>oper.db</tt> data file.</td>
</tr>
<tr class="function-index" id="language.c_expires_in_lang">
<td class="function-index-name">expires_in_lang<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>buf</i></tt>:
Destination buffer.</p>
<p class="function-param"><tt>int <i>size</i></tt>:
Size of destination buffer in bytes</p>
<p class="function-param"><tt>const NickGroupInfo *<i>ngi</i></tt>:
Nickname group record for user to which
message will be sent, or <tt>NULL</tt> if none.</p>
<p class="function-param"><tt>time_t <i>expires</i></tt>:
Expiration timestamp (0 for no expiration).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Generates a string of the
form "expires in X days/hours/minutes" in the user's
selected language.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="F">
<th class="function-index-letter" colspan="5">F</th>
</tr>
<tr class="function-index" id="log.c_fatal">
<td class="function-index-name">fatal<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
<tt>printf()</tt>-style log message format
string.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Writes a message to the
log file; sends a wallops to the server if
connected; and exits the program.</td>
</tr>
<tr class="function-index" id="log.c_fatal_perror">
<td class="function-index-name">fatal_perror<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
<tt>printf()</tt>-style log message format
string.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Writes a message to the
log file, appending a system error string; sends a
wallops to the server if connected; and exits the
program.</td>
</tr>
<tr class="function-index" id="sockets.c_fill_read_buffer">
<td class="function-index-name">fill_read_buffer<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket whose read buffer should be
filled.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Number of bytes read (nonzero), or -1 on error.</p></td>
<td class="function-index-purpose">Fills the read buffer of
a socket with any pending received data.</td>
</tr>
<tr class="function-index" id="memory.c_fill32">
<td class="function-index-name">fill32<br/>&nbsp;&nbsp;&nbsp;(memory.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>void *<i>ptr</i></tt>:
Address to fill from.</p>
<p class="function-param"><tt>uint32 <i>value</i></tt>:
Value to fill with.</p>
<p class="function-param"><tt>long <i>size</i></tt>:
Size to fill, in bytes.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Internal function to
fill a memory region with a 32-bit value. If the
given size is not a multiple of 4, the last
<tt><i>size</i>%4</tt> bytes are a copy of the
first bytes of the given value as stored in
memory.</td>
</tr>
<tr class="function-index" id="channels.c_find_ban">
<td class="function-index-name">find_ban<br/>&nbsp;&nbsp;&nbsp;(channels.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const Channel *<i>chan</i></tt>:
Channel to search in.</p>
<p class="function-param"><tt>const char *<i>ban</i></tt>:
Ban to search for.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Index of ban in channel's ban list, or -1 if not found.</p></td>
<td class="function-index-purpose">Internal function to
search for a given mask in a channel's ban list.</td>
</tr>
<tr class="function-index" id="modules.c_find_callback">
<td class="function-index-name">find_callback<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Handle of module to search.</p>
<p class="function-param"><tt>const char *<i>name</i></tt>:
Callback name to search for.</p></td>
<td class="function-index-return"><p class="function-param"><tt>CallbackList *</tt>:
Callback function list for the given callback, or
<tt>NULL</tt> if the callback was not found.</p></td>
<td class="function-index-purpose">Looks up a callback name
for a specified module.</td>
</tr>
<tr class="function-index" id="messages.c_find_message">
<td class="function-index-name">find_message<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>name</i></tt>:
Message name to search for.</p></td>
<td class="function-index-return"><p class="function-param"><tt>Message *</tt>:
The <tt>Message</tt> structure for the message, or
<tt>NULL</tt> if the message is not found.</p></td>
<td class="function-index-purpose">Retrieves the handler
for a given IRC message name. If multiple tables
have handlers for the message, the one in the most
recently registered table is used.</td>
</tr>
<tr class="function-index" id="modules.c_find_module">
<td class="function-index-name">find_module<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>modulename</i></tt>:
Name of module to search for.</p></td>
<td class="function-index-return"><p class="function-param"><tt>Module *</tt>:
Module handle, or <tt>NULL</tt> if the given module
is not found.</p></td>
<td class="function-index-purpose">Searches for a loaded
module with the given name and returns its handle.</td>
</tr>
<tr class="function-index" id="channels.c_finish_cumode">
<td class="function-index-name">finish_cumode<br/>&nbsp;&nbsp;&nbsp;(channels.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Mode change message source.</p>
<p class="function-param"><tt>Channel *<i>chan</i></tt>:
Channel on which modes are being changed.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Calls the "<tt>channel
umode change</tt>" callback for each set of
accumulated channel user mode changes.</td>
</tr>
<tr class="function-index" id="channels.c_first_channel">
<td class="function-index-name">first_channel<br/>&nbsp;&nbsp;&nbsp;(channels.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>Channel *</tt>:
The first stored channel record, or <tt>NULL</tt>
if no records exist.</p></td>
<td class="function-index-purpose">Initializes the channel
record iterator, and returns the first
channel record stored in the hash table.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_first_channelinfo">
<td class="function-index-name">first_channelinfo<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>ChannelInfo *</tt>:
The first stored <tt>ChannelInfo</tt> record, or <tt>NULL</tt>
if no records exist.</p></td>
<td class="function-index-purpose">Initializes the
<tt>ChannelInfo</tt> iterator and returns the first
stored <tt>ChannelInfo</tt> record.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_first_maskdata">
<td class="function-index-name">first_maskdata<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>uint8 <i>type</i></tt>:
The <tt>MaskData</tt> type to retrieve.</p></td>
<td class="function-index-return"><p class="function-param"><tt>MaskData *</tt>:
The first stored <tt>MaskData</tt> record of
the given type, or <tt>NULL</tt>
if no records exist.</p></td>
<td class="function-index-purpose">Initializes the
<tt>MaskData</tt> iterator and returns the first
stored <tt>MaskData</tt> record for the given
type. Each type has a separate iterator.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_first_news">
<td class="function-index-name">first_news<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>NewsItem *</tt>:
The first stored <tt>NewsItem</tt> record, or <tt>NULL</tt>
if no records exist.</p></td>
<td class="function-index-purpose">Initializes the
<tt>NewsItem</tt> iterator and returns the first
stored <tt>NewsItem</tt> record.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_first_nickgroupinfo">
<td class="function-index-name">first_nickgroupinfo<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>NickGroupInfo *</tt>:
The first stored <tt>NickGroupInfo</tt> record, or <tt>NULL</tt>
if no records exist.</p></td>
<td class="function-index-purpose">Initializes the
<tt>NickGroupInfo</tt> iterator and returns the first
stored <tt>NickGroupInfo</tt> record.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_first_nickinfo">
<td class="function-index-name">first_nickinfo<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>NickInfo *</tt>:
The first stored <tt>NickInfo</tt> record, or <tt>NULL</tt>
if no records exist.</p></td>
<td class="function-index-purpose">Initializes the
<tt>NickInfo</tt> iterator and returns the first
stored <tt>NickInfo</tt> record.</td>
</tr>
<tr class="function-index" id="servers.c_first_server">
<td class="function-index-name">first_server<br/>&nbsp;&nbsp;&nbsp;(servers.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>Server *</tt>:
The first stored server record, or <tt>NULL</tt> if no
records exist.</p></td>
<td class="function-index-purpose">Initializes the server
record iterator and returns the first
server record stored in the hash table.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_first_serverstats">
<td class="function-index-name">first_serverstats<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>ServerStats *</tt>:
The first stored <tt>ServerStats</tt> record, or <tt>NULL</tt>
if no records exist.</p></td>
<td class="function-index-purpose">Initializes the
<tt>ServerStats</tt> iterator and returns the first
stored <tt>ServerStats</tt> record.</td>
</tr>
<tr class="function-index" id="users.c_first_user">
<td class="function-index-name">first_user<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>User *</tt>:
The first stored user record, or <tt>NULL</tt> if no
records exist.</p></td>
<td class="function-index-purpose">Initializes the user
record iterator and returns the first
user record stored in the hash table.</td>
</tr>
<tr class="function-index" id="actions.c_flush_cmode">
<td class="function-index-name">flush_cmode<br/>&nbsp;&nbsp;&nbsp;(actions.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>struct modedata *<i>md</i></tt>:
Channel mode data to flush.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Called by
<tt>set_cmode()</tt> and related functions to
flush out accumulated mode changes to the network.</td>
</tr>
<tr class="function-index" id="sockets.c_flush_write_buffer">
<td class="function-index-name">flush_write_buffer<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket whose write buffer should be
flushed.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Number of bytes written (possibly zero) on success;
-1 on error; -2 if the socket got disconnected.</p></td>
<td class="function-index-purpose">Tries to flush data from
the given socket's write buffer by sending as much
data as will fit in a single <tt>send()</tt> system
call.</td>
</tr>
<tr class="function-index" id="lang_langcomp.c_fput32">
<td class="function-index-name">fput32<br/>&nbsp;&nbsp;&nbsp;(lang/langcomp.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>long <i>val</i></tt>:
Value to write.</p>
<p class="function-param"><tt>FILE *<i>f</i></tt>:
File to write value to.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
0 on success, -1 on error.</p></td>
<td class="function-index-purpose">Writes a big-endian
32-bit value to a file.</td>
</tr>
<tr class="function-index" id="encrypt.c_free_password">
<td class="function-index-name">free_password<br/>&nbsp;&nbsp;&nbsp;(encrypt.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Password *<i>password</i></tt>:
Password structure to free.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Frees a <tt>Password</tt>
structure allocated with <tt>new_password()</tt>.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="G">
<th class="function-index-letter" colspan="5">G</th>
</tr>
<tr class="function-index" id="log.c_gen_log_filename">
<td class="function-index-name">gen_log_filename<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
Generated log filename.</p></td>
<td class="function-index-purpose">Internal function to
generate the current log file name based on the
format string given in the <tt>LogFilename</tt>
configuration directive.</td>
</tr>
<tr class="function-index" id="channels.c_get_channel">
<td class="function-index-name">get_channel<br/>&nbsp;&nbsp;&nbsp;(channels.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>name</i></tt>:
Name of channel to retrieve.</p></td>
<td class="function-index-return"><p class="function-param"><tt>Channel *</tt>:
The channel's channel record, or <tt>NULL</tt> if the
record is not found.</p></td>
<td class="function-index-purpose">Retrieves the record for
the given channel from the hash table.</td>
</tr>
<tr class="function-index" id="channels.c_get_channel_stats">
<td class="function-index-name">get_channel_stats<br/>&nbsp;&nbsp;&nbsp;(channels.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>long *<i>nrec</i></tt>:
Variable into which the number of channel
records in the hash table is written.</p>
<p class="function-param"><tt>long *<i>memuse</i></tt>:
Variable into which the number of bytes
used by the subsystem is written.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Retrieves memory usage
statistics for the channel management subsystem.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_get_channelinfo">
<td class="function-index-name">get_channelinfo<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>channel</i></tt>:
The name of the channel to look up.</p></td>
<td class="function-index-return"><p class="function-param"><tt>ChannelInfo *</tt>:
The channel's <tt>ChannelInfo</tt> structure, or
<tt>NULL</tt> if the channel is not found.</p></td>
<td class="function-index-purpose">Looks up and returns the
<tt>ChannelInfo</tt> structure corresponding to the
given channel name.</td>
</tr>
<tr class="function-index" id="databases.c_get_dbfield">
<td class="function-index-name">get_dbfield<br/>&nbsp;&nbsp;&nbsp;(databases.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const void *<i>record</i></tt>:
Record to retrieve value from.</p>
<p class="function-param"><tt>const DBField *<i>field</i></tt>:
Field to retrieve value from.</p>
<p class="function-param"><tt>void *<i>buffer</i></tt>:
Buffer to store retrieved value in.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Retrieves the value of a
field in a database record.</td>
</tr>
<tr class="function-index" id="modules.c_get_module_name">
<td class="function-index-name">get_module_name<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const Module *<i>module</i></tt>:
Module handle.</p></td>
<td class="function-index-return"><p class="function-param"><tt>const char *</tt>:
Name of module.</p></td>
<td class="function-index-purpose">Returns the name of the
given module.</td>
</tr>
<tr class="function-index" id="modules.h_get_module_symbol">
<td class="function-index-name">get_module_symbol<br/>&nbsp;&nbsp;&nbsp;(modules.h)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Handle of the module in which symbol is to be
looked up, or <tt>NULL</tt> for any module.</p>
<p class="function-param"><tt>const char *<i>symname</i></tt>:
Symbol to look up.</p></td>
<td class="function-index-return"><p class="function-param"><tt>void *</tt>:
Value of the symbol (usually the address of the
symbol's object), or <tt>NULL</tt> if the symbol is
not found.</p></td>
<td class="function-index-purpose">Looks up a symbol in a
given (or any) module, logging a warning message if
the symbol is not found. (To look up a symbol
whose value may legitimately be <tt>NULL</tt>, use
<a href="#modules.c_check_module_symbol"><tt>check_module_symbol()</tt></a>
instead.)</td>
</tr>
<tr class="function-index" id="modules.c__get_module_symbol">
<td class="function-index-name">_get_module_symbol<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Handle of the module in which symbol is to be
looked up, or <tt>NULL</tt> for any module.</p>
<p class="function-param"><tt>const char *<i>symname</i></tt>:
Symbol to look up.</p>
<p class="function-param"><tt>const Module *<i>caller</i></tt>:
Handle of the calling module.</p></td>
<td class="function-index-return"><p class="function-param"><tt>void *</tt>:
Value of the symbol (usually the address of the
symbol's object), or <tt>NULL</tt> if the symbol is
not found.</p></td>
<td class="function-index-purpose">Implements the
<tt>get_module_symbol()</tt> macro.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_get_nickgroupinfo">
<td class="function-index-name">get_nickgroupinfo<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>uint32 <i>id</i></tt>:
ID value of the nickname group to look
up.</p></td>
<td class="function-index-return"><p class="function-param"><tt>NickGroupInfo *</tt>:
The nickname group's <tt>NickGroupInfo</tt>
structure, or <tt>NULL</tt> if the nickname group
is not found.</p></td>
<td class="function-index-purpose">Looks up and returns the
<tt>NickGroupInfo</tt> structure corresponding to
the given nickname group ID.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_get_nickgroupinfo_by_nick">
<td class="function-index-name">get_nickgroupinfo_by_nick<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>nick</i></tt>:
The nickname to look up.</p></td>
<td class="function-index-return"><p class="function-param"><tt>NickGroupInfo *</tt>:
The <tt>NickGroupInfo</tt> structure of the
nickname group containing the given nickname, or
<tt>NULL</tt> if the nickname is not found or does
not have a nickname group.</p></td>
<td class="function-index-purpose">Looks up and returns the
<tt>NickGroupInfo</tt> structure corresponding to
the nickname group containing the given nickname.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_get_nickinfo">
<td class="function-index-name">get_nickinfo<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>nick</i></tt>:
The nickname to look up.</p></td>
<td class="function-index-return"><p class="function-param"><tt>NickInfo *</tt>:
The nickname's <tt>NickInfo</tt> structure, or
<tt>NULL</tt> if the nickname is not found.</p></td>
<td class="function-index-purpose">Looks up and returns the
<tt>NickInfo</tt> corresponding to the given
nickname.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_get_operserv_data">
<td class="function-index-name">get_operserv_data<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>what</i></tt>:
The type of data to retrieve.</p>
<p class="function-param"><tt>void *<i>ptr</i></tt>:
A pointer to where the data should be
stored.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Success (nonzero) or failure (zero).</p></td>
<td class="function-index-purpose">Retrieves the selected
type of OperServ-related data and stores it at the
address indicated by the given pointer.</td>
</tr>
<tr class="function-index" id="servers.c_get_server">
<td class="function-index-name">get_server<br/>&nbsp;&nbsp;&nbsp;(servers.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>name</i></tt>:
Name of server to retrieve.</p></td>
<td class="function-index-return"><p class="function-param"><tt>Server *</tt>:
The server's server record, or <tt>NULL</tt> if the
record is not found.</p></td>
<td class="function-index-purpose">Retrieves the record for
the given server from the hash table.</td>
</tr>
<tr class="function-index" id="servers.c_get_server_stats">
<td class="function-index-name">get_server_stats<br/>&nbsp;&nbsp;&nbsp;(servers.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>long *<i>nservers</i></tt>:
Variable into which the number of server
records in the hash table is written.</p>
<p class="function-param"><tt>long *<i>memuse</i></tt>:
Variable into which the number of bytes
used by the subsystem is written.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Retrieves memory usage
statistics for the server management subsystem.</td>
</tr>
<tr class="function-index" id="users.c_get_user">
<td class="function-index-name">get_user<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>nick</i></tt>:
Nickname of user to retrieve.</p></td>
<td class="function-index-return"><p class="function-param"><tt>User *</tt>:
The user's user record, or <tt>NULL</tt> if the
record is not found.</p></td>
<td class="function-index-purpose">Retrieves the record for
the given user from the hash table.</td>
</tr>
<tr class="function-index" id="users.c_get_user_stats">
<td class="function-index-name">get_user_stats<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>long *<i>nusers</i></tt>:
Variable into which the number of user
records in the hash table is written.</p>
<p class="function-param"><tt>long *<i>memuse</i></tt>:
Variable into which the number of bytes
used by the subsystem is written.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Retrieves memory usage
statistics for the user management subsystem.</td>
</tr>
<tr class="function-index" id="lang_langcomp.c_readline">
<td class="function-index-name">readline<br/>&nbsp;&nbsp;&nbsp;(lang/langcomp.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>FILE *<i>f</i></tt>:
File to read from.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
Line read in, in a static buffer, or <tt>NULL</tt>
at end of file.</p></td>
<td class="function-index-purpose">Reads in a (non-blank,
non-comment) line of text, and updates the global
line counter <tt>linenum</tt>.</td>
</tr>
<tr class="function-index" id="language.c_getstring">
<td class="function-index-name">getstring<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const NickGroupInfo *<i>ngi</i></tt>:
Nickname group record for user to which
message will be sent, or <tt>NULL</tt> if none.</p>
<p class="function-param"><tt>int <i>index</i></tt>:
String index.</p></td>
<td class="function-index-return"><p class="function-param"><tt>const char *</tt>:
Text string, or <tt>NULL</tt> if the string index
is out of range.</p></td>
<td class="function-index-purpose">Returns the text string
corresponding to the selected string index in the
user's selected language.</td>
</tr>
<tr class="function-index" id="language.c_getstring_lang">
<td class="function-index-name">getstring_lang<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>language</i></tt>:
Language index.</p>
<p class="function-param"><tt>int <i>index</i></tt>:
String index.</p></td>
<td class="function-index-return"><p class="function-param"><tt>const char *</tt>:
Text string, or <tt>NULL</tt> if the string index
is out of range.</p></td>
<td class="function-index-purpose">Returns the text string
corresponding to the selected string index in the
selected language.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="H">
<th class="function-index-letter" colspan="5">H</th>
</tr>
<tr class="function-index" id="language.c_have_language">
<td class="function-index-name">have_language<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>language</i></tt>:
Language index.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the language is available, else zero.</p></td>
<td class="function-index-purpose">Returns whether the
given language is available.</td>
</tr>
<tr class="function-index" id="commands.c_help_cmd">
<td class="function-index-name">help_cmd<br/>&nbsp;&nbsp;&nbsp;(commands.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>service</i></tt>:
Service name (sender name to use for
help messages).</p>
<p class="function-param"><tt>User *<i>u</i></tt>:
Target user.</p>
<p class="function-param"><tt>Module *<i>id</i></tt>:
Command list ID.</p>
<p class="function-param"><tt>char *<i>cmd</i></tt>:
Command name.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sends the given user a
help message for the given command. If the command
is not found or no help messages are specified, a
"help not available" message is sent to the user.</td>
</tr>
<tr class="function-index" id="compat.c_hstrerror">
<td class="function-index-name">hstrerror<br/>&nbsp;&nbsp;&nbsp;(compat.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>h_errnum</i></tt>:
Value of <tt>h_errno</tt>.</p></td>
<td class="function-index-return"><p class="function-param"><tt>const char *</tt>:
String describing the given error number.</p></td>
<td class="function-index-purpose">Compatibility function.</td>
</tr>
<tr class="function-index" id="tools_convert-hybserv.c_hyb_load_chan">
<td class="function-index-name">hyb_load_chan<br/>&nbsp;&nbsp;&nbsp;(tools/convert-hybserv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the HybServ
<tt>chan.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-hybserv.c_hyb_load_memo">
<td class="function-index-name">hyb_load_memo<br/>&nbsp;&nbsp;&nbsp;(tools/convert-hybserv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the HybServ
<tt>memo.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-hybserv.c_hyb_load_nick">
<td class="function-index-name">hyb_load_nick<br/>&nbsp;&nbsp;&nbsp;(tools/convert-hybserv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the HybServ
<tt>nick.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-hybserv.c_hyb_load_stat">
<td class="function-index-name">hyb_load_stat<br/>&nbsp;&nbsp;&nbsp;(tools/convert-hybserv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the HybServ
<tt>stat.db</tt> data file.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="I">
<th class="function-index-letter" colspan="5">I</th>
</tr>
<tr class="function-index" id="ignore.c_ignore_init">
<td class="function-index-name">ignore_init<br/>&nbsp;&nbsp;&nbsp;(ignore.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>User *<i>u</i></tt>:
User to initialize ignore data for.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Initializes the ignore
data for the given user.</td>
</tr>
<tr class="function-index" id="ignore.c_ignore_update">
<td class="function-index-name">ignore_update<br/>&nbsp;&nbsp;&nbsp;(ignore.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>User *<i>u</i></tt>:
User to update ignore data for.</p>
<p class="function-param"><tt>uint32 <i>msec</i></tt>:
Number of milliseconds spent processing the
user's last request.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Updates the ignore value
for the given user. <tt>msec</tt> may be specified
as zero to update the value without adding to it.</td>
</tr>
<tr class="function-index" id="init.c_init">
<td class="function-index-name">init<br/>&nbsp;&nbsp;&nbsp;(init.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>ac</i></tt>:
Argument count, passed from <tt>main()</tt>.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Argument vector, passed from <tt>main()</tt>.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
0 on success, -1 on failure.</p></td>
<td class="function-index-purpose">Performs overall program initialization. Never fails after forking and closing standard file descriptors.</td>
</tr>
<tr class="function-index" id="memory.c_init_memory">
<td class="function-index-name">init_memory<br/>&nbsp;&nbsp;&nbsp;(memory.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Initializes the memory
checking subsystem.</td>
</tr>
<tr class="function-index" id="messages.c_init_message_list">
<td class="function-index-name">init_message_list<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Initializes the internal
message list from the list of registered message
tables.</td>
</tr>
<tr class="function-index" id="encrypt.c_init_password">
<td class="function-index-name">init_password<br/>&nbsp;&nbsp;&nbsp;(encrypt.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Password *<i>password</i></tt>:
<tt>Password</tt> structure to initialize.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Initializes a new
<tt>Password</tt> structure.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_init_password">
<td class="function-index-name">init_password<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Password *<i>password</i></tt>:
<tt>Password</tt> structure to initialize.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Initializes a new
<tt>Password</tt> structure. Analogous to
<tt>init_password()</tt> in <tt>encrypt.c</tt>.</td>
</tr>
<tr class="function-index" id="signals.c_init_signals">
<td class="function-index-name">init_signals<br/>&nbsp;&nbsp;&nbsp;(signals.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Initializes signal
handling.</td>
</tr>
<tr class="function-index" id="modules.c_internal_init_module">
<td class="function-index-name">internal_init_module<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Module handle.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
The module's <tt>init_module()</tt> return value, or
nonzero if the module does not have an
<tt>init_module()</tt> function.</p></td>
<td class="function-index-purpose">Calls the given module's
<tt>init_module()</tt> function.</td>
</tr>
<tr class="function-index" id="modules.c_internal_load_module">
<td class="function-index-name">internal_load_module<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>modulename</i></tt>:
Name of module to load.</p></td>
<td class="function-index-return"><p class="function-param"><tt>Module *</tt>:
Module handle on success, <tt>NULL</tt> on error.</p></td>
<td class="function-index-purpose">Loads the given module
into memory and creates a <tt>Module</tt> structure
for it..</td>
</tr>
<tr class="function-index" id="modules.c_internal_unload_module">
<td class="function-index-name">internal_unload_module<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Handle for module to unload.</p>
<p class="function-param"><tt>int <i>shutdown</i></tt>:
Nonzero if the module is being unloaded due
to Services shutting down, else zero.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Unloads the given
module.</td>
</tr>
<tr class="function-index" id="init.c_introduce_user">
<td class="function-index-name">introduce_user<br/>&nbsp;&nbsp;&nbsp;(init.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>user</i></tt>:
Nickname of pseudoclient to introduce, or
<tt>NULL</tt> to introduce all pseudoclients.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if a pseudoclient was introduced or
<tt><i>user</i></tt> was <tt>NULL</tt>, else zero.</p></td>
<td class="function-index-purpose">Introduces pseudoclients
to the network.</td>
</tr>
<tr class="function-index" id="misc.c_irc_stricmp">
<td class="function-index-name">irc_stricmp<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>s1</i></tt>:
First string.</p>
<p class="function-param"><tt>const char *<i>s2</i></tt>:
Second string.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
The result of a case-insensitive comparison of
<tt><i>s1</i></tt> with <tt><i>s2</i></tt> (-1, 0,
or 1, like <tt>strcmp()</tt>).</p></td>
<td class="function-index-purpose">Compares two strings
case-insensitively, using IRC protocol case
transformation rules.</td>
</tr>
<tr class="function-index" id="misc.c_irc_strnicmp">
<td class="function-index-name">irc_strnicmp<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>s1</i></tt>:
First string.</p>
<p class="function-param"><tt>const char *<i>s2</i></tt>:
Second string.</p>
<p class="function-param"><tt>int <i>max</i></tt>:
Maximum number of characters to compare.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
The result of a case-insensitive comparison of up
to <tt><i>max</i></tt> characters of
<tt><i>s1</i></tt> with <tt><i>s2</i></tt> (-1, 0,
or 1, like <tt>strncmp()</tt>).</p></td>
<td class="function-index-purpose">Compares two strings
case-insensitively, using IRC protocol case
transformation rules.</td>
</tr>
<tr class="function-index" id="misc.c_irc_tolower">
<td class="function-index-name">irc_tolower<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char <i>c</i></tt>:
Character to convert.</p></td>
<td class="function-index-return"><p class="function-param"><tt>unsigned char</tt>:
Converted character.</p></td>
<td class="function-index-purpose">Converts a character to
lowercase, using IRC protocol case transformation
rules.</td>
</tr>
<tr class="function-index" id="tools_convert-ver8.c_ircs_load_gline">
<td class="function-index-name">ircs_load_gline<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ver8.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the IRCS
<tt>gline.db</tt> data file.</td>
</tr>
<tr class="function-index" id="users.c_is_chanop">
<td class="function-index-name">is_chanop<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const User *<i>user</i></tt>:
User to check.</p>
<p class="function-param"><tt>const char *<i>chan</i></tt>:
Channel to check on.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the user is a channel operator on
the given channel, else zero.</p></td>
<td class="function-index-purpose">Returns whether the user
is a channel operator on the given channel.</td>
</tr>
<tr class="function-index" id="main.c_is_data_locked">
<td class="function-index-name">is_data_locked<br/>&nbsp;&nbsp;&nbsp;(main.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
1 if locked, 0 if not, -1 if an error occurred
while checking.</p></td>
<td class="function-index-purpose">Checks whether the data
directory is locked.</td>
</tr>
<tr class="function-index" id="users.c_is_guest_nick">
<td class="function-index-name">is_guest_nick<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>nick</i></tt>:
Nickname to check.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the nickname is a guest nickname, else
zero.</p></td>
<td class="function-index-purpose">Returns whether the
nickname is a guest nickname.</td>
</tr>
<tr class="function-index" id="users.c_is_on_chan">
<td class="function-index-name">is_on_chan<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const User *<i>user</i></tt>:
User to check.</p>
<p class="function-param"><tt>const char *<i>chan</i></tt>:
Channel to check.</p></td>
<td class="function-index-return"><p class="function-param"><tt>Channel *</tt>:
Nonzero if the user is on the given channel,
else zero.</p></td>
<td class="function-index-purpose">Returns whether the user
is on the given channel.</td>
</tr>
<tr class="function-index" id="users.c_is_oper">
<td class="function-index-name">is_oper<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const User *<i>user</i></tt>:
User to check.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the user is an IRC operator, else zero.</p></td>
<td class="function-index-purpose">Returns whether the user
is an IRC operator.</td>
</tr>
<tr class="function-index" id="users.c_is_voiced">
<td class="function-index-name">is_voiced<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const User *<i>user</i></tt>:
User to check.</p>
<p class="function-param"><tt>const char *<i>chan</i></tt>:
Channel to check on.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the user is voiced on the given channel,
else zero.</p></td>
<td class="function-index-purpose">Returns whether the user
is voiced on the given channel.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="J">
<th class="function-index-letter" colspan="5">J</th>
</tr>
<tr class="function-index" id="users.c_join_channel">
<td class="function-index-name">join_channel<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>User *<i>user</i></tt>:
User to join.</p>
<p class="function-param"><tt>const char *<i>channel</i></tt>:
Channel to join to.</p>
<p class="function-param"><tt>int32 <i>modes</i></tt>:
Initial channel user modes for the user.</p></td>
<td class="function-index-return"><p class="function-param"><tt>Channel *</tt>:
Channel record for the channel.</p></td>
<td class="function-index-purpose">Joins a user to a channel,
creating the channel if necessary and updating the
user's list of joined channels.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="K">
<th class="function-index-letter" colspan="5">K</th>
</tr>
<tr class="function-index" id="actions.c_kill_user">
<td class="function-index-name">kill_user<br/>&nbsp;&nbsp;&nbsp;(actions.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Source for the <tt>KILL</tt> message.</p>
<p class="function-param"><tt>const char *<i>user</i></tt>:
Nickname of user to kill.</p>
<p class="function-param"><tt>const char *<i>reason</i></tt>:
Reason to use in the <tt>KILL</tt> message.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sends a <tt>KILL</tt>
message for a user.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="L">
<th class="function-index-letter" colspan="5">L</th>
</tr>
<tr class="function-index" id="language.c_lang_cleanup">
<td class="function-index-name">lang_cleanup<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Performs cleanup actions
for the multilingual support subsystem.</td>
</tr>
<tr class="function-index" id="language.c_lang_init">
<td class="function-index-name">lang_init<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Performs initialization
actions for the multilingual support subsystem.</td>
</tr>
<tr class="function-index" id="tools_convert-sirv.c_load_auspice">
<td class="function-index-name">load_auspice<br/>&nbsp;&nbsp;&nbsp;(tools/convert-sirv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>verbose</i></tt>:
Verbosity flag (nonzero = verbose).</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Number of command-line arguments in
<tt><i>av</i>[]</tt>.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
command-line arguments (excluding arguments
processed by <tt>main()</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads Auspice data files.</td>
</tr>
<tr class="function-index" id="tools_convert-sirv.c_load_bolivia">
<td class="function-index-name">load_bolivia<br/>&nbsp;&nbsp;&nbsp;(tools/convert-sirv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>verbose</i></tt>:
Verbosity flag (nonzero = verbose).</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Number of command-line arguments in
<tt><i>av</i>[]</tt>.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
command-line arguments (excluding arguments
processed by <tt>main()</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads Bolivia data files.</td>
</tr>
<tr class="function-index" id="tools_convert-cygnus.c_load_cygnus">
<td class="function-index-name">load_cygnus<br/>&nbsp;&nbsp;&nbsp;(tools/convert-cygnus.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>verbose</i></tt>:
Verbosity flag (nonzero = verbose).</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Number of command-line arguments in
<tt><i>av</i>[]</tt>.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
command-line arguments (excluding arguments
processed by <tt>main()</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads Cygnus data files.</td>
</tr>
<tr class="function-index" id="tools_convert-ver8.c_load_daylight">
<td class="function-index-name">load_daylight<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ver8.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>verbose</i></tt>:
Verbosity flag (nonzero = verbose).</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Number of command-line arguments in
<tt><i>av</i>[]</tt>.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
command-line arguments (excluding arguments
processed by <tt>main()</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads Daylight data files.</td>
</tr>
<tr class="function-index" id="tools_convert-epona.c_load_epona">
<td class="function-index-name">load_epona<br/>&nbsp;&nbsp;&nbsp;(tools/convert-epona.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>verbose</i></tt>:
Verbosity flag (nonzero = verbose).</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Number of command-line arguments in
<tt><i>av</i>[]</tt>.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
command-line arguments (excluding arguments
processed by <tt>main()</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads Epona data files.</td>
</tr>
<tr class="function-index" id="language.c_load_ext_lang">
<td class="function-index-name">load_ext_lang<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>filename</i></tt>:
Pathname of file to read strings from.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Loads an external
language file.</td>
</tr>
<tr class="function-index" id="tools_convert-hybserv.c_load_hybserv">
<td class="function-index-name">load_hybserv<br/>&nbsp;&nbsp;&nbsp;(tools/convert-hybserv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>verbose</i></tt>:
Verbosity flag (nonzero = verbose).</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Number of command-line arguments in
<tt><i>av</i>[]</tt>.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
command-line arguments (excluding arguments
processed by <tt>main()</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads HybServ data files.</td>
</tr>
<tr class="function-index" id="tools_convert-ver8.c_load_ircs_1_2">
<td class="function-index-name">load_ircs_1_2<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ver8.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>verbose</i></tt>:
Verbosity flag (nonzero = verbose).</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Number of command-line arguments in
<tt><i>av</i>[]</tt>.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
command-line arguments (excluding arguments
processed by <tt>main()</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads IRCS data files.</td>
</tr>
<tr class="function-index" id="language.c_load_lang">
<td class="function-index-name">load_lang<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>index</i></tt>:
Language index.</p>
<p class="function-param"><tt>const char *<i>filename</i></tt>:
Pathname of file to read data from.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads a precompiled
language data file.</td>
</tr>
<tr class="function-index" id="tools_convert-magick.c_load_magick_14b2">
<td class="function-index-name">load_magick_14b2<br/>&nbsp;&nbsp;&nbsp;(tools/convert-magick.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>verbose</i></tt>:
Verbosity flag (nonzero = verbose).</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Number of command-line arguments in
<tt><i>av</i>[]</tt>.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
command-line arguments (excluding arguments
processed by <tt>main()</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads Magick 1.4 data files.</td>
</tr>
<tr class="function-index" id="modules.c_load_module">
<td class="function-index-name">load_module<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>modulename</i></tt>:
Name of module to load.</p></td>
<td class="function-index-return"><p class="function-param"><tt>Module *</tt>:
Module handle on success, <tt>NULL</tt> on error.</p></td>
<td class="function-index-purpose">Loads and initializes
the given module.</td>
</tr>
<tr class="function-index" id="tools_convert-ptlink.c_load_ptlink">
<td class="function-index-name">load_ptlink<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ptlink.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>verbose</i></tt>:
Verbosity flag (nonzero = verbose).</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Number of command-line arguments in
<tt><i>av</i>[]</tt>.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
command-line arguments (excluding arguments
processed by <tt>main()</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads PTlink data files.</td>
</tr>
<tr class="function-index" id="tools_convert-sirv.c_load_sirv">
<td class="function-index-name">load_sirv<br/>&nbsp;&nbsp;&nbsp;(tools/convert-sirv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>verbose</i></tt>:
Verbosity flag (nonzero = verbose).</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Number of command-line arguments in
<tt><i>av</i>[]</tt>.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
command-line arguments (excluding arguments
processed by <tt>main()</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads Sirv data files.</td>
</tr>
<tr class="function-index" id="tools_convert-trircd.c_load_trircd">
<td class="function-index-name">load_trircd<br/>&nbsp;&nbsp;&nbsp;(tools/convert-trircd.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>verbose</i></tt>:
Verbosity flag (nonzero = verbose).</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Number of command-line arguments in
<tt><i>av</i>[]</tt>.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
command-line arguments (excluding arguments
processed by <tt>main()</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads trircd data files.</td>
</tr>
<tr class="function-index" id="tools_convert-magick.c_load_wrecked_1_2">
<td class="function-index-name">load_wrecked_1_2<br/>&nbsp;&nbsp;&nbsp;(tools/convert-magick.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>verbose</i></tt>:
Verbosity flag (nonzero = verbose).</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Number of command-line arguments in
<tt><i>av</i>[]</tt>.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
command-line arguments (excluding arguments
processed by <tt>main()</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads Wrecked 1.2 data files.</td>
</tr>
<tr class="function-index" id="main.c_lock_data">
<td class="function-index-name">lock_data<br/>&nbsp;&nbsp;&nbsp;(main.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Locks the data
directory.</td>
</tr>
<tr class="function-index" id="log.h_log">
<td class="function-index-name">log<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
<tt>printf()</tt>-style log message format
string.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Writes a message to the
log file.</td>
</tr>
<tr class="function-index" id="log.h_log_debug">
<td class="function-index-name">log_debug<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>debuglevel</i></tt>:
Minimum debug level at which to write
message.</p>
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
<tt>printf()</tt>-style log message format
string.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Writes a debug message
to the log file at a certain debug level.</td>
</tr>
<tr class="function-index" id="log.c_log_is_open">
<td class="function-index-name">log_is_open<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if a log file is open.</p></td>
<td class="function-index-purpose">Returns whether a log
file is currently open.</td>
</tr>
<tr class="function-index" id="log.h_log_perror">
<td class="function-index-name">log_perror<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
<tt>printf()</tt>-style log message format
string.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Writes a message to the
log file, appending a system error string.</td>
</tr>
<tr class="function-index" id="log.h_log_perror_debug">
<td class="function-index-name">log_perror_debug<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>debuglevel</i></tt>:
Minimum debug level at which to write
message.</p>
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
<tt>printf()</tt>-style log message format
string.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Writes a debug message
to the log file at a certain debug level, appending
a system error string.</td>
</tr>
<tr class="function-index" id="log.c_logprintf">
<td class="function-index-name">logprintf<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
Format string.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Writes a formatted
string to the log file, like <tt>fprintf()</tt>.</td>
</tr>
<tr class="function-index" id="log.c_logputs">
<td class="function-index-name">logputs<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>str</i></tt>:
String to write.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Writes a string to the
log file, like <tt>fputs()</tt> (no trailing
newline is added).</td>
</tr>
<tr class="function-index" id="commands.c_lookup_cmd">
<td class="function-index-name">lookup_cmd<br/>&nbsp;&nbsp;&nbsp;(commands.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>id</i></tt>:
Command list ID.</p>
<p class="function-param"><tt>const char *<i>name</i></tt>:
Command name.</p></td>
<td class="function-index-return"><p class="function-param"><tt>Command *</tt>:
Command record, or <tt>NULL</tt> if not found.</p></td>
<td class="function-index-purpose">Looks up the command
record for the given command in the given command
list.</td>
</tr>
<tr class="function-index" id="language.c_lookup_language">
<td class="function-index-name">lookup_language<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>name</i></tt>:
Name (identifier string) of language.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Language index, or -1 if not found.</p></td>
<td class="function-index-purpose">Returns the language
index corresponding to a language name such as
"<tt>en_us</tt>".</td>
</tr>
<tr class="function-index" id="language.c_lookup_string">
<td class="function-index-name">lookup_string<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>name</i></tt>:
String identifier.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
String index.</p></td>
<td class="function-index-purpose">Returns the index
corresponding to the given string identifier.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="M">
<th class="function-index-letter" colspan="5">M</th>
</tr>
<tr class="function-index" id="messages.c_m_info">
<td class="function-index-name">m_info<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default handler for the
<tt>INFO</tt> message.</td>
</tr>
<tr class="function-index" id="messages.c_m_join">
<td class="function-index-name">m_join<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default handler for the
<tt>JOIN</tt> message.</td>
</tr>
<tr class="function-index" id="messages.c_m_kick">
<td class="function-index-name">m_kick<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default handler for the
<tt>KICK</tt> message.</td>
</tr>
<tr class="function-index" id="messages.c_m_kill">
<td class="function-index-name">m_kill<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default handler for the
<tt>KILL</tt> message.</td>
</tr>
<tr class="function-index" id="messages.c_m_mode">
<td class="function-index-name">m_mode<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default handler for the
<tt>MODE</tt> message.</td>
</tr>
<tr class="function-index" id="messages.c_m_motd">
<td class="function-index-name">m_motd<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default handler for the
<tt>MOTD</tt> message.</td>
</tr>
<tr class="function-index" id="messages.c_m_nickcoll">
<td class="function-index-name">m_nickcoll<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default handler for the
nickname collision numeric (436).</td>
</tr>
<tr class="function-index" id="messages.c_m_part">
<td class="function-index-name">m_part<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default handler for the
<tt>PART</tt> message.</td>
</tr>
<tr class="function-index" id="messages.c_m_ping">
<td class="function-index-name">m_ping<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default handler for the
<tt>PING</tt> message.</td>
</tr>
<tr class="function-index" id="messages.c_m_privmsg">
<td class="function-index-name">m_privmsg<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default handler for the
<tt>PRIVMSG</tt> message.</td>
</tr>
<tr class="function-index" id="messages.c_m_quit">
<td class="function-index-name">m_quit<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default handler for the
<tt>QUIT</tt> message.</td>
</tr>
<tr class="function-index" id="messages.c_m_server">
<td class="function-index-name">m_server<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default handler for the
<tt>SERVER</tt> message.</td>
</tr>
<tr class="function-index" id="messages.c_m_squit">
<td class="function-index-name">m_squit<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default handler for the
<tt>SQUIT</tt> message.</td>
</tr>
<tr class="function-index" id="messages.c_m_stats">
<td class="function-index-name">m_stats<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default handler for the
<tt>STATS</tt> message.</td>
</tr>
<tr class="function-index" id="messages.c_m_time">
<td class="function-index-name">m_time<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default handler for the
<tt>TIME</tt> message.</td>
</tr>
<tr class="function-index" id="messages.c_m_topic">
<td class="function-index-name">m_topic<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default handler for the
<tt>TOPIC</tt> message.</td>
</tr>
<tr class="function-index" id="messages.c_m_version">
<td class="function-index-name">m_version<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default handler for the
<tt>VERSION</tt> message.</td>
</tr>
<tr class="function-index" id="messages.c_m_whois">
<td class="function-index-name">m_whois<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>source</i></tt>:
Message source.</p>
<p class="function-param"><tt>int <i>ac</i></tt>:
Message parameter count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Message parameter vector.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default handler for the
<tt>WHOIS</tt> message.</td>
</tr>
<tr class="function-index" id="tools_convert-magick.c_m14_load_akill">
<td class="function-index-name">m14_load_akill<br/>&nbsp;&nbsp;&nbsp;(tools/convert-magick.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int32 <i>version</i></tt>:
File format version (5 for Magick 1.4, 6
for Wrecked 1.2).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Magick/Wrecked
<tt>akill.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-magick.c_m14_load_chan">
<td class="function-index-name">m14_load_chan<br/>&nbsp;&nbsp;&nbsp;(tools/convert-magick.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int32 <i>version</i></tt>:
File format version (5 for Magick 1.4, 6
for Wrecked 1.2).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Magick/Wrecked
<tt>chan.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-magick.c_m14_load_clone">
<td class="function-index-name">m14_load_clone<br/>&nbsp;&nbsp;&nbsp;(tools/convert-magick.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int32 <i>version</i></tt>:
File format version (5 for Magick 1.4, 6
for Wrecked 1.2).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Magick/Wrecked
<tt>clone.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-magick.c_m14_load_memo">
<td class="function-index-name">m14_load_memo<br/>&nbsp;&nbsp;&nbsp;(tools/convert-magick.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int32 <i>version</i></tt>:
File format version (5 for Magick 1.4, 6
for Wrecked 1.2).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Magick/Wrecked
<tt>memo.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-magick.c_m14_load_message">
<td class="function-index-name">m14_load_message<br/>&nbsp;&nbsp;&nbsp;(tools/convert-magick.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int32 <i>version</i></tt>:
File format version (5 for Magick 1.4, 6
for Wrecked 1.2).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Magick/Wrecked
<tt>message.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-magick.c_m14_load_nick">
<td class="function-index-name">m14_load_nick<br/>&nbsp;&nbsp;&nbsp;(tools/convert-magick.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int32 <i>version</i></tt>:
File format version (5 for Magick 1.4, 6
for Wrecked 1.2).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Magick/Wrecked
<tt>nick.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-magick.c_m14_load_sop">
<td class="function-index-name">m14_load_sop<br/>&nbsp;&nbsp;&nbsp;(tools/convert-magick.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int32 <i>version</i></tt>:
File format version (5 for Magick 1.4, 6
for Wrecked 1.2).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Magick/Wrecked
<tt>sop.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-magick.c_magick_convert_level">
<td class="function-index-name">magick_convert_level<br/>&nbsp;&nbsp;&nbsp;(tools/convert-magick.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int16 <i>lev</i></tt>:
Old access level.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int16</tt>:
New access level.</p></td>
<td class="function-index-purpose">Converts channel access
levels from values used in Magick 1.4 to values
used in current Services versions.</td>
</tr>
<tr class="function-index" id="main.c_main">
<td class="function-index-name">main<br/>&nbsp;&nbsp;&nbsp;(main.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>ac</i></tt>:
Command-line argument count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Command-line argument vector.</p>
<p class="function-param"><tt>char **<i>envp</i></tt>:
Environment pointer.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Program exit code (0 on success, 1 on failure).</p></td>
<td class="function-index-purpose">Main routine for
<tt>ircservices</tt>.</td>
</tr>
<tr class="function-index" id="lang_langcomp.c_main">
<td class="function-index-name">main<br/>&nbsp;&nbsp;&nbsp;(lang/langcomp.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>ac</i></tt>:
Command-line argument count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Command-line argument vector.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Program exit code (0 on success, 1 on failure).</p></td>
<td class="function-index-purpose">Main routine for
<tt>langcomp</tt>.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_main">
<td class="function-index-name">main<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>ac</i></tt>:
Command-line argument count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Command-line argument vector.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Program exit code (0 on success, 1 on failure).</p></td>
<td class="function-index-purpose">Main routine for
<tt>convert-db</tt>.</td>
</tr>
<tr class="function-index" id="users.c_make_guest_nick">
<td class="function-index-name">make_guest_nick<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
New guest nickname.</p></td>
<td class="function-index-purpose">Generates a new guest nickname.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_makechan">
<td class="function-index-name">makechan<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>name</i></tt>:
Name of channel to create.</p></td>
<td class="function-index-return"><p class="function-param"><tt>ChannelInfo *</tt>:
The newly-created <tt>ChannelInfo</tt>.</p></td>
<td class="function-index-purpose">Creates a new
<tt>ChannelInfo</tt> structure for the given
channel name and adds it to the loaded channel
list. Aborts <tt>convert-db</tt> on failure.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_makenick">
<td class="function-index-name">makenick<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>nick</i></tt>:
Nickname to create.</p>
<p class="function-param"><tt>NickGroupInfo **<i>nickgroup_ret</i></tt>:
Pointer to a variable to receive the
newly-created <tt>NickGroupInfo</tt>
structure; if <tt>NULL</tt>, no nickname
group is created.</p></td>
<td class="function-index-return"><p class="function-param"><tt>NickInfo *</tt>:
The newly-created <tt>NickInfo</tt>.</p></td>
<td class="function-index-purpose">Creates a new
<tt>NickInfo</tt> structure for the given nickname
and adds it to the loaded nickname list. If
<tt><i>nickgroup_ret</i></tt> is not <tt>NULL</tt>,
a nickname group is created for the nickname as
well; otherwise the nickname's group ID is set to
zero.</td>
</tr>
<tr class="function-index" id="language.c_maketime">
<td class="function-index-name">maketime<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const NickGroupInfo *<i>ngi</i></tt>:
Nickname group record for user to which
message will be sent, or <tt>NULL</tt> if none.</p>
<p class="function-param"><tt>time_t <i>time</i></tt>:
Time duration, in seconds.</p>
<p class="function-param"><tt>int <i>flags</i></tt>:
Zero or more <tt>MT_*</tt> flags.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
String describing time duration.</p></td>
<td class="function-index-purpose">Returns a string (like
"5 hours" or "2 minutes, 20 seconds") describing
the given duration of time.</td>
</tr>
<tr class="function-index" id="language.c_mapstring">
<td class="function-index-name">mapstring<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>old</i></tt>:
String index to remap.</p>
<p class="function-param"><tt>int <i>new</i></tt>:
New string index.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Previous mapping (string index) of <tt><i>old</i></tt>.</p></td>
<td class="function-index-purpose">Remaps a string index,
so that requests for string <tt><i>old</i></tt>
return string <tt><i>new</i></tt> instead.</td>
</tr>
<tr class="function-index" id="users.c_match_usermask">
<td class="function-index-name">match_usermask<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>mask</i></tt>:
Mask to match against.</p>
<p class="function-param"><tt>const User *<i>user</i></tt>:
User to check.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the user matches the mask, else zero.</p></td>
<td class="function-index-purpose">Returns whether the user
matches the given user/host wildcard mask. The
fake hostname and IP address are also checked if
available.</td>
</tr>
<tr class="function-index" id="misc.c_match_wild">
<td class="function-index-name">match_wild<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>pattern</i></tt>:
Pattern to match against.</p>
<p class="function-param"><tt>const char *<i>str</i></tt>:
String to check.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the string matches the pattern, else
zero.</p></td>
<td class="function-index-purpose">Checks whether a string
matches a wildcard pattern.</td>
</tr>
<tr class="function-index" id="misc.c_match_wild_nocase">
<td class="function-index-name">match_wild_nocase<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>pattern</i></tt>:
Pattern to match against.</p>
<p class="function-param"><tt>const char *<i>str</i></tt>:
String to check.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the string matches the pattern, else
zero.</p></td>
<td class="function-index-purpose">Checks whether a string
matches a wildcard pattern, case-insensitively.</td>
</tr>
<tr class="function-index" id="memory.c_MCcalloc">
<td class="function-index-name">MCcalloc<br/>&nbsp;&nbsp;&nbsp;(memory.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>long <i>els</i></tt>:
Number of size units to allocate.</p>
<p class="function-param"><tt>long <i>elsize</i></tt>:
Size of a single unit for allocation.</p>
<p class="function-param"><tt>const char *<i>file</i></tt>:
Caller's source file name.</p>
<p class="function-param"><tt>int <i>line</i></tt>:
Caller's source line number.</p></td>
<td class="function-index-return"><p class="function-param"><tt>void *</tt>:
Allocated memory, or <tt>NULL</tt> if allocation
fails.</p></td>
<td class="function-index-purpose">Memory-checking wrapper
for <tt>calloc()</tt>.</td>
</tr>
<tr class="function-index" id="memory.c_MCfree">
<td class="function-index-name">MCfree<br/>&nbsp;&nbsp;&nbsp;(memory.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>void *<i>ptr</i></tt>:
Memory to be released.</p>
<p class="function-param"><tt>const char *<i>file</i></tt>:
Caller's source file name.</p>
<p class="function-param"><tt>int <i>line</i></tt>:
Caller's source line number.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Memory-checking wrapper
for <tt>free()</tt>.</td>
</tr>
<tr class="function-index" id="memory.c_MCmalloc">
<td class="function-index-name">MCmalloc<br/>&nbsp;&nbsp;&nbsp;(memory.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>long <i>size</i></tt>:
Size of memory to allocate, in bytes.</p>
<p class="function-param"><tt>const char *<i>file</i></tt>:
Caller's source file name.</p>
<p class="function-param"><tt>int <i>line</i></tt>:
Caller's source line number.</p></td>
<td class="function-index-return"><p class="function-param"><tt>void *</tt>:
Allocated memory, or <tt>NULL</tt> if allocation
fails.</p></td>
<td class="function-index-purpose">Memory-checking wrapper
for <tt>malloc()</tt>.</td>
</tr>
<tr class="function-index" id="memory.c_MCrealloc">
<td class="function-index-name">MCrealloc<br/>&nbsp;&nbsp;&nbsp;(memory.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>void *<i>oldptr</i></tt>:
Memory to be reallocated.</p>
<p class="function-param"><tt>long <i>newsize</i></tt>:
New size of memory region.</p>
<p class="function-param"><tt>const char *<i>file</i></tt>:
Caller's source file name.</p>
<p class="function-param"><tt>int <i>line</i></tt>:
Caller's source line number.</p></td>
<td class="function-index-return"><p class="function-param"><tt>void *</tt>:
New memory region, or <tt>NULL</tt> if reallocation
fails.</p></td>
<td class="function-index-purpose">Memory-checking wrapper
for <tt>realloc()</tt>.</td>
</tr>
<tr class="function-index" id="memory.c_MCstrdup">
<td class="function-index-name">MCstrdup<br/>&nbsp;&nbsp;&nbsp;(memory.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>s</i></tt>:
String to duplicate.</p>
<p class="function-param"><tt>const char *<i>file</i></tt>:
Caller's source file name.</p>
<p class="function-param"><tt>int <i>line</i></tt>:
Caller's source line number.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
Duplicated string, or <tt>NULL</tt> if duplication
fails.</p></td>
<td class="function-index-purpose">Memory-checking wrapper
for <tt>strdup()</tt>.</td>
</tr>
<tr class="function-index" id="misc.c_merge_args">
<td class="function-index-name">merge_args<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>argc</i></tt>:
Argument count.</p>
<p class="function-param"><tt>char **<i>argv</i></tt>:
Argument array.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
Result string (stored in a static buffer).</p></td>
<td class="function-index-purpose">Joins the given
arguments with spaces to form a single string, and
returns that string.</td>
</tr>
<tr class="function-index" id="messages.c_messages_cleanup">
<td class="function-index-name">messages_cleanup<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Performs cleanup actions
for the message handling subsystem.</td>
</tr>
<tr class="function-index" id="messages.c_messages_init">
<td class="function-index-name">messages_init<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>ac</i></tt>:
Command-line argument count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Command-line argument vector.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Performs initialization
actions for the message handling subsystem.</td>
</tr>
<tr class="function-index" id="modes.c_mode_char_to_flag">
<td class="function-index-name">mode_char_to_flag<br/>&nbsp;&nbsp;&nbsp;(modes.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char <i>c</i></tt>:
Mode character to convert.</p>
<p class="function-param"><tt>int <i>which</i></tt>:
Mode type (<tt>MODE_USER</tt>, etc.)</p></td>
<td class="function-index-return"><p class="function-param"><tt>int32</tt>:
Equivalent mode flag, 0 if the mode character is
not recognized, or <tt>MODE_INVALID</tt> if the
mode character is recognized but has no equivalent
flag.</p></td>
<td class="function-index-purpose">Converts a mode character
to a mode flag value.</td>
</tr>
<tr class="function-index" id="modes.c_mode_char_to_params">
<td class="function-index-name">mode_char_to_params<br/>&nbsp;&nbsp;&nbsp;(modes.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char <i>c</i></tt>:
Mode character.</p>
<p class="function-param"><tt>int <i>which</i></tt>:
Mode type (<tt>MODE_USER</tt>, etc.)</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
The number of parameters used by the mode, or -1 if
the mode is not recognized.</p></td>
<td class="function-index-purpose">Returns the number of
parameters used when adding or removing the mode.
The number of parameters for <tt>+<i>c</i></tt> is
returned in bits 8-15, and the number of parameters
for <tt>-<i>c</i></tt> is returned in bits 0-7.</td>
</tr>
<tr class="function-index" id="modes.c_mode_flag_to_char">
<td class="function-index-name">mode_flag_to_char<br/>&nbsp;&nbsp;&nbsp;(modes.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int32 <i>f</i></tt>:
Mode flag to convert.</p>
<p class="function-param"><tt>int <i>which</i></tt>:
Mode type (<tt>MODE_USER</tt>, etc.)</p></td>
<td class="function-index-return"><p class="function-param"><tt>char</tt>:
Equivalent mode character, or <tt>MODE_INVALID</tt>
if the flag is not recognized.</p></td>
<td class="function-index-purpose">Converts a mode flag
value to a mode character. If more than one flag
bit is set in <tt><i>f</i></tt>, the highest one
(the one with the greatest value) is used.</td>
</tr>
<tr class="function-index" id="modes.c_mode_flags_to_string">
<td class="function-index-name">mode_flags_to_string<br/>&nbsp;&nbsp;&nbsp;(modes.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int32 <i>flags</i></tt>:
Mode flags to convert.</p>
<p class="function-param"><tt>int <i>which</i></tt>:
Mode type (<tt>MODE_USER</tt>, etc.)</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
Equivalent mode string, stored in a static buffer.</p></td>
<td class="function-index-purpose">Converts a set of mode
flags into a string. Unrecognized flags are ignored.</td>
</tr>
<tr class="function-index" id="modes.c_mode_setup">
<td class="function-index-name">mode_setup<br/>&nbsp;&nbsp;&nbsp;(modes.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Initializes internal
tables based on the global <tt>usermodes[]</tt>,
<tt>chanmodes[]</tt>, and <tt>chanusermodes[]</tt>
arrays. Must be called after changing any of the
arrays.</td>
</tr>
<tr class="function-index" id="modes.c_mode_string_to_flags">
<td class="function-index-name">mode_string_to_flags<br/>&nbsp;&nbsp;&nbsp;(modes.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>s</i></tt>:
Mode string to convert.</p>
<p class="function-param"><tt>int <i>which</i></tt>:
Mode type (<tt>MODE_USER</tt>, etc.),
possibly or'd with <tt>MODE_NOERROR</tt>.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int32</tt>:
Equivalent mode flags, or <tt>MODE_INVALID</tt>
or'd with the first invalid character if an invalid
mode character is found.</p></td>
<td class="function-index-purpose">Converts a string of
mode characters to a set of flags. If
<tt>MODE_NOERROR</tt> is specified in the
<tt><i>which</i></tt> parameter, unrecognized mode
characters are ignored.</td>
</tr>
<tr class="function-index" id="log.h_module_log">
<td class="function-index-name">module_log<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
<tt>printf()</tt>-style log message format
string.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Writes a message to the
log file, including the calling module's name. For
use by modules.</td>
</tr>
<tr class="function-index" id="log.h_module_log_debug">
<td class="function-index-name">module_log_debug<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>debuglevel</i></tt>:
Minimum debug level at which to write
message.</p>
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
<tt>printf()</tt>-style log message format
string.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Writes a debug message
to the log file at a certain debug level, including
the calling module's name. For use by modules.</td>
</tr>
<tr class="function-index" id="log.h_module_log_perror">
<td class="function-index-name">module_log_perror<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
<tt>printf()</tt>-style log message format
string.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Writes a message to the
log file, appending a system error string and
including the calling module's name. For use by
modules.</td>
</tr>
<tr class="function-index" id="log.h_module_log_perror_debug">
<td class="function-index-name">module_log_perror_debug<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>debuglevel</i></tt>:
Minimum debug level at which to write
message.</p>
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
<tt>printf()</tt>-style log message format
string.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Writes a debug message
to the log file at a certain debug level, appending
a system error string and including the calling
module's name. For use by modules.</td>
</tr>
<tr class="function-index" id="modules.c_modules_cleanup">
<td class="function-index-name">modules_cleanup<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Performs cleanup actions
for the module subsystem.</td>
</tr>
<tr class="function-index" id="modules.c_modules_init">
<td class="function-index-name">modules_init<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>ac</i></tt>:
Command-line argument count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Command-line argument vector.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Performs initialization
actions for the module subsystem.</td>
</tr>
<tr class="function-index" id="modules.c_my_dlclose">
<td class="function-index-name">my_dlclose<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>void *<i>handle</i></tt>:
Shared object handle to close.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Closes the given shared
object.</td>
</tr>
<tr class="function-index" id="modules.c_my_dlerror">
<td class="function-index-name">my_dlerror<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>const char *</tt>:
Error message, or <tt>NULL</tt> if no error has
occurred since the last call to
<tt>my_dlerror()</tt>.</p></td>
<td class="function-index-purpose">Returns the error message
for the last error that occurred in a
<tt>my_dlopen()</tt>, <tt>my_dlclose()</tt>, or
<tt>my_dlsym()</tt> call.</td>
</tr>
<tr class="function-index" id="modules.c_my_dlopen">
<td class="function-index-name">my_dlopen<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>name</i></tt>:
Module name.</p></td>
<td class="function-index-return"><p class="function-param"><tt>void *</tt>:
Shared object handle on success, <tt>NULL</tt> on
error.</p></td>
<td class="function-index-purpose">Opens the shared object
corresponding to the given module name.</td>
</tr>
<tr class="function-index" id="modules.c_my_dlsym">
<td class="function-index-name">my_dlsym<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>void *<i>handle</i></tt>:
Shared object handle.</p>
<p class="function-param"><tt>const char *<i>symname</i></tt>:
Name of symbol to look up.</p></td>
<td class="function-index-return"><p class="function-param"><tt>void *</tt>:
Symbol value, or <tt>NULL</tt> on error.</p></td>
<td class="function-index-purpose">Looks up a symbol in a
shared object, returning its value. (As with the
system <tt>dlsym()</tt> call, <tt>NULL</tt> could
mean either an error or a symbol with that value,
and <tt>my_dlerror()</tt> must be used to tell the
difference. See the <tt>dlsym()</tt> documentation
on systems which support it.)</td>
</tr>
<tr class="function-index" id="vsnprintf.c_my_snprintf">
<td class="function-index-name">my_snprintf<br/>&nbsp;&nbsp;&nbsp;(vsnprintf.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>string</i></tt>:
String buffer into which the formatted string is stored.</p>
<p class="function-param"><tt>size_t <i>size</i></tt>:
Size of the buffer, in bytes.</p>
<p class="function-param"><tt>const char *<i>format</i></tt>:
Format string.</p>
<p class="function-param"><tt>...</tt>:
Format arguments.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Number of bytes written to <tt>string</tt>, not
including the trailing null.</p></td>
<td class="function-index-purpose">Writes a formatted
string into a string buffer. No more than
<tt><i>size</i></tt> bytes are written, including
the terminating null character (<tt>'\0'</tt>).
The format arguments are passed as additional
parameters to the function.</td>
</tr>
<tr class="function-index" id="vsnprintf.c_my_vsnprintf">
<td class="function-index-name">my_vsnprintf<br/>&nbsp;&nbsp;&nbsp;(vsnprintf.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>string</i></tt>:
String buffer into which the formatted string is stored.</p>
<p class="function-param"><tt>size_t <i>size</i></tt>:
Size of the buffer, in bytes.</p>
<p class="function-param"><tt>const char *<i>format</i></tt>:
Format string.</p>
<p class="function-param"><tt>va_list <i>args</i></tt>:
Format argument list.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Number of bytes written to <tt>string</tt>, not
including the trailing null.</p></td>
<td class="function-index-purpose">Writes a formatted
string into a string buffer. No more than
<tt><i>size</i></tt> bytes are written, including
the terminating null character (<tt>'\0'</tt>).
The format arguments are passed as a
<tt>va_list</tt>.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="N">
<th class="function-index-letter" colspan="5">N</th>
</tr>
<tr class="function-index" id="commands.c_new_commandlist">
<td class="function-index-name">new_commandlist<br/>&nbsp;&nbsp;&nbsp;(commands.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>id</i></tt>:
ID to associate with new command list.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Creates a new command
list with the specified ID. Fails if a command
list with the same ID already exists.</td>
</tr>
<tr class="function-index" id="encrypt.c_new_password">
<td class="function-index-name">new_password<br/>&nbsp;&nbsp;&nbsp;(encrypt.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>extern Password *</tt>:
New <tt>Password</tt> structure.</p></td>
<td class="function-index-purpose">Allocates and
initializes a new <tt>Password</tt> structure.</td>
</tr>
<tr class="function-index" id="servers.c_new_server">
<td class="function-index-name">new_server<br/>&nbsp;&nbsp;&nbsp;(servers.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>servername</i></tt>:
Server to create a record for.</p></td>
<td class="function-index-return"><p class="function-param"><tt>Server *</tt>:
The new server record.</p></td>
<td class="function-index-purpose">Creates a new server
record for the given server name and adds it to
the hash table.</td>
</tr>
<tr class="function-index" id="users.c_new_user">
<td class="function-index-name">new_user<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>nick</i></tt>:
Nickname to create a record for.</p></td>
<td class="function-index-return"><p class="function-param"><tt>User *</tt>:
The new user record.</p></td>
<td class="function-index-purpose">Creates a new user
record for the given nickname and adds it to the
hash table.</td>
</tr>
<tr class="function-index" id="channels.c_next_channel">
<td class="function-index-name">next_channel<br/>&nbsp;&nbsp;&nbsp;(channels.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>Channel *</tt>:
The next stored channel record, or <tt>NULL</tt>
if no more records exist.</p></td>
<td class="function-index-purpose">Returns the next
channel record stored in the hash table.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_next_channelinfo">
<td class="function-index-name">next_channelinfo<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>ChannelInfo *</tt>:
The next stored <tt>ChannelInfo</tt> record, or <tt>NULL</tt>
if no more records exist.</p></td>
<td class="function-index-purpose">Returns the next stored
<tt>ChannelInfo</tt> record.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_next_maskdata">
<td class="function-index-name">next_maskdata<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>uint8 <i>type</i></tt>:
The <tt>MaskData</tt> type to retrieve.</p></td>
<td class="function-index-return"><p class="function-param"><tt>MaskData *</tt>:
The next stored <tt>MaskData</tt> structure of the
given type, or <tt>NULL</tt>
if no more records exist.</p></td>
<td class="function-index-purpose">Returns the next stored
<tt>MaskData</tt> record of the given type.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_next_news">
<td class="function-index-name">next_news<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>NewsItem *</tt>:
The next stored <tt>NewsItem</tt> record, or <tt>NULL</tt>
if no more records exist.</p></td>
<td class="function-index-purpose">Returns the next stored
<tt>NewsItem</tt> record.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_next_nickgroupinfo">
<td class="function-index-name">next_nickgroupinfo<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>NickGroupInfo *</tt>:
The next stored <tt>NickGroupInfo</tt> record, or <tt>NULL</tt>
if no more records exist.</p></td>
<td class="function-index-purpose">Returns the next stored
<tt>NickGroupInfo</tt> record.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_next_nickinfo">
<td class="function-index-name">next_nickinfo<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>NickInfo *</tt>:
The next stored <tt>NickInfo</tt> record, or <tt>NULL</tt>
if no more records exist.</p></td>
<td class="function-index-purpose">Returns the next stored
<tt>NickInfo</tt> record.</td>
</tr>
<tr class="function-index" id="servers.c_next_server">
<td class="function-index-name">next_server<br/>&nbsp;&nbsp;&nbsp;(servers.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>Server *</tt>:
The next stored server record, or <tt>NULL</tt> if no more
records exist.</p></td>
<td class="function-index-purpose">Returns the next
server record stored in the hash table.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_next_serverstats">
<td class="function-index-name">next_serverstats<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>ServerStats *</tt>:
The next stored <tt>ServerStats</tt> record, or <tt>NULL</tt>
if no more records exist.</p></td>
<td class="function-index-purpose">Returns the next stored
<tt>ServerStats</tt> record.</td>
</tr>
<tr class="function-index" id="tools_convert-hybserv.c_next_token">
<td class="function-index-name">next_token<br/>&nbsp;&nbsp;&nbsp;(tools/convert-hybserv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>s</i></tt>:
String to begin parsing; <tt>NULL</tt> to
continue parsing the last string passed
in.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
The next token in the string, or <tt>NULL</tt> if
no tokens remain.</p></td>
<td class="function-index-purpose">Returns the next token
in a line of a HybServ database. Analogous to
<tt>strtok(<i>s</i>, "&nbsp;\r\n")</tt>, but
handles multiword parameters (parameters with a
leading colon) as well.</td>
</tr>
<tr class="function-index" id="users.c_next_user">
<td class="function-index-name">next_user<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>User *</tt>:
The next stored user record, or <tt>NULL</tt> if no more
records exist.</p></td>
<td class="function-index-purpose">Returns the next
user record stored in the hash table.</td>
</tr>
<tr class="function-index" id="sockets.c_next_wmap">
<td class="function-index-name">next_wmap<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to operate on.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Frees the first entry in
the given socket's write-map list, advancing to the
next one. If the freed entry references a mapped
data block, the data is unmapped.</td>
</tr>
<tr class="function-index" id="send.c_notice">
<td class="function-index-name">notice<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Source name.</p>
<p class="function-param"><tt>const char *<i>dest</i></tt>:
Destination nickname.</p>
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
Format string, as for <tt>printf()</tt>.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sends a <tt>NOTICE</tt>
to the given nickname.</td>
</tr>
<tr class="function-index" id="send.c_notice_all">
<td class="function-index-name">notice_all<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Source name.</p>
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
Format string, as for <tt>printf()</tt>.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sends a <tt>NOTICE</tt>
to all users on the network. Implemented by the
protocol module.</td>
</tr>
<tr class="function-index" id="send.c_notice_help">
<td class="function-index-name">notice_help<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Source name.</p>
<p class="function-param"><tt>const User *<i>dest</i></tt>:
Destination user.</p>
<p class="function-param"><tt>int <i>message</i></tt>:
Language string index of string to send.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sends a <tt>NOTICE</tt>
to the given user, with language translation and
with "<tt>%S</tt>" in the string replaced by the
source nickname.</td>
</tr>
<tr class="function-index" id="send.c_notice_lang">
<td class="function-index-name">notice_lang<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Source name.</p>
<p class="function-param"><tt>const User *<i>dest</i></tt>:
Destination user.</p>
<p class="function-param"><tt>int <i>message</i></tt>:
Language string index of string to send.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sends a <tt>NOTICE</tt>
to the given user, with language translation.</td>
</tr>
<tr class="function-index" id="send.c_notice_list">
<td class="function-index-name">notice_list<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Source name.</p>
<p class="function-param"><tt>const char *<i>dest</i></tt>:
Destination nickname.</p>
<p class="function-param"><tt>const char **<i>text</i></tt>:
Array of strings to send, terminated by
<tt>NULL</tt>.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sends a series of
<tt>NOTICE</tt> messages to the given nickname.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="O">
<th class="function-index-letter" colspan="5">O</th>
</tr>
<tr class="function-index" id="tools_convert-db.c_open_db_ver">
<td class="function-index-name">open_db_ver<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>const char *<i>name</i></tt>:
Filename to open.</p>
<p class="function-param"><tt>int32 <i>min_version</i></tt>:
Minimum acceptable version.</p>
<p class="function-param"><tt>int32 <i>max_version</i></tt>:
Maximum acceptable version.</p>
<p class="function-param"><tt>int32 *<i>version_ret</i></tt>:
Pointer to a variable to receive the
version number read from the file.</p></td>
<td class="function-index-return"><p class="function-param"><tt>dbFILE *</tt>:
Database file pointer for the opened file,
positioned immediately after the read-in version
number.</p></td>
<td class="function-index-purpose">Opens the specified
database file, reads a 32-bit (big-endian) version
number from the file, and verifies that the version
number is within the specified limits. If the file
cannot be opened or the version is outside the
range given, the function prints an error message
and aborts <tt>convert-db</tt>.</td>
</tr>
<tr class="function-index" id="sockets.c_open_listener">
<td class="function-index-name">open_listener<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to use for accepting connections
(must be in an unused state).</p>
<p class="function-param"><tt>const char *<i>host</i></tt>:
Hostname or IP address to accept connections
on, or <tt>NULL</tt> to accept connections
on any address.</p>
<p class="function-param"><tt>int <i>port</i></tt>:
TCP port to accept connections on.</p>
<p class="function-param"><tt>int <i>backlog</i></tt>:
Maximum backlog of unaccepted connections
(passed directly to the <tt>listen()</tt>
system call).</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
0 on success, -1 on error.</p></td>
<td class="function-index-purpose">Sets up a socket for
accepting incoming connections.</td>
</tr>
<tr class="function-index" id="log.c_open_log">
<td class="function-index-name">open_log<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Opens the log file given
by the <tt>LogFilename</tt> configuration
directive.</td>
</tr>
<tr class="function-index" id="log.c_open_memory_log">
<td class="function-index-name">open_memory_log<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero (always succeeds).</p></td>
<td class="function-index-purpose">Opens an in-memory log
file, whose contents will be written to the real
log file when <tt>open_log()</tt> is called.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="P">
<th class="function-index-letter" colspan="5">P</th>
</tr>
<tr class="function-index" id="misc.c_pack_ip">
<td class="function-index-name">pack_ip<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>ipaddr</i></tt>:
IPv4 address string.</p></td>
<td class="function-index-return"><p class="function-param"><tt>uint8 *</tt>:
Packed IPv4 address (stored in a static buffer), or
<tt>NULL</tt> if the string is not a valid IPv4
address.</p></td>
<td class="function-index-purpose">Packs an IPv4 address
string into a binary address.</td>
</tr>
<tr class="function-index" id="misc.c_pack_ip6">
<td class="function-index-name">pack_ip6<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>ipaddr</i></tt>:
IPv6 address string.</p></td>
<td class="function-index-return"><p class="function-param"><tt>uint8 *</tt>:
Packed IPv6 address (stored in a static buffer), or
<tt>NULL</tt> if the string is not a valid IPv6
address.</p></td>
<td class="function-index-purpose">Packs an IPv6 address
string into a binary address.</td>
</tr>
<tr class="function-index" id="conffile.c_parse_config_line">
<td class="function-index-name">parse_config_line<br/>&nbsp;&nbsp;&nbsp;(conffile.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>filename</i></tt>:
Name of file being processed.</p>
<p class="function-param"><tt>int <i>linenum</i></tt>:
Line number in file being processed.</p>
<p class="function-param"><tt>char *<i>buf</i></tt>:
Line to process.</p>
<p class="function-param"><tt>ConfigDirective *<i>directives</i></tt>:
Configuration directive array.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Parse and process a
single line of a configuration file.</td>
</tr>
<tr class="function-index" id="init.c_parse_options">
<td class="function-index-name">parse_options<br/>&nbsp;&nbsp;&nbsp;(init.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>ac</i></tt>:
Argument count, from <tt>main()</tt>.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Argument vector, from <tt>main()</tt>.</p>
<p class="function-param"><tt>int <i>call_modules</i></tt>:
Indicates whether to process basic options
or module options.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
-1 on option error; 0 on success; 1 to indicate that
the program should exit (successfully).</p></td>
<td class="function-index-purpose">Parses and processes
command-line options. If <tt><i>call_modules</i></tt> is
zero, basic options (those handled by Services itself) are
processed, and unrecognized options are ignored; if nonzero,
basic options are ignored and other options are passed to
modules via the "<tt>command line</tt>" callback, with
unrecognized options resulting in an error. Note that if
the "<tt>-h</tt>" or "<tt>--help</tt>" options are found,
the program will be terminated with <tt>exit(0)</tt> after
a usage message is printed to standard error.</td>
</tr>
<tr class="function-index" id="users.c_part_all_channels">
<td class="function-index-name">part_all_channels<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>User *<i>user</i></tt>:
User parting channels.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Parts the user from
all joined channels.</td>
</tr>
<tr class="function-index" id="users.c_part_channel">
<td class="function-index-name">part_channel<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>User *<i>user</i></tt>:
Parting user.</p>
<p class="function-param"><tt>const char *<i>channel</i></tt>:
Channel to be parted.</p>
<p class="function-param"><tt>int <i>callback</i></tt>:
ID of callback to call on parting.</p>
<p class="function-param"><tt>const char *<i>param</i></tt>:
Third parameter to pass to callback.</p>
<p class="function-param"><tt>const char *<i>source</i></tt>:
Message source.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the user was in the channel, else zero.</p></td>
<td class="function-index-purpose">Parts a user from a channel.</td>
</tr>
<tr class="function-index" id="users.c_part_channel_uc">
<td class="function-index-name">part_channel_uc<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>User *<i>user</i></tt>:
Parting user.</p>
<p class="function-param"><tt>struct u_chanlist *<i>uc</i></tt>:
Record in user's joined channel list
indicating channel to be parted</p>
<p class="function-param"><tt>int <i>callback</i></tt>:
ID of callback to call on parting.</p>
<p class="function-param"><tt>const char *<i>param</i></tt>:
Third parameter to pass to callback.</p>
<p class="function-param"><tt>const char *<i>source</i></tt>:
Message source.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Parts a user from a
channel, given the <tt>struct u_chanlist</tt> entry
in the user record for the channel.</td>
</tr>
<tr class="function-index" id="vsnprintf.c__pfmt">
<td class="function-index-name">_pfmt<br/>&nbsp;&nbsp;&nbsp;(vsnprintf.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>format</i></tt>:
Format string.</p>
<p class="function-param"><tt>va_list <i>args</i></tt>:
Format argument list.</p>
<p class="function-param"><tt>_pfmt_writefunc_t <i>writefunc</i></tt>:
Function to write characters with.</p>
<p class="function-param"><tt>void *<i>arg1</i></tt>:
Third argument to <tt>writefunc()</tt>.</p>
<p class="function-param"><tt>void *<i>arg2</i></tt>:
Fourth argument to <tt>writefunc()</tt>.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Number of bytes written.</p></td>
<td class="function-index-purpose">Performs <tt>printf()</tt>-style formatting, using the given function to write the resulting string.</td>
</tr>
<tr class="function-index" id="actions.c_possibly_remove_mode">
<td class="function-index-name">possibly_remove_mode<br/>&nbsp;&nbsp;&nbsp;(actions.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>struct modedata *<i>md</i></tt>:
Channel mode data being modified.</p>
<p class="function-param"><tt>char <i>mode</i></tt>:
Mode character to possibly remove.</p>
<p class="function-param"><tt>const char *<i>user</i></tt>:
User to match against, for channel user modes.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Called by
<tt>set_cmode()</tt> to remove a mode change
cancelled by a later change, if such a change
exists. For example, if "<tt>-ov Nick1 Nick2</tt>"
has been accumulated and "<tt>+o Nick1</tt>" is
set, "<tt>-o Nick1</tt>" will be removed, leaving
"<tt>-v Nick2</tt>".</td>
</tr>
<tr class="function-index" id="send.c_privmsg">
<td class="function-index-name">privmsg<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Source name.</p>
<p class="function-param"><tt>const char *<i>dest</i></tt>:
Destination nickname.</p>
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
Format string, as for <tt>printf()</tt>.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sends a <tt>PRIVMSG</tt>
to the given nickname.</td>
</tr>
<tr class="function-index" id="process.c_process">
<td class="function-index-name">process<br/>&nbsp;&nbsp;&nbsp;(process.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Processes the message
stored in the global variable <tt>inbuf</tt>.</td>
</tr>
<tr class="function-index" id="process.c_process_cleanup">
<td class="function-index-name">process_cleanup<br/>&nbsp;&nbsp;&nbsp;(process.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Performs cleanup actions
for the message processing code.</td>
</tr>
<tr class="function-index" id="process.c_process_init">
<td class="function-index-name">process_init<br/>&nbsp;&nbsp;&nbsp;(process.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>ac</i></tt>:
Command-line argument count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Command-line argument vector.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Performs initialization
actions for the message processing code.</td>
</tr>
<tr class="function-index" id="misc.c_process_numlist">
<td class="function-index-name">process_numlist<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>numstr</i></tt>:
Number list to process.</p>
<p class="function-param"><tt>int *<i>count_ret</i></tt>:
Variable to receive the number of times the
callback was called, or <tt>NULL</tt> if
not needed.</p>
<p class="function-param"><tt>range_callback_t <i>callback</i></tt>:
The function to call for each value.</p>
<p class="function-param"><tt>User *<i>u</i></tt>:
A <tt>User</tt> parameter to pass to the
callback function.</p>
<p class="function-param"><tt>...</tt>:
Additional parameters to the callback
function.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Sum of all values returned from the callback
function.</p></td>
<td class="function-index-purpose">Processes a list of
numbers, calling the specified function for each
value contained in the list. Aborts processing if
the callback function returns -1.</td>
</tr>
<tr class="function-index" id="tools_convert-ptlink.c_ptlink_load_akill">
<td class="function-index-name">ptlink_load_akill<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ptlink.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the PTlink
<tt>akill.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-ptlink.c_ptlink_load_chan">
<td class="function-index-name">ptlink_load_chan<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ptlink.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the PTlink
<tt>chan.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-ptlink.c_ptlink_load_news">
<td class="function-index-name">ptlink_load_news<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ptlink.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the PTlink
<tt>news.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-ptlink.c_ptlink_load_nick">
<td class="function-index-name">ptlink_load_nick<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ptlink.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the PTlink
<tt>nick.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-ptlink.c_ptlink_load_oper">
<td class="function-index-name">ptlink_load_oper<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ptlink.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the PTlink
<tt>oper.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-ptlink.c_ptlink_load_sqline">
<td class="function-index-name">ptlink_load_sqline<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ptlink.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the PTlink
<tt>sqline.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-ptlink.c_ptlink_load_sxline">
<td class="function-index-name">ptlink_load_sxline<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ptlink.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the PTlink
<tt>sxline.db</tt> data file.</td>
</tr>
<tr class="function-index" id="databases.c_put_dbfield">
<td class="function-index-name">put_dbfield<br/>&nbsp;&nbsp;&nbsp;(databases.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>void *<i>record</i></tt>:
Record to store value into.</p>
<p class="function-param"><tt>const DBField *<i>field</i></tt>:
Field to store value into.</p>
<p class="function-param"><tt>const void *<i>value</i></tt>:
Buffer containing value to store.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Stores a value into a
field in a database record.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="Q">
<th class="function-index-letter" colspan="5">Q</th>
</tr>
<tr class="function-index" id="users.c_quit_user">
<td class="function-index-name">quit_user<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>User *<i>user</i></tt>:
Quitting user.</p>
<p class="function-param"><tt>const char *<i>quitmsg</i></tt>:
User's quit message.</p>
<p class="function-param"><tt>int <i>is_kill</i></tt>:
Nonzero if the quit is due to a klll,
else zero.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Handles a disconnecting
user, whether due to <tt>QUIT</tt> or <tt>KILL</tt>.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="R">
<th class="function-index-letter" colspan="5">R</th>
</tr>
<tr class="function-index" id="sockets.c_read_buffer_len">
<td class="function-index-name">read_buffer_len<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const Socket *<i>s</i></tt>:
Socket.</p></td>
<td class="function-index-return"><p class="function-param"><tt>uint32</tt>:
Number of bytes in the socket's read buffer.</p></td>
<td class="function-index-purpose">Returns the length of
the data in the socket's read buffer.</td>
</tr>
<tr class="function-index" id="init.c_read_config">
<td class="function-index-name">read_config<br/>&nbsp;&nbsp;&nbsp;(init.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Reads in the core
configuration file and performs sanity checks on
the configuration settings.</td>
</tr>
<tr class="function-index" id="conffile.c_read_config_file">
<td class="function-index-name">read_config_file<br/>&nbsp;&nbsp;&nbsp;(conffile.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>modulename</i></tt>:
Name of module to process, or <tt>NULL</tt>
when handling core configuration directives.</p>
<p class="function-param"><tt>ConfigDirective *<i>directives</i></tt>:
Configuration directive array.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Read in configuration data.</td>
</tr>
<tr class="function-index" id="lang_langcomp.c_read_index_file">
<td class="function-index-name">read_index_file<br/>&nbsp;&nbsp;&nbsp;(lang/langcomp.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
0 on success, -1 on failure.</p></td>
<td class="function-index-purpose">Reads in the list of
strings from the <tt>index</tt> file.</td>
</tr>
<tr class="function-index" id="language.c_read_int32">
<td class="function-index-name">read_int32<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int32 *<i>ptr</i></tt>:
Pointer in which to store read value.</p>
<p class="function-param"><tt>FILE *<i>f</i></tt>:
File to read value from.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
0 on success, -1 on error.</p></td>
<td class="function-index-purpose">Internal helper function
to read a big-endian <tt>int32</tt> value from a
file.</td>
</tr>
<tr class="function-index" id="language.c_read_uint32">
<td class="function-index-name">read_uint32<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>uint32 *<i>ptr</i></tt>:
Pointer in which to store read value.</p>
<p class="function-param"><tt>FILE *<i>f</i></tt>:
File to read value from.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
0 on success, -1 on error.</p></td>
<td class="function-index-purpose">Internal helper function
to read a big-endian <tt>uint32</tt> value from a
file.</td>
</tr>
<tr class="function-index" id="main.c_readfirstline_callback">
<td class="function-index-name">readfirstline_callback<br/>&nbsp;&nbsp;&nbsp;(main.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket on which data is available.</p>
<p class="function-param"><tt>void *<i>param_unused</i></tt>:
Parameter (unused).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Reads and processes the
first line from the server socket.</td>
</tr>
<tr class="function-index" id="main.c_readline_callback">
<td class="function-index-name">readline_callback<br/>&nbsp;&nbsp;&nbsp;(main.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket on which data is available.</p>
<p class="function-param"><tt>void *<i>param_unused</i></tt>:
Parameter (unused).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Reads and processes the
second and subsequent lines from the server
socket.</td>
</tr>
<tr class="function-index" id="sockets.c_reclaim_buffer_space">
<td class="function-index-name">reclaim_buffer_space<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if some buffer space was reclaimed, else
zero.</p></td>
<td class="function-index-purpose">Attempts to reclaim
resources from all sockets' buffers by shrinking
the buffers to the minimum size necessary to hold
all buffered data.</td>
</tr>
<tr class="function-index" id="sockets.c_reclaim_buffer_space_one">
<td class="function-index-name">reclaim_buffer_space_one<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to operate on.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if buffer space was reclaimed from the
socket, else zero.</p></td>
<td class="function-index-purpose">Attempts to reclaim
resources from the given socket's buffers by
shrinking the buffers to the minimum size necessary
to hold all buffered data.</td>
</tr>
<tr class="function-index" id="init.c_reconfigure">
<td class="function-index-name">reconfigure<br/>&nbsp;&nbsp;&nbsp;(init.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Rereads the
configuration files.</td>
</tr>
<tr class="function-index" id="modules.c_reconfigure_modules">
<td class="function-index-name">reconfigure_modules<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Performs reconfiguration
actions for all modules. If the function fails, no
modules' configurations will have been modified.</td>
</tr>
<tr class="function-index" id="servers.c_recursive_squit">
<td class="function-index-name">recursive_squit<br/>&nbsp;&nbsp;&nbsp;(servers.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Server *<i>parent</i></tt>:
The server whose child servers should be deleted.</p>
<p class="function-param"><tt>const char *<i>reason</i></tt>:
The <tt>SQUIT</tt> reason string.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Recursively deletes all
child servers of a quitting server.</td>
</tr>
<tr class="function-index" id="modules.h_register_callback">
<td class="function-index-name">register_callback<br/>&nbsp;&nbsp;&nbsp;(modules.h)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>name</i></tt>:
Name for the new callback.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Callback ID (nonnegative) on success, -1 on
failure.</p></td>
<td class="function-index-purpose">Registers a new callback
for the calling module.</td>
</tr>
<tr class="function-index" id="modules.c__register_callback">
<td class="function-index-name">_register_callback<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Handle of the calling module.</p>
<p class="function-param"><tt>const char *<i>name</i></tt>:
Name for the new callback.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Callback ID (nonnegative) on success, -1 on
failure.</p></td>
<td class="function-index-purpose">Implements the
<tt>register_callback()</tt> macro.</td>
</tr>
<tr class="function-index" id="encrypt.c_register_cipher">
<td class="function-index-name">register_cipher<br/>&nbsp;&nbsp;&nbsp;(encrypt.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>CipherInfo *<i>ci</i></tt>:
Cipher to register.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Registers an encryption
cipher.</td>
</tr>
<tr class="function-index" id="commands.c_register_commands">
<td class="function-index-name">register_commands<br/>&nbsp;&nbsp;&nbsp;(commands.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>id</i></tt>:
Command list ID.</p>
<p class="function-param"><tt>Command *<i>array</i></tt>:
Array of commands to register, terminated
by an entry with <tt>.name==NULL</tt>.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Registers an array of
commands with the given command list.</td>
</tr>
<tr class="function-index" id="databases.c_register_dbmodule">
<td class="function-index-name">register_dbmodule<br/>&nbsp;&nbsp;&nbsp;(databases.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>DBModule *<i>module</i></tt>:
Module description structure.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Registers a database
module with the core interface.</td>
</tr>
<tr class="function-index" id="databases.c_register_dbtable">
<td class="function-index-name">register_dbtable<br/>&nbsp;&nbsp;&nbsp;(databases.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>DBTable *<i>table</i></tt>:
Data table to register.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Registers a database
table, and loads the table's contents from
persistent storage.</td>
</tr>
<tr class="function-index" id="messages.c_register_messages">
<td class="function-index-name">register_messages<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Message *<i>table</i></tt>:
Message table to register.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Registers a new message
table.</td>
</tr>
<tr class="function-index" id="modules.h_remove_callback">
<td class="function-index-name">remove_callback<br/>&nbsp;&nbsp;&nbsp;(modules.h)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Handle of the module for the callback, or
<tt>NULL</tt> for a core callback.</p>
<p class="function-param"><tt>const char *<i>name</i></tt>:
Callback name.</p>
<p class="function-param"><tt>callback_t <i>callback</i></tt>:
Callback function to remove.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Removes a callback
function from the specified callback in the
specified module.</td>
</tr>
<tr class="function-index" id="modules.c__remove_callback">
<td class="function-index-name">_remove_callback<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Handle of the module for the callback, or
<tt>NULL</tt> for a core callback.</p>
<p class="function-param"><tt>const char *<i>name</i></tt>:
Callback name.</p>
<p class="function-param"><tt>callback_t <i>callback</i></tt>:
Callback function to remove.</p>
<p class="function-param"><tt>const Module *<i>caller</i></tt>:
Handle of the calling module.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Implements the
<tt>remove_callback()</tt> macro.</td>
</tr>
<tr class="function-index" id="init.c_remove_pidfile">
<td class="function-index-name">remove_pidfile<br/>&nbsp;&nbsp;&nbsp;(init.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Removes the file
containing the PID of the Services process.</td>
</tr>
<tr class="function-index" id="log.c_reopen_log">
<td class="function-index-name">reopen_log<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Closes and immediately
reopens the log file.</td>
</tr>
<tr class="function-index" id="language.c_reset_ext_lang">
<td class="function-index-name">reset_ext_lang<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Resets all modifications
made to the default language strings.</td>
</tr>
<tr class="function-index" id="sockets.c_resize_buf">
<td class="function-index-name">resize_buf<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char **<i>p_buf</i></tt>:
Pointer to the socket's <tt>rbuf</tt> or
<tt>wbuf</tt> field.</p>
<p class="function-param"><tt>char **<i>p_ptr</i></tt>:
Pointer to the socket's <tt>rptr</tt> or
<tt>wptr</tt> field.</p>
<p class="function-param"><tt>char **<i>p_end</i></tt>:
Pointer to the socket's <tt>rend</tt> or
<tt>wend</tt> field.</p>
<p class="function-param"><tt>char **<i>p_top</i></tt>:
Pointer to the socket's <tt>rtop</tt> or
<tt>wtop</tt> field.</p>
<p class="function-param"><tt>uint32 <i>newsize</i></tt>:
New size of the buffer, in bytes. Must be
no smaller than the size necessary to hold
all data currently in the buffer.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Resizes a socket's read
or write buffer (as determined by the socket field
references) to the given size.</td>
</tr>
<tr class="function-index" id="sockets.c_resize_how_much">
<td class="function-index-name">resize_how_much<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const Socket *<i>s</i></tt>:
Socket whose read or write buffer is to be
expanded.</p>
<p class="function-param"><tt>uint32 <i>current_size</i></tt>:
Current size of the buffer to be expanded.</p>
<p class="function-param"><tt>int *<i>errp</i></tt>:
On failure, set to 1 if the per-connection
buffer size limit would be exceeded, or 0 if
the total buffer size limit would be
exceeded.</p></td>
<td class="function-index-return"><p class="function-param"><tt>uint32</tt>:
Amount by which the buffer should be expanded, or
zero if attempting to expand the buffer would
exceed either the per-connection or total buffer
size limit.</p></td>
<td class="function-index-purpose">Determines the size by
which a socket's buffer should be expanded, given
the buffer's current size.</td>
</tr>
<tr class="function-index" id="sockets.c_resize_rbuf">
<td class="function-index-name">resize_rbuf<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket whose read buffer is to be resized.</p>
<p class="function-param"><tt>uint32 <i>size</i></tt>:
New size for the read buffer. Must be no
smaller than the size necessary to hold the
data currently in the read buffer.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Resizes a socket's read
buffer.</td>
</tr>
<tr class="function-index" id="sockets.c_resize_wbuf">
<td class="function-index-name">resize_wbuf<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket whose write buffer is to be resized.</p>
<p class="function-param"><tt>uint32 <i>size</i></tt>:
New size for the write buffer. Must be no
smaller than the size necessary to hold the
data currently in the write buffer.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Resizes a socket's write
buffer.</td>
</tr>
<tr class="function-index" id="commands.c_run_cmd">
<td class="function-index-name">run_cmd<br/>&nbsp;&nbsp;&nbsp;(commands.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>service</i></tt>:
Service name (sender name to use for
error messages).</p>
<p class="function-param"><tt>User *<i>u</i></tt>:
User executing the command.</p>
<p class="function-param"><tt>Module *<i>id</i></tt>:
Command list ID.</p>
<p class="function-param"><tt>const char *<i>cmd</i></tt>:
Command name.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Runs the routine for the
given command, sending an error message to the user
if the command is not found or the user does not
have appropriate privileges.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="S">
<th class="function-index-letter" colspan="5">S</th>
</tr>
<tr class="function-index" id="tools_convert-db.c_sanity_check_channels">
<td class="function-index-name">sanity_check_channels<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Checks for and corrects
inconsistencies in channel data.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_sanity_check_maskdata">
<td class="function-index-name">sanity_check_maskdata<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Checks for and corrects
inconsistencies in <tt>MaskData</tt> records.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_sanity_check_nickgroups">
<td class="function-index-name">sanity_check_nickgroups<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Checks for and corrects
inconsistencies in nickname group data.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_sanity_check_nicks">
<td class="function-index-name">sanity_check_nicks<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Checks for and corrects
inconsistencies in nickname data.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_sanity_checks">
<td class="function-index-name">sanity_checks<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Performs sanity checks
on data loaded from files, and corrects data as
necessary..</td>
</tr>
<tr class="function-index" id="databases.c_save_all_dbtables">
<td class="function-index-name">save_all_dbtables<br/>&nbsp;&nbsp;&nbsp;(databases.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
1 if all tables were successfully saved (or no
are registered), 0 if some tables failed but some
succeeded, -1 if all tables failed.</p></td>
<td class="function-index-purpose">Saves all registered
database tables to persistent storage.</td>
</tr>
<tr class="function-index" id="main.c_save_data_now">
<td class="function-index-name">save_data_now<br/>&nbsp;&nbsp;&nbsp;(main.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Saves the databases to
persistent storage.</td>
</tr>
<tr class="function-index" id="memory.c_scalloc">
<td class="function-index-name">scalloc<br/>&nbsp;&nbsp;&nbsp;(memory.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>long <i>els</i></tt>:
Number of size units to allocate.</p>
<p class="function-param"><tt>long <i>elsize</i></tt>:
Size of a single unit for allocation.</p></td>
<td class="function-index-return"><p class="function-param"><tt>void *</tt>:
Allocated memory.</p></td>
<td class="function-index-purpose">Allocates
<tt><i>els</i>*<i>elsize</i></tt> bytes of cleared
memory using <tt>calloc()</tt>. Raises an
out-of-memory signal if the allocation fails.</td>
</tr>
<tr class="function-index" id="tools_convert-db.h_scalloc">
<td class="function-index-name">scalloc<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.h)</td>
<td class="function-index-params">
<p class="function-param"><tt>long <i>els</i></tt>:
Number of size units to allocate.</p>
<p class="function-param"><tt>long <i>elsize</i></tt>:
Size of a single unit for allocation.</p></td>
<td class="function-index-return"><p class="function-param"><tt>void *</tt>:
Allocated memory.</p></td>
<td class="function-index-purpose">Allocates
<tt><i>els</i>*<i>elsize</i></tt> bytes of cleared
memory using <tt>calloc()</tt>. Aborts
<tt>convert-db</tt> if the allocation fails.</td>
</tr>
<tr class="function-index" id="send.c_send_cleanup">
<td class="function-index-name">send_cleanup<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Performs cleanup actions
for the message sending subsystem.</td>
</tr>
<tr class="function-index" id="send.c_send_cmd">
<td class="function-index-name">send_cmd<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Source name, or <tt>NULL</tt> for none.</p>
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
Message format string, as for <tt>printf()</tt>.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sends a generic message
(command) to the remote server.</td>
</tr>
<tr class="function-index" id="send.c_send_channel_cmd">
<td class="function-index-name">send_channel_cmd<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Source name. Depending on the protocol in
use, this name may or may not be used.</p>
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
Message format string, as for <tt>printf()</tt>.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sends a message that
affects the status of a channel. Implemented by
the protocol module.</td>
</tr>
<tr class="function-index" id="send.c_send_cmode_cmd">
<td class="function-index-name">send_cmode_cmd<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Source name, as for <tt>send_channel_cmd()</tt>.</p>
<p class="function-param"><tt>const char *<i>channel</i></tt>:
Channel name.</p>
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
Message format string (as for <tt>printf()</tt>),
starting with the mode string.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sends a <tt>MODE</tt>
message to change channel modes.</td>
</tr>
<tr class="function-index" id="send.c_send_error">
<td class="function-index-name">send_error<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
Error message format, as for <tt>printf()</tt>.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sends an <tt>ERROR</tt>
message to the remote server, then disconnects from
the server.</td>
</tr>
<tr class="function-index" id="send.c_send_init">
<td class="function-index-name">send_init<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>ac</i></tt>:
Command-line argument count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Command-line argument vector.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Performs initialization
actions for the message sending subsystem.</td>
</tr>
<tr class="function-index" id="send.c_send_namechange">
<td class="function-index-name">send_namechange<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>nick</i></tt>:
Nickname.</p>
<p class="function-param"><tt>const char *<i>newname</i></tt>:
New real name (GECOS).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Changes the "real name"
(GECOS) of a client. Implemented by the protocol
module; this may be a no-op if the protocol does
not support name changing.</td>
</tr>
<tr class="function-index" id="send.c_send_nick">
<td class="function-index-name">send_nick<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>nick</i></tt>:
Nickname.</p>
<p class="function-param"><tt>const char *<i>user</i></tt>:
Username.</p>
<p class="function-param"><tt>const char *<i>host</i></tt>:
Hostname.</p>
<p class="function-param"><tt>const char *<i>server</i></tt>:
Client's server name.</p>
<p class="function-param"><tt>const char *<i>name</i></tt>:
"Real name" (GECOS).</p>
<p class="function-param"><tt>const char *<i>modes</i></tt>:
Initial mode string, or empty if no modes
are to be set.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sends messages necessary
to introduce a new local client to the network.
Implemented by the protocol module.</td>
</tr>
<tr class="function-index" id="send.c_send_nickchange">
<td class="function-index-name">send_nickchange<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>nick</i></tt>:
Nickname to change.</p>
<p class="function-param"><tt>const char *<i>newnick</i></tt>:
New nickname.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Changes the nickname of
a client. Implemented by the protocol module.</td>
</tr>
<tr class="function-index" id="send.c_send_nickchange_remote">
<td class="function-index-name">send_nickchange_remote<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>nick</i></tt>:
Nickname to change.</p>
<p class="function-param"><tt>const char *<i>newnick</i></tt>:
New nickname.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sends a message to
remotely change the nickname of another server's
client. Implemented by the protocol module; this
may be a no-op if the protocol does not support
remote nickname changing.</td>
</tr>
<tr class="function-index" id="send.c_send_pseudo_nick">
<td class="function-index-name">send_pseudo_nick<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>nick</i></tt>:
Nickname.</p>
<p class="function-param"><tt>const char *<i>realname</i></tt>:
"Real name" (GECOS).</p>
<p class="function-param"><tt>int <i>flags</i></tt>:
Operator/invisible flags (<tt>PSEUDO_*</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Introduces a pseudoclient
to the network.</td>
</tr>
<tr class="function-index" id="send.c_send_server">
<td class="function-index-name">send_server<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sends messages to
introduce Services as a server to the network.
Implemented by the protocol module.</td>
</tr>
<tr class="function-index" id="send.c_send_server_remote">
<td class="function-index-name">send_server_remote<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>server</i></tt>:
New server name.</p>
<p class="function-param"><tt>const char *<i>desc</i></tt>:
Description for server.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Introduces a (fake)
remote server to the network. Implemented by the
protocol module.</td>
</tr>
<tr class="function-index" id="timeout.c_send_timeout_list">
<td class="function-index-name">send_timeout_list<br/>&nbsp;&nbsp;&nbsp;(timeout.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>User *<i>u</i></tt>:
Target user.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Debugging function to
send the timeout list as <tt>NOTICE</tt> messages
to a user.</td>
</tr>
<tr class="function-index" id="servers.c_server_cleanup">
<td class="function-index-name">server_cleanup<br/>&nbsp;&nbsp;&nbsp;(servers.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Performs cleanup actions
for the server management subsystem.</td>
</tr>
<tr class="function-index" id="servers.c_server_init">
<td class="function-index-name">server_init<br/>&nbsp;&nbsp;&nbsp;(servers.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>ac</i></tt>:
Command-line argument count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Command-line argument vector.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Performs initialization
actions for the server management subsystem.</td>
</tr>
<tr class="function-index" id="actions.c_set_clear_channel_sender">
<td class="function-index-name">set_clear_channel_sender<br/>&nbsp;&nbsp;&nbsp;(actions.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>newsender</i></tt>:
The new name, <tt>NULL</tt> to use the
server name, or <tt>PTR_INVALID</tt> to
leave the name unchanged.</p></td>
<td class="function-index-return"><p class="function-param"><tt>const char *</tt>:
The old name, or the empty string if no name was
set, in a static buffer.</p></td>
<td class="function-index-purpose">Sets the sender name to
use with messages generated by <tt>clear_channel()</tt>,
or retrieves the name currently in use.</td>
</tr>
<tr class="function-index" id="actions.c_set_cmode">
<td class="function-index-name">set_cmode<br/>&nbsp;&nbsp;&nbsp;(actions.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>sender</i></tt>:
Sender name to use with mode changes, or
<tt>NULL</tt> to flush out mode changes
for the specified channel
(<tt><i>channel</i>==NULL</tt>: all channels)..</p>
<p class="function-param"><tt>Channel *<i>channel</i></tt>:
Channel to operate on.</p>
<p class="function-param"><tt><i>...</i></tt>:
Mode change string, followed by the proper
number of parameters (all as strings).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sets modes on a channel,
accumulating mode changes to minimize the number of
mode change messages sent to the network.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_set_os_priv">
<td class="function-index-name">set_os_priv<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>nick</i></tt>:
Nickname to set privilege level for.</p>
<p class="function-param"><tt>int16 <i>level</i></tt>:
Privilege level to set.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sets the OperServ
privilege level (<tt>NickGroupInfo.os_priv</tt>)
for the specified nickname's group.</td>
</tr>
<tr class="function-index" id="encrypt.c_set_password">
<td class="function-index-name">set_password<br/>&nbsp;&nbsp;&nbsp;(encrypt.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Password *<i>password</i></tt>:
<tt>Password</tt> structure into which data will be stored.</p>
<p class="function-param"><tt>const char <i>password_buf</i>[PASSMAX]</tt>:
Encrypted password buffer.</p>
<p class="function-param"><tt>const char *<i>cipher</i></tt>:
Cipher used to encrypt password (<tt>NULL</tt> if none).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sets the contents of a
<tt>Password</tt> structure to specific values.</td>
</tr>
<tr class="function-index" id="actions.c_set_topic">
<td class="function-index-name">set_topic<br/>&nbsp;&nbsp;&nbsp;(actions.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Sender name to use for <tt>TOPIC</tt> message,
or <tt>NULL</tt> to use the server name.</p>
<p class="function-param"><tt>Channel *<i>c</i></tt>:
Channel to operate on.</p>
<p class="function-param"><tt>const char *<i>topic</i></tt>:
New topic to set.</p>
<p class="function-param"><tt>const char *<i>setter</i></tt>:
Nickname to use for topic setter.</p>
<p class="function-param"><tt>time_t <i>t</i></tt>:
Timestamp to use for topic.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sets the topic on a
channel.</td>
</tr>
<tr class="function-index" id="language.c_setstring">
<td class="function-index-name">setstring<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>language</i></tt>:
Language index.</p>
<p class="function-param"><tt>int <i>index</i></tt>:
String index.</p>
<p class="function-param"><tt>const char *<i>text</i></tt>:
New text for string.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Sets the text for the
given string in the given language.</td>
</tr>
<tr class="function-index" id="sockets.c_sgetc">
<td class="function-index-name">sgetc<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to read from.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
The character read from the socket, or <tt>EOF</tt>
if no data is available.</p></td>
<td class="function-index-purpose">Reads a single character
(byte) from a socket.</td>
</tr>
<tr class="function-index" id="sockets.c_sgets">
<td class="function-index-name">sgets<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>buf</i></tt>:
Buffer into which data is to be read.</p>
<p class="function-param"><tt>int32 <i>len</i></tt>:
Size of buffer.</p>
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to read from.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
<tt><i>buf</i></tt> on success, <tt>NULL</tt> on
failure or when there are no complete lines
available in the read buffer.</p></td>
<td class="function-index-purpose">Reads a line of text
from a socket and stores it in the given buffer.</td>
</tr>
<tr class="function-index" id="sockets.c_sgets2">
<td class="function-index-name">sgets2<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>buf</i></tt>:
Buffer into which data is to be read.</p>
<p class="function-param"><tt>int32 <i>len</i></tt>:
Size of buffer.</p>
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to read from.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
<tt><i>buf</i></tt> on success, <tt>NULL</tt> on
failure or when there are no complete lines
available in the read buffer.</p></td>
<td class="function-index-purpose">Reads a line of text
from a socket, strips any trailing CR, LF, or CRLF,
and stores the line in the given buffer.</td>
</tr>
<tr class="function-index" id="memory.c_show_leaks">
<td class="function-index-name">show_leaks<br/>&nbsp;&nbsp;&nbsp;(memory.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Internal routine to log a notice about any leaked memory.</td>
</tr>
<tr class="function-index" id="signals.c_sighup_handler">
<td class="function-index-name">sighup_handler<br/>&nbsp;&nbsp;&nbsp;(signals.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>sig_unused</i></tt>:
Signal number (unused).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Handler for the
<tt>SIGHUP</tt> signal.</td>
</tr>
<tr class="function-index" id="signals.c_sigterm_handler">
<td class="function-index-name">sigterm_handler<br/>&nbsp;&nbsp;&nbsp;(signals.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>sig_unused</i></tt>:
Signal number (unused).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Handler for the
<tt>SIGTERM</tt> signal.</td>
</tr>
<tr class="function-index" id="signals.c_sigusr2_handler">
<td class="function-index-name">sigusr2_handler<br/>&nbsp;&nbsp;&nbsp;(signals.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>sig_unused</i></tt>:
Signal number (unused)</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Handler for the
<tt>SIGUSR2</tt> signal.</td>
</tr>
<tr class="function-index" id="tools_convert-sirv.c_sirv_load_akill">
<td class="function-index-name">sirv_load_akill<br/>&nbsp;&nbsp;&nbsp;(tools/convert-sirv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>type</i></tt>:
File format type (one of the
<tt>TYPE_*</tt> constants from
<tt>convert-sirv.c</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Sirv/Auspice/Bolivia
<tt>akill.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-sirv.c_sirv_load_chan">
<td class="function-index-name">sirv_load_chan<br/>&nbsp;&nbsp;&nbsp;(tools/convert-sirv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>type</i></tt>:
File format type (one of the
<tt>TYPE_*</tt> constants from
<tt>convert-sirv.c</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Sirv/Auspice/Bolivia
<tt>chan.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-sirv.c_sirv_load_memo">
<td class="function-index-name">sirv_load_memo<br/>&nbsp;&nbsp;&nbsp;(tools/convert-sirv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>type</i></tt>:
File format type (one of the
<tt>TYPE_*</tt> constants from
<tt>convert-sirv.c</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Sirv/Auspice/Bolivia
<tt>memo.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-sirv.c_sirv_load_nick">
<td class="function-index-name">sirv_load_nick<br/>&nbsp;&nbsp;&nbsp;(tools/convert-sirv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>type</i></tt>:
File format type (one of the
<tt>TYPE_*</tt> constants from
<tt>convert-sirv.c</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Sirv/Auspice/Bolivia
<tt>nick.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-sirv.c_sirv_load_os_sa">
<td class="function-index-name">sirv_load_os_sa<br/>&nbsp;&nbsp;&nbsp;(tools/convert-sirv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Sirv
<tt>os_sa.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-sirv.c_sirv_load_os_sop">
<td class="function-index-name">sirv_load_os_sop<br/>&nbsp;&nbsp;&nbsp;(tools/convert-sirv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Sirv
<tt>os_sop.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-sirv.c_sirv_load_trigger">
<td class="function-index-name">sirv_load_trigger<br/>&nbsp;&nbsp;&nbsp;(tools/convert-sirv.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>type</i></tt>:
File format type (one of the
<tt>TYPE_*</tt> constants from
<tt>convert-sirv.c</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Sirv/Auspice/Bolivia
<tt>trigger.db</tt> data file.</td>
</tr>
<tr class="function-index" id="memory.c_smalloc">
<td class="function-index-name">smalloc<br/>&nbsp;&nbsp;&nbsp;(memory.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>long <i>size</i></tt>:
Size of memory to allocate, in bytes.</p></td>
<td class="function-index-return"><p class="function-param"><tt>void *</tt>:
Allocated memory.</p></td>
<td class="function-index-purpose">Allocates memory using
<tt>malloc()</tt>. Raises an out-of-memory signal
if the allocation fails.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_smalloc">
<td class="function-index-name">smalloc<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>long <i>size</i></tt>:
Size of memory to allocate, in bytes.</p></td>
<td class="function-index-return"><p class="function-param"><tt>void *</tt>:
Allocated memory.</p></td>
<td class="function-index-purpose">Allocates memory using
<tt>malloc()</tt>. Aborts <tt>convert-db</tt> if
the allocation fails.</td>
</tr>
<tr class="function-index" id="compat.c_snprintf">
<td class="function-index-name">snprintf<br/>&nbsp;&nbsp;&nbsp;(compat.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>buf</i></tt>:
Buffer to write output into.</p>
<p class="function-param"><tt>size_t <i>len</i></tt>:
Size of buffer.</p>
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
Output format string.</p>
<p class="function-param"><tt>...</tt>:
Output arguments.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Number of bytes written into buffer, excluding
trailing null.</p></td>
<td class="function-index-purpose">Compatibility function.</td>
</tr>
<tr class="function-index" id="sockets.c_sock_bufstat">
<td class="function-index-name">sock_bufstat<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const Socket *<i>s</i></tt>:
Socket to get statistics for. May be
<tt>NULL</tt>.</p>
<p class="function-param"><tt>uint32 *<i>socksize_ret</i></tt>:
Location in which to store the total size
used by the given socket's buffers, in
bytes. May be <tt>NULL</tt>.</p>
<p class="function-param"><tt>uint32 *<i>totalsize_ret</i></tt>:
Location in which to store the total size
used by all sockets' buffers, in bytes.
May be <tt>NULL</tt>.</p>
<p class="function-param"><tt>int *<i>ratio1_ret</i></tt>:
Location in which to store the ratio of the
value stored in <tt>*<i>socksize_ret</i></tt>
to the per-connection buffer size limit
(zero if that limit is not set).</p>
<p class="function-param"><tt>int *<i>ratio2_ret</i></tt>:
Location in which to store the ratio of the
value stored in <tt>*<i>totalsize_ret</i></tt>
to the total buffer size limit (zero if that
limit is not set).</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
The larger of the two ratios stored in
<tt>*<i>ratio1_ret</i></tt> and
<tt>*<i>ratio2_ret</i></tt>.</p></td>
<td class="function-index-purpose">Return statistics on
socket buffer size usage. Both ratios are
expressed as percentages rounded up to the nearest
integer. If the socket pointer <tt><i>s</i></tt> is
<tt>NULL</tt>, then <tt>*<i>socksize_ret</i></tt> is
left unchanged, and <tt>*<i>ratio1_ret</i></tt> is
set to zero.</td>
</tr>
<tr class="function-index" id="sockets.c_sock_closefd">
<td class="function-index-name">sock_closefd<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
</p>Socket to operate on.</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Closes the file descriptor
associated with the given socket, and resets the
corresponding field in the <tt>Socket</tt>
structure.</td>
</tr>
<tr class="function-index" id="sockets.c_sock_free">
<td class="function-index-name">sock_free<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to free.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Frees all resources used
by the given socket.</td>
</tr>
<tr class="function-index" id="sockets.c_sock_get_blocking">
<td class="function-index-name">sock_get_blocking<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const Socket *<i>s</i></tt>:
Socket to operate on.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
The socket's blocking status.</p></td>
<td class="function-index-purpose">Returns whether the
socket is set to blocking mode (nonzero) or not
(zero).</td>
</tr>
<tr class="function-index" id="sockets.c_sock_isconn">
<td class="function-index-name">sock_isconn<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const Socket *<i>s</i></tt>:
Socket to operate on.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the socket is currently connected, else
zero.</p></td>
<td class="function-index-purpose">Returns whether the socket
is currently connected to a remote host.</td>
</tr>
<tr class="function-index" id="sockets.c_sock_mute">
<td class="function-index-name">sock_mute<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to mute.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Mutes the given socket,
preventing any further actions being taken in
response to socket activity.</td>
</tr>
<tr class="function-index" id="sockets.c_sock_new">
<td class="function-index-name">sock_new<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>Socket *</tt>:
New socket, or <tt>NULL</tt> on error.</p></td>
<td class="function-index-purpose">Creates a new socket.</td>
</tr>
<tr class="function-index" id="sockets.c_sock_remote">
<td class="function-index-name">sock_remote<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const Socket *<i>s</i></tt>:
Socket whose remote address is to be
retrieved.</p>
<p class="function-param"><tt>struct sockaddr *<i>sa</i></tt>:
<tt>sockaddr</tt> structure into which the
address is to be stored.</p>
<p class="function-param"><tt>int *<i>lenptr</i></tt>:
Length pointer, initialized to the size of
the passed-in <tt>sockaddr</tt> structure
and set on return to the size of the data
stored in that structure.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
0 on success, -1 on error.</p></td>
<td class="function-index-purpose">Retrieves the remote
address of the given (connected) socket, similar to
the <tt>getpeername()</tt> system call.</td>
</tr>
<tr class="function-index" id="sockets.c_sock_rwstat">
<td class="function-index-name">sock_rwstat<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const Socket *<i>s</i></tt>:
Socket to retrieve statistics for.</p>
<p class="function-param"><tt>uint64 *<i>read_ret</i></tt>:
Location in which to store the number of
bytes received during the current
connection.</p>
<p class="function-param"><tt>uint64 *<i>written_ret</i></tt>:
Location in which to store the number of
bytes sent during the current
connection.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
0 on success, -1 on error.</p></td>
<td class="function-index-purpose">Returns the amount of
data received and sent over the life of the
socket's current connection.</td>
</tr>
<tr class="function-index" id="sockets.c_sock_set_blocking">
<td class="function-index-name">sock_set_blocking<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to operate on.</p>
<p class="function-param"><tt>int <i>blocking</i></tt>:
New state (nonzero for blocking, zero for
nonblocking).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sets the socket's
blocking/nonblocking state.</td>
</tr>
<tr class="function-index" id="sockets.c_sock_set_buflimits">
<td class="function-index-name">sock_set_buflimits<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>uint32 <i>per_conn</i></tt>:
Maximum number of bytes to use for a single
connection's buffers (zero for unlimited).</p>
<p class="function-param"><tt>uint32 <i>total</i></tt>:
Maximum number of bytes to use for all
connections' buffers (zero for
unlimited).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sets the global buffer
size limits.</td>
</tr>
<tr class="function-index" id="sockets.c_sock_set_rto">
<td class="function-index-name">sock_set_rto<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>msec</i></tt>:
Read timeout, in milliseconds.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sets the global read
timeout (the timeout used when waiting for socket
activity).</td>
</tr>
<tr class="function-index" id="sockets.c_sock_set_wto">
<td class="function-index-name">sock_set_wto<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to operate on.</p>
<p class="function-param"><tt>int <i>seconds</i></tt>:
Write timeout, in seconds.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sets the write timeout
for the given socket.</td>
</tr>
<tr class="function-index" id="sockets.c_sock_setcb">
<td class="function-index-name">sock_setcb<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to operate on.</p>
<p class="function-param"><tt>SocketCallbackID <i>which</i></tt>:
Constant identifying the callback to set.</p>
<p class="function-param"><tt>SocketCallback <i>func</i></tt>:
Callback function for the callback.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sets a callback function
for the given socket.</td>
</tr>
<tr class="function-index" id="sockets.c_sock_unmute">
<td class="function-index-name">sock_unmute<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to unmute.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Unmutes a socket,
allowing socket activity to be processed as usual.</td>
</tr>
<tr class="function-index" id="sockets.c_sockprintf">
<td class="function-index-name">sockprintf<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to write to.</p>
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
Output format string.</p>
<p class="function-param"><tt><i>...</i></tt>:
Output arguments.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Number of bytes written to the socket.</p></td>
<td class="function-index-purpose">Writes a formatted string
to the given socket, like <tt>printf()</tt>.</td>
</tr>
<tr class="function-index" id="process.c_split_buf">
<td class="function-index-name">split_buf<br/>&nbsp;&nbsp;&nbsp;(process.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>buf</i></tt>:
String to split.</p>
<p class="function-param"><tt>char ***<i>argv_ptr</i></tt>:
Pointer to <tt>char&nbsp;**</tt> variable
in which to store field array.</p>
<p class="function-param"><tt>int <i>colon_special</i></tt>:
Nonzero to treat a leading colon on a field
as extending to the end of the line, like
RFC 1459.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Number of fields in the result array.</p></td>
<td class="function-index-purpose">Splits a string into
fields at space characters, optionally treating a
leading colon on a field in the RFC 1459 style.</td>
</tr>
<tr class="function-index" id="users.c_split_usermask">
<td class="function-index-name">split_usermask<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>mask</i></tt>:
Mask to split.</p>
<p class="function-param"><tt>char **<i>nick</i></tt>:
Nickname part of mask, or "<tt>*</tt>" if missing.</p>
<p class="function-param"><tt>char **<i>user</i></tt>:
Username part of mask, or "<tt>*</tt>" if missing.</p>
<p class="function-param"><tt>char **<i>host</i></tt>:
Hostname part of mask, or "<tt>*</tt>" if missing.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Splits a user/host mask
into its consitutuent parts (the original string is
not modified). Each of the return strings is
allocated with <tt>malloc()</tt>.</td>
</tr>
<tr class="function-index" id="sockets.c_sputs">
<td class="function-index-name">sputs<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>str</i></tt>:
String to write.</p>
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to write to.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Number of bytes written, or -1 on error.</p></td>
<td class="function-index-purpose">Writes a string to a
socket.</td>
</tr>
<tr class="function-index" id="servers.c_squit_server">
<td class="function-index-name">squit_server<br/>&nbsp;&nbsp;&nbsp;(servers.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Server *<i>server</i></tt>:
The server to delete.</p>
<p class="function-param"><tt>const char *<i>reason</i></tt>:
The <tt>SQUIT</tt> reason string.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Deletes the given server
and all child servers.</td>
</tr>
<tr class="function-index" id="sockets.c_sread">
<td class="function-index-name">sread<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to read from.</p>
<p class="function-param"><tt>char *<i>buf</i></tt>:
Buffer to read into.</p>
<p class="function-param"><tt>int32 <i>len</i></tt>:
Number of bytes to read.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int32</tt>:
Number of bytes read, or -1 on error.</p></td>
<td class="function-index-purpose">Reads data from the
given socket.</td>
</tr>
<tr class="function-index" id="memory.c_srealloc">
<td class="function-index-name">srealloc<br/>&nbsp;&nbsp;&nbsp;(memory.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>void *<i>oldptr</i></tt>:
Memory to be reallocated.</p>
<p class="function-param"><tt>long <i>newsize</i></tt>:
New size of memory region.</p></td>
<td class="function-index-return"><p class="function-param"><tt>void *</tt>:
New memory region.</p></td>
<td class="function-index-purpose">Reallocates memory using
<tt>realloc()</tt>. Raises an out-of-memory signal
if the allocation fails.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_srealloc">
<td class="function-index-name">srealloc<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>void *<i>ptr</i></tt>:
Memory to be reallocated.</p>
<p class="function-param"><tt>long <i>size</i></tt>:
New size of memory region.</p></td>
<td class="function-index-return"><p class="function-param"><tt>void *</tt>:
New memory region.</p></td>
<td class="function-index-purpose">Reallocates memory using
<tt>realloc()</tt>. Aborts <tt>convert-db</tt> if
the reallocation fails.</td>
</tr>
<tr class="function-index" id="memory.c_sstrdup">
<td class="function-index-name">sstrdup<br/>&nbsp;&nbsp;&nbsp;(memory.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>s</i></tt>:
String to duplicate.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
Duplicated string.</p></td>
<td class="function-index-purpose">Duplicates a string,
like <tt>strdup()</tt>. Raises an out-of-memory
signal if the duplication fails.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_sstrdup">
<td class="function-index-name">sstrdup<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>s</i></tt>:
String to duplicate.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
Duplicated string.</p></td>
<td class="function-index-purpose">Duplicates a string,
like <tt>strdup()</tt>. Aborts <tt>convert-db</tt>
if memory allocation fails.</td>
</tr>
<tr class="function-index" id="extern.h_strbcpy">
<td class="function-index-name">strbcpy<br/>&nbsp;&nbsp;&nbsp;(extern.h)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>d</i></tt>:
Destination buffer.</p>
<p class="function-param"><tt>const char *<i>s</i></tt>:
Source string.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
Destination buffer.</p></td>
<td class="function-index-purpose">A shortcut for copying
a string into a character array of fixed size.
Equivalent to <tt>strscpy(<i>d</i>, <i>s</i>,
sizeof(<i>d</i>))</tt>.</td>
</tr>
<tr class="function-index" id="compat.c_strcspn">
<td class="function-index-name">strcspn<br/>&nbsp;&nbsp;&nbsp;(compat.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>s</i></tt>:
Input string.</p>
<p class="function-param"><tt>const char *<i>reject</i></tt>:
Characters to reject.</p></td>
<td class="function-index-return"><p class="function-param"><tt>size_t</tt>:
Number of characters from the beginning of
<tt><i>s</i></tt> which are not in
<tt><i>reject</i></tt>.</p></td>
<td class="function-index-purpose">Compatibility function.</td>
</tr>
<tr class="function-index" id="compat.c_strdup">
<td class="function-index-name">strdup<br/>&nbsp;&nbsp;&nbsp;(compat.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>s</i></tt>:
String to duplicate</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
Duplicated string, or <tt>NULL</tt> if duplication
fails.</p></td>
<td class="function-index-purpose">Compatibility function.</td>
</tr>
<tr class="function-index" id="compat.c_strerror">
<td class="function-index-name">strerror<br/>&nbsp;&nbsp;&nbsp;(compat.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>errnum</i></tt>:
Value of <tt>errno</tt>.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
String describing the given error number.</p></td>
<td class="function-index-purpose">Compatibility function.</td>
</tr>
<tr class="function-index" id="language.c_strftime_lang">
<td class="function-index-name">strftime_lang<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>buf</i></tt>:
Destination buffer.</p>
<p class="function-param"><tt>int <i>size</i></tt>:
Size of destination buffer in bytes.</p>
<p class="function-param"><tt>const NickGroupInfo *<i>ngi</i></tt>:
Nickname group record for user to which
message will be sent, or <tt>NULL</tt> if none.</p>
<p class="function-param"><tt>int <i>format</i></tt>:
String index for date/time format.</p>
<p class="function-param"><tt>time_t <i>time</i></tt>:
Timestamp to convert.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Length of result string if it fits, else 0 (the
same as <tt>strftime()</tt>).</p></td>
<td class="function-index-purpose">Converts the given
timestamp to a string, according to the given
format string index and the user's selected
language.</td>
</tr>
<tr class="function-index" id="compat.c_stricmp">
<td class="function-index-name">stricmp<br/>&nbsp;&nbsp;&nbsp;(compat.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>s1</i></tt>:
First string.</p>
<p class="function-param"><tt>const char *<i>s2</i></tt>:
Second string.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
The result of a case-insensitive comparison of
<tt><i>s1</i></tt> with <tt><i>s2</i></tt> (-1, 0,
or 1, like <tt>strcmp()</tt>).</p></td>
<td class="function-index-purpose">Compatibility function.</td>
</tr>
<tr class="function-index" id="lang_langcomp.c_stringnum">
<td class="function-index-name">stringnum<br/>&nbsp;&nbsp;&nbsp;(lang/langcomp.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>name</i></tt>:
String name.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
String index.</p></td>
<td class="function-index-purpose">Returns the string index
for a given string name.</td>
</tr>
<tr class="function-index" id="misc.c_stristr">
<td class="function-index-name">stristr<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>s1</i></tt>:
String to search.</p>
<p class="function-param"><tt>const char *<i>s2</i></tt>:
Substring to search for.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
Pointer to the first occurrence of
<tt><i>s2</i></tt> in <tt><i>s1</i></tt>, or
<tt>NULL</tt> if <tt><i>s2</i></tt> is not found in
<tt><i>s1</i></tt>.</p></td>
<td class="function-index-purpose">Searches
case-insensitively for one string inside another.</td>
</tr>
<tr class="function-index" id="misc.c_strlower">
<td class="function-index-name">strlower<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>s</i></tt>:
String to convert.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
Converted string (<tt><i>s</i></tt>).</p></td>
<td class="function-index-purpose">Converts a string to
lowercase.</td>
</tr>
<tr class="function-index" id="misc.c_strmove">
<td class="function-index-name">strmove<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>d</i></tt>:
Destination buffer.</p>
<p class="function-param"><tt>const char *<i>s</i></tt>:
Source string.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
Destination buffer.</p></td>
<td class="function-index-purpose">Copies a string. The
destination buffer and source string may overlap.</td>
</tr>
<tr class="function-index" id="compat.c_strnicmp">
<td class="function-index-name">strnicmp<br/>&nbsp;&nbsp;&nbsp;(compat.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>s1</i></tt>:
First string.</p>
<p class="function-param"><tt>const char *<i>s2</i></tt>:
Second string.</p>
<p class="function-param"><tt>size_t <i>len</i></tt>:
Maximum number of characters to compare.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
The result of a case-insensitive comparison of up
to <tt><i>len</i></tt> characters of
<tt><i>s1</i></tt> with <tt><i>s2</i></tt> (-1, 0,
or 1, like <tt>strncmp()</tt>).</p></td>
<td class="function-index-purpose">Compatibility function.</td>
</tr>
<tr class="function-index" id="misc.c_strnrepl">
<td class="function-index-name">strnrepl<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>s</i></tt>:
String to operate on.</p>
<p class="function-param"><tt>int32 <i>size</i></tt>:
Maximum size of result, including trailing
null.</p>
<p class="function-param"><tt>const char *<i>old</i></tt>:
Substring to replace.</p>
<p class="function-param"><tt>const char *<i>new</i></tt>:
Replacement string.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
String (<tt><i>s</i></tt>).</p></td>
<td class="function-index-purpose">Replaces all occurrences
of <tt><i>old</i></tt> with <tt><i>new</i></tt> in
<tt><i>s</i></tt>, stopping if a replacement would
cause the result to exceed <tt><i>size</i></tt>
bytes.</td>
</tr>
<tr class="function-index" id="misc.c_strscpy">
<td class="function-index-name">strscpy<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>d</i></tt>:
Destination buffer.</p>
<p class="function-param"><tt>const char *<i>s</i></tt>:
Source string.</p>
<p class="function-param"><tt>size_t <i>len</i></tt>:
Destination buffer size.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
Destination buffer.</p></td>
<td class="function-index-purpose">Copies a string up to a
maximum length, like <tt>strncpy()</tt>, except
that the string is always null-terminated, and the
destination buffer is not padded with nulls if the
source string is shorter than <tt><i>len</i>-1</tt>
bytes.</td>
</tr>
<tr class="function-index" id="compat.c_strsignal">
<td class="function-index-name">strsignal<br/>&nbsp;&nbsp;&nbsp;(compat.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>signum</i></tt>:
Signal number.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
String describing the given signal number.</p></td>
<td class="function-index-purpose">Compatibility function.</td>
</tr>
<tr class="function-index" id="compat.c_strspn">
<td class="function-index-name">strspn<br/>&nbsp;&nbsp;&nbsp;(compat.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>s</i></tt>:
Input string.</p>
<p class="function-param"><tt>const char *<i>accept</i></tt>:
Characters to accept.</p></td>
<td class="function-index-return"><p class="function-param"><tt>size_t</tt>:
Number of characters from the beginning of
<tt><i>s</i></tt> which are in
<tt><i>accept</i></tt>.</p></td>
<td class="function-index-purpose">Compatibility function.</td>
</tr>
<tr class="function-index" id="compat.c_strtok">
<td class="function-index-name">strtok<br/>&nbsp;&nbsp;&nbsp;(compat.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>str</i></tt>:
String to tokenize, or <tt>NULL</tt> to
continue tokenizing the current string.</p>
<p class="function-param"><tt>const char *<i>delim</i></tt>:
Token delimiters.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
Pointer to the next token, or <tt>NULL</tt> if
there are no more tokens.</p></td>
<td class="function-index-purpose">Compatibility function.</td>
</tr>
<tr class="function-index" id="misc.c_strtok_remaining">
<td class="function-index-name">strtok_remaining<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
Final token in string, or <tt>NULL</tt> if no
tokens remain.</p></td>
<td class="function-index-purpose">Returns the remainder
of the string currently being processed by
<tt>strtok()</tt>, with any leading or trailing
whitespace stripped.</td>
</tr>
<tr class="function-index" id="misc.c_strtotime">
<td class="function-index-name">strtotime<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>str</i></tt>:
String to convert.</p>
<p class="function-param"><tt>char **<i>endptr</i></tt>:
If not <tt>NULL</tt>, receives a pointer to
the first character after the parsed
value.</p></td>
<td class="function-index-return"><p class="function-param"><tt>time_t</tt>:
The parsed value.</p></td>
<td class="function-index-purpose">Converts a string to a
<tt>time_t</tt> value, assuming base 10. Sets
<tt>errno</tt> to <tt>ERANGE</tt> if the result
overflows a <tt>time_t</tt>.</td>
</tr>
<tr class="function-index" id="misc.c_strupper">
<td class="function-index-name">strupper<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>s</i></tt>:
String to convert.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
Converted string (<tt><i>s</i></tt>)</p></td>
<td class="function-index-purpose">Converts a string to
uppercase.</td>
</tr>
<tr class="function-index" id="sockets.c_swrite">
<td class="function-index-name">swrite<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to write to.</p>
<p class="function-param"><tt>const char *<i>buf</i></tt>:
Buffer to write from.</p>
<p class="function-param"><tt>int32 <i>len</i></tt>:
Number of bytes to write.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int32</tt>:
Number of bytes written, or -1 on error.</p></td>
<td class="function-index-purpose">Writes data to the
given socket.</td>
</tr>
<tr class="function-index" id="sockets.c_swrite_trigger">
<td class="function-index-name">swrite_trigger<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to set a write trigger on.</p>
<p class="function-param"><tt>void *<i>data</i></tt>:
Data to pass to the write trigger callback
function.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
0 on success, -1 on failure.</p></td>
<td class="function-index-purpose"></td>
</tr>
<tr class="function-index" id="sockets.c_swritemap">
<td class="function-index-name">swritemap<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to write to.</p>
<p class="function-param"><tt>const char *<i>buf</i></tt>:
Mapped buffer to write from.</p>
<p class="function-param"><tt>int32 <i>len</i></tt>:
Number of bytes to write.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int32</tt>:
Number of bytes (scheduled to be) written, or -1
on error.</p></td>
<td class="function-index-purpose">Writes data to the given
socket from a mapped buffer. The data is only
scheduled to be written when this function returns,
and the buffer must not be freed by the caller; it
will be automatically unmapped when the data has
been sent to the remote host (or the connection is
closed).</td>
</tr>
<tr class="function-index" id="language.c_syntax_error">
<td class="function-index-name">syntax_error<br/>&nbsp;&nbsp;&nbsp;(language.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>service</i></tt>:
Service name (sender name to use for
<tt>NOTICE</tt> messages).</p>
<p class="function-param"><tt>const User *<i>u</i></tt>:
Target user.</p>
<p class="function-param"><tt>const char *<i>command</i></tt>:
Command name.</p>
<p class="function-param"><tt>int <i>msgnum</i></tt>:
Syntax string index.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sends a "syntax error"
message to a user for a particular command.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="T">
<th class="function-index-letter" colspan="5">T</th>
</tr>
<tr class="function-index" id="misc.c_time_msec">
<td class="function-index-name">time_msec<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>uint32</tt>:
Current time.</p></td>
<td class="function-index-purpose">Returns the current time
in milliseconds, relative to an arbitrary epoch.</td>
</tr>
<tr class="function-index" id="tools_convert-trircd.c_trircd_load_ajoin">
<td class="function-index-name">trircd_load_ajoin<br/>&nbsp;&nbsp;&nbsp;(tools/convert-trircd.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the trircd
<tt>ajoin.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-trircd.c_trircd_load_akill">
<td class="function-index-name">trircd_load_akill<br/>&nbsp;&nbsp;&nbsp;(tools/convert-trircd.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the trircd
<tt>akill.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-trircd.c_trircd_load_cforbid">
<td class="function-index-name">trircd_load_cforbid<br/>&nbsp;&nbsp;&nbsp;(tools/convert-trircd.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the trircd
<tt>cforbid.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-trircd.c_trircd_load_chan">
<td class="function-index-name">trircd_load_chan<br/>&nbsp;&nbsp;&nbsp;(tools/convert-trircd.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the trircd
<tt>chan.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-trircd.c_trircd_load_exception">
<td class="function-index-name">trircd_load_exception<br/>&nbsp;&nbsp;&nbsp;(tools/convert-trircd.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the trircd
<tt>exception.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-trircd.c_trircd_load_exclude">
<td class="function-index-name">trircd_load_exclude<br/>&nbsp;&nbsp;&nbsp;(tools/convert-trircd.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the trircd
<tt>exclude.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-trircd.c_trircd_load_news">
<td class="function-index-name">trircd_load_news<br/>&nbsp;&nbsp;&nbsp;(tools/convert-trircd.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the trircd
<tt>news.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-trircd.c_trircd_load_nick">
<td class="function-index-name">trircd_load_nick<br/>&nbsp;&nbsp;&nbsp;(tools/convert-trircd.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the trircd
<tt>nick.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-trircd.c_trircd_load_oper">
<td class="function-index-name">trircd_load_oper<br/>&nbsp;&nbsp;&nbsp;(tools/convert-trircd.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the trircd
<tt>oper.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-trircd.c_trircd_load_sline">
<td class="function-index-name">trircd_load_sline<br/>&nbsp;&nbsp;&nbsp;(tools/convert-trircd.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>const unsigned char <i>type</i></tt>:
Type of data to load, one of
<tt>MD_SGLINE</tt>, <tt>MD_SQLINE</tt>, or
<tt>MD_SZLINE</tt>.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the trircd
<tt>sgline.db</tt>, <tt>sqline.db</tt>, or
<tt>szline.db</tt> data file, depending on the
value of <tt><i>type</i></tt>.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="U">
<th class="function-index-letter" colspan="5">U</th>
</tr>
<tr class="function-index" id="send.c_unimplemented">
<td class="function-index-name">unimplemented<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Default function for
module-implemented message sending functions
(aborts the program with an error message).</td>
</tr>
<tr class="function-index" id="memory.c_uninit_memory">
<td class="function-index-name">uninit_memory<br/>&nbsp;&nbsp;&nbsp;(memory.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Closes down the memory
checking subsystem.</td>
</tr>
<tr class="function-index" id="modules.c_unload_all_modules">
<td class="function-index-name">unload_all_modules<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Unloads all loaded
modules.</td>
</tr>
<tr class="function-index" id="modules.c_unload_module">
<td class="function-index-name">unload_module<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Handle for module to unload.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on error.</p></td>
<td class="function-index-purpose">Unloads the given
module.</td>
</tr>
<tr class="function-index" id="main.c_unlock_data">
<td class="function-index-name">unlock_data<br/>&nbsp;&nbsp;&nbsp;(main.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
1 on success, 0 on error, -1 if the data directory
was not locked in the first place.</p></td>
<td class="function-index-purpose">Unlocks the data
directory.</td>
</tr>
<tr class="function-index" id="misc.c_unpack_ip">
<td class="function-index-name">unpack_ip<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const uint8 *<i>ip</i></tt>:
Packed IPv4 address.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
IPv4 address string (stored in a static
buffer).</p></td>
<td class="function-index-purpose">Unpacks a binary IPv4
address into an address string.</td>
</tr>
<tr class="function-index" id="misc.c_unpack_ip6">
<td class="function-index-name">unpack_ip6<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const uint8 *<i>ip</i></tt>:
Packed IPv6 address.</p></td>
<td class="function-index-return"><p class="function-param"><tt>char *</tt>:
IPv6 address string (stored in a static
buffer).</p></td>
<td class="function-index-purpose">Unpacks a binary IPv6
address into an address string.</td>
</tr>
<tr class="function-index" id="modules.h_unregister_callback">
<td class="function-index-name">unregister_callback<br/>&nbsp;&nbsp;&nbsp;(modules.h)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>id</i></tt>:
ID of callback to unregister,</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Unregisters the given
callback for the calling module.</td>
</tr>
<tr class="function-index" id="modules.c__unregister_callback">
<td class="function-index-name">_unregister_callback<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Handle of the calling module.</p>
<p class="function-param"><tt>int <i>id</i></tt>:
ID of callback to unregister,</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Implements the
<tt>unregister_callback()</tt> macro.</td>
</tr>
<tr class="function-index" id="encrypt.c_unregister_cipher">
<td class="function-index-name">unregister_cipher<br/>&nbsp;&nbsp;&nbsp;(encrypt.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>CipherInfo *<i>ci</i></tt>:
Cipher to unregister.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Unregisters an
encryption cipher.</td>
</tr>
<tr class="function-index" id="commands.c_unregister_commands">
<td class="function-index-name">unregister_commands<br/>&nbsp;&nbsp;&nbsp;(commands.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>id</i></tt>:
Command list ID.</p>
<p class="function-param"><tt>Command *<i>array</i></tt>:
Array of commands to register, as passed to
<tt>register_commands()</tt>.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Unregisters an array of
commands previously registered with the given
command list.</td>
</tr>
<tr class="function-index" id="databases.c_unregister_dbmodule">
<td class="function-index-name">unregister_dbmodule<br/>&nbsp;&nbsp;&nbsp;(databases.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>DBModule *<i>module</i></tt>:
Module description structure.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Unregisters a database
module from the core interface.</td>
</tr>
<tr class="function-index" id="databases.c_unregister_dbtable">
<td class="function-index-name">unregister_dbtable<br/>&nbsp;&nbsp;&nbsp;(databases.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>DBTable *<i>table</i></tt>:
Data table to unregister.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Unregisters a database
table. The table's contents are not saved to
persistent storage.</td>
</tr>
<tr class="function-index" id="messages.c_unregister_messages">
<td class="function-index-name">unregister_messages<br/>&nbsp;&nbsp;&nbsp;(messages.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Message *<i>table</i></tt>:
Message table to unregister.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the table was found and unregistered,
zero if the table was not found.</p></td>
<td class="function-index-purpose">Unregisters a message
table.</td>
</tr>
<tr class="function-index" id="modules.h_unuse_module">
<td class="function-index-name">unuse_module<br/>&nbsp;&nbsp;&nbsp;(modules.h)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Handle of the module to unlock.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Releases the lock on a
module previously locked with <tt>use_module()</tt>.
<tt>unuse_module()</tt> macro.</td>
</tr>
<tr class="function-index" id="modules.c__unuse_module">
<td class="function-index-name">_unuse_module<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Handle of the module to release.</p>
<p class="function-param"><tt>const Module *<i>caller</i></tt>:
Handle of the calling module.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Implements the
<tt>unuse_module()</tt> macro.</td>
</tr>
<tr class="function-index" id="modules.h_use_module">
<td class="function-index-name">use_module<br/>&nbsp;&nbsp;&nbsp;(modules.h)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Handle of the module to lock.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Locks the given module
into memory, preventing it from being unloaded.</td>
</tr>
<tr class="function-index" id="modules.c__use_module">
<td class="function-index-name">_use_module<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Module *<i>module</i></tt>:
Handle of the module to lock.</p>
<p class="function-param"><tt>const Module *<i>caller</i></tt>:
Handle of the calling module.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Implements the
<tt>use_module()</tt> macro.</td>
</tr>
<tr class="function-index" id="modules.c_use_module_loopcheck">
<td class="function-index-name">use_module_loopcheck<br/>&nbsp;&nbsp;&nbsp;(modules.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const Module *<i>module</i></tt>:
Module intended to be locked.</p>
<p class="function-param"><tt>const Module *<i>check</i></tt>:
Module doing the locking.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if locking the module would cause a cycle
of locks, else zero.</p></td>
<td class="function-index-purpose">Checks whether an
attempt to lock a module with <tt>use_module()</tt>
would result in a cycle of locks, potentially
causing a deadlock.</td>
</tr>
<tr class="function-index" id="tools_convert-db.c_usage">
<td class="function-index-name">usage<br/>&nbsp;&nbsp;&nbsp;(tools/convert-db.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>progname</i></tt>:
Value of <tt>argv[0]</tt>.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Prints a usage message
for <tt>convert-db</tt> and aborts the program.</td>
</tr>
<tr class="function-index" id="users.c_user_cleanup">
<td class="function-index-name">user_cleanup<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Performs cleanup actions
for the user management subsystem.</td>
</tr>
<tr class="function-index" id="users.c_user_init">
<td class="function-index-name">user_init<br/>&nbsp;&nbsp;&nbsp;(users.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>ac</i></tt>:
Command-line argument count.</p>
<p class="function-param"><tt>char **<i>av</i></tt>:
Command-line argument vector.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Performs initialization
actions for the user management subsystem.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="V">
<th class="function-index-letter" colspan="5">V</th>
</tr>
<tr class="function-index" id="misc.c_valid_chan">
<td class="function-index-name">valid_chan<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>str</i></tt>:
String to check.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the string represents a valid channel
name, else zero.</p></td>
<td class="function-index-purpose">Checks whether a string
is a valid channel name.</td>
</tr>
<tr class="function-index" id="misc.c_valid_domain">
<td class="function-index-name">valid_domain<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>str</i></tt>:
String to check.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the string represents a valid domain
name, else zero.</p></td>
<td class="function-index-purpose">Checks whether a string
is a valid domain name by RFC 1035 standards, has
at least one character, and does not end with a
dot.</td>
</tr>
<tr class="function-index" id="misc.c_valid_email">
<td class="function-index-name">valid_email<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>str</i></tt>:
String to check.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the string represents a valid E-mail
address, else zero.</p></td>
<td class="function-index-purpose">Checks whether a string
is a valid E-mail address by (somewhat simplified)
RFC 822 rules. Addresses in which the domain name
contains no dot are rejected.</td>
</tr>
<tr class="function-index" id="misc.c_valid_nick">
<td class="function-index-name">valid_nick<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>str</i></tt>:
String to check.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the string represents a valid nickname,
else zero.</p></td>
<td class="function-index-purpose">Checks whether a string
is a valid nickname.</td>
</tr>
<tr class="function-index" id="misc.c_valid_nickchan">
<td class="function-index-name">valid_nickchan<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>str</i></tt>:
String to check.</p>
<p class="function-param"><tt>const unsigned char *<i>table</i></tt>:
Character validity table to use.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the string represents a valid string,
else zero.</p></td>
<td class="function-index-purpose">Internal function
implementing <tt>valid_nick()</tt> and
<tt>valid_chan()</tt>.</td>
</tr>
<tr class="function-index" id="misc.c_valid_url">
<td class="function-index-name">valid_url<br/>&nbsp;&nbsp;&nbsp;(misc.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>str</i></tt>:
String to check.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero if the string represents a valid URL, else
zero.</p></td>
<td class="function-index-purpose">Checks whether a string
is a valid URL, in the form
<tt><i>method</i>://<i>domain</i>[:<i>port</i>][/...]</tt>
(where <tt><i>method</i></tt> is a sequence of one
or more letters, and <tt><i>port</i></tt> is an
integer between 1 and 65535 inclusive).</td>
</tr>
<tr class="function-index" id="tools_convert-ver8.c_ver8_load_akill">
<td class="function-index-name">ver8_load_akill<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ver8.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>type</i></tt>:
File format type (one of the
<tt>TYPE_*</tt> constants from
<tt>convert-ver8.c</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Daylight/IRCS
<tt>akill.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-ver8.c_ver8_load_chan">
<td class="function-index-name">ver8_load_chan<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ver8.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>type</i></tt>:
File format type (one of the
<tt>TYPE_*</tt> constants from
<tt>convert-ver8.c</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Daylight/IRCS
<tt>chan.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-ver8.c_ver8_load_exception">
<td class="function-index-name">ver8_load_exception<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ver8.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>type</i></tt>:
File format type (one of the
<tt>TYPE_*</tt> constants from
<tt>convert-ver8.c</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Daylight/IRCS
<tt>exception.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-ver8.c_ver8_load_news">
<td class="function-index-name">ver8_load_news<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ver8.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>type</i></tt>:
File format type (one of the
<tt>TYPE_*</tt> constants from
<tt>convert-ver8.c</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Daylight/IRCS
<tt>news.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-ver8.c_ver8_load_nick">
<td class="function-index-name">ver8_load_nick<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ver8.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>type</i></tt>:
File format type (one of the
<tt>TYPE_*</tt> constants from
<tt>convert-ver8.c</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Daylight/IRCS
<tt>nick.db</tt> data file.</td>
</tr>
<tr class="function-index" id="tools_convert-ver8.c_ver8_load_oper">
<td class="function-index-name">ver8_load_oper<br/>&nbsp;&nbsp;&nbsp;(tools/convert-ver8.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>dir</i></tt>:
Directory from which to load data.</p>
<p class="function-param"><tt>int <i>type</i></tt>:
File format type (one of the
<tt>TYPE_*</tt> constants from
<tt>convert-ver8.c</tt>).</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Loads the Daylight/IRCS
<tt>oper.db</tt> data file.</td>
</tr>
<tr class="function-index" id="log.c_vlogprintf">
<td class="function-index-name">vlogprintf<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
Format string.</p>
<p class="function-param"><tt>va_list <i>args</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Writes a formatted
string to the log file, like <tt>vfprintf()</tt>.</td>
</tr>
<tr class="function-index" id="send.c_vsend_cmd">
<td class="function-index-name">vsend_cmd<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Source name, or <tt>NULL</tt> for none.</p>
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
Message format string, as for <tt>printf()</tt>.</p>
<p class="function-param"><tt>va_list <i>args</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sends a generic message
(command) to the remote server.</td>
</tr>
<tr class="function-index" id="compat.c_vsnprintf">
<td class="function-index-name">vsnprintf<br/>&nbsp;&nbsp;&nbsp;(compat.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>char *<i>buf</i></tt>:
Buffer to write output into.</p>
<p class="function-param"><tt>size_t <i>len</i></tt>:
Size of buffer.</p>
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
Output format string.</p>
<p class="function-param"><tt>va_list <i>args</i></tt>:
Output arguments.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Number of bytes written into buffer, excluding
trailing null.</p></td>
<td class="function-index-purpose">Compatibility function.</td>
</tr>
<tr class="function-index" id="sockets.c_vsockprintf">
<td class="function-index-name">vsockprintf<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>Socket *<i>s</i></tt>:
Socket to write to.</p>
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
Output format string.</p>
<p class="function-param"><tt>va_list <i>args</i></tt>:
Output arguments.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Number of bytes written to the socket.</p></td>
<td class="function-index-purpose">Writes a formatted string
to the given socket, like <tt>vprintf()</tt>.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="W">
<th class="function-index-letter" colspan="5">W</th>
</tr>
<tr class="function-index" id="send.c_wallops">
<td class="function-index-name">wallops<br/>&nbsp;&nbsp;&nbsp;(send.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>source</i></tt>:
Source name.</p>
<p class="function-param"><tt>const char *<i>fmt</i></tt>:
Format string, as for <tt>printf()</tt>.</p>
<p class="function-param"><tt><i>...</i></tt>:
Format arguments.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Sends a <tt>WALLOPS</tt>
to the network. Implemented by the protocol module
(which may use a different message type).</td>
</tr>
<tr class="function-index" id="signals.c_weirdsig_handler">
<td class="function-index-name">weirdsig_handler<br/>&nbsp;&nbsp;&nbsp;(signals.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int <i>signum</i></tt>:
Signal number.</p></td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Handler for
<tt>SIGINT</tt>, <tt>SIGQUIT</tt>, and
unexpected signals.</td>
</tr>
<tr class="function-index" id="tools_convert-magick.c_wrecked_convert_level">
<td class="function-index-name">wrecked_convert_level<br/>&nbsp;&nbsp;&nbsp;(tools/convert-magick.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>int16 <i>lev</i></tt>:
Old access level.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int16</tt>:
New access level.</p></td>
<td class="function-index-purpose">Converts channel access
levels from values used in Wrecked 1.2 to values
used in current Services versions.</td>
</tr>
<tr class="function-index" id="init.c_write_pidfile">
<td class="function-index-name">write_pidfile<br/>&nbsp;&nbsp;&nbsp;(init.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Nonzero on success, zero on failure.</p></td>
<td class="function-index-purpose">Writes the PID of the
Services process to the file specified by the
<tt>PIDFilename</tt> configuration directive.</td>
</tr>
<tr class="function-index" id="log.c_write_time">
<td class="function-index-name">write_time<br/>&nbsp;&nbsp;&nbsp;(log.c)</td>
<td class="function-index-params">&mdash;</td>
<td class="function-index-return">&mdash;</td>
<td class="function-index-purpose">Writes the current date
and time to the log file.</td>
</tr>
<tr class="function-index" id="sockets.c_write_buffer_len">
<td class="function-index-name">write_buffer_len<br/>&nbsp;&nbsp;&nbsp;(sockets.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const Socket *<i>s</i></tt>:
Socket.</p></td>
<td class="function-index-return"><p class="function-param"><tt>uint32</tt>:
Number of bytes in the socket's write buffer.</p></td>
<td class="function-index-purpose">Returns the length of
the data in the socket's write buffer.</td>
</tr>
<tr class="function-index" id="vsnprintf.c_writefunc">
<td class="function-index-name">writefunc<br/>&nbsp;&nbsp;&nbsp;(vsnprintf.c)</td>
<td class="function-index-params">
<p class="function-param"><tt>const char *<i>buf</i></tt>:
Data to write.</p>
<p class="function-param"><tt>size_t <i>len</i></tt>:
Length of data to write.</p>
<p class="function-param"><tt>char **<i>string</i></tt>:
Pointer to destination buffer pointer.</p>
<p class="function-param"><tt>size_t *<i>size</i></tt>:
Pointer to destination buffer size.</p></td>
<td class="function-index-return"><p class="function-param"><tt>int</tt>:
Number of bytes written, or 0 on error.</p></td>
<td class="function-index-purpose">Write callback for
<tt>my_snprintf()</tt> and <tt>my_vsnprintf()</tt>.
Modifies the destination buffer pointer and size
to reflect the space left after each write.</td>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="X">
<th class="function-index-letter" colspan="5">X</th>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="Y">
<th class="function-index-letter" colspan="5">Y</th>
</tr>
<!--============================================================-->
<tr class="function-index-letter" id="Z">
<th class="function-index-letter" colspan="5">Z</th>
</tr>
</table>
<!------------------------------------------------------------------------>
<hr/>
<p class="backlink"><a href="index.html">Table of Contents</a></p>
</body>
</html>