diff options
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | nis/nis_callback.c | 4 | ||||
-rw-r--r-- | nis/nss_nis/nis-service.c | 7 | ||||
-rw-r--r-- | nis/nss_nisplus/nisplus-service.c | 12 | ||||
-rw-r--r-- | sunrpc/clnt_udp.c | 2 |
5 files changed, 23 insertions, 13 deletions
@@ -1,3 +1,14 @@ +1999-08-02 Thorsten Kukuk <kukuk@suse.de> + + * nis/nis_callback.c: Fix port problem on big-endian machines + * sunrpc/clnt_udp.c: Cast to uint32_t pointer, not short. RPC + fields are always 32 bit. + Patches from Paul Mackerras <paulus@cs.anu.edu.au> + + * nis/nss_nis/nis-service.c: Remove htons, port is always in + network-byte-order. + * nis/nss_nisplus/nisplus-service.c: Rename number to port. + 1999-08-03 Andreas Schwab <schwab@suse.de> * sysdeps/posix/sigset.c: Unblock the signal after setting its diff --git a/nis/nis_callback.c b/nis/nis_callback.c index eb54644..cf96b42 100644 --- a/nis/nis_callback.c +++ b/nis/nis_callback.c @@ -351,10 +351,10 @@ __nis_create_callback (int (*callback) (const_nis_name, const nis_object *, syslog (LOG_ERR, "NIS+: failed to read local socket info"); return NULL; } - port = sin.sin_port; + port = ntohs (sin.sin_port); get_myaddress (&sin); snprintf (addr, sizeof (addr), "%s.%d.%d", inet_ntoa (sin.sin_addr), - port & 0x00FF, (port & 0xFF00) >> 8); + (port & 0xFF00) >> 8, port & 0x00FF); cb->serv->ep.ep_val[0].uaddr = strdup (addr); return cb; diff --git a/nis/nss_nis/nis-service.c b/nis/nss_nis/nis-service.c index 91bd65b..103b1e4 100644 --- a/nis/nss_nis/nis-service.c +++ b/nis/nss_nis/nis-service.c @@ -1,6 +1,6 @@ -/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. - Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996. + Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as @@ -270,8 +270,7 @@ _nss_nis_getservbyport_r (int port, char *protocol, struct servent *serv, while (!found && ((status = internal_nis_getservent_r (serv, buffer, buflen, errnop, &data)) == NSS_STATUS_SUCCESS)) - if (htons (serv->s_port) == port - && strcmp (serv->s_proto, protocol) == 0) + if (serv->s_port == port && strcmp (serv->s_proto, protocol) == 0) found = 1; internal_nis_endservent (&data); diff --git a/nis/nss_nisplus/nisplus-service.c b/nis/nss_nisplus/nisplus-service.c index 6dfae5e..36bf25a 100644 --- a/nis/nss_nisplus/nisplus-service.c +++ b/nis/nss_nisplus/nisplus-service.c @@ -1,6 +1,6 @@ -/* Copyright (C) 1997, 1998 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. - Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997. + Contributed by Thorsten Kukuk <kukuk@suse.de>, 1997. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as @@ -347,9 +347,9 @@ _nss_nisplus_getservbyname_r (const char *name, const char *protocol, } enum nss_status -_nss_nisplus_getservbynumber_r (const int number, const char *protocol, - struct servent *serv, - char *buffer, size_t buflen, int *errnop) +_nss_nisplus_getservbyport_r (const int number, const char *protocol, + struct servent *serv, + char *buffer, size_t buflen, int *errnop) { if (tablename_val == NULL) { @@ -370,7 +370,7 @@ _nss_nisplus_getservbynumber_r (const int number, const char *protocol, nis_result *result; char buf[60 + strlen (protocol) + tablename_len]; - sprintf (buf, "[number=%d,proto=%s],%s", + sprintf (buf, "[port=%d,proto=%s],%s", number, protocol, tablename_val); result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL); diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c index eeac79c..0733206 100644 --- a/sunrpc/clnt_udp.c +++ b/sunrpc/clnt_udp.c @@ -290,7 +290,7 @@ call_again: /* * the transaction is the first thing in the out buffer */ - (*(u_short *) (cu->cu_outbuf))++; + (*(uint32_t *) (cu->cu_outbuf))++; if ((!XDR_PUTLONG (xdrs, (long *) &proc)) || (!AUTH_MARSHALL (cl->cl_auth, xdrs)) || (!(*xargs) (xdrs, argsp))) |