Define as __pwrite and make pwrite weak alias.
[kopensolaris-gnu/glibc.git] / nis / ypclnt.c
index cc510b9..c8db8a8 100644 (file)
@@ -21,7 +21,9 @@
 #include <unistd.h>
 #include <fcntl.h>
 #include <bits/libc-lock.h>
+#include <rpc/auth.h>
 #include <rpc/rpc.h>
+#include <rpcsvc/nis.h>
 #include <rpcsvc/yp.h>
 #include <rpcsvc/ypclnt.h>
 #include <rpcsvc/ypupd.h>
@@ -39,7 +41,7 @@ typedef struct dom_binding dom_binding;
 
 static struct timeval TIMEOUT = {25, 0};
 static int const MAXTRIES = 5;
-static char __ypdomainname[MAXHOSTNAMELEN + 1] = "\0";
+static char __ypdomainname[NIS_MAXNAMELEN + 1] = "\0";
 __libc_lock_define_initialized (static, ypbindlist_lock)
 static dom_binding *__ypbindlist = NULL;
 
@@ -129,12 +131,15 @@ __yp_bind (const char *domain, dom_binding ** ypdb)
                          (caddr_t) &ypbr, TIMEOUT) != RPC_SUCCESS)
             {
               clnt_destroy (client);
+             close (clnt_sock);
               if (is_new)
                 free (ysd);
               return YPERR_YPBIND;
             }
 
           clnt_destroy (client);
+         close (clnt_sock);
+
           if (ypbr.ypbind_status != YPBIND_SUCC_VAL)
             {
               switch (ypbr.ypbind_resp_u.ypbind_error)
@@ -173,7 +178,10 @@ __yp_bind (const char *domain, dom_binding ** ypdb)
         }
 
       if (ysd->dom_client)
-        clnt_destroy (ysd->dom_client);
+       {
+         clnt_destroy (ysd->dom_client);
+         close (ysd->dom_socket);
+       }
       ysd->dom_socket = RPC_ANYSOCK;
       ysd->dom_client = clntudp_create (&ysd->dom_server_addr, YPPROG, YPVERS,
                                         TIMEOUT, &ysd->dom_socket);
@@ -305,7 +313,7 @@ yp_get_default_domain (char **outdomain)
 
   if (__ypdomainname[0] == '\0')
     {
-      if (getdomainname (__ypdomainname, MAXHOSTNAMELEN))
+      if (getdomainname (__ypdomainname, NIS_MAXNAMELEN))
        result = YPERR_NODOM;
       else
        *outdomain = __ypdomainname;
@@ -620,7 +628,7 @@ yp_all (const char *indomain, const char *inmap,
       clnt = clnttcp_create (&clnt_sin, YPPROG, YPVERS, &clnt_sock, 0, 0);
       if (clnt == NULL)
        {
-         puts ("yp_all: clnttcp_create failed");
+         puts (_("yp_all: clnttcp_create failed"));
          __libc_lock_unlock (ypbindlist_lock);
          return YPERR_PMAP;
        }
@@ -634,18 +642,16 @@ yp_all (const char *indomain, const char *inmap,
                          (caddr_t) &req, (xdrproc_t) __xdr_ypresp_all,
                          (caddr_t) &status, TIMEOUT);
 
+      clnt_destroy (clnt);
+      close (clnt_sock);
       if (result != RPC_SUCCESS)
        {
          clnt_perror (ydb->dom_client, "yp_all: clnt_call");
-         clnt_destroy (clnt);
          __yp_unbind (ydb);
          result = YPERR_RPC;
        }
       else
-       {
-         clnt_destroy (clnt);
-         result = YPERR_SUCCESS;
-       }
+       result = YPERR_SUCCESS;
 
       __libc_lock_unlock (ypbindlist_lock);
 
@@ -782,7 +788,6 @@ int
 yp_update (char *domain, char *map, unsigned ypop,
           char *key, int keylen, char *data, int datalen)
 {
-#if defined (HAVE_SECURE_RPC)
   union
     {
       ypupdate_args update_args;
@@ -867,7 +872,4 @@ again:
       return YPERR_RPC;
     }
   return res;
-#else
-  return YPERR_YPERR;
-#endif
 }