From d75f2f7051c3d0b92cc801e32565b643a0bac4c0 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Wed, 29 Jan 2014 17:24:55 -0800 Subject: SIGHUP now causes resync with peers. --- node/Node.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'node/Node.cpp') diff --git a/node/Node.cpp b/node/Node.cpp index 9fc8ee1f..106c508d 100644 --- a/node/Node.cpp +++ b/node/Node.cpp @@ -224,6 +224,7 @@ struct _NodeImpl volatile Node::ReasonForTermination reasonForTermination; volatile bool started; volatile bool running; + volatile bool resynchronize; inline Node::ReasonForTermination terminate() { @@ -359,6 +360,7 @@ Node::Node(const char *hp,unsigned int port,unsigned int controlPort) impl->reasonForTermination = Node::NODE_RUNNING; impl->started = false; impl->running = false; + impl->resynchronize = false; } Node::~Node() @@ -528,7 +530,11 @@ Node::ReasonForTermination Node::run() } uint64_t now = Utils::now(); - bool resynchronize = false; + bool resynchronize = impl->resynchronize; + if (resynchronize) { + LOG("manual resynchronize ordered, resyncing with network"); + } + impl->resynchronize = false; // If it looks like the computer slept and woke, resynchronize. if (lastDelayDelta >= ZT_SLEEP_WAKE_DETECTION_THRESHOLD) { @@ -657,6 +663,13 @@ void Node::terminate(ReasonForTermination reason,const char *reasonText) ((_NodeImpl *)_impl)->renv.mainLoopWaitCondition.signal(); } +void Node::resync() + throw() +{ + ((_NodeImpl *)_impl)->resynchronize = true; + ((_NodeImpl *)_impl)->renv.mainLoopWaitCondition.signal(); +} + class _VersionStringMaker { public: -- cgit v1.2.3