summaryrefslogtreecommitdiff
path: root/node
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2014-03-19 16:05:03 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2014-03-19 16:05:03 -0700
commit6fdb360e2ab1ed27760e6ea699a1594786bcbe76 (patch)
tree16b4c7c348f45589ed4d8e5eab6373db4f748e35 /node
parent0d847d941077eea398638d4077dceaa56aa68cfc (diff)
downloadinfinitytier-6fdb360e2ab1ed27760e6ea699a1594786bcbe76.tar.gz
infinitytier-6fdb360e2ab1ed27760e6ea699a1594786bcbe76.zip
More IPC work.
Diffstat (limited to 'node')
-rw-r--r--node/Node.cpp13
-rw-r--r--node/Node.hpp3
2 files changed, 14 insertions, 2 deletions
diff --git a/node/Node.cpp b/node/Node.cpp
index b76d4b6d..653d63cf 100644
--- a/node/Node.cpp
+++ b/node/Node.cpp
@@ -99,6 +99,7 @@ Node::NodeControlClient::NodeControlClient(const char *hp,void (*resultHandler)(
_impl((void *)new _NodeControlClientImpl)
{
_NodeControlClientImpl *impl = (_NodeControlClientImpl *)_impl;
+ impl->ipcc = (IpcConnection *)0;
if (!hp)
hp = ZT_DEFAULTS.defaultHomePath.c_str();
@@ -121,6 +122,7 @@ Node::NodeControlClient::NodeControlClient(const char *hp,void (*resultHandler)(
impl->ipcc = new IpcConnection((std::string(ZT_IPC_ENDPOINT_BASE) + myaddr).c_str(),&_CBipcResultHandler,_impl);
impl->ipcc->printf("auth %s"ZT_EOL_S,at.c_str());
} catch ( ... ) {
+ impl->ipcc = (IpcConnection *)0;
impl->err = "failure connecting to running ZeroTier One service";
}
}
@@ -136,11 +138,20 @@ Node::NodeControlClient::~NodeControlClient()
}
}
+const char *Node::NodeControlClient::error() const
+ throw()
+{
+ if (((_NodeControlClientImpl *)_impl)->err.length())
+ return ((_NodeControlClientImpl *)_impl)->err.c_str();
+ return (const char *)0;
+}
+
void Node::NodeControlClient::send(const char *command)
throw()
{
try {
- ((_NodeControlClientImpl *)_impl)->ipcc->printf("%s"ZT_EOL_S,command);
+ if (((_NodeControlClientImpl *)_impl)->ipcc)
+ ((_NodeControlClientImpl *)_impl)->ipcc->printf("%s"ZT_EOL_S,command);
} catch ( ... ) {}
}
diff --git a/node/Node.hpp b/node/Node.hpp
index a8b13003..bf154dc2 100644
--- a/node/Node.hpp
+++ b/node/Node.hpp
@@ -71,7 +71,8 @@ public:
/**
* @return Initialization error or NULL if none
*/
- const char *error() const;
+ const char *error() const
+ throw();
/**
* Send a command to the local node