Define as __pwrite and make pwrite weak alias.
[kopensolaris-gnu/glibc.git] / nis / ypclnt.c
index 8559714..c8db8a8 100644 (file)
@@ -21,6 +21,7 @@
 #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>
@@ -130,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)
@@ -174,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);
@@ -621,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;
        }
@@ -635,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);
 
@@ -783,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;
@@ -868,7 +872,4 @@ again:
       return YPERR_RPC;
     }
   return res;
-#else
-  return YPERR_YPERR;
-#endif
 }