summaryrefslogtreecommitdiff
path: root/nis
diff options
context:
space:
mode:
Diffstat (limited to 'nis')
-rw-r--r--nis/nis_call.c3
-rw-r--r--nis/nis_mkdir.c24
-rw-r--r--nis/nis_rmdir.c22
-rw-r--r--nis/rpcsvc/yp_prot.h20
4 files changed, 30 insertions, 39 deletions
diff --git a/nis/nis_call.c b/nis/nis_call.c
index fd777f5948..06f63ee52e 100644
--- a/nis/nis_call.c
+++ b/nis/nis_call.c
@@ -289,7 +289,7 @@ __do_niscall2 (const nis_server *server, u_int server_len, u_long prog,
server_len = 1;
if ((dbp = __bind_create (server, server_len, flags)) == NULL)
- return NIS_UNAVAIL;
+ return NIS_NAMEUNREACHABLE;
while (__bind_connect (dbp) != NIS_SUCCESS)
{
if (__bind_next (dbp) != NIS_SUCCESS)
@@ -351,6 +351,7 @@ __do_niscall2 (const nis_server *server, u_int server_len, u_long prog,
break; /* No more servers to search in */
goto again;
}
+ break;
case NIS_FINDDIRECTORY:
if ((((fd_result *)resp)->status == NIS_NOTFOUND) ||
(((fd_result *)resp)->status == NIS_NOSUCHNAME) ||
diff --git a/nis/nis_mkdir.c b/nis/nis_mkdir.c
index b762e93f27..ab693d7da1 100644
--- a/nis/nis_mkdir.c
+++ b/nis/nis_mkdir.c
@@ -24,23 +24,19 @@
nis_error
nis_mkdir (const_nis_name dir, const nis_server *server)
{
- nis_error res;
+ nis_error res, res2;
if (server == NULL)
- {
- if (__do_niscall (dir, NIS_MKDIR, (xdrproc_t) xdr_nis_name,
- (caddr_t) &dir, (xdrproc_t) xdr_nis_error,
- (caddr_t) &res, 0, NULL) != RPC_SUCCESS)
- return NIS_RPCERROR;
- }
- else
- {
- if (__do_niscall2 (server, 1, NIS_MKDIR,
- (xdrproc_t) xdr_nis_name,
+ res2 = __do_niscall (dir, NIS_MKDIR, (xdrproc_t) xdr_nis_name,
(caddr_t) &dir, (xdrproc_t) xdr_nis_error,
- (caddr_t) &res, 0, NULL) != RPC_SUCCESS)
- return NIS_RPCERROR;
- }
+ (caddr_t) &res, 0, NULL);
+ else
+ res2 = __do_niscall2 (server, 1, NIS_MKDIR,
+ (xdrproc_t) xdr_nis_name,
+ (caddr_t) &dir, (xdrproc_t) xdr_nis_error,
+ (caddr_t) &res, 0, NULL);
+ if (res2 != NIS_SUCCESS)
+ return res2;
return res;
}
diff --git a/nis/nis_rmdir.c b/nis/nis_rmdir.c
index adf5924ada..ff84ed81e2 100644
--- a/nis/nis_rmdir.c
+++ b/nis/nis_rmdir.c
@@ -24,23 +24,17 @@
nis_error
nis_rmdir (const_nis_name dir, const nis_server *server)
{
- nis_error res;
+ nis_error res, res2;
if (server == NULL)
- {
- if (__do_niscall (dir, NIS_RMDIR, (xdrproc_t) xdr_nis_name,
+ return NIS_SYSTEMERROR;
+
+ res2 = __do_niscall2 (server, 1, NIS_RMDIR,
+ (xdrproc_t) xdr_nis_name,
(caddr_t) &dir, (xdrproc_t) xdr_nis_error,
- (caddr_t) &res, 0, NULL) != RPC_SUCCESS)
- return NIS_RPCERROR;
- }
- else
- {
- if (__do_niscall2 (server, 1, NIS_RMDIR,
- (xdrproc_t) xdr_nis_name,
- (caddr_t) &dir, (xdrproc_t) xdr_nis_error,
- (caddr_t) &res, 0, NULL) != RPC_SUCCESS)
- return NIS_RPCERROR;
- }
+ (caddr_t) &res, 0, NULL);
+ if (res2 != NIS_SUCCESS)
+ return res2;
return res;
}
diff --git a/nis/rpcsvc/yp_prot.h b/nis/rpcsvc/yp_prot.h
index 42bc54c59d..82f93b49ed 100644
--- a/nis/rpcsvc/yp_prot.h
+++ b/nis/rpcsvc/yp_prot.h
@@ -12,6 +12,8 @@
#include <rpc/rpc.h>
#include <rpcsvc/ypclnt.h>
+__BEGIN_DECLS
+
/*
* The following procedures are supported by the protocol:
*
@@ -72,12 +74,12 @@
typedef struct {
u_int keydat_len;
char *keydat_val;
-} keydat;
+} keydat_t;
typedef struct {
u_int valdat_len;
char *valdat_val;
-} valdat;
+} valdat_t;
struct ypmap_parms {
char *domain; /* Null string means not available */
@@ -93,7 +95,7 @@ struct ypmap_parms {
struct ypreq_key {
const char *domain;
const char *map;
- keydat keydat;
+ keydat_t keydat;
};
struct ypreq_nokey {
@@ -149,7 +151,7 @@ typedef enum ypstat ypstat;
struct ypresp_val {
ypstat status;
- valdat valdat;
+ valdat_t valdat;
};
struct ypresp_key_val {
@@ -160,11 +162,11 @@ struct ypresp_key_val {
implementation somehow must change the order internally. We
don't want to follow this bad example since the user should be
able to use rpcgen on this file. */
- keydat keydat;
- valdat valdat;
+ keydat_t keydat;
+ valdat_t valdat;
#else
- valdat valdat;
- keydat keydat;
+ valdat_t valdat;
+ keydat_t keydat;
#endif
};
@@ -340,8 +342,6 @@ struct ypresp_all {
} ypresp_all_u;
};
-__BEGIN_DECLS
-
extern bool_t xdr_ypreq_key __P ((XDR *__xdrs, struct ypreq_key * __objp));
extern bool_t xdr_ypreq_nokey __P ((XDR *__xdrs, struct ypreq_nokey * __objp));
extern bool_t xdr_ypreq_xfr __P ((XDR *__xdrs, struct ypreq_xfr * __objp));