private void WaitForVpnThreadToFinish() { if (vpnThread == null) { return; } try { vpnThread.Join(THREAD_MAX_JOIN_TIME); } catch (Java.Lang.InterruptedException) { EddieLogger.Error("VPNService.WaitVpnThreadToFinish(): VPN thread has been interrupted"); } finally { if (vpnThread.IsAlive) { EddieLogger.Error("VPNService.WaitVpnThreadToFinish(): VPN thread did not end"); } else { EddieLogger.Info("VPN thread execution has completed"); } } }
private void LoadApplications(string appList) { List <string> selectedPackages = new List <string>(); string[] valArray = appList.Split(SettingsManager.DEFAULT_SPLIT_SEPARATOR); foreach (string item in valArray) { selectedPackages.Add(item); } applicationList.Clear(); IList <ApplicationInfo> applications = base.PackageManager.GetInstalledApplications(global::Android.Content.PM.PackageInfoFlags.MetaData); foreach (ApplicationInfo app in applications) { ApplicationItem item = new ApplicationItem(this, app); item.Selected = selectedPackages.Contains(app.PackageName); try { item.Icon = app.LoadIcon(PackageManager); } catch (System.Exception e) { EddieLogger.Error(e); } applicationList.Add(item); } applicationList.Sort((a, b) => a.Title.CompareTo(b.Title)); }
private void DoRun() { OpenVPNClient client = null; lock (clientSync) { if (openVPNClient == null) { string errMsg = "OpenVPNTunnel::DoRun(): OpenVPN client is not initialized"; EddieLogger.Error(errMsg); throw new Exception(errMsg); } client = openVPNClient; // Do NOT call m_client.Start under m_clientSync'lock } // Dispatcher must be instantiated before starting to allow handling stop requests from outside while the client isn't started yet // RunDispatcher(); NativeMethods.EddieLibraryResult result = client.Start(); if (result.code != NativeMethods.ResultCode.SUCCESS) { string errMsg = string.Format("OpenVPNTunnel::DoRun(): Failed to start OpenVPN client. {0}", result.description); EddieLogger.Error(errMsg); throw new Exception(errMsg); } }
public override void OnCreate() { base.OnCreate(); if (!m_initialized) { EddieLogger.Init(this); EddieLogger.Info("Initializing eddie library"); EddieLogger.Info("{0} - {1}", NativeMethods.EddieLibrary.LibraryQualifiedName(), NativeMethods.EddieLibrary.LibraryReleaseDate()); EddieLogger.Info("Eddie Library API level {0}", NativeMethods.EddieLibrary.LibraryApiLevel()); NativeMethods.EddieLibraryResult result = NativeMethods.EddieLibrary.Init(); if (result.code == NativeMethods.ResultCode.SUCCESS) { m_initialized = true; EddieLogger.Info("Eddie Library: OpenVPN initialization succeeded"); } else { EddieLogger.Error("Eddie Library: OpenVPN initialization failed. {0}", result.description); } } }
public NativeMethods.ovpn3_transport_stats GetTransportStats() { lock (clientSync) { if (openVPNClient == null) { string errMsg = "OpenVPNTunnel::GetTransportStats(): OpenVPN client is not initialized"; EddieLogger.Error(errMsg); throw new Exception(errMsg); } NativeMethods.ovpn3_transport_stats stats = new NativeMethods.ovpn3_transport_stats(); NativeMethods.EddieLibraryResult result = openVPNClient.GetTransportStats(ref stats); if (result.code != NativeMethods.ResultCode.SUCCESS) { string errMsg = string.Format("OpenVPNTunnel::GetTransportStats(): Failed to get OpenVPN transport stats. {0}", result.description); EddieLogger.Error(errMsg); throw new Exception(errMsg); } return(stats); } }
public void HandleThreadException(Exception e) { EddieLogger.Error(e); LastError = e.Message; DoStop(); }
public override void OnRevoke() { EddieLogger.Error("VPNService.OnRevoke"); // Another VPN may have started here or Android is shutting down the VPN: by now there is no way to "block" the operation and the service must be stopped gracefully UpdateService(false); base.OnRevoke(); }
private void OnTunBuilderTeardown(/*bool*/ int disconnect) { EddieLogger.Debug("OnTunBuilderTeardown(disconnect={0})", disconnect); try { OnTunBuilderTeardownImpl(disconnect); } catch (Exception e) { EddieLogger.Error("OnTunBuilderTeardown", e); } }
private void OnTunBuilderEstablishLite() { EddieLogger.Debug("OnTunBuilderEstablishLite"); try { OnTunBuilderEstablishLiteImpl(); } catch (Exception e) { EddieLogger.Error("OnTunBuilderEstablishLite", e); } }
private void OnConnectAttach() { EddieLogger.Debug("OnConnectAttach"); try { OnConnectAttachImpl(); } catch (Exception e) { EddieLogger.Error("OnConnectAttach", e); } }
private void OnConnectRun() { EddieLogger.Debug("OnConnectRun"); try { OnConnectRunImpl(); } catch (Exception e) { EddieLogger.Error("OnConnectRun", e); } }
private void OnConnectSessionStop() { EddieLogger.Debug("OnConnectSessionStop"); try { OnConnectSessionStopImpl(); } catch (Exception e) { EddieLogger.Error("OnConnectSessionStop", e); } }
public void Stop() { try { SendStopMessage(); } catch (Exception e) { EddieLogger.Error(e); OnStatusChanged(null, null, e.Message); } }
private void DoSetOption(string option, string value) { NativeMethods.EddieLibraryResult result = openVPNClient.SetOption(option, value); if (result.code != NativeMethods.ResultCode.SUCCESS) { string errMsg = String.Format("OpenVPNTunnel::DoSetOption(): Failed to set option '{0}' with value '{1}'. {2}", option, value, result.description); EddieLogger.Error(errMsg); throw new Exception(errMsg); } }
private void TryRestoreLastProfile(Context context) { EddieLogger.Debug("EddieBroadcastReceiver.TryRestoreLastProfile"); if (VPNService.Prepare(context.ApplicationContext) != null) { EddieLogger.Debug("VPNService.Prepare requires confirmation"); return; } if (!settingsManager.SystemRestoreLastProfile) { EddieLogger.Debug("EddieBroadcastReceiver: SystemRestoreLastProfile disabled"); return; } if (!settingsManager.SystemLastProfileIsConnected) { EddieLogger.Debug("EddieBroadcastReceiver: SystemLastProfileIsConnected false"); return; } string lastProfile = settingsManager.SystemLastProfile; if (SupportTools.Empty(lastProfile)) { EddieLogger.Debug("EddieBroadcastReceiver: lastProfile is empty"); return; } EddieLogger.Debug("EddieBroadcastReceiver: restoring last profile"); try { Bundle args = new Bundle(); args.PutString(VPNService.PARAM_PROFILE, lastProfile); Intent intent = new Intent(context, typeof(VPNService)); intent.PutExtra(VPNService.PARAM_START, true); intent.PutExtra(VPNService.EXTRA_RUN_ARGS, args); context.StartService(intent); } catch (Exception e) { EddieLogger.Error("TryRestoreLastProfile", e); } }
private int OnTunBuilderSetLayer(int layer) { EddieLogger.Debug("OnTunBuilderSetLayer(layer={0})", layer); try { return(OnTunBuilderSetLayerImpl(layer)); } catch (Exception e) { EddieLogger.Error("OnTunBuilderSetLayer", e); } return(NativeMethods.ERROR); }
private int OnTunBuilderSetRemoteAddress(string address, /*bool*/ int ipv6) { EddieLogger.Debug("OnTunBuilderSetRemoteAddress(address={0}, ipv6={1})", address, ipv6); try { return(OnTunBuilderSetRemoteAddressImpl(address, ipv6)); } catch (Exception e) { EddieLogger.Error("OnTunBuilderSetRemoteAddress", e); } return(NativeMethods.ERROR); }
private int OnTunBuilderAddSearchDomain(string domain) { EddieLogger.Debug("OnTunBuilderAddSearchDomain(domain={0})", domain); try { return(OnTunBuilderAddSearchDomainImpl(domain)); } catch (Exception e) { EddieLogger.Error("OnTunBuilderAddSearchDomain", e); } return(NativeMethods.ERROR); }
private int OnTunBuilderExcludeRoute(string address, int prefix_length, int metric, /*bool*/ int ipv6) { EddieLogger.Debug("OnTunBuilderExcludeRoute(address={0}, prefix_length={1}, metric={2}, ipv6={3})", address, prefix_length, metric, ipv6); try { return(OnTunBuilderExcludeRouteImpl(address, prefix_length, metric, ipv6)); } catch (Exception e) { EddieLogger.Error("OnTunBuilderExcludeRoute", e); } return(NativeMethods.ERROR); }
private int OnTunBuilderAddProxyBypass(string bypass_host) { EddieLogger.Debug("OnTunBuilderAddProxyBypass(bypass_host={0})", bypass_host); try { return(OnTunBuilderAddProxyBypassImpl(bypass_host)); } catch (Exception e) { EddieLogger.Error("OnTunBuilderAddProxyBypass", e); } return(NativeMethods.ERROR); }
private int OnTunBuilderSetSessionName(string name) { EddieLogger.Debug("OnTunBuilderSetSessionName(name={0})", name); try { return(OnTunBuilderSetSessionNameImpl(name)); } catch (Exception e) { EddieLogger.Error("OnTunBuilderSetSessionName", e); } return(NativeMethods.ERROR); }
private int OnTunBuilderSetProxyAutoConfigUrl(string url) { EddieLogger.Debug("OnTunBuilderSetProxyAutoConfigUrl(url={0})", url); try { return(OnTunBuilderSetProxyAutoConfigUrlImpl(url)); } catch (Exception e) { EddieLogger.Error("OnTunBuilderSetProxyAutoConfigUrl", e); } return(NativeMethods.ERROR); }
private int OnTunBuilderPersist() { EddieLogger.Debug("OnTunBuilderPersist"); try { return(OnTunBuilderPersistImpl()); } catch (Exception e) { EddieLogger.Error("OnTunBuilderPersist", e); } return(NativeMethods.ERROR); }
private int OnTunBuildeRerouteGW(/*bool*/ int ipv4, /*bool*/ int ipv6, int flags) { EddieLogger.Debug("OnTunBuildeRerouteGW(ipv4={0}, ipv6={1}, flags={2})", ipv4, ipv6, flags); try { return(OnTunBuildeRerouteGWImpl(ipv4, ipv6, flags)); } catch (Exception e) { EddieLogger.Error("OnTunBuildeRerouteGW", e); } return(NativeMethods.ERROR); }
private int OnTunBuilderSetProxyHttps(string host, int port) { EddieLogger.Debug("OnTunBuilderSetProxyHttps(host={0}, port={1})", host, port); try { return(OnTunBuilderSetProxyHttpsImpl(host, port)); } catch (Exception e) { EddieLogger.Error("OnTunBuilderSetProxyHttps", e); } return(NativeMethods.ERROR); }
private int OnTunBuilderAddAddress(string address, int prefix_length, string gateway, /*bool*/ int ipv6, /*bool*/ int net30) { EddieLogger.Debug("OnTunBuilderAddAddress(address={0}, prefix_length={1}, gateway={2}, ipv6={3}, net30={4})", address, prefix_length, gateway, ipv6, net30); try { return(OnTunBuilderAddAddressImpl(address, prefix_length, gateway, ipv6, net30)); } catch (Exception e) { EddieLogger.Error("OnTunBuilderAddAddress", e); } return(NativeMethods.ERROR); }
private int OnTunBuilderEstablish() { EddieLogger.Debug("OnTunBuilderEstablish"); try { return(OnTunBuilderEstablishImpl()); } catch (Exception e) { EddieLogger.Error("OnTunBuilderEstablish", e); } return(NativeMethods.ERROR); }
private int OnTunBuilderSetRouteMetricDefault(int metric) { EddieLogger.Debug("OnTunBuilderSetRouteMetricDefault(metric={0})", metric); try { return(OnTunBuilderSetRouteMetricDefaultImpl(metric)); } catch (Exception e) { EddieLogger.Error("OnTunBuilderSetRouteMetricDefault", e); } return(NativeMethods.ERROR); }
private int OnTunBuilderAddWinsServer(string address) { EddieLogger.Debug("OnTunBuilderAddWinsServer(address={0})", address); try { return(OnTunBuilderAddWinsServerImpl(address)); } catch (Exception e) { EddieLogger.Error("OnTunBuilderAddWinsServer", e); } return(NativeMethods.ERROR); }
private int OnTunBuilderSetAdapterDomainSuffix(string name) { EddieLogger.Debug("OnTunBuilderSetAdapterDomainSuffix(name={0})", name); try { return(OnTunBuilderSetAdapterDomainSuffixImpl(name)); } catch (Exception e) { EddieLogger.Error("OnTunBuilderSetAdapterDomainSuffix", e); } return(NativeMethods.ERROR); }