This patch imports the unmodified current version of NetBSD libc. The NetBSD includes are in /nbsd_include, while the libc code itself is split between lib/nbsd_libc and common/lib/libc.
		
			
				
	
	
		
			184 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			184 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.\" 	@(#)getnetconfig.3n 1.28 93/06/02 SMI; from SVr4
 | 
						|
.\"	$NetBSD: getnetconfig.3,v 1.7 2003/04/16 13:34:43 wiz Exp $
 | 
						|
.\" Copyright 1989 AT&T
 | 
						|
.Dd April 22, 2000
 | 
						|
.Dt GETNETCONFIG 3
 | 
						|
.Os
 | 
						|
.Sh NAME
 | 
						|
.Nm getnetconfig ,
 | 
						|
.Nm setnetconfig ,
 | 
						|
.Nm endnetconfig ,
 | 
						|
.Nm getnetconfigent ,
 | 
						|
.Nm freenetconfigent ,
 | 
						|
.Nm nc_perror ,
 | 
						|
.Nm nc_sperror
 | 
						|
.Nd get network configuration database entry
 | 
						|
.Sh LIBRARY
 | 
						|
.Lb libc
 | 
						|
.Sh SYNOPSIS
 | 
						|
.In netconfig.h
 | 
						|
.Ft struct netconfig *
 | 
						|
.Fn getnetconfig "void *handlep"
 | 
						|
.Ft void *
 | 
						|
.Fn setnetconfig "void"
 | 
						|
.Ft int
 | 
						|
.Fn endnetconfig "void *handlep"
 | 
						|
.Ft struct netconfig *
 | 
						|
.Fn getnetconfigent "const char *netid"
 | 
						|
.Ft void
 | 
						|
.Fn freenetconfigent "struct netconfig *netconfigp"
 | 
						|
.Ft void
 | 
						|
.Fn nc_perror "const char *msg"
 | 
						|
.Ft char *
 | 
						|
.Fn nc_sperror "void"
 | 
						|
.Sh DESCRIPTION
 | 
						|
The library routines described on this page
 | 
						|
provide the application access to
 | 
						|
the system network configuration database,
 | 
						|
.Pa /etc/netconfig .
 | 
						|
.Bd -literal
 | 
						|
struct netconfig {
 | 
						|
        char *nc_netid;              /* Network ID */
 | 
						|
        unsigned long nc_semantics;  /* Semantics */
 | 
						|
        unsigned long nc_flag;       /* Flags */
 | 
						|
        char *nc_protofmly;          /* Protocol family */
 | 
						|
        char *nc_proto;              /* Protocol name */
 | 
						|
        char *nc_device;             /* Network device pathname */
 | 
						|
        unsigned long nc_nlookups;   /* Number of directory lookup libs */
 | 
						|
        char **nc_lookups;           /* Names of the libraries */
 | 
						|
};
 | 
						|
.Ed
 | 
						|
.Pp
 | 
						|
.Fn getnetconfig
 | 
						|
returns a pointer to the
 | 
						|
current entry in the
 | 
						|
.Pa netconfig
 | 
						|
database, formatted as a struct netconfig.
 | 
						|
Successive calls will return successive netconfig
 | 
						|
entries in the netconfig database.
 | 
						|
.Fn getnetconfig
 | 
						|
can be used to search the entire netconfig
 | 
						|
file.
 | 
						|
.Fn getnetconfig
 | 
						|
returns
 | 
						|
.Dv NULL
 | 
						|
at the end of the file.
 | 
						|
.Fa handlep
 | 
						|
is the handle obtained through
 | 
						|
.Fn setnetconfig .
 | 
						|
.Pp
 | 
						|
A call to
 | 
						|
.Fn setnetconfig
 | 
						|
has the effect of ``binding'' to or
 | 
						|
``rewinding'' the netconfig database.
 | 
						|
.Fn setnetconfig
 | 
						|
must be called before the first call to
 | 
						|
.Fn getnetconfig
 | 
						|
and may be called at any other time.
 | 
						|
.Fn setnetconfig
 | 
						|
need not be called before a call to
 | 
						|
.Fn getnetconfigent .
 | 
						|
.Fn setnetconfig
 | 
						|
returns a unique handle to be used by
 | 
						|
.Fn getnetconfig .
 | 
						|
.Pp
 | 
						|
.Fn endnetconfig
 | 
						|
should be called when processing is complete to release resources for reuse.
 | 
						|
.Fa handlep
 | 
						|
is the handle obtained through
 | 
						|
.Fn setnetconfig .
 | 
						|
Programmers should be aware, however, that the last call to
 | 
						|
.Fn endnetconfig
 | 
						|
frees all memory allocated by
 | 
						|
.Fn getnetconfig
 | 
						|
for the
 | 
						|
struct netconfig data structure.
 | 
						|
.Fn endnetconfig
 | 
						|
may not be called before
 | 
						|
.Fn setnetconfig .
 | 
						|
.Pp
 | 
						|
.Fn getnetconfigent
 | 
						|
returns a pointer
 | 
						|
to the netconfig structure corresponding
 | 
						|
to
 | 
						|
.Fa netid .
 | 
						|
It returns
 | 
						|
.Dv NULL
 | 
						|
if
 | 
						|
.Fa netid
 | 
						|
is invalid
 | 
						|
(that is, does not name an entry in the netconfig database).
 | 
						|
.Pp
 | 
						|
.Fn freenetconfigent
 | 
						|
frees the netconfig structure pointed to by
 | 
						|
.Fa netconfigp
 | 
						|
(previously returned by
 | 
						|
.Fn getnetconfigent ) .
 | 
						|
.Pp
 | 
						|
.Fn nc_perror
 | 
						|
prints a message to the standard error indicating why any of the
 | 
						|
above routines failed.
 | 
						|
The message is prepended with the string
 | 
						|
.Fa msg
 | 
						|
and a colon.
 | 
						|
A newline character is appended at the end of the message.
 | 
						|
.Pp
 | 
						|
.Fn nc_sperror
 | 
						|
is similar to
 | 
						|
.Fn nc_perror
 | 
						|
but instead of sending the message
 | 
						|
to the standard error, will return a pointer to a string that
 | 
						|
contains the error message.
 | 
						|
.Pp
 | 
						|
.Fn nc_perror
 | 
						|
and
 | 
						|
.Fn nc_sperror
 | 
						|
can also be used with the
 | 
						|
.Va NETPATH
 | 
						|
access routines defined in
 | 
						|
.Xr getnetpath 3 .
 | 
						|
.Sh RETURN VALUES
 | 
						|
.Fn setnetconfig
 | 
						|
returns a unique handle to be used by
 | 
						|
.Fn getnetconfig .
 | 
						|
In the case of an error,
 | 
						|
.Fn setnetconfig
 | 
						|
returns NULL and
 | 
						|
.Fn nc_perror
 | 
						|
or
 | 
						|
.Fn nc_sperror
 | 
						|
can be used to print the reason for failure.
 | 
						|
.Pp
 | 
						|
.Fn getnetconfig
 | 
						|
returns a pointer to the current entry in the netconfig
 | 
						|
database, formatted as a struct netconfig.
 | 
						|
.Fn getnetconfig
 | 
						|
returns NULL
 | 
						|
at the end of the file, or upon failure.
 | 
						|
.Pp
 | 
						|
.Fn endnetconfig
 | 
						|
returns 0 on success and -1 on failure
 | 
						|
(for example, if
 | 
						|
.Fn setnetconfig
 | 
						|
was not called previously).
 | 
						|
.Pp
 | 
						|
On success,
 | 
						|
.Fn getnetconfigent
 | 
						|
returns a pointer to the
 | 
						|
.Li struct netconfig
 | 
						|
structure corresponding to
 | 
						|
.Ar netid ;
 | 
						|
otherwise it returns
 | 
						|
.Dv NULL .
 | 
						|
.Pp
 | 
						|
.Fn nc_sperror
 | 
						|
returns a pointer to a buffer which contains the error message string.
 | 
						|
This buffer is overwritten on each call.
 | 
						|
In multithreaded applications, this buffer is
 | 
						|
implemented as thread-specific data.
 | 
						|
.Sh FILES
 | 
						|
.Pa /etc/netconfig
 | 
						|
.Sh SEE ALSO
 | 
						|
.Xr getnetpath 3 ,
 | 
						|
.Xr netconfig 5
 |