@@ -128,16 +128,17 @@ public bool IsDnsCryptAutomaticModeEnabled
128128 DnscryptProxyConfiguration . server_names = null ;
129129 SaveDnsCryptConfiguration ( ) ;
130130 GetAvailableResolvers ( ) ;
131+ HandleService ( ) ;
131132 }
132133 else
133134 {
134135 if ( DnscryptProxyConfiguration . server_names == null || DnscryptProxyConfiguration . server_names . Count == 0 )
135136 {
136137 _isDnsCryptAutomaticModeEnabled = true ;
138+ _windowManager . ShowMetroMessageBox ( "At least one server must be selected. Otherwise, dnscrypt-proxy uses all servers corresponding to the selected filters." , "No server selected" ,
139+ MessageBoxButton . OK , BoxType . Warning ) ;
137140 }
138141 }
139-
140-
141142 NotifyOfPropertyChange ( ( ) => IsDnsCryptAutomaticModeEnabled ) ;
142143 }
143144 }
@@ -399,6 +400,8 @@ public void SaveDnsCryptConfiguration()
399400 }
400401 }
401402 }
403+ _isResolverRunning = DnsCryptProxyManager . IsDnsCryptProxyRunning ( ) ;
404+ NotifyOfPropertyChange ( ( ) => IsResolverRunning ) ;
402405 }
403406 catch ( Exception ) { }
404407 IsSavingConfiguration = false ;
@@ -466,7 +469,6 @@ private async void HandleService()
466469 await Task . Delay ( Global . ServiceStopTime ) . ConfigureAwait ( false ) ;
467470 _isResolverRunning = DnsCryptProxyManager . IsDnsCryptProxyRunning ( ) ;
468471 NotifyOfPropertyChange ( ( ) => IsResolverRunning ) ;
469- ResetNetworkCards ( ) ;
470472 }
471473 else
472474 {
@@ -477,31 +479,21 @@ private async void HandleService()
477479 await Task . Delay ( Global . ServiceStartTime ) . ConfigureAwait ( false ) ;
478480 _isResolverRunning = DnsCryptProxyManager . IsDnsCryptProxyRunning ( ) ;
479481 NotifyOfPropertyChange ( ( ) => IsResolverRunning ) ;
480- ResetNetworkCards ( ) ;
481482 }
482483 else
483484 {
484485 //install and start the service
485-
486-
487- var x = DnsCryptProxyManager . GetAvailableResolvers ( ) ;
488486 await Task . Run ( ( ) => DnsCryptProxyManager . Install ( ) ) . ConfigureAwait ( false ) ;
489487 await Task . Delay ( Global . ServiceStartTime ) . ConfigureAwait ( false ) ;
490488 await Task . Run ( ( ) => { DnsCryptProxyManager . Start ( ) ; } ) . ConfigureAwait ( false ) ;
491489 await Task . Delay ( Global . ServiceStartTime ) . ConfigureAwait ( false ) ;
492490 _isResolverRunning = DnsCryptProxyManager . IsDnsCryptProxyRunning ( ) ;
493491 NotifyOfPropertyChange ( ( ) => IsResolverRunning ) ;
494- ResetNetworkCards ( ) ;
495492 }
496493 }
497494 IsWorkingOnService = false ;
498495 }
499496
500- private static void ResetNetworkCards ( )
501- {
502-
503- }
504-
505497 public bool IsWorkingOnService
506498 {
507499 get => _isWorkingOnService ;
@@ -597,6 +589,11 @@ public async void NetworkCardClicked(LocalNetworkInterface localNetworkInterface
597589 DnscryptProxyConfigurationManager . DnscryptProxyConfiguration . listen_addresses . ToList ( ) ) ) ;
598590 localNetworkInterface . UseDnsCrypt = status ;
599591 }
592+ else
593+ {
594+ _windowManager . ShowMetroMessageBox ( "You should start the DnsCrypt service first!" , "Service not running" ,
595+ MessageBoxButton . OK , BoxType . Warning ) ;
596+ }
600597 }
601598 await Task . Delay ( 1000 ) . ConfigureAwait ( false ) ;
602599 localNetworkInterface . IsChangeable = true ;
@@ -611,6 +608,12 @@ public void SaveLocalServers()
611608 {
612609 IsDnsCryptAutomaticModeEnabled = false ;
613610 SaveDnsCryptConfiguration ( ) ;
611+ HandleService ( ) ;
612+ }
613+ else
614+ {
615+ _windowManager . ShowMetroMessageBox ( "At least one server must be selected. Otherwise, dnscrypt-proxy uses all servers corresponding to the selected filters." , "No server selected" ,
616+ MessageBoxButton . OK , BoxType . Warning ) ;
614617 }
615618 }
616619
@@ -644,12 +647,19 @@ private void GetAvailableResolvers()
644647 _resolvers . Clear ( ) ;
645648 var resolvers = DnsCryptProxyManager . GetAvailableResolvers ( ) ;
646649 _resolvers . AddRange ( resolvers ) ;
650+
647651 }
648652
649- /*
650- private void ReadStamp()
653+ private void GetAllResolvers ( )
651654 {
652- var serverNames = new List<string>();
655+
656+ var resolvers = DnsCryptProxyManager . GetAllResolvers ( ) ;
657+
658+ if ( resolvers != null )
659+ {
660+
661+ }
662+ /*var serverNames = new List<string>();
653663 if (DnscryptProxyConfiguration.server_names != null && DnscryptProxyConfiguration.server_names.Count > 0)
654664 {
655665 serverNames = DnscryptProxyConfiguration.server_names.ToList();
@@ -710,10 +720,10 @@ private void ReadStamp()
710720 }
711721
712722 _resolvers.Add(server);
713-
723+
714724 }
715- }
716- }*/
725+ }*/
726+ }
717727
718728 #endregion
719729
@@ -731,12 +741,6 @@ public async void UninstallService()
731741 if ( result == MessageBoxResult . Yes )
732742 {
733743 IsUninstallingService = true ;
734- await Task . Run ( ( ) =>
735- {
736- DnsCryptProxyManager . Uninstall ( ) ;
737- } ) . ConfigureAwait ( false ) ;
738- await Task . Delay ( Global . ServiceUninstallTime ) . ConfigureAwait ( false ) ;
739-
740744
741745 if ( DnsCryptProxyManager . IsDnsCryptProxyRunning ( ) )
742746 {
@@ -746,6 +750,11 @@ await Task.Run(() =>
746750 } ) . ConfigureAwait ( false ) ;
747751 await Task . Delay ( Global . ServiceStopTime ) . ConfigureAwait ( false ) ;
748752 }
753+ await Task . Run ( ( ) =>
754+ {
755+ DnsCryptProxyManager . Uninstall ( ) ;
756+ } ) . ConfigureAwait ( false ) ;
757+ await Task . Delay ( Global . ServiceUninstallTime ) . ConfigureAwait ( false ) ;
749758 _isResolverRunning = DnsCryptProxyManager . IsDnsCryptProxyRunning ( ) ;
750759 NotifyOfPropertyChange ( ( ) => IsResolverRunning ) ;
751760
0 commit comments