From 80c96e8e6f452d6d9803f5a2e17030658f30afc4 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 2 Nov 2004 12:26:42 +0000 Subject: Updated to fedora-glibc-20041102T1153 --- nis/nis_call.c | 91 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 46 insertions(+), 45 deletions(-) (limited to 'nis/nis_call.c') diff --git a/nis/nis_call.c b/nis/nis_call.c index d65b1ddac7..14041a160c 100644 --- a/nis/nis_call.c +++ b/nis/nis_call.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1998, 2001, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1997. @@ -31,8 +31,8 @@ #include "nis_xdr.h" #include "nis_intern.h" -static struct timeval RPCTIMEOUT = {10, 0}; -static struct timeval UDPTIMEOUT = {5, 0}; +static const struct timeval RPCTIMEOUT = {10, 0}; +static const struct timeval UDPTIMEOUT = {5, 0}; extern u_short __pmap_getnisport (struct sockaddr_in *address, u_long program, u_long version, u_int protocol); @@ -71,6 +71,7 @@ __nisbind_destroy (dir_binding *bind) clnt_destroy (bind->clnt); } } +libnsl_hidden_def (__nisbind_destroy) nis_error __nisbind_next (dir_binding *bind) @@ -114,6 +115,7 @@ __nisbind_next (dir_binding *bind) return NIS_FAIL; } +libnsl_hidden_def (__nisbind_next) nis_error __nisbind_connect (dir_binding *dbp) @@ -150,7 +152,7 @@ __nisbind_connect (dir_binding *dbp) if (dbp->clnt == NULL) return NIS_RPCERROR; - clnt_control (dbp->clnt, CLSET_TIMEOUT, (caddr_t)&RPCTIMEOUT); + clnt_control (dbp->clnt, CLSET_TIMEOUT, (caddr_t) &RPCTIMEOUT); /* If the program exists, close the socket */ if (fcntl (dbp->socket, F_SETFD, 1) == -1) perror ("fcntl: F_SETFD"); @@ -159,12 +161,15 @@ __nisbind_connect (dir_binding *dbp) { if (serv->key_type == NIS_PK_DH) { - char netname[MAXNETNAMELEN+1]; + char netname[MAXNETNAMELEN + 1]; char *p; p = stpcpy (netname, "unix."); - strncpy (p, serv->name,MAXNETNAMELEN-5); + strncpy (p, serv->name, MAXNETNAMELEN - 5); netname[MAXNETNAMELEN] = '\0'; + // XXX What is this supposed to do? If we really want to replace + // XXX the first dot, then we might as well use unix@ as the + // XXX prefix string. --drepper p = strchr (netname, '.'); *p = '@'; dbp->clnt->cl_auth = @@ -179,6 +184,7 @@ __nisbind_connect (dir_binding *dbp) return NIS_SUCCESS; } +libnsl_hidden_def (__nisbind_connect) nis_error __nisbind_create (dir_binding *dbp, const nis_server *serv_val, @@ -216,6 +222,7 @@ __nisbind_create (dir_binding *dbp, const nis_server *serv_val, return NIS_SUCCESS; } +libnsl_hidden_def (__nisbind_create) /* __nisbind_connect (dbp) must be run before calling this function ! So we could use the same binding twice */ @@ -244,7 +251,7 @@ __do_niscall3 (dir_binding *dbp, u_long prog, xdrproc_t xargs, caddr_t req, if ((((nis_result *)resp)->status == NIS_CBRESULTS) && (cb != NULL)) { - __nis_do_callback(dbp, &((nis_result *)resp)->cookie, cb); + __nis_do_callback (dbp, &((nis_result *) resp)->cookie, cb); break; } /* Yes, the missing break is correct. If we doesn't have to @@ -258,9 +265,9 @@ __do_niscall3 (dir_binding *dbp, u_long prog, xdrproc_t xargs, caddr_t req, case NIS_IBREMOVE: case NIS_IBFIRST: case NIS_IBNEXT: - if ((((nis_result *)resp)->status == NIS_SYSTEMERROR) || - (((nis_result *)resp)->status == NIS_NOSUCHNAME) || - (((nis_result *)resp)->status == NIS_NOT_ME)) + if (((nis_result *)resp)->status == NIS_SYSTEMERROR + || ((nis_result *)resp)->status == NIS_NOSUCHNAME + || ((nis_result *)resp)->status == NIS_NOT_ME) { if (__nisbind_next (dbp) == NIS_SUCCESS) { @@ -276,9 +283,9 @@ __do_niscall3 (dir_binding *dbp, u_long prog, xdrproc_t xargs, caddr_t req, } break; case NIS_FINDDIRECTORY: - if ((((fd_result *)resp)->status == NIS_SYSTEMERROR) || - (((fd_result *)resp)->status == NIS_NOSUCHNAME) || - (((fd_result *)resp)->status == NIS_NOT_ME)) + if (((fd_result *)resp)->status == NIS_SYSTEMERROR + || ((fd_result *)resp)->status == NIS_NOSUCHNAME + || ((fd_result *)resp)->status == NIS_NOT_ME) { if (__nisbind_next (dbp) == NIS_SUCCESS) { @@ -295,9 +302,9 @@ __do_niscall3 (dir_binding *dbp, u_long prog, xdrproc_t xargs, caddr_t req, break; case NIS_DUMPLOG: /* log_result */ case NIS_DUMP: - if ((((log_result *)resp)->lr_status == NIS_SYSTEMERROR) || - (((log_result *)resp)->lr_status == NIS_NOSUCHNAME) || - (((log_result *)resp)->lr_status == NIS_NOT_ME)) + if (((log_result *)resp)->lr_status == NIS_SYSTEMERROR + || ((log_result *)resp)->lr_status == NIS_NOSUCHNAME + || ((log_result *)resp)->lr_status == NIS_NOT_ME) { if (__nisbind_next (dbp) == NIS_SUCCESS) { @@ -339,10 +346,8 @@ __do_niscall2 (const nis_server *server, u_int server_len, u_long prog, return status; while (__nisbind_connect (&dbp) != NIS_SUCCESS) - { - if (__nisbind_next (&dbp) != NIS_SUCCESS) - return NIS_NAMEUNREACHABLE; - } + if (__nisbind_next (&dbp) != NIS_SUCCESS) + return NIS_NAMEUNREACHABLE; status = __do_niscall3 (&dbp, prog, xargs, req, xres, resp, flags, cb); @@ -383,11 +388,11 @@ rec_dirsearch (const_nis_name name, directory_obj *dir, nis_error *status) __free_fdresult (fd_res); return dir; } - obj = calloc(1, sizeof(directory_obj)); - xdrmem_create(&xdrs, fd_res->dir_data.dir_data_val, - fd_res->dir_data.dir_data_len, XDR_DECODE); - _xdr_directory_obj(&xdrs, obj); - xdr_destroy(&xdrs); + obj = calloc (1, sizeof (directory_obj)); + xdrmem_create (&xdrs, fd_res->dir_data.dir_data_val, + fd_res->dir_data.dir_data_len, XDR_DECODE); + _xdr_directory_obj (&xdrs, obj); + xdr_destroy (&xdrs); __free_fdresult (fd_res); if (obj != NULL) { @@ -408,9 +413,9 @@ rec_dirsearch (const_nis_name name, directory_obj *dir, nis_error *status) { directory_obj *obj; size_t namelen = strlen (name); - char leaf [namelen + 3]; - char domain [namelen + 3]; - char ndomain [namelen + 3]; + char leaf[namelen + 3]; + char domain[namelen + 3]; + char ndomain[namelen + 3]; char *cp; u_int run = 0; @@ -478,10 +483,10 @@ rec_dirsearch (const_nis_name name, directory_obj *dir, nis_error *status) static directory_obj * first_shoot (const_nis_name name, directory_obj *dir) { - directory_obj *obj; + directory_obj *obj = NULL; fd_result *fd_res; XDR xdrs; - char domain [strlen (name) + 3]; + char domain[strlen (name) + 3]; if (nis_dir_cmp (name, dir->do_name) == SAME_NAME) return dir; @@ -492,25 +497,21 @@ first_shoot (const_nis_name name, directory_obj *dir) return dir; fd_res = __nis_finddirectory (dir, domain); - if (fd_res->status != NIS_SUCCESS) + if (fd_res->status == NIS_SUCCESS + && (obj = calloc (1, sizeof (directory_obj))) != NULL) { - __free_fdresult (fd_res); - return NULL; + xdrmem_create(&xdrs, fd_res->dir_data.dir_data_val, + fd_res->dir_data.dir_data_len, XDR_DECODE); + _xdr_directory_obj (&xdrs, obj); + xdr_destroy (&xdrs); } - obj = calloc(1, sizeof(directory_obj)); - if (obj == NULL) - return NULL; - xdrmem_create(&xdrs, fd_res->dir_data.dir_data_val, - fd_res->dir_data.dir_data_len, XDR_DECODE); - _xdr_directory_obj (&xdrs, obj); - xdr_destroy (&xdrs); + __free_fdresult (fd_res); + if (obj != NULL) - { - nis_free_directory (dir); - return obj; - } - return NULL; + nis_free_directory (dir); + + return obj; } nis_error -- cgit v1.2.3