This directory (authprogs/ in the INN distribution) now contains a bunch
of hook programs used by the new readers.conf(5) configuration file.
readers.conf replaces the old nnrp.access.

Here is a sample exchange between nnrpd and the hook program (where N:
denotes text from nnrpd to the hook, and H: denotes text from the hook
to nnrpd):
N:ClientHost: hostname\r
N:ClientIP: IP-address\r
N:LocalIP: IP-address\r
N:LocalPort: port\r
N:ClientAuthname: username\r
N:ClientPassword: password\r
N:.\r
(N: closes connection)
H:user:username\r

Not all fields are used all the time.  When you connect to nnrpd over
standard input, ClientHost:, ClientIP:, LocalIP:, and LocalPort: are
none specified, since stdin is not a socket.  When an attempt is made
to resolve a username without the user supplying username/password,
ClientAuthname: and ClientPassword: are neither.

The hook program has stdin, stdout and stderr pointed at nnrpd.  Stuff
it writes to stderr is read by nnrpd and logged by syslog().  Writing
to stderr is the preferred way to log debugging and error information.

There should be no extra spaces in lines sent from the hook to nnrpd:
user:aidan is read by nnrpd as a different username than user: aidan.
Please use the ckpasswd.c program as an example for any authenticators
you write, and ident.c as an example for any resolvers.

--aidan
