diff options
author | sma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2012-08-08 15:30:01 +0000 |
---|---|---|
committer | sma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2012-08-08 15:30:01 +0000 |
commit | 91c08a20d1db5a6639cedeef23dbed3bbedd97c2 (patch) | |
tree | d277c4e09791798c0007ee8586dae575b0679472 /ACE | |
parent | 2fa17de78269bba8c245569f2f727f1a0f0c86c1 (diff) | |
download | ATCD-91c08a20d1db5a6639cedeef23dbed3bbedd97c2.tar.gz |
Wed Aug 8 15:30:00 UTC 2012 Simon Massey <sma at prismtech dot com>
Diffstat (limited to 'ACE')
-rw-r--r-- | ACE/ChangeLog | 19 | ||||
-rw-r--r-- | ACE/ace/SOCK_Dgram_Mcast.h | 8 | ||||
-rw-r--r-- | ACE/ace/SOCK_Dgram_Mcast.inl | 12 | ||||
-rw-r--r-- | ACE/ace/config-linux.h | 5 |
4 files changed, 43 insertions, 1 deletions
diff --git a/ACE/ChangeLog b/ACE/ChangeLog index e8b80919356..89245f31d9d 100644 --- a/ACE/ChangeLog +++ b/ACE/ChangeLog @@ -1,3 +1,22 @@ +Wed Aug 8 15:30:00 UTC 2012 Simon Massey <sma at prismtech dot com> + + * ace/config-linux.h: + + According to man pages Linux uses different (compared to UNIX systems) types + for setting IP_MULTICAST_TTL and IPV6_MULTICAST_LOOP / IP_MULTICAST_LOOP + in setsockopt/getsockopt. + In the current (circa 2012) kernel source however there is an explicit check + for IPV6_MULTICAST_LOOP being sizeof(int). Anything else is rejected so it must + not be a passed a bool, irrespective of what the man pages (still) say. + i.e. #define ACE_HAS_IPV6_MULTICAST_LOOP_AS_BOOL 1 is wrong. + + * ace/SOCK_Dgram_Mcast.h: + * ace/SOCK_Dgram_Mcast.inl: + + Override read/write acessor for the constructor options + This class is typically default instantiated in a connection handler templated + framework so these cannot be specified on construction. + Mon Aug 6 20:54:17 UTC 2012 Adam Mitz <mitza@ociweb.com> * bin/PerlACE/TestTarget.pm: diff --git a/ACE/ace/SOCK_Dgram_Mcast.h b/ACE/ace/SOCK_Dgram_Mcast.h index a2e54969d39..d5b0de0c006 100644 --- a/ACE/ace/SOCK_Dgram_Mcast.h +++ b/ACE/ace/SOCK_Dgram_Mcast.h @@ -339,6 +339,14 @@ public: /// Declare the dynamic allocation hooks. ACE_ALLOC_HOOK_DECLARE; + /// Override write acessor for the constructor options (@see enum options above) + /// This class is typically default instantiated in a connection handler templated + /// framework so these cannot be specified on construction. + void opts (int opts); + + /// Read acessor for the constructor options (@see enum options above) + int opts () const; + private: /// Subscribe to a multicast address on one or more network interface(s). diff --git a/ACE/ace/SOCK_Dgram_Mcast.inl b/ACE/ace/SOCK_Dgram_Mcast.inl index bf3574cfd54..e7b380abf95 100644 --- a/ACE/ace/SOCK_Dgram_Mcast.inl +++ b/ACE/ace/SOCK_Dgram_Mcast.inl @@ -49,4 +49,16 @@ ACE_SOCK_Dgram_Mcast::send (const iovec iov[], flags); } +ACE_INLINE void +ACE_SOCK_Dgram_Mcast::opts (int opts) +{ + this->opts_ = opts; +} + +ACE_INLINE int +ACE_SOCK_Dgram_Mcast::opts () const +{ + return this->opts_; +} + ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/config-linux.h b/ACE/ace/config-linux.h index 9b2df9676af..45e43c50a54 100644 --- a/ACE/ace/config-linux.h +++ b/ACE/ace/config-linux.h @@ -341,8 +341,11 @@ // According to man pages Linux uses different (compared to UNIX systems) types // for setting IP_MULTICAST_TTL and IPV6_MULTICAST_LOOP / IP_MULTICAST_LOOP // in setsockopt/getsockopt. +// In the current (circa 2012) kernel source however there is an explicit check +// for IPV6_MULTICAST_LOOP being sizeof(int). Anything else is rejected so it must +// not be a passed a bool, irrespective of what the man pages (still) say. +// i.e. #define ACE_HAS_IPV6_MULTICAST_LOOP_AS_BOOL 1 is wrong #define ACE_HAS_IP_MULTICAST_TTL_AS_INT 1 -#define ACE_HAS_IPV6_MULTICAST_LOOP_AS_BOOL 1 #define ACE_HAS_IP_MULTICAST_LOOP_AS_INT 1 #if defined (ACE_LACKS_NETWORKING) |