Added facility to indicate when it should actually check network state while paused.
parent
54adbc10ab
commit
fb9d095e9c
|
@ -87,6 +87,10 @@ namespace WifiSitter
|
|||
this.ProcessingState = false;
|
||||
}
|
||||
|
||||
internal void ShouldCheckState() {
|
||||
this.CheckNet = true;
|
||||
}
|
||||
|
||||
public void UpdateNics(List<TrackedNic> Nics) {
|
||||
foreach (var n in Nics) {
|
||||
if (!_originalNicState.Any(x => x[0] == n.Id)) _originalNicState.Add(new string[] { n.Id, n.IsEnabled.ToString() });
|
||||
|
|
|
@ -384,7 +384,10 @@ namespace WifiSitter
|
|||
switch (_msg.Request) {
|
||||
case "get_netstate":
|
||||
LogLine("Sending netstate to: {0}", _msg.Requestor);
|
||||
if (_paused) netstate.UpdateNics(DiscoverAllNetworkDevices(netstate.Nics));
|
||||
if (_paused && netstate.CheckNet) {
|
||||
netstate.UpdateNics(DiscoverAllNetworkDevices(netstate.Nics));
|
||||
netstate.StateChecked();
|
||||
}
|
||||
response = new WifiSitterIpcMessage("give_netstate", _wsIpc.MyChannelName, "", Newtonsoft.Json.JsonConvert.SerializeObject(new Model.SimpleNetworkState(netstate)));
|
||||
_wsIpc.MsgBroadcaster.SendToChannel(_msg.Target, response.IpcMessageJsonString());
|
||||
break;
|
||||
|
@ -392,7 +395,9 @@ namespace WifiSitter
|
|||
try {
|
||||
LogLine("Taking 5 minute break and restoring interfaces.");
|
||||
OnPause();
|
||||
Task.Delay(5 * 60 * 1000).ContinueWith((task) => { OnContinue(); }, TaskScheduler.FromCurrentSynchronizationContext());
|
||||
Task.Delay(5 * 60 * 1000).ContinueWith((task) => {
|
||||
netstate.ShouldCheckState(); // Main loop should check state again when resuming from paused state
|
||||
OnContinue(); });
|
||||
ResetNicState(netstate);
|
||||
response = new WifiSitterIpcMessage("taking_five", _wsIpc.MyChannelName, "", "");
|
||||
_wsIpc.MsgBroadcaster.SendToChannel(_msg.Target, response.IpcMessageJsonString());
|
||||
|
|
Loading…
Reference in New Issue