diff --git a/main.cpp b/main.cpp index 9a8478aea..647baa363 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 1ffc0e79b..20a049bcf 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 6f1224983..30438fc68 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()