4.4BSD/usr/src/contrib/news/inn/doc/inndcomm.3

.\" $Revision: 1.10 $
.TH INNDCOMM 3
.SH NAME
inndcomm \- INND communication part of InterNetNews library
.SH SYNOPSIS
.nf
.ta \w'    unsigned long    'u
.B
#include "inndcomm.h"

.B "int"
.B "ICCopen()"

.B "int"
.B "ICCclose()"

.B "void"
.B "ICCsettimeout(i)"
.B "    int	i;"

.B "int"
.B "ICCcommand(cmd, argv, replyp)"
.B "    char	cmd;"
.B "    char	*argv[];"
.B "    char	**replyp;"

.B "int"
.B "ICCcancel(mesgid)"
.B "    char	*mesgid;"

.B "int"
.B "ICCreserve(why)"
.B "    char	*why;"

.B "int"
.B "ICCpause(why)"
.B "    char	*why;"

.B "int"
.B "ICCgo(why)"
.B "    char	*why;"

.B "extern char *ICCfailure;"
.fi
.SH DESCRIPTION
The routines described in this manual page are part of the InterNetNews
library,
.IR libinn (3).
They are used to send commands to a running
.IR innd (8)
daemon on the local host.
The letters ``ICC'' stand for
.IR I nnd
.IR C ontrol
.IR C ommand.
.PP
.I ICCopen
creates a
.\" =()<.ie '@<HAVE_UNIX_DOMAIN>@'DO' \{\>()=
.ie 'DO'DO' \{\
Unix-domain datagram socket and binds it to the server's control socket.\}
.el named pipe for communicating with the server.
It returns \-1 on failure or zero on success.
This routine must be called before any other routine.
.PP
.I ICCclose
closes any descriptors that have been created by
.IR ICCopen .
It returns \-1 on failure or zero on success.
.PP
.I ICCsettimeout
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
.IR signal (2).
If the timeout is less then 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 zero, is to
wait until the server replies.
.PP
.I ICCcommand
sends the command
.I cmd
with parameters
.I argv
to the server.
It returns \-1 on error.
If the server replies, and
.I 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 ``<digits><space><text>''
where ``digits'' is the text value of the recommended exit code;
zero indicates success.
Replies longer then 4000 bytes will be truncated.
The possible values of
.I cmd
are defined in the ``inndcomm.h'' header file.
The parameters for each command are described in
.IR ctlinnd (8).
This routine returns \-1 on communication failure, or the exit status
sent by the server which will never be negative.
.PP
.I ICCcancel
sends a ``cancel'' message to the server.
.I Mesgid
is the Message-ID of the article that should be canceled.
The return value is the same as for
.IR ICCcommand .
.PP
.IR ICCpause ,
.IR ICCreserve ,
and
.I ICCgo
send a ``pause,'' ``reserve,'' or ``go'' command to the server, respectively.
If
.I ICCreserve
is used, then the
.I why
value used in the
.I ICCpause
invocation must match; the value used in the
.I ICCgo
invocation must always match that the one used in the
.I ICCpause
invocation.
The return value for all three routines is the same as for
.IR ICCcommand .
.PP
If any routine described above fails, the
.I ICCfailure
variable will identify the system call that failed.
.SH HISTORY
Written by Rich $alz <rsalz@uunet.uu.net> for InterNetNews.
.de R$
This is revision \\$3, dated \\$4.
..
.R$ $Id: inndcomm.3,v 1.10 1993/01/29 16:42:56 rsalz Exp $
.SH "SEE ALSO"
ctlinnd(8),
innd(8),
libinn(3).