ReactOS  0.4.12-dev-409-g9f418243
netconfig.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  netconfig
 
struct  NCONF_HANDLE
 

Macros

#define NETCONFIG   "C:\\ReactOS\\System32\\drivers\\etc\\netconfig"
 
#define NETPATH   "NETPATH"
 
#define NC_TPI_CLTS   1
 
#define NC_TPI_COTS   2
 
#define NC_TPI_COTS_ORD   3
 
#define NC_TPI_RAW   4
 
#define NC_NOFLAG   0x00
 
#define NC_VISIBLE   0x01
 
#define NC_BROADCAST   0x02
 
#define NC_NOPROTOFMLY   "-"
 
#define NC_LOOPBACK   "loopback"
 
#define NC_INET   "inet"
 
#define NC_INET6   "inet6"
 
#define NC_IMPLINK   "implink"
 
#define NC_PUP   "pup"
 
#define NC_CHAOS   "chaos"
 
#define NC_NS   "ns"
 
#define NC_NBS   "nbs"
 
#define NC_ECMA   "ecma"
 
#define NC_DATAKIT   "datakit"
 
#define NC_CCITT   "ccitt"
 
#define NC_SNA   "sna"
 
#define NC_DECNET   "decnet"
 
#define NC_DLI   "dli"
 
#define NC_LAT   "lat"
 
#define NC_HYLINK   "hylink"
 
#define NC_APPLETALK   "appletalk"
 
#define NC_NIT   "nit"
 
#define NC_IEEE802   "ieee802"
 
#define NC_OSI   "osi"
 
#define NC_X25   "x25"
 
#define NC_OSINET   "osinet"
 
#define NC_GOSIP   "gosip"
 
#define NC_NOPROTO   "-"
 
#define NC_TCP   "tcp"
 
#define NC_UDP   "udp"
 
#define NC_ICMP   "icmp"
 

Functions

__BEGIN_DECLS voidsetnetconfig (void)
 
struct netconfiggetnetconfig (void *)
 
struct netconfiggetnetconfigent (const char *)
 
void freenetconfigent (struct netconfig *)
 
int endnetconfig (void *)
 
voidsetnetpath (void)
 
struct netconfiggetnetpath (void *)
 
int endnetpath (void *)
 
void nc_perror (const char *)
 
charnc_sperror (void)
 

Macro Definition Documentation

◆ NC_APPLETALK

#define NC_APPLETALK   "appletalk"

Definition at line 62 of file netconfig.h.

◆ NC_BROADCAST

#define NC_BROADCAST   0x02

Definition at line 40 of file netconfig.h.

◆ NC_CCITT

#define NC_CCITT   "ccitt"

Definition at line 56 of file netconfig.h.

◆ NC_CHAOS

#define NC_CHAOS   "chaos"

Definition at line 51 of file netconfig.h.

◆ NC_DATAKIT

#define NC_DATAKIT   "datakit"

Definition at line 55 of file netconfig.h.

◆ NC_DECNET

#define NC_DECNET   "decnet"

Definition at line 58 of file netconfig.h.

◆ NC_DLI

#define NC_DLI   "dli"

Definition at line 59 of file netconfig.h.

◆ NC_ECMA

#define NC_ECMA   "ecma"

Definition at line 54 of file netconfig.h.

◆ NC_GOSIP

#define NC_GOSIP   "gosip"

Definition at line 68 of file netconfig.h.

◆ NC_HYLINK

#define NC_HYLINK   "hylink"

Definition at line 61 of file netconfig.h.

◆ NC_ICMP

#define NC_ICMP   "icmp"

Definition at line 76 of file netconfig.h.

◆ NC_IEEE802

#define NC_IEEE802   "ieee802"

Definition at line 64 of file netconfig.h.

◆ NC_IMPLINK

#define NC_IMPLINK   "implink"

Definition at line 49 of file netconfig.h.

◆ NC_INET

#define NC_INET   "inet"

Definition at line 47 of file netconfig.h.

◆ NC_INET6

#define NC_INET6   "inet6"

Definition at line 48 of file netconfig.h.

◆ NC_LAT

#define NC_LAT   "lat"

Definition at line 60 of file netconfig.h.

◆ NC_LOOPBACK

#define NC_LOOPBACK   "loopback"

