Browse Source

Fix command line interface.

pull/1/head
Adam Ierymenko 12 years ago
parent
commit
d9b91758e0
  1. 10
      main.cpp
  2. 6
      node/Node.cpp
  3. 6
      node/NodeConfig.cpp

10
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;

6
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)

6
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()

Loading…
Cancel
Save