summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArch Librarian <arch@canonical.com>2004-09-20 16:56:08 +0000
committerArch Librarian <arch@canonical.com>2004-09-20 16:56:08 +0000
commit82e0333ea55e90468bf7531dcd8dcb74057ac459 (patch)
tree15a5d6a47c1544f6e1f79d5c7ba109ddcefe4caa
parent9b148dad600b3fe76d38e612c1865f85bbab254f (diff)
Bug fixes to rfc2553 emulation
Author: jgg Date: 2000-06-18 06:04:45 GMT Bug fixes to rfc2553 emulation
-rw-r--r--methods/rfc2553emu.cc8
-rw-r--r--methods/rfc2553emu.h13
2 files changed, 16 insertions, 5 deletions
diff --git a/methods/rfc2553emu.cc b/methods/rfc2553emu.cc
index 05d9f0c32..22daa2231 100644
--- a/methods/rfc2553emu.cc
+++ b/methods/rfc2553emu.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: rfc2553emu.cc,v 1.6 1999/12/11 02:11:10 jgg Exp $
+// $Id: rfc2553emu.cc,v 1.7 2000/06/18 06:04:45 jgg Exp $
/* ######################################################################
RFC 2553 Emulation - Provides emulation for RFC 2553 getaddrinfo,
@@ -202,9 +202,9 @@ int getnameinfo(const struct sockaddr *sa, socklen_t salen,
{
struct servent *Ent;
if ((flags & NI_DATAGRAM) == NI_DATAGRAM)
- Ent = getservbyport(sin->sin_port,"udp");
+ Ent = getservbyport(ntohs(sin->sin_port),"udp");
else
- Ent = getservbyport(sin->sin_port,"tcp");
+ Ent = getservbyport(ntohs(sin->sin_port),"tcp");
if (Ent != 0)
strncpy(serv,Ent->s_name,servlen);
@@ -220,7 +220,7 @@ int getnameinfo(const struct sockaddr *sa, socklen_t salen,
// Resolve as a plain numberic
if ((flags & NI_NUMERICSERV) == NI_NUMERICSERV)
{
- snprintf(serv,servlen,"%u",sin->sin_port);
+ snprintf(serv,servlen,"%u",ntohs(sin->sin_port));
}
}
diff --git a/methods/rfc2553emu.h b/methods/rfc2553emu.h
index 86765b3cc..b15facb31 100644
--- a/methods/rfc2553emu.h
+++ b/methods/rfc2553emu.h
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: rfc2553emu.h,v 1.3 1999/12/10 07:21:52 jgg Exp $
+// $Id: rfc2553emu.h,v 1.4 2000/06/18 06:04:45 jgg Exp $
/* ######################################################################
RFC 2553 Emulation - Provides emulation for RFC 2553 getaddrinfo,
@@ -74,6 +74,11 @@
#define EAI_MEMORY -11
#endif
+ /* If we don't have getaddrinfo then we probably don't have
+ sockaddr_storage either (same RFC) so we definately will not be
+ doing any IPv6 stuff. Do not use the members of this structure to
+ retain portability, cast to a sockaddr. */
+ #define sockaddr_storage sockaddr_in
#endif
// getnameinfo support (glibc2.0 has getaddrinfo only)
@@ -97,6 +102,12 @@
#define NI_DATAGRAM (1<<4)
#endif
+ #define sockaddr_storage sockaddr_in
+#endif
+
+// Glibc 2.0.7 misses this one
+#ifndef AI_NUMERICHOST
+#define AI_NUMERICHOST 0
#endif
#endif