diff options
-rw-r--r-- | cpp/include/IceUtil/StringUtil.h | 6 | ||||
-rw-r--r-- | cpp/src/Ice/ObjectAdapterI.cpp | 20 | ||||
-rw-r--r-- | cpp/src/Ice/TcpAcceptor.cpp | 21 | ||||
-rw-r--r-- | cpp/src/Ice/UdpTransceiver.cpp | 22 | ||||
-rw-r--r-- | cpp/src/Ice/UdpTransceiver.h | 1 | ||||
-rw-r--r-- | cpp/src/IceSSL/AcceptorI.cpp | 24 | ||||
-rw-r--r-- | cpp/src/IceUtil/StringUtil.cpp | 15 | ||||
-rw-r--r-- | cs/src/Ice/ObjectAdapterI.cs | 20 | ||||
-rw-r--r-- | cs/src/Ice/TcpAcceptor.cs | 23 | ||||
-rw-r--r-- | cs/src/Ice/UdpTransceiver.cs | 26 | ||||
-rw-r--r-- | cs/src/IceSSL/AcceptorI.cs | 24 | ||||
-rw-r--r-- | java/src/Ice/ObjectAdapterI.java | 18 | ||||
-rw-r--r-- | java/src/IceInternal/TcpAcceptor.java | 25 | ||||
-rw-r--r-- | java/src/IceInternal/UdpTransceiver.java | 27 | ||||
-rw-r--r-- | java/src/IceSSL/AcceptorI.java | 25 | ||||
-rw-r--r-- | java/src/IceUtilInternal/StringUtil.java | 20 |
16 files changed, 114 insertions, 203 deletions
diff --git a/cpp/include/IceUtil/StringUtil.h b/cpp/include/IceUtil/StringUtil.h index 72f061e311e..5ddf12b890d 100644 --- a/cpp/include/IceUtil/StringUtil.h +++ b/cpp/include/IceUtil/StringUtil.h @@ -27,7 +27,6 @@ ICE_UTIL_API std::string escapeString(const std::string&, const std::string&); // ICE_UTIL_API bool unescapeString(const std::string&, std::string::size_type, std::string::size_type, std::string&); - // // Split a string using the given delimiters. Considers single and double quotes; // returns false for unbalanced quote, true otherwise. @@ -35,6 +34,11 @@ ICE_UTIL_API bool unescapeString(const std::string&, std::string::size_type, std ICE_UTIL_API bool splitString(const std::string&, const std::string&, std::vector<std::string>&); // +// Join a list of strings using the given delimiter. +// +ICE_UTIL_API std::string joinString(const std::vector<std::string>&, const std::string&); + +// // Trim white space // ICE_UTIL_API std::string trim(const std::string&); diff --git a/cpp/src/Ice/ObjectAdapterI.cpp b/cpp/src/Ice/ObjectAdapterI.cpp index 6f3081d7ae6..926c5ec11f3 100644 --- a/cpp/src/Ice/ObjectAdapterI.cpp +++ b/cpp/src/Ice/ObjectAdapterI.cpp @@ -1199,25 +1199,17 @@ ObjectAdapterI::parsePublishedEndpoints() { // // If the PublishedEndpoints property isn't set, we compute the published enpdoints - // from the OA endpoints. + // from the OA endpoints, expanding any endpoints that may be listening on INADDR_ANY + // to include actual addresses in the published endpoints. // - transform(_incomingConnectionFactories.begin(), _incomingConnectionFactories.end(), - back_inserter(endpoints), Ice::constMemFun(&IncomingConnectionFactory::endpoint)); - - // - // Expand any endpoints that may be listening on INADDR_ANY to include actual - // addresses in the published endpoints. - // - vector<EndpointIPtr> expandedEndpoints; - for(unsigned int i = 0; i < endpoints.size(); ++i) + for(unsigned int i = 0; i < _incomingConnectionFactories.size(); ++i) { - vector<EndpointIPtr> endps = endpoints[i]->expand(); - expandedEndpoints.insert(expandedEndpoints.end(), endps.begin(), endps.end()); + vector<EndpointIPtr> endps = _incomingConnectionFactories[i]->endpoint()->expand(); + endpoints.insert(endpoints.end(), endps.begin(), endps.end()); } - endpoints = expandedEndpoints; } - if(_instance->traceLevels()->network >= 3) + if(_instance->traceLevels()->network >= 1) { Trace out(_instance->initializationData().logger, _instance->traceLevels()->networkCat); out << "published endpoints for object adapter `" << getName() << "':\n"; diff --git a/cpp/src/Ice/TcpAcceptor.cpp b/cpp/src/Ice/TcpAcceptor.cpp index 453d0cbccc1..1b0e4251ba5 100644 --- a/cpp/src/Ice/TcpAcceptor.cpp +++ b/cpp/src/Ice/TcpAcceptor.cpp @@ -15,6 +15,7 @@ #include <Ice/Network.h> #include <Ice/Exception.h> #include <Ice/Properties.h> +#include <IceUtil/StringUtil.h> #ifdef ICE_USE_IOCP # include <Mswsock.h> @@ -71,22 +72,12 @@ IceInternal::TcpAcceptor::listen() Trace out(_logger, _traceLevels->networkCat); out << "accepting tcp connections at " << toString(); - if(_traceLevels->network >= 3) + vector<string> interfaces = + getHostsForEndpointExpand(inetAddrToString(_addr), _instance->protocolSupport(), true); + if(!interfaces.empty()) { - vector<string> interfaces = - getHostsForEndpointExpand(inetAddrToString(_addr), _instance->protocolSupport(), true); - if(!interfaces.empty()) - { - out << "\nlocal interfaces: "; - for(unsigned int i = 0; i < interfaces.size(); ++i) - { - if(i != 0) - { - out << ", "; - } - out << interfaces[i]; - } - } + out << "\nlocal interfaces: "; + out << IceUtilInternal::joinString(interfaces, ", "); } } } diff --git a/cpp/src/Ice/UdpTransceiver.cpp b/cpp/src/Ice/UdpTransceiver.cpp index 30e4f7a8c07..8196391e00b 100644 --- a/cpp/src/Ice/UdpTransceiver.cpp +++ b/cpp/src/Ice/UdpTransceiver.cpp @@ -24,6 +24,7 @@ #include <Ice/Network.h> #include <Ice/LocalException.h> #include <Ice/Properties.h> +#include <IceUtil/StringUtil.h> using namespace std; using namespace Ice; @@ -475,7 +476,6 @@ IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const s _traceLevels(instance->traceLevels()), _logger(instance->initializationData().logger), _stats(instance->initializationData().stats), - _protocolSupport(instance->protocolSupport()), _incoming(false), _addr(addr), _connect(true), @@ -515,7 +515,6 @@ IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const s _traceLevels(instance->traceLevels()), _logger(instance->initializationData().logger), _stats(instance->initializationData().stats), - _protocolSupport(instance->protocolSupport()), _incoming(true), _addr(getAddressForServer(host, port, instance->protocolSupport())), _connect(connect), @@ -584,21 +583,12 @@ IceInternal::UdpTransceiver::UdpTransceiver(const InstancePtr& instance, const s Trace out(_logger, _traceLevels->networkCat); out << "starting to receive udp packets\n" << toString(); - if(_traceLevels->network >= 3) + vector<string> interfaces = + getHostsForEndpointExpand(inetAddrToString(_addr), instance->protocolSupport(), true); + if(!interfaces.empty()) { - vector<string> interfaces = getHostsForEndpointExpand(inetAddrToString(_addr), _protocolSupport, true); - if(!interfaces.empty()) - { - out << "\nlocal interfaces: "; - for(unsigned int i = 0; i < interfaces.size(); ++i) - { - if(i != 0) - { - out << ", "; - } - out << interfaces[i]; - } - } + out << "\nlocal interfaces: "; + out << IceUtilInternal::joinString(interfaces, ", "); } } } diff --git a/cpp/src/Ice/UdpTransceiver.h b/cpp/src/Ice/UdpTransceiver.h index df86f0c9e9c..4eb1a14bfbe 100644 --- a/cpp/src/Ice/UdpTransceiver.h +++ b/cpp/src/Ice/UdpTransceiver.h @@ -72,7 +72,6 @@ private: const TraceLevelsPtr _traceLevels; const Ice::LoggerPtr _logger; const Ice::StatsPtr _stats; - const ProtocolSupport _protocolSupport; const bool _incoming; const struct sockaddr_storage _addr; struct sockaddr_storage _mcastAddr; diff --git a/cpp/src/IceSSL/AcceptorI.cpp b/cpp/src/IceSSL/AcceptorI.cpp index 005ce765e74..c82a77dc4dc 100644 --- a/cpp/src/IceSSL/AcceptorI.cpp +++ b/cpp/src/IceSSL/AcceptorI.cpp @@ -18,6 +18,7 @@ #include <Ice/LoggerUtil.h> #include <Ice/Network.h> #include <Ice/Properties.h> +#include <IceUtil/StringUtil.h> #ifdef ICE_USE_IOCP # include <Mswsock.h> @@ -75,25 +76,14 @@ IceSSL::AcceptorI::listen() Trace out(_logger, _instance->networkTraceCategory()); out << "accepting ssl connections at " << toString(); - if(_instance->networkTraceLevel() >= 3) + vector<string> interfaces = + IceInternal::getHostsForEndpointExpand(IceInternal::inetAddrToString(_addr), _instance->protocolSupport(), + true); + if(!interfaces.empty()) { - vector<string> interfaces = - IceInternal::getHostsForEndpointExpand(IceInternal::inetAddrToString(_addr), - _instance->protocolSupport(), true); - if(!interfaces.empty()) - { - out << "\nlocal interfaces: "; - for(unsigned int i = 0; i < interfaces.size(); ++i) - { - if(i != 0) - { - out << ", "; - } - out << interfaces[i]; - } - } + out << "\nlocal interfaces: "; + out << IceUtilInternal::joinString(interfaces, ", "); } - } } diff --git a/cpp/src/IceUtil/StringUtil.cpp b/cpp/src/IceUtil/StringUtil.cpp index b83d6dc8a79..2b79f251360 100644 --- a/cpp/src/IceUtil/StringUtil.cpp +++ b/cpp/src/IceUtil/StringUtil.cpp @@ -369,6 +369,21 @@ IceUtilInternal::splitString(const string& str, const string& delim, vector<stri return true; } +string +IceUtilInternal::joinString(const std::vector<std::string>& values, const std::string& delimiter) +{ + ostringstream out; + for(unsigned int i = 0; i < values.size(); i++) + { + if(i != 0) + { + out << delimiter; + } + out << values[i]; + } + return out.str(); +} + // // Trim white space (" \t\r\n") // diff --git a/cs/src/Ice/ObjectAdapterI.cs b/cs/src/Ice/ObjectAdapterI.cs index 0bedac3b27a..a2149e5ad8e 100644 --- a/cs/src/Ice/ObjectAdapterI.cs +++ b/cs/src/Ice/ObjectAdapterI.cs @@ -1233,27 +1233,17 @@ namespace Ice { // // If the PublishedEndpoints property isn't set, we compute the published enpdoints - // from the OA endpoints. + // from the OA endpoints, expanding any endpoints that may be listening on INADDR_ANY + // to include actual addresses in the published endpoints. // foreach(IceInternal.IncomingConnectionFactory factory in _incomingConnectionFactories) { - endpoints.Add(factory.endpoint()); + endpoints.AddRange(factory.endpoint().expand()); } - - // - // Expand any endpoints that may be listening on INADDR_ANY to - // include actual addresses in the published endpoints. - // - List<IceInternal.EndpointI> expandedEndpoints = new List<IceInternal.EndpointI>(); - foreach(IceInternal.EndpointI endp in endpoints) - { - expandedEndpoints.AddRange(endp.expand()); - } - endpoints = expandedEndpoints; } - if(instance_.traceLevels().network >= 3) - { + if(instance_.traceLevels().network >= 1) + { StringBuilder s = new StringBuilder("published endpoints for object adapter `"); s.Append(_name); s.Append("':\n"); diff --git a/cs/src/Ice/TcpAcceptor.cs b/cs/src/Ice/TcpAcceptor.cs index 43c8b651597..d87c6220c16 100644 --- a/cs/src/Ice/TcpAcceptor.cs +++ b/cs/src/Ice/TcpAcceptor.cs @@ -41,24 +41,13 @@ namespace IceInternal { StringBuilder s = new StringBuilder("accepting tcp connections at "); s.Append(ToString()); - if(_traceLevels.network >= 3) + + List<string> interfaces = + Network.getHostsForEndpointExpand(_addr.Address.ToString(), instance_.protocolSupport(), true); + if(interfaces.Count != 0) { - List<string> interfaces = - Network.getHostsForEndpointExpand(_addr.Address.ToString(), instance_.protocolSupport(), true); - if(interfaces.Count != 0) - { - s.Append("\nlocal interfaces: "); - bool first = true; - foreach(string iface in interfaces) - { - if(!first) - { - s.Append(", "); - } - s.Append(iface); - first = false; - } - } + s.Append("\nlocal interfaces: "); + s.Append(String.Join(", ", interfaces.ToArray())); } _logger.trace(_traceLevels.networkCat, s.ToString()); } diff --git a/cs/src/Ice/UdpTransceiver.cs b/cs/src/Ice/UdpTransceiver.cs index 4f5b34a21fa..808b7bf4f95 100644 --- a/cs/src/Ice/UdpTransceiver.cs +++ b/cs/src/Ice/UdpTransceiver.cs @@ -582,7 +582,6 @@ namespace IceInternal _traceLevels = instance.traceLevels(); _logger = instance.initializationData().logger; _stats = instance.initializationData().stats; - _protocolSupport = instance.protocolSupport(); _warn = instance.initializationData().properties.getPropertyAsInt("Ice.Warn.Datagrams") > 0; _addr = addr; _mcastInterface = mcastInterface; @@ -611,7 +610,6 @@ namespace IceInternal _traceLevels = instance.traceLevels(); _logger = instance.initializationData().logger; _stats = instance.initializationData().stats; - _protocolSupport = instance.protocolSupport(); _warn = instance.initializationData().properties.getPropertyAsInt("Ice.Warn.Datagrams") > 0; _state = connect ? StateNeedConnect : StateConnected; _incoming = true; @@ -672,24 +670,13 @@ namespace IceInternal { StringBuilder s = new StringBuilder("starting to receive udp packets\n"); s.Append(ToString()); - if(_traceLevels.network >= 3) + + List<string> interfaces = + Network.getHostsForEndpointExpand(_addr.Address.ToString(), instance.protocolSupport(), true); + if(interfaces.Count != 0) { - List<string> interfaces = - Network.getHostsForEndpointExpand(_addr.Address.ToString(), _protocolSupport, true); - if(interfaces.Count != 0) - { - s.Append("\nlocal interfaces: "); - bool first = true; - foreach(string iface in interfaces) - { - if(!first) - { - s.Append(", "); - } - s.Append(iface); - first = false; - } - } + s.Append("\nlocal interfaces: "); + s.Append(String.Join(", ", interfaces.ToArray())); } _logger.trace(_traceLevels.networkCat, s.ToString()); } @@ -772,7 +759,6 @@ namespace IceInternal private TraceLevels _traceLevels; private Ice.Logger _logger; private Ice.Stats _stats; - private int _protocolSupport; private int _state; private bool _incoming; private readonly bool _warn; diff --git a/cs/src/IceSSL/AcceptorI.cs b/cs/src/IceSSL/AcceptorI.cs index 62c8847dd45..4d73a1aa66f 100644 --- a/cs/src/IceSSL/AcceptorI.cs +++ b/cs/src/IceSSL/AcceptorI.cs @@ -50,24 +50,14 @@ namespace IceSSL { StringBuilder s = new StringBuilder("accepting ssl connections at "); s.Append(ToString()); - if(_instance.networkTraceLevel() >= 3) + + List<string> interfaces = + IceInternal.Network.getHostsForEndpointExpand(_addr.Address.ToString(), + _instance.protocolSupport(), true); + if(interfaces.Count != 0) { - List<string> interfaces = IceInternal.Network.getHostsForEndpointExpand(_addr.Address.ToString(), - _instance.protocolSupport(), true); - if(interfaces.Count != 0) - { - s.Append("\nlocal interfaces: "); - bool first = true; - foreach(string iface in interfaces) - { - if(!first) - { - s.Append(", "); - } - s.Append(iface); - first = false; - } - } + s.Append("\nlocal interfaces: "); + s.Append(String.Join(", ", interfaces.ToArray())); } _logger.trace(_instance.networkTraceCategory(), s.ToString()); } diff --git a/java/src/Ice/ObjectAdapterI.java b/java/src/Ice/ObjectAdapterI.java index 7478f6ffb5d..0737878ca27 100644 --- a/java/src/Ice/ObjectAdapterI.java +++ b/java/src/Ice/ObjectAdapterI.java @@ -1209,26 +1209,16 @@ public final class ObjectAdapterI implements ObjectAdapter { // // If the PublishedEndpoints property isn't set, we compute the published enpdoints - // from the OA endpoints. + // from the OA endpoints, expanding any endpoints that may be listening on INADDR_ANY + // to include actual addresses in the published endpoints. // for(IceInternal.IncomingConnectionFactory factory : _incomingConnectionFactories) { - endpoints.add(factory.endpoint()); + endpoints.addAll(factory.endpoint().expand()); } - - // - // Expand any endpoints that may be listening on INADDR_ANY to - // include actual addresses in the published endpoints. - // - java.util.List<IceInternal.EndpointI> expandedEndpoints = new java.util.ArrayList<IceInternal.EndpointI>(); - for(IceInternal.EndpointI p : endpoints) - { - expandedEndpoints.addAll(p.expand()); - } - endpoints = expandedEndpoints; } - if(_instance.traceLevels().network >= 3) + if(_instance.traceLevels().network >= 1) { StringBuffer s = new StringBuffer("published endpoints for object adapter `"); s.append(_name); diff --git a/java/src/IceInternal/TcpAcceptor.java b/java/src/IceInternal/TcpAcceptor.java index 1ecd024c3c9..50f46759f6f 100644 --- a/java/src/IceInternal/TcpAcceptor.java +++ b/java/src/IceInternal/TcpAcceptor.java @@ -40,25 +40,14 @@ class TcpAcceptor implements Acceptor { StringBuffer s = new StringBuffer("accepting tcp connections at "); s.append(toString()); - if(_traceLevels.network >= 3) + + java.util.List<String> interfaces = + Network.getHostsForEndpointExpand(_addr.getAddress().getHostAddress(), _instance.protocolSupport(), + true); + if(!interfaces.isEmpty()) { - java.util.List<String> interfaces = - Network.getHostsForEndpointExpand(_addr.getAddress().getHostAddress(), - _instance.protocolSupport(), true); - if(!interfaces.isEmpty()) - { - s.append("\nlocal interfaces: "); - boolean first = true; - for(String iface : interfaces) - { - if(!first) - { - s.append(", "); - } - s.append(iface); - first = false; - } - } + s.append("\nlocal interfaces: "); + s.append(IceUtilInternal.StringUtil.joinString(interfaces, ", ")); } _logger.trace(_traceLevels.networkCat, s.toString()); } diff --git a/java/src/IceInternal/UdpTransceiver.java b/java/src/IceInternal/UdpTransceiver.java index 49146a1383a..70533314e95 100644 --- a/java/src/IceInternal/UdpTransceiver.java +++ b/java/src/IceInternal/UdpTransceiver.java @@ -257,7 +257,6 @@ final class UdpTransceiver implements Transceiver _traceLevels = instance.traceLevels(); _logger = instance.initializationData().logger; _stats = instance.initializationData().stats; - _protocolSupport = instance.protocolSupport(); _connect = true; _warn = instance.initializationData().properties.getPropertyAsInt("Ice.Warn.Datagrams") > 0; _addr = addr; @@ -295,7 +294,6 @@ final class UdpTransceiver implements Transceiver _traceLevels = instance.traceLevels(); _logger = instance.initializationData().logger; _stats = instance.initializationData().stats; - _protocolSupport = instance.protocolSupport(); _connect = connect; _warn = instance.initializationData().properties.getPropertyAsInt("Ice.Warn.Datagrams") > 0; @@ -347,24 +345,14 @@ final class UdpTransceiver implements Transceiver { StringBuffer s = new StringBuffer("starting to receive udp packets\n"); s.append(toString()); - if(_traceLevels.network >= 3) + + java.util.List<String> interfaces = + Network.getHostsForEndpointExpand(_addr.getAddress().getHostAddress(), instance.protocolSupport(), + true); + if(!interfaces.isEmpty()) { - java.util.List<String> interfaces = - Network.getHostsForEndpointExpand(_addr.getAddress().getHostAddress(), _protocolSupport, true); - if(!interfaces.isEmpty()) - { - s.append("\nlocal interfaces: "); - boolean first = true; - for(String iface : interfaces) - { - if(!first) - { - s.append(", "); - } - s.append(iface); - first = false; - } - } + s.append("\nlocal interfaces: "); + s.append(IceUtilInternal.StringUtil.joinString(interfaces, ", ")); } _logger.trace(_traceLevels.networkCat, s.toString()); } @@ -550,7 +538,6 @@ final class UdpTransceiver implements Transceiver private TraceLevels _traceLevels; private Ice.Logger _logger; private Ice.Stats _stats; - private int _protocolSupport; private boolean _connect; private final boolean _warn; private int _rcvSize; diff --git a/java/src/IceSSL/AcceptorI.java b/java/src/IceSSL/AcceptorI.java index a422f97a4df..18184b50aa2 100644 --- a/java/src/IceSSL/AcceptorI.java +++ b/java/src/IceSSL/AcceptorI.java @@ -40,25 +40,14 @@ final class AcceptorI implements IceInternal.Acceptor { StringBuffer s = new StringBuffer("accepting ssl connections at "); s.append(toString()); - if(_instance.networkTraceLevel() >= 3) + + java.util.List<String> interfaces = + IceInternal.Network.getHostsForEndpointExpand(_addr.getAddress().getHostAddress(), + _instance.protocolSupport(), true); + if(!interfaces.isEmpty()) { - java.util.List<String> interfaces = - IceInternal.Network.getHostsForEndpointExpand(_addr.getAddress().getHostAddress(), - _instance.protocolSupport(), true); - if(!interfaces.isEmpty()) - { - s.append("\nlocal interfaces: "); - boolean first = true; - for(String iface : interfaces) - { - if(!first) - { - s.append(", "); - } - s.append(iface); - first = false; - } - } + s.append("\nlocal interfaces: "); + s.append(IceUtilInternal.StringUtil.joinString(interfaces, ", ")); } _logger.trace(_instance.networkTraceCategory(), s.toString()); } diff --git a/java/src/IceUtilInternal/StringUtil.java b/java/src/IceUtilInternal/StringUtil.java index 9ff9d80cfd2..befc624f425 100644 --- a/java/src/IceUtilInternal/StringUtil.java +++ b/java/src/IceUtilInternal/StringUtil.java @@ -363,6 +363,26 @@ public final class StringUtil } } + // + // Join a list of strings using the given delimiter. + // + public static String + joinString(java.util.List<String> values, String delimiter) + { + StringBuffer s = new StringBuffer(); + boolean first = true; + for(String v : values) + { + if(!first) + { + s.append(delimiter); + } + s.append(v); + first = false; + } + return s.toString(); + } + public static int checkQuote(String s) { |