summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Glacier2/RouterI.cpp2
-rw-r--r--cpp/src/Glacier2/RouterI.h2
-rw-r--r--cpp/src/Glacier2/SessionRouterI.cpp9
-rw-r--r--cpp/src/Glacier2/SessionRouterI.h2
-rw-r--r--cpp/src/IcePack/Makefile4
-rw-r--r--cpp/src/IceStorm/Makefile4
6 files changed, 15 insertions, 8 deletions
diff --git a/cpp/src/Glacier2/RouterI.cpp b/cpp/src/Glacier2/RouterI.cpp
index 1ac8510e9a8..25a4089f7ee 100644
--- a/cpp/src/Glacier2/RouterI.cpp
+++ b/cpp/src/Glacier2/RouterI.cpp
@@ -119,7 +119,7 @@ Glacier2::RouterI::createSession(const std::string&, const std::string&, const C
}
void
-Glacier2::RouterI::destroySession(const Current&)
+Glacier2::RouterI::destroySession_async(const AMD_Router_destroySessionPtr&, const Current&)
{
assert(false); // Must not be called in this router implementation.
}
diff --git a/cpp/src/Glacier2/RouterI.h b/cpp/src/Glacier2/RouterI.h
index 7c091728334..7f2266208d5 100644
--- a/cpp/src/Glacier2/RouterI.h
+++ b/cpp/src/Glacier2/RouterI.h
@@ -34,7 +34,7 @@ public:
virtual Ice::ObjectPrx getServerProxy(const Ice::Current&) const;
virtual void addProxy(const Ice::ObjectPrx&, const Ice::Current&);
virtual SessionPrx createSession(const std::string&, const std::string&, const Ice::Current&);
- virtual void destroySession(const Ice::Current&);
+ virtual void destroySession_async(const AMD_Router_destroySessionPtr&, const ::Ice::Current&);
ClientBlobjectPtr getClientBlobject() const;
ServerBlobjectPtr getServerBlobject() const;
diff --git a/cpp/src/Glacier2/SessionRouterI.cpp b/cpp/src/Glacier2/SessionRouterI.cpp
index 7b626abb3a5..97950a456c2 100644
--- a/cpp/src/Glacier2/SessionRouterI.cpp
+++ b/cpp/src/Glacier2/SessionRouterI.cpp
@@ -433,8 +433,9 @@ Glacier2::SessionRouterI::createSession(const std::string& userId, const std::st
return session;
}
+
void
-Glacier2::SessionRouterI::destroySession(const Current& current)
+Glacier2::SessionRouterI::destroySession_async(const AMD_Router_destroySessionPtr& cb, const Current& current)
{
RouterIPtr router;
@@ -479,6 +480,12 @@ Glacier2::SessionRouterI::destroySession(const Current& current)
}
//
+ // We must send back a response before we close the connection.
+ //
+ cb->ice_response();
+ current.con->close(false);
+
+ //
// We destroy the router outside the thread synchronization, to
// avoid deadlocks.
//
diff --git a/cpp/src/Glacier2/SessionRouterI.h b/cpp/src/Glacier2/SessionRouterI.h
index f38d711736d..5e9d9a085bd 100644
--- a/cpp/src/Glacier2/SessionRouterI.h
+++ b/cpp/src/Glacier2/SessionRouterI.h
@@ -39,7 +39,7 @@ public:
virtual Ice::ObjectPrx getServerProxy(const Ice::Current&) const;
virtual void addProxy(const Ice::ObjectPrx&, const Ice::Current&);
virtual SessionPrx createSession(const std::string&, const std::string&, const Ice::Current&);
- virtual void destroySession(const Ice::Current&);
+ virtual void destroySession_async(const AMD_Router_destroySessionPtr&, const ::Ice::Current&);
RouterIPtr getRouter(const Ice::ConnectionPtr&) const;
RouterIPtr getRouter(const std::string&) const;
diff --git a/cpp/src/IcePack/Makefile b/cpp/src/IcePack/Makefile
index 11b38c92211..5c6981a426c 100644
--- a/cpp/src/IcePack/Makefile
+++ b/cpp/src/IcePack/Makefile
@@ -95,8 +95,8 @@ SLICE2FREEZECMD = $(SLICE2FREEZE) --ice --include-dir IcePack $(ICECPPFLAGS)
include $(top_srcdir)/config/Make.rules
-CPPFLAGS := -I.. $(CPPFLAGS) -DICE_PACK_API_EXPORTS $(READLINE_FLAGS)
-ICECPPFLAGS := -I.. $(ICECPPFLAGS)
+CPPFLAGS := $(CPPFLAGS) -I.. -DICE_PACK_API_EXPORTS $(READLINE_FLAGS)
+ICECPPFLAGS := $(ICECPPFLAGS) -I..
SLICE2CPPFLAGS := --checksum --ice --include-dir IcePack --dll-export ICE_PACK_API $(SLICE2CPPFLAGS)
LINKWITH := -lIceBox -lIce -lIceUtil
diff --git a/cpp/src/IceStorm/Makefile b/cpp/src/IceStorm/Makefile
index c052ea43808..38bbb6ca15c 100644
--- a/cpp/src/IceStorm/Makefile
+++ b/cpp/src/IceStorm/Makefile
@@ -65,8 +65,8 @@ SLICE2FREEZECMD = $(SLICE2FREEZE) --ice --include-dir IceStorm $(ICECPPFLAGS)
include $(top_srcdir)/config/Make.rules
-CPPFLAGS := -I.. $(CPPFLAGS) -DICE_STORM_API_EXPORTS $(READLINE_FLAGS)
-ICECPPFLAGS := -I.. $(ICECPPFLAGS)
+CPPFLAGS := $(CPPFLAGS) -I.. -DICE_STORM_API_EXPORTS $(READLINE_FLAGS)
+ICECPPFLAGS := $(ICECPPFLAGS) -I..
SLICE2CPPFLAGS := --checksum --ice --dll-export ICE_STORM_API --include-dir IceStorm $(SLICE2CPPFLAGS)
LINKWITH := -lIce -lIceUtil
SVCLINKWITH := -lFreeze -lIce -lIceUtil