diff options
author | sc | 2000-11-29 12:46:27 +0000 |
---|---|---|
committer | sc | 2000-11-29 12:46:27 +0000 |
commit | 4a8e1c0e43f7c70d84d1f0b850e66a32c00a47b8 (patch) | |
tree | 9af86f0958857c486478a67a6a64fb60ea5ce6e1 /comm | |
parent | d0d03e43ecca9bfd78fa5a861b7914c6a1b90274 (diff) | |
download | ivy-league-4a8e1c0e43f7c70d84d1f0b850e66a32c00a47b8.zip ivy-league-4a8e1c0e43f7c70d84d1f0b850e66a32c00a47b8.tar.gz ivy-league-4a8e1c0e43f7c70d84d1f0b850e66a32c00a47b8.tar.bz2 ivy-league-4a8e1c0e43f7c70d84d1f0b850e66a32c00a47b8.tar.xz |
Chose a consistent convention for INET addresses: they are
stored in objects in 'network' representation, and manipulated
outside object in 'host' representation. The corresponding
calls to hton{sl} and ntoh{sl} have been added
Diffstat (limited to 'comm')
-rw-r--r-- | comm/Address.cc | 3 | ||||
-rw-r--r-- | comm/InetAddress.cc | 17 | ||||
-rw-r--r-- | comm/InetAddress.h | 4 |
3 files changed, 13 insertions, 11 deletions
diff --git a/comm/Address.cc b/comm/Address.cc index 01bc037..e0e4f4b 100644 --- a/comm/Address.cc +++ b/comm/Address.cc @@ -132,7 +132,8 @@ IvlAddress :: Decode (GEN_ADDR* addr, int alen) return new IvlIrdaAddress (addr->sir.sir_name); #endif case AF_INET : - return new IvlInetAddress (addr->si.sin_addr.s_addr, addr->si.sin_port); + return new IvlInetAddress (ntohl (addr->si.sin_addr.s_addr), + ntohs (addr->si.sin_port)); default : return 0; diff --git a/comm/InetAddress.cc b/comm/InetAddress.cc index ffb374e..7b3e5aa 100644 --- a/comm/InetAddress.cc +++ b/comm/InetAddress.cc @@ -9,7 +9,7 @@ * INET Addresses * * $Id$ - * $CurLog$ + * $CurLog$< * Created from Address.cc */ @@ -87,7 +87,7 @@ IvlInetAddress :: IvlInetAddress (lword host, sword port) { Addr.sin_family = AF_INET; Addr.sin_port = htons (port); - Addr.sin_addr.s_addr = host; + Addr.sin_addr.s_addr = htonl (host); Valid = true; } @@ -157,23 +157,24 @@ IvlInetAddress :: LoopBack () return loopback = * ((lword *) host->h_addr); } -#ifdef DOC -// Ca c'est les super fake declarations pour avoir la DOC -// merci au LRI... /*? Return the host number of the address. ?*/ lword IvlInetAddress :: Host () -{} +{ + return ntohl (Addr.sin_addr.s_addr); +} /*? Return the port number of the address. ?*/ sword IvlInetAddress :: Port () -{} -#endif /* DOC */ +{ + return ntohs (Addr.sin_port); +} + /*? Return a const string representing the hostname part of the address if any diff --git a/comm/InetAddress.h b/comm/InetAddress.h index eec1490..9a9f842 100644 --- a/comm/InetAddress.h +++ b/comm/InetAddress.h @@ -37,8 +37,8 @@ public: int Family (); int Length (); SockAddr* GetSockAddr (); -inline sword Port () { return Addr.sin_port; } -inline lword Host () { return Addr.sin_addr.s_addr; } + sword Port (); + lword Host (); char* StrRepr (char* buf = 0); const char* GetHostName (); |