Definition at line 46 of file netconfig.h.

◆ NC_NBS

#define NC_NBS   "nbs"

Definition at line 53 of file netconfig.h.

◆ NC_NIT

#define NC_NIT   "nit"

Definition at line 63 of file netconfig.h.

◆ NC_NOFLAG

#define NC_NOFLAG   0x00

Definition at line 38 of file netconfig.h.

◆ NC_NOPROTO

#define NC_NOPROTO   "-"

Definition at line 73 of file netconfig.h.

◆ NC_NOPROTOFMLY

#define NC_NOPROTOFMLY   "-"

Definition at line 45 of file netconfig.h.

◆ NC_NS

#define NC_NS   "ns"

Definition at line 52 of file netconfig.h.

◆ NC_OSI

#define NC_OSI   "osi"

Definition at line 65 of file netconfig.h.

◆ NC_OSINET

#define NC_OSINET   "osinet"

Definition at line 67 of file netconfig.h.

◆ NC_PUP

#define NC_PUP   "pup"

Definition at line 50 of file netconfig.h.

◆ NC_SNA

#define NC_SNA   "sna"

Definition at line 57 of file netconfig.h.

◆ NC_TCP

#define NC_TCP   "tcp"

Definition at line 74 of file netconfig.h.

◆ NC_TPI_CLTS

#define NC_TPI_CLTS   1

Definition at line 30 of file netconfig.h.

◆ NC_TPI_COTS

#define NC_TPI_COTS   2

Definition at line 31 of file netconfig.h.

◆ NC_TPI_COTS_ORD

#define NC_TPI_COTS_ORD   3

Definition at line 32 of file netconfig.h.

◆ NC_TPI_RAW

#define NC_TPI_RAW   4

Definition at line 33 of file netconfig.h.

◆ NC_UDP

#define NC_UDP   "udp"

Definition at line 75 of file netconfig.h.

◆ NC_VISIBLE

#define NC_VISIBLE   0x01

Definition at line 39 of file netconfig.h.

◆ NC_X25

#define NC_X25   "x25"

Definition at line 66 of file netconfig.h.

◆ NETCONFIG

#define NETCONFIG   "C:\\ReactOS\\System32\\drivers\\etc\\netconfig"

Definition at line 7 of file netconfig.h.

◆ NETPATH

#define NETPATH   "NETPATH"

Definition at line 8 of file netconfig.h.

Function Documentation

◆ endnetconfig()

int endnetconfig ( void )

Definition at line 373 of file getnetconfig.c.

375 {
376  struct netconfig_vars *nc_handlep = (struct netconfig_vars *)handlep;
377 
378  struct netconfig_list *q, *p;
379 
380  /*
381  * Verify that handle is valid
382  */
383  if (nc_handlep == NULL || (nc_handlep->valid != NC_VALID &&
384  nc_handlep->valid != NC_STORAGE)) {
386  return (-1);
387  }
388 
389  /*
390  * Return 0 if anyone still needs it.
391  */
392  nc_handlep->valid = NC_INVALID;
393  nc_handlep->flag = 0;
394  nc_handlep->nc_configs = NULL;
395  if (--ni.ref > 0) {
396  free(nc_handlep);
397  return(0);
398  }
399 
400  /*
401  * Noone needs these entries anymore, then frees them.
402  * Make sure all info in netconfig_info structure has been reinitialized.
403  */
404  q = p = ni.head;
405  ni.eof = ni.ref = 0;
406  ni.head = NULL;
407  ni.tail = NULL;
408  while (q) {
409  p = q->next;
410  if (q->ncp->nc_lookups != NULL) free(q->ncp->nc_lookups);
411  free(q->ncp);
412  free(q->linep);
413  free(q);
414  q = p;
415  }
416  free(nc_handlep);
417 
418  fclose(nc_file);
419  nc_file = NULL;
420  return (0);
421 }
#define NC_INVALID
Definition: getnetconfig.c:149
static struct netconfig_info ni
Definition: getnetconfig.c:158
#define free
Definition: debug_ros.c:5
#define NC_VALID
Definition: getnetconfig.c:147
#define nc_error
Definition: getnetconfig.c:196
#define NC_STORAGE
Definition: getnetconfig.c:148
smooth NULL
Definition: ftsmooth.c:416
GLdouble GLdouble GLdouble GLdouble q
Definition: gl.h:2063
_Check_return_opt_ _CRTIMP int __cdecl fclose(_Inout_ FILE *_File)
#define NC_NOTINIT
Definition: getnetconfig.c:96
struct netconfig_list * nc_configs
Definition: getnetconfig.c:144
static FILE * nc_file
Definition: getnetconfig.c:157
GLfloat GLfloat p
Definition: glext.h:8902

