summaryrefslogtreecommitdiff
path: root/nis/nis_server.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1997-08-29 21:01:47 +0000
committerUlrich Drepper <drepper@redhat.com>1997-08-29 21:01:47 +0000
commit800d775e426b9c0af63f711b79b09bf540c97456 (patch)
treeff7858571c81f2e6077c5e35b465494052984876 /nis/nis_server.c
parent39e16978c3b4ac8eaf2201fac56316623910d9da (diff)
1997-08-29 21:45 Ulrich Drepper <drepper@cygnus.com> * sunrpc/auth_des.c: New file. Copied from former secure_rpc add-on. * sunrpc/authdes_prot.c: New file. Likewise. * sunrpc/des.h: New file. Likewise. * sunrpc/des_crypt.c: New file. Likewise. * sunrpc/des_soft.c: New file. Likewise. * sunrpc/key_call.c: New file. Likewise. * sunrpc/key_prot.c: New file. Likewise. * sunrpc/netname.c: New file. Likewise. * sunrpc/openchild.c: New file. Likewise. * sunrpc/rtime.c: New file. Likewise. * sunrpc/svc_auth.c: New file. Likewise. * sunrpc/svcauth_des.c: New file. Likewise. * sunrpc/xcrypt.c: New file. Likewise. * sunrpc/rpc/auth.h: New file. Likewise. * sunrpc/rpc/auth_des.h: New file. Likewise. * sunrpc/rpc/des_crypt.h: New file. Likewise. * sunrpc/rpc/key_prot.h: New file. Likewise. * sunrpc/rpcsvc/key_prot.x: New file. Likewise. * sysdeps/generic/svc_auth.h: Removed. * sysdeps/generic/rpc/auth.h: Removed. * sysdeps/generic/rpc/auth_des.h: Removed. * sysdeps/stub/des_impl.c: New file. Stub version for DES. * sunrpc/Makefile (rpcsvc): Add keyprot.x. (headers): Add des_crypt.h and key_prot.h. (routines): Add auth_des, authdes_prot, des_crypt, des_impl, des_soft, key_call, key_prot, netname, openchild, rtime, svcauth_des, xcrypt. (distribute): Add des.h. * db2/Makefile: Add all headers and other files to distribute. (others): Add db_printlog. * sysdeps/mach/hurd/Dist: Add net/* headers. * sysdeps/mach/hurd/mips/Dist: New file. * sysdeps/powerpc/Dist: Add fe_nomask.c and t_sqrt.c. * sysdeps/sparc/Dist: Add sys/trap.h. * sysdeps/sparc/sparc32/Dist: Remove sys/trap.h. * sysdeps/sparc/sparc32/sparcv8/Dist: New file. * sysdeps/unix/sysv/linux/mips/Dist: Add sgidefs.h. * sysdeps/unix/sysv/linux/sparc/Dist: Add sys/trap.h. * sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Remove sys/trap.h. Add previously missing assembler files for PPC. * sysdeps/powerpc/add_n.s: New file. * sysdeps/powerpc/addmul_1.s: New file. * sysdeps/powerpc/lshift.s: New file. * sysdeps/powerpc/memset.s: New file. * sysdeps/powerpc/mul_1.s: New file. * sysdeps/powerpc/rshift.s: New file. * sysdeps/powerpc/strchr.s: New file. * sysdeps/powerpc/strcmp.s: New file. * sysdeps/powerpc/sub_n.s: New file. * sysdeps/powerpc/submul_1.s: New file. 1997-08-28 18:42 Thorsten Kukuk <kukuk@uni-paderborn.de> * nis/nis_server.c: Rewritten to fix a lot of bugs. 1997-08-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * md5-crypt/Makefile (LDFLAGS-md5crypt.so, libmd5crypt-map): New variables. in NLSPATH environment variable. Patch by HJ Lu <hjl@gnu.ai.mit.edu>.
Diffstat (limited to 'nis/nis_server.c')
-rw-r--r--nis/nis_server.c81
1 files changed, 19 insertions, 62 deletions
diff --git a/nis/nis_server.c b/nis/nis_server.c
index 5274a3bfc4..0df608a153 100644
--- a/nis/nis_server.c
+++ b/nis/nis_server.c
@@ -19,7 +19,6 @@
#include <string.h>
#include <rpcsvc/nis.h>
-#include <rpcsvc/nislib.h>
#include "nis_intern.h"
nis_error
@@ -29,42 +28,21 @@ nis_servstate (const nis_server *serv, const nis_tag *tags,
nis_taglist taglist;
nis_taglist tagres;
+ *result = 0;
tagres.tags.tags_len = 0;
tagres.tags.tags_val = NULL;
- *result = NULL;
taglist.tags.tags_len = numtags;
taglist.tags.tags_val = (nis_tag *) tags;
if (serv == NULL)
- {
- if (__do_niscall (NULL, NIS_SERVSTATE, (xdrproc_t) xdr_nis_taglist,
- (caddr_t) &taglist, (xdrproc_t) xdr_nis_taglist,
- (caddr_t) &tagres, 0) != RPC_SUCCESS)
- return NIS_RPCERROR;
- }
- else
- {
- if (__do_niscall2 (serv, 1, NIS_SERVSTATE, (xdrproc_t) xdr_nis_taglist,
- (caddr_t) &taglist, (xdrproc_t) xdr_nis_taglist,
- (caddr_t) &tagres, 0) != RPC_SUCCESS)
- return NIS_RPCERROR;
- }
- if (tagres.tags.tags_len > 0)
- {
- u_long i;
-
- result = malloc (sizeof (nis_tag *) * tagres.tags.tags_len);
- if (result == NULL)
- return NIS_NOMEMORY;
- for (i = 0; i < tagres.tags.tags_len; ++i)
- {
- result[i] = malloc (sizeof (nis_tag));
- if (result[i] == NULL)
- return NIS_NOMEMORY;
- result[i]->tag_val = strdup (tagres.tags.tags_val[i].tag_val);
- result[i]->tag_type = tagres.tags.tags_val[i].tag_type;
- }
- }
+ return NIS_BADOBJECT;
+
+ if (__do_niscall2 (serv, 1, NIS_SERVSTATE, (xdrproc_t) xdr_nis_taglist,
+ (caddr_t) &taglist, (xdrproc_t) xdr_nis_taglist,
+ (caddr_t) &tagres, 0) != RPC_SUCCESS)
+ return NIS_RPCERROR;
+
+ *result = tagres.tags.tags_val;
return NIS_SUCCESS;
}
@@ -76,42 +54,21 @@ nis_stats (const nis_server *serv, const nis_tag *tags,
nis_taglist taglist;
nis_taglist tagres;
+ *result = NULL;
tagres.tags.tags_len = 0;
tagres.tags.tags_val = NULL;
- *result = NULL;
taglist.tags.tags_len = numtags;
taglist.tags.tags_val = (nis_tag *) tags;
if (serv == NULL)
- {
- if (__do_niscall (NULL, NIS_STATUS, (xdrproc_t) xdr_nis_taglist,
- (caddr_t) &taglist, (xdrproc_t) xdr_nis_taglist,
- (caddr_t) &tagres, 0) != RPC_SUCCESS)
- return NIS_RPCERROR;
- }
- else
- {
- if (__do_niscall2 (serv, 1, NIS_STATUS, (xdrproc_t) xdr_nis_taglist,
- (caddr_t) &taglist, (xdrproc_t) xdr_nis_taglist,
- (caddr_t) &tagres, 0) != RPC_SUCCESS)
- return NIS_RPCERROR;
- }
- if (tagres.tags.tags_len > 0)
- {
- u_long i;
-
- result = malloc (sizeof (nis_tag *) * tagres.tags.tags_len);
- if (result == NULL)
- return NIS_NOMEMORY;
- for (i = 0; i < tagres.tags.tags_len; ++i)
- {
- result[i] = malloc (sizeof (nis_tag));
- if (result[i] == NULL)
- return NIS_NOMEMORY;
- result[i]->tag_val = strdup (tagres.tags.tags_val[i].tag_val);
- result[i]->tag_type = tagres.tags.tags_val[i].tag_type;
- }
- }
+ return NIS_BADOBJECT;
+
+ if (__do_niscall2 (serv, 1, NIS_STATUS, (xdrproc_t) xdr_nis_taglist,
+ (caddr_t) &taglist, (xdrproc_t) xdr_nis_taglist,
+ (caddr_t) &tagres, 0) != RPC_SUCCESS)
+ return NIS_RPCERROR;
+
+ *result = tagres.tags.tags_val;
return NIS_SUCCESS;
}
@@ -122,6 +79,6 @@ nis_freetags (nis_tag *tags, const int numtags)
int i;
for (i = 0; i < numtags; ++i)
- free (tags->tag_val);
+ free (tags[i].tag_val);
free (tags);
}