private void ProxySink_NoReverse(UPnPDeviceFactory sender, UPnPDevice d, Uri LocationUri) { FactoryTable.Remove(sender); sender.Shutdown(); CpGateKeeper CP = new CpGateKeeper(d.GetServices(CpGateKeeper.SERVICE_NAME)[0]); 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); } }
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); }