[ice/f15/master] upstream 3.4.1 fix gcc46 build issue some spec cleaning and patches revamping (dropped: java, openss
Haïkel Guémar
hguemar at fedoraproject.org
Tue Feb 15 11:51:52 UTC 2011
commit f5527512920dd62d3e63412bad0e4948274078c8
Author: Haikel Guemar <hguemar at fedoraproject.org>
Date: Tue Feb 15 12:18:45 2011 +0100
upstream 3.4.1
fix gcc46 build issue
some spec cleaning and patches revamping (dropped: java, openssl)
updated man pages from Francisco Moya Debian's package
.gitignore | 2 +
Ice-3.3.1-jgoodies.patch | 12 -
Ice-3.3.1-openssl.patch | 18 -
Ice-3.4.0-java-build.patch | 52 -
Ice-rpmbuild-change-user.patch | 36 -
glacier2router.conf | 104 ++
glacier2router.init | 110 ++
ice-3.4.1-gcc46.patch | 2371 ++++++++++++++++++++++++++++++++++++++++
ice-3.4.1-jgoodies.patch | 12 +
ice.ini | 1 +
ice.pth | 4 +
ice.spec | 104 +-
icegridnode.conf | 48 +
icegridnode.init | 111 ++
icegridregistry.conf | 70 ++
icegridregistry.init | 111 ++
sources | 5 +-
17 files changed, 2998 insertions(+), 173 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 3094692..f4ea40a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
Ice-3.4.0.tar.gz
Ice-rpmbuild-3.4.0.tar.gz
Ice-3.3.0-man-pages.tbz
+/Ice-3.4.1.tar.gz
+/ice-3.4.1-man-pages.tar.gz
diff --git a/glacier2router.conf b/glacier2router.conf
new file mode 100644
index 0000000..90a3cfb
--- /dev/null
+++ b/glacier2router.conf
@@ -0,0 +1,104 @@
+#
+# Sample configuration file for the Glacier2 router daemon
+#
+
+#
+# Set the instance name
+#
+Glacier2.InstanceName=DemoGlacier2Router
+
+#
+# The client-visible endpoint of Glacier2. This should be an endpoint
+# visible from the public Internet, and it should be secure.
+# IANA-registered TCP ports for the Glacier2 router:
+# - 4063 (insecure)
+# - 4064 (secure, using SSL)
+#
+# Using tcp is not recommended for production!
+#
+Glacier2.Client.Endpoints=tcp -p 4063 -h localhost
+#Glacier2.Client.Endpoints=ssl -p 4064 -h localhost
+
+#
+# The server-visible endpoint of Glacier2. This endpoint is only
+# required if callbacks are needed (leave empty otherwise). This
+# should be an endpoint on an internal network (like 192.168.x.x), or
+# on the loopback, so that the server is not directly accessible from
+# the Internet.
+#
+Glacier2.Server.Endpoints=tcp -h localhost
+
+#
+# This permissions verifier allows any user-id / password combination;
+# this is not recommended for production!
+#
+Glacier2.PermissionsVerifier=DemoGlacier2Router/NullPermissionsVerifier
+
+#
+# The timeout for inactive sessions. If any client session is inactive
+# for longer than this value, the session expires and is removed. The
+# unit is seconds.
+#
+Glacier2.SessionTimeout=30
+
+#
+# Glacier2 always disables active connection management so there is no
+# need to configure this manually. Connection retry does not need to
+# be disabled, as it's safe for Glacier2 to retry outgoing connections
+# to servers. Retry for incoming connections from clients must be
+# disabled in the clients.
+#
+
+#
+# Various settings to trace requests, overrides, etc.
+#
+Ice.UseSyslog=1
+Glacier2.Client.Trace.Request=1
+Glacier2.Server.Trace.Request=1
+Glacier2.Client.Trace.Override=1
+Glacier2.Server.Trace.Override=1
+Glacier2.Client.Trace.Reject=1
+Glacier2.Trace.Session=1
+Glacier2.Trace.RoutingTable=1
+
+#
+# Warn about connection exceptions
+#
+Ice.Warn.Connections=1
+
+#
+# Network Tracing
+#
+# 0 = no network tracing
+# 1 = trace connection establishment and closure
+# 2 = like 1, but more detailed
+# 3 = like 2, but also trace data transfer
+#
+#Ice.Trace.Network=1
+
+#
+# Protocol Tracing
+#
+# 0 = no protocol tracing
+# 1 = trace protocol messages
+#
+#Ice.Trace.Protocol=1
+
+#
+# Security Tracing
+#
+# 0 = no security tracing
+# 1 = trace messages
+#
+#IceSSL.Trace.Security=1
+
+#
+# SSL Configuration
+#
+#Ice.Plugin.IceSSL=IceSSL:createIceSSL
+
+#IceSSL.DefaultDir=<path to certs dir>
+
+#IceSSL.CertAuthFile=cacert.pem
+#IceSSL.CertFile=s_rsa1024_pub.pem
+#IceSSL.KeyFile=s_rsa1024_priv.pem
diff --git a/glacier2router.init b/glacier2router.init
new file mode 100755
index 0000000..5466419
--- /dev/null
+++ b/glacier2router.init
@@ -0,0 +1,110 @@
+#!/bin/bash
+#
+# Copyright (c) 2007-2010 ZeroC, Inc. All rights reserved.
+#
+# glacier2router This shell script takes care of starting and
+# stopping the glacier2router daemon.
+#
+# chkconfig: - 62 74
+# description: The Glacier2 router daemon. \
+# Glacier2 is the firewall traversal service for the Internet \
+# Communications Engine (Ice).
+
+#
+# Source function library.
+#
+. /etc/init.d/functions
+
+#
+# The Glacier2 router user; root is allowed, but not necessary, therefore
+# it is recommended to use a non-root account.
+#
+user=iceuser
+
+#
+# Ask for a password at startup?
+#
+prompt=no
+
+#
+# The Glacier2 router configuration file
+#
+routerconf="/etc/glacier2router.conf"
+
+prog="/usr/bin/glacier2router"
+
+progbase=${prog##*/}
+pidfile=/var/run/$progbase.pid
+
+options="--daemon --pidfile $pidfile --Ice.Config=$routerconf"
+
+RETVAL=0
+
+start() {
+ if [ "${prompt:-}" = "yes" ]
+ then
+ echo $"Starting $progbase: "
+ INITLOG_ARGS= # clears -q
+ else
+ echo -n $"Starting $progbase: "
+ fi
+
+ daemonoptions="--pidfile $pidfile"
+ if [ "$user" != "root" ]
+ then
+ daemonoptions="$daemonoptions --user $user"
+
+ if [ ! -e $pidfile ]
+ then
+ touch $pidfile
+ fi
+ chown $user $pidfile
+ fi
+
+ daemon $daemonoptions $prog $options
+ RETVAL=$?
+ echo
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$progbase
+ return $RETVAL
+}
+
+stop() {
+ echo -n $"Shutting down $progbase: "
+ killproc -p $pidfile $prog
+ RETVAL=$?
+ echo
+ [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$progbase
+ return $RETVAL
+}
+
+
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ status $progbase
+ RETVAL=$?
+ ;;
+ restart|reload)
+ stop
+ start
+ RETVAL=$?
+ ;;
+ condrestart)
+ if [ -f /var/lock/subsys/$progbase ]; then
+ stop
+ start
+ RETVAL=$?
+ fi
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|restart|condrestart|status}"
+ exit 1
+esac
+
+exit $RETVAL
diff --git a/ice-3.4.1-gcc46.patch b/ice-3.4.1-gcc46.patch
new file mode 100644
index 0000000..4e9659a
--- /dev/null
+++ b/ice-3.4.1-gcc46.patch
@@ -0,0 +1,2371 @@
+diff --git a/cpp/include/Freeze/Map.h b/cpp/include/Freeze/Map.h
+index 652a262..f6cbaa9 100644
+--- a/cpp/include/Freeze/Map.h
++++ b/cpp/include/Freeze/Map.h
+@@ -11,6 +11,7 @@
+ #define FREEZE_MAP_H
+
+ #include <Ice/Ice.h>
++#include <cstddef>
+ #include <iterator>
+ #include <Freeze/DB.h>
+ #include <Freeze/Exception.h>
+@@ -49,7 +50,7 @@ typedef IceUtil::Handle<KeyCompareBase> KeyCompareBasePtr;
+ class FREEZE_API MapIndexBase : public KeyCompareBase
+ {
+ public:
+-
++
+ virtual ~MapIndexBase();
+
+ const std::string& name() const;
+@@ -88,9 +89,9 @@ typedef IceUtil::Handle<MapIndexBase> MapIndexBasePtr;
+ class FREEZE_API MapHelper
+ {
+ public:
+-
++
+ static MapHelper*
+- create(const ConnectionPtr& connection,
++ create(const ConnectionPtr& connection,
+ const std::string& dbName,
+ const std::string& key,
+ const std::string& value,
+@@ -98,14 +99,14 @@ public:
+ const std::vector<MapIndexBasePtr>&,
+ bool createDb);
+
+- static void
+- recreate(const ConnectionPtr& connection,
++ static void
++ recreate(const ConnectionPtr& connection,
+ const std::string& dbName,
+ const std::string& key,
+ const std::string& value,
+ const KeyCompareBasePtr&,
+ const std::vector<MapIndexBasePtr>&);
+-
++
+ virtual ~MapHelper() = 0;
+
+ virtual IteratorHelper*
+@@ -125,7 +126,7 @@ public:
+
+ virtual size_t
+ count(const Key&) const = 0;
+-
++
+ virtual void
+ clear() = 0;
+
+@@ -150,25 +151,25 @@ public:
+
+
+ class FREEZE_API IteratorHelper
+-{
++{
+ public:
+
+- static IteratorHelper*
++ static IteratorHelper*
+ create(const MapHelper& m, bool readOnly);
+
+- virtual
++ virtual
+ ~IteratorHelper() = 0;
+
+ virtual IteratorHelper*
+ clone() const = 0;
+-
+- virtual const Key*
++
++ virtual const Key*
+ get() const = 0;
+
+ virtual void
+ get(const Key*&, const Value*&) const = 0;
+-
+- virtual void
++
++ virtual void
+ set(const Value&) = 0;
+
+ virtual void
+@@ -176,16 +177,16 @@ public:
+
+ virtual bool
+ next() const = 0;
+-};
++};
+
+
+ //
+ // Forward declaration
+ //
+-template <typename key_type, typename mapped_type,
++template <typename key_type, typename mapped_type,
+ typename KeyCodec, typename ValueCodec, typename Compare>
+ class Map;
+-template <typename key_type, typename mapped_type,
++template <typename key_type, typename mapped_type,
+ typename KeyCodec, typename ValueCodec, typename Compare>
+ class ConstIterator;
+
+@@ -208,7 +209,7 @@ struct IteratorBase
+ // TODO: It's possible to implement bidirectional iterators, if
+ // necessary.
+ //
+-template<typename key_type, typename mapped_type,
++template<typename key_type, typename mapped_type,
+ typename KeyCodec, typename ValueCodec, typename Compare>
+ class Iterator : public IteratorBase
+ {
+@@ -280,12 +281,12 @@ public:
+ {
+ return true;
+ }
+-
++
+ if(_helper.get() != 0 && rhs._helper.get() != 0)
+ {
+ const Key* lhsKey = _helper->get();
+ const Key* rhsKey = rhs._helper->get();
+-
++
+ if(lhsKey != 0 && rhsKey != 0)
+ {
+ return *lhsKey == *rhsKey;
+@@ -385,9 +386,9 @@ private:
+ ValueCodec::read(value, *v, _communicator);
+ }
+
+- friend class ConstIterator<key_type, mapped_type,
++ friend class ConstIterator<key_type, mapped_type,
+ KeyCodec, ValueCodec, Compare>;
+- friend class Map<key_type, mapped_type,
++ friend class Map<key_type, mapped_type,
+ KeyCodec, ValueCodec, Compare>;
+
+ std::auto_ptr<IteratorHelper> _helper;
+@@ -410,7 +411,7 @@ private:
+ //
+ // See Iterator comments for design notes
+ //
+-template <typename key_type, typename mapped_type,
++template <typename key_type, typename mapped_type,
+ typename KeyCodec, typename ValueCodec, typename Compare>
+ class ConstIterator : public IteratorBase
+ {
+@@ -425,7 +426,7 @@ public:
+ typedef value_type& reference;
+
+ ConstIterator(MapHelper& mapHelper, const Ice::CommunicatorPtr& communicator) :
+- _helper(IteratorHelper::create(mapHelper, true)),
++ _helper(IteratorHelper::create(mapHelper, true)),
+ _communicator(_communicator),
+ _refValid(false)
+ {
+@@ -457,7 +458,7 @@ public:
+ // A Iterator can be converted to a ConstIterator (but not
+ // vice versa) - same for operator=.
+ //
+- ConstIterator(const Iterator<key_type, mapped_type,
++ ConstIterator(const Iterator<key_type, mapped_type,
+ KeyCodec, ValueCodec, Compare>& rhs) :
+ _refValid(false)
+ {
+@@ -490,7 +491,7 @@ public:
+ //
+ // Create const_iterator from iterator.
+ //
+- ConstIterator& operator=(const Iterator<key_type, mapped_type,
++ ConstIterator& operator=(const Iterator<key_type, mapped_type,
+ KeyCodec, ValueCodec, Compare>& rhs)
+ {
+ if(rhs._helper.get() != 0)
+@@ -517,12 +518,12 @@ public:
+ {
+ return true;
+ }
+-
++
+ if(_helper.get() != 0 && rhs._helper.get() != 0)
+ {
+ const Key* lhsKey = _helper->get();
+ const Key* rhsKey = rhs._helper->get();
+-
++
+ if(lhsKey != 0 && rhsKey != 0)
+ {
+ return *lhsKey == *rhsKey;
+@@ -560,7 +561,7 @@ public:
+ {
+ key_type key;
+ mapped_type value;
+-
++
+ getCurrentValue(key, value);
+
+ //
+@@ -609,7 +610,7 @@ private:
+ ValueCodec::read(value, *v, _communicator);
+ }
+
+- friend class Map<key_type, mapped_type,
++ friend class Map<key_type, mapped_type,
+ KeyCodec, ValueCodec, Compare>;
+
+ std::auto_ptr<IteratorHelper> _helper;
+@@ -643,14 +644,14 @@ struct IceEncodingCompare
+ };
+
+ template<typename Compare>
+-inline bool
++inline bool
+ enableKeyCompare(const Compare&)
+ {
+ return true;
+ }
+
+-template<>
+-inline bool
++template<>
++inline bool
+ enableKeyCompare<IceEncodingCompare>(const IceEncodingCompare&)
+ {
+ return false;
+@@ -663,7 +664,7 @@ template<typename key_type, typename KeyCodec, typename Compare>
+ class KeyCompare : public KeyCompareBase
+ {
+ public:
+- KeyCompare(const Compare& compare,
++ KeyCompare(const Compare& compare,
+ const Ice::CommunicatorPtr& communicator) :
+ #if defined(_MSC_VER) && (_MSC_VER < 1300)
+ KeyCompareBase(enableKeyCompare(compare)),
+@@ -701,7 +702,7 @@ private:
+
+ #if !defined(_MSC_VER) || (_MSC_VER >= 1300)
+ //
+-// Partial template specialization:
++// Partial template specialization:
+ // do nothing for the IceEncodingCompare comparator
+ //
+ template<typename key_type, typename KeyCodec>
+@@ -765,7 +766,7 @@ private:
+
+ #if !defined(_MSC_VER) || (_MSC_VER >= 1300)
+ //
+-// Partial template specialization:
++// Partial template specialization:
+ // do nothing for the IceEncodingCompare comparator
+ //
+ template<typename key_type, typename KeyCodec>
+@@ -792,7 +793,7 @@ protected:
+ //
+ // TODO: implement bidirectional iterators.
+ //
+-template<typename key_type, typename mapped_type,
++template<typename key_type, typename mapped_type,
+ typename KeyCodec, typename ValueCodec,
+ typename Compare = IceEncodingCompare>
+ class Map
+@@ -801,9 +802,9 @@ public:
+
+ typedef std::pair<const key_type, const mapped_type> value_type;
+
+- typedef Iterator<key_type, mapped_type,
++ typedef Iterator<key_type, mapped_type,
+ KeyCodec, ValueCodec, Compare> iterator;
+- typedef ConstIterator<key_type, mapped_type,
++ typedef ConstIterator<key_type, mapped_type,
+ KeyCodec, ValueCodec, Compare> const_iterator;
+
+ //
+@@ -822,35 +823,35 @@ public:
+ //
+ // Constructors
+ //
+- Map(const Freeze::ConnectionPtr& connection,
++ Map(const Freeze::ConnectionPtr& connection,
+ const std::string& dbName,
+ bool createDb = true,
+ const Compare& compare = Compare()) :
+ _communicator(connection->getCommunicator())
+- {
+- KeyCompareBasePtr keyCompare =
++ {
++ KeyCompareBasePtr keyCompare =
+ new KeyCompare<key_type, KeyCodec, Compare>(compare, _communicator);
+ std::vector<MapIndexBasePtr> indices;
+
+- _helper.reset(MapHelper::create(connection, dbName,
++ _helper.reset(MapHelper::create(connection, dbName,
+ KeyCodec::typeId(), ValueCodec::typeId(),
+ keyCompare, indices, createDb));
+ }
+
+ template<class _InputIterator>
+- Map(const Freeze::ConnectionPtr& connection,
+- const std::string& dbName,
++ Map(const Freeze::ConnectionPtr& connection,
++ const std::string& dbName,
+ bool createDb,
+ _InputIterator first, _InputIterator last,
+ const Compare& compare = Compare()) :
+ _communicator(connection->getCommunicator())
+ {
+- KeyCompareBasePtr keyCompare =
++ KeyCompareBasePtr keyCompare =
+ new KeyCompare<key_type, KeyCodec, Compare>(compare, _communicator);
+
+ std::vector<MapIndexBasePtr> indices;
+
+- _helper.reset(MapHelper::create(connection, dbName,
++ _helper.reset(MapHelper::create(connection, dbName,
+ KeyCodec::typeId(), ValueCodec::typeId(),
+ keyCompare, indices, createDb));
+ while(first != last)
+@@ -864,15 +865,15 @@ public:
+ {
+ }
+
+- static void recreate(const Freeze::ConnectionPtr& connection,
++ static void recreate(const Freeze::ConnectionPtr& connection,
+ const std::string& dbName,
+ const Compare& compare = Compare())
+ {
+- KeyCompareBasePtr keyCompare =
++ KeyCompareBasePtr keyCompare =
+ new KeyCompare<key_type, KeyCodec, Compare>(compare, connection->getCommunicator());
+
+ std::vector<MapIndexBasePtr> indices;
+- MapHelper::recreate(connection, dbName, KeyCodec::typeId(), ValueCodec::typeId(), keyCompare,
++ MapHelper::recreate(connection, dbName, KeyCodec::typeId(), ValueCodec::typeId(), keyCompare,
+ indices);
+ }
+
+@@ -909,13 +910,13 @@ public:
+ {
+ return !(*this == rhs);
+ }
+-
++
+ void swap(Map& rhs)
+ {
+ MapHelper* tmp = _helper.release();
+ _helper.reset(rhs._helper.release());
+ rhs._helper.reset(tmp);
+-
++
+ Ice::CommunicatorPtr tmpCom = _communicator;
+ _communicator = rhs._communicator;
+ rhs._communicator = tmpCom;
+@@ -988,7 +989,7 @@ public:
+ //
+ //allocator_type get_allocator() const;
+ //
+-
++
+ iterator insert(iterator /*position*/, const value_type& key)
+ {
+ //
+@@ -996,14 +997,14 @@ public:
+ //
+ Key k;
+ KeyCodec::write(key.first, k, _communicator);
+-
++
+ iterator r = iterator(_helper->find(k, false), _communicator);
+
+ if(r == end())
+ {
+ Value v;
+ ValueCodec::write(key.second, v, _communicator);
+-
++
+ _helper->put(k, v);
+ r = iterator(_helper->find(k, false), _communicator);
+ }
+@@ -1023,7 +1024,7 @@ public:
+ {
+ Value v;
+ ValueCodec::write(key.second, v, _communicator);
+-
++
+ _helper->put(k, v);
+ inserted = true;
+ r = iterator(_helper->find(k, false), _communicator);
+@@ -1093,7 +1094,7 @@ public:
+ _helper->clear();
+ }
+
+-
++
+ //
+ // destroy is not a standard function
+ //
+@@ -1130,7 +1131,7 @@ public:
+ {
+ Key k;
+ KeyCodec::write(key, k, _communicator);
+-
++
+ return _helper->count(k);
+ }
+
+@@ -1141,7 +1142,7 @@ public:
+
+ return iterator(_helper->lowerBound(k, false), _communicator);
+ }
+-
++
+ const_iterator lower_bound(const key_type& key) const
+ {
+ Key k;
+@@ -1157,7 +1158,7 @@ public:
+
+ return iterator(_helper->upperBound(k, false), _communicator);
+ }
+-
++
+ const_iterator upper_bound(const key_type& key) const
+ {
+ Key k;
+@@ -1165,13 +1166,13 @@ public:
+
+ return iterator(_helper->upperBound(k, true), _communicator);
+ }
+-
++
+ std::pair<iterator, iterator> equal_range(const key_type& key)
+ {
+ return std::make_pair(lower_bound(key), upper_bound(key));
+ }
+
+- std::pair<const_iterator, const_iterator>
++ std::pair<const_iterator, const_iterator>
+ equal_range(const key_type& key) const
+ {
+ return std::make_pair(lower_bound(key), upper_bound(key));
+@@ -1213,19 +1214,19 @@ namespace std
+ {
+
+ // TODO: update.
+-template <class key_type, class mapped_type,
++template <class key_type, class mapped_type,
+ class KeyCodec, class ValueCodec, class Compare>
+ inline pair<const key_type, const mapped_type>*
+-value_type(const Freeze::Iterator<key_type, mapped_type,
++value_type(const Freeze::Iterator<key_type, mapped_type,
+ KeyCodec, ValueCodec, Compare>&)
+ {
+ return (pair<const key_type, const mapped_type>*)0;
+ }
+
+-template <class key_type, class mapped_type,
++template <class key_type, class mapped_type,
+ class KeyCodec, class ValueCodec, class Compare>
+ inline pair<const key_type, const mapped_type>*
+-value_type(const Freeze::ConstIterator<key_type, mapped_type,
++value_type(const Freeze::ConstIterator<key_type, mapped_type,
+ KeyCodec, ValueCodec, Compare>&)
+ {
+ return (pair<const key_type, const mapped_type>*)0;
+diff --git a/cpp/include/Ice/Buffer.h b/cpp/include/Ice/Buffer.h
+index 3ba6a1f..ed8b67b 100644
+--- a/cpp/include/Ice/Buffer.h
++++ b/cpp/include/Ice/Buffer.h
+@@ -10,6 +10,7 @@
+ #ifndef ICEE_BUFFER_H
+ #define ICEE_BUFFER_H
+
++#include <cstddef>
+ #include <Ice/Config.h>
+
+ namespace IceInternal
+@@ -76,7 +77,7 @@ public:
+ }
+
+ void swap(Container&);
+-
++
+ void clear();
+
+ void resize(size_type n) // Inlined for performance reasons.
+@@ -87,7 +88,7 @@ public:
+ }
+ else if(n > _capacity)
+ {
+- reserve(n);
++ reserve(n);
+ }
+ _size = n;
+ }
+@@ -132,7 +133,7 @@ public:
+ assert(n < _size);
+ return _buf[n];
+ }
+-
++
+ private:
+
+ Container(const Container&);
+diff --git a/cpp/src/Ice/ConnectionFactory.cpp b/cpp/src/Ice/ConnectionFactory.cpp
+index 015818d..3526986 100644
+--- a/cpp/src/Ice/ConnectionFactory.cpp
++++ b/cpp/src/Ice/ConnectionFactory.cpp
+@@ -25,6 +25,7 @@
+ #include <Ice/LocalException.h>
+ #include <Ice/Functional.h>
+ #include <IceUtil/Random.h>
++#include <cstddef>
+ #include <iterator>
+
+ using namespace std;
+@@ -68,16 +69,16 @@ remove(multimap<K, V>& m, K k, V v)
+ }
+
+ template <typename K, typename V> ::IceInternal::Handle<V>
+-find(const multimap<K,::IceInternal::Handle<V> >& m,
+- K k,
++find(const multimap<K,::IceInternal::Handle<V> >& m,
++ K k,
+ const ::IceUtilInternal::ConstMemFun<bool, V, ::IceInternal::Handle<V> >& predicate)
+ {
+ #if defined(_MSC_VER) && (_MSC_VER < 1300)
+- pair<multimap<K, ::IceInternal::Handle<V> >::const_iterator,
++ pair<multimap<K, ::IceInternal::Handle<V> >::const_iterator,
+ multimap<K, ::IceInternal::Handle<V> >::const_iterator> pr = m.equal_range(k);
+ for(multimap<K, ::IceInternal::Handle<V> >::const_iterator q = pr.first; q != pr.second; ++q)
+ #else
+- pair<typename multimap<K, ::IceInternal::Handle<V> >::const_iterator,
++ pair<typename multimap<K, ::IceInternal::Handle<V> >::const_iterator,
+ typename multimap<K, ::IceInternal::Handle<V> >::const_iterator> pr = m.equal_range(k);
+ for(typename multimap<K, ::IceInternal::Handle<V> >::const_iterator q = pr.first; q != pr.second; ++q)
+ #endif
+@@ -130,7 +131,7 @@ IceInternal::OutgoingConnectionFactory::waitUntilFinished()
+
+ {
+ IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this);
+-
++
+ //
+ // First we wait until the factory is destroyed. We also wait
+ // until there are no pending connections anymore. Only then
+@@ -168,7 +169,7 @@ IceInternal::OutgoingConnectionFactory::create(const vector<EndpointIPtr>& endpt
+ Ice::EndpointSelectionType selType, bool& compress)
+ {
+ assert(!endpts.empty());
+-
++
+ //
+ // Apply the overrides.
+ //
+@@ -176,7 +177,7 @@ IceInternal::OutgoingConnectionFactory::create(const vector<EndpointIPtr>& endpt
+
+ //
+ // Try to find a connection to one of the given endpoints.
+- //
++ //
+ Ice::ConnectionIPtr connection = findConnection(endpoints, compress);
+ if(connection)
+ {
+@@ -199,13 +200,13 @@ IceInternal::OutgoingConnectionFactory::create(const vector<EndpointIPtr>& endpt
+ {
+ vector<ConnectorPtr> cons = (*p)->connectors();
+ assert(!cons.empty());
+-
++
+ if(selType == Random)
+ {
+ RandomNumberGenerator rng;
+ random_shuffle(cons.begin(), cons.end(), rng);
+ }
+-
++
+ for(vector<ConnectorPtr>::const_iterator r = cons.begin(); r != cons.end(); ++r)
+ {
+ assert(*r);
+@@ -224,7 +225,7 @@ IceInternal::OutgoingConnectionFactory::create(const vector<EndpointIPtr>& endpt
+ assert(exception.get());
+ exception->ice_throw();
+ }
+-
++
+ //
+ // Try to get a connection to one of the connectors. A null result indicates that no
+ // connection was found and that we should try to establish the connection (and that
+@@ -300,7 +301,7 @@ IceInternal::OutgoingConnectionFactory::create(const vector<EndpointIPtr>& endpt
+
+ void
+ IceInternal::OutgoingConnectionFactory::create(const vector<EndpointIPtr>& endpts, bool hasMore,
+- Ice::EndpointSelectionType selType,
++ Ice::EndpointSelectionType selType,
+ const CreateConnectionCallbackPtr& callback)
+ {
+ assert(!endpts.empty());
+@@ -312,7 +313,7 @@ IceInternal::OutgoingConnectionFactory::create(const vector<EndpointIPtr>& endpt
+
+ //
+ // Try to find a connection to one of the given endpoints.
+- //
++ //
+ try
+ {
+ bool compress;
+@@ -328,7 +329,7 @@ IceInternal::OutgoingConnectionFactory::create(const vector<EndpointIPtr>& endpt
+ callback->setException(ex);
+ return;
+ }
+-
++
+ ConnectCallbackPtr cb = new ConnectCallback(this, endpoints, hasMore, callback, selType);
+ cb->getConnectors();
+ }
+@@ -392,12 +393,12 @@ void
+ IceInternal::OutgoingConnectionFactory::removeAdapter(const ObjectAdapterPtr& adapter)
+ {
+ IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this);
+-
++
+ if(_destroyed)
+ {
+ return;
+ }
+-
++
+ for(multimap<ConnectorPtr, ConnectionIPtr>::const_iterator p = _connections.begin(); p != _connections.end(); ++p)
+ {
+ if(p->second->getAdapter() == adapter)
+@@ -502,7 +503,7 @@ IceInternal::OutgoingConnectionFactory::findConnection(const vector<EndpointIPtr
+ return 0;
+ }
+
+-ConnectionIPtr
++ConnectionIPtr
+ IceInternal::OutgoingConnectionFactory::findConnection(const vector<ConnectorInfo>& connectors, bool& compress)
+ {
+ // This must be called with the mutex locked.
+@@ -529,7 +530,7 @@ IceInternal::OutgoingConnectionFactory::findConnection(const vector<ConnectorInf
+ return connection;
+ }
+ }
+-
++
+ return 0;
+ }
+
+@@ -537,7 +538,7 @@ void
+ IceInternal::OutgoingConnectionFactory::incPendingConnectCount()
+ {
+ //
+- // Keep track of the number of pending connects. The outgoing connection factory
++ // Keep track of the number of pending connects. The outgoing connection factory
+ // waitUntilFinished() method waits for all the pending connects to terminate before
+ // to return. This ensures that the communicator client thread pool isn't destroyed
+ // too soon and will still be available to execute the ice_exception() callbacks for
+@@ -564,9 +565,9 @@ IceInternal::OutgoingConnectionFactory::decPendingConnectCount()
+ }
+ }
+
+-ConnectionIPtr
+-IceInternal::OutgoingConnectionFactory::getConnection(const vector<ConnectorInfo>& connectors,
+- const ConnectCallbackPtr& cb,
++ConnectionIPtr
++IceInternal::OutgoingConnectionFactory::getConnection(const vector<ConnectorInfo>& connectors,
++ const ConnectCallbackPtr& cb,
+ bool& compress)
+ {
+ {
+@@ -575,7 +576,7 @@ IceInternal::OutgoingConnectionFactory::getConnection(const vector<ConnectorInfo
+ {
+ throw Ice::CommunicatorDestroyedException(__FILE__, __LINE__);
+ }
+-
++
+ //
+ // Reap closed connections
+ //
+@@ -610,15 +611,15 @@ IceInternal::OutgoingConnectionFactory::getConnection(const vector<ConnectorInfo
+ }
+
+ //
+- // Determine whether another thread/request is currently attempting to connect to
++ // Determine whether another thread/request is currently attempting to connect to
+ // one of our endpoints; if so we wait until it's done.
+ //
+ if(addToPending(cb, connectors))
+ {
+ //
+- // If a callback is not specified we wait until another thread notifies us about a
+- // change to the pending list. Otherwise, if a callback is provided we're done:
+- // when the pending list changes the callback will be notified and will try to
++ // If a callback is not specified we wait until another thread notifies us about a
++ // change to the pending list. Otherwise, if a callback is provided we're done:
++ // when the pending list changes the callback will be notified and will try to
+ // get the connection again.
+ //
+ if(!cb)
+@@ -643,7 +644,7 @@ IceInternal::OutgoingConnectionFactory::getConnection(const vector<ConnectorInfo
+ }
+
+ //
+- // At this point, we're responsible for establishing the connection to one of
++ // At this point, we're responsible for establishing the connection to one of
+ // the given connectors. If it's a non-blocking connect, calling nextConnector
+ // will start the connection establishment. Otherwise, we return null to get
+ // the caller to establish the connection.
+@@ -692,7 +693,7 @@ IceInternal::OutgoingConnectionFactory::createConnection(const TransceiverPtr& t
+
+ _connections.insert(pair<const ConnectorPtr, ConnectionIPtr>(ci.connector, connection));
+ _connectionsByEndpoint.insert(pair<const EndpointIPtr, ConnectionIPtr>(connection->endpoint(), connection));
+- _connectionsByEndpoint.insert(pair<const EndpointIPtr, ConnectionIPtr>(connection->endpoint()->compress(true),
++ _connectionsByEndpoint.insert(pair<const EndpointIPtr, ConnectionIPtr>(connection->endpoint()->compress(true),
+ connection));
+ return connection;
+ }
+@@ -766,7 +767,7 @@ IceInternal::OutgoingConnectionFactory::finishGetConnection(const vector<Connect
+ (*p)->setConnection(connection, compress);
+ }
+ }
+-
++
+ void
+ IceInternal::OutgoingConnectionFactory::finishGetConnection(const vector<ConnectorInfo>& connectors,
+ const Ice::LocalException& ex,
+@@ -800,7 +801,7 @@ IceInternal::OutgoingConnectionFactory::finishGetConnection(const vector<Connect
+ _pending.erase(q);
+ }
+ }
+-
++
+ for(set<ConnectCallbackPtr>::iterator r = callbacks.begin(); r != callbacks.end(); ++r)
+ {
+ assert(failedCallbacks.find(*r) == failedCallbacks.end());
+@@ -808,7 +809,7 @@ IceInternal::OutgoingConnectionFactory::finishGetConnection(const vector<Connect
+ }
+ notifyAll();
+ }
+-
++
+ set<ConnectCallbackPtr>::const_iterator p;
+ for(p = callbacks.begin(); p != callbacks.end(); ++p)
+ {
+@@ -821,7 +822,7 @@ IceInternal::OutgoingConnectionFactory::finishGetConnection(const vector<Connect
+ }
+
+ bool
+-IceInternal::OutgoingConnectionFactory::addToPending(const ConnectCallbackPtr& cb,
++IceInternal::OutgoingConnectionFactory::addToPending(const ConnectCallbackPtr& cb,
+ const vector<ConnectorInfo>& connectors)
+ {
+ //
+@@ -836,7 +837,7 @@ IceInternal::OutgoingConnectionFactory::addToPending(const ConnectCallbackPtr& c
+ found = true;
+ if(cb)
+ {
+- q->second.insert(cb);
++ q->second.insert(cb);
+ }
+ }
+ }
+@@ -847,8 +848,8 @@ IceInternal::OutgoingConnectionFactory::addToPending(const ConnectCallbackPtr& c
+ }
+
+ //
+- // If there's no pending connection for the given connectors, we're
+- // responsible for its establishment. We add empty pending lists,
++ // If there's no pending connection for the given connectors, we're
++ // responsible for its establishment. We add empty pending lists,
+ // other callbacks to the same connectors will be queued.
+ //
+ for(vector<ConnectorInfo>::const_iterator r = connectors.begin(); r != connectors.end(); ++r)
+@@ -862,7 +863,7 @@ IceInternal::OutgoingConnectionFactory::addToPending(const ConnectCallbackPtr& c
+ }
+
+ void
+-IceInternal::OutgoingConnectionFactory::removeFromPending(const ConnectCallbackPtr& cb,
++IceInternal::OutgoingConnectionFactory::removeFromPending(const ConnectCallbackPtr& cb,
+ const vector<ConnectorInfo>& connectors)
+ {
+ for(vector<ConnectorInfo>::const_iterator p = connectors.begin(); p != connectors.end(); ++p)
+@@ -956,11 +957,11 @@ IceInternal::OutgoingConnectionFactory::ConnectCallback::connectionStartComplete
+ }
+
+ void
+-IceInternal::OutgoingConnectionFactory::ConnectCallback::connectionStartFailed(const ConnectionIPtr& connection,
++IceInternal::OutgoingConnectionFactory::ConnectCallback::connectionStartFailed(const ConnectionIPtr& connection,
+ const LocalException& ex)
+ {
+ assert(_iter != _connectors.end());
+-
++
+ _factory->handleConnectionException(ex, _hasMore || _iter != _connectors.end() - 1);
+ if(dynamic_cast<const Ice::CommunicatorDestroyedException*>(&ex)) // No need to continue.
+ {
+@@ -1076,7 +1077,7 @@ IceInternal::OutgoingConnectionFactory::ConnectCallback::getConnection()
+ try
+ {
+ //
+- // If all the connectors have been created, we ask the factory to get a
++ // If all the connectors have been created, we ask the factory to get a
+ // connection.
+ //
+ bool compress;
+@@ -1086,12 +1087,12 @@ IceInternal::OutgoingConnectionFactory::ConnectCallback::getConnection()
+ //
+ // A null return value from getConnection indicates that the connection
+ // is being established and that everthing has been done to ensure that
+- // the callback will be notified when the connection establishment is
++ // the callback will be notified when the connection establishment is
+ // done or that the callback already obtain the connection.
+- //
++ //
+ return;
+ }
+-
++
+ _callback->setConnection(connection, compress);
+ _factory->decPendingConnectCount(); // Must be called last.
+ }
+@@ -1119,7 +1120,7 @@ IceInternal::OutgoingConnectionFactory::ConnectCallback::nextConnector()
+ }
+
+ void
+-IceInternal::OutgoingConnectionFactory::ConnectCallback::setConnection(const Ice::ConnectionIPtr& connection,
++IceInternal::OutgoingConnectionFactory::ConnectCallback::setConnection(const Ice::ConnectionIPtr& connection,
+ bool compress)
+ {
+ //
+@@ -1151,7 +1152,7 @@ IceInternal::OutgoingConnectionFactory::ConnectCallback::removeConnectors(const
+ {
+ //
+ // Callback from the factory: connecting to the given connectors
+- // failed, we remove the connectors and return true if there's
++ // failed, we remove the connectors and return true if there's
+ // no more connectors left to try.
+ //
+ for(vector<ConnectorInfo>::const_iterator p = connectors.begin(); p != connectors.end(); ++p)
+@@ -1201,7 +1202,7 @@ IceInternal::IncomingConnectionFactory::waitUntilHolding() const
+
+ {
+ IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this);
+-
++
+ //
+ // First we wait until the connection factory itself is in holding
+ // state.
+@@ -1230,7 +1231,7 @@ IceInternal::IncomingConnectionFactory::waitUntilFinished()
+ set<ConnectionIPtr> connections;
+ {
+ IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this);
+-
++
+ //
+ // First we wait until the factory is destroyed. If we are using
+ // an acceptor, we also wait for it to be closed.
+@@ -1342,7 +1343,7 @@ IceInternal::IncomingConnectionFactory::finishAsync(SocketOperation)
+ Error out(_instance->initializationData().logger);
+ out << "couldn't accept connection:\n" << ex << '\n' << _acceptor->toString();
+ return false;
+- }
++ }
+ return _state < StateClosed;
+ }
+ #endif
+@@ -1372,7 +1373,7 @@ IceInternal::IncomingConnectionFactory::message(ThreadPoolCurrent& current)
+ IceUtil::ThreadControl::yield();
+ return;
+ }
+-
++
+ //
+ // Reap closed connections
+ //
+@@ -1465,7 +1466,7 @@ IceInternal::IncomingConnectionFactory::toString() const
+ {
+ return _transceiver->toString();
+ }
+-
++
+ assert(_acceptor);
+ return _acceptor->toString();
+ }
+@@ -1506,7 +1507,7 @@ IceInternal::IncomingConnectionFactory::connectionStartFailed(const Ice::Connect
+ {
+ return;
+ }
+-
++
+ if(_warn)
+ {
+ Warning out(_instance->initializationData().logger);
+@@ -1552,7 +1553,7 @@ IceInternal::IncomingConnectionFactory::initialize(const string& oaName)
+ if(_transceiver)
+ {
+ ConnectionIPtr connection = new ConnectionI(_instance, _reaper, _transceiver, 0, _endpoint, _adapter);
+- connection->start(0);
++ connection->start(0);
+ _connections.insert(connection);
+ }
+ else
+@@ -1589,7 +1590,7 @@ IceInternal::IncomingConnectionFactory::initialize(const string& oaName)
+ // Ignore
+ }
+ }
+-
++
+ _state = StateFinished;
+ _connections.clear();
+ throw;
+@@ -1625,7 +1626,7 @@ IceInternal::IncomingConnectionFactory::setState(State state)
+ for_each(_connections.begin(), _connections.end(), Ice::voidMemFun(&ConnectionI::activate));
+ break;
+ }
+-
++
+ case StateHolding:
+ {
+ if(_state != StateActive) // Can only switch from active to holding.
+@@ -1639,7 +1640,7 @@ IceInternal::IncomingConnectionFactory::setState(State state)
+ for_each(_connections.begin(), _connections.end(), Ice::voidMemFun(&ConnectionI::hold));
+ break;
+ }
+-
++
+ case StateClosed:
+ {
+ if(_acceptor)
+@@ -1653,10 +1654,10 @@ IceInternal::IncomingConnectionFactory::setState(State state)
+
+ #ifdef ICE_USE_IOCP
+ //
+- // With IOCP, we close the acceptor now to cancel all the pending asynchronous
+- // operations. It's important to wait for the pending asynchronous operations
++ // With IOCP, we close the acceptor now to cancel all the pending asynchronous
++ // operations. It's important to wait for the pending asynchronous operations
+ // to return before ConnectionI::finished(). Otherwise, if there was a pending
+- // message waiting to be sent, the connection wouldn't know whether or not the
++ // message waiting to be sent, the connection wouldn't know whether or not the
+ // send failed or succeeded, potentially breaking at-most-once semantics.
+ //
+ if(_acceptor)
+diff --git a/cpp/src/Ice/ConnectionI.cpp b/cpp/src/Ice/ConnectionI.cpp
+index cf7ec77..e76a3f0 100644
+--- a/cpp/src/Ice/ConnectionI.cpp
++++ b/cpp/src/Ice/ConnectionI.cpp
+@@ -25,6 +25,7 @@
+ #include <Ice/LocalException.h>
+ #include <Ice/ReferenceFactory.h> // For createProxy().
+ #include <Ice/ProxyFactory.h> // For createProxy().
++#include <cstddef>
+ #include <bzlib.h>
+
+ using namespace std;
+@@ -49,7 +50,7 @@ public:
+ {
+ _connection->timedOut();
+ }
+-
++
+ private:
+
+ Ice::ConnectionI* _connection;
+@@ -59,9 +60,9 @@ class DispatchDispatcherCall : public DispatcherCall
+ {
+ public:
+
+- DispatchDispatcherCall(const ConnectionIPtr& connection, const ConnectionI::StartCallbackPtr& startCB,
+- const vector<OutgoingAsyncMessageCallbackPtr>& sentCBs, Byte compress, Int requestId,
+- Int invokeNum, const ServantManagerPtr& servantManager, const ObjectAdapterPtr& adapter,
++ DispatchDispatcherCall(const ConnectionIPtr& connection, const ConnectionI::StartCallbackPtr& startCB,
++ const vector<OutgoingAsyncMessageCallbackPtr>& sentCBs, Byte compress, Int requestId,
++ Int invokeNum, const ServantManagerPtr& servantManager, const ObjectAdapterPtr& adapter,
+ const OutgoingAsyncPtr& outAsync, BasicStream& stream) :
+ _connection(connection),
+ _startCB(startCB),
+@@ -80,7 +81,7 @@ public:
+ virtual void
+ run()
+ {
+- _connection->dispatch(_startCB, _sentCBs, _compress, _requestId, _invokeNum, _servantManager, _adapter,
++ _connection->dispatch(_startCB, _sentCBs, _compress, _requestId, _invokeNum, _servantManager, _adapter,
+ _outAsync, _stream);
+ }
+
+@@ -632,8 +633,8 @@ Ice::ConnectionI::prepareBatchRequest(BasicStream* os)
+ if(_exception.get())
+ {
+ //
+- // If there were no batch requests queued when the connection failed, we can safely
+- // retry with a new connection. Otherwise, we must throw to notify the caller that
++ // If there were no batch requests queued when the connection failed, we can safely
++ // retry with a new connection. Otherwise, we must throw to notify the caller that
+ // some previous batch requests were not sent.
+ //
+ if(_batchStream.b.empty())
+@@ -992,7 +993,7 @@ Ice::ConnectionI::sendResponse(BasicStream* os, Byte compressFlag)
+ {
+ IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this);
+ assert(_state > StateNotValidated);
+-
++
+ try
+ {
+ if(--_dispatchCount == 0)
+@@ -1003,21 +1004,21 @@ Ice::ConnectionI::sendResponse(BasicStream* os, Byte compressFlag)
+ }
+ notifyAll();
+ }
+-
++
+ if(_state >= StateClosed)
+ {
+ assert(_exception.get());
+ _exception->ice_throw();
+ }
+-
++
+ OutgoingMessage message(os, compressFlag > 0);
+ sendMessage(message);
+-
++
+ if(_state == StateClosing && _dispatchCount == 0)
+ {
+ initiateShutdown();
+ }
+-
++
+ return;
+ }
+ catch(const LocalException& ex)
+@@ -1031,7 +1032,7 @@ Ice::ConnectionI::sendNoResponse()
+ {
+ IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this);
+ assert(_state > StateNotValidated);
+-
++
+ try
+ {
+ if(--_dispatchCount == 0)
+@@ -1042,13 +1043,13 @@ Ice::ConnectionI::sendNoResponse()
+ }
+ notifyAll();
+ }
+-
++
+ if(_state >= StateClosed)
+ {
+ assert(_exception.get());
+ _exception->ice_throw();
+ }
+-
++
+ if(_state == StateClosing && _dispatchCount == 0)
+ {
+ initiateShutdown();
+@@ -1138,7 +1139,7 @@ Ice::ConnectionI::startAsync(SocketOperation operation)
+
+ try
+ {
+- if(operation & SocketOperationWrite)
++ if(operation & SocketOperationWrite)
+ {
+ if(_transceiver->startWrite(_writeStream) && !_sendStreams.empty())
+ {
+@@ -1229,10 +1230,10 @@ Ice::ConnectionI::message(ThreadPoolCurrent& current)
+ if(_readStream.i != _readStream.b.end() && !_transceiver->read(_readStream))
+ {
+ return;
+- }
++ }
+ assert(_readStream.i == _readStream.b.end());
+ _readHeader = false;
+-
++
+ ptrdiff_t pos = _readStream.i - _readStream.b.begin();
+ if(pos < headerSize)
+ {
+@@ -1241,7 +1242,7 @@ Ice::ConnectionI::message(ThreadPoolCurrent& current)
+ //
+ throw IllegalMessageSizeException(__FILE__, __LINE__);
+ }
+-
++
+ _readStream.i = _readStream.b.begin();
+ const Byte* m;
+ _readStream.readBlob(m, static_cast<Int>(sizeof(magic)));
+@@ -1318,7 +1319,7 @@ Ice::ConnectionI::message(ThreadPoolCurrent& current)
+ }
+ }
+ }
+-
++
+ if(_state <= StateNotValidated)
+ {
+ if(_state == StateNotInitialized && !initialize(current.operation))
+@@ -1431,7 +1432,7 @@ Ice::ConnectionI::message(ThreadPoolCurrent& current)
+
+ void
+ ConnectionI::dispatch(const StartCallbackPtr& startCB, const vector<OutgoingAsyncMessageCallbackPtr>& sentCBs,
+- Byte compress, Int requestId, Int invokeNum, const ServantManagerPtr& servantManager,
++ Byte compress, Int requestId, Int invokeNum, const ServantManagerPtr& servantManager,
+ const ObjectAdapterPtr& adapter, const OutgoingAsyncPtr& outAsync, BasicStream& stream)
+ {
+ //
+@@ -1482,7 +1483,7 @@ Ice::ConnectionI::finished(ThreadPoolCurrent& current)
+
+ //
+ // If there are no callbacks to call, we don't call ioCompleted() since we're not going
+- // to call code that will potentially block (this avoids promoting a new leader and
++ // to call code that will potentially block (this avoids promoting a new leader and
+ // unecessary thread creation, especially if this is called on shutdown).
+ //
+ if(!_startCallback && _sendStreams.empty() && _asyncRequests.empty())
+@@ -1536,7 +1537,7 @@ Ice::ConnectionI::finish()
+ #ifdef ICE_USE_IOCP
+ //
+ // The current message might be sent but not yet removed from _sendStreams. If
+- // the response has been received in the meantime, we remove the message from
++ // the response has been received in the meantime, we remove the message from
+ // _sendStreams to not call finished on a message which is already done.
+ //
+ OutgoingMessage* message = &_sendStreams.front();
+@@ -2043,7 +2044,7 @@ Ice::ConnectionI::initiateShutdown()
+ //
+ scheduleTimeout(SocketOperationWrite, closeTimeout());
+ }
+-
++
+ //
+ // The CloseConnection message should be sufficient. Closing the write
+ // end of the socket is probably an artifact of how things were done
+@@ -2191,12 +2192,12 @@ Ice::ConnectionI::validate(SocketOperation operation)
+ void
+ Ice::ConnectionI::sendNextMessage(vector<OutgoingAsyncMessageCallbackPtr>& callbacks)
+ {
+- assert(!_sendStreams.empty());
++ assert(!_sendStreams.empty());
+ assert(!_writeStream.b.empty() && _writeStream.i == _writeStream.b.end());
+ try
+ {
+ while(true)
+- {
++ {
+ //
+ // Notify the message that it was sent.
+ //
+@@ -2301,7 +2302,7 @@ Ice::ConnectionI::sendNextMessage(vector<OutgoingAsyncMessageCallbackPtr>& callb
+ _threadPool->unregister(this, SocketOperationWrite);
+
+ //
+- // If all the messages were sent and we are in the closing state, we schedule
++ // If all the messages were sent and we are in the closing state, we schedule
+ // the close timeout to wait for the peer to close the connection.
+ //
+ if(_state == StateClosing)
+diff --git a/cpp/src/Ice/Reference.cpp b/cpp/src/Ice/Reference.cpp
+index 02b8fcd..66d4a9d 100644
+--- a/cpp/src/Ice/Reference.cpp
++++ b/cpp/src/Ice/Reference.cpp
+@@ -29,6 +29,7 @@
+ #include <IceUtil/Random.h>
+ #include <IceUtil/MutexPtrLock.h>
+
++#include <cstddef>
+ #include <functional>
+
+ using namespace std;
+@@ -418,10 +419,10 @@ public:
+ }
+ };
+
+-IceInternal::Reference::Reference(const InstancePtr& instance,
+- const CommunicatorPtr& communicator,
++IceInternal::Reference::Reference(const InstancePtr& instance,
++ const CommunicatorPtr& communicator,
+ const Identity& id,
+- const string& facet,
++ const string& facet,
+ Mode mode,
+ bool secure) :
+ _hashInitialized(false),
+@@ -465,10 +466,10 @@ IceInternal::Reference::hashInit() const
+
+ IceUtil::Shared* IceInternal::upCast(IceInternal::FixedReference* p) { return p; }
+
+-IceInternal::FixedReference::FixedReference(const InstancePtr& instance,
+- const CommunicatorPtr& communicator,
++IceInternal::FixedReference::FixedReference(const InstancePtr& instance,
++ const CommunicatorPtr& communicator,
+ const Identity& id,
+- const string& facet,
++ const string& facet,
+ Mode mode,
+ bool secure,
+ const ConnectionIPtr& fixedConnection) :
+@@ -752,7 +753,7 @@ IceInternal::FixedReference::operator<(const Reference& r) const
+ {
+ return false;
+ }
+-
++
+ const FixedReference* rhs = dynamic_cast<const FixedReference*>(&r);
+ if(!rhs)
+ {
+@@ -776,19 +777,19 @@ IceInternal::FixedReference::FixedReference(const FixedReference& r) :
+
+ IceUtil::Shared* IceInternal::upCast(IceInternal::RoutableReference* p) { return p; }
+
+-IceInternal::RoutableReference::RoutableReference(const InstancePtr& instance,
++IceInternal::RoutableReference::RoutableReference(const InstancePtr& instance,
+ const CommunicatorPtr& communicator,
+- const Identity& id,
++ const Identity& id,
+ const string& facet,
+- Mode mode,
+- bool secure,
++ Mode mode,
++ bool secure,
+ const vector<EndpointIPtr>& endpoints,
+ const string& adapterId,
+ const LocatorInfoPtr& locatorInfo,
+ const RouterInfoPtr& routerInfo,
+ bool collocationOptimized,
+ bool cacheConnection,
+- bool preferSecure,
++ bool preferSecure,
+ EndpointSelectionType endpointSelection,
+ int locatorCacheTimeout) :
+ Reference(instance, communicator, id, facet, mode, secure),
+@@ -1594,7 +1595,7 @@ IceInternal::RoutableReference::getConnectionNoRouterInfo(const GetConnectionCal
+ createConnection(_endpoints, callback);
+ return;
+ }
+-
++
+ if(_locatorInfo)
+ {
+ RoutableReference* self = const_cast<RoutableReference*>(this);
+@@ -1698,7 +1699,7 @@ IceInternal::RoutableReference::createConnection(const vector<EndpointIPtr>& all
+
+ virtual void
+ setConnection(const Ice::ConnectionIPtr& connection, bool compress)
+- {
++ {
+ //
+ // If we have a router, set the object adapter for this router
+ // (if any) to the new connection, so that callbacks from the
+@@ -1716,7 +1717,7 @@ IceInternal::RoutableReference::createConnection(const vector<EndpointIPtr>& all
+ {
+ _callback->setException(ex);
+ }
+-
++
+ CB1(const RouterInfoPtr& routerInfo, const GetConnectionCallbackPtr& callback) :
+ _routerInfo(routerInfo), _callback(callback)
+ {
+@@ -1763,21 +1764,21 @@ IceInternal::RoutableReference::createConnection(const vector<EndpointIPtr>& all
+ {
+ _exception.reset(dynamic_cast<Ice::LocalException*>(ex.ice_clone()));
+ }
+-
++
+ if(++_i == _endpoints.size())
+ {
+ _callback->setException(*_exception.get());
+ return;
+ }
+-
++
+ const bool more = _i != _endpoints.size() - 1;
+ vector<EndpointIPtr> endpoint;
+ endpoint.push_back(_endpoints[_i]);
+-
++
+ OutgoingConnectionFactoryPtr factory = _reference->getInstance()->outgoingConnectionFactory();
+ factory->create(endpoint, more, _reference->getEndpointSelection(), this);
+ }
+-
++
+ CB2(const RoutableReferencePtr& reference, const vector<EndpointIPtr>& endpoints,
+ const GetConnectionCallbackPtr& callback) :
+ _reference(reference),
+diff --git a/cpp/src/IceGrid/Util.h b/cpp/src/IceGrid/Util.h
+index a0e0404..e2e9fb7 100644
+--- a/cpp/src/IceGrid/Util.h
++++ b/cpp/src/IceGrid/Util.h
+@@ -14,6 +14,7 @@
+ #include <IceUtil/StringUtil.h>
+ #include <IceGrid/Exception.h>
+ #include <IceUtil/Random.h>
++#include <cstddef>
+ #include <functional>
+ #include <iterator>
+
+@@ -30,9 +31,9 @@ struct RandomNumberGenerator : public std::unary_function<ptrdiff_t, ptrdiff_t>
+
+
+ template<typename T> std::insert_iterator<T>
+-inline set_inserter(T& container)
+-{
+- return std::insert_iterator<T>(container, container.begin());
++inline set_inserter(T& container)
++{
++ return std::insert_iterator<T>(container, container.begin());
+ }
+
+ std::string toString(const std::vector<std::string>&, const std::string& = std::string(" "));
+@@ -76,8 +77,8 @@ struct ForEachCommunicator : std::unary_function<CommunicatorDescriptorPtr&, voi
+ };
+
+ template<typename Function> ForEachCommunicator<Function>
+-inline forEachCommunicator(Function function)
+-{
++inline forEachCommunicator(Function function)
++{
+ return ForEachCommunicator<Function>(function);
+ }
+
+@@ -99,7 +100,7 @@ public:
+
+ template<class T, class A> ObjFunc<T, A>
+ inline objFunc(T& obj, void (T::*p)(A))
+-{
++{
+ return ObjFunc<T, A>(obj, p);
+ }
+
+diff --git a/cpp/src/slice2freeze/Main.cpp b/cpp/src/slice2freeze/Main.cpp
+index 764baa0..4b59ca1 100644
+--- a/cpp/src/slice2freeze/Main.cpp
++++ b/cpp/src/slice2freeze/Main.cpp
+@@ -18,6 +18,7 @@
+ #include <Slice/Util.h>
+ #include <IceUtil/OutputUtil.h>
+ #include <IceUtil/StringUtil.h>
++#include <cstddef>
+ #include <cstring>
+
+ using namespace std;
+@@ -139,7 +140,7 @@ private:
+ _useWstring = _useWstringHist.back();
+ _useWstringHist.pop_back();
+ }
+-
++
+ bool _useWstring;
+ std::list<bool> _useWstringHist;
+ };
+@@ -171,7 +172,7 @@ struct Dict
+ StringList valueMetaData;
+ bool sort;
+ string userCompare;
+-
++
+ vector<DictIndex> indices;
+ };
+
+@@ -217,7 +218,7 @@ usage(const char* n)
+ " Ice-encoding representation. Use 'sort' to sort\n"
+ " with the COMPARE functor class. COMPARE's default\n"
+ " value is std::less<KEY>\n"
+- "--index NAME,TYPE,MEMBER[,{case-sensitive|case-insensitive}]\n"
++ "--index NAME,TYPE,MEMBER[,{case-sensitive|case-insensitive}]\n"
+ " Create a Freeze evictor index with the name\n"
+ " NAME for member MEMBER of class TYPE. This\n"
+ " option may be specified multiple times for\n"
+@@ -253,7 +254,7 @@ checkIdentifier(string t, string s)
+ os << t << "' is not a valid type name";
+ throw os.str();
+ }
+-
++
+ for(unsigned int i = 1; i < s.size(); ++i)
+ {
+ if(!isalnum(static_cast<unsigned char>(s[i])) && s[i] != '_')
+@@ -272,13 +273,13 @@ printFreezeTypes(Output& out, const vector<Dict>& dicts, const vector<Index>& in
+ out << "\n// Freeze types in this file:";
+ for(vector<Dict>::const_iterator p = dicts.begin(); p != dicts.end(); ++p)
+ {
+- out << "\n// name=\"" << p->name << "\", key=\""
++ out << "\n// name=\"" << p->name << "\", key=\""
+ << p->key << "\", value=\"" << p->value << "\"";
+ }
+-
++
+ for(vector<Index>::const_iterator q = indices.begin(); q != indices.end(); ++q)
+ {
+- out << "\n// name=\"" << q->name << "\", type=\"" << q->type
++ out << "\n// name=\"" << q->name << "\", type=\"" << q->type
+ << "\", member=\"" << q->member << "\"";
+ if(q->caseSensitive == false)
+ {
+@@ -289,7 +290,7 @@ printFreezeTypes(Output& out, const vector<Dict>& dicts, const vector<Index>& in
+ }
+
+ template<class T>
+-inline string
++inline string
+ getCompare(const T& t, const string& keyType)
+ {
+ if(t.sort)
+@@ -397,7 +398,7 @@ writeCodecC(const TypePtr& type, const StringList& metaData, const string& name,
+
+ string typeId = type->typeId();
+ BuiltinPtr builtInType = BuiltinPtr::dynamicCast(type);
+- if(builtInType && builtInType->kind() == Builtin::KindString && metaData.size() != 0 &&
++ if(builtInType && builtInType->kind() == Builtin::KindString && metaData.size() != 0 &&
+ metaData.front() == "cpp:type:wstring")
+ {
+ typeId = "wstring";
+@@ -412,15 +413,15 @@ writeCodecC(const TypePtr& type, const StringList& metaData, const string& name,
+ }
+
+ void
+-writeDictWithIndicesH(const string& name, const Dict& dict,
+- const vector<IndexType> indexTypes,
++writeDictWithIndicesH(const string& name, const Dict& dict,
++ const vector<IndexType> indexTypes,
+ const TypePtr& keyType, const StringList& keyMetaData, const TypePtr& valueType,
+ const StringList& valueMetaData, Output& H, const string& dllExport)
+ {
+ string compare = getCompare(dict, typeToString(keyType, keyMetaData));
+-
++
+ string templateParams = string("< ") + typeToString(keyType, keyMetaData) + ", "
+- + typeToString(valueType, valueMetaData) + ", " + name + "KeyCodec, "
++ + typeToString(valueType, valueMetaData) + ", " + name + "KeyCodec, "
+ + name + "ValueCodec, " + compare + " >";
+
+ string keyCompareParams =
+@@ -444,7 +445,7 @@ writeDictWithIndicesH(const string& name, const Dict& dict,
+ }
+ }
+
+- H << sp << nl << "class " << dllExport << name
++ H << sp << nl << "class " << dllExport << name
+ << " : public Freeze::Map" << templateParams;
+ H << sb;
+ H.dec();
+@@ -473,24 +474,24 @@ writeDictWithIndicesH(const string& name, const Dict& dict,
+ {
+ string className = capitalizedMembers[i] + "Index";
+
+- string indexCompare =
++ string indexCompare =
+ getCompare(dict.indices[i], typeToString(indexTypes[i].type, indexTypes[i].metaData));
+-
++
+ string indexCompareParams =
+ string("< ") + typeToString(indexTypes[i].type, indexTypes[i].metaData) + ", "
+ + className + ", " + indexCompare + " >";
+
+ H << sp << nl << "class " << dllExport << className
+- << " : public Freeze::MapIndex" << indexCompareParams;
++ << " : public Freeze::MapIndex" << indexCompareParams;
+ H << sb;
+
+ H.dec();
+ H << sp << nl << "public:";
+ H << sp;
+ H.inc();
+- H << nl << capitalizedMembers[i] << "Index(const std::string&, const "
++ H << nl << capitalizedMembers[i] << "Index(const std::string&, const "
+ << indexCompare << "& = " << indexCompare << "());";
+-
++
+ H << sp;
+
+ //
+@@ -499,7 +500,7 @@ writeDictWithIndicesH(const string& name, const Dict& dict,
+ H << nl << "static void write(" << inputTypeToString(indexTypes[i].type, indexTypes[i].metaData)
+ << ", Freeze::Key&, const Ice::CommunicatorPtr&);";
+
+- H << nl << "static void read("
++ H << nl << "static void read("
+ << typeToString(indexTypes[i].type, indexTypes[i].metaData)
+ << "&, const Freeze::Key&, const ::Ice::CommunicatorPtr&);";
+
+@@ -509,7 +510,7 @@ writeDictWithIndicesH(const string& name, const Dict& dict,
+ H.inc();
+
+ H << nl << "virtual void marshalKey(const Freeze::Value&, Freeze::Key&) const;";
+-
++
+ H << eb << ';';
+ }
+
+@@ -576,22 +577,22 @@ writeDictWithIndicesH(const string& name, const Dict& dict,
+
+ H << nl << "iterator endFor" << capitalizedMembers[i] << "();";
+ H << nl << "const_iterator endFor" << capitalizedMembers[i] << "() const;";
+-
++
+ H << nl << "iterator lowerBoundFor" << capitalizedMembers[i]
+ << "(" << inputTypeToString(indexTypes[i].type, indexTypes[i].metaData) << ");";
+ H << nl << "const_iterator lowerBoundFor" << capitalizedMembers[i]
+ << "(" << inputTypeToString(indexTypes[i].type, indexTypes[i].metaData) << ") const;";
+-
++
+ H << nl << "iterator upperBoundFor" << capitalizedMembers[i]
+ << "(" << inputTypeToString(indexTypes[i].type, indexTypes[i].metaData) << ");";
+ H << nl << "const_iterator upperBoundFor" << capitalizedMembers[i]
+ << "(" << inputTypeToString(indexTypes[i].type, indexTypes[i].metaData) << ") const;";
+
+- H << nl << "std::pair<iterator, iterator> equalRangeFor"
+- << capitalizedMembers[i] << "(" << inputTypeToString(indexTypes[i].type, indexTypes[i].metaData)
++ H << nl << "std::pair<iterator, iterator> equalRangeFor"
++ << capitalizedMembers[i] << "(" << inputTypeToString(indexTypes[i].type, indexTypes[i].metaData)
+ << ");";
+-
+- H << nl << "std::pair<const_iterator, const_iterator> equalRangeFor"
++
++ H << nl << "std::pair<const_iterator, const_iterator> equalRangeFor"
+ << capitalizedMembers[i] << "(" << inputTypeToString(indexTypes[i].type, indexTypes[i].metaData)
+ << ") const;";
+
+@@ -602,26 +603,26 @@ writeDictWithIndicesH(const string& name, const Dict& dict,
+ << "(" << inputTypeToString(indexTypes[i].type, indexTypes[i].metaData) << ") const;";
+
+ }
+-
++
+ H << eb << ';';
+ }
+
+ void
+-writeDictWithIndicesC(const string& name, const string& absolute, const Dict& dict,
+- const vector<IndexType> indexTypes,
++writeDictWithIndicesC(const string& name, const string& absolute, const Dict& dict,
++ const vector<IndexType> indexTypes,
+ const TypePtr& keyType, const StringList& keyMetaData, const TypePtr& valueType,
+ const StringList& valueMetaData, Output& C)
+-{
++{
+ string compare = getCompare(dict, typeToString(keyType, keyMetaData));
+-
++
+ string templateParams = string("< ") + typeToString(keyType, keyMetaData) + ", "
+- + typeToString(valueType, valueMetaData) + ", " + name + "KeyCodec, "
++ + typeToString(valueType, valueMetaData) + ", " + name + "KeyCodec, "
+ + name + "ValueCodec, " + compare + " >";
+
+ string keyCompareParams =
+ string("< ") + typeToString(keyType, keyMetaData) + ", "
+ + name + "KeyCodec, " + compare + " >";
+-
++
+ vector<string> capitalizedMembers;
+ size_t i;
+ for(i = 0; i < dict.indices.size(); ++i)
+@@ -638,7 +639,7 @@ writeDictWithIndicesC(const string& name, const string& absolute, const Dict& di
+ capitalizedMembers.push_back("Value");
+ }
+ }
+-
++
+
+ //
+ // Nested index classes
+@@ -647,7 +648,7 @@ writeDictWithIndicesC(const string& name, const string& absolute, const Dict& di
+ {
+ string className = capitalizedMembers[i] + "Index";
+
+- string indexCompare =
++ string indexCompare =
+ getCompare(dict.indices[i], typeToString(indexTypes[i].type, indexTypes[i].metaData));
+
+ string indexCompareParams =
+@@ -665,11 +666,11 @@ writeDictWithIndicesC(const string& name, const string& absolute, const Dict& di
+ C << sb;
+ C << eb;
+
+- C << sp << nl << "void"
+- << nl << absolute << "::" << className << "::"
++ C << sp << nl << "void"
++ << nl << absolute << "::" << className << "::"
+ << "marshalKey(const Freeze::Value& __v, Freeze::Key& __k) const";
+ C << sb;
+-
++
+ bool optimize = false;
+
+ if(dict.indices[i].member.empty() && dict.indices[i].caseSensitive)
+@@ -685,7 +686,7 @@ writeDictWithIndicesC(const string& name, const string& absolute, const Dict& di
+ C << nl << typeToString(valueType, valueMetaData) << " __x;";
+ C << nl << absolute << "ValueCodec::read(__x, __v, _communicator);";
+ string param = "__x";
+-
++
+ if(!dict.indices[i].member.empty())
+ {
+ if(ClassDeclPtr::dynamicCast(valueType) != 0)
+@@ -700,13 +701,13 @@ writeDictWithIndicesC(const string& name, const string& absolute, const Dict& di
+ C << nl << "write(" << param << ", __k, _communicator);";
+ }
+ C << eb;
+-
+- C << sp << nl << "void"
+- << nl << absolute << "::" << className << "::"
++
++ C << sp << nl << "void"
++ << nl << absolute << "::" << className << "::"
+ << "write(" << inputTypeToString(indexTypes[i].type, indexTypes[i].metaData)
+ << " __index, Freeze::Key& __bytes, const Ice::CommunicatorPtr& __communicator)";
+ C << sb;
+-
++
+ if(optimize)
+ {
+ C << nl << absolute << "ValueCodec::write(__index, __bytes, __communicator);";
+@@ -717,7 +718,7 @@ writeDictWithIndicesC(const string& name, const string& absolute, const Dict& di
+
+ C << nl << "IceInternal::InstancePtr __instance = IceInternal::getInstance(__communicator);";
+ C << nl << "IceInternal::BasicStream __stream(__instance.get());";
+-
++
+ string valueS;
+ if(dict.indices[i].caseSensitive)
+ {
+@@ -725,22 +726,22 @@ writeDictWithIndicesC(const string& name, const string& absolute, const Dict& di
+ }
+ else
+ {
+- C << nl << typeToString(indexTypes[i].type, indexTypes[i].metaData)
++ C << nl << typeToString(indexTypes[i].type, indexTypes[i].metaData)
+ << " __lowerCaseIndex = IceUtilInternal::toLower(__index);";
+ valueS = "__lowerCaseIndex";
+ }
+-
++
+ writeMarshalUnmarshalCode(C, indexTypes[i].type, valueS, true, "__stream", false, indexTypes[i].metaData);
+ C << nl << "::std::vector<Ice::Byte>(__stream.b.begin(), __stream.b.end()).swap(__bytes);";
+ }
+ C << eb;
+
+- C << sp << nl << "void"
+- << nl << absolute << "::" << className << "::"
++ C << sp << nl << "void"
++ << nl << absolute << "::" << className << "::"
+ << "read(" << typeToString(indexTypes[i].type, indexTypes[i].metaData)
+ << "& __index, const Freeze::Key& __bytes, const Ice::CommunicatorPtr& __communicator)";
+ C << sb;
+-
++
+ if(optimize)
+ {
+ C << nl << absolute << "ValueCodec::read(__index, __bytes, __communicator);";
+@@ -749,11 +750,11 @@ writeDictWithIndicesC(const string& name, const string& absolute, const Dict& di
+ {
+ C << nl << "IceInternal::InstancePtr __instance = IceInternal::getInstance(__communicator);";
+ C << nl << "IceInternal::BasicStream __stream(__instance.get());";
+-
++
+ C << nl << "__stream.b.resize(__bytes.size());";
+ C << nl << "::memcpy(&__stream.b[0], &__bytes[0], __bytes.size());";
+ C << nl << "__stream.i = __stream.b.begin();";
+- writeMarshalUnmarshalCode(C, indexTypes[i].type, "__index", false, "__stream", false,
++ writeMarshalUnmarshalCode(C, indexTypes[i].type, "__index", false, "__stream", false,
+ indexTypes[i].metaData);
+ }
+ C << eb;
+@@ -810,7 +811,7 @@ writeDictWithIndicesC(const string& name, const string& absolute, const Dict& di
+
+ C << nl << "__indices.push_back(new " << capitalizedMembers[i] << "Index(" << indexName << "));";
+ }
+- C << nl << "Freeze::MapHelper::recreate(__connection, __dbName, "
++ C << nl << "Freeze::MapHelper::recreate(__connection, __dbName, "
+ << absolute + "KeyCodec::typeId(), "
+ << absolute + "ValueCodec::typeId(), __keyCompare, __indices);";
+ C << eb;
+@@ -819,9 +820,9 @@ writeDictWithIndicesC(const string& name, const string& absolute, const Dict& di
+ // Find and count functions
+ //
+ for(i = 0; i < capitalizedMembers.size(); ++i)
+- {
++ {
+ string indexClassName = capitalizedMembers[i] + "Index";
+-
++
+ string indexName = dict.indices[i].member;
+ if(indexName.empty())
+ {
+@@ -836,7 +837,7 @@ writeDictWithIndicesC(const string& name, const string& absolute, const Dict& di
+ C << sb;
+ C << nl << "Freeze::Key __bytes;";
+ C << nl << indexClassName << "::" << "write(__index, __bytes, _communicator);";
+- C << nl << "return iterator(_helper->index(" << indexName
++ C << nl << "return iterator(_helper->index(" << indexName
+ << ")->untypedFind(__bytes, false, __onlyDups), _communicator);";
+ C << eb;
+
+@@ -847,7 +848,7 @@ writeDictWithIndicesC(const string& name, const string& absolute, const Dict& di
+ C << sb;
+ C << nl << "Freeze::Key __bytes;";
+ C << nl << indexClassName << "::" << "write(__index, __bytes, _communicator);";
+- C << nl << "return const_iterator(_helper->index(" << indexName
++ C << nl << "return const_iterator(_helper->index(" << indexName
+ << ")->untypedFind(__bytes, true, __onlyDups), _communicator);";
+ C << eb;
+
+@@ -881,7 +882,7 @@ writeDictWithIndicesC(const string& name, const string& absolute, const Dict& di
+ C << sb;
+ C << nl << "Freeze::Key __bytes;";
+ C << nl << indexClassName << "::" << "write(__index, __bytes, _communicator);";
+- C << nl << "return iterator(_helper->index(" << indexName
++ C << nl << "return iterator(_helper->index(" << indexName
+ << ")->untypedLowerBound(__bytes, false), _communicator);";
+ C << eb;
+
+@@ -891,17 +892,17 @@ writeDictWithIndicesC(const string& name, const string& absolute, const Dict& di
+ C << sb;
+ C << nl << "Freeze::Key __bytes;";
+ C << nl << indexClassName << "::" << "write(__index, __bytes, _communicator);";
+- C << nl << "return const_iterator(_helper->index(" << indexName
++ C << nl << "return const_iterator(_helper->index(" << indexName
+ << ")->untypedLowerBound(__bytes, true), _communicator);";
+ C << eb;
+-
++
+ C << sp << nl << absolute << "::iterator"
+ << nl << absolute << "::" << "upperBoundFor" << capitalizedMembers[i]
+ << "(" << inputTypeToString(indexTypes[i].type, indexTypes[i].metaData) << " __index)";
+ C << sb;
+ C << nl << "Freeze::Key __bytes;";
+ C << nl << indexClassName << "::" << "write(__index, __bytes, _communicator);";
+- C << nl << "return iterator(_helper->index(" << indexName
++ C << nl << "return iterator(_helper->index(" << indexName
+ << ")->untypedUpperBound(__bytes, false), _communicator);";
+ C << eb;
+
+@@ -911,10 +912,10 @@ writeDictWithIndicesC(const string& name, const string& absolute, const Dict& di
+ C << sb;
+ C << nl << "Freeze::Key __bytes;";
+ C << nl << indexClassName << "::" << "write(__index, __bytes, _communicator);";
+- C << nl << "return const_iterator(_helper->index(" << indexName
++ C << nl << "return const_iterator(_helper->index(" << indexName
+ << ")->untypedUpperBound(__bytes, true), _communicator);";
+ C << eb;
+-
++
+ C << sp << nl << "std::pair<" << absolute << "::iterator, "
+ << absolute << "::iterator>"
+ << nl << absolute << "::" << "equalRangeFor" << capitalizedMembers[i]
+@@ -933,7 +934,7 @@ writeDictWithIndicesC(const string& name, const string& absolute, const Dict& di
+ << "(__index), upperBoundFor" << capitalizedMembers[i] << "(__index));";
+ C << eb;
+
+- string countFunction = dict.indices[i].member.empty() ? string("valueCount")
++ string countFunction = dict.indices[i].member.empty() ? string("valueCount")
+ : dict.indices[i].member + "Count";
+
+ C << sp << nl << "int"
+@@ -942,7 +943,7 @@ writeDictWithIndicesC(const string& name, const string& absolute, const Dict& di
+ C << sb;
+ C << nl << "Freeze::Key __bytes;";
+ C << nl << indexClassName << "::" << "write(__index, __bytes, _communicator);";
+- C << nl << "return _helper->index(" << indexName
++ C << nl << "return _helper->index(" << indexName
+ << ")->untypedCount(__bytes);";
+ C << eb;
+ }
+@@ -963,12 +964,12 @@ writeDict(const string& n, const UnitPtr& u, const Dict& dict, Output& H, Output
+ {
+ string s = name.substr(0, pos);
+ name.erase(0, pos + 2);
+-
++
+ checkIdentifier(absolute, s);
+-
++
+ scope.push_back(s);
+ }
+-
++
+ checkIdentifier(absolute, name);
+
+ TypeList keyTypes = u->lookupType(dict.key, false);
+@@ -979,7 +980,7 @@ writeDict(const string& n, const UnitPtr& u, const Dict& dict, Output& H, Output
+ throw os.str();
+ }
+ TypePtr keyType = keyTypes.front();
+-
++
+ TypeList valueTypes = u->lookupType(dict.value, false);
+ if(valueTypes.empty())
+ {
+@@ -988,9 +989,9 @@ writeDict(const string& n, const UnitPtr& u, const Dict& dict, Output& H, Output
+ throw os.str();
+ }
+ TypePtr valueType = valueTypes.front();
+-
++
+ vector<string>::const_iterator q;
+-
++
+ for(q = scope.begin(); q != scope.end(); ++q)
+ {
+ H << sp;
+@@ -1006,7 +1007,7 @@ writeDict(const string& n, const UnitPtr& u, const Dict& dict, Output& H, Output
+ {
+ string compare = getCompare(dict, typeToString(keyType, dict.keyMetaData));
+
+- H << sp << nl << "typedef Freeze::Map< " << typeToString(keyType, dict.keyMetaData)
++ H << sp << nl << "typedef Freeze::Map< " << typeToString(keyType, dict.keyMetaData)
+ << ", " << typeToString(valueType, dict.valueMetaData) << ", "
+ << name << "KeyCodec, " << name << "ValueCodec, " << compare
+ << " > " << name << ";";
+@@ -1025,7 +1026,7 @@ writeDict(const string& n, const UnitPtr& u, const Dict& dict, Output& H, Output
+ os << "bad index for dictionary `" << dict.name << "'";
+ throw os.str();
+ }
+-
++
+ bool containsSequence = false;
+ if(!Dictionary::legalKeyType(valueType, containsSequence))
+ {
+@@ -1043,9 +1044,9 @@ writeDict(const string& n, const UnitPtr& u, const Dict& dict, Output& H, Output
+ //
+ // Let's check value is a string
+ //
+-
++
+ BuiltinPtr builtInType = BuiltinPtr::dynamicCast(valueType);
+-
++
+ if(builtInType == 0 || builtInType->kind() != Builtin::KindString)
+ {
+ ostringstream os;
+@@ -1062,7 +1063,7 @@ writeDict(const string& n, const UnitPtr& u, const Dict& dict, Output& H, Output
+ {
+ DataMemberPtr dataMember = 0;
+ DataMemberList dataMembers;
+-
++
+ ClassDeclPtr classDecl = ClassDeclPtr::dynamicCast(valueType);
+ if(classDecl != 0)
+ {
+@@ -1091,15 +1092,15 @@ writeDict(const string& n, const UnitPtr& u, const Dict& dict, Output& H, Output
+ ++d;
+ }
+ }
+-
++
+ if(dataMember == 0)
+ {
+ ostringstream os;
+- os << "The value of `" << dict.name
++ os << "The value of `" << dict.name
+ << "' has no data member named `" << index.member << "'";
+ throw os.str();
+ }
+-
++
+ TypePtr dataMemberType = dataMember->type();
+
+ bool containsSequence = false;
+@@ -1133,7 +1134,7 @@ writeDict(const string& n, const UnitPtr& u, const Dict& dict, Output& H, Output
+ indexTypes.push_back(iType);
+ }
+ }
+- writeDictWithIndicesH(name, dict, indexTypes, keyType, dict.keyMetaData, valueType, dict.valueMetaData, H,
++ writeDictWithIndicesH(name, dict, indexTypes, keyType, dict.keyMetaData, valueType, dict.valueMetaData, H,
+ dllExport);
+ }
+
+@@ -1146,7 +1147,7 @@ writeDict(const string& n, const UnitPtr& u, const Dict& dict, Output& H, Output
+
+ writeCodecC(keyType, dict.keyMetaData, absolute + "KeyCodec", "Key", false, C);
+ writeCodecC(valueType, dict.valueMetaData, absolute + "ValueCodec", "Value", true, C);
+-
++
+ if(indexTypes.size() > 0)
+ {
+ writeDictWithIndicesC(name, absolute, dict, indexTypes, keyType, dict.keyMetaData, valueType,
+@@ -1164,7 +1165,7 @@ writeIndexH(const string& memberTypeString, const string& name, Output& H, const
+ H << sp << nl << "public:";
+ H << sp;
+ H.inc();
+-
++
+ H << nl << name << "(const std::string&, const std::string& = \"\");";
+ H << sp << nl << "std::vector<Ice::Identity>";
+ H << nl << "findFirst(" << memberTypeString << ", Ice::Int) const;";
+@@ -1178,13 +1179,13 @@ writeIndexH(const string& memberTypeString, const string& name, Output& H, const
+ H << sp << nl << "private:";
+ H << sp;
+ H.inc();
+-
++
+ H << nl << "virtual bool";
+ H << nl << "marshalKey(const Ice::ObjectPtr&, Freeze::Key&) const;";
+-
++
+ H << sp << nl << "void";
+ H << nl << "marshalKey(" << memberTypeString << ", Freeze::Key&) const;";
+-
++
+ H << eb << ';';
+ H << sp;
+ H << nl << "typedef IceUtil::Handle<" << name << "> " << name << "Ptr;";
+@@ -1196,7 +1197,7 @@ writeIndexC(const TypePtr& type, const TypePtr& memberType, const string& member
+ {
+ string inputType = inputTypeToString(memberType);
+
+- C << sp << nl << fullName << "::" << name
++ C << sp << nl << fullName << "::" << name
+ << "(const ::std::string& __name, const ::std::string& __facet)";
+ C.inc();
+ C << nl << ": Freeze::Index(__name, __facet)";
+@@ -1229,7 +1230,7 @@ writeIndexC(const TypePtr& type, const TypePtr& memberType, const string& member
+ C << eb;
+
+ string typeString = typeToString(type);
+-
++
+ C << sp << nl << "bool";
+ C << nl << fullName << "::" << "marshalKey(const Ice::ObjectPtr& __servant, Freeze::Key& __bytes) const";
+ C << sb;
+@@ -1244,13 +1245,13 @@ writeIndexC(const TypePtr& type, const TypePtr& memberType, const string& member
+ C << nl << "return false;";
+ C << eb;
+ C << eb;
+-
++
+ C << sp << nl << "void";
+ C << nl << fullName << "::" << "marshalKey(" << inputType << " __index, Freeze::Key& __bytes) const";
+ C << sb;
+ C << nl << "IceInternal::InstancePtr __instance = IceInternal::getInstance(_communicator);";
+ C << nl << "IceInternal::BasicStream __stream(__instance.get());";
+-
++
+ string valueS;
+ if(caseSensitive)
+ {
+@@ -1286,12 +1287,12 @@ writeIndex(const string& n, const UnitPtr& u, const Index& index, Output& H, Out
+ {
+ string s = name.substr(0, pos);
+ name.erase(0, pos + 2);
+-
++
+ checkIdentifier(absolute, s);
+-
++
+ scope.push_back(s);
+ }
+-
++
+ checkIdentifier(absolute, name);
+
+ TypeList types = u->lookupType(index.type, false);
+@@ -1302,7 +1303,7 @@ writeIndex(const string& n, const UnitPtr& u, const Index& index, Output& H, Out
+ throw os.str();
+ }
+ TypePtr type = types.front();
+-
++
+ ClassDeclPtr classDecl = ClassDeclPtr::dynamicCast(type);
+ if(classDecl == 0)
+ {
+@@ -1332,7 +1333,7 @@ writeIndex(const string& n, const UnitPtr& u, const Index& index, Output& H, Out
+ os << "`" << index.type << "' has no data member named `" << index.member << "'";
+ throw os.str();
+ }
+-
++
+ if(index.caseSensitive == false)
+ {
+ //
+@@ -1346,9 +1347,9 @@ writeIndex(const string& n, const UnitPtr& u, const Index& index, Output& H, Out
+ throw os.str();
+ }
+ }
+-
++
+ vector<string>::const_iterator q;
+-
++
+ for(q = scope.begin(); q != scope.end(); ++q)
+ {
+ H << sp;
+@@ -1356,7 +1357,7 @@ writeIndex(const string& n, const UnitPtr& u, const Index& index, Output& H, Out
+ }
+
+ writeIndexH(inputTypeToString(dataMember->type()), name, H, dllExport);
+-
++
+ for(q = scope.begin(); q != scope.end(); ++q)
+ {
+ H << sp;
+@@ -1491,7 +1492,7 @@ gen(const string& name, const UnitPtr& u, const vector<string>& includePaths, co
+ for(vector<Dict>::const_iterator p = dicts.begin(); p != dicts.end(); ++p)
+ {
+ writeDict(name, u, *p, H, CPP, dllExport);
+- }
++ }
+
+ for(vector<Index>::const_iterator q = indices.begin(); q != indices.end(); ++q)
+ {
+@@ -1528,7 +1529,7 @@ compile(int argc, char* argv[])
+ opts.addOpt("d", "debug");
+ opts.addOpt("", "ice");
+ opts.addOpt("", "underscore");
+-
++
+ vector<string> args;
+ try
+ {
+@@ -1596,7 +1597,7 @@ compile(int argc, char* argv[])
+ for(i = optargs.begin(); i != optargs.end(); ++i)
+ {
+ string s = IceUtilInternal::removeWhitespace(*i);
+-
++
+ Dict dict;
+
+ string::size_type pos;
+@@ -1722,13 +1723,13 @@ compile(int argc, char* argv[])
+
+ dicts.push_back(dict);
+ }
+-
++
+ vector<Index> indices;
+ optargs = opts.argVec("index");
+ for(i = optargs.begin(); i != optargs.end(); ++i)
+ {
+ string s = IceUtilInternal::removeWhitespace(*i);
+-
++
+ Index index;
+
+ string::size_type pos;
+@@ -1778,7 +1779,7 @@ compile(int argc, char* argv[])
+ usage(argv[0]);
+ return EXIT_FAILURE;
+ }
+-
++
+ if(caseString != "case-sensitive" && caseString != "case-insensitive")
+ {
+ getErrorStream() << argv[0] << ": error: " << *i << ": the case can be `case-sensitive' or "
+@@ -1795,7 +1796,7 @@ compile(int argc, char* argv[])
+ for(i = optargs.begin(); i != optargs.end(); ++i)
+ {
+ string s = IceUtilInternal::removeWhitespace(*i);
+-
++
+ string dictName;
+ DictIndex index;
+ index.sort = false;
+@@ -1852,7 +1853,7 @@ compile(int argc, char* argv[])
+ {
+ string subs = s.substr(0, pos);
+ s.erase(0, pos + 1);
+-
++
+ if(subs == "sort")
+ {
+ index.sort = true;
+@@ -1887,7 +1888,7 @@ compile(int argc, char* argv[])
+ }
+ }
+ }
+-
++
+ if(dictName.empty())
+ {
+ getErrorStream() << argv[0] << ": error: " << *i << ": no dictionary specified" << endl;
+@@ -1902,7 +1903,7 @@ compile(int argc, char* argv[])
+ {
+ if(find(p->indices.begin(), p->indices.end(), index) != p->indices.end())
+ {
+- getErrorStream() << argv[0] << ": error: --dict-index " << *i
++ getErrorStream() << argv[0] << ": error: --dict-index " << *i
+ << ": this dict-index is defined twice" << endl;
+ return EXIT_FAILURE;
+ }
+@@ -1991,7 +1992,7 @@ compile(int argc, char* argv[])
+ if(!icecpp->close())
+ {
+ u->destroy();
+- return EXIT_FAILURE;
++ return EXIT_FAILURE;
+ }
+
+ {
+@@ -2038,7 +2039,7 @@ compile(int argc, char* argv[])
+ return EXIT_FAILURE;
+ }
+ }
+-
++
+ u->destroy();
+
+ {
+diff --git a/cpp/test/Ice/binding/AllTests.cpp b/cpp/test/Ice/binding/AllTests.cpp
+index cbb8fa2..eac3fa9 100644
+--- a/cpp/test/Ice/binding/AllTests.cpp
++++ b/cpp/test/Ice/binding/AllTests.cpp
+@@ -13,6 +13,7 @@
+ #include <Test.h>
+ #include <set>
+
++#include <cstddef>
+ #include <functional>
+
+ using namespace std;
+@@ -112,13 +113,13 @@ allTests(const Ice::CommunicatorPtr& communicator)
+
+ test1->ice_ping();
+ test2->ice_ping();
+-
++
+ com->deactivateObjectAdapter(adapter);
+-
++
+ TestIntfPrx test3 = TestIntfPrx::uncheckedCast(test1);
+ test(test3->ice_getConnection() == test1->ice_getConnection());
+ test(test3->ice_getConnection() == test2->ice_getConnection());
+-
++
+ try
+ {
+ test3->ice_ping();
+@@ -157,7 +158,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+
+ test(test1->ice_getConnection() == test2->ice_getConnection());
+ test(test2->ice_getConnection() == test3->ice_getConnection());
+-
++
+ names.erase(test1->getAdapterName());
+ test1->ice_getConnection()->close(false);
+ }
+@@ -171,7 +172,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ {
+ (*p)->getTestIntf()->ice_ping();
+ }
+-
++
+ TestIntfPrx test = createTestIntfPrx(adapters);
+ string name = test->getAdapterName();
+ const int nRetry = 10;
+@@ -183,7 +184,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ {
+ (*q)->getTestIntf()->ice_getConnection()->close(false);
+ }
+- }
++ }
+
+ //
+ // Deactivate an adapter and ensure that we can still
+@@ -201,21 +202,21 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ TestIntfPrx test2 = createTestIntfPrx(adpts);
+ random_shuffle(adpts.begin(), adpts.end(), rng);
+ TestIntfPrx test3 = createTestIntfPrx(adpts);
+-
++
+ test(test1->ice_getConnection() == test2->ice_getConnection());
+ test(test2->ice_getConnection() == test3->ice_getConnection());
+
+ names.erase(test1->getAdapterName());
+ test1->ice_getConnection()->close(false);
+ }
+-
++
+ //
+ // Deactivate an adapter and ensure that we can still
+ // establish the connection to the remaining adapter.
+ //
+- com->deactivateObjectAdapter(adapters[2]);
++ com->deactivateObjectAdapter(adapters[2]);
+ TestIntfPrx test = createTestIntfPrx(adapters);
+- test(test->getAdapterName() == "Adapter12");
++ test(test->getAdapterName() == "Adapter12");
+
+ deactivate(com, adapters);
+ }
+@@ -270,7 +271,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ }
+ proxies[i] = createTestIntfPrx(adpts);
+ }
+-
++
+ for(i = 0; i < proxies.size(); i++)
+ {
+ proxies[i]->begin_getAdapterName();
+@@ -337,7 +338,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+
+ test(test1->ice_getConnection() == test2->ice_getConnection());
+ test(test2->ice_getConnection() == test3->ice_getConnection());
+-
++
+ names.erase(getAdapterNameWithAMI(test1));
+ test1->ice_getConnection()->close(false);
+ }
+@@ -351,7 +352,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ {
+ (*p)->getTestIntf()->ice_ping();
+ }
+-
++
+ TestIntfPrx test = createTestIntfPrx(adapters);
+ string name = getAdapterNameWithAMI(test);
+ const int nRetry = 10;
+@@ -363,7 +364,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ {
+ (*q)->getTestIntf()->ice_getConnection()->close(false);
+ }
+- }
++ }
+
+ //
+ // Deactivate an adapter and ensure that we can still
+@@ -381,21 +382,21 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ TestIntfPrx test2 = createTestIntfPrx(adpts);
+ random_shuffle(adpts.begin(), adpts.end(), rng);
+ TestIntfPrx test3 = createTestIntfPrx(adpts);
+-
++
+ test(test1->ice_getConnection() == test2->ice_getConnection());
+ test(test2->ice_getConnection() == test3->ice_getConnection());
+
+ names.erase(test1->getAdapterName());
+ test1->ice_getConnection()->close(false);
+ }
+-
++
+ //
+ // Deactivate an adapter and ensure that we can still
+ // establish the connection to the remaining adapter.
+ //
+- com->deactivateObjectAdapter(adapters[2]);
++ com->deactivateObjectAdapter(adapters[2]);
+ TestIntfPrx test = createTestIntfPrx(adapters);
+- test(test->getAdapterName() == "AdapterAMI12");
++ test(test->getAdapterName() == "AdapterAMI12");
+
+ deactivate(com, adapters);
+ }
+@@ -463,7 +464,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ for(i = 0; i < nRetry && test->getAdapterName() == "Adapter33"; i++);
+ test(i == nRetry);
+ com->deactivateObjectAdapter(adapters[2]);
+-
++
+ try
+ {
+ test->getAdapterName();
+@@ -479,7 +480,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ //
+ // Now, re-activate the adapters with the same endpoints in the opposite
+ // order.
+- //
++ //
+ adapters.push_back(com->createObjectAdapter("Adapter36", endpoints[2]->toString()));
+ for(i = 0; i < nRetry && test->getAdapterName() == "Adapter36"; i++);
+ test(i == nRetry);
+@@ -507,9 +508,9 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ test(test1->ice_getConnection() == test2->ice_getConnection());
+
+ test1->ice_ping();
+-
++
+ com->deactivateObjectAdapter(adapter);
+-
++
+ TestIntfPrx test3 = TestIntfPrx::uncheckedCast(test1);
+ try
+ {
+@@ -553,7 +554,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ com->deactivateObjectAdapter(adapters[2]);
+
+ test(test->getAdapterName() == "Adapter52");
+-
++
+ deactivate(com, adapters);
+ }
+ cout << "ok" << endl;
+@@ -589,7 +590,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ com->deactivateObjectAdapter(adapters[2]);
+
+ test(test->getAdapterName() == "AdapterAMI52");
+-
++
+ deactivate(com, adapters);
+ }
+ cout << "ok" << endl;
+@@ -622,7 +623,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ for(i = 0; i < nRetry && test->getAdapterName() == "Adapter63"; i++);
+ test(i == nRetry);
+ com->deactivateObjectAdapter(adapters[2]);
+-
++
+ try
+ {
+ test->getAdapterName();
+@@ -638,7 +639,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ //
+ // Now, re-activate the adapters with the same endpoints in the opposite
+ // order.
+- //
++ //
+ adapters.push_back(com->createObjectAdapter("Adapter66", endpoints[2]->toString()));
+ for(i = 0; i < nRetry && test->getAdapterName() == "Adapter66"; i++);
+ test(i == nRetry);
+@@ -681,7 +682,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ for(i = 0; i < nRetry && getAdapterNameWithAMI(test) == "AdapterAMI63"; i++);
+ test(i == nRetry);
+ com->deactivateObjectAdapter(adapters[2]);
+-
++
+ try
+ {
+ test->getAdapterName();
+@@ -697,7 +698,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ //
+ // Now, re-activate the adapters with the same endpoints in the opposite
+ // order.
+- //
++ //
+ adapters.push_back(com->createObjectAdapter("AdapterAMI66", endpoints[2]->toString()));
+ for(i = 0; i < nRetry && getAdapterNameWithAMI(test) == "AdapterAMI66"; i++);
+ test(i == nRetry);
+@@ -720,7 +721,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+
+ TestIntfPrx test = createTestIntfPrx(adapters);
+ test(test->getAdapterName() == "Adapter71");
+-
++
+ TestIntfPrx testUDP = TestIntfPrx::uncheckedCast(test->ice_datagram());
+ test(test->ice_getConnection() != testUDP->ice_getConnection());
+ try
+@@ -740,7 +741,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ vector<RemoteObjectAdapterPrx> adapters;
+ adapters.push_back(com->createObjectAdapter("Adapter81", "ssl"));
+ adapters.push_back(com->createObjectAdapter("Adapter82", "tcp"));
+-
++
+ TestIntfPrx test = createTestIntfPrx(adapters);
+ int i;
+ for(i = 0; i < 5; i++)
+@@ -748,7 +749,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ test(test->getAdapterName() == "Adapter82");
+ test->ice_getConnection()->close(false);
+ }
+-
++
+ TestIntfPrx testSecure = TestIntfPrx::uncheckedCast(test->ice_secure(true));
+ test(testSecure->ice_isSecure());
+ testSecure = TestIntfPrx::uncheckedCast(test->ice_secure(false));
+@@ -758,7 +759,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
+ test(test->ice_getConnection() != testSecure->ice_getConnection());
+
+ com->deactivateObjectAdapter(adapters[1]);
+-
++
+ for(i = 0; i < 5; i++)
+ {
+ test(test->getAdapterName() == "Adapter81");
diff --git a/ice-3.4.1-jgoodies.patch b/ice-3.4.1-jgoodies.patch
new file mode 100644
index 0000000..3e81cdf
--- /dev/null
+++ b/ice-3.4.1-jgoodies.patch
@@ -0,0 +1,12 @@
+diff --git a/java/src/IceGridGUI/ApplicationPane.java b/java/src/IceGridGUI/ApplicationPane.java
+index 10bd1c3..cfff61c 100644
+--- a/java/src/IceGridGUI/ApplicationPane.java
++++ b/java/src/IceGridGUI/ApplicationPane.java
+@@ -29,7 +29,6 @@ import javax.swing.tree.TreeSelectionModel;
+
+ import com.jgoodies.looks.Options;
+ import com.jgoodies.looks.plastic.PlasticLookAndFeel;
+-import com.jgoodies.looks.windows.WindowsLookAndFeel;
+ import com.jgoodies.forms.factories.Borders;
+
+ import IceGrid.*;
diff --git a/ice.ini b/ice.ini
new file mode 100644
index 0000000..f9c9870
--- /dev/null
+++ b/ice.ini
@@ -0,0 +1 @@
+extension=IcePHP.so
diff --git a/ice.pth b/ice.pth
new file mode 100644
index 0000000..4c67afd
--- /dev/null
+++ b/ice.pth
@@ -0,0 +1,4 @@
+# This file belongs in the "site-packages" directory of a Python
+# installation. It causes the interpreter to add the subdirectory
+# listed below to the default module search path.
+Ice
diff --git a/ice.spec b/ice.spec
index 8a42465..7a7745b 100644
--- a/ice.spec
+++ b/ice.spec
@@ -6,40 +6,37 @@
%global php_apiver %((echo 0; php -i 2>/dev/null | sed -n 's/^PHP API => //p') | tail -1)
Name: ice
-Version: 3.4.0
-Release: 4%{?dist}
+Version: 3.4.1
+Release: 1%{?dist}
Summary: The Ice base runtime and services
Group: System Environment/Libraries
License: GPLv2 with exceptions
URL: http://www.zeroc.com/
Source0: http://zeroc.com/download/Ice/3.4/Ice-%{version}.tar.gz
-# Extracted from http://zeroc.com/download/Ice/3.4/ice-3.4.0-1.src.rpm
-Source1: Ice-rpmbuild-%{version}.tar.gz
# Man pages courtesy of Francisco Moya's Debian packages
-Source2: Ice-3.3.0-man-pages.tbz
-Source8: icegridgui
-Source9: IceGridAdmin.desktop
-Source10: Ice-README.Fedora
-# Don't build the demo or test directories
-Patch0: Ice-3.3-dont-build-demo-test.patch
-# Don't put manifest in jar; don't build demo or test; use system jgoodies
-Patch1: Ice-3.4.0-java-build.patch
+Source1: ice-3.4.1-man-pages.tar.gz
+Source2: icegridgui
+Source3: IceGridAdmin.desktop
+Source4: Ice-README.Fedora
+Source5: glacier2router.conf
+Source6: glacier2router.init
+Source7: icegridnode.conf
+Source8: icegridnode.init
+Source9: icegridregistry.conf
+Source10: icegridregistry.init
+Source11: ice.ini
+Source12: ice.pth
# Remove reference to Windows L&F
-Patch2: Ice-3.3.1-jgoodies.patch
-# Work with all versions of openssl
-Patch3: Ice-3.3.1-openssl.patch
-
-# Change user in server scripts from "ice" to "iceuser" to match the config
-# Fixed bug 557411
-Patch4: Ice-rpmbuild-change-user.patch
-
-# Fix slice2cpp stream issue
-# http://www.zeroc.com/forums/attachments/patches/745d1268183564-patch-1-ice-3-4-0-slice2cpp-stream-issue-patch-stream.txt
-Patch5: patch-stream.txt
-
+Patch0: ice-3.4.1-jgoodies.patch
+# fix gcc46 issue
+Patch1: ice-3.4.1-gcc46.patch
# Add support for the s390/s390x architecture
-Patch6: Ice-3.4.0-s390.patch
+Patch2: Ice-3.4.0-s390.patch
+# don't build demo/test
+# TODO: should we keep it or not ?
+# significantly reduce compile time but shipping demos could be useful
+Patch3: Ice-3.3-dont-build-demo-test.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -58,9 +55,7 @@ BuildRequires: python-devel
BuildRequires: mono-core, mono-devel
BuildRequires: libmcpp-devel >= 2.7.2
BuildRequires: dos2unix
-
BuildRequires: java-1.6.0-openjdk-devel
-
BuildRequires: jgoodies-forms, jgoodies-looks
BuildRequires: /usr/bin/convert
BuildRequires: desktop-file-utils
@@ -191,16 +186,12 @@ Requires: ice-php = %{version}-%{release}
Tools for developing Ice applications in PHP.
%prep
-%setup -n Ice-%{version} -q
+%setup -q -n Ice-%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
-%patch5 -p1
-%patch6 -p1
-%setup -q -n Ice-rpmbuild-%{version} -T -b 1
-%patch4 -p1
-%setup -q -n Ice-3.3.0-man-pages -T -b 2
+%setup -q -n ice-3.4.1-man-pages -T -b 1
rm -f slice2docbook.1
%build
@@ -249,32 +240,36 @@ mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/icons/hicolor/48x48/apps/
cp -p ${RPM_BUILD_DIR}/Ice-%{version}/java/resources/icons/icegrid.png \
${RPM_BUILD_ROOT}%{_datadir}/icons/hicolor/48x48/apps/
mkdir -p ${RPM_BUILD_ROOT}%{_bindir}
-cp -p %{SOURCE8} ${RPM_BUILD_ROOT}%{_bindir}
+cp -p %{SOURCE2} ${RPM_BUILD_ROOT}%{_bindir}
sed -i -e "s#DIR#%{_datadir}/Ice-%{version}#" $RPM_BUILD_ROOT%{_bindir}/icegridgui
+
%if 0%{?rhel}
desktop-file-install \
--dir=${RPM_BUILD_ROOT}%{_datadir}/applications \
--vendor = zeroc \
- %{SOURCE9}
+ %{SOURCE3}
%else
desktop-file-install \
--dir=${RPM_BUILD_ROOT}%{_datadir}/applications \
- %{SOURCE9}
+ %{SOURCE3}
%endif
# Move other rpm-specific files into the right place (README, service stuff)
mkdir -p $RPM_BUILD_ROOT%{_defaultdocdir}/Ice-%{version}
-cp -p %{SOURCE10} $RPM_BUILD_ROOT/%{_defaultdocdir}/Ice-%{version}/README.Fedora
-cp -p $RPM_BUILD_DIR/Ice-rpmbuild-%{version}/ice.ini $RPM_BUILD_ROOT/ice.ini
+cp -p %{SOURCE4} $RPM_BUILD_ROOT/%{_defaultdocdir}/Ice-%{version}/README.Fedora
# Install the servers
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}
-cp -p $RPM_BUILD_DIR/Ice-rpmbuild-%{version}/*.conf $RPM_BUILD_ROOT%{_sysconfdir}
-mkdir -p $RPM_BUILD_ROOT%{_initrddir}
-for i in icegridregistry icegridnode glacier2router
-do
- cp -p $RPM_BUILD_DIR/Ice-rpmbuild-%{version}/$i.%{_vendor} $RPM_BUILD_ROOT%{_initrddir}/$i
-done
+mkdir -p $RPM_BUILD_ROOT%{_initddir}
+## glacier2router
+cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/
+cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_initddir}/glacier2router
+## icegridnode
+cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/
+cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_initddir}/icegridnode
+## icegridregistry
+cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/
+cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_initddir}/icegridregistry
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/icegrid
# "make install" assumes it's going into a directory under /opt.
@@ -294,7 +289,7 @@ mv $RPM_BUILD_ROOT/help/IceGridAdmin $RPM_BUILD_ROOT%{_defaultdocdir}/Ice-%{vers
# Copy the man pages into the correct directory
mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1
-cp -p $RPM_BUILD_DIR/Ice-3.3.0-man-pages/*.1 $RPM_BUILD_ROOT%{_mandir}/man1
+cp -p $RPM_BUILD_DIR/ice-3.4.1-man-pages/*.1 $RPM_BUILD_ROOT%{_mandir}/man1
# Fix the encoding and line-endings of all the IceGridAdmin documentation files
cd $RPM_BUILD_ROOT%{_defaultdocdir}/Ice-%{version}/IceGridAdmin
@@ -320,7 +315,7 @@ done
# Put the PHP stuff into the right place
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/php.d
-mv $RPM_BUILD_ROOT/ice.ini $RPM_BUILD_ROOT%{_sysconfdir}/php.d
+mv %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/php.d
mkdir -p ${RPM_BUILD_ROOT}%{php_extdir}
mv ${RPM_BUILD_ROOT}/php/IcePHP.so ${RPM_BUILD_ROOT}%{php_extdir}
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/php
@@ -336,7 +331,7 @@ mkdir -p ${RPM_BUILD_ROOT}%{ruby_sitearch}
mv $RPM_BUILD_ROOT/ruby/* ${RPM_BUILD_ROOT}%{ruby_sitearch}
mkdir -p ${RPM_BUILD_ROOT}%{python_sitearch}/Ice
mv ${RPM_BUILD_ROOT}/python/* ${RPM_BUILD_ROOT}%{python_sitearch}/Ice
-cp -p $RPM_BUILD_DIR/Ice-rpmbuild-%{version}/ice.pth $RPM_BUILD_ROOT%{python_sitearch}
+cp -p %{SOURCE12} $RPM_BUILD_ROOT%{python_sitearch}
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/Ice-%{version}
mv $RPM_BUILD_ROOT/config/* ${RPM_BUILD_ROOT}%{_datadir}/Ice-%{version}
@@ -404,9 +399,9 @@ rm -rf $RPM_BUILD_ROOT
%files servers
%defattr(-,root,root,-)
-%{_initrddir}/icegridregistry
-%{_initrddir}/icegridnode
-%{_initrddir}/glacier2router
+%{_initddir}/icegridregistry
+%{_initddir}/icegridnode
+%{_initddir}/glacier2router
%config(noreplace) %{_sysconfdir}/icegridregistry.conf
%config(noreplace) %{_sysconfdir}/icegridnode.conf
%config(noreplace) %{_sysconfdir}/glacier2router.conf
@@ -491,14 +486,13 @@ fi
%{_libdir}/mono/IceGrid/
%{_libdir}/mono/IcePatch2/
%{_libdir}/mono/IceStorm/
-
%{_libdir}/mono/gac/Glacier2
%{_libdir}/mono/gac/Ice
%{_libdir}/mono/gac/IceBox
%{_libdir}/mono/gac/IceGrid
%{_libdir}/mono/gac/IcePatch2
%{_libdir}/mono/gac/IceStorm
-
+%{_libdir}/mono/gac/policy*
%{_bindir}/iceboxnet.exe
%doc %{_mandir}/man1/iceboxnet.exe.1.gz
@@ -543,6 +537,12 @@ fi
%{_bindir}/slice2php
%changelog
+* Sat Feb 12 2011 Haïkel Guémar <hguemar at fedoraproject.org> - 3.4.1-1
+- upstream 3.4.1
+- fix gcc46 build issue
+- some spec cleaning and patches revamping (dropped: java, openssl)
+- updated man pages from Francisco Moya Debian's package
+
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.4.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
diff --git a/icegridnode.conf b/icegridnode.conf
new file mode 100644
index 0000000..4d2efd3
--- /dev/null
+++ b/icegridnode.conf
@@ -0,0 +1,48 @@
+#
+# Sample configuration file for the IceGrid node daemon
+#
+
+#
+# Proxy to the IceGrid registry
+#
+Ice.Default.Locator=DemoIceGrid/Locator:tcp -h localhost -p 4061
+#Ice.Default.Locator=DemoIceGrid/Locator:ssl -h localhost -p 4062
+
+#
+# The name of this node; must be unique within an IceGrid deployment
+#
+IceGrid.Node.Name=node1
+
+#
+# The node object adapter listens on the loopback interface using an
+# OS-assigned port
+#
+# These endpoints must be accessible to IceGrid registries.
+#
+# To listen on an additional interface add an additional endpoint with
+# -h <name | IP address> or remove -h localhost to listen on all
+# interfaces. Note that access to these endpoints can pose a security
+# risk (remote code execution) and therefore these endpoints should be
+# secured. See the Ice manual for more information.
+#
+IceGrid.Node.Endpoints=tcp -h localhost
+
+#
+# The directory where the IceGrid node maintains its data
+# (server configuration files etc.)
+# This directory must exist when icegridnode starts
+#
+IceGrid.Node.Data=/var/lib/ice/icegrid/node1
+
+#
+# Redirect the servers'stdout and stderr to files in this directory:
+#
+IceGrid.Node.Output=/var/lib/ice/icegrid/node1
+#IceGrid.Node.RedirectErrToOut=1
+
+#
+# Logging to syslog
+#
+Ice.UseSyslog=1
+Ice.ProgramName=icegridnode (DemoIceGrid node1)
+IceGrid.Node.Trace.Replica=2
diff --git a/icegridnode.init b/icegridnode.init
new file mode 100755
index 0000000..f400d11
--- /dev/null
+++ b/icegridnode.init
@@ -0,0 +1,111 @@
+#!/bin/bash
+#
+# Copyright (c) 2007-2010 ZeroC, Inc. All rights reserved.
+#
+# icegridnode This shell script takes care of starting and
+# stopping the icegridnode daemon.
+#
+# chkconfig: - 61 75
+# description: The IceGrid node daemon. \
+# IceGrid is the server deployment and monitoring for the Internet \
+# Communications Engine (Ice). An IceGrid domain consists of one master \
+# registry, zero or more slave registries, and zero or more IceGrid nodes.
+
+#
+# Source function library.
+#
+. /etc/init.d/functions
+
+#
+# The IceGrid node user; root is allowed, but not necessary, therefore
+# it is recommended to use a non-root account.
+#
+user=iceuser
+
+#
+# Ask for a password at startup?
+#
+prompt=no
+
+#
+# The IceGrid node configuration file
+#
+nodeconf="/etc/icegridnode.conf"
+
+prog="/usr/bin/icegridnode"
+
+progbase=${prog##*/}
+pidfile=/var/run/$progbase.pid
+
+options="--daemon --pidfile $pidfile --Ice.Config=$nodeconf"
+
+RETVAL=0
+
+start() {
+ if [ "${prompt:-}" = "yes" ]
+ then
+ echo $"Starting $progbase: "
+ INITLOG_ARGS= # clears -q
+ else
+ echo -n $"Starting $progbase: "
+ fi
+
+ daemonoptions="--pidfile $pidfile"
+ if [ "$user" != "root" ]
+ then
+ daemonoptions="$daemonoptions --user $user"
+
+ if [ ! -e $pidfile ]
+ then
+ touch $pidfile
+ fi
+ chown $user $pidfile
+ fi
+
+ daemon $daemonoptions $prog $options
+ RETVAL=$?
+ echo
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$progbase
+ return $RETVAL
+}
+
+stop() {
+ echo -n $"Shutting down $progbase: "
+ killproc -p $pidfile $prog
+ RETVAL=$?
+ echo
+ [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$progbase
+ return $RETVAL
+}
+
+
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ status $progbase
+ RETVAL=$?
+ ;;
+ restart|reload)
+ stop
+ start
+ RETVAL=$?
+ ;;
+ condrestart)
+ if [ -f /var/lock/subsys/$progbase ]; then
+ stop
+ start
+ RETVAL=$?
+ fi
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|restart|condrestart|status}"
+ exit 1
+esac
+
+exit $RETVAL
diff --git a/icegridregistry.conf b/icegridregistry.conf
new file mode 100644
index 0000000..e64303a
--- /dev/null
+++ b/icegridregistry.conf
@@ -0,0 +1,70 @@
+#
+# Sample configuration file for the IceGrid registry daemon
+#
+
+#
+# The IceGrid instance name; must be unique, to distinguish several
+# IceGrid deployments
+#
+IceGrid.InstanceName=DemoIceGrid
+
+#
+# Client object adapter: listens on the loopback interface
+# IANA-registered TCP ports for the IceGrid registry:
+# - 4061 (insecure)
+# - 4062 (secure, using SSL)
+#
+# These endpoints must be accessible to Ice clients and servers as
+# well as the IceGrid administrative utilities.
+#
+# To listen on an additional interface add an additional endpoint with
+# -h <name | IP address> or remove -h localhost to listen on all
+# interfaces.
+#
+IceGrid.Registry.Client.Endpoints=tcp -p 4061 -h localhost
+#IceGrid.Registry.Client.Endpoints=ssl -p 4062 -h localhost
+#IceGrid.Registry.Client.Endpoints=tcp -p 4061 -h localhost:ssl -p 4062 -h localhost
+
+#
+# Server and Internal object adapters: listens on the loopback
+# interface using an OS-assigned port number.
+#
+# The Server endpoints must be accessible to Ice servers deployed on
+# IceGrid nodes or to Ice servers using IceGrid dynamic
+# registration. The Internal endpoints must be accessible to IceGrid
+# nodes.
+#
+# To listen on an additional interface add an additional endpoint with
+# -h <name | IP address> or remove -h localhost to listen on all
+# interfaces. Note that access to these endpoints can pose a security
+# risk (remote code execution) and therefore these endpoints should be
+# secured. See the Ice manual for more information.
+#
+IceGrid.Registry.Server.Endpoints=tcp -h localhost
+IceGrid.Registry.Internal.Endpoints=tcp -h localhost
+
+#
+# The registry DB home; must exist when icegridregistry starts
+#
+IceGrid.Registry.Data=/var/lib/ice/icegrid/registry
+
+#
+# Authentication/authorization
+# With NullPermissionsVerifier, any password is accepted (not recommended
+# for production)
+#
+IceGrid.Registry.PermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
+IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
+
+#
+# Default templates
+#
+IceGrid.Registry.DefaultTemplates=/usr/share/Ice-3.4.1/templates.xml
+
+#
+# Logging to syslog
+#
+Ice.UseSyslog=1
+Ice.ProgramName=icegridregistry (DemoIceGrid Master)
+IceGrid.Registry.Trace.Node=1
+IceGrid.Registry.Trace.Replica=1
diff --git a/icegridregistry.init b/icegridregistry.init
new file mode 100755
index 0000000..1e9eae9
--- /dev/null
+++ b/icegridregistry.init
@@ -0,0 +1,111 @@
+#!/bin/bash
+#
+# Copyright (c) 2007-2010 ZeroC, Inc. All rights reserved.
+#
+# icegridregistry This shell script takes care of starting and
+# stopping the icegridregistry daemon.
+#
+# chkconfig: - 60 76
+# description: The IceGrid registry daemon. \
+# IceGrid is the server deployment and monitoring for the Internet \
+# Communications Engine (Ice). An IceGrid domain consists of one master \
+# registry, zero or more slave registries, and zero or more IceGrid nodes.
+
+#
+# Source function library.
+#
+. /etc/init.d/functions
+
+#
+# The IceGrid registry user; root is allowed, but not necessary, therefore
+# it is recommended to use a non-root account.
+#
+user=iceuser
+
+#
+# Ask for a password at startup?
+#
+prompt=no
+
+#
+# The IceGrid registry configuration file
+#
+registryconf="/etc/icegridregistry.conf"
+
+prog="/usr/bin/icegridregistry"
+
+progbase=${prog##*/}
+pidfile=/var/run/$progbase.pid
+
+options="--daemon --pidfile $pidfile --Ice.Config=$registryconf"
+
+RETVAL=0
+
+start() {
+ if [ "${prompt:-}" = "yes" ]
+ then
+ echo $"Starting $progbase: "
+ INITLOG_ARGS= # clears -q
+ else
+ echo -n $"Starting $progbase: "
+ fi
+
+ daemonoptions="--pidfile $pidfile"
+ if [ "$user" != "root" ]
+ then
+ daemonoptions="$daemonoptions --user $user"
+
+ if [ ! -e $pidfile ]
+ then
+ touch $pidfile
+ fi
+ chown $user $pidfile
+ fi
+
+ daemon $daemonoptions $prog $options
+ RETVAL=$?
+ echo
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$progbase
+ return $RETVAL
+}
+
+stop() {
+ echo -n $"Shutting down $progbase: "
+ killproc -p $pidfile $prog
+ RETVAL=$?
+ echo
+ [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$progbase
+ return $RETVAL
+}
+
+
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ status $progbase
+ RETVAL=$?
+ ;;
+ restart|reload)
+ stop
+ start
+ RETVAL=$?
+ ;;
+ condrestart)
+ if [ -f /var/lock/subsys/$progbase ]; then
+ stop
+ start
+ RETVAL=$?
+ fi
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|restart|condrestart|status}"
+ exit 1
+esac
+
+exit $RETVAL
diff --git a/sources b/sources
index 43fb8d5..3646e64 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,2 @@
-998b10627ade020cb00f5beb73efc0e0 Ice-3.4.0.tar.gz
-869cc60645e7e2b4115584a5ab17d1e9 Ice-rpmbuild-3.4.0.tar.gz
-c6c17ee1be2e6b615af5b40edae88b75 Ice-3.3.0-man-pages.tbz
+3aae42aa47dec74bb258c1a1b2847a1a Ice-3.4.1.tar.gz
+ca97af2e00687b1b727e068f189b7575 ice-3.4.1-man-pages.tar.gz
More information about the scm-commits
mailing list