Referenced by __rpc_endconf(), __rpc_getconfip(), __rpcbind_is_up(), _des_crypt_call(), endnetpath(), getkeyserv_handle(), local_rpcb(), and setnetpath().

◆ endnetpath()

int endnetpath ( void )

Definition at line 191 of file getnetpath.c.

193 {
194  struct netpath_vars *np_sessionp = (struct netpath_vars *)handlep;
195  struct netpath_chain *chainp, *lastp;
196 
197  if (np_sessionp == NULL || np_sessionp->valid != NP_VALID) {
198  errno = EINVAL;
199  return (-1);
200  }
201  if (np_sessionp->nc_handlep != NULL)
202  endnetconfig(np_sessionp->nc_handlep);
203  if (np_sessionp->netpath_start != NULL)
204  free(np_sessionp->netpath_start);
205  for (chainp = np_sessionp->ncp_list; chainp != NULL;
206  lastp=chainp, chainp=chainp->nchain_next, free(lastp)) {
207  freenetconfigent(chainp->ncp);
208  }
209  free(np_sessionp);
210 #ifdef MEM_CHK
211  if (malloc_verify() == 0) {
212  fprintf(stderr, "memory heap corrupted in endnetpath\n");
213  exit(1);
214  }
215 #endif
216  return (0);
217 }
void * nc_handlep
Definition: getnetpath.c:54
Definition: arc.h:39
#define free
Definition: debug_ros.c:5
int errno
#define NP_VALID
Definition: getnetpath.c:60
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
void freenetconfigent(struct netconfig *netconfigp)
Definition: getnetconfig.c:530
smooth NULL
Definition: ftsmooth.c:416
struct netconfig * ncp
Definition: getnetpath.c:47
int endnetconfig(void *handlep)
Definition: getnetconfig.c:373
FILE * stderr
struct netpath_chain * nchain_next
Definition: getnetpath.c:48
char * netpath_start
Definition: getnetpath.c:56
struct netpath_chain * ncp_list
Definition: getnetpath.c:57
void exit(int exitcode)
Definition: _exit.c:33

Referenced by __rpc_endconf().

◆ freenetconfigent()

void freenetconfigent ( struct netconfig )

Definition at line 530 of file getnetconfig.c.

532 {
533  if (netconfigp != NULL) {
534  free(netconfigp->nc_netid); /* holds all netconfigp's strings */
535  if (netconfigp->nc_lookups != NULL)
536  free(netconfigp->nc_lookups);
537  free(netconfigp);
538  }
539  return;
540 }
#define free
Definition: debug_ros.c:5
smooth NULL
Definition: ftsmooth.c:416

Referenced by __rpc_sockinfo2netid(), __rpcb_findaddr_timed(), cache_get(), cache_set(), endnetpath(), get_client_for_netaddr(), nfs41_server_resolve(), pmap_set(), pmap_unset(), and svc_reg().

◆ getnetconfig()

struct netconfig* getnetconfig ( void )

Definition at line 253 of file getnetconfig.c.

