diff options
author | Matthew Newhook <matthew@zeroc.com> | 2002-04-22 15:32:23 +0000 |
---|---|---|
committer | Matthew Newhook <matthew@zeroc.com> | 2002-04-22 15:32:23 +0000 |
commit | 30fec93a8099173baf8180fc5d7736c55cff8a5b (patch) | |
tree | 977447ff0a22c8f0710a19e26aa2f27180479b10 /cpp/src | |
parent | fix (diff) | |
download | ice-30fec93a8099173baf8180fc5d7736c55cff8a5b.tar.bz2 ice-30fec93a8099173baf8180fc5d7736c55cff8a5b.tar.xz ice-30fec93a8099173baf8180fc5d7736c55cff8a5b.zip |
Various Glacier changes.
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Glacier/.depend | 13 | ||||
-rw-r--r-- | cpp/src/Glacier/ClientBlobject.cpp | 40 | ||||
-rw-r--r-- | cpp/src/Glacier/ClientBlobject.h | 6 | ||||
-rw-r--r-- | cpp/src/Glacier/GlacierRouter.cpp | 36 | ||||
-rw-r--r-- | cpp/src/Glacier/GlacierStarter.cpp | 28 | ||||
-rw-r--r-- | cpp/src/Glacier/Makefile | 63 | ||||
-rw-r--r-- | cpp/src/Glacier/RouterI.cpp | 36 | ||||
-rw-r--r-- | cpp/src/Glacier/RouterI.h | 18 | ||||
-rw-r--r-- | cpp/src/Glacier/ServerBlobject.cpp | 2 | ||||
-rw-r--r-- | cpp/src/Glacier/StarterI.cpp (renamed from cpp/src/Glacier/GlacierI.cpp) | 16 | ||||
-rw-r--r-- | cpp/src/Glacier/StarterI.h (renamed from cpp/src/Glacier/GlacierI.h) | 14 |
11 files changed, 204 insertions, 68 deletions
diff --git a/cpp/src/Glacier/.depend b/cpp/src/Glacier/.depend index 69a49a39fe8..59ab583dce5 100644 --- a/cpp/src/Glacier/.depend +++ b/cpp/src/Glacier/.depend @@ -1,7 +1,10 @@ -Glacier.o: Glacier.cpp ../../include/Glacier/Glacier.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/Router.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h -GlacierRouter.o: GlacierRouter.cpp ../../include/Ice/Application.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../../include/Ice/RoutingTable.h ../../include/Ice/RoutingTableF.h ../Glacier/RouterI.h ../../include/Ice/Router.h ../Glacier/ClientBlobject.h ../Glacier/ServerBlobject.h ../../include/IceUtil/Base64.h ../../include/Ice/CertificateVerifierF.h ../../include/Ice/System.h ../../include/Ice/SslExtension.h -RouterI.o: RouterI.cpp ../../include/Ice/RoutingTable.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/RoutingTableF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../Glacier/RouterI.h ../../include/Ice/Router.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/LocalException.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h +Starter.o: Starter.cpp ../../include/Glacier/Starter.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Glacier/Router.h ../../include/Ice/Router.h ../../include/Glacier/SessionF.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h +Router.o: Router.cpp ../../include/Glacier/Router.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/Router.h ../../include/Glacier/SessionF.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h ../../include/Ice/BuiltinSequences.h +Session.o: Session.cpp ../../include/Glacier/Session.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h ../../include/Ice/BuiltinSequences.h +SessionManager.o: SessionManager.cpp ../../include/Glacier/SessionManager.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Identity.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/InstanceF.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Glacier/SessionF.h ../../include/Ice/LocalException.h ../../include/Ice/ObjectFactory.h ../../include/Ice/Stream.h ../../include/Ice/BuiltinSequences.h +GlacierRouter.o: GlacierRouter.cpp ../../include/Ice/Application.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../../include/Ice/RoutingTable.h ../../include/Ice/RoutingTableF.h ../Glacier/RouterI.h ../../include/Glacier/Router.h ../../include/Ice/Router.h ../../include/Glacier/SessionF.h ../../include/Glacier/SessionManagerF.h ../Glacier/ClientBlobject.h ../Glacier/ServerBlobject.h ../../include/Glacier/SessionManager.h ../../include/IceUtil/Base64.h ../../include/Ice/CertificateVerifierF.h ../../include/Ice/System.h ../../include/Ice/SslExtension.h +RouterI.o: RouterI.cpp ../../include/Ice/RoutingTable.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/RoutingTableF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../Glacier/RouterI.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../../include/Glacier/Router.h ../../include/Ice/Router.h ../../include/Glacier/SessionF.h ../../include/Glacier/SessionManagerF.h ../../include/Glacier/Session.h ../../include/Glacier/SessionManager.h ClientBlobject.o: ClientBlobject.cpp ../../include/Ice/RoutingTable.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/RoutingTableF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../Glacier/ClientBlobject.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ServerBlobject.o: ServerBlobject.cpp ../../include/Ice/RoutingTable.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Lock.h ../../include/Ice/RoutingTableF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../Glacier/ServerBlobject.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/Proxy.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h -GlacierStarter.o: GlacierStarter.cpp ../../include/Ice/Application.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../Glacier/GlacierI.h ../../include/Ice/RSACertificateGen.h ../../include/Ice/RSAKeyPairF.h ../../include/Glacier/Glacier.h ../../include/Ice/Router.h -GlacierI.o: GlacierI.cpp ../../include/IceUtil/UUID.h ../../include/IceUtil/Config.h ../../include/Ice/RSAKeyPair.h ../../include/IceUtil/Shared.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/RSAKeyPairF.h ../../include/Ice/RSACertificateGenF.h ../../include/Ice/RSAPrivateKeyF.h ../../include/Ice/RSAPublicKeyF.h ../Glacier/GlacierI.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../../include/Ice/RSACertificateGen.h ../../include/Glacier/Glacier.h ../../include/Ice/Router.h +GlacierStarter.o: GlacierStarter.cpp ../../include/Ice/Application.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/IceUtil/Config.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/IceUtil/Shared.h ../../include/Ice/StreamF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/Properties.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../Glacier/StarterI.h ../../include/Ice/RSACertificateGen.h ../../include/Ice/RSAKeyPairF.h ../../include/Glacier/Starter.h ../../include/Glacier/Router.h ../../include/Ice/Router.h ../../include/Glacier/SessionF.h +StarterI.o: StarterI.cpp ../../include/IceUtil/UUID.h ../../include/IceUtil/Config.h ../../include/Ice/RSAKeyPair.h ../../include/IceUtil/Shared.h ../../include/Ice/BuiltinSequences.h ../../include/Ice/LocalObjectF.h ../../include/Ice/Handle.h ../../include/IceUtil/Handle.h ../../include/IceUtil/Exception.h ../../include/Ice/Config.h ../../include/Ice/ProxyF.h ../../include/Ice/ProxyHandle.h ../../include/Ice/ObjectF.h ../../include/Ice/Exception.h ../../include/Ice/LocalObject.h ../../include/Ice/StreamF.h ../../include/Ice/RSAKeyPairF.h ../../include/Ice/RSACertificateGenF.h ../../include/Ice/RSAPrivateKeyF.h ../../include/Ice/RSAPublicKeyF.h ../Glacier/StarterI.h ../../include/Ice/Ice.h ../../include/Ice/Initialize.h ../../include/Ice/CommunicatorF.h ../../include/Ice/PropertiesF.h ../../include/Ice/InstanceF.h ../../include/Ice/LocalException.h ../../include/Ice/Identity.h ../../include/Ice/Properties.h ../../include/Ice/Logger.h ../../include/Ice/LoggerUtil.h ../../include/Ice/LoggerF.h ../../include/Ice/Communicator.h ../../include/Ice/Proxy.h ../../include/IceUtil/Mutex.h ../../include/IceUtil/Lock.h ../../include/Ice/ProxyFactoryF.h ../../include/Ice/ConnectionF.h ../../include/Ice/EndpointF.h ../../include/Ice/ObjectAdapterF.h ../../include/Ice/ReferenceF.h ../../include/Ice/Current.h ../../include/Ice/Object.h ../../include/Ice/Outgoing.h ../../include/IceUtil/Monitor.h ../../include/IceUtil/Cond.h ../../include/Ice/BasicStream.h ../../include/Ice/Buffer.h ../../include/Ice/ObjectFactoryF.h ../../include/Ice/Incoming.h ../../include/Ice/Direct.h ../../include/Ice/ServantLocatorF.h ../../include/Ice/UserExceptionFactoryF.h ../../include/Ice/RouterF.h ../../include/Ice/SystemF.h ../../include/Ice/SslExtensionF.h ../../include/Ice/ObjectFactory.h ../../include/Ice/UserExceptionFactory.h ../../include/Ice/ObjectAdapter.h ../../include/Ice/ServantLocator.h ../../include/Ice/IdentityUtil.h ../../include/Ice/RSACertificateGen.h ../../include/Glacier/Starter.h ../../include/Glacier/Router.h ../../include/Ice/Router.h ../../include/Glacier/SessionF.h diff --git a/cpp/src/Glacier/ClientBlobject.cpp b/cpp/src/Glacier/ClientBlobject.cpp index d86509ffb6f..cec339c1829 100644 --- a/cpp/src/Glacier/ClientBlobject.cpp +++ b/cpp/src/Glacier/ClientBlobject.cpp @@ -9,6 +9,8 @@ // ********************************************************************** #include <Ice/RoutingTable.h> +#include <Ice/IdentityUtil.h> + #include <Glacier/ClientBlobject.h> using namespace std; @@ -16,13 +18,25 @@ using namespace Ice; using namespace Glacier; Glacier::ClientBlobject::ClientBlobject(const CommunicatorPtr& communicator, - const IceInternal::RoutingTablePtr& routingTable) : + const IceInternal::RoutingTablePtr& routingTable, + const string& allowCategories) : _communicator(communicator), _logger(_communicator->getLogger()), _routingTable(routingTable) { PropertiesPtr properties = _communicator->getProperties(); - _traceLevel = properties->getPropertyAsInt("Glacier.Trace.Client"); + _traceLevel = properties->getPropertyAsInt("Glacier.Router.Trace.Client"); + + size_t current = 0; + const string ws = " \t"; + do + { + size_t pos = allowCategories.find_first_of(ws, current); + size_t len = (pos == string::npos) ? string::npos : pos - current; + _allowCategories.insert(allowCategories.substr(current, len)); + current = allowCategories.find_first_not_of(ws, pos); + } + while (current != string::npos); } Glacier::ClientBlobject::~ClientBlobject() @@ -48,13 +62,33 @@ Glacier::ClientBlobject::ice_invoke(const std::vector<Byte>& inParams, std::vect { assert(_communicator); // Destroyed? + // + // If there is an allowCategories set then enforce it. + // + if (!_allowCategories.empty()) + { + if (_allowCategories.find(current.identity.category) == _allowCategories.end()) + { + if (_traceLevel > 0) + { + Trace out(_logger, "Glacier"); + out << "rejecting request. identity: " << identityToString(current.identity); + } + ObjectNotExistException ex(__FILE__, __LINE__); + ex.identity = current.identity; + throw ex; + } + } + try { ObjectPrx proxy = _routingTable->get(current.identity); if (!proxy) { - throw ObjectNotExistException(__FILE__, __LINE__); + ObjectNotExistException ex(__FILE__, __LINE__); + ex.identity = current.identity; + throw ex; } if (!current.facet.empty()) diff --git a/cpp/src/Glacier/ClientBlobject.h b/cpp/src/Glacier/ClientBlobject.h index 2cab53df493..09848dae8b1 100644 --- a/cpp/src/Glacier/ClientBlobject.h +++ b/cpp/src/Glacier/ClientBlobject.h @@ -14,6 +14,8 @@ #include <Ice/RoutingTableF.h> #include <Ice/Ice.h> +#include <set> + namespace Glacier { @@ -21,7 +23,7 @@ class ClientBlobject : public Ice::Blobject { public: - ClientBlobject(const Ice::CommunicatorPtr&, const IceInternal::RoutingTablePtr&); + ClientBlobject(const Ice::CommunicatorPtr&, const IceInternal::RoutingTablePtr&, const ::std::string&); virtual ~ClientBlobject(); void destroy(); @@ -33,6 +35,8 @@ private: Ice::LoggerPtr _logger; int _traceLevel; IceInternal::RoutingTablePtr _routingTable; + + ::std::set< ::std::string> _allowCategories; }; } diff --git a/cpp/src/Glacier/GlacierRouter.cpp b/cpp/src/Glacier/GlacierRouter.cpp index eb2bd8f3bad..83e2dd8dbbe 100644 --- a/cpp/src/Glacier/GlacierRouter.cpp +++ b/cpp/src/Glacier/GlacierRouter.cpp @@ -13,6 +13,7 @@ #include <Glacier/RouterI.h> #include <Glacier/ClientBlobject.h> #include <Glacier/ServerBlobject.h> +#include <Glacier/SessionManager.h> #include <IceUtil/Base64.h> #include <Ice/CertificateVerifierF.h> #include <Ice/System.h> @@ -41,7 +42,7 @@ private: ::Ice::ObjectPtr _blobject; }; -class Router : public Application +class RouterApp : public Application { public: @@ -87,7 +88,7 @@ Glacier::ServantLocator::deactivate() } void -Glacier::Router::usage() +Glacier::RouterApp::usage() { cerr << "Usage: " << appName() << " [options]\n"; cerr << @@ -98,7 +99,7 @@ Glacier::Router::usage() } int -Glacier::Router::run(int argc, char* argv[]) +Glacier::RouterApp::run(int argc, char* argv[]) { for (int i = 1; i < argc; ++i) { @@ -159,7 +160,7 @@ Glacier::Router::run(int argc, char* argv[]) // // Initialize the client object adapter. // - const char* clientEndpointsProperty = "Glacier.Client.Endpoints"; + const char* clientEndpointsProperty = "Glacier.Router.Client.Endpoints"; string clientEndpoints = properties->getProperty(clientEndpointsProperty); if (clientEndpoints.empty()) { @@ -172,7 +173,7 @@ Glacier::Router::run(int argc, char* argv[]) // // Initialize the server object adapter. // - const char* serverEndpointsProperty = "Glacier.Server.Endpoints"; + const char* serverEndpointsProperty = "Glacier.Router.Server.Endpoints"; string serverEndpoints = properties->getProperty(serverEndpointsProperty); ObjectAdapterPtr serverAdapter; if (!serverEndpoints.empty()) @@ -180,11 +181,14 @@ Glacier::Router::run(int argc, char* argv[]) serverAdapter = communicator()->createObjectAdapterFromProperty("Server", serverEndpointsProperty); } + const char* allowCategoriesProperty = "Glacier.Router.AllowCategories"; + string allowCategories = properties->getProperty(allowCategoriesProperty); + // // Create the client and server blobjects and the associated // servant locators. // - ObjectPtr clientBlobject = new ClientBlobject(communicator(), routingTable); + ObjectPtr clientBlobject = new ClientBlobject(communicator(), routingTable, allowCategories); Ice::ServantLocatorPtr clientServantLocator = new Glacier::ServantLocator(clientBlobject); clientAdapter->addServantLocator(clientServantLocator, ""); if (serverAdapter) @@ -204,15 +208,25 @@ Glacier::Router::run(int argc, char* argv[]) cerr << appName() << ": property `" << routerEndpointsProperty << "' is not set" << endl; return EXIT_FAILURE; } + const char* routerIdentityProperty = "Glacier.Router.Identity"; - string routerIdentity = properties->getProperty(routerIdentityProperty); - if (routerIdentity.empty()) + string routerIdentity = properties->getPropertyWithDefault(routerIdentityProperty, "Glacier/router"); + + const char* sessionManagerProperty = "Glacier.Router.SessionManager"; + string sessionManager = properties->getProperty(sessionManagerProperty); + + SessionManagerPrx sessionManagerPrx; + if (!sessionManager.empty()) { - routerIdentity = "Glacier/router"; + sessionManagerPrx = SessionManagerPrx::checkedCast(communicator()->stringToProxy(sessionManager)); } + + const char* userIdProperty = "Glacier.Router.UserId"; + string userId = properties->getProperty(userIdProperty); + ObjectAdapterPtr routerAdapter = communicator()->createObjectAdapterFromProperty("Router", routerEndpointsProperty); - RouterPtr router = new RouterI(clientAdapter, serverAdapter, routingTable); + RouterPtr router = new RouterI(clientAdapter, serverAdapter, routingTable, sessionManagerPrx, userId); routerAdapter->add(router, stringToIdentity(routerIdentity)); #ifndef _WIN32 @@ -290,6 +304,6 @@ main(int argc, char* argv[]) } defaultProperties->setProperty("Ice.DefaultRouter", ""); - Glacier::Router app; + Glacier::RouterApp app; return app.main(argc, argv); } diff --git a/cpp/src/Glacier/GlacierStarter.cpp b/cpp/src/Glacier/GlacierStarter.cpp index cddb35541b3..72a62255d84 100644 --- a/cpp/src/Glacier/GlacierStarter.cpp +++ b/cpp/src/Glacier/GlacierStarter.cpp @@ -13,7 +13,7 @@ #endif #include <Ice/Application.h> -#include <Glacier/GlacierI.h> +#include <Glacier/StarterI.h> #include <signal.h> #include <sys/wait.h> #include <fstream> @@ -24,7 +24,7 @@ using namespace Ice; namespace Glacier { -class Router : public Application +class RouterApp : public Application { public: @@ -35,7 +35,7 @@ public: }; void -Glacier::Router::usage() +Glacier::RouterApp::usage() { cerr << "Usage: " << appName() << " [options]\n"; cerr << @@ -46,7 +46,7 @@ Glacier::Router::usage() } int -Glacier::Router::run(int argc, char* argv[]) +Glacier::RouterApp::run(int argc, char* argv[]) { for (int i = 1; i < argc; ++i) { @@ -88,7 +88,6 @@ Glacier::Router::run(int argc, char* argv[]) // string verifierProperty = properties->getProperty("Glacier.Starter.PasswordVerifier"); PasswordVerifierPrx verifier; - PasswordVerifierPtr verifierImpl; if (!verifierProperty.empty()) { verifier = PasswordVerifierPrx::checkedCast(communicator()->stringToProxy(verifierProperty)); @@ -133,7 +132,7 @@ Glacier::Router::run(int argc, char* argv[]) passwords.insert(make_pair(userId, password)); } - verifierImpl = new CryptPasswordVerifierI(passwords); + PasswordVerifierPtr verifierImpl = new CryptPasswordVerifierI(passwords); verifier = PasswordVerifierPrx::uncheckedCast(adapter->addWithUUID(verifierImpl)); } @@ -152,24 +151,11 @@ Glacier::Router::run(int argc, char* argv[]) ignoreInterrupt(); // - // Destroy the starter and the password verifier. + // Destroy the starter. // StarterI* st = dynamic_cast<StarterI*>(starter.get()); assert(st); st->destroy(); - if (verifierImpl) - { - // - // Can't use proxy to shutdown if the verifier is collocated, - // since the object adapter is already shut down at this - // point. Thus I have to use the implementation. - // - verifierImpl->destroy(); - } - else - { - verifier->destroy(); - } return EXIT_SUCCESS; } @@ -211,6 +197,6 @@ main(int argc, char* argv[]) } defaultProperties->setProperty("Ice.DefaultRouter", ""); - Glacier::Router app; + Glacier::RouterApp app; return app.main(argc, argv); } diff --git a/cpp/src/Glacier/Makefile b/cpp/src/Glacier/Makefile index dc426d8540b..bd45fc05715 100644 --- a/cpp/src/Glacier/Makefile +++ b/cpp/src/Glacier/Makefile @@ -16,12 +16,15 @@ VERSIONED_BASE = $(BASE).$(VERSION) NAME = $(top_srcdir)/lib/$(BASE) VERSIONED_NAME = $(top_srcdir)/lib/$(VERSIONED_BASE) -ROUTER = $(top_srcdir)/bin/glacier +ROUTER = $(top_srcdir)/bin/glacierrouter STARTER = $(top_srcdir)/bin/glacierstarter TARGETS = $(NAME) $(VERSIONED_NAME) $(ROUTER) $(STARTER) -OBJS = Glacier.o +OBJS = Starter.o \ + Router.o \ + Session.o \ + SessionManager.o ROBJS = GlacierRouter.o \ RouterI.o \ @@ -29,7 +32,7 @@ ROBJS = GlacierRouter.o \ ServerBlobject.o SOBJS = GlacierStarter.o \ - GlacierI.o + StarterI.o SRCS = $(OBJS:.o=.cpp) \ $(ROBJS:.o=.cpp) \ @@ -53,18 +56,60 @@ $(NAME): $(VERSIONED_NAME) $(ROUTER): $(ROBJS) rm -f $@ - $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(ROBJS) $(LIBS) + $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(ROBJS) -lGlacier $(LIBS) $(STARTER): $(SOBJS) rm -f $@ $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $(SOBJS) -lGlacier $(LIBS) -$(HDIR)/Glacier.h Glacier.cpp: $(SDIR)/Glacier.ice $(SLICE2CPP) - rm -f $(HDIR)/Glacier.h Glacier.cpp - $(SLICECMD) $(SDIR)/Glacier.ice - mv Glacier.h $(HDIR) +$(HDIR)/Starter.h Starter.cpp: $(SDIR)/Starter.ice $(SLICE2CPP) + rm -f $(HDIR)/Starter.h Starter.cpp + $(SLICECMD) $(SDIR)/Starter.ice + mv Starter.h $(HDIR) clean:: - rm -f $(HDIR)/Glacier.h Glacier.cpp + rm -f $(HDIR)/Starter.h Starter.cpp + +$(HDIR)/Router.h Router.cpp: $(SDIR)/Router.ice $(SLICE2CPP) + rm -f $(HDIR)/Router.h Router.cpp + $(SLICECMD) $(SDIR)/Router.ice + mv Router.h $(HDIR) + +clean:: + rm -f $(HDIR)/Router.h Router.cpp + +$(HDIR)/Session.h Session.cpp: $(SDIR)/Session.ice $(SLICE2CPP) + rm -f $(HDIR)/Session.h Session.cpp + $(SLICECMD) $(SDIR)/Session.ice + mv Session.h $(HDIR) + +clean:: + rm -f $(HDIR)/Session.h Session.cpp + +$(HDIR)/SessionF.h: $(SDIR)/SessionF.ice $(SLICE2CPP) + rm -f $(HDIR)/SessionF.h SessionF.cpp + $(SLICECMD) $(SDIR)/SessionF.ice + mv SessionF.h $(HDIR) + rm -f SessionF.cpp + +clean:: + rm -f $(HDIR)/SessionF.h + +$(HDIR)/SessionManager.h SessionManager.cpp: $(SDIR)/SessionManager.ice $(SLICE2CPP) + rm -f $(HDIR)/SessionManager.h SessionManager.cpp + $(SLICECMD) $(SDIR)/SessionManager.ice + mv SessionManager.h $(HDIR) + +clean:: + rm -f $(HDIR)/SessionManager.h SessionManager.cpp + +$(HDIR)/SessionManagerF.h: $(SDIR)/SessionManagerF.ice $(SLICE2CPP) + rm -f $(HDIR)/SessionManagerF.h SessionManagerF.cpp + $(SLICECMD) $(SDIR)/SessionManagerF.ice + mv SessionManagerF.h $(HDIR) + rm -f SessionManagerF.cpp + +clean:: + rm -f $(HDIR)/SessionManagerF.h include .depend diff --git a/cpp/src/Glacier/RouterI.cpp b/cpp/src/Glacier/RouterI.cpp index 64ef77077d1..0876787bd86 100644 --- a/cpp/src/Glacier/RouterI.cpp +++ b/cpp/src/Glacier/RouterI.cpp @@ -10,6 +10,8 @@ #include <Ice/RoutingTable.h> #include <Glacier/RouterI.h> +#include <Glacier/Session.h> +#include <Glacier/SessionManager.h> #include <iostream> using namespace std; @@ -18,14 +20,18 @@ using namespace Glacier; Glacier::RouterI::RouterI(const ObjectAdapterPtr& clientAdapter, const ObjectAdapterPtr& serverAdapter, - const ::IceInternal::RoutingTablePtr& routingTable) : + const ::IceInternal::RoutingTablePtr& routingTable, + const SessionManagerPrx& sessionManager, + const string& userId) : _clientAdapter(clientAdapter), _serverAdapter(serverAdapter), _logger(_clientAdapter->getCommunicator()->getLogger()), - _routingTable(routingTable) + _routingTable(routingTable), + _sessionManager(sessionManager), + _userId(userId) { PropertiesPtr properties = _clientAdapter->getCommunicator()->getProperties(); - _routingTableTraceLevel = properties->getPropertyAsInt("Glacier.Trace.RoutingTable"); + _routingTableTraceLevel = properties->getPropertyAsInt("Glacier.Router.Trace.RoutingTable"); } Glacier::RouterI::~RouterI() @@ -88,4 +94,28 @@ Glacier::RouterI::shutdown(const Current&) { assert(_routingTable); _clientAdapter->getCommunicator()->shutdown(); + + IceUtil::Mutex::Lock lock(_sessionMutex); + + for (list<SessionPrx>::const_iterator p = _sessions.begin(); p != _sessions.end(); ++p) + { + (*p)->stop(); + } + _sessions.clear(); +} + +SessionPrx +Glacier::RouterI::createSession(const Current&) +{ + IceUtil::Mutex::Lock lock(_sessionMutex); + if (!_sessionManager) + { + throw NoSessionManagerException(); + } + + SessionPrx session = _sessionManager->create(_userId); + _sessions.push_back(session); + + return session; } + diff --git a/cpp/src/Glacier/RouterI.h b/cpp/src/Glacier/RouterI.h index bac10665669..9c38887c453 100644 --- a/cpp/src/Glacier/RouterI.h +++ b/cpp/src/Glacier/RouterI.h @@ -12,17 +12,23 @@ #define GLACIER_ROUTER_I_H #include <Ice/RoutingTableF.h> -#include <Ice/Router.h> #include <Ice/Ice.h> +#include <Glacier/Router.h> +#include <Glacier/SessionManagerF.h> + +#include <list> + namespace Glacier { -class RouterI : public Ice::Router +class RouterI : public Router { public: - RouterI(const Ice::ObjectAdapterPtr&, const Ice::ObjectAdapterPtr&, const ::IceInternal::RoutingTablePtr&); + RouterI(const Ice::ObjectAdapterPtr&, const Ice::ObjectAdapterPtr&, const ::IceInternal::RoutingTablePtr&, + const SessionManagerPrx&, const ::std::string&); + virtual ~RouterI(); void destroy(); @@ -31,6 +37,7 @@ public: virtual Ice::ObjectPrx getServerProxy(const Ice::Current&); virtual void addProxy(const Ice::ObjectPrx&, const Ice::Current&); virtual void shutdown(const Ice::Current&); + virtual SessionPrx createSession(const Ice::Current&); private: @@ -39,6 +46,11 @@ private: Ice::LoggerPtr _logger; ::IceInternal::RoutingTablePtr _routingTable; int _routingTableTraceLevel; + + IceUtil::Mutex _sessionMutex; + SessionManagerPrx _sessionManager; + ::std::list<SessionPrx> _sessions; + ::std::string _userId; }; } diff --git a/cpp/src/Glacier/ServerBlobject.cpp b/cpp/src/Glacier/ServerBlobject.cpp index 08166cca220..d2ad46a113e 100644 --- a/cpp/src/Glacier/ServerBlobject.cpp +++ b/cpp/src/Glacier/ServerBlobject.cpp @@ -20,7 +20,7 @@ Glacier::ServerBlobject::ServerBlobject(const ObjectAdapterPtr& clientAdapter) : _logger(_clientAdapter->getCommunicator()->getLogger()) { PropertiesPtr properties = _clientAdapter->getCommunicator()->getProperties(); - _traceLevel = properties->getPropertyAsInt("Glacier.Trace.Server"); + _traceLevel = properties->getPropertyAsInt("Glacier.Router.Trace.Server"); } Glacier::ServerBlobject::~ServerBlobject() diff --git a/cpp/src/Glacier/GlacierI.cpp b/cpp/src/Glacier/StarterI.cpp index c0b05257d7e..3c6cb9e014e 100644 --- a/cpp/src/Glacier/GlacierI.cpp +++ b/cpp/src/Glacier/StarterI.cpp @@ -14,7 +14,7 @@ #include <IceUtil/UUID.h> #include <Ice/RSAKeyPair.h> -#include <Glacier/GlacierI.h> +#include <Glacier/StarterI.h> #include <fcntl.h> #include <shadow.h> @@ -32,7 +32,7 @@ Glacier::StarterI::StarterI(const CommunicatorPtr& communicator, const PasswordV { assert(_verifier); - _traceLevel = _properties->getPropertyAsInt("Glacier.Trace.Starter"); + _traceLevel = _properties->getPropertyAsInt("Glacier.Starter.Trace"); // Set up the Certificate Generation context string country = _properties->getPropertyWithDefault("Glacier.Starter.Certificate.Country", "US"); @@ -69,7 +69,7 @@ Glacier::StarterI::destroy() _properties = 0; } -RouterPrx +Glacier::RouterPrx Glacier::StarterI::startRouter(const string& userId, const string& password, ByteSeq& privateKey, ByteSeq& publicKey, ByteSeq& routerCert, const Current&) { @@ -118,7 +118,7 @@ Glacier::StarterI::startRouter(const string& userId, const string& password, Byt // // Start a router. // - string path = _properties->getPropertyWithDefault("Glacier.Starter.RouterPath", "glacier"); + string path = _properties->getPropertyWithDefault("Glacier.Starter.RouterPath", "glacierrouter"); string uuid = IceUtil::generateUUID(); pid_t pid; int fds[2]; @@ -178,6 +178,14 @@ Glacier::StarterI::startRouter(const string& userId, const string& password, Byt args.push_back("--Ice.SSL.Client.Overrides.RSA.PrivateKey=" + routerPrivateKeyBase64); args.push_back("--Ice.SSL.Client.Overrides.RSA.Certificate=" + routerCertificateBase64); args.push_back("--Glacier.Router.AcceptCert=" + clientCertificateBase64); + args.push_back("--Glacier.Router.UserId=" + userId); + + if (!_properties->getProperty("Glacier.Starter.AddUserToAllowCategories").empty()) + { + args.push_back("--Glacier.Router.AllowCategories=" + + _properties->getProperty("Glacier.Router.AllowCategories") + string(" ") + userId); + } + ostringstream s; s << "--Glacier.Router.PrintProxyOnFd=" << fds[1]; args.push_back(s.str()); diff --git a/cpp/src/Glacier/GlacierI.h b/cpp/src/Glacier/StarterI.h index 2343e0b146d..6a5a1aa07bc 100644 --- a/cpp/src/Glacier/GlacierI.h +++ b/cpp/src/Glacier/StarterI.h @@ -13,7 +13,7 @@ #include <Ice/Ice.h> #include <Ice/RSACertificateGen.h> -#include <Glacier/Glacier.h> +#include <Glacier/Starter.h> namespace Glacier { @@ -29,12 +29,12 @@ public: void destroy(); - Ice::RouterPrx startRouter(const std::string&, - const std::string&, - Ice::ByteSeq&, - Ice::ByteSeq&, - Ice::ByteSeq&, - const Ice::Current&); + RouterPrx startRouter(const std::string&, + const std::string&, + Ice::ByteSeq&, + Ice::ByteSeq&, + Ice::ByteSeq&, + const Ice::Current&); private: |