Exemplo n.º 1
0
        bool reNewIp()
        {
            string ip = GetIP();

            privateManager.stopDHCP();
            if ((privateManager.connectionGuid != null) && !String.IsNullOrEmpty(ip) && shouldStart_)
            {
                if (privateManager.setIP(ip))
                {
                    events.put(SOFTEVENT.FIREROUTESTART, 0);
                    state_ = getawayState.Started;
                    notifier.notify("start");
                }
                else
                {
                    state_ = getawayState.StartFailed;
                    events.put(SOFTEVENT.RENEWIP, 0);
                    return(false);
                }
            }
            if (OnRouterStart != null)
            {
                OnRouterStart(this, null);
            }
            state_ = getawayState.Started;
            notifier.notify("start");
            return(true);
        }
Exemplo n.º 2
0
 private void intStop()
 {
     if (state_ == getawayState.Stopping)
     {
         return;
     }
     if (state_ == getawayState.Stopped)
     {
         return;
     }
     if (state_ == getawayState.StopFailed)
     {
         return;
     }
     Trace.TraceInformation("Getaway stopping");
     state_ = getawayState.Stopping;
     try {
         privateManager.networkStop();
         if (this.icsManager.SharingInstalled)
         {
             this.icsManager.DisableIcsOnAll();
         }
         state_ = getawayState.Stopped;
     } catch {
         state_ = getawayState.StopFailed;
     }
 }
Exemplo n.º 3
0
        public void Start()
        {
            //          if (DateTime.Now > DateTime.ParseExact("15.04.2013", "dd.MM.yyyy", null)) return; //Date
            if (this.currentSharedConnectionGuid != null)
            {
                shouldStart_ = true;
                icsManager.setPublicConnection(this.currentSharedConnectionGuid);
                publicConnected_ = icsManager.IsPublicConnected();

                state_ = getawayState.Initialization;
                events.put(SOFTEVENT.STARTINIT, 0);
            }
        }
Exemplo n.º 4
0
 void testPrivateConnected()
 {
     if (state_ == getawayState.Starting)
     {
         return;
     }
     if (state_ == getawayState.StartingIP)
     {
         return;
     }
     if (state_ == getawayState.Started)
     {
         return;
     }
     privateManager.updateConnectionGuid();
     if (privateManager.connectionGuid != null)
     {
         if (privateManager.Started)
         {
             privateManager.networkStop();
         }
         else
         {
             Trace.TraceInformation("Getaway starting");
             state_ = getawayState.Starting;
             if (publicConnected_)
             {
                 try {
                     if (this.icsManager.SharingInstalled)
                     {
                         this.icsManager.setPrivateConnection(privateManager.connectionGuid);
                         privateManager.startNetwork();
                         icsManager.EnableIcs();
                         state_ = getawayState.StartingIP;
                         return;
                     }
                 } catch (Exception e) {
                     Trace.TraceInformation("Getaway start failed: {0}", e.Message);
                 }
             }
             state_ = getawayState.StartFailed;
         }
     }
 }
Exemplo n.º 5
0
 void testPrivateConnected()
 {
     if (state_ == getawayState.Starting) return;
     if (state_ == getawayState.StartingIP) return;
     if (state_ == getawayState.Started) return;
     privateManager.updateConnectionGuid();
     if (privateManager.connectionGuid != null) {
         if (privateManager.Started)
             privateManager.networkStop();
         else {
             Trace.TraceInformation("Getaway starting");
             state_ = getawayState.Starting;
             if (publicConnected_)
                 try {
                     if (this.icsManager.SharingInstalled) {
                         this.icsManager.setPrivateConnection(privateManager.connectionGuid);
                         privateManager.startNetwork();
                         icsManager.EnableIcs();
                         state_ = getawayState.StartingIP;
                         return;
                     }
                 } catch (Exception e) {
                     Trace.TraceInformation("Getaway start failed: {0}", e.Message);
                 }
             state_ = getawayState.StartFailed;
         }
     }
 }
Exemplo n.º 6
0
 bool reNewIp()
 {
     string ip = GetIP();
     privateManager.stopDHCP();
     if ((privateManager.connectionGuid != null) && !String.IsNullOrEmpty(ip) && shouldStart_) {
         if (privateManager.setIP(ip)) {
             events.put(SOFTEVENT.FIREROUTESTART, 0);
             state_ = getawayState.Started;
             notifier.notify("start");
         } else {
             state_ = getawayState.StartFailed;
             events.put(SOFTEVENT.RENEWIP, 0);
             return false;
         }
     }
     if (OnRouterStart != null) OnRouterStart(this, null);
     state_ = getawayState.Started;
     notifier.notify("start");
     return true;
 }
Exemplo n.º 7
0
 private void intStop()
 {
     if (state_ == getawayState.Stopping) return;
     if (state_ == getawayState.Stopped) return;
     if (state_ == getawayState.StopFailed) return;
     Trace.TraceInformation("Getaway stopping");
     state_ = getawayState.Stopping;
     try {
         privateManager.networkStop();
         if (this.icsManager.SharingInstalled) {
             this.icsManager.DisableIcsOnAll();
         }
         state_ = getawayState.Stopped;
     } catch {
         state_ = getawayState.StopFailed;
     }
 }
