private void Brodcast(HttpResponse res) { this.Brodcast((ipAddress) => { UpnpPlaceHolder placeHolder = new UpnpPlaceHolder(ipAddress.ToString(), SSDP_PORT, SSDP_IP, SSDP_PORT); return(res.Encode(placeHolder)); }); }
public string GetHttpDevice(UpnpPlaceHolder placeHolder = null) { MemoryStream memory = new MemoryStream(); this.Device.GetXmlDocument(placeHolder).Save(memory, SaveOptions.None); memory.Position = 0; return(System.Text.Encoding.UTF8.GetString(memory.ToArray())); }
public byte[] Encode(UpnpPlaceHolder placeHolder = null) { MemoryStream stream = new MemoryStream(); this.Encode(stream, placeHolder); stream.Position = 0; return(stream.ToArray()); }
public void Encode(Stream memoryStream, UpnpPlaceHolder placeHolder = null, bool flushStream = true) { memoryStream.WriteLine($"{this.HttpVersion} {this.HttpCode} {this.HttpText}"); Array.ForEach(this.Headers.Items(), (singleHeader) => memoryStream.WriteLine(singleHeader.ToString())); memoryStream.WriteLine(""); if (flushStream) { memoryStream.Flush(); } }
private void OnHttpRequestItem(PowerLineContext context, Guid itemName, string itemExtention) { UpnpEngineDevice device = this.GetDevice(itemName); if (device == null) { context.SetResponse(404, "Unable to detect given element, device not found"); } else { UpnpPlaceHolder placeHolder = new UpnpPlaceHolder(context.LocalAddress, context.LocalPort, context.RemoteAddress, context.RemotePort); string rawDeviceUpnpXml = device.GetHttpDevice(placeHolder); context.SetRepsonseContentType(device.GetHttpDeviceMime()); context.SetResponse(200, rawDeviceUpnpXml, false); } }
public string ToString(UpnpPlaceHolder placeHolder) { return((placeHolder == null) ? $"{this.Name}: {this.Value}" : $"{this.Name}: {placeHolder.Parse(this.Value)}"); }