private void ConnectSink(UPnPDeviceFactory sender, UPnPDevice d, Uri ConnectUri) { string useIP = d.InterfaceToHost.ToString(); disconnectMenuItem.Enabled = false; CheckIconState(); if(this.overrideIP!="") {useIP = this.overrideIP;} statusBar.Text = "Connected to Peer Relay"; devicefactory = null; home = new CpGateKeeper(d.GetServices(CpGateKeeper.SERVICE_NAME)[0]); home.Register(new Uri("http://" + useIP + ":" + this.PortNumber.ToString()),true); }
private void ProxySink(UPnPDeviceFactory sender, UPnPDevice d, Uri LocationUri) { FactoryTable.Remove(sender); sender.Shutdown(); CpGateKeeper CP = new CpGateKeeper(d.GetServices(CpGateKeeper.SERVICE_NAME)[0]); string useThisIP = d.InterfaceToHost.ToString(); if(this.PublicIP!="") {useThisIP = PublicIP;} lock(RegisteredTable) { RegisteredTable[CP.GetUPnPService().ParentDevice.UniqueDeviceName] = CP; object[] PL = (object[])ProcessLaterList.ToArray(typeof(object)); foreach(object PL2 in PL) { object[] PL3 = (object[])PL2; string SenderUDN = (string)PL3[0]; string DeviceUDN = (string)PL3[1]; if(RegisteredTable.ContainsKey(SenderUDN)) { CpGateKeeper HOME = (CpGateKeeper)RegisteredTable[SenderUDN]; HOME.GetDocument(DeviceUDN,"",null,new CpGateKeeper.Delegate_OnResult_GetDocument(CPGetDocumentSink)); ProcessLaterList.Remove(PL2); } } } foreach(UPnPDevice t in ShareList) { CP.AddDevice(Root.UniqueDeviceName,t.UniqueDeviceName); } CP.Register(new Uri("http://" + useThisIP + ":" + Port.ToString()),false); }