Beispiel #1
0
        private void CheckPortForwarding()
        {
            /*  THIS IS A PROPER CHECK FOR INTERNET ACCESS FROM OUTSIDE, UNFORTUNATELY MY ROUTER FAILS BECAUSE THE TEST SERVER TCPLISTENER HANGS AROUND IN ITS ROUTING TABLE AND CAUSES IT TO FAIL WHEN ADDING THE FORWARDING RULE
             * Network.PortChecker pChecker = new Network.PortChecker();
             * pChecker.CheckPortOpenAsync_Completed += new EventHandler<Network.PortChecker.CheckPortCompletedEventArgs>(pChecker_CheckPortOpenAsync_Completed);
             * pChecker.CheckPortOpenAsync(Convert.ToInt32(Settings.Default.Port), true);
             *
             * SO, INSTEAD, JUST CHECK VIA UPNP MAPPINGS:
             *
             */
            if (nathelper == null)
            {
                return;
            }
            PortChecker.CheckPortCompletedEventArgs args = null;
            string txtError = "";

            if (!nathelper.GatewayFound)
            {
                if (!nathelper.Discover(ref txtError))
                {
                    HideActivityMask();
                    ChangeBlurbText("Remote Potato could not find a UPnp router on your local network.\r\n\r\nDo you have a router?  If so, click the button below to attempt to set up your router anyway; if this fails, you will be given instructions on manual setup.");
                    return;
                }
            }

            if (nathelper.RPMappingsExist(LocalIP))
            {
                args = new PortChecker.CheckPortCompletedEventArgs(true, true, "");
            }
            else
            {
                args = new PortChecker.CheckPortCompletedEventArgs(true, false, "");
            }

            changePortCheckStatus(args);
        }
Beispiel #2
0
        private void changePortCheckStatus(PortChecker.CheckPortCompletedEventArgs args)
        {
            ChangeStatusCallBack d = new ChangeStatusCallBack(unsafeChangePortCheckStatus);

            this.Invoke(d, new object[] { args });
        }