summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjha <jha@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-07-27 19:47:07 +0000
committerjha <jha@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-07-27 19:47:07 +0000
commit2dee8abd859797b4153320caae4bf6154238f7cb (patch)
treeb2ddf3c9ad7d27e8d9485730401bf0c1400b2927
parent00e5b6eaa0584a275fc3992039371eb7afb5e046 (diff)
downloadATCD-2dee8abd859797b4153320caae4bf6154238f7cb.tar.gz
Incorporated code to allow for IPv6 compiled code to work on IPv4 only
machines. This is used in the case where IPv6 is not yet enabled in the kernel, but the same executable needs to be run on that machine.
-rw-r--r--ace/INET_Addr.cpp40
-rw-r--r--ace/INET_Addr.h2
-rw-r--r--ace/INET_Addr.i18
-rw-r--r--ace/Makefile29
-rw-r--r--ace/OS.h7
-rw-r--r--ace/RMCast/Makefile8
-rw-r--r--ace/SOCK_CODgram.h1
-rw-r--r--ace/SOCK_Dgram.h1
-rw-r--r--protocols/ace/RMCast/Makefile8
9 files changed, 90 insertions, 24 deletions
diff --git a/ace/INET_Addr.cpp b/ace/INET_Addr.cpp
index c83733aa09e..0be23d31d77 100644
--- a/ace/INET_Addr.cpp
+++ b/ace/INET_Addr.cpp
@@ -36,17 +36,29 @@ ACE_INET_Addr::protocol_family (void)
if (ACE_INET_Addr::protocol_family_ == -1)
{
int s = socket(PF_INET6,SOCK_DGRAM,0);
- if(s == -1)
- ACE_INET_Addr::protocol_family_ = PF_INET;
- else {
+ if(s == -1) {
+// printf("Setting protocol_family_ to PF_INET\n");
ACE_INET_Addr::protocol_family_ = PF_INET;
+ } else {
+// printf("Setting protocol_family_ to PF_INET6\n");
+ ACE_INET_Addr::protocol_family_ = PF_INET6;
close(s);
}
}
}
+// printf("returning protocol_family %d %s from ACE_INET_Addr\n",ACE_INET_Addr::protocol_family_, ACE_INET_Addr::protocol_family_ == PF_INET ? "PF_INET" : "PF_INET6");
return ACE_INET_Addr::protocol_family_;
}
+int
+ACE_INET_Addr::address_family (void)
+{
+ if(ACE_INET_Addr::protocol_family() == PF_INET6)
+ return AF_INET6;
+ else
+ return AF_INET;
+}
+
#endif /* ACE_USES_IPV4_IPV6_MIGRATION */
int
@@ -118,7 +130,7 @@ ACE_INET_Addr::operator == (const ACE_INET_Addr &sap) const
}
ACE_INET_Addr::ACE_INET_Addr (void)
- : ACE_Addr (ACE_ADDRESS_FAMILY_INET, this->addr_size())
+ : ACE_Addr (ACE_ADDRESS_FAMILY_INET, this->get_addr_size())
{
// ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
this->initialize();
@@ -137,9 +149,9 @@ ACE_INET_Addr::set (const ACE_INET_Addr &sa)
this->initialize();
else
// It's ok to make the copy.
- (void) ACE_OS::memcpy ((void *) this->addr_pointer(),
- (void *) sa.addr_pointer(),
- this->addr_size());
+ (void) ACE_OS::memcpy ((void *) this->get_addr(),
+ (void *) sa.get_addr(),
+ this->get_addr_size());
return 0;
}
@@ -198,7 +210,7 @@ ACE_INET_Addr::set (const char address[])
}
ACE_INET_Addr::ACE_INET_Addr (const char address[])
- : ACE_Addr (ACE_ADDRESS_FAMILY_INET, this->addr_size())
+ : ACE_Addr (ACE_ADDRESS_FAMILY_INET, this->get_addr_size())
{
ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
this->set (address);
@@ -206,7 +218,7 @@ ACE_INET_Addr::ACE_INET_Addr (const char address[])
#if defined (ACE_HAS_WCHAR)
ACE_INET_Addr::ACE_INET_Addr (const wchar_t address[])
- : ACE_Addr (ACE_ADDRESS_FAMILY_INET, this->addr_size())
+ : ACE_Addr (ACE_ADDRESS_FAMILY_INET, this->get_addr_size())
{
ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
this->set (address);
@@ -217,7 +229,7 @@ ACE_INET_Addr::ACE_INET_Addr (const wchar_t address[])
// Copy constructor.
ACE_INET_Addr::ACE_INET_Addr (const ACE_INET_Addr &sa)
- : ACE_Addr (ACE_ADDRESS_FAMILY_INET, this->addr_size())
+ : ACE_Addr (ACE_ADDRESS_FAMILY_INET, this->get_addr_size())
{
ACE_TRACE ("ACE_INET_Addr::ACE_INET_Addr");
this->set (sa);
@@ -259,7 +271,7 @@ ACE_INET_Addr::set (u_short port_number,
ACE_UINT32 addrv4;
- this->ACE_Addr::base_set (ACE_ADDRESS_FAMILY_INET,this->addr_size());
+ this->ACE_Addr::base_set (ACE_ADDRESS_FAMILY_INET,this->get_addr_size());
this->initialize();
// Yow, someone gave us a NULL host_name!
@@ -703,7 +715,7 @@ int ACE_INET_Addr::set_address (const char *ip_addr,
{
ACE_TRACE ("ACE_INET_Addr::set");
- this->ACE_Addr::base_set (ACE_ADDRESS_FAMILY_INET, this->addr_size());
+ this->ACE_Addr::base_set (ACE_ADDRESS_FAMILY_INET, this->get_addr_size());
#if defined (ACE_HAS_IPV6)
#if defined (ACE_USES_IPV4_IPV6_MIGRATION)
@@ -867,8 +879,8 @@ size_t ACE_INET_Addr::addr_size(void) const
void ACE_INET_Addr::initialize(void)
{
- (void) ACE_OS::memset ((void *) this->addr_pointer(),
- 0, this->addr_size());
+ (void) ACE_OS::memset ((void *) this->get_addr(),
+ 0, this->get_addr_size());
#if defined (ACE_HAS_IPV6)
#if defined (ACE_USES_IPV4_IPV6_MIGRATION)
diff --git a/ace/INET_Addr.h b/ace/INET_Addr.h
index 1cae73fc655..782e1a44982 100644
--- a/ace/INET_Addr.h
+++ b/ace/INET_Addr.h
@@ -188,6 +188,7 @@ public:
/// Return a pointer to the underlying network address.
virtual void *get_addr (void) const;
+ int get_addr_size(void) const;
/// Set a pointer to the address.
virtual void set_addr (void *, int len);
@@ -293,6 +294,7 @@ public:
#if defined (ACE_USES_IPV4_IPV6_MIGRATION)
static int protocol_family(void);
+ static int address_family(void);
#endif
/// Dump the state of an object.
diff --git a/ace/INET_Addr.i b/ace/INET_Addr.i
index 0abe355d316..b4ebd90d0a8 100644
--- a/ace/INET_Addr.i
+++ b/ace/INET_Addr.i
@@ -47,6 +47,24 @@ ACE_INET_Addr::get_addr (void) const
#endif
}
+ACE_INLINE int
+ACE_INET_Addr::get_addr_size (void) const
+{
+ ACE_TRACE ("ACE_INET_Addr::get_addr_size");
+#if defined (ACE_HAS_IPV6)
+
+#if defined (ACE_USES_IPV4_IPV6_MIGRATION)
+ if(ACE_INET_Addr::protocol_family() == PF_INET)
+ return sizeof this->inet_addr4_;
+ else
+#endif
+ return sizeof this->inet_addr6_;
+#else
+ return sizeof this->inet_addr4_;
+#endif
+}
+
+
ACE_INLINE u_long
ACE_INET_Addr::hash (void) const
{
diff --git a/ace/Makefile b/ace/Makefile
index 4fe6c423c2b..097d0c27d59 100644
--- a/ace/Makefile
+++ b/ace/Makefile
@@ -6132,7 +6132,24 @@ endif # GHS
$(ACE_ROOT)/ace/Log_Priority.h \
$(ACE_ROOT)/ace/Log_Record.i \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp
.obj/IPC_SAP.o .obj/IPC_SAP.so .shobj/IPC_SAP.o .shobj/IPC_SAP.so: IPC_SAP.cpp \
$(ACE_ROOT)/ace/IPC_SAP.h \
@@ -6337,6 +6354,8 @@ endif # GHS
$(ACE_ROOT)/ace/SOCK_CODgram.h \
$(ACE_ROOT)/ace/SOCK_IO.h \
$(ACE_ROOT)/ace/SOCK_IO.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
$(ACE_ROOT)/ace/SOCK_CODgram.i \
$(ACE_ROOT)/ace/LSOCK_CODgram.i \
$(ACE_ROOT)/ace/Log_Msg.h \
@@ -6458,6 +6477,8 @@ endif # GHS
$(ACE_ROOT)/ace/IPC_SAP.h \
$(ACE_ROOT)/ace/IPC_SAP.i \
$(ACE_ROOT)/ace/SOCK.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
$(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/LSOCK.h \
$(ACE_ROOT)/ace/LSOCK.i \
@@ -6697,6 +6718,8 @@ endif # GHS
$(ACE_ROOT)/ace/IPC_SAP.i \
$(ACE_ROOT)/ace/SOCK.i \
$(ACE_ROOT)/ace/SOCK_IO.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
$(ACE_ROOT)/ace/SOCK_CODgram.i \
$(ACE_ROOT)/ace/Log_Msg.h \
$(ACE_ROOT)/ace/Log_Record.h \
@@ -6864,6 +6887,8 @@ endif # GHS
$(ACE_ROOT)/ace/IPC_SAP.h \
$(ACE_ROOT)/ace/IPC_SAP.i \
$(ACE_ROOT)/ace/SOCK.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
$(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/Handle_Set.h \
$(ACE_ROOT)/ace/Handle_Set.i \
@@ -6987,9 +7012,9 @@ endif # GHS
$(ACE_ROOT)/ace/IPC_SAP.h \
$(ACE_ROOT)/ace/IPC_SAP.i \
$(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/INET_Addr.h \
$(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i
.obj/SOCK_IO.o .obj/SOCK_IO.so .shobj/SOCK_IO.o .shobj/SOCK_IO.so: SOCK_IO.cpp \
diff --git a/ace/OS.h b/ace/OS.h
index 967e579ea52..6cca084feac 100644
--- a/ace/OS.h
+++ b/ace/OS.h
@@ -4160,8 +4160,15 @@ typedef fd_set ACE_FD_SET_TYPE;
# endif /* INET6_ADDRSTRLEN */
#if defined (ACE_HAS_IPV6)
+
+#if defined (ACE_USES_IPV4_IPV6_MIGRATION)
+#define ACE_ADDRESS_FAMILY_INET ACE_INET_Addr::address_family()
+#define ACE_PROTOCOL_FAMILY_INET ACE_INET_Addr::protocol_family()
+#else
#define ACE_ADDRESS_FAMILY_INET AF_INET6
#define ACE_PROTOCOL_FAMILY_INET PF_INET6
+#endif /* ACE_USES_IPV4_IPV6_MIGRATION */
+
#else
#define ACE_ADDRESS_FAMILY_INET AF_INET
#define ACE_PROTOCOL_FAMILY_INET PF_INET
diff --git a/ace/RMCast/Makefile b/ace/RMCast/Makefile
index 6f3b3717f31..2c2c8ae7340 100644
--- a/ace/RMCast/Makefile
+++ b/ace/RMCast/Makefile
@@ -1476,9 +1476,9 @@ include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
$(ACE_ROOT)/ace/IPC_SAP.h \
$(ACE_ROOT)/ace/IPC_SAP.i \
$(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/INET_Addr.h \
$(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
$(ACE_ROOT)/ace/Hash_Map_Manager.h \
$(ACE_ROOT)/ace/Functor.h \
@@ -1617,9 +1617,9 @@ include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
$(ACE_ROOT)/ace/IPC_SAP.h \
$(ACE_ROOT)/ace/IPC_SAP.i \
$(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/INET_Addr.h \
$(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
$(ACE_ROOT)/ace/Hash_Map_Manager.h \
$(ACE_ROOT)/ace/Functor.h \
@@ -1889,9 +1889,9 @@ include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
$(ACE_ROOT)/ace/IPC_SAP.h \
$(ACE_ROOT)/ace/IPC_SAP.i \
$(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/INET_Addr.h \
$(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
$(ACE_ROOT)/ace/Hash_Map_Manager.h \
$(ACE_ROOT)/ace/Functor.h \
@@ -2025,9 +2025,9 @@ include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
$(ACE_ROOT)/ace/IPC_SAP.h \
$(ACE_ROOT)/ace/IPC_SAP.i \
$(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/INET_Addr.h \
$(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
$(ACE_ROOT)/ace/Hash_Map_Manager.h \
$(ACE_ROOT)/ace/Functor.h \
diff --git a/ace/SOCK_CODgram.h b/ace/SOCK_CODgram.h
index 2a9c7ffc48c..e275a420031 100644
--- a/ace/SOCK_CODgram.h
+++ b/ace/SOCK_CODgram.h
@@ -22,6 +22,7 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/Addr.h"
+#include "ace/INET_Addr.h"
/**
* @class ACE_SOCK_CODgram
diff --git a/ace/SOCK_Dgram.h b/ace/SOCK_Dgram.h
index 1bb4a5647c2..8930926d732 100644
--- a/ace/SOCK_Dgram.h
+++ b/ace/SOCK_Dgram.h
@@ -16,6 +16,7 @@
#include "ace/pre.h"
#include "ace/SOCK.h"
+#include "ace/INET_Addr.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
diff --git a/protocols/ace/RMCast/Makefile b/protocols/ace/RMCast/Makefile
index 6f3b3717f31..2c2c8ae7340 100644
--- a/protocols/ace/RMCast/Makefile
+++ b/protocols/ace/RMCast/Makefile
@@ -1476,9 +1476,9 @@ include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
$(ACE_ROOT)/ace/IPC_SAP.h \
$(ACE_ROOT)/ace/IPC_SAP.i \
$(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/INET_Addr.h \
$(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
$(ACE_ROOT)/ace/Hash_Map_Manager.h \
$(ACE_ROOT)/ace/Functor.h \
@@ -1617,9 +1617,9 @@ include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
$(ACE_ROOT)/ace/IPC_SAP.h \
$(ACE_ROOT)/ace/IPC_SAP.i \
$(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/INET_Addr.h \
$(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
$(ACE_ROOT)/ace/Hash_Map_Manager.h \
$(ACE_ROOT)/ace/Functor.h \
@@ -1889,9 +1889,9 @@ include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
$(ACE_ROOT)/ace/IPC_SAP.h \
$(ACE_ROOT)/ace/IPC_SAP.i \
$(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/INET_Addr.h \
$(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
$(ACE_ROOT)/ace/Hash_Map_Manager.h \
$(ACE_ROOT)/ace/Functor.h \
@@ -2025,9 +2025,9 @@ include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
$(ACE_ROOT)/ace/IPC_SAP.h \
$(ACE_ROOT)/ace/IPC_SAP.i \
$(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/INET_Addr.h \
$(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Dgram.i \
$(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
$(ACE_ROOT)/ace/Hash_Map_Manager.h \
$(ACE_ROOT)/ace/Functor.h \