255 {
256  struct netconfig_vars *ncp = (struct netconfig_vars *)handlep;
257  char *stringp; /* tmp string pointer */
258  struct netconfig_list *list;
259  struct netconfig *np;
260 
261  /*
262  * Verify that handle is valid
263  */
264  if (ncp == NULL || nc_file == NULL) {
266  return (NULL);
267  }
268 
269  switch (ncp->valid) {
270  case NC_VALID:
271  /*
272  * If entry has already been read into the list,
273  * we return the entry in the linked list.
274  * If this is the first time call, check if there are any entries in
275  * linked list. If no entries, we need to read the netconfig db.
276  * If we have been here and the next entry is there, we just return
277  * it.
278  */
279  if (ncp->flag == 0) { /* first time */
280  ncp->flag = 1;
281  ncp->nc_configs = ni.head;
282  if (ncp->nc_configs != NULL) /* entry already exist */
283  return(ncp->nc_configs->ncp);
284  }
285  else if (ncp->nc_configs != NULL && ncp->nc_configs->next != NULL) {
286  ncp->nc_configs = ncp->nc_configs->next;
287  return(ncp->nc_configs->ncp);
288  }
289 
290  /*
291  * If we cannot find the entry in the list and is end of file,
292  * we give up.
293  */
294  if (ni.eof == 1)
295  return(NULL);
296  break;
297  default:
299  return (NULL);
300  }
301 
302  stringp = (char *) malloc(MAXNETCONFIGLINE);
303  if (stringp == NULL)
304  return (NULL);
305 
306 #ifdef MEM_CHK
307  if (malloc_verify() == 0) {
308  fprintf(stderr, "memory heap corrupted in getnetconfig\n");
309  exit(1);
310  }
311 #endif
312 
313  /*
314  * Read a line from netconfig file.
315  */
316  do {
317  if (fgets(stringp, MAXNETCONFIGLINE, nc_file) == NULL) {
318  free(stringp);
319  ni.eof = 1;
320  return (NULL);
321  }
322  } while (*stringp == '#');
323 
324  list = (struct netconfig_list *) malloc(sizeof (struct netconfig_list));
325  if (list == NULL) {
326  free(stringp);
327  return(NULL);
328  }
329  np = (struct netconfig *) malloc(sizeof (struct netconfig));
330  if (np == NULL) {
331  free(stringp);
332  free(list);
333  return(NULL);
334  }
335  list->ncp = np;
336  list->next = NULL;
337  list->ncp->nc_lookups = NULL;
338  list->linep = stringp;
339  wintirpc_debug("%s: before parse: &list->linep %p, list->linep %p, stringp %p\n", __FUNCTION__, &list->linep, list->linep, stringp);
340  if (parse_ncp(stringp, list->ncp) == -1) {
341  free(stringp);
342  free(np);
343  free(list);
344  return (NULL);
345  } else {
346  wintirpc_debug("%s: after parse: list->linep %p, stringp %p\n", __FUNCTION__, list->linep, stringp);
347  /*
348  * If this is the first entry that's been read, it is the head of
349  * the list. If not, put the entry at the end of the list.
350  * Reposition the current pointer of the handle to the last entry
351  * in the list.
352  */
353  if (ni.head == NULL) { /* first entry */
354  ni.head = ni.tail = list;
355  }
356  else {
357  ni.tail->next = list;
358  ni.tail = ni.tail->next;
359  }
360  ncp->nc_configs = ni.tail;
361  return(ni.tail->ncp);
362  }
363 }
#define MAXNETCONFIGLINE
Definition: getnetconfig.c:160
static struct netconfig_info ni
Definition: getnetconfig.c:158
#define free
Definition: debug_ros.c:5
#define NC_VALID
Definition: getnetconfig.c:147
#define nc_error
Definition: getnetconfig.c:196
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
smooth NULL
Definition: ftsmooth.c:416
struct list * next
Definition: list.h:38
static int parse_ncp(char *, struct netconfig *)
Definition: getnetconfig.c:555
Definition: _list.h:228
#define NC_NOTINIT
Definition: getnetconfig.c:96
_Check_return_opt_ _CRTIMP char *__cdecl fgets(_Out_writes_z_(_MaxCount) char *_Buf, _In_ int _MaxCount, _Inout_ FILE *_File)
struct netconfig_list * nc_configs
Definition: getnetconfig.c:144
static FILE * nc_file
Definition: getnetconfig.c:157
#define list
Definition: rosglue.h:35
FILE * stderr
#define malloc
Definition: debug_ros.c:4
void exit(int exitcode)
Definition: _exit.c:33
#define __FUNCTION__
Definition: types.h:112
static void wintirpc_debug(char *fmt,...)
Definition: getnetconfig.c:49

Referenced by __rpc_getconf(), __rpc_getconfip(), __rpcbind_is_up(), _des_crypt_call(), getkeyserv_handle(), getnetpath(), and local_rpcb().

◆ getnetconfigent()

struct netconfig* getnetconfigent ( const char )

◆ getnetpath()

struct netconfig* getnetpath ( void )

Definition at line 134 of file getnetpath.c.

