186d7f5d3SJohn Marino.\" @(#)getnetconfig.3n 1.28 93/06/02 SMI; from SVr4 286d7f5d3SJohn Marino.\" $NetBSD: getnetconfig.3,v 1.1 2000/06/02 23:11:11 fvdl Exp $ 386d7f5d3SJohn Marino.\" $FreeBSD: src/lib/libc/rpc/getnetconfig.3,v 1.4 2002/12/19 09:40:23 ru Exp $ 486d7f5d3SJohn Marino.\" Copyright 1989 AT&T 586d7f5d3SJohn Marino.Dd November 15, 2008 686d7f5d3SJohn Marino.Dt GETNETCONFIG 3 786d7f5d3SJohn Marino.Os 886d7f5d3SJohn Marino.Sh NAME 986d7f5d3SJohn Marino.Nm getnetconfig , 1086d7f5d3SJohn Marino.Nm setnetconfig , 1186d7f5d3SJohn Marino.Nm endnetconfig , 1286d7f5d3SJohn Marino.Nm getnetconfigent , 1386d7f5d3SJohn Marino.Nm freenetconfigent , 1486d7f5d3SJohn Marino.Nm nc_perror , 1586d7f5d3SJohn Marino.Nm nc_sperror 1686d7f5d3SJohn Marino.Nd get network configuration database entry 1786d7f5d3SJohn Marino.Sh LIBRARY 1886d7f5d3SJohn Marino.Lb libc 1986d7f5d3SJohn Marino.Sh SYNOPSIS 2086d7f5d3SJohn Marino.In netconfig.h 2186d7f5d3SJohn Marino.Ft "struct netconfig *" 2286d7f5d3SJohn Marino.Fn getnetconfig "void *handlep" 2386d7f5d3SJohn Marino.Ft "void *" 2486d7f5d3SJohn Marino.Fn setnetconfig "void" 2586d7f5d3SJohn Marino.Ft int 2686d7f5d3SJohn Marino.Fn endnetconfig "void *handlep" 2786d7f5d3SJohn Marino.Ft "struct netconfig *" 2886d7f5d3SJohn Marino.Fn getnetconfigent "const char *netid" 2986d7f5d3SJohn Marino.Ft void 3086d7f5d3SJohn Marino.Fn freenetconfigent "struct netconfig *netconfigp" 3186d7f5d3SJohn Marino.Ft void 3286d7f5d3SJohn Marino.Fn nc_perror "const char *msg" 3386d7f5d3SJohn Marino.Ft "char *" 3486d7f5d3SJohn Marino.Fn nc_sperror "void" 3586d7f5d3SJohn Marino.Sh DESCRIPTION 3686d7f5d3SJohn MarinoThe library routines described on this page 3786d7f5d3SJohn Marinoprovide the application access to 3886d7f5d3SJohn Marinothe system network configuration database, 3986d7f5d3SJohn Marino.Pa /etc/netconfig . 4086d7f5d3SJohn MarinoThe 4186d7f5d3SJohn Marino.Fn getnetconfig 4286d7f5d3SJohn Marinofunction 4386d7f5d3SJohn Marinoreturns a pointer to the 4486d7f5d3SJohn Marinocurrent entry in the 4586d7f5d3SJohn Marinonetconfig 4686d7f5d3SJohn Marinodatabase, formatted as a 4786d7f5d3SJohn Marino.Ft "struct netconfig" . 4886d7f5d3SJohn MarinoSuccessive calls will return successive netconfig 4986d7f5d3SJohn Marinoentries in the netconfig database. 5086d7f5d3SJohn MarinoThe 5186d7f5d3SJohn Marino.Fn getnetconfig 5286d7f5d3SJohn Marinofunction 5386d7f5d3SJohn Marinocan be used to search the entire netconfig 5486d7f5d3SJohn Marinofile. 5586d7f5d3SJohn MarinoThe 5686d7f5d3SJohn Marino.Fn getnetconfig 5786d7f5d3SJohn Marinofunction 5886d7f5d3SJohn Marinoreturns 5986d7f5d3SJohn Marino.Dv NULL 6086d7f5d3SJohn Marinoat the end of the file. 6186d7f5d3SJohn MarinoThe 6286d7f5d3SJohn Marino.Fa handlep 6386d7f5d3SJohn Marinoargument 6486d7f5d3SJohn Marinois the handle obtained through 6586d7f5d3SJohn Marino.Fn setnetconfig . 6686d7f5d3SJohn Marino.Pp 6786d7f5d3SJohn MarinoA call to 6886d7f5d3SJohn Marino.Fn setnetconfig 6986d7f5d3SJohn Marinohas the effect of 7086d7f5d3SJohn Marino.Dq binding 7186d7f5d3SJohn Marinoto or 7286d7f5d3SJohn Marino.Dq rewinding 7386d7f5d3SJohn Marinothe netconfig database. 7486d7f5d3SJohn MarinoThe 7586d7f5d3SJohn Marino.Fn setnetconfig 7686d7f5d3SJohn Marinofunction 7786d7f5d3SJohn Marinomust be called before the first call to 7886d7f5d3SJohn Marino.Fn getnetconfig 7986d7f5d3SJohn Marinoand may be called at any other time. 8086d7f5d3SJohn MarinoThe 8186d7f5d3SJohn Marino.Fn setnetconfig 8286d7f5d3SJohn Marinofunction 8386d7f5d3SJohn Marinoneed not be called before a call to 8486d7f5d3SJohn Marino.Fn getnetconfigent . 8586d7f5d3SJohn MarinoThe 8686d7f5d3SJohn Marino.Fn setnetconfig 8786d7f5d3SJohn Marinofunction 8886d7f5d3SJohn Marinoreturns a unique handle to be used by 8986d7f5d3SJohn Marino.Fn getnetconfig . 9086d7f5d3SJohn Marino.Pp 9186d7f5d3SJohn MarinoThe 9286d7f5d3SJohn Marino.Fn endnetconfig 9386d7f5d3SJohn Marinofunction 9486d7f5d3SJohn Marinoshould be called when processing is complete to release resources for reuse. 9586d7f5d3SJohn MarinoThe 9686d7f5d3SJohn Marino.Fa handlep 9786d7f5d3SJohn Marinoargument 9886d7f5d3SJohn Marinois the handle obtained through 9986d7f5d3SJohn Marino.Fn setnetconfig . 10086d7f5d3SJohn MarinoProgrammers should be aware, however, that the last call to 10186d7f5d3SJohn Marino.Fn endnetconfig 10286d7f5d3SJohn Marinofrees all memory allocated by 10386d7f5d3SJohn Marino.Fn getnetconfig 10486d7f5d3SJohn Marinofor the 10586d7f5d3SJohn Marino.Ft "struct netconfig" 10686d7f5d3SJohn Marinodata structure. 10786d7f5d3SJohn MarinoThe 10886d7f5d3SJohn Marino.Fn endnetconfig 10986d7f5d3SJohn Marinofunction 11086d7f5d3SJohn Marinomay not be called before 11186d7f5d3SJohn Marino.Fn setnetconfig . 11286d7f5d3SJohn Marino.Pp 11386d7f5d3SJohn MarinoThe 11486d7f5d3SJohn Marino.Fn getnetconfigent 11586d7f5d3SJohn Marinofunction 11686d7f5d3SJohn Marinoreturns a pointer 11786d7f5d3SJohn Marinoto the netconfig structure corresponding 11886d7f5d3SJohn Marinoto 11986d7f5d3SJohn Marino.Fa netid . 12086d7f5d3SJohn MarinoIt returns 12186d7f5d3SJohn Marino.Dv NULL 12286d7f5d3SJohn Marinoif 12386d7f5d3SJohn Marino.Fa netid 12486d7f5d3SJohn Marinois invalid 12586d7f5d3SJohn Marino(that is, does not name an entry in the netconfig database). 12686d7f5d3SJohn Marino.Pp 12786d7f5d3SJohn MarinoThe 12886d7f5d3SJohn Marino.Fn freenetconfigent 12986d7f5d3SJohn Marinofunction 13086d7f5d3SJohn Marinofrees the netconfig structure pointed to by 13186d7f5d3SJohn Marino.Fa netconfigp 13286d7f5d3SJohn Marino(previously returned by 13386d7f5d3SJohn Marino.Fn getnetconfigent ) . 13486d7f5d3SJohn Marino.Pp 13586d7f5d3SJohn MarinoThe 13686d7f5d3SJohn Marino.Fn nc_perror 13786d7f5d3SJohn Marinofunction 13886d7f5d3SJohn Marinoprints a message to the standard error indicating why any of the 13986d7f5d3SJohn Marinoabove routines failed. 14086d7f5d3SJohn MarinoThe message is prepended with the string 14186d7f5d3SJohn Marino.Fa msg 14286d7f5d3SJohn Marinoand a colon. 14386d7f5d3SJohn MarinoA newline character is appended at the end of the message. 14486d7f5d3SJohn Marino.Pp 14586d7f5d3SJohn MarinoThe 14686d7f5d3SJohn Marino.Fn nc_sperror 14786d7f5d3SJohn Marinofunction 14886d7f5d3SJohn Marinois similar to 14986d7f5d3SJohn Marino.Fn nc_perror 15086d7f5d3SJohn Marinobut instead of sending the message 15186d7f5d3SJohn Marinoto the standard error, will return a pointer to a string that 15286d7f5d3SJohn Marinocontains the error message. 15386d7f5d3SJohn Marino.Pp 15486d7f5d3SJohn MarinoThe 15586d7f5d3SJohn Marino.Fn nc_perror 15686d7f5d3SJohn Marinoand 15786d7f5d3SJohn Marino.Fn nc_sperror 15886d7f5d3SJohn Marinofunctions 15986d7f5d3SJohn Marinocan also be used with the 16086d7f5d3SJohn Marino.Ev NETPATH 16186d7f5d3SJohn Marinoaccess routines defined in 16286d7f5d3SJohn Marino.Xr getnetpath 3 . 16386d7f5d3SJohn Marino.Sh RETURN VALUES 16486d7f5d3SJohn MarinoThe 16586d7f5d3SJohn Marino.Fn setnetconfig 16686d7f5d3SJohn Marinofunction 16786d7f5d3SJohn Marinoreturns a unique handle to be used by 16886d7f5d3SJohn Marino.Fn getnetconfig . 16986d7f5d3SJohn MarinoIn the case of an error, 17086d7f5d3SJohn Marino.Fn setnetconfig 17186d7f5d3SJohn Marinoreturns 17286d7f5d3SJohn Marino.Dv NULL 17386d7f5d3SJohn Marinoand 17486d7f5d3SJohn Marino.Fn nc_perror 17586d7f5d3SJohn Marinoor 17686d7f5d3SJohn Marino.Fn nc_sperror 17786d7f5d3SJohn Marinocan be used to print the reason for failure. 17886d7f5d3SJohn Marino.Pp 17986d7f5d3SJohn MarinoThe 18086d7f5d3SJohn Marino.Fn getnetconfig 18186d7f5d3SJohn Marinofunction 18286d7f5d3SJohn Marinoreturns a pointer to the current entry in the netconfig 18386d7f5d3SJohn Marinodatabase, formatted as a 18486d7f5d3SJohn Marino.Ft "struct netconfig" . 18586d7f5d3SJohn MarinoThe 18686d7f5d3SJohn Marino.Fn getnetconfig 18786d7f5d3SJohn Marinofunction 18886d7f5d3SJohn Marinoreturns 18986d7f5d3SJohn Marino.Dv NULL 19086d7f5d3SJohn Marinoat the end of the file, or upon failure. 19186d7f5d3SJohn Marino.Pp 19286d7f5d3SJohn MarinoThe 19386d7f5d3SJohn Marino.Fn endnetconfig 19486d7f5d3SJohn Marinofunction 19586d7f5d3SJohn Marinoreturns 0 on success and \-1 on failure 19686d7f5d3SJohn Marino(for example, if 19786d7f5d3SJohn Marino.Fn setnetconfig 19886d7f5d3SJohn Marinowas not called previously). 19986d7f5d3SJohn Marino.Pp 20086d7f5d3SJohn MarinoOn success, 20186d7f5d3SJohn Marino.Fn getnetconfigent 20286d7f5d3SJohn Marinoreturns a pointer to the 20386d7f5d3SJohn Marino.Ft "struct netconfig" 20486d7f5d3SJohn Marinostructure corresponding to 20586d7f5d3SJohn Marino.Fa netid ; 20686d7f5d3SJohn Marinootherwise it returns 20786d7f5d3SJohn Marino.Dv NULL . 20886d7f5d3SJohn Marino.Pp 20986d7f5d3SJohn MarinoThe 21086d7f5d3SJohn Marino.Fn nc_sperror 21186d7f5d3SJohn Marinofunction 21286d7f5d3SJohn Marinoreturns a pointer to a buffer which contains the error message string. 21386d7f5d3SJohn MarinoThis buffer is overwritten on each call. 21486d7f5d3SJohn MarinoIn multithreaded applications, this buffer is 21586d7f5d3SJohn Marinoimplemented as thread-specific data. 21686d7f5d3SJohn Marino.Sh FILES 21786d7f5d3SJohn Marino.Bl -tag -width /etc/netconfig -compact 21886d7f5d3SJohn Marino.It Pa /etc/netconfig 21986d7f5d3SJohn Marino.El 22086d7f5d3SJohn Marino.Sh SEE ALSO 22186d7f5d3SJohn Marino.Xr getnetpath 3 , 22286d7f5d3SJohn Marino.Xr netconfig 5 223