CLI communication now working.
This commit is contained in:
parent
70f368fdc3
commit
c9c63074bb
5 changed files with 41 additions and 33 deletions
12
cli.cpp
12
cli.cpp
|
@ -37,6 +37,7 @@
|
|||
#include "node/Constants.hpp"
|
||||
#include "node/Utils.hpp"
|
||||
#include "node/Thread.hpp"
|
||||
#include "node/Condition.hpp"
|
||||
|
||||
using namespace ZeroTier;
|
||||
|
||||
|
@ -51,14 +52,15 @@ static void printHelp(FILE *out,const char *exename)
|
|||
fprintf(out,"Use the 'help' command to get help from ZeroTier One itself."ZT_EOL_S);
|
||||
}
|
||||
|
||||
static volatile uint64_t lastResultTime = 0ULL;
|
||||
static volatile unsigned int numResults = 0;
|
||||
static Condition doneCondition;
|
||||
|
||||
static void resultHandler(void *arg,unsigned long id,const char *line)
|
||||
{
|
||||
lastResultTime = Utils::now();
|
||||
++numResults;
|
||||
fprintf(stdout,"%s"ZT_EOL_S,line);
|
||||
if (strlen(line))
|
||||
fprintf(stdout,"%s"ZT_EOL_S,line);
|
||||
else doneCondition.signal();
|
||||
}
|
||||
|
||||
int main(int argc,char **argv)
|
||||
|
@ -118,9 +120,7 @@ int main(int argc,char **argv)
|
|||
Node::LocalClient client(authToken.c_str(),&resultHandler,(void *)0);
|
||||
client.send(command.c_str());
|
||||
|
||||
lastResultTime = Utils::now();
|
||||
while ((Utils::now() - lastResultTime) < 300)
|
||||
Thread<void>::sleep(50);
|
||||
doneCondition.wait(1000);
|
||||
|
||||
if (!numResults) {
|
||||
fprintf(stdout,"ERROR: no results received. Is ZeroTier One running?"ZT_EOL_S);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue