summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/Parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/Parser.cpp')
-rw-r--r--cpp/src/IceGrid/Parser.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/cpp/src/IceGrid/Parser.cpp b/cpp/src/IceGrid/Parser.cpp
index 99340f6c8f2..d0eefad29bd 100644
--- a/cpp/src/IceGrid/Parser.cpp
+++ b/cpp/src/IceGrid/Parser.cpp
@@ -1075,7 +1075,19 @@ Parser::writeMessage(const list<string>& args, int fd)
{
list<string>::const_iterator p = args.begin();
string server = *p++;
- _admin->writeMessage(server, *p, fd);
+
+ Ice::ObjectPrx serverAdmin = _admin->getServerAdmin(server);
+ Ice::ProcessPrx process = Ice::ProcessPrx::uncheckedCast(serverAdmin, "Process");
+
+ process->writeMessage(*p, fd);
+ }
+ catch(const Ice::ObjectNotExistException&)
+ {
+ error("couldn't reach the server's Admin object");
+ }
+ catch(const Ice::FacetNotExistException&)
+ {
+ error("the server's Admin object does not provide a 'Process' facet");
}
catch(const Ice::Exception& ex)
{