1*2fe8fb19SBen Gras.\" @(#)getnetpath.3n 1.26 93/05/07 SMI; from SVr4 2*2fe8fb19SBen Gras.\" $NetBSD: getnetpath.3,v 1.6 2003/04/16 13:34:43 wiz Exp $ 3*2fe8fb19SBen Gras.\" Copyright 1989 AT&T 4*2fe8fb19SBen Gras.Dd April 22, 2000 5*2fe8fb19SBen Gras.Dt GETNETPATH 3 6*2fe8fb19SBen Gras.Os 7*2fe8fb19SBen Gras.Sh NAME 8*2fe8fb19SBen Gras.Nm getnetpath , 9*2fe8fb19SBen Gras.Nm setnetpath , 10*2fe8fb19SBen Gras.Nm endnetpath 11*2fe8fb19SBen Gras.Nd get /etc/netconfig entry corresponding to NETPATH component 12*2fe8fb19SBen Gras.Sh LIBRARY 13*2fe8fb19SBen Gras.Lb libc 14*2fe8fb19SBen Gras.Sh SYNOPSIS 15*2fe8fb19SBen Gras.In netconfig.h 16*2fe8fb19SBen Gras.Ft struct netconfig * 17*2fe8fb19SBen Gras.Fn getnetpath "void *handlep" 18*2fe8fb19SBen Gras.Ft void * 19*2fe8fb19SBen Gras.Fn setnetpath "void" 20*2fe8fb19SBen Gras.Ft int 21*2fe8fb19SBen Gras.Fn endnetpath "void *handlep" 22*2fe8fb19SBen Gras.Sh DESCRIPTION 23*2fe8fb19SBen GrasThe routines described in this page provide the application access to the system 24*2fe8fb19SBen Grasnetwork configuration database, 25*2fe8fb19SBen Gras.Pa /etc/netconfig , 26*2fe8fb19SBen Grasas it is 27*2fe8fb19SBen Gras.Dq filtered 28*2fe8fb19SBen Grasby the NETPATH 29*2fe8fb19SBen Grasenvironment variable (see 30*2fe8fb19SBen Gras.Xr environ 7 ) . 31*2fe8fb19SBen GrasSee 32*2fe8fb19SBen Gras.Xr getnetconfig 3 33*2fe8fb19SBen Grasfor other routines that also access the 34*2fe8fb19SBen Grasnetwork configuration database directly. 35*2fe8fb19SBen GrasThe NETPATH variable is a list of colon-separated network identifiers. 36*2fe8fb19SBen Gras.Pp 37*2fe8fb19SBen Gras.Fn getnetpath 38*2fe8fb19SBen Grasreturns a pointer to the 39*2fe8fb19SBen Grasnetconfig database entry corresponding to the first valid 40*2fe8fb19SBen GrasNETPATH component. 41*2fe8fb19SBen GrasThe netconfig entry is formatted as a struct netconfig. 42*2fe8fb19SBen GrasOn each subsequent call, 43*2fe8fb19SBen Gras.Fn getnetpath 44*2fe8fb19SBen Grasreturns a pointer to the netconfig entry that corresponds to the next 45*2fe8fb19SBen Grasvalid NETPATH component. 46*2fe8fb19SBen Gras.Fn getnetpath 47*2fe8fb19SBen Grascan thus be used to search the netconfig database for all networks 48*2fe8fb19SBen Grasincluded in the NETPATH variable. 49*2fe8fb19SBen GrasWhen NETPATH has been exhausted, 50*2fe8fb19SBen Gras.Fn getnetpath 51*2fe8fb19SBen Grasreturns NULL. 52*2fe8fb19SBen Gras.Pp 53*2fe8fb19SBen GrasA call to 54*2fe8fb19SBen Gras.Fn setnetpath 55*2fe8fb19SBen Gras.Dq binds 56*2fe8fb19SBen Grasto or 57*2fe8fb19SBen Gras.Dq rewinds 58*2fe8fb19SBen GrasNETPATH. 59*2fe8fb19SBen Gras.Fn setnetpath 60*2fe8fb19SBen Grasmust be called before the first call to 61*2fe8fb19SBen Gras.Fn getnetpath 62*2fe8fb19SBen Grasand may be called at any other time. 63*2fe8fb19SBen GrasIt returns a handle that is used by 64*2fe8fb19SBen Gras.Fn getnetpath . 65*2fe8fb19SBen Gras.Pp 66*2fe8fb19SBen Gras.Fn getnetpath 67*2fe8fb19SBen Grassilently ignores invalid NETPATH 68*2fe8fb19SBen Grascomponents. 69*2fe8fb19SBen GrasA NETPATH component is invalid if there is no corresponding 70*2fe8fb19SBen Grasentry in the netconfig database. 71*2fe8fb19SBen Gras.Pp 72*2fe8fb19SBen GrasIf the NETPATH variable is unset, 73*2fe8fb19SBen Gras.Fn getnetpath 74*2fe8fb19SBen Grasbehaves as if NETPATH 75*2fe8fb19SBen Graswere set to the sequence of 76*2fe8fb19SBen Gras.Dq default 77*2fe8fb19SBen Grasor 78*2fe8fb19SBen Gras.Dq visible 79*2fe8fb19SBen Grasnetworks in the netconfig database, in the 80*2fe8fb19SBen Grasorder in which they are listed. 81*2fe8fb19SBen Gras.\"This proviso holds also for this 82*2fe8fb19SBen Gras.\"whole manpage. 83*2fe8fb19SBen Gras.Pp 84*2fe8fb19SBen Gras.Fn endnetpath 85*2fe8fb19SBen Grasmay be called to 86*2fe8fb19SBen Gras.Dq unbind 87*2fe8fb19SBen Grasfrom NETPATH 88*2fe8fb19SBen Graswhen processing is complete, releasing resources for reuse. 89*2fe8fb19SBen GrasProgrammers should be aware, however, that 90*2fe8fb19SBen Gras.Fn endnetpath 91*2fe8fb19SBen Grasfrees all memory allocated by 92*2fe8fb19SBen Gras.Fn getnetpath 93*2fe8fb19SBen Grasfor the struct netconfig data structure. 94*2fe8fb19SBen Gras.Sh RETURN VALUES 95*2fe8fb19SBen Gras.Fn setnetpath 96*2fe8fb19SBen Grasreturns a handle that is used by 97*2fe8fb19SBen Gras.Fn getnetpath . 98*2fe8fb19SBen GrasIn case of an error, 99*2fe8fb19SBen Gras.Fn setnetpath 100*2fe8fb19SBen Grasreturns NULL. 101*2fe8fb19SBen Gras.Pp 102*2fe8fb19SBen Gras.Fn endnetpath 103*2fe8fb19SBen Grasreturns 0 on success and -1 on failure 104*2fe8fb19SBen Gras(for example, if 105*2fe8fb19SBen Gras.Fn setnetpath 106*2fe8fb19SBen Graswas not called previously). 107*2fe8fb19SBen Gras.Fn nc_perror 108*2fe8fb19SBen Grasor 109*2fe8fb19SBen Gras.Fn nc_sperror 110*2fe8fb19SBen Grascan be used to print out the reason for failure. 111*2fe8fb19SBen GrasSee 112*2fe8fb19SBen Gras.Xr getnetconfig 3 . 113*2fe8fb19SBen Gras.Pp 114*2fe8fb19SBen GrasWhen first called, 115*2fe8fb19SBen Gras.Fn getnetpath 116*2fe8fb19SBen Grasreturns a pointer to the netconfig database entry corresponding to the first 117*2fe8fb19SBen Grasvalid NETPATH component. 118*2fe8fb19SBen GrasWhen NETPATH has been exhausted, 119*2fe8fb19SBen Gras.Fn getnetpath 120*2fe8fb19SBen Grasreturns NULL. 121*2fe8fb19SBen Gras.Sh SEE ALSO 122*2fe8fb19SBen Gras.Xr getnetconfig 3 , 123*2fe8fb19SBen Gras.Xr netconfig 5 , 124*2fe8fb19SBen Gras.Xr environ 7 125