[Erp5-report] r43900 luke - /erp5/trunk/patches/
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Mar 2 16:33:08 CET 2011
Author: luke
Date: Wed Mar 2 16:33:07 2011
New Revision: 43900
URL: http://svn.erp5.org?rev=43900&view=rev
Log:
- provide patch to kumofs, contributed by: Guillaume BOTTEX
Added:
erp5/trunk/patches/kumofs-0.4.13_ipv6support_multiiplistenfix.patch
Added: erp5/trunk/patches/kumofs-0.4.13_ipv6support_multiiplistenfix.patch
URL: http://svn.erp5.org/erp5/trunk/patches/kumofs-0.4.13_ipv6support_multiiplistenfix.patch?rev=43900&view=auto
==============================================================================
--- erp5/trunk/patches/kumofs-0.4.13_ipv6support_multiiplistenfix.patch (added)
+++ erp5/trunk/patches/kumofs-0.4.13_ipv6support_multiiplistenfix.patch [utf8] Wed Mar 2 16:33:07 2011
@@ -0,0 +1,181 @@
+# Author: Guillaume BOTTEX
+diff --git a/src/logic/boot.cc b/src/logic/boot.cc
+index d0a4c32..c197a30 100644
+--- a/src/logic/boot.cc
++++ b/src/logic/boot.cc
+@@ -29,6 +29,12 @@ scoped_listen_tcp::scoped_listen_tcp(struct sockaddr_in addr) :
+ m_addr(addr),
+ m_sock(listen(m_addr)) { }
+
++#ifdef KUMO_IPV6
++scoped_listen_tcp::scoped_listen_tcp(struct sockaddr_in6 addr) :
++ m_addr(addr),
++ m_sock(listen(m_addr)) { }
++#endif
++
+ scoped_listen_tcp::~scoped_listen_tcp()
+ {
+ ::close(m_sock);
+@@ -37,7 +43,11 @@ scoped_listen_tcp::~scoped_listen_tcp()
+
+ int scoped_listen_tcp::listen(const rpc::address& addr)
+ {
++#ifdef KUMO_IPV6
++ int lsock = socket(PF_INET6, SOCK_STREAM, 0);
++#else
+ int lsock = socket(PF_INET, SOCK_STREAM, 0);
++#endif
+ if(lsock < 0) {
+ throw std::runtime_error("socket failed");
+ }
+@@ -152,7 +162,11 @@ void rpc_args::convert()
+ void cluster_args::convert()
+ {
+ cluster_addr = rpc::address(cluster_addr_in);
+- cluster_addr_in.sin_addr.s_addr = INADDR_ANY; // listen any
++#ifdef KUMO_IPV6
++ // cluster_addr_in.sin6_addr = in6addr_any; // listen any
++#else
++ // cluster_addr_in.sin_addr.s_addr = INADDR_ANY; // listen any
++#endif
+ cluster_lsock = scoped_listen_tcp::listen(
+ rpc::address(cluster_addr_in));
+ rpc_args::convert();
+diff --git a/src/logic/boot.h b/src/logic/boot.h
+index 5d09549..e0e6ac1 100644
+--- a/src/logic/boot.h
++++ b/src/logic/boot.h
+@@ -31,6 +31,9 @@ namespace kumo {
+ class scoped_listen_tcp {
+ public:
+ scoped_listen_tcp(struct sockaddr_in addr);
++#ifdef KUMO_IPV6
++ scoped_listen_tcp(struct sockaddr_in6 addr);
++#endif
+ ~scoped_listen_tcp();
+
+ public:
+@@ -110,7 +113,11 @@ struct cluster_args : rpc_args {
+ virtual void set_basic_args();
+ virtual void show_usage();
+
++#ifdef KUMO_IPV6
++ struct sockaddr_in6 cluster_addr_in;
++#else
+ struct sockaddr_in cluster_addr_in;
++#endif
+ rpc::address cluster_addr; // convert
+ int cluster_lsock; // convert
+
+diff --git a/src/logic/gateway/main.cc b/src/logic/gateway/main.cc
+index 8829d6b..7faf81a 100644
+--- a/src/logic/gateway/main.cc
++++ b/src/logic/gateway/main.cc
+@@ -30,8 +30,13 @@ using namespace kumo;
+
+ struct arg_t : rpc_args {
+
++#ifdef KUMO_IPV6
++ sockaddr_in6 manager1_in;
++ sockaddr_in6 manager2_in;
++#else
+ sockaddr_in manager1_in;
+ sockaddr_in manager2_in;
++#endif
+ bool manager2_set;
+ rpc::address manager1; // convert
+ rpc::address manager2; // convert
+@@ -48,15 +53,27 @@ struct arg_t : rpc_args {
+ std::string local_cache;
+
+ bool mctext_set;
++#ifdef KUMO_IPV6
++ sockaddr_in6 mctext_addr_in;
++#else
+ sockaddr_in mctext_addr_in;
++#endif
+ int mctext_lsock; // convert
+
+ bool mcbin_set;
++#ifdef KUMO_IPV6
++ sockaddr_in6 mcbin_addr_in;
++#else
+ sockaddr_in mcbin_addr_in;
++#endif
+ int mcbin_lsock; // convert
+
+ bool cloudy_set;
++#ifdef KUMO_IPV6
++ sockaddr_in6 cloudy_addr_in;
++#else
+ sockaddr_in cloudy_addr_in;
++#endif
+ int cloudy_lsock; // convert
+
+ bool mc_save_flag;
+diff --git a/src/logic/manager/main.cc b/src/logic/manager/main.cc
+index 5847ae0..63f948a 100644
+--- a/src/logic/manager/main.cc
++++ b/src/logic/manager/main.cc
+@@ -27,7 +27,11 @@ struct arg_t : cluster_args {
+ bool auto_replace;
+
+ bool partner_set;
++#ifdef KUMO_IPV6
++ struct sockaddr_in6 partner_in;
++#else
+ struct sockaddr_in partner_in;
++#endif
+ rpc::address partner; // convert
+
+ virtual void convert()
+diff --git a/src/logic/server/main.cc b/src/logic/server/main.cc
+index cd92e46..5d87120 100644
+--- a/src/logic/server/main.cc
++++ b/src/logic/server/main.cc
+@@ -25,8 +25,13 @@ struct arg_t : cluster_args {
+
+ std::string dbpath;
+
++#ifdef KUMO_IPV6
++ sockaddr_in6 manager1_in;
++ sockaddr_in6 manager2_in;
++#else
+ sockaddr_in manager1_in;
+ sockaddr_in manager2_in;
++#endif
+ bool manager2_set;
+ rpc::address manager1; // convert
+ rpc::address manager2; // convert
+diff --git a/src/logic/server/mod_replace_stream.cc b/src/logic/server/mod_replace_stream.cc
+index 091ebc9..25ee736 100644
+--- a/src/logic/server/mod_replace_stream.cc
++++ b/src/logic/server/mod_replace_stream.cc
+@@ -104,7 +104,11 @@ RPC_IMPL(mod_replace_stream_t, ReplaceOffer, req, z, response)
+
+ using namespace mp::placeholders;
+ m_stream_core->connect(
++#ifdef KUMO_IPV6
++ PF_INET6, SOCK_STREAM, 0,
++#else
+ PF_INET, SOCK_STREAM, 0,
++#endif
+ (sockaddr*)addrbuf, sizeof(addrbuf),
+ net->connect_timeout_msec(),
+ mp::bind(&mod_replace_stream_t::stream_connected, this, _1, _2));
+diff --git a/src/rpc/client_tmpl.h b/src/rpc/client_tmpl.h
+index 8424677..173a308 100644
+--- a/src/rpc/client_tmpl.h
++++ b/src/rpc/client_tmpl.h
+@@ -159,7 +159,11 @@ bool client_tmpl<Transport, Session>::async_connect(
+ addr.getaddr((sockaddr*)&addrbuf);
+
+ using namespace mp::placeholders;
++#ifdef KUMO_IPV6
++ wavy::connect(PF_INET6, SOCK_STREAM, 0,
++#else
+ wavy::connect(PF_INET, SOCK_STREAM, 0,
++#endif
+ (sockaddr*)addrbuf, sizeof(addrbuf),
+ m_connect_timeout_msec,
+ mp::bind(
More information about the Erp5-report
mailing list