summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2014-03-21 14:58:35 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2014-03-21 14:58:35 -0700
commitd9b91758e044a70242dee1697345cd2ee4a096d4 (patch)
treeb3e0ba0a848e70efd6be26c23a91270d72037161
parent4e26ade2df364b7149b1cd720f9e225542684e06 (diff)
downloadinfinitytier-d9b91758e044a70242dee1697345cd2ee4a096d4.tar.gz
infinitytier-d9b91758e044a70242dee1697345cd2ee4a096d4.zip
Fix command line interface.
-rw-r--r--main.cpp10
-rw-r--r--node/Node.cpp6
-rw-r--r--node/NodeConfig.cpp6
3 files changed, 13 insertions, 9 deletions
diff --git a/main.cpp b/main.cpp
index 9a8478ae..647baa36 100644
--- a/main.cpp
+++ b/main.cpp
@@ -116,9 +116,11 @@ static void printHelp(FILE *out,const char *cn)
static void _CBresultHandler(void *arg,const char *line)
{
- if ((line)&&(line[0])) {
- fprintf(stdout,"%s"ZT_EOL_S,line);
- } else *((bool *)arg) = true;
+ if (line) {
+ if ((line[0] == '.')&&(line[1] == (char)0))
+ *((bool *)arg) = true;
+ else fprintf(stdout,"%s"ZT_EOL_S,line);
+ }
}
#ifdef __WINDOWS__
@@ -160,7 +162,7 @@ static int main(int argc,char **argv)
}
client.send(query.c_str());
while (!done)
- Thread::sleep(250); // ghetto
+ Thread::sleep(100); // ghetto
} catch ( ... ) {
fprintf(stderr,"%s: fatal error: unable to connect (is ZeroTier One running?)"ZT_EOL_S,argv[0]);
return 1;
diff --git a/node/Node.cpp b/node/Node.cpp
index 1ffc0e79..20a049bc 100644
--- a/node/Node.cpp
+++ b/node/Node.cpp
@@ -90,8 +90,10 @@ struct _NodeControlClientImpl
static void _CBipcResultHandler(void *arg,IpcConnection *ipcc,IpcConnection::EventType event,const char *result)
{
- if ((event == IpcConnection::IPC_EVENT_COMMAND)&&(result))
- ((_NodeControlClientImpl *)arg)->resultHandler(((_NodeControlClientImpl *)arg)->arg,result);
+ if ((event == IpcConnection::IPC_EVENT_COMMAND)&&(result)) {
+ if (strcmp(result,"200 auth OK"))
+ ((_NodeControlClientImpl *)arg)->resultHandler(((_NodeControlClientImpl *)arg)->arg,result);
+ }
}
Node::NodeControlClient::NodeControlClient(const char *hp,void (*resultHandler)(void *,const char *),void *arg,const char *authToken)
diff --git a/node/NodeConfig.cpp b/node/NodeConfig.cpp
index 6f122498..30438fc6 100644
--- a/node/NodeConfig.cpp
+++ b/node/NodeConfig.cpp
@@ -195,12 +195,12 @@ void NodeConfig::_doCommand(IpcConnection *ipcc,const char *commandLine)
Mutex::Lock _l(_connections_m);
_connections[ipcc] = true;
ipcc->printf("200 auth OK"ZT_EOL_S);
- } else ipcc->printf("403 auth FAILED"ZT_EOL_S);
+ } else ipcc->printf("403 auth failed"ZT_EOL_S);
} else {
{
Mutex::Lock _l(_connections_m);
if (!_connections[ipcc]) {
- ipcc->printf("403 not authorized"ZT_EOL_S""ZT_EOL_S);
+ ipcc->printf("403 %s unauthorized"ZT_EOL_S"."ZT_EOL_S,cmd[0].c_str());
return;
}
}
@@ -307,7 +307,7 @@ void NodeConfig::_doCommand(IpcConnection *ipcc,const char *commandLine)
}
}
- ipcc->printf(ZT_EOL_S); // blank line ends response
+ ipcc->printf("."ZT_EOL_S); // blank line ends response
}
void NodeConfig::_readLocalConfig()