libauth - routines for writing nnrpd resolvers and authenticators


       #include "libauth.h"

       struct res_info {
           struct sockaddr *client;
           struct sockaddr *local;
           char *clienthostname;

       struct auth_info {
           char *username;
           char *password;

       struct auth_info *get_auth_info(FILE *);
       struct res_info  *get_res_info (FILE *);

       void free_auth_info(struct auth_info*);
       void free_res_info (struct res_info*);


   These functions provide a convenient C frontend to the nnrpd external
   authentication interface documented in doc/external-auth.  Use of this
   library is not required; in particular, external resolvers and
   authenticators written in languages other than C will need to implement
   the necessary functionality themselves.

   The get_auth_info() and get_res_info() functions allocate sufficient
   memory for a struct auth_info or struct res_info and any necessary
   fields, and return a pointer to the struct with the fields filled in
   from information supplied by nnrpd (the FILE* parameter generally
   should be "stdin").  Both functions return NULL on error.  The caller
   is responsible for deallocating the memory by using the functions

   The string fields of both structs are straightforward.  The client and
   local fields of struct res_info actually point to instances of struct
   sockaddr_in (or struct sockaddr_in6 if IPv6 support is compiled in).

   The free_auth_info() and free_res_info() functions free the struct
   passed in as argument and all necessary fields.


   In many cases, nnrpd provides more information than is normally useful
   (for example, even when calling an authenticator, the resolver
   information is often provided.)  On the other hand, in certain cases it
   provides less information than might be expected (for example, if nnrpd
   is reading from stdin rather than a socket).  The implementation is
   capable of handling at least the first of these issues, but that
   functionality is not exposed in the interface.

   At present, libauth.h and its implementation are located in authprogs/;
   perhaps they should be moved to include/ and lib/, respectively?


   Written by Jeffrey M. Vinocur <> for InterNetNews.

   $Id: libauth.pod 8200 2008-11-30 13:31:30Z iulius $


   nnrpd(8), readers.conf(5), doc/external-auth

More Linux Commands

ldap_search_ext_s(3) - Perform an LDAP search operation.....
These routines are used to perform LDAP search operations. The ldap_search_ext_s() routine does the search synchronously (i.e., not returning until the operatio

XChangeSaveSet(3) - change a client's save set (Man Page)...
Depending on the specified mode, XChangeSaveSet either inserts or deletes the specified window from the clients save-set. The specified window must have been cr

Tcl_ParseQuotedString(3) - parse Tcl scripts and expressions
These procedures parse Tcl commands or portions of Tcl commands such as expressions or references to variables. Each procedure takes a pointer to a script (or p

fs(5) - Linux file-system types: minix, ext, ext2, ext3, ext
When, as is customary, the proc filesystem is mounted on /proc, you can find in the file /proc/filesystems which filesystems your kernel currently supports; see

dracut.conf(5) configuration file(s) for dracut (Man Page)
dracut.conf is loaded during the initialisation phase of dracut. Command line parameter will overwrite any values set here. *.conf files are read from /usr/lib/

glutSetMenu(3) - sets the current menu; glutGetMenu - return
glutSetMenu sets the current menu; glutGetMenu returns the identifier of the current menu. If no menus exist or the previous current menu was destroyed, glutGet

sbrk(2) - change data segment size - Linux manual page......
brk() and sbrk() change the location of the program break, which defines the end of the processs data segment (i.e., the program break is the first location aft

XpCreateContext(3x) - Creates and initializes a new print co
XpCreateContext creates a new print context that is initialized with the default printer attributes and other information available for printer_name on display.

FcConfigSubstitute(3) - Execute substitutions (Man Page)....
Calls FcConfigSubstituteWithPat setting p_pat to NULL. Returns FcFalse if the substitution cannot be performed (due to allocation failure). Otherwise returns Fc

snmpgetnext(1) - communicates with a network entity using SN
snmpget is an SNMP application that uses the SNMP GETNEXT request to query for information on a network entity. One or more object identifiers (OIDs) may be giv

mbtowc(3) - convert a multibyte sequence to a wide character
The main case for this function is when s is not NULL and pwc is not NULL. In this case, the mbtowc() function inspects at most n bytes of the multibyte string

glFogiv(3gl) - specify fog parameters - Linux manual page...
Fog is initially disabled. While enabled, fog affects rasterized geometry, bitmaps, and pixel blocks, but not buffer clear operations. To enable and disable fog

We can't live, work or learn in freedom unless the software we use is free.