Exemplo n.º 8
0
 void events_processor(object sender, softEventQueue<SOFTEVENT>.EventType e)
 {
     switch (e.ev) {
         case SOFTEVENT.LOAD:
             this.icsManager = new IcsManager();
             state_ = getawayState.Idle;
             shouldStart_ = false;
             privateManager = new privateNetManager();
             events.put(SOFTEVENT.LOADINIT, 0);
             break;
         case SOFTEVENT.LOADINIT:
             try {
                 privateManager.init();
             } catch {
                 startTimer();
                 break;
             }
             events.put(SOFTEVENT.LOAD_SAVED_STATE, 0);
             NetworkChange.NetworkAddressChanged += new NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged);
             NetworkChange.NetworkAvailabilityChanged += new NetworkAvailabilityChangedEventHandler(NetworkChange_NetworkAvailabilityChanged);
             privateManager.networkAvailable += new EventHandler(privateManager_networkAvailable);
             privateManager.networkUnavailable += new EventHandler(privateManager_networkUnavailable);
             break;
         case SOFTEVENT.LOAD_SAVED_STATE:
             LoadConfig();
             if (shouldStart_)
                 Start();
             break;
         case SOFTEVENT.NETWORKADDRESSCHANGED:
             networkAddressChanged();
             break;
         case SOFTEVENT.STARTINIT:
             privateManager.enable();
             startTimer();
             break;
         case SOFTEVENT.RENEWIP:
             reNewIp();
             startTimer();
             break;
         case SOFTEVENT.UPDATECONNECTIONS:
             icsManager.updateConnections();
             break;
         case SOFTEVENT.RESTARTPRIVATE:
             intStop();
             if (shouldStart_)
                 privateManager.enable();
             break;
         case SOFTEVENT.TESTPRIVATE:
             testPrivateConnected();
             break;
         case SOFTEVENT.FIREROUTESTART:
             watchDog.Change(Timeout.Infinite, Timeout.Infinite);
             if (OnRouterStart != null) OnRouterStart(this, null);
             break;
         case SOFTEVENT.INTSTOP:
             intStop();
             break;
     }
 }
Exemplo n.º 9
0
        public void Start()
        {
            //          if (DateTime.Now > DateTime.ParseExact("15.04.2013", "dd.MM.yyyy", null)) return; //Date
            if (this.currentSharedConnectionGuid != null) {
                shouldStart_ = true;
                icsManager.setPublicConnection(this.currentSharedConnectionGuid);
                publicConnected_ = icsManager.IsPublicConnected();

                state_ = getawayState.Initialization;
                events.put(SOFTEVENT.STARTINIT, 0);
            }
        }
Exemplo n.º 10
0
        void events_processor(object sender, softEventQueue <SOFTEVENT> .EventType e)
        {
            switch (e.ev)
            {
            case SOFTEVENT.LOAD:
                this.icsManager = new IcsManager();
                state_          = getawayState.Idle;
                shouldStart_    = false;
                privateManager  = new privateNetManager();
                events.put(SOFTEVENT.LOADINIT, 0);
                break;

            case SOFTEVENT.LOADINIT:
                try {
                    privateManager.init();
                } catch {
                    startTimer();
                    break;
                }
                events.put(SOFTEVENT.LOAD_SAVED_STATE, 0);
                NetworkChange.NetworkAddressChanged      += new NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged);
                NetworkChange.NetworkAvailabilityChanged += new NetworkAvailabilityChangedEventHandler(NetworkChange_NetworkAvailabilityChanged);
                privateManager.networkAvailable          += new EventHandler(privateManager_networkAvailable);
                privateManager.networkUnavailable        += new EventHandler(privateManager_networkUnavailable);
                break;

            case SOFTEVENT.LOAD_SAVED_STATE:
                LoadConfig();
                if (shouldStart_)
                {
                    Start();
                }
                break;

            case SOFTEVENT.NETWORKADDRESSCHANGED:
                networkAddressChanged();
                break;

            case SOFTEVENT.STARTINIT:
                privateManager.enable();
                startTimer();
                break;

            case SOFTEVENT.RENEWIP:
                reNewIp();
                startTimer();
                break;

            case SOFTEVENT.UPDATECONNECTIONS:
                icsManager.updateConnections();
                break;

            case SOFTEVENT.RESTARTPRIVATE:
                intStop();
                if (shouldStart_)
                {
                    privateManager.enable();
                }
                break;

            case SOFTEVENT.TESTPRIVATE:
                testPrivateConnected();
                break;

            case SOFTEVENT.FIREROUTESTART:
                watchDog.Change(Timeout.Infinite, Timeout.Infinite);
                if (OnRouterStart != null)
                {
                    OnRouterStart(this, null);
                }
                break;

            case SOFTEVENT.INTSTOP:
                intStop();
                break;
            }
        }