 b6cbf7203b
			
		
	
	
		b6cbf7203b
		
	
	
	
	
		
			
			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
 |