The routines described in this manual page are part of the InterNetNews library, libinn(3). They are
used to send commands to a running innd daemon on the local host. The letters "ICC" stand for Innd
Control Command.
The ICCopen function creates a Unix-domain datagram socket and binds it to the server's control socket,
if such sockets are supported. Otherwise, it creates a named pipe for communicating with the server. It
returns "-1" on failure or "0" on success. This routine must be called before any other routine.
The ICCclose function closes any descriptors that have been created by ICCopen. It returns "-1" on
failure or "0" on success.
The ICCsettimeout function can be called before any of the following routines to determine how long the
library should wait before giving up on getting the server's reply. This is done by setting and catching
a SIGALRM signal(2). If the timeout is less than zero, then no reply will be waited for. The
SC_SHUTDOWN, SC_XABORT, and SC_XEXEC commands do not get a reply either. The default, which can be
obtained by setting the timeout to <0>, is to wait during 2 minutes.
The ICCcommand function sends the command cmd with parameters argv to the server. It returns "-1" on
error. If the server replies, and replyp is not NULL, it will be filled in with an allocated buffer that
contains the full text of the server's reply. This buffer is a string in the form of "digitstext" where
digits is the text value of the recommended exit code (usually "1", followed with text, giving the reason
of the failure); a "0" value indicates success. Replies longer than 64KB will be truncated. The
possible values of cmd are defined in the inn/inndcomm.h header file, and also in the SYNOPSIS of this
man page. The parameters for each command are described in ctlinnd(8). This routine returns "-1" on
communication failure, or the exit status sent by the server which will never be negative.
The ICCcancel function sends a "cancel" message to the server. Its msgid argument is the Message-ID of
the article that should be cancelled. The return value is the same as for ICCcommand.
The ICCpause, ICCreserve, and ICCgo functions send a "pause", "reserve", or "go" command to the server,
respectively. If ICCreserve is used, then the why value used in the ICCpause invocation must match; the
value used in the ICCgo invocation must always match the one used in the ICCpause invocation. The return
value for all three routines is the same as for ICCcommand.
If any routine described above fails, the ICCfailure variable will identify the system call that failed.