136 {
137  struct netpath_vars *np_sessionp = (struct netpath_vars *)handlep;
138  struct netconfig *ncp = NULL; /* temp. holds a netconfig session */
139  struct netpath_chain *chainp; /* holds chain of ncp's we alloc */
140  char *npp; /* holds current NETPATH */
141 
142  if (np_sessionp == NULL || np_sessionp->valid != NP_VALID) {
143  errno = EINVAL;
144  return (NULL);
145  }
146  if (np_sessionp->netpath_start == NULL) { /* NETPATH was not set */
147  do { /* select next visible network */
148  if (np_sessionp->nc_handlep == NULL) {
149  np_sessionp->nc_handlep = setnetconfig();
150  if (np_sessionp->nc_handlep == NULL) {
151  //syslog (LOG_ERR, "rpc: failed to open " NETCONFIG);
152  }
153  }
154  if ((ncp = getnetconfig(np_sessionp->nc_handlep)) == NULL) {
155  return(NULL);
156  }
157  } while ((ncp->nc_flag & NC_VISIBLE) == 0);
158  return (ncp);
159  }
160  /*
161  * Find first valid network ID in netpath.
162  */
163  while ((npp = np_sessionp->netpath) != NULL && strlen(npp) != 0) {
164  np_sessionp->netpath = _get_next_token(npp, ':');
165  /*
166  * npp is a network identifier.
167  */
168  if ((ncp = getnetconfigent(npp)) != NULL) {
169  chainp = (struct netpath_chain *) /* cobble alloc chain entry */
170  malloc(sizeof (struct netpath_chain));
171  chainp->ncp = ncp;
172  chainp->nchain_next = NULL;
173  if (np_sessionp->ncp_list == NULL) {
174  np_sessionp->ncp_list = chainp;
175  } else {
176  np_sessionp->ncp_list->nchain_next = chainp;
177  }
178  return (ncp);
179  }
180  /* couldn't find this token in the database; go to next one. */
181  }
182  return (NULL);
183 }
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
void * nc_handlep
Definition: getnetpath.c:54
Definition: arc.h:39
char * _get_next_token(char *, int)
Definition: getnetpath.c:228
int errno
#define NP_VALID
Definition: getnetpath.c:60
struct netconfig * getnetconfig(void *handlep)
Definition: getnetconfig.c:253
smooth NULL
Definition: ftsmooth.c:416
struct netconfig * getnetconfigent(char *netid) const
Definition: getnetconfig.c:432
#define NC_VISIBLE
Definition: netconfig.h:39
struct netconfig * ncp
Definition: getnetpath.c:47
char * netpath
Definition: getnetpath.c:55
struct netpath_chain * nchain_next
Definition: getnetpath.c:48
#define malloc
Definition: debug_ros.c:4
char * netpath_start
Definition: getnetpath.c:56
struct netpath_chain * ncp_list
Definition: getnetpath.c:57
void * setnetconfig()
Definition: getnetconfig.c:217

Referenced by __rpc_getconf().

◆ nc_perror()

void nc_perror ( const char )

◆ nc_sperror()

char* nc_sperror ( void  )

Definition at line 648 of file getnetconfig.c.

649 {
650  const char *message;
651 
652  switch(nc_error) {
653  case NC_NONETCONFIG:
654  message = _nc_errors[0];
655  break;
656  case NC_NOMEM:
657  message = _nc_errors[1];
658  break;
659  case NC_NOTINIT:
660  message = _nc_errors[2];
661  break;
662  case NC_BADFILE:
663  message = _nc_errors[3];
664  break;
665  case NC_NOTFOUND:
666  message = _nc_errors[4];
667  break;
668  default:
669  message = "Unknown network selection error";
670  }
671  /* LINTED const castaway */
672  return ((char *)message);
673 }
Definition: tftpd.h:59
GLenum GLuint GLenum GLsizei const GLchar * message
Definition: glext.h:5579
static const char *const _nc_errors[]
Definition: getnetconfig.c:120
#define nc_error
Definition: getnetconfig.c:196
#define NC_NONETCONFIG
Definition: getnetconfig.c:94
#define NC_NOTINIT
Definition: getnetconfig.c:96
#define NC_NOTFOUND
Definition: getnetconfig.c:98
#define NC_NOMEM
Definition: getnetconfig.c:95
#define NC_BADFILE
Definition: getnetconfig.c:97

Referenced by nc_perror().

◆ setnetconfig()

__BEGIN_DECLS void* setnetconfig ( void  )

Definition at line 217 of file getnetconfig.c.

218 {
219  struct netconfig_vars *nc_vars;
220 
221  if ((nc_vars = (struct netconfig_vars *)malloc(sizeof
222  (struct netconfig_vars))) == NULL) {
223  return(NULL);
224  }
225 
226  /*
227  * For multiple calls, i.e. nc_file is not NULL, we just return the
228  * handle without reopening the netconfig db.
229  */
230  ni.ref++;
231  if ((nc_file != NULL) || (nc_file = fopen(NETCONFIG, "r")) != NULL) {
232  nc_vars->valid = NC_VALID;
233  nc_vars->flag = 0;
234  nc_vars->nc_configs = ni.head;
235  return ((void *)nc_vars);
236  }
237  ni.ref--;
239  free(nc_vars);
240  return (NULL);
241 }
static struct netconfig_info ni
Definition: getnetconfig.c:158
#define free
Definition: debug_ros.c:5
#define NC_VALID
Definition: getnetconfig.c:147
#define nc_error
Definition: getnetconfig.c:196
smooth NULL
Definition: ftsmooth.c:416
#define NC_NONETCONFIG
Definition: getnetconfig.c:94
_Check_return_ _CRTIMP FILE *__cdecl fopen(_In_z_ const char *_Filename, _In_z_ const char *_Mode)
struct netconfig_list * nc_configs
Definition: getnetconfig.c:144
static FILE * nc_file
Definition: getnetconfig.c:157
#define NETCONFIG
Definition: netconfig.h:7
#define malloc
Definition: debug_ros.c:4

Referenced by __rpc_getconfip(), __rpc_setconf(), __rpcbind_is_up(), _des_crypt_call(), getkeyserv_handle(), getnetpath(), local_rpcb(), and setnetpath().

◆ setnetpath()

void* setnetpath ( void  )

Definition at line 78 of file getnetpath.c.

79 {
80 
81  struct netpath_vars *np_sessionp; /* this session's variables */
82  char *npp; /* NETPATH env variable */
83 
84 #ifdef MEM_CHK
85  malloc_debug(1);
86 #endif
87 
88  if ((np_sessionp =
89  (struct netpath_vars *)malloc(sizeof (struct netpath_vars))) == NULL) {
90  return (NULL);
91  }
92  if ((np_sessionp->nc_handlep = setnetconfig()) == NULL) {
93  //syslog (LOG_ERR, "rpc: failed to open " NETCONFIG);
94  return (NULL);
95  }
96  np_sessionp->valid = NP_VALID;
97  np_sessionp->ncp_list = NULL;
98  if ((npp = getenv(NETPATH)) == NULL) {
99  np_sessionp->netpath = NULL;
100  } else {
101  (void) endnetconfig(np_sessionp->nc_handlep);/* won't need nc session*/
102  np_sessionp->nc_handlep = NULL;
103  if ((np_sessionp->netpath = malloc(strlen(npp)+1)) == NULL) {
104  free(np_sessionp);
105  return (NULL);
106  } else {
107  (void) strcpy(np_sessionp->netpath, npp);
108  }
109  }
110  np_sessionp->netpath_start = np_sessionp->netpath;
111  return ((void *)np_sessionp);
112 }
#define NETPATH
Definition: netconfig.h:8
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:47
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
void * nc_handlep
Definition: getnetpath.c:54
#define free
Definition: debug_ros.c:5
#define NP_VALID
Definition: getnetpath.c:60
smooth NULL
Definition: ftsmooth.c:416
int endnetconfig(void *handlep)
Definition: getnetconfig.c:373
_Check_return_ char *__cdecl getenv(_In_z_ const char *_VarName)
char * netpath
Definition: getnetpath.c:55
char * strcpy(char *DstString, const char *SrcString)
Definition: utclib.c:388
#define malloc
Definition: debug_ros.c:4
char * netpath_start
Definition: getnetpath.c:56
struct netpath_chain * ncp_list
Definition: getnetpath.c:57
void * setnetconfig()
Definition: getnetconfig.c:217

Referenced by __rpc_setconf().