Beispiel #1
0
        public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
        {
            StartCommandResult result = StartCommandResult.Sticky;

            bool?run = null;

            if (intent != null)
            {
                if (intent.GetBooleanExtra(PARAM_START, false))
                {
                    EddieLogger.Debug("VPNService.OnStartCommand: START");

                    run = true;
                }
                else if (intent.GetBooleanExtra(PARAM_STOP, false))
                {
                    EddieLogger.Debug("VPNService.OnStartCommand: STOP");

                    run = false;
                }
            }
            else
            {
                EddieLogger.Debug("VPNService.OnStartCommand (no intent)");
            }

            if (run != null)
            {
                UpdateService(run.Value, intent.GetBundleExtra(EXTRA_RUN_ARGS));
            }

            return(result);
        }
Beispiel #2
0
 public void AddDNSServer(string address, int ipv6)
 {
     if (customDNS)
     {
         EddieLogger.Debug("DNS forced (address '{0}' will be skipped)", address);
     }
     else
     {
         DoAddDNS(address);
     }
 }
Beispiel #3
0
 public void SetMTU(int mtu)
 {
     if (forceMTU)
     {
         EddieLogger.Debug("MTU forced (value '{0}' will be skipped)", mtu);
     }
     else
     {
         vpnServiceBuilder.SetMtu(mtu);
     }
 }
Beispiel #4
0
        private void OnTunBuilderEstablishLite()
        {
            EddieLogger.Debug("OnTunBuilderEstablishLite");

            try
            {
                OnTunBuilderEstablishLiteImpl();
            }
            catch (Exception e)
            {
                EddieLogger.Error("OnTunBuilderEstablishLite", e);
            }
        }
Beispiel #5
0
        private void OnTunBuilderTeardown(/*bool*/ int disconnect)
        {
            EddieLogger.Debug("OnTunBuilderTeardown(disconnect={0})", disconnect);

            try
            {
                OnTunBuilderTeardownImpl(disconnect);
            }
            catch (Exception e)
            {
                EddieLogger.Error("OnTunBuilderTeardown", e);
            }
        }
Beispiel #6
0
        private void OnConnectAttach()
        {
            EddieLogger.Debug("OnConnectAttach");

            try
            {
                OnConnectAttachImpl();
            }
            catch (Exception e)
            {
                EddieLogger.Error("OnConnectAttach", e);
            }
        }
Beispiel #7
0
        private void OnConnectRun()
        {
            EddieLogger.Debug("OnConnectRun");

            try
            {
                OnConnectRunImpl();
            }
            catch (Exception e)
            {
                EddieLogger.Error("OnConnectRun", e);
            }
        }
Beispiel #8
0
        private void OnConnectSessionStop()
        {
            EddieLogger.Debug("OnConnectSessionStop");

            try
            {
                OnConnectSessionStopImpl();
            }
            catch (Exception e)
            {
                EddieLogger.Error("OnConnectSessionStop", e);
            }
        }
        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);
            }
        }
Beispiel #10
0
        private void DoAddDNS(string address)
        {
            address = address.Trim();

            if (SupportTools.Empty(address))
            {
                throw new Exception("Invalid DNS server");
            }

            EddieLogger.Debug("Adding DNS server '{0}'", address);

            vpnServiceBuilder.AddDnsServer(address);
            hasDNS = true;
        }
Beispiel #11
0
        private void ClearContexts()
        {
            EddieLogger.Debug("ClearContexts");

            lock (contextsSync)
            {
                while (m_contexts.Count > 0)
                {
                    EddieLogger.Debug("Disposing context");

                    SupportTools.SafeDispose(m_contexts.Pop());
                }
            }
        }
Beispiel #12
0
        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);
        }
Beispiel #13
0
        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);
        }
Beispiel #14
0
        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);
        }
Beispiel #15
0
        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);
        }
Beispiel #16
0
        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);
        }
Beispiel #17
0
        private int OnTunBuilderPersist()
        {
            EddieLogger.Debug("OnTunBuilderPersist");

            try
            {
                return(OnTunBuilderPersistImpl());
            }
            catch (Exception e)
            {
                EddieLogger.Error("OnTunBuilderPersist", e);
            }

            return(NativeMethods.ERROR);
        }
Beispiel #18
0
        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);
        }
Beispiel #19
0
        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);
        }
Beispiel #20
0
        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);
        }
Beispiel #21
0
        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);
        }
Beispiel #22
0
        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);
        }
Beispiel #23
0
        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);
        }
Beispiel #24
0
        private int OnTunBuilderEstablish()
        {
            EddieLogger.Debug("OnTunBuilderEstablish");

            try
            {
                return(OnTunBuilderEstablishImpl());
            }
            catch (Exception e)
            {
                EddieLogger.Error("OnTunBuilderEstablish", e);
            }

            return(NativeMethods.ERROR);
        }
Beispiel #25
0
        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);
        }
Beispiel #26
0
        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);
        }
Beispiel #27
0
        private int OnSocketProtect(int socket)
        {
            EddieLogger.Debug("OnSocketProtect(socket={0})", socket);

            try
            {
                return(OnSocketProtectImpl(socket));
            }
            catch (Exception e)
            {
                EddieLogger.Error("OnSocketProtect", e);
            }

            return(NativeMethods.ERROR);
        }
Beispiel #28
0
        private int OnTunBuilderSetMTU(int mtu)
        {
            EddieLogger.Debug("OnTunBuilderSetMTU(mtu={0})", mtu);

            try
            {
                ActiveContext.SetMTU(mtu);

                return(NativeMethods.SUCCESS);
            }
            catch (Exception e)
            {
                EddieLogger.Error("OnTunBuilderSetMTU", e);
            }

            return(NativeMethods.ERROR);
        }
Beispiel #29
0
        private int OnTunBuilderSetBlockIPV6(/*bool*/ int block_ipv6)
        {
            EddieLogger.Debug("OnTunBuilderSetBlockIPV6(block_ipv6={0})", block_ipv6);

            try
            {
                ActiveContext.SetBlockIPV6(SupportTools.BoolCast(block_ipv6));

                return(NativeMethods.SUCCESS);
            }
            catch (Exception e)
            {
                EddieLogger.Error("OnTunBuilderSetBlockIPV6", e);
            }

            return(NativeMethods.ERROR);
        }
        public override void OnReceive(Context context, Intent intent)
        {
            string action = intent.Action;

            EddieLogger.Init(context);

            EddieLogger.Debug(string.Format("EddieBroadcastReceiver.OnReceive (action='{0}')", action));

            if (action == global::Android.Content.Intent.ActionBootCompleted)
            {
                TryRestoreLastProfile(context);
            }
            else
            {
                EddieLogger.Error(string.Format("Unhandled action '{0}' received in EventsReceiver", action));
            }
        }