mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-23 00:43:28 +00:00
- Fix build with gcc 4.7
- Add support for clang PR: 165702 Submitted by: Michael Gmelin <freebsd@grem.de> (maintainer) Feature safe: yes
This commit is contained in:
parent
5d27ea9d7e
commit
ccecfeab22
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=293741
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= Ice
|
||||
PORTVERSION= 3.4.2
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
CATEGORIES= devel
|
||||
MASTER_SITES= http://download.zeroc.com/Ice/3.4/
|
||||
|
||||
@ -17,6 +17,15 @@ COMMENT= A modern alternative to object middleware such as CORBA/COM/DCOM/COM+
|
||||
LIB_DEPENDS= expat.6:${PORTSDIR}/textproc/expat2 \
|
||||
mcpp.3:${PORTSDIR}/devel/mcpp
|
||||
|
||||
OPTIONS= TESTS "Build and run tests (requires lang/python)" on \
|
||||
DEMOS "Build demos" on
|
||||
|
||||
.include <bsd.port.options.mk>
|
||||
|
||||
.if defined(WITH_TESTS)
|
||||
USE_PYTHON_BUILD= yes
|
||||
.endif
|
||||
|
||||
USE_GMAKE= yes
|
||||
USE_ICONV= yes
|
||||
USE_BDB= 42+
|
||||
@ -45,6 +54,14 @@ BROKEN= fails to link
|
||||
MAKE_ENV= LP64=yes
|
||||
.endif
|
||||
|
||||
.if !defined(WITH_TESTS)
|
||||
MAKE_ENV+= NOTESTS=yes
|
||||
.endif
|
||||
|
||||
.if !defined(WITH_DEMOS)
|
||||
MAKE_ENV+= NODEMOS=yes
|
||||
.endif
|
||||
|
||||
.if defined(NOPORTDOCS)
|
||||
MAKE_ENV+= NOPORTDOCS=yes
|
||||
.endif
|
||||
@ -69,4 +86,12 @@ post-patch:
|
||||
${REINPLACE_CMD} '/LICENSE/s/prefix/install_slicedir/' \
|
||||
${WRKSRC}/config/Make.common.rules
|
||||
|
||||
.if defined(WITH_TESTS)
|
||||
TEST_CMD= @cd ${BUILD_WRKSRC} && ${PYTHON_CMD} ./allTests.py
|
||||
post-build:
|
||||
${TEST_CMD}
|
||||
regression-test test: build
|
||||
${TEST_CMD}
|
||||
.endif
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
|
@ -1,12 +1,26 @@
|
||||
--- cpp/Makefile.bak 2008-05-16 19:24:00.000000000 +0200
|
||||
+++ cpp/Makefile 2008-07-31 13:37:25.000000000 +0200
|
||||
@@ -12,6 +12,9 @@
|
||||
--- cpp.orig/Makefile 2012-03-04 21:38:42.000000000 +0100
|
||||
+++ cpp/Makefile 2012-03-04 21:38:42.000000000 +0100
|
||||
@@ -11,7 +11,22 @@
|
||||
|
||||
include $(top_srcdir)/config/Make.rules
|
||||
|
||||
SUBDIRS = config src include test demo
|
||||
-SUBDIRS = config src include test demo
|
||||
+SUBDIRS = config src include
|
||||
+
|
||||
+ifeq ($(NOTESTS),)
|
||||
+SUBDIRS += test
|
||||
+endif
|
||||
+
|
||||
+ifeq ($(NODEMOS),)
|
||||
+SUBDIRS += demo
|
||||
+endif
|
||||
+
|
||||
+ifeq ($(NOPORTDOCS),)
|
||||
+SUBDIRS += doc
|
||||
+endif
|
||||
+
|
||||
+ INSTALL_SUBDIRS = $(install_bindir) $(install_libdir) $(install_includedir) $(install_configdir)
|
||||
+
|
||||
|
||||
INSTALL_SUBDIRS = $(install_bindir) $(install_libdir) $(install_includedir) $(install_configdir)
|
||||
|
||||
|
30
devel/ice/files/patch-cpp-allTests.py
Normal file
30
devel/ice/files/patch-cpp-allTests.py
Normal file
@ -0,0 +1,30 @@
|
||||
--- cpp.orig/allTests.py 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/allTests.py 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -25,6 +25,7 @@
|
||||
# List of all basic tests.
|
||||
#
|
||||
tests = [
|
||||
+
|
||||
("IceUtil/condvar", ["once", "win32only"]),
|
||||
("IceUtil/thread", ["once"]),
|
||||
("IceUtil/unicode", ["once"]),
|
||||
@@ -62,7 +63,7 @@
|
||||
("Ice/servantLocator", ["core"]),
|
||||
("Ice/interceptor", ["core"]),
|
||||
("Ice/stringConverter", ["core"]),
|
||||
- ("Ice/udp", ["core"]),
|
||||
+ ("Ice/udp", ["core", "nofreebsdjail"]),
|
||||
("Ice/defaultServant", ["core"]),
|
||||
("Ice/defaultValue", ["core"]),
|
||||
("Ice/invoke", ["core", "novc6"]),
|
||||
@@ -106,8 +107,8 @@
|
||||
#
|
||||
if TestUtil.isWin32() or os.getuid() == 0:
|
||||
tests += [
|
||||
- ("IceUtil/priority", ["core", "nodarwin"]),
|
||||
- ("Ice/threadPoolPriority", ["core", "nodarwin"])
|
||||
+ ("IceUtil/priority", ["core", "nodarwin", "nofreebsd"]),
|
||||
+ ("Ice/threadPoolPriority", ["core", "nodarwin", "nofreebsd"])
|
||||
]
|
||||
|
||||
if __name__ == "__main__":
|
15
devel/ice/files/patch-cpp-demo-IceGrid-secure-README
Normal file
15
devel/ice/files/patch-cpp-demo-IceGrid-secure-README
Normal file
@ -0,0 +1,15 @@
|
||||
--- cpp.orig/demo/IceGrid/secure/README 2011-06-15 21:44:00.000000000 +0200
|
||||
+++ cpp/demo/IceGrid/secure/README 2012-03-04 19:55:44.000000000 +0100
|
||||
@@ -31,9 +31,10 @@
|
||||
the filesystem permissions to restrict access to the certificate.
|
||||
|
||||
Once the certificates are generated, you can start the IceGrid
|
||||
-registry, node, and Glacier2 router:
|
||||
+registries, node, and Glacier2 router:
|
||||
|
||||
-$ icegridregistry --Ice.Config=config.registry
|
||||
+$ icegridregistry --Ice.Config=config.master
|
||||
+$ icegridregistry --Ice.Config=config.slave
|
||||
$ icegridnode --Ice.Config=config.node
|
||||
$ glacier2router --Ice.Config=config.glacier2
|
||||
|
@ -0,0 +1,13 @@
|
||||
--- cpp.orig/demo/IceGrid/secure/application.xml 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/demo/IceGrid/secure/application.xml 2012-03-04 19:55:44.000000000 +0100
|
||||
@@ -20,8 +20,8 @@
|
||||
<property name="IceSSL.DefaultDir" value="certs"/>
|
||||
|
||||
<property name="Ice.Admin.Endpoints" value="ssl -h 127.0.0.1"/>
|
||||
- <property name="IceSSL.TrustOnly.Client" value="CN=IceGrid Registry"/>
|
||||
- <property name="IceSSL.TrustOnly.Server.Ice.Admin" value="CN=IceGrid Node"/>
|
||||
+ <property name="IceSSL.TrustOnly.Client" value="CN=Master;CN=Slave"/>
|
||||
+ <property name="IceSSL.TrustOnly.Server.Ice.Admin" value="CN=Node"/>
|
||||
</properties>
|
||||
|
||||
<node name="Node">
|
11
devel/ice/files/patch-cpp-demo-IceGrid-secure-config.admin
Normal file
11
devel/ice/files/patch-cpp-demo-IceGrid-secure-config.admin
Normal file
@ -0,0 +1,11 @@
|
||||
--- cpp.orig/demo/IceGrid/secure/config.admin 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/demo/IceGrid/secure/config.admin 2012-03-04 19:55:44.000000000 +0100
|
||||
@@ -14,7 +14,7 @@
|
||||
# SSL Configuration
|
||||
#
|
||||
IceSSL.DefaultDir=certs
|
||||
-IceSSL.TrustOnly.Client=CN="IceGrid Registry";CN="Glacier2"
|
||||
+IceSSL.TrustOnly.Client=CN="Master";CN="Slave";CN="Glacier2"
|
||||
|
||||
# C++ configuration
|
||||
Ice.Plugin.IceSSL.cpp=IceSSL:createIceSSL
|
11
devel/ice/files/patch-cpp-demo-IceGrid-secure-config.client
Normal file
11
devel/ice/files/patch-cpp-demo-IceGrid-secure-config.client
Normal file
@ -0,0 +1,11 @@
|
||||
--- cpp.orig/demo/IceGrid/secure/config.client 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/demo/IceGrid/secure/config.client 2012-03-04 19:55:44.000000000 +0100
|
||||
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# The IceGrid locator proxy.
|
||||
#
|
||||
-Ice.Default.Locator=DemoIceGrid/Locator:tcp -p 4061
|
||||
+Ice.Default.Locator=DemoIceGrid/Locator:tcp -p 4061:tcp -p 14061
|
||||
|
||||
#
|
||||
# Trace properties.
|
64
devel/ice/files/patch-cpp-demo-IceGrid-secure-config.master
Normal file
64
devel/ice/files/patch-cpp-demo-IceGrid-secure-config.master
Normal file
@ -0,0 +1,64 @@
|
||||
--- cpp.orig/demo/IceGrid/secure/config.master 2012-03-04 19:55:44.000000000 +0100
|
||||
+++ cpp/demo/IceGrid/secure/config.master 2012-03-04 19:55:44.000000000 +0100
|
||||
@@ -0,0 +1,61 @@
|
||||
+#
|
||||
+# The IceGrid instance name.
|
||||
+#
|
||||
+IceGrid.InstanceName=DemoIceGrid
|
||||
+
|
||||
+#
|
||||
+# IceGrid registry configuration.
|
||||
+#
|
||||
+IceGrid.Registry.Client.Endpoints=tcp -p 4061 -t 10000:ssl -p 4062 -t 10000
|
||||
+IceGrid.Registry.Server.Endpoints=ssl -t 10000
|
||||
+IceGrid.Registry.Internal.Endpoints=ssl -t 10000
|
||||
+IceGrid.Registry.Data=db/master
|
||||
+
|
||||
+#
|
||||
+# Ensure that nodes and slaves connecting to this registry have a name
|
||||
+# matching the certificate CN.
|
||||
+#
|
||||
+IceGrid.Registry.RequireNodeCertCN=1
|
||||
+IceGrid.Registry.RequireReplicaCertCN=1
|
||||
+
|
||||
+#
|
||||
+# IceGrid admin clients must use a secure connection to connect to the
|
||||
+# registry or use Glacier2.
|
||||
+#
|
||||
+IceGrid.Registry.AdminSessionManager.Endpoints=ssl -t 10000
|
||||
+IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
|
||||
+
|
||||
+#
|
||||
+# IceGrid SQL configuration if using SQL database.
|
||||
+#
|
||||
+#Ice.Plugin.DB=IceGridSqlDB:createSqlDB
|
||||
+#IceGrid.SQL.DatabaseType=QSQLITE
|
||||
+#IceGrid.SQL.DatabaseName=db/master/Registry.db
|
||||
+
|
||||
+#
|
||||
+# Trace properties.
|
||||
+#
|
||||
+Ice.ProgramName=Master
|
||||
+IceGrid.Registry.Trace.Node=2
|
||||
+IceGrid.Registry.Trace.Replica=2
|
||||
+
|
||||
+#
|
||||
+# SSL Configuration
|
||||
+#
|
||||
+Ice.Plugin.IceSSL=IceSSL:createIceSSL
|
||||
+IceSSL.DefaultDir=certs
|
||||
+IceSSL.CertAuthFile=ca_cert.pem
|
||||
+IceSSL.CertFile=master_cert.pem
|
||||
+IceSSL.KeyFile=master_key.pem
|
||||
+
|
||||
+#
|
||||
+# Don't require certificates. This is useful for admin clients that don't
|
||||
+# use certificate but still need to establish a secure connection for the
|
||||
+# username/password authentication
|
||||
+#
|
||||
+IceSSL.VerifyPeer=1
|
||||
+
|
||||
+IceSSL.TrustOnly.Client=CN="Master";CN="Slave";CN="Node";CN="Glacier2"
|
||||
+IceSSL.TrustOnly.Server.IceGrid.Registry.Server=CN="Server"
|
||||
+IceSSL.TrustOnly.Server.IceGrid.Registry.Internal=CN="Node";CN="Master";CN="Slave"
|
||||
+IceSSL.TrustOnly.Server.IceGrid.Registry.AdminSessionManager=CN="Glacier2"
|
19
devel/ice/files/patch-cpp-demo-IceGrid-secure-config.node
Normal file
19
devel/ice/files/patch-cpp-demo-IceGrid-secure-config.node
Normal file
@ -0,0 +1,19 @@
|
||||
--- cpp.orig/demo/IceGrid/secure/config.node 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/demo/IceGrid/secure/config.node 2012-03-04 19:55:44.000000000 +0100
|
||||
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# The IceGrid locator proxy.
|
||||
#
|
||||
-Ice.Default.Locator=DemoIceGrid/Locator:ssl -p 4062 -t 10000
|
||||
+Ice.Default.Locator=DemoIceGrid/Locator:ssl -p 4062 -t 10000:ssl -p 14062 -t 10000
|
||||
|
||||
#
|
||||
# IceGrid node configuration.
|
||||
@@ -26,5 +26,5 @@
|
||||
IceSSL.CertFile=node_cert.pem
|
||||
IceSSL.KeyFile=node_key.pem
|
||||
|
||||
-IceSSL.TrustOnly.Client=CN="Server";CN="IceGrid Registry"
|
||||
-IceSSL.TrustOnly.Server=CN="IceGrid Registry"
|
||||
+IceSSL.TrustOnly.Client=CN="Server";CN="Master";CN="Slave"
|
||||
+IceSSL.TrustOnly.Server=CN="Master";CN="Slave"
|
@ -0,0 +1,57 @@
|
||||
--- cpp.orig/demo/IceGrid/secure/config.registry 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/demo/IceGrid/secure/config.registry 2012-03-04 19:55:44.000000000 +0100
|
||||
@@ -1,54 +0,0 @@
|
||||
-#
|
||||
-# The IceGrid instance name.
|
||||
-#
|
||||
-IceGrid.InstanceName=DemoIceGrid
|
||||
-
|
||||
-#
|
||||
-# IceGrid registry configuration.
|
||||
-#
|
||||
-IceGrid.Registry.Client.Endpoints=tcp -p 4061 -t 10000:ssl -p 4062 -t 10000
|
||||
-IceGrid.Registry.Server.Endpoints=ssl -t 10000
|
||||
-IceGrid.Registry.Internal.Endpoints=ssl -t 10000
|
||||
-IceGrid.Registry.Data=db/registry
|
||||
-
|
||||
-#
|
||||
-# IceGrid admin clients must use a secure connection to connect to the
|
||||
-# registry or use Glacier2.
|
||||
-#
|
||||
-IceGrid.Registry.AdminSessionManager.Endpoints=ssl -t 10000
|
||||
-IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
|
||||
-
|
||||
-#
|
||||
-# IceGrid SQL configuration if using SQL database.
|
||||
-#
|
||||
-#Ice.Plugin.DB=IceGridSqlDB:createSqlDB
|
||||
-#IceGrid.SQL.DatabaseType=QSQLITE
|
||||
-#IceGrid.SQL.DatabaseName=db/registry/Registry.db
|
||||
-
|
||||
-#
|
||||
-# Trace properties.
|
||||
-#
|
||||
-Ice.ProgramName=Registry
|
||||
-IceGrid.Registry.Trace.Node=2
|
||||
-IceGrid.Registry.Trace.Replica=2
|
||||
-
|
||||
-#
|
||||
-# SSL Configuration
|
||||
-#
|
||||
-Ice.Plugin.IceSSL=IceSSL:createIceSSL
|
||||
-IceSSL.DefaultDir=certs
|
||||
-IceSSL.CertAuthFile=ca_cert.pem
|
||||
-IceSSL.CertFile=registry_cert.pem
|
||||
-IceSSL.KeyFile=registry_key.pem
|
||||
-
|
||||
-#
|
||||
-# Don't require certificates. This is useful for admin clients that don't
|
||||
-# use certificate but still need to establish a secure connection for the
|
||||
-# username/password authentication
|
||||
-#
|
||||
-IceSSL.VerifyPeer=1
|
||||
-
|
||||
-IceSSL.TrustOnly.Client=CN="IceGrid Registry";CN="IceGrid Node";CN="Glacier2"
|
||||
-IceSSL.TrustOnly.Server.IceGrid.Registry.Server=CN="Server"
|
||||
-IceSSL.TrustOnly.Server.IceGrid.Registry.Internal=CN="IceGrid Node";CN="IceGrid Registry"
|
||||
-IceSSL.TrustOnly.Server.IceGrid.Registry.AdminSessionManager=CN="Glacier2"
|
69
devel/ice/files/patch-cpp-demo-IceGrid-secure-config.slave
Normal file
69
devel/ice/files/patch-cpp-demo-IceGrid-secure-config.slave
Normal file
@ -0,0 +1,69 @@
|
||||
--- cpp.orig/demo/IceGrid/secure/config.slave 2012-03-04 19:55:44.000000000 +0100
|
||||
+++ cpp/demo/IceGrid/secure/config.slave 2012-03-04 19:55:44.000000000 +0100
|
||||
@@ -0,0 +1,66 @@
|
||||
+#
|
||||
+# The IceGrid locator proxy.
|
||||
+#
|
||||
+Ice.Default.Locator=DemoIceGrid/Locator:ssl -p 4062 -t 10000
|
||||
+
|
||||
+#
|
||||
+# The IceGrid instance name.
|
||||
+#
|
||||
+IceGrid.InstanceName=DemoIceGrid
|
||||
+
|
||||
+#
|
||||
+# IceGrid registry configuration.
|
||||
+#
|
||||
+IceGrid.Registry.Client.Endpoints=tcp -p 14061 -t 10000:ssl -p 14062 -t 10000
|
||||
+IceGrid.Registry.Server.Endpoints=ssl -t 10000
|
||||
+IceGrid.Registry.Internal.Endpoints=ssl -t 10000
|
||||
+IceGrid.Registry.Data=db/slave
|
||||
+IceGrid.Registry.ReplicaName=Slave
|
||||
+
|
||||
+#
|
||||
+# Ensure that nodes connecting to this registry have a name matching
|
||||
+# the certificate CN.
|
||||
+#
|
||||
+IceGrid.Registry.RequireNodeCertCN=1
|
||||
+
|
||||
+#
|
||||
+# IceGrid admin clients must use a secure connection to connect to the
|
||||
+# registry or use Glacier2.
|
||||
+#
|
||||
+IceGrid.Registry.AdminSessionManager.Endpoints=ssl -t 10000
|
||||
+IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
|
||||
+
|
||||
+#
|
||||
+# IceGrid SQL configuration if using SQL database.
|
||||
+#
|
||||
+#Ice.Plugin.DB=IceGridSqlDB:createSqlDB
|
||||
+#IceGrid.SQL.DatabaseType=QSQLITE
|
||||
+#IceGrid.SQL.DatabaseName=db/slave/Registry.db
|
||||
+
|
||||
+#
|
||||
+# Trace properties.
|
||||
+#
|
||||
+Ice.ProgramName=Slave
|
||||
+IceGrid.Registry.Trace.Node=2
|
||||
+IceGrid.Registry.Trace.Replica=2
|
||||
+
|
||||
+#
|
||||
+# SSL Configuration
|
||||
+#
|
||||
+Ice.Plugin.IceSSL=IceSSL:createIceSSL
|
||||
+IceSSL.DefaultDir=certs
|
||||
+IceSSL.CertAuthFile=ca_cert.pem
|
||||
+IceSSL.CertFile=slave_cert.pem
|
||||
+IceSSL.KeyFile=slave_key.pem
|
||||
+
|
||||
+#
|
||||
+# Don't require certificates. This is useful for admin clients that don't
|
||||
+# use certificate but still need to establish a secure connection for the
|
||||
+# username/password authentication
|
||||
+#
|
||||
+IceSSL.VerifyPeer=1
|
||||
+
|
||||
+IceSSL.TrustOnly.Client=CN="Master";CN="Slave";CN="Node";CN="Glacier2"
|
||||
+IceSSL.TrustOnly.Server.IceGrid.Registry.Server=CN="Server"
|
||||
+IceSSL.TrustOnly.Server.IceGrid.Registry.Internal=CN="Node";CN="Master";CN="Slave"
|
||||
+IceSSL.TrustOnly.Server.IceGrid.Registry.AdminSessionManager=CN="Glacier2"
|
14
devel/ice/files/patch-cpp-demo-IceGrid-secure-makecerts.py
Normal file
14
devel/ice/files/patch-cpp-demo-IceGrid-secure-makecerts.py
Normal file
@ -0,0 +1,14 @@
|
||||
--- cpp.orig/demo/IceGrid/secure/makecerts.py 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/demo/IceGrid/secure/makecerts.py 2012-03-04 19:55:44.000000000 +0100
|
||||
@@ -44,8 +44,9 @@
|
||||
print
|
||||
print
|
||||
|
||||
-createCertificate("registry", "IceGrid Registry")
|
||||
-createCertificate("node", "IceGrid Node")
|
||||
+createCertificate("master", "Master")
|
||||
+createCertificate("slave", "Slave")
|
||||
+createCertificate("node", "Node")
|
||||
createCertificate("glacier2", "Glacier2")
|
||||
createCertificate("server", "Server")
|
||||
|
11
devel/ice/files/patch-cpp-include-Freeze-Map.h
Normal file
11
devel/ice/files/patch-cpp-include-Freeze-Map.h
Normal file
@ -0,0 +1,11 @@
|
||||
--- cpp.orig/include/Freeze/Map.h 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/include/Freeze/Map.h 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -426,7 +426,7 @@
|
||||
|
||||
ConstIterator(MapHelper& mapHelper, const Ice::CommunicatorPtr& communicator) :
|
||||
_helper(IteratorHelper::create(mapHelper, true)),
|
||||
- _communicator(_communicator),
|
||||
+ _communicator(communicator),
|
||||
_refValid(false)
|
||||
{
|
||||
}
|
10
devel/ice/files/patch-cpp-include-Ice-Buffer.h
Normal file
10
devel/ice/files/patch-cpp-include-Ice-Buffer.h
Normal file
@ -0,0 +1,10 @@
|
||||
--- cpp.orig/include/Ice/Buffer.h 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/include/Ice/Buffer.h 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -10,6 +10,7 @@
|
||||
#ifndef ICEE_BUFFER_H
|
||||
#define ICEE_BUFFER_H
|
||||
|
||||
+#include <cstddef>
|
||||
#include <Ice/Config.h>
|
||||
|
||||
namespace IceInternal
|
17
devel/ice/files/patch-cpp-include-Ice-ConnectionIF.h
Normal file
17
devel/ice/files/patch-cpp-include-Ice-ConnectionIF.h
Normal file
@ -0,0 +1,17 @@
|
||||
--- cpp.orig/include/Ice/ConnectionIF.h 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/include/Ice/ConnectionIF.h 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -17,13 +17,13 @@
|
||||
{
|
||||
|
||||
class ConnectionI;
|
||||
+ICE_API Ice::LocalObject* upCast(Ice::ConnectionI*);
|
||||
|
||||
}
|
||||
|
||||
namespace IceInternal
|
||||
{
|
||||
|
||||
-ICE_API Ice::LocalObject* upCast(Ice::ConnectionI*);
|
||||
|
||||
enum AsyncStatus
|
||||
{
|
21
devel/ice/files/patch-cpp-include-Ice-IconvStringConverter.h
Normal file
21
devel/ice/files/patch-cpp-include-Ice-IconvStringConverter.h
Normal file
@ -0,0 +1,21 @@
|
||||
--- cpp.orig/include/Ice/IconvStringConverter.h 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/include/Ice/IconvStringConverter.h 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -225,10 +225,16 @@
|
||||
template<typename charT> /*static*/ void
|
||||
IconvStringConverter<charT>::close(std::pair<iconv_t, iconv_t> cdp)
|
||||
{
|
||||
- int rs = iconv_close(cdp.first);
|
||||
+#ifndef NDEBUG
|
||||
+ int rs =
|
||||
+#endif
|
||||
+ iconv_close(cdp.first);
|
||||
assert(rs == 0);
|
||||
|
||||
- rs = iconv_close(cdp.second);
|
||||
+#ifndef NDEBUG
|
||||
+ rs =
|
||||
+#endif
|
||||
+ iconv_close(cdp.second);
|
||||
assert(rs == 0);
|
||||
}
|
||||
|
15
devel/ice/files/patch-cpp-include-Ice-IncomingAsyncF.h
Normal file
15
devel/ice/files/patch-cpp-include-Ice-IncomingAsyncF.h
Normal file
@ -0,0 +1,15 @@
|
||||
--- cpp.orig/include/Ice/IncomingAsyncF.h 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/include/Ice/IncomingAsyncF.h 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -28,12 +28,6 @@
|
||||
|
||||
class AMD_Object_ice_invoke;
|
||||
class AMD_Array_Object_ice_invoke;
|
||||
-
|
||||
-}
|
||||
-
|
||||
-namespace IceInternal
|
||||
-{
|
||||
-
|
||||
ICE_API IceUtil::Shared* upCast(::Ice::AMD_Object_ice_invoke*);
|
||||
ICE_API IceUtil::Shared* upCast(::Ice::AMD_Array_Object_ice_invoke*);
|
||||
|
15
devel/ice/files/patch-cpp-include-Ice-LocalObjectF.h
Normal file
15
devel/ice/files/patch-cpp-include-Ice-LocalObjectF.h
Normal file
@ -0,0 +1,15 @@
|
||||
--- cpp.orig/include/Ice/LocalObjectF.h 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/include/Ice/LocalObjectF.h 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -18,12 +18,6 @@
|
||||
{
|
||||
|
||||
class LocalObject;
|
||||
-
|
||||
-}
|
||||
-
|
||||
-namespace IceInternal
|
||||
-{
|
||||
-
|
||||
ICE_API IceUtil::Shared* upCast(::Ice::LocalObject*);
|
||||
|
||||
}
|
22
devel/ice/files/patch-cpp-include-Ice-ObjectF.h
Normal file
22
devel/ice/files/patch-cpp-include-Ice-ObjectF.h
Normal file
@ -0,0 +1,22 @@
|
||||
--- cpp.orig/include/Ice/ObjectF.h 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/include/Ice/ObjectF.h 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -17,19 +17,8 @@
|
||||
{
|
||||
|
||||
class Object;
|
||||
-
|
||||
-}
|
||||
-
|
||||
-namespace IceInternal
|
||||
-{
|
||||
-
|
||||
ICE_API IceUtil::Shared* upCast(::Ice::Object*);
|
||||
|
||||
-}
|
||||
-
|
||||
-namespace Ice
|
||||
-{
|
||||
-
|
||||
typedef IceInternal::Handle< Object > ObjectPtr;
|
||||
|
||||
void ICE_API __patch__ObjectPtr(void*, ObjectPtr&);
|
17
devel/ice/files/patch-cpp-include-Ice-OutgoingAsyncF.h
Normal file
17
devel/ice/files/patch-cpp-include-Ice-OutgoingAsyncF.h
Normal file
@ -0,0 +1,17 @@
|
||||
--- cpp.orig/include/Ice/OutgoingAsyncF.h 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/include/Ice/OutgoingAsyncF.h 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -19,13 +19,13 @@
|
||||
|
||||
class AsyncResult;
|
||||
typedef IceInternal::Handle<AsyncResult> AsyncResultPtr;
|
||||
+ICE_API IceUtil::Shared* upCast(::Ice::AsyncResult*);
|
||||
|
||||
}
|
||||
|
||||
namespace IceInternal
|
||||
{
|
||||
|
||||
-ICE_API IceUtil::Shared* upCast(::Ice::AsyncResult*);
|
||||
|
||||
class OutgoingAsync;
|
||||
ICE_API IceUtil::Shared* upCast(OutgoingAsync*);
|
56
devel/ice/files/patch-cpp-include-Ice-Proxy.h
Normal file
56
devel/ice/files/patch-cpp-include-Ice-Proxy.h
Normal file
@ -0,0 +1,56 @@
|
||||
--- cpp.orig/include/Ice/Proxy.h 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/include/Ice/Proxy.h 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -38,6 +38,8 @@
|
||||
|
||||
class Locator;
|
||||
class Router;
|
||||
+ICE_API ::IceProxy::Ice::Object* upCast(::IceProxy::Ice::Locator*);
|
||||
+ICE_API ::IceProxy::Ice::Object* upCast(::IceProxy::Ice::Router*);
|
||||
|
||||
}
|
||||
|
||||
@@ -46,8 +48,6 @@
|
||||
namespace IceInternal
|
||||
{
|
||||
|
||||
-ICE_API ::IceProxy::Ice::Object* upCast(::IceProxy::Ice::Locator*);
|
||||
-ICE_API ::IceProxy::Ice::Object* upCast(::IceProxy::Ice::Router*);
|
||||
|
||||
class LocalExceptionWrapper;
|
||||
|
||||
@@ -1172,7 +1172,7 @@
|
||||
|
||||
TwowayCallbackNC(const TPtr& instance, bool cb, Exception excb, Sent sentcb) : CallbackNC<T>(instance, excb, sentcb)
|
||||
{
|
||||
- checkCallback(instance, cb || excb != 0);
|
||||
+ this->checkCallback(instance, cb || excb != 0);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1188,7 +1188,7 @@
|
||||
|
||||
TwowayCallback(const TPtr& instance, bool cb, Exception excb, Sent sentcb) : Callback<T, CT>(instance, excb, sentcb)
|
||||
{
|
||||
- checkCallback(instance, cb || excb != 0);
|
||||
+ this->checkCallback(instance, cb || excb != 0);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1209,7 +1209,7 @@
|
||||
OnewayCallbackNC(const TPtr& instance, Response cb, Exception excb, Sent sentcb) :
|
||||
CallbackNC<T>(instance, excb, sentcb), response(cb)
|
||||
{
|
||||
- checkCallback(instance, cb != 0 || excb != 0);
|
||||
+ this->checkCallback(instance, cb != 0 || excb != 0);
|
||||
}
|
||||
|
||||
virtual void __completed(const ::Ice::AsyncResultPtr& result) const
|
||||
@@ -1254,7 +1254,7 @@
|
||||
OnewayCallback(const TPtr& instance, Response cb, Exception excb, Sent sentcb) :
|
||||
Callback<T, CT>(instance, excb, sentcb), response(cb)
|
||||
{
|
||||
- checkCallback(instance, cb != 0 || excb != 0);
|
||||
+ this->checkCallback(instance, cb != 0 || excb != 0);
|
||||
}
|
||||
|
||||
virtual void __completed(const ::Ice::AsyncResultPtr& result) const
|
76
devel/ice/files/patch-cpp-include-Ice-ProxyF.h
Normal file
76
devel/ice/files/patch-cpp-include-Ice-ProxyF.h
Normal file
@ -0,0 +1,76 @@
|
||||
--- cpp.orig/include/Ice/ProxyF.h 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/include/Ice/ProxyF.h 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -22,6 +22,11 @@
|
||||
{
|
||||
|
||||
class Object;
|
||||
+inline ::IceProxy::Ice::Object*
|
||||
+upCast(::IceProxy::Ice::Object* o)
|
||||
+{
|
||||
+ return o;
|
||||
+}
|
||||
|
||||
}
|
||||
|
||||
@@ -34,6 +39,11 @@
|
||||
{
|
||||
|
||||
class Object;
|
||||
+inline ::IceDelegate::Ice::Object*
|
||||
+upCast(::IceDelegate::Ice::Object* o)
|
||||
+{
|
||||
+ return o;
|
||||
+}
|
||||
|
||||
}
|
||||
|
||||
@@ -47,6 +57,12 @@
|
||||
|
||||
class Object;
|
||||
|
||||
+inline ::IceDelegateM::Ice::Object*
|
||||
+upCast(::IceDelegateM::Ice::Object* o)
|
||||
+{
|
||||
+ return o;
|
||||
+}
|
||||
+
|
||||
}
|
||||
|
||||
}
|
||||
@@ -58,36 +74,12 @@
|
||||
{
|
||||
|
||||
class Object;
|
||||
-
|
||||
-}
|
||||
-
|
||||
-}
|
||||
-
|
||||
-namespace IceInternal
|
||||
-{
|
||||
-
|
||||
-inline ::IceProxy::Ice::Object*
|
||||
-upCast(::IceProxy::Ice::Object* o)
|
||||
-{
|
||||
- return o;
|
||||
-}
|
||||
-
|
||||
-inline ::IceDelegate::Ice::Object*
|
||||
-upCast(::IceDelegate::Ice::Object* o)
|
||||
-{
|
||||
- return o;
|
||||
-}
|
||||
-
|
||||
inline ::IceDelegateD::Ice::Object*
|
||||
upCast(::IceDelegateD::Ice::Object* o)
|
||||
{
|
||||
return o;
|
||||
}
|
||||
|
||||
-inline ::IceDelegateM::Ice::Object*
|
||||
-upCast(::IceDelegateM::Ice::Object* o)
|
||||
-{
|
||||
- return o;
|
||||
}
|
||||
|
||||
}
|
79
devel/ice/files/patch-cpp-include-Ice-Stream.h
Normal file
79
devel/ice/files/patch-cpp-include-Ice-Stream.h
Normal file
@ -0,0 +1,79 @@
|
||||
--- cpp.orig/include/Ice/Stream.h 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/include/Ice/Stream.h 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -17,6 +17,12 @@
|
||||
#include <Ice/Proxy.h>
|
||||
#include <IceUtil/Shared.h>
|
||||
|
||||
+namespace IceInternal
|
||||
+{
|
||||
+ // Forward declaration required for writer specializations.
|
||||
+ void delegateThrowMarshalException(const char*, int, const ::std::string&);
|
||||
+}
|
||||
+
|
||||
namespace Ice
|
||||
{
|
||||
|
||||
@@ -45,9 +51,6 @@
|
||||
StreamTraitTypeUnknown
|
||||
};
|
||||
|
||||
-// Forward declaration required for writer specializations.
|
||||
-class MarshalException;
|
||||
-
|
||||
//
|
||||
// Base trait template. This doesn't actually do anything -- we just
|
||||
// use it as a template that we can specialize.
|
||||
@@ -542,7 +545,7 @@
|
||||
{
|
||||
if(static_cast<int>(v) < 0 || static_cast<int>(v) >= StreamTrait<T>::enumLimit)
|
||||
{
|
||||
- throw MarshalException(__FILE__, __LINE__, "enumerator out of range");
|
||||
+ IceInternal::delegateThrowMarshalException(__FILE__, __LINE__, "enumerator out of range");
|
||||
}
|
||||
outS->write(static_cast<Byte>(v));
|
||||
}
|
||||
@@ -558,7 +561,7 @@
|
||||
inS->read(val);
|
||||
if(val > StreamTrait<T>::enumLimit)
|
||||
{
|
||||
- throw MarshalException(__FILE__, __LINE__, "enumerator out of range");
|
||||
+ IceInternal::delegateThrowMarshalException(__FILE__, __LINE__, "enumerator out of range");
|
||||
}
|
||||
v = static_cast<T>(val);
|
||||
}
|
||||
@@ -573,7 +576,7 @@
|
||||
{
|
||||
if(static_cast<int>(v) < 0 || static_cast<int>(v) >= StreamTrait<T>::enumLimit)
|
||||
{
|
||||
- throw MarshalException(__FILE__, __LINE__, "enumerator out of range");
|
||||
+ IceInternal::delegateThrowMarshalException(__FILE__, __LINE__, "enumerator out of range");
|
||||
}
|
||||
outS->write(static_cast<Short>(v));
|
||||
}
|
||||
@@ -589,7 +592,7 @@
|
||||
inS->read(val);
|
||||
if(val < 0 || val > StreamTrait<T>::enumLimit)
|
||||
{
|
||||
- throw MarshalException(__FILE__, __LINE__, "enumerator out of range");
|
||||
+ IceInternal::delegateThrowMarshalException(__FILE__, __LINE__, "enumerator out of range");
|
||||
}
|
||||
v = static_cast<T>(val);
|
||||
}
|
||||
@@ -603,7 +606,7 @@
|
||||
{
|
||||
if(static_cast<int>(v) < 0 || static_cast<int>(v) >= StreamTrait<T>::enumLimit)
|
||||
{
|
||||
- throw MarshalException(__FILE__, __LINE__, "enumerator out of range");
|
||||
+ IceInternal::delegateThrowMarshalException(__FILE__, __LINE__, "enumerator out of range");
|
||||
}
|
||||
outS->write(static_cast<Int>(v));
|
||||
}
|
||||
@@ -619,7 +622,7 @@
|
||||
inS->read(val);
|
||||
if(val < 0 || val > StreamTrait<T>::enumLimit)
|
||||
{
|
||||
- throw MarshalException(__FILE__, __LINE__, "enumerator out of range");
|
||||
+ IceInternal::delegateThrowMarshalException(__FILE__, __LINE__, "enumerator out of range");
|
||||
}
|
||||
v = static_cast<T>(val);
|
||||
}
|
15
devel/ice/files/patch-cpp-include-Ice-StreamF.h
Normal file
15
devel/ice/files/patch-cpp-include-Ice-StreamF.h
Normal file
@ -0,0 +1,15 @@
|
||||
--- cpp.orig/include/Ice/StreamF.h 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/include/Ice/StreamF.h 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -19,12 +19,6 @@
|
||||
|
||||
class InputStream;
|
||||
class OutputStream;
|
||||
-
|
||||
-}
|
||||
-
|
||||
-namespace IceInternal
|
||||
-{
|
||||
-
|
||||
ICE_API IceUtil::Shared* upCast(::Ice::InputStream*);
|
||||
ICE_API IceUtil::Shared* upCast(::Ice::OutputStream*);
|
||||
|
15
devel/ice/files/patch-cpp-include-IceUtil-Mutex.h
Normal file
15
devel/ice/files/patch-cpp-include-IceUtil-Mutex.h
Normal file
@ -0,0 +1,15 @@
|
||||
--- cpp.orig/include/IceUtil/Mutex.h 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/include/IceUtil/Mutex.h 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -251,8 +251,11 @@
|
||||
inline
|
||||
Mutex::~Mutex()
|
||||
{
|
||||
+#ifndef NDEBUG
|
||||
int rc = 0;
|
||||
- rc = pthread_mutex_destroy(&_mutex);
|
||||
+ rc =
|
||||
+#endif
|
||||
+ pthread_mutex_destroy(&_mutex);
|
||||
assert(rc == 0);
|
||||
}
|
||||
|
15
devel/ice/files/patch-cpp-src-Freeze-MapDb.cpp
Normal file
15
devel/ice/files/patch-cpp-src-Freeze-MapDb.cpp
Normal file
@ -0,0 +1,15 @@
|
||||
--- cpp.orig/src/Freeze/MapDb.cpp 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/src/Freeze/MapDb.cpp 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -229,7 +229,11 @@
|
||||
#ifndef NDEBUG
|
||||
bool inserted =
|
||||
#endif
|
||||
- _indices.insert(IndexMap::value_type(indexBase->name(), indexI.get())).second;
|
||||
+ _indices.insert(IndexMap::value_type(indexBase->name(), indexI.get()))
|
||||
+#ifndef NDEBUG
|
||||
+ .second
|
||||
+#endif
|
||||
+ ;
|
||||
assert(inserted);
|
||||
|
||||
indexBase->_impl = indexI.release();
|
41
devel/ice/files/patch-cpp-src-Freeze-MapI.cpp
Normal file
41
devel/ice/files/patch-cpp-src-Freeze-MapI.cpp
Normal file
@ -0,0 +1,41 @@
|
||||
--- cpp.orig/src/Freeze/MapI.cpp 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/src/Freeze/MapI.cpp 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -749,8 +749,11 @@
|
||||
|
||||
try
|
||||
{
|
||||
+#ifndef NDEBUG
|
||||
int err;
|
||||
- err = _dbc->put(&dbKey, &dbValue, DB_CURRENT);
|
||||
+ err =
|
||||
+#endif
|
||||
+ _dbc->put(&dbKey, &dbValue, DB_CURRENT);
|
||||
assert(err == 0);
|
||||
}
|
||||
catch(const ::DbDeadlockException& dx)
|
||||
@@ -1023,7 +1026,11 @@
|
||||
#ifndef NDEBUG
|
||||
bool inserted =
|
||||
#endif
|
||||
- _indices.insert(IndexMap::value_type(indexBase->name(), indexBase)).second;
|
||||
+ _indices.insert(IndexMap::value_type(indexBase->name(), indexBase))
|
||||
+#ifndef NDEBUG
|
||||
+ .second
|
||||
+#endif
|
||||
+ ;
|
||||
assert(inserted);
|
||||
indexBase->_map = this;
|
||||
}
|
||||
@@ -1360,8 +1367,11 @@
|
||||
try
|
||||
{
|
||||
u_int32_t count;
|
||||
+#ifndef NDEBUG
|
||||
int err;
|
||||
- err = _db->truncate(txn, &count, txn != 0 ? 0 : DB_AUTO_COMMIT);
|
||||
+ err =
|
||||
+#endif
|
||||
+ _db->truncate(txn, &count, txn != 0 ? 0 : DB_AUTO_COMMIT);
|
||||
assert(err == 0);
|
||||
break;
|
||||
}
|
15
devel/ice/files/patch-cpp-src-Freeze-SharedDbEnv.cpp
Normal file
15
devel/ice/files/patch-cpp-src-Freeze-SharedDbEnv.cpp
Normal file
@ -0,0 +1,15 @@
|
||||
--- cpp.orig/src/Freeze/SharedDbEnv.cpp 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/src/Freeze/SharedDbEnv.cpp 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -336,8 +336,11 @@
|
||||
// Remove from map
|
||||
//
|
||||
|
||||
+#ifndef NDEBUG
|
||||
size_t one;
|
||||
- one = sharedDbEnvMap->erase(key);
|
||||
+ one =
|
||||
+#endif
|
||||
+ sharedDbEnvMap->erase(key);
|
||||
assert(one == 1);
|
||||
|
||||
if(sharedDbEnvMap->size() == 0)
|
18
devel/ice/files/patch-cpp-src-Glacier2-Blobject.cpp
Normal file
18
devel/ice/files/patch-cpp-src-Glacier2-Blobject.cpp
Normal file
@ -0,0 +1,18 @@
|
||||
--- cpp.orig/src/Glacier2/Blobject.cpp 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/src/Glacier2/Blobject.cpp 2012-03-04 19:39:27.000000000 +0100
|
||||
@@ -171,6 +171,15 @@
|
||||
}
|
||||
|
||||
void
|
||||
+Glacier2::Blobject::destroy()
|
||||
+{
|
||||
+ if(_requestQueue)
|
||||
+ {
|
||||
+ _requestQueue->destroy();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void
|
||||
Glacier2::Blobject::invoke(ObjectPrx& proxy, const AMD_Object_ice_invokePtr& amdCB,
|
||||
const std::pair<const Ice::Byte*, const Ice::Byte*>& inParams, const Current& current)
|
||||
{
|
11
devel/ice/files/patch-cpp-src-Glacier2-Blobject.h
Normal file
11
devel/ice/files/patch-cpp-src-Glacier2-Blobject.h
Normal file
@ -0,0 +1,11 @@
|
||||
--- cpp.orig/src/Glacier2/Blobject.h 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/src/Glacier2/Blobject.h 2012-03-04 19:39:27.000000000 +0100
|
||||
@@ -24,6 +24,8 @@
|
||||
Blobject(const InstancePtr&, const Ice::ConnectionPtr&, const Ice::Context&);
|
||||
virtual ~Blobject();
|
||||
|
||||
+ void destroy();
|
||||
+
|
||||
protected:
|
||||
|
||||
void invoke(Ice::ObjectPrx&, const Ice::AMD_Object_ice_invokePtr&,
|
74
devel/ice/files/patch-cpp-src-Glacier2-RequestQueue.cpp
Normal file
74
devel/ice/files/patch-cpp-src-Glacier2-RequestQueue.cpp
Normal file
@ -0,0 +1,74 @@
|
||||
--- cpp.orig/src/Glacier2/RequestQueue.cpp 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/src/Glacier2/RequestQueue.cpp 2012-03-04 19:39:27.000000000 +0100
|
||||
@@ -185,7 +185,8 @@
|
||||
_callback(newCallback_Object_ice_invoke(this, &RequestQueue::response, &RequestQueue::exception,
|
||||
&RequestQueue::sent)),
|
||||
_flushCallback(newCallback_Connection_flushBatchRequests(this, &RequestQueue::exception, &RequestQueue::sent)),
|
||||
- _pendingSend(false)
|
||||
+ _pendingSend(false),
|
||||
+ _destroyed(false)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -241,6 +242,37 @@
|
||||
}
|
||||
|
||||
void
|
||||
+Glacier2::RequestQueue::destroy()
|
||||
+{
|
||||
+ IceUtil::Mutex::Lock lock(*this);
|
||||
+
|
||||
+ _destroyed = true;
|
||||
+
|
||||
+ //
|
||||
+ // Although the session has been destroyed, we cannot destroy this queue
|
||||
+ // until all requests have completed.
|
||||
+ //
|
||||
+ if(_requests.empty())
|
||||
+ {
|
||||
+ destroyInternal();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+Glacier2::RequestQueue::destroyInternal()
|
||||
+{
|
||||
+ //
|
||||
+ // Must be called with the mutex locked.
|
||||
+ //
|
||||
+
|
||||
+ //
|
||||
+ // Remove cyclic references.
|
||||
+ //
|
||||
+ const_cast<Ice::Callback_Object_ice_invokePtr&>(_callback) = 0;
|
||||
+ const_cast<Ice::Callback_Connection_flushBatchRequestsPtr&>(_flushCallback) = 0;
|
||||
+}
|
||||
+
|
||||
+void
|
||||
Glacier2::RequestQueue::flush()
|
||||
{
|
||||
assert(_connection);
|
||||
@@ -289,6 +321,11 @@
|
||||
_pendingSendRequest = 0;
|
||||
}
|
||||
}
|
||||
+
|
||||
+ if(_destroyed && _requests.empty())
|
||||
+ {
|
||||
+ destroyInternal();
|
||||
+ }
|
||||
}
|
||||
|
||||
void
|
||||
@@ -312,6 +349,11 @@
|
||||
}
|
||||
}
|
||||
_requests.clear();
|
||||
+
|
||||
+ if(_destroyed)
|
||||
+ {
|
||||
+ destroyInternal();
|
||||
+ }
|
||||
}
|
||||
|
||||
void
|
23
devel/ice/files/patch-cpp-src-Glacier2-RequestQueue.h
Normal file
23
devel/ice/files/patch-cpp-src-Glacier2-RequestQueue.h
Normal file
@ -0,0 +1,23 @@
|
||||
--- cpp.orig/src/Glacier2/RequestQueue.h 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/src/Glacier2/RequestQueue.h 2012-03-04 19:39:27.000000000 +0100
|
||||
@@ -65,8 +65,12 @@
|
||||
bool addRequest(const RequestPtr&);
|
||||
void flushRequests(std::set<Ice::ObjectPrx>&);
|
||||
|
||||
+ void destroy();
|
||||
+
|
||||
private:
|
||||
|
||||
+ void destroyInternal();
|
||||
+
|
||||
void flush();
|
||||
void flush(std::set<Ice::ObjectPrx>&);
|
||||
|
||||
@@ -83,6 +87,7 @@
|
||||
std::deque<RequestPtr> _requests;
|
||||
bool _pendingSend;
|
||||
RequestPtr _pendingSendRequest;
|
||||
+ bool _destroyed;
|
||||
};
|
||||
typedef IceUtil::Handle<RequestQueue> RequestQueuePtr;
|
||||
|
15
devel/ice/files/patch-cpp-src-Glacier2-RouterI.cpp
Normal file
15
devel/ice/files/patch-cpp-src-Glacier2-RouterI.cpp
Normal file
@ -0,0 +1,15 @@
|
||||
--- cpp.orig/src/Glacier2/RouterI.cpp 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/src/Glacier2/RouterI.cpp 2012-03-04 19:39:27.000000000 +0100
|
||||
@@ -98,6 +98,12 @@
|
||||
_session->destroy_async(amiCB);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ _clientBlobject->destroy();
|
||||
+ if(_serverBlobject)
|
||||
+ {
|
||||
+ _serverBlobject->destroy();
|
||||
+ }
|
||||
}
|
||||
|
||||
ObjectPrx
|
27
devel/ice/files/patch-cpp-src-Ice-ConnectionI.cpp
Normal file
27
devel/ice/files/patch-cpp-src-Ice-ConnectionI.cpp
Normal file
@ -0,0 +1,27 @@
|
||||
--- cpp.orig/src/Ice/ConnectionI.cpp 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/src/Ice/ConnectionI.cpp 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -31,7 +31,7 @@
|
||||
using namespace Ice;
|
||||
using namespace IceInternal;
|
||||
|
||||
-Ice::LocalObject* IceInternal::upCast(ConnectionI* p) { return p; }
|
||||
+Ice::LocalObject* Ice::upCast(ConnectionI* p) { return p; }
|
||||
|
||||
namespace
|
||||
{
|
||||
@@ -600,6 +600,7 @@
|
||||
}
|
||||
catch(const LocalException& ex)
|
||||
{
|
||||
+ status = IceInternal::AsyncStatusQueued; // this is only to apeace the compiler
|
||||
setState(StateClosed, ex);
|
||||
assert(_exception.get());
|
||||
_exception->ice_throw();
|
||||
@@ -971,6 +972,7 @@
|
||||
}
|
||||
catch(const Ice::LocalException& ex)
|
||||
{
|
||||
+ status = IceInternal::AsyncStatusQueued; // this is only to apeace the compiler
|
||||
setState(StateClosed, ex);
|
||||
assert(_exception.get());
|
||||
_exception->ice_throw();
|
11
devel/ice/files/patch-cpp-src-Ice-IncomingAsync.cpp
Normal file
11
devel/ice/files/patch-cpp-src-Ice-IncomingAsync.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
--- cpp.orig/src/Ice/IncomingAsync.cpp 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/src/Ice/IncomingAsync.cpp 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -24,7 +24,7 @@
|
||||
using namespace IceInternal;
|
||||
|
||||
IceUtil::Shared* IceInternal::upCast(IncomingAsync* p) { return p; }
|
||||
-IceUtil::Shared* IceInternal::upCast(AMD_Object_ice_invoke* p) { return p; }
|
||||
+IceUtil::Shared* Ice::upCast(AMD_Object_ice_invoke* p) { return p; }
|
||||
|
||||
namespace
|
||||
{
|
11
devel/ice/files/patch-cpp-src-Ice-LocalObject.cpp
Normal file
11
devel/ice/files/patch-cpp-src-Ice-LocalObject.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
--- cpp.orig/src/Ice/LocalObject.cpp 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/src/Ice/LocalObject.cpp 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -13,7 +13,7 @@
|
||||
using namespace Ice;
|
||||
using namespace IceInternal;
|
||||
|
||||
-IceUtil::Shared* IceInternal::upCast(LocalObject* obj) { return obj; }
|
||||
+IceUtil::Shared* Ice::upCast(LocalObject* obj) { return obj; }
|
||||
|
||||
bool
|
||||
Ice::LocalObject::operator==(const LocalObject& r) const
|
11
devel/ice/files/patch-cpp-src-Ice-Object.cpp
Normal file
11
devel/ice/files/patch-cpp-src-Ice-Object.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
--- cpp.orig/src/Ice/Object.cpp 2011-06-15 21:43:58.000000000 +0200
|
||||
+++ cpp/src/Ice/Object.cpp 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -19,7 +19,7 @@
|
||||
using namespace Ice;
|
||||
using namespace IceInternal;
|
||||
|
||||
-IceUtil::Shared* IceInternal::upCast(Object* p) { return p; }
|
||||
+IceUtil::Shared* Ice::upCast(Object* p) { return p; }
|
||||
|
||||
bool
|
||||
Ice::Object::operator==(const Object& r) const
|
11
devel/ice/files/patch-cpp-src-Ice-OutgoingAsync.cpp
Normal file
11
devel/ice/files/patch-cpp-src-Ice-OutgoingAsync.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
--- cpp.orig/src/Ice/OutgoingAsync.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/Ice/OutgoingAsync.cpp 2012-03-04 20:14:52.000000000 +0100
|
||||
@@ -30,7 +30,7 @@
|
||||
using namespace Ice;
|
||||
using namespace IceInternal;
|
||||
|
||||
-IceUtil::Shared* IceInternal::upCast(AsyncResult* p) { return p; }
|
||||
+IceUtil::Shared* Ice::upCast(AsyncResult* p) { return p; }
|
||||
|
||||
IceUtil::Shared* IceInternal::upCast(OutgoingAsyncMessageCallback* p) { return p; }
|
||||
IceUtil::Shared* IceInternal::upCast(OutgoingAsync* p) { return p; }
|
20
devel/ice/files/patch-cpp-src-Ice-PropertyNames.cpp
Normal file
20
devel/ice/files/patch-cpp-src-Ice-PropertyNames.cpp
Normal file
@ -0,0 +1,20 @@
|
||||
--- cpp.orig/src/Ice/PropertyNames.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/Ice/PropertyNames.cpp 2012-03-04 19:55:44.000000000 +0100
|
||||
@@ -8,7 +8,7 @@
|
||||
// **********************************************************************
|
||||
|
||||
//
|
||||
-// Generated by makeprops.py from file ..\config\PropertyNames.xml, Mon May 09 07:39:43 2011
|
||||
+// Generated by makeprops.py from file ../config/PropertyNames.xml, Tue Jul 12 07:22:34 2011
|
||||
|
||||
// IMPORTANT: Do not edit this file -- any edits made here will be lost!
|
||||
|
||||
@@ -335,6 +335,8 @@
|
||||
IceInternal::Property("IceGrid.Registry.PermissionsVerifier", false, 0),
|
||||
IceInternal::Property("IceGrid.Registry.ReplicaName", false, 0),
|
||||
IceInternal::Property("IceGrid.Registry.ReplicaSessionTimeout", false, 0),
|
||||
+ IceInternal::Property("IceGrid.Registry.RequireNodeCertCN", false, 0),
|
||||
+ IceInternal::Property("IceGrid.Registry.RequireReplicaCertCN", false, 0),
|
||||
IceInternal::Property("IceGrid.Registry.Server.ACM", false, 0),
|
||||
IceInternal::Property("IceGrid.Registry.Server.AdapterId", false, 0),
|
||||
IceInternal::Property("IceGrid.Registry.Server.Endpoints", false, 0),
|
11
devel/ice/files/patch-cpp-src-Ice-PropertyNames.h
Normal file
11
devel/ice/files/patch-cpp-src-Ice-PropertyNames.h
Normal file
@ -0,0 +1,11 @@
|
||||
--- cpp.orig/src/Ice/PropertyNames.h 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/Ice/PropertyNames.h 2012-03-04 19:55:44.000000000 +0100
|
||||
@@ -8,7 +8,7 @@
|
||||
// **********************************************************************
|
||||
|
||||
//
|
||||
-// Generated by makeprops.py from file ..\config\PropertyNames.xml, Mon May 09 07:39:43 2011
|
||||
+// Generated by makeprops.py from file ../config/PropertyNames.xml, Tue Jul 12 07:22:34 2011
|
||||
|
||||
// IMPORTANT: Do not edit this file -- any edits made here will be lost!
|
||||
|
10
devel/ice/files/patch-cpp-src-Ice-ProxyFactory.cpp
Normal file
10
devel/ice/files/patch-cpp-src-Ice-ProxyFactory.cpp
Normal file
@ -0,0 +1,10 @@
|
||||
--- cpp.orig/src/Ice/ProxyFactory.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/Ice/ProxyFactory.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -229,6 +229,7 @@
|
||||
}
|
||||
else if(cnt > static_cast<int>(_retryIntervals.size()))
|
||||
{
|
||||
+ interval = 0; // apeace compiler
|
||||
if(traceLevels->retry >= 1)
|
||||
{
|
||||
Trace out(logger, traceLevels->retryCat);
|
32
devel/ice/files/patch-cpp-src-Ice-Service.cpp
Normal file
32
devel/ice/files/patch-cpp-src-Ice-Service.cpp
Normal file
@ -0,0 +1,32 @@
|
||||
--- cpp.orig/src/Ice/Service.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/Ice/Service.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -2136,17 +2136,26 @@
|
||||
//
|
||||
// Associate stdin, stdout and stderr with /dev/null.
|
||||
//
|
||||
+#ifndef NDEBUG
|
||||
int fd;
|
||||
- fd = open("/dev/null", O_RDWR);
|
||||
+ fd =
|
||||
+#endif
|
||||
+ open("/dev/null", O_RDWR);
|
||||
assert(fd == 0);
|
||||
if(stdOut.empty())
|
||||
{
|
||||
- fd = dup2(0, 1);
|
||||
+#ifndef NDEBUG
|
||||
+ fd =
|
||||
+#endif
|
||||
+ dup2(0, 1);
|
||||
assert(fd == 1);
|
||||
}
|
||||
if(stdErr.empty())
|
||||
{
|
||||
- fd = dup2(1, 2);
|
||||
+#ifndef NDEBUG
|
||||
+ fd =
|
||||
+#endif
|
||||
+ dup2(1, 2);
|
||||
assert(fd == 2);
|
||||
}
|
||||
}
|
24
devel/ice/files/patch-cpp-src-Ice-Stream.cpp
Normal file
24
devel/ice/files/patch-cpp-src-Ice-Stream.cpp
Normal file
@ -0,0 +1,24 @@
|
||||
--- cpp.orig/src/Ice/Stream.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/Ice/Stream.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -8,10 +8,19 @@
|
||||
// **********************************************************************
|
||||
|
||||
#include <Ice/Stream.h>
|
||||
+#include <Ice/LocalException.h>
|
||||
|
||||
using namespace std;
|
||||
using namespace Ice;
|
||||
using namespace IceInternal;
|
||||
|
||||
-IceUtil::Shared* IceInternal::upCast(InputStream* p) { return p; }
|
||||
-IceUtil::Shared* IceInternal::upCast(OutputStream* p) { return p; }
|
||||
+IceUtil::Shared* Ice::upCast(InputStream* p) { return p; }
|
||||
+IceUtil::Shared* Ice::upCast(OutputStream* p) { return p; }
|
||||
+
|
||||
+namespace IceInternal
|
||||
+{
|
||||
+ void delegateThrowMarshalException(const char* file, int line , const ::std::string& message)
|
||||
+ {
|
||||
+ throw Ice::MarshalException(file, line, message);
|
||||
+ }
|
||||
+}
|
@ -0,0 +1,16 @@
|
||||
--- cpp.orig/src/IceGrid/AdminCallbackRouter.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceGrid/AdminCallbackRouter.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -49,7 +49,12 @@
|
||||
#ifndef NDEBUG
|
||||
bool inserted =
|
||||
#endif
|
||||
- _categoryToConnection.insert(map<string, ConnectionPtr>::value_type(category, con)).second;
|
||||
+ _categoryToConnection.insert(map<string, ConnectionPtr>::value_type(category, con))
|
||||
+#ifndef NDEBUG
|
||||
+ .second
|
||||
+#endif
|
||||
+ ;
|
||||
+
|
||||
|
||||
assert(inserted == true);
|
||||
}
|
35
devel/ice/files/patch-cpp-src-IceGrid-DescriptorHelper.cpp
Normal file
35
devel/ice/files/patch-cpp-src-IceGrid-DescriptorHelper.cpp
Normal file
@ -0,0 +1,35 @@
|
||||
--- cpp.orig/src/IceGrid/DescriptorHelper.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceGrid/DescriptorHelper.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -198,15 +198,6 @@
|
||||
return result;
|
||||
}
|
||||
|
||||
-template<typename Dict> Dict
|
||||
-getDictUpdatedElts(const Dict& ldict, const Dict& rdict)
|
||||
-{
|
||||
-#if defined(_MSC_VER) && (_MSC_VER < 1300)
|
||||
- return getDictUpdatedEltsWithEq(ldict, rdict, equal_to<Dict::mapped_type>());
|
||||
-#else
|
||||
- return getDictUpdatedEltsWithEq(ldict, rdict, equal_to<typename Dict::mapped_type>());
|
||||
-#endif
|
||||
-}
|
||||
|
||||
template<typename EqFunc, typename Dict> Dict
|
||||
getDictUpdatedEltsWithEq(const Dict& ldict, const Dict& rdict, EqFunc eq)
|
||||
@@ -223,6 +214,16 @@
|
||||
return result;
|
||||
}
|
||||
|
||||
+template<typename Dict> Dict
|
||||
+getDictUpdatedElts(const Dict& ldict, const Dict& rdict)
|
||||
+{
|
||||
+#if defined(_MSC_VER) && (_MSC_VER < 1300)
|
||||
+ return getDictUpdatedEltsWithEq(ldict, rdict, equal_to<Dict::mapped_type>());
|
||||
+#else
|
||||
+ return getDictUpdatedEltsWithEq(ldict, rdict, equal_to<typename Dict::mapped_type>());
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
template <typename Dict> Ice::StringSeq
|
||||
getDictRemovedElts(const Dict& ldict, const Dict& rdict)
|
||||
{
|
20
devel/ice/files/patch-cpp-src-IceGrid-Internal.ice
Normal file
20
devel/ice/files/patch-cpp-src-IceGrid-Internal.ice
Normal file
@ -0,0 +1,20 @@
|
||||
--- cpp.orig/src/IceGrid/Internal.ice 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceGrid/Internal.ice 2012-03-04 19:55:44.000000000 +0100
|
||||
@@ -702,7 +702,7 @@
|
||||
*
|
||||
**/
|
||||
NodeSession* registerNode(InternalNodeInfo info, Node* prx, LoadInfo loadInf)
|
||||
- throws NodeActiveException;
|
||||
+ throws NodeActiveException, PermissionDeniedException;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -721,7 +721,7 @@
|
||||
*
|
||||
**/
|
||||
ReplicaSession* registerReplica(InternalReplicaInfo info, InternalRegistry* prx)
|
||||
- throws ReplicaActiveException;
|
||||
+ throws ReplicaActiveException, PermissionDeniedException;
|
||||
|
||||
/**
|
||||
*
|
136
devel/ice/files/patch-cpp-src-IceGrid-InternalRegistryI.cpp
Normal file
136
devel/ice/files/patch-cpp-src-IceGrid-InternalRegistryI.cpp
Normal file
@ -0,0 +1,136 @@
|
||||
--- cpp.orig/src/IceGrid/InternalRegistryI.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceGrid/InternalRegistryI.cpp 2012-03-04 19:55:44.000000000 +0100
|
||||
@@ -19,6 +19,8 @@
|
||||
#include <IceGrid/ReplicaSessionI.h>
|
||||
#include <IceGrid/ReplicaSessionManager.h>
|
||||
#include <IceGrid/FileCache.h>
|
||||
+#include <IceSSL/IceSSL.h>
|
||||
+#include <IceSSL/RFC2253.h>
|
||||
|
||||
using namespace std;
|
||||
using namespace IceGrid;
|
||||
@@ -38,6 +40,8 @@
|
||||
Ice::PropertiesPtr properties = database->getCommunicator()->getProperties();
|
||||
_nodeSessionTimeout = properties->getPropertyAsIntWithDefault("IceGrid.Registry.NodeSessionTimeout", 30);
|
||||
_replicaSessionTimeout = properties->getPropertyAsIntWithDefault("IceGrid.Registry.ReplicaSessionTimeout", 30);
|
||||
+ _requireNodeCertCN = properties->getPropertyAsIntWithDefault("IceGrid.Registry.RequireNodeCertCN", 0);
|
||||
+ _requireReplicaCertCN = properties->getPropertyAsIntWithDefault("IceGrid.Registry.RequireReplicaCertCN", 0);
|
||||
}
|
||||
|
||||
InternalRegistryI::~InternalRegistryI()
|
||||
@@ -50,7 +54,56 @@
|
||||
const LoadInfo& load,
|
||||
const Ice::Current& current)
|
||||
{
|
||||
- const Ice::LoggerPtr logger = _database->getTraceLevels()->logger;
|
||||
+ const TraceLevelsPtr traceLevels = _database->getTraceLevels();
|
||||
+ const Ice::LoggerPtr logger = traceLevels->logger;
|
||||
+ if(!info || !node)
|
||||
+ {
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ if(_requireNodeCertCN)
|
||||
+ {
|
||||
+ try
|
||||
+ {
|
||||
+ IceSSL::ConnectionInfoPtr sslConnInfo = IceSSL::ConnectionInfoPtr::dynamicCast(current.con->getInfo());
|
||||
+ if(sslConnInfo)
|
||||
+ {
|
||||
+ if (sslConnInfo->certs.empty() ||
|
||||
+ !IceSSL::Certificate::decode(sslConnInfo->certs[0])->getSubjectDN().match("CN=" + info->name))
|
||||
+ {
|
||||
+ if(traceLevels->node > 0)
|
||||
+ {
|
||||
+ Ice::Trace out(logger, traceLevels->nodeCat);
|
||||
+ out << "certificate CN doesn't match node name `" << info->name << "'";
|
||||
+ }
|
||||
+ throw PermissionDeniedException("certificate CN doesn't match node name `" + info->name + "'");
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ if(traceLevels->node > 0)
|
||||
+ {
|
||||
+ Ice::Trace out(logger, traceLevels->nodeCat);
|
||||
+ out << "node certificate for `" << info->name << "' is required to connect to this registry";
|
||||
+ }
|
||||
+ throw PermissionDeniedException("node certificate is required to connect to this registry");
|
||||
+ }
|
||||
+ }
|
||||
+ catch(const PermissionDeniedException& ex)
|
||||
+ {
|
||||
+ throw ex;
|
||||
+ }
|
||||
+ catch(const IceUtil::Exception&)
|
||||
+ {
|
||||
+ if(traceLevels->node > 0)
|
||||
+ {
|
||||
+ Ice::Trace out(logger, traceLevels->nodeCat);
|
||||
+ out << "unexpected exception while verifying certificate for node `" << info->name << "'";
|
||||
+ }
|
||||
+ throw PermissionDeniedException("unable to verify certificate for node `" + info->name + "'");
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
try
|
||||
{
|
||||
NodeSessionIPtr session = new NodeSessionI(_database, node, info, _nodeSessionTimeout, load);
|
||||
@@ -68,7 +121,56 @@
|
||||
const InternalRegistryPrx& prx,
|
||||
const Ice::Current& current)
|
||||
{
|
||||
- const Ice::LoggerPtr logger = _database->getTraceLevels()->logger;
|
||||
+ const TraceLevelsPtr traceLevels = _database->getTraceLevels();
|
||||
+ const Ice::LoggerPtr logger = traceLevels->logger;
|
||||
+ if(!info || !prx)
|
||||
+ {
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ if(_requireReplicaCertCN)
|
||||
+ {
|
||||
+ try
|
||||
+ {
|
||||
+ IceSSL::ConnectionInfoPtr sslConnInfo = IceSSL::ConnectionInfoPtr::dynamicCast(current.con->getInfo());
|
||||
+ if(sslConnInfo)
|
||||
+ {
|
||||
+ if (sslConnInfo->certs.empty() ||
|
||||
+ !IceSSL::Certificate::decode(sslConnInfo->certs[0])->getSubjectDN().match("CN=" + info->name))
|
||||
+ {
|
||||
+ if(traceLevels->replica > 0)
|
||||
+ {
|
||||
+ Ice::Trace out(logger, traceLevels->replicaCat);
|
||||
+ out << "certificate CN doesn't match replica name `" << info->name << "'";
|
||||
+ }
|
||||
+ throw PermissionDeniedException("certificate CN doesn't match replica name `" + info->name + "'");
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ if(traceLevels->replica > 0)
|
||||
+ {
|
||||
+ Ice::Trace out(logger, traceLevels->replicaCat);
|
||||
+ out << "replica certificate for `" << info->name << "' is required to connect to this registry";
|
||||
+ }
|
||||
+ throw PermissionDeniedException("replica certificate is required to connect to this registry");
|
||||
+ }
|
||||
+ }
|
||||
+ catch(const PermissionDeniedException& ex)
|
||||
+ {
|
||||
+ throw ex;
|
||||
+ }
|
||||
+ catch(const IceUtil::Exception&)
|
||||
+ {
|
||||
+ if(traceLevels->replica > 0)
|
||||
+ {
|
||||
+ Ice::Trace out(logger, traceLevels->replicaCat);
|
||||
+ out << "unexpected exception while verifying certificate for replica `" << info->name << "'";
|
||||
+ }
|
||||
+ throw PermissionDeniedException("unable to verify certificate for replica `" + info->name + "'");
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
try
|
||||
{
|
||||
ReplicaSessionIPtr s = new ReplicaSessionI(_database, _wellKnownObjects, info, prx, _replicaSessionTimeout);
|
11
devel/ice/files/patch-cpp-src-IceGrid-InternalRegistryI.h
Normal file
11
devel/ice/files/patch-cpp-src-IceGrid-InternalRegistryI.h
Normal file
@ -0,0 +1,11 @@
|
||||
--- cpp.orig/src/IceGrid/InternalRegistryI.h 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceGrid/InternalRegistryI.h 2012-03-04 19:55:44.000000000 +0100
|
||||
@@ -68,6 +68,8 @@
|
||||
ReplicaSessionManager& _session;
|
||||
int _nodeSessionTimeout;
|
||||
int _replicaSessionTimeout;
|
||||
+ bool _requireNodeCertCN;
|
||||
+ bool _requireReplicaCertCN;
|
||||
};
|
||||
|
||||
};
|
17
devel/ice/files/patch-cpp-src-IceGrid-NodeSessionManager.cpp
Normal file
17
devel/ice/files/patch-cpp-src-IceGrid-NodeSessionManager.cpp
Normal file
@ -0,0 +1,17 @@
|
||||
--- cpp.orig/src/IceGrid/NodeSessionManager.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceGrid/NodeSessionManager.cpp 2012-03-04 19:55:44.000000000 +0100
|
||||
@@ -110,6 +110,14 @@
|
||||
}
|
||||
exception.reset(ex.ice_clone());
|
||||
}
|
||||
+ catch(const PermissionDeniedException& ex)
|
||||
+ {
|
||||
+ if(traceLevels)
|
||||
+ {
|
||||
+ traceLevels->logger->error("connection to the the registry `" + _name + "' was denied:\n" + ex.reason);
|
||||
+ }
|
||||
+ exception.reset(ex.ice_clone());
|
||||
+ }
|
||||
catch(const Ice::Exception& ex)
|
||||
{
|
||||
exception.reset(ex.ice_clone());
|
11
devel/ice/files/patch-cpp-src-IceGrid-ReplicaCache.cpp
Normal file
11
devel/ice/files/patch-cpp-src-IceGrid-ReplicaCache.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
--- cpp.orig/src/IceGrid/ReplicaCache.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceGrid/ReplicaCache.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -40,7 +40,7 @@
|
||||
Lock sync(*this);
|
||||
|
||||
ReplicaEntryPtr entry;
|
||||
- while(entry = getImpl(name))
|
||||
+ while((entry = getImpl(name)))
|
||||
{
|
||||
ReplicaSessionIPtr session = entry->getSession();
|
||||
if(session->isDestroyed())
|
@ -0,0 +1,17 @@
|
||||
--- cpp.orig/src/IceGrid/ReplicaSessionManager.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceGrid/ReplicaSessionManager.cpp 2012-03-04 19:55:44.000000000 +0100
|
||||
@@ -500,6 +500,14 @@
|
||||
}
|
||||
exception.reset(ex.ice_clone());
|
||||
}
|
||||
+ catch(const PermissionDeniedException& ex)
|
||||
+ {
|
||||
+ if(_traceLevels)
|
||||
+ {
|
||||
+ _traceLevels->logger->error("connection to the the registry `" + _name + "' was denied:\n" + ex.reason);
|
||||
+ }
|
||||
+ exception.reset(ex.ice_clone());
|
||||
+ }
|
||||
catch(const Ice::Exception& ex)
|
||||
{
|
||||
exception.reset(ex.ice_clone());
|
11
devel/ice/files/patch-cpp-src-IceGrid-SessionI.h
Normal file
11
devel/ice/files/patch-cpp-src-IceGrid-SessionI.h
Normal file
@ -0,0 +1,11 @@
|
||||
--- cpp.orig/src/IceGrid/SessionI.h 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceGrid/SessionI.h 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -35,7 +35,7 @@
|
||||
class SessionI;
|
||||
typedef IceUtil::Handle<SessionI> SessionIPtr;
|
||||
|
||||
-class BaseSessionI : virtual Ice::Object, public IceUtil::Mutex
|
||||
+class BaseSessionI : virtual public Ice::Object, public IceUtil::Mutex
|
||||
{
|
||||
public:
|
||||
|
11
devel/ice/files/patch-cpp-src-IceSSL-Instance.cpp
Normal file
11
devel/ice/files/patch-cpp-src-IceSSL-Instance.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
--- cpp.orig/src/IceSSL/Instance.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceSSL/Instance.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -38,7 +38,7 @@
|
||||
using namespace Ice;
|
||||
using namespace IceSSL;
|
||||
|
||||
-IceUtil::Shared* IceInternal::upCast(IceSSL::Instance* p) { return p; }
|
||||
+IceUtil::Shared* IceSSL::upCast(IceSSL::Instance* p) { return p; }
|
||||
|
||||
namespace
|
||||
{
|
17
devel/ice/files/patch-cpp-src-IceSSL-InstanceF.h
Normal file
17
devel/ice/files/patch-cpp-src-IceSSL-InstanceF.h
Normal file
@ -0,0 +1,17 @@
|
||||
--- cpp.orig/src/IceSSL/InstanceF.h 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceSSL/InstanceF.h 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -18,13 +18,13 @@
|
||||
{
|
||||
|
||||
class Instance;
|
||||
+IceUtil::Shared* upCast(IceSSL::Instance*);
|
||||
|
||||
}
|
||||
|
||||
namespace IceInternal
|
||||
{
|
||||
|
||||
-IceUtil::Shared* upCast(IceSSL::Instance*);
|
||||
|
||||
}
|
||||
|
11
devel/ice/files/patch-cpp-src-IceSSL-TrustManager.cpp
Normal file
11
devel/ice/files/patch-cpp-src-IceSSL-TrustManager.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
--- cpp.orig/src/IceSSL/TrustManager.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceSSL/TrustManager.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -20,7 +20,7 @@
|
||||
using namespace std;
|
||||
using namespace IceSSL;
|
||||
|
||||
-IceUtil::Shared* IceInternal::upCast(IceSSL::TrustManager* p) { return p; }
|
||||
+IceUtil::Shared* IceSSL::upCast(IceSSL::TrustManager* p) { return p; }
|
||||
|
||||
TrustManager::TrustManager(const Ice::CommunicatorPtr& communicator) :
|
||||
_communicator(communicator)
|
17
devel/ice/files/patch-cpp-src-IceSSL-TrustManagerF.h
Normal file
17
devel/ice/files/patch-cpp-src-IceSSL-TrustManagerF.h
Normal file
@ -0,0 +1,17 @@
|
||||
--- cpp.orig/src/IceSSL/TrustManagerF.h 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceSSL/TrustManagerF.h 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -18,13 +18,13 @@
|
||||
{
|
||||
|
||||
class TrustManager;
|
||||
+IceUtil::Shared* upCast(IceSSL::TrustManager*);
|
||||
|
||||
}
|
||||
|
||||
namespace IceInternal
|
||||
{
|
||||
|
||||
-IceUtil::Shared* upCast(IceSSL::TrustManager*);
|
||||
|
||||
}
|
||||
|
11
devel/ice/files/patch-cpp-src-IceSSL-Util.cpp
Normal file
11
devel/ice/files/patch-cpp-src-IceSSL-Util.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
--- cpp.orig/src/IceSSL/Util.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceSSL/Util.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -175,7 +175,7 @@
|
||||
return dh;
|
||||
}
|
||||
|
||||
-IceUtil::Shared* IceInternal::upCast(IceSSL::DHParams* p) { return p; }
|
||||
+IceUtil::Shared* IceSSL::upCast(IceSSL::DHParams* p) { return p; }
|
||||
|
||||
IceSSL::DHParams::DHParams() :
|
||||
_dh512(0), _dh1024(0), _dh2048(0), _dh4096(0)
|
17
devel/ice/files/patch-cpp-src-IceSSL-UtilF.h
Normal file
17
devel/ice/files/patch-cpp-src-IceSSL-UtilF.h
Normal file
@ -0,0 +1,17 @@
|
||||
--- cpp.orig/src/IceSSL/UtilF.h 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceSSL/UtilF.h 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -21,13 +21,13 @@
|
||||
{
|
||||
|
||||
class DHParams;
|
||||
+IceUtil::Shared* upCast(IceSSL::DHParams*);
|
||||
|
||||
}
|
||||
|
||||
namespace IceInternal
|
||||
{
|
||||
|
||||
-IceUtil::Shared* upCast(IceSSL::DHParams*);
|
||||
|
||||
}
|
||||
|
14
devel/ice/files/patch-cpp-src-IceStorm-NodeI.cpp
Normal file
14
devel/ice/files/patch-cpp-src-IceStorm-NodeI.cpp
Normal file
@ -0,0 +1,14 @@
|
||||
--- cpp.orig/src/IceStorm/NodeI.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceStorm/NodeI.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -18,11 +18,6 @@
|
||||
namespace
|
||||
{
|
||||
|
||||
-bool operator==(const GroupNodeInfo& info, int id)
|
||||
-{
|
||||
- return info.id == id;
|
||||
-}
|
||||
-
|
||||
class CheckTask : public IceUtil::TimerTask
|
||||
{
|
||||
const NodeIPtr _node;
|
15
devel/ice/files/patch-cpp-src-IceUtil-Cond.cpp
Normal file
15
devel/ice/files/patch-cpp-src-IceUtil-Cond.cpp
Normal file
@ -0,0 +1,15 @@
|
||||
--- cpp.orig/src/IceUtil/Cond.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceUtil/Cond.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -330,8 +330,11 @@
|
||||
|
||||
IceUtil::Cond::~Cond()
|
||||
{
|
||||
+#ifndef NDEBUG
|
||||
int rc = 0;
|
||||
- rc = pthread_cond_destroy(&_cond);
|
||||
+ rc =
|
||||
+#endif
|
||||
+ pthread_cond_destroy(&_cond);
|
||||
assert(rc == 0);
|
||||
}
|
||||
|
21
devel/ice/files/patch-cpp-src-IceUtil-CountDownLatch.cpp
Normal file
21
devel/ice/files/patch-cpp-src-IceUtil-CountDownLatch.cpp
Normal file
@ -0,0 +1,21 @@
|
||||
--- cpp.orig/src/IceUtil/CountDownLatch.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceUtil/CountDownLatch.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -44,10 +44,16 @@
|
||||
#ifdef _WIN32
|
||||
CloseHandle(_event);
|
||||
#else
|
||||
+#ifndef NDEBUG
|
||||
int rc = 0;
|
||||
- rc = pthread_mutex_destroy(&_mutex);
|
||||
+ rc =
|
||||
+#endif
|
||||
+ pthread_mutex_destroy(&_mutex);
|
||||
assert(rc == 0);
|
||||
- rc = pthread_cond_destroy(&_cond);
|
||||
+#ifndef NDEBUG
|
||||
+ rc =
|
||||
+#endif
|
||||
+ pthread_cond_destroy(&_cond);
|
||||
assert(rc == 0);
|
||||
#endif
|
||||
}
|
49
devel/ice/files/patch-cpp-src-IceUtil-CtrlCHandler.cpp
Normal file
49
devel/ice/files/patch-cpp-src-IceUtil-CtrlCHandler.cpp
Normal file
@ -0,0 +1,49 @@
|
||||
--- cpp.orig/src/IceUtil/CtrlCHandler.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceUtil/CtrlCHandler.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -219,29 +219,41 @@
|
||||
sigaddset(&ctrlCLikeSignals, SIGHUP);
|
||||
sigaddset(&ctrlCLikeSignals, SIGINT);
|
||||
sigaddset(&ctrlCLikeSignals, SIGTERM);
|
||||
- int rc = pthread_sigmask(SIG_BLOCK, &ctrlCLikeSignals, 0);
|
||||
+#ifndef NDEBUG
|
||||
+ int rc =
|
||||
+#endif
|
||||
+ pthread_sigmask(SIG_BLOCK, &ctrlCLikeSignals, 0);
|
||||
assert(rc == 0);
|
||||
|
||||
// Joinable thread
|
||||
- rc = pthread_create(&_tid, 0, sigwaitThread, 0);
|
||||
+#ifndef NDEBUG
|
||||
+ rc =
|
||||
+#endif
|
||||
+ pthread_create(&_tid, 0, sigwaitThread, 0);
|
||||
assert(rc == 0);
|
||||
}
|
||||
}
|
||||
|
||||
CtrlCHandler::~CtrlCHandler()
|
||||
{
|
||||
- int rc = pthread_cancel(_tid);
|
||||
+#ifndef NDEBUG
|
||||
+ int rc =
|
||||
+#endif
|
||||
+ pthread_cancel(_tid);
|
||||
assert(rc == 0);
|
||||
#if defined(__APPLE__)
|
||||
//
|
||||
// WORKAROUND: sigwait isn't a cancellation point on MacOS X, see
|
||||
// comment in sigwaitThread
|
||||
//
|
||||
- rc = pthread_kill(_tid, SIGTERM);
|
||||
+ pthread_kill(_tid, SIGTERM);
|
||||
//assert(rc == 0); For some reaosns, this assert is sometime triggered
|
||||
#endif
|
||||
void* status = 0;
|
||||
- rc = pthread_join(_tid, &status);
|
||||
+#ifndef NDEBUG
|
||||
+ rc =
|
||||
+#endif
|
||||
+ pthread_join(_tid, &status);
|
||||
assert(rc == 0);
|
||||
#if !defined(__APPLE__)
|
||||
assert(status == PTHREAD_CANCELED);
|
13
devel/ice/files/patch-cpp-src-IceUtil-FileUtil.cpp
Normal file
13
devel/ice/files/patch-cpp-src-IceUtil-FileUtil.cpp
Normal file
@ -0,0 +1,13 @@
|
||||
--- cpp.orig/src/IceUtil/FileUtil.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceUtil/FileUtil.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -26,6 +26,10 @@
|
||||
# include <dir.h>
|
||||
#endif
|
||||
|
||||
+#ifdef __FreeBSD__
|
||||
+# include <unistd.h>
|
||||
+#endif
|
||||
+
|
||||
using namespace std;
|
||||
|
||||
//
|
28
devel/ice/files/patch-cpp-src-IceUtil-RecMutex.cpp
Normal file
28
devel/ice/files/patch-cpp-src-IceUtil-RecMutex.cpp
Normal file
@ -0,0 +1,28 @@
|
||||
--- cpp.orig/src/IceUtil/RecMutex.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/IceUtil/RecMutex.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -148,8 +148,11 @@
|
||||
IceUtil::RecMutex::~RecMutex()
|
||||
{
|
||||
assert(_count == 0);
|
||||
+#ifndef NDEBUG
|
||||
int rc = 0;
|
||||
- rc = pthread_mutex_destroy(&_mutex);
|
||||
+ rc =
|
||||
+#endif
|
||||
+ pthread_mutex_destroy(&_mutex);
|
||||
assert(rc == 0);
|
||||
}
|
||||
|
||||
@@ -196,8 +199,11 @@
|
||||
{
|
||||
if(--_count == 0)
|
||||
{
|
||||
+#ifndef NDEBUG
|
||||
int rc = 0; // Prevent warnings when NDEBUG is defined.
|
||||
- rc = pthread_mutex_unlock(&_mutex);
|
||||
+ rc =
|
||||
+#endif
|
||||
+ pthread_mutex_unlock(&_mutex);
|
||||
assert(rc == 0);
|
||||
}
|
||||
}
|
20
devel/ice/files/patch-cpp-src-Slice-CPlusPlusUtil.cpp
Normal file
20
devel/ice/files/patch-cpp-src-Slice-CPlusPlusUtil.cpp
Normal file
@ -0,0 +1,20 @@
|
||||
--- cpp.orig/src/Slice/CPlusPlusUtil.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/Slice/CPlusPlusUtil.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -631,7 +631,7 @@
|
||||
string scope = fixKwd(cl->scope());
|
||||
if(marshal)
|
||||
{
|
||||
- out << nl << stream << deref << "write(::Ice::ObjectPtr(::IceInternal::upCast(" << fixedParam
|
||||
+ out << nl << stream << deref << "write(::Ice::ObjectPtr(" << scope << "upCast(" << fixedParam
|
||||
<< ".get())));";
|
||||
}
|
||||
else
|
||||
@@ -649,7 +649,7 @@
|
||||
string scope = fixKwd(px->_class()->scope());
|
||||
if(marshal)
|
||||
{
|
||||
- out << nl << stream << deref << "write(::Ice::ObjectPrx(::IceInternal::upCast(" << fixedParam
|
||||
+ out << nl << stream << deref << "write(::Ice::ObjectPrx(::IceProxy" << scope << "upCast(" << fixedParam
|
||||
<< ".get())));";
|
||||
}
|
||||
else
|
13
devel/ice/files/patch-cpp-src-Slice-FileTracker.cpp
Normal file
13
devel/ice/files/patch-cpp-src-Slice-FileTracker.cpp
Normal file
@ -0,0 +1,13 @@
|
||||
--- cpp.orig/src/Slice/FileTracker.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/Slice/FileTracker.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -17,6 +17,10 @@
|
||||
# include <direct.h>
|
||||
#endif
|
||||
|
||||
+#ifdef __FreeBSD__
|
||||
+# include <unistd.h>
|
||||
+#endif
|
||||
+
|
||||
using namespace std;
|
||||
|
||||
Slice::FileException::FileException(const char* file, int line, const string& r) :
|
111
devel/ice/files/patch-cpp-src-slice2cpp-Gen.cpp
Normal file
111
devel/ice/files/patch-cpp-src-slice2cpp-Gen.cpp
Normal file
@ -0,0 +1,111 @@
|
||||
--- cpp.orig/src/slice2cpp/Gen.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/slice2cpp/Gen.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -1944,8 +1944,10 @@
|
||||
}
|
||||
|
||||
string name = fixKwd(p->name());
|
||||
+ string scoped = fixKwd(p->scoped());
|
||||
|
||||
H << sp << nl << "class " << name << ';';
|
||||
+ H << nl << _dllExport << "::IceProxy::Ice::Object* upCast(::IceProxy" << scoped << "*);";
|
||||
}
|
||||
|
||||
Slice::Gen::ProxyVisitor::ProxyVisitor(Output& h, Output& c, const string& dllExport) :
|
||||
@@ -3691,10 +3693,22 @@
|
||||
Slice::Gen::ObjectDeclVisitor::visitClassDecl(const ClassDeclPtr& p)
|
||||
{
|
||||
string name = fixKwd(p->name());
|
||||
+ string scoped = fixKwd(p->scoped());
|
||||
|
||||
H << sp << nl << "class " << name << ';';
|
||||
H << nl << "bool operator==(const " << name << "&, const " << name << "&);";
|
||||
H << nl << "bool operator<(const " << name << "&, const " << name << "&);";
|
||||
+
|
||||
+ H << sp;
|
||||
+
|
||||
+ if(!p->isLocal())
|
||||
+ {
|
||||
+ H << nl << _dllExport << "::Ice::Object* upCast(" << scoped << "*);";
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ H << nl << _dllExport << "::Ice::LocalObject* upCast(" << scoped << "*);";
|
||||
+ }
|
||||
}
|
||||
|
||||
void
|
||||
@@ -4922,13 +4936,13 @@
|
||||
{
|
||||
if((BuiltinPtr::dynamicCast(p) && BuiltinPtr::dynamicCast(p)->kind() == Builtin::KindObject)
|
||||
|| ClassDeclPtr::dynamicCast(p))
|
||||
- {
|
||||
- C << nl << "if(" << prefix << name << ')';
|
||||
+ { C << nl << "if(" << prefix << name << ')';
|
||||
C << sb;
|
||||
ClassDeclPtr decl = ClassDeclPtr::dynamicCast(p);
|
||||
if(decl)
|
||||
{
|
||||
- C << nl << "::IceInternal::upCast(" << prefix << name << ".get())->__addObject(_c);";
|
||||
+ string scope = fixKwd(decl->scope());
|
||||
+ C << nl << scope << "upCast(" << prefix << name << ".get())->__addObject(_c);";
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -4991,9 +5005,10 @@
|
||||
ClassDeclPtr decl = ClassDeclPtr::dynamicCast(p);
|
||||
if(decl)
|
||||
{
|
||||
- C << nl << "if(" << "::IceInternal::upCast(" << prefix << name << ".get())->__usesClasses())";
|
||||
+ string scope = fixKwd(decl->scope());
|
||||
+ C << nl << "if(" << scope << "upCast(" << prefix << name << ".get())->__usesClasses())";
|
||||
C << sb;
|
||||
- C << nl << "::IceInternal::upCast(" << prefix << name << ".get())->__decRefUnsafe();";
|
||||
+ C << nl << scope << "upCast(" << prefix << name << ".get())->__decRefUnsafe();";
|
||||
C << nl << prefix << name << ".__clearHandleUnsafe();";
|
||||
|
||||
}
|
||||
@@ -5629,40 +5644,30 @@
|
||||
{
|
||||
string scoped = fixKwd(p->scoped());
|
||||
|
||||
- H << sp;
|
||||
-
|
||||
- if(!p->isLocal())
|
||||
- {
|
||||
- H << nl << _dllExport << "::Ice::Object* upCast(" << scoped << "*);";
|
||||
- H << nl << _dllExport << "::IceProxy::Ice::Object* upCast(::IceProxy" << scoped << "*);";
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- H << nl << _dllExport << "::Ice::LocalObject* upCast(" << scoped << "*);";
|
||||
- }
|
||||
}
|
||||
|
||||
bool
|
||||
Slice::Gen::IceInternalVisitor::visitClassDefStart(const ClassDefPtr& p)
|
||||
{
|
||||
string scoped = fixKwd(p->scoped());
|
||||
+ string scope = fixKwd(p->scope());
|
||||
|
||||
C << sp;
|
||||
if(!p->isLocal())
|
||||
{
|
||||
C << nl
|
||||
<< (_dllExport.empty() ? "" : "ICE_DECLSPEC_EXPORT ")
|
||||
- << "::Ice::Object* IceInternal::upCast(" << scoped << "* p) { return p; }";
|
||||
+ << "::Ice::Object* " << scope << "upCast(" << scoped << "* p) { return p; }";
|
||||
C << nl
|
||||
<< (_dllExport.empty() ? "" : "ICE_DECLSPEC_EXPORT ")
|
||||
- << "::IceProxy::Ice::Object* IceInternal::upCast(::IceProxy" << scoped
|
||||
+ << "::IceProxy::Ice::Object* IceProxy" << scope << "upCast(::IceProxy" << scoped
|
||||
<< "* p) { return p; }";
|
||||
}
|
||||
else
|
||||
{
|
||||
C << nl
|
||||
<< (_dllExport.empty() ? "" : "ICE_DECLSPEC_EXPORT ")
|
||||
- << "::Ice::LocalObject* IceInternal::upCast(" << scoped << "* p) { return p; }";
|
||||
+ << "::Ice::LocalObject* " << scope << "upCast(" << scoped << "* p) { return p; }";
|
||||
}
|
||||
|
||||
return true;
|
28
devel/ice/files/patch-cpp-src-slice2cs-Gen.cpp
Normal file
28
devel/ice/files/patch-cpp-src-slice2cs-Gen.cpp
Normal file
@ -0,0 +1,28 @@
|
||||
--- cpp.orig/src/slice2cs/Gen.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/slice2cs/Gen.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -1281,7 +1281,7 @@
|
||||
{
|
||||
_out << value << "F";
|
||||
}
|
||||
- else if(ep = EnumPtr::dynamicCast(type))
|
||||
+ else if((ep = EnumPtr::dynamicCast(type)))
|
||||
{
|
||||
string enumName = fixId(ep->scoped());
|
||||
string::size_type colon = value.rfind(':');
|
||||
@@ -3914,16 +3914,6 @@
|
||||
ClassDefPtr cl = ClassDefPtr::dynamicCast(p->container());
|
||||
string name = fixId(p->name(), DotNet::ICloneable, true);
|
||||
vector<string> params = getParams(p);
|
||||
- bool hasOutParams = false;
|
||||
- ParamDeclList paramList = p->parameters();
|
||||
- for(ParamDeclList::const_iterator pli = paramList.begin(); pli != paramList.end(); ++pli)
|
||||
- {
|
||||
- if((*pli)->isOutParam())
|
||||
- {
|
||||
- hasOutParams = true;
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
|
||||
_out << sp;
|
||||
|
20
devel/ice/files/patch-cpp-src-slice2java-Gen.cpp
Normal file
20
devel/ice/files/patch-cpp-src-slice2java-Gen.cpp
Normal file
@ -0,0 +1,20 @@
|
||||
--- cpp.orig/src/slice2java/Gen.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/src/slice2java/Gen.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -1246,7 +1246,7 @@
|
||||
{
|
||||
BuiltinPtr bp;
|
||||
EnumPtr ep;
|
||||
- if(bp = BuiltinPtr::dynamicCast(type))
|
||||
+ if((bp = BuiltinPtr::dynamicCast(type)))
|
||||
{
|
||||
switch(bp->kind())
|
||||
{
|
||||
@@ -1349,7 +1349,7 @@
|
||||
}
|
||||
|
||||
}
|
||||
- else if(ep = EnumPtr::dynamicCast(type))
|
||||
+ else if((ep = EnumPtr::dynamicCast(type)))
|
||||
{
|
||||
string val = value;
|
||||
string::size_type pos = val.rfind(':');
|
43
devel/ice/files/patch-cpp-test-Glacier2-ssl-Server.cpp
Normal file
43
devel/ice/files/patch-cpp-test-Glacier2-ssl-Server.cpp
Normal file
@ -0,0 +1,43 @@
|
||||
--- cpp.orig/test/Glacier2/ssl/Server.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/test/Glacier2/ssl/Server.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -31,9 +31,15 @@
|
||||
test(ctx["_con.type"] == "ssl");
|
||||
test(ctx["_con.localPort"] == "12348");
|
||||
}
|
||||
- test(ctx["_con.localAddress"] == "127.0.0.1");
|
||||
+ if (!inFreeBSDJail())
|
||||
+ {
|
||||
+ test(ctx["_con.localAddress"] == "127.0.0.1");
|
||||
+ }
|
||||
test(ctx["_con.remotePort"] != "");
|
||||
- test(ctx["_con.remoteAddress"] == "127.0.0.1");
|
||||
+ if (!inFreeBSDJail())
|
||||
+ {
|
||||
+ test(ctx["_con.remoteAddress"] == "127.0.0.1");
|
||||
+ }
|
||||
}
|
||||
|
||||
}
|
||||
@@ -99,7 +105,7 @@
|
||||
}
|
||||
|
||||
virtual void
|
||||
- ice_ping(const Ice::Current& current)
|
||||
+ ice_ping(const Ice::Current& current) const
|
||||
{
|
||||
testContext(_ssl, current.ctx);
|
||||
}
|
||||
@@ -133,8 +139,11 @@
|
||||
{
|
||||
testContext(true, current.ctx);
|
||||
|
||||
- test(info.remoteHost == "127.0.0.1");
|
||||
- test(info.localHost == "127.0.0.1");
|
||||
+ if (!inFreeBSDJail())
|
||||
+ {
|
||||
+ test(info.remoteHost == "127.0.0.1");
|
||||
+ test(info.localHost == "127.0.0.1");
|
||||
+ }
|
||||
test(info.localPort == 12348);
|
||||
|
||||
try
|
11
devel/ice/files/patch-cpp-test-Ice-background-EndpointI.h
Normal file
11
devel/ice/files/patch-cpp-test-Ice-background-EndpointI.h
Normal file
@ -0,0 +1,11 @@
|
||||
--- cpp.orig/test/Ice/background/EndpointI.h 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/test/Ice/background/EndpointI.h 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
virtual Ice::Int hashInit() const;
|
||||
#if !defined(_MSC_VER) || _MSC_VER > 1300
|
||||
- using IceInternal::EndpointI::connectors;
|
||||
+ using ::IceInternal::EndpointI::connectors;
|
||||
#endif
|
||||
|
||||
private:
|
32
devel/ice/files/patch-cpp-test-Ice-custom-AllTests.cpp
Normal file
32
devel/ice/files/patch-cpp-test-Ice-custom-AllTests.cpp
Normal file
@ -0,0 +1,32 @@
|
||||
--- cpp.orig/test/Ice/custom/AllTests.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/test/Ice/custom/AllTests.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -1384,7 +1384,8 @@
|
||||
const ::Test::ClassStructSeq& seq,
|
||||
const InParamPtr& cookie)
|
||||
{
|
||||
- pair< ::Test::ClassStructPtr, ::Test::ClassStructSeq> in = getIn(in, cookie);
|
||||
+ pair< ::Test::ClassStructPtr, ::Test::ClassStructSeq> in;
|
||||
+ in = getIn(in, cookie);
|
||||
test(ret == in.first);
|
||||
test(cs1 == in.first);
|
||||
test(seq == in.second);
|
||||
@@ -1432,7 +1433,8 @@
|
||||
|
||||
void throwExcept1(const Ice::AsyncResultPtr& result)
|
||||
{
|
||||
- wstring in = getIn(in, InParamPtr::dynamicCast(result->getCookie()));
|
||||
+ wstring in;
|
||||
+ in = getIn(in, InParamPtr::dynamicCast(result->getCookie()));
|
||||
try
|
||||
{
|
||||
Test1::WstringClassPrx t = Test1::WstringClassPrx::uncheckedCast(result->getProxy());
|
||||
@@ -1451,7 +1453,8 @@
|
||||
|
||||
void throwExcept2(const Ice::AsyncResultPtr& result)
|
||||
{
|
||||
- wstring in = getIn(in, InParamPtr::dynamicCast(result->getCookie()));
|
||||
+ wstring in;
|
||||
+ in = getIn(in, InParamPtr::dynamicCast(result->getCookie()));
|
||||
try
|
||||
{
|
||||
Test2::WstringClassPrx t = Test2::WstringClassPrx::uncheckedCast(result->getProxy());
|
31
devel/ice/files/patch-cpp-test-Ice-info-AllTests.cpp
Normal file
31
devel/ice/files/patch-cpp-test-Ice-info-AllTests.cpp
Normal file
@ -0,0 +1,31 @@
|
||||
--- cpp.orig/test/Ice/info/AllTests.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/test/Ice/info/AllTests.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -141,9 +141,11 @@
|
||||
test(info->adapterName.empty());
|
||||
test(info->localPort > 0);
|
||||
test(info->remotePort == 12010);
|
||||
- test(info->remoteAddress == defaultHost);
|
||||
- test(info->localAddress == defaultHost);
|
||||
-
|
||||
+ if (!inFreeBSDJail())
|
||||
+ {
|
||||
+ test(info->remoteAddress == defaultHost);
|
||||
+ test(info->localAddress == defaultHost);
|
||||
+ }
|
||||
ostringstream os;
|
||||
|
||||
Ice::Context ctx = testIntf->getConnectionInfoAsContext();
|
||||
@@ -163,8 +165,11 @@
|
||||
test(info->adapterName.empty());
|
||||
test(info->localPort > 0);
|
||||
test(info->remotePort == 12010);
|
||||
- test(info->remoteAddress ==defaultHost);
|
||||
- test(info->localAddress == defaultHost);
|
||||
+ if (!inFreeBSDJail())
|
||||
+ {
|
||||
+ test(info->remoteAddress == defaultHost);
|
||||
+ test(info->localAddress == defaultHost);
|
||||
+ }
|
||||
}
|
||||
cout << "ok" << endl;
|
||||
|
18
devel/ice/files/patch-cpp-test-Ice-properties-run.py
Normal file
18
devel/ice/files/patch-cpp-test-Ice-properties-run.py
Normal file
@ -0,0 +1,18 @@
|
||||
--- cpp.orig/test/Ice/properties/run.py 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/test/Ice/properties/run.py 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -26,7 +26,7 @@
|
||||
#
|
||||
# Write config
|
||||
#
|
||||
-configPath = u"./config/中国_client.config"
|
||||
+configPath = u"./config/中国_client.config".encode("utf-8")
|
||||
|
||||
TestUtil.createConfig(configPath,
|
||||
["# Automatically generated by Ice test driver.",
|
||||
@@ -38,4 +38,4 @@
|
||||
TestUtil.simpleTest(client)
|
||||
|
||||
if os.path.exists(configPath):
|
||||
- os.remove(configPath)
|
||||
\ No newline at end of file
|
||||
+ os.remove(configPath)
|
13
devel/ice/files/patch-cpp-test-IceUtil-unicode-Client.cpp
Normal file
13
devel/ice/files/patch-cpp-test-IceUtil-unicode-Client.cpp
Normal file
@ -0,0 +1,13 @@
|
||||
--- cpp.orig/test/IceUtil/unicode/Client.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/test/IceUtil/unicode/Client.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -15,6 +15,10 @@
|
||||
# include <io.h>
|
||||
#endif
|
||||
|
||||
+#ifdef __FreeBSD__
|
||||
+# include <unistd.h>
|
||||
+#endif
|
||||
+
|
||||
using namespace IceUtil;
|
||||
using namespace std;
|
||||
|
20
devel/ice/files/patch-cpp-test-Slice-keyword-Client.cpp
Normal file
20
devel/ice/files/patch-cpp-test-Slice-keyword-Client.cpp
Normal file
@ -0,0 +1,20 @@
|
||||
--- cpp.orig/test/Slice/keyword/Client.cpp 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/test/Slice/keyword/Client.cpp 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -73,6 +73,9 @@
|
||||
virtual void ice_response(Ice::Int) {}
|
||||
virtual void ice_exception(const ::Ice::Exception&) {}
|
||||
};
|
||||
+
|
||||
+template<typename T>
|
||||
+void unused(T const &) { }
|
||||
|
||||
//
|
||||
// This section of the test is present to ensure that the C++ types
|
||||
@@ -86,6 +89,7 @@
|
||||
|
||||
_cpp_and::_cpp_auto b;
|
||||
b._cpp_default = 0;
|
||||
+ unused(b);
|
||||
|
||||
_cpp_and::deletePtr c = new _cpp_and::_cpp_delete();
|
||||
c->_cpp_else = "";
|
25
devel/ice/files/patch-cpp-test-include-TestCommon.h
Normal file
25
devel/ice/files/patch-cpp-test-include-TestCommon.h
Normal file
@ -0,0 +1,25 @@
|
||||
--- cpp.orig/test/include/TestCommon.h 2011-06-15 21:43:59.000000000 +0200
|
||||
+++ cpp/test/include/TestCommon.h 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -17,6 +17,22 @@
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
|
||||
+#if defined(__FreeBSD__)
|
||||
+# include <sys/types.h>
|
||||
+# include <sys/sysctl.h>
|
||||
+inline bool inFreeBSDJail()
|
||||
+{
|
||||
+ int jailed;
|
||||
+ size_t size = sizeof(jailed);
|
||||
+ return (sysctlbyname("security.jail.jailed", &jailed, &size, NULL, 0) != -1 || jailed);
|
||||
+}
|
||||
+#else
|
||||
+inline bool inFreeBSDJail()
|
||||
+{
|
||||
+ return false;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
void
|
||||
inline testFailed(const char* expr, const char* file, unsigned int line)
|
||||
{
|
44
devel/ice/files/patch-scripts-TestUtil.py
Normal file
44
devel/ice/files/patch-scripts-TestUtil.py
Normal file
@ -0,0 +1,44 @@
|
||||
--- scripts.orig/TestUtil.py 2011-06-15 21:44:00.000000000 +0200
|
||||
+++ scripts/TestUtil.py 2012-03-04 20:14:53.000000000 +0100
|
||||
@@ -74,6 +74,25 @@
|
||||
def isLinux():
|
||||
return sys.platform.startswith("linux")
|
||||
|
||||
+def isFreeBSD():
|
||||
+ return sys.platform.startswith("freebsd")
|
||||
+
|
||||
+def sysctl(key):
|
||||
+ p = subprocess.Popen("sysctl "+key, shell=1, stdout=subprocess.PIPE)
|
||||
+ try:
|
||||
+ result = p.communicate()[0].strip().split()[1]
|
||||
+ except IndexError:
|
||||
+ return 0
|
||||
+ if sys.version_info >= (3,):
|
||||
+ result = str(result, sys.stdout.encoding)
|
||||
+ try:
|
||||
+ return int(result)
|
||||
+ except ValueError:
|
||||
+ return result
|
||||
+
|
||||
+def isFreeBSDJail():
|
||||
+ return isFreeBSD() and sysctl("security.jail.jailed")
|
||||
+
|
||||
def getCppCompiler():
|
||||
compiler = ""
|
||||
if os.environ.get("CPP_COMPILER", "") != "":
|
||||
@@ -1590,7 +1609,15 @@
|
||||
if isDarwin() and "nodarwin" in config:
|
||||
print "%s*** test not supported under Darwin%s" % (prefix, suffix)
|
||||
continue
|
||||
+
|
||||
+ if isFreeBSD() and "nofreebsd" in config:
|
||||
+ print "%s*** test not supported under FreeBSD%s" % (prefix, suffix)
|
||||
+ continue
|
||||
|
||||
+ if isFreeBSDJail() and "nofreebsdjail" in config:
|
||||
+ print "%s*** test not supported within a FreeBSD Jail%s" % (prefix, suffix)
|
||||
+ continue
|
||||
+
|
||||
if not isWin32() and "win32only" in config:
|
||||
print "%s*** test only supported under Win32%s" % (prefix, suffix)
|
||||
continue
|
Loading…
Reference in New Issue
Block a user