mirror of
https://sourceware.org/git/glibc.git
synced 2025-09-04 03:22:14 +03:00
Update.
1999-07-09 Ulrich Drepper <drepper@cygnus.com> * Versions.def (libnsl): Add GLIBC_2.2. * nis/Versions (libnsl) [GLIBC_2.2]: Add xdr_ypall. 1999-07-08 Cristian Gafton <gafton@redhat.com> * nis/yp_xdr.c (xdr_ypall): New function.
This commit is contained in:
@@ -1,3 +1,12 @@
|
|||||||
|
1999-07-09 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* Versions.def (libnsl): Add GLIBC_2.2.
|
||||||
|
* nis/Versions (libnsl) [GLIBC_2.2]: Add xdr_ypall.
|
||||||
|
|
||||||
|
1999-07-08 Cristian Gafton <gafton@redhat.com>
|
||||||
|
|
||||||
|
* nis/yp_xdr.c (xdr_ypall): New function.
|
||||||
|
|
||||||
1999-07-09 Andreas Schwab <schwab@suse.de>
|
1999-07-09 Andreas Schwab <schwab@suse.de>
|
||||||
|
|
||||||
* elf/Makefile (headers): Remove bits/dlfcn.h and dlfcn.h.
|
* elf/Makefile (headers): Remove bits/dlfcn.h and dlfcn.h.
|
||||||
|
@@ -32,6 +32,7 @@ libmachuser {
|
|||||||
libnsl {
|
libnsl {
|
||||||
GLIBC_2.0
|
GLIBC_2.0
|
||||||
GLIBC_2.1 GLIBC_2.0
|
GLIBC_2.1 GLIBC_2.0
|
||||||
|
GLIBC_2.2 GLIBC_2.1
|
||||||
}
|
}
|
||||||
libnss_compat {
|
libnss_compat {
|
||||||
GLIBC_2.0
|
GLIBC_2.0
|
||||||
|
@@ -54,6 +54,9 @@ libnsl {
|
|||||||
__nisbind_destroy; __nisbind_next;
|
__nisbind_destroy; __nisbind_next;
|
||||||
readColdStartFile; writeColdStartFile;
|
readColdStartFile; writeColdStartFile;
|
||||||
}
|
}
|
||||||
|
GLIBC_2.2 {
|
||||||
|
xdr_ypall;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
libnss_compat {
|
libnss_compat {
|
||||||
|
45
nis/yp_xdr.c
45
nis/yp_xdr.c
@@ -28,6 +28,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <rpcsvc/yp.h>
|
#include <rpcsvc/yp.h>
|
||||||
|
#include <rpcsvc/ypclnt.h>
|
||||||
|
|
||||||
bool_t
|
bool_t
|
||||||
xdr_ypstat (XDR *xdrs, ypstat *objp)
|
xdr_ypstat (XDR *xdrs, ypstat *objp)
|
||||||
@@ -298,3 +299,47 @@ xdr_ypbind_setdom (XDR *xdrs, ypbind_setdom *objp)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool_t
|
||||||
|
xdr_ypall(XDR *xdrs, struct ypall_callback *incallback)
|
||||||
|
{
|
||||||
|
struct ypresp_key_val out;
|
||||||
|
char key[YPMAXRECORD], val[YPMAXRECORD];
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set up key/val struct to be used during the transaction.
|
||||||
|
*/
|
||||||
|
memset(&out, 0, sizeof out);
|
||||||
|
out.key.keydat_val = key;
|
||||||
|
out.key.keydat_len = sizeof(key);
|
||||||
|
out.val.valdat_val = val;
|
||||||
|
out.val.valdat_len = sizeof(val);
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
bool_t more, status;
|
||||||
|
|
||||||
|
/* Values pending? */
|
||||||
|
if (!xdr_bool(xdrs, &more))
|
||||||
|
return FALSE; /* can't tell! */
|
||||||
|
if (!more)
|
||||||
|
return TRUE; /* no more */
|
||||||
|
|
||||||
|
/* Transfer key/value pair. */
|
||||||
|
status = xdr_ypresp_key_val(xdrs, &out);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If we succeeded, call the callback function.
|
||||||
|
* The callback will return TRUE when it wants
|
||||||
|
* no more values. If we fail, indicate the
|
||||||
|
* error.
|
||||||
|
*/
|
||||||
|
if (status) {
|
||||||
|
if ((*incallback->foreach)(out.stat,
|
||||||
|
(char *)out.key.keydat_val, out.key.keydat_len,
|
||||||
|
(char *)out.val.valdat_val, out.val.valdat_len,
|
||||||
|
incallback->data))
|
||||||
|
return TRUE;
|
||||||
|
} else
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user