public override IOutputStream Create( Stream input_stream, Stream output_stream, EndPoint remote_endpoint, Guid channel_id, byte[] header) { HTTPRequest request = null; long bytes = 0; using (var stream = new MemoryStream(header)) { try { request = HTTPRequestReader.Read(stream); bytes = stream.Position; } catch (EndOfStreamException) { } } return(new APIHostOutputStream( owner, PeerCast, input_stream, output_stream, remote_endpoint, request, header.Skip((int)bytes).ToArray())); }
protected override NetworkStreamMonitor[] CreateAndLinkStreamMonitors(eExNetworkLibrary.Sockets.NetworkStream nsAlice, eExNetworkLibrary.Sockets.NetworkStream nsBob) { HTTPRequestReader reqReader = new HTTPRequestReader(nsBob); HTTPResponseReader respReader = new HTTPResponseReader(nsAlice); reqReader.HTTPRequestCaptured += new EventHandler <HTTPReaderEventArgs>(reqReader_HTTPRequestCaptured); respReader.HTTPResponseCaptured += new EventHandler <HTTPReaderEventArgs>(respReader_HTTPResponseCaptured); return(new NetworkStreamMonitor[] { reqReader, respReader }); }
public override IOutputStream Create( Stream input_stream, Stream output_stream, EndPoint remote_endpoint, Guid channel_id, byte[] header) { HTTPRequest request = null; using (var stream = new MemoryStream(header)) { try { request = HTTPRequestReader.Read(stream); } catch (EndOfStreamException) { } } return(new HTMLHostOutputStream(owner, PeerCast, input_stream, output_stream, remote_endpoint, request)); }
public override Guid?ParseChannelID(byte[] header) { using (var stream = new MemoryStream(header)) { var req = HTTPRequestReader.Read(stream); if (req == null) { return(null); } if (FindApplication(req.Uri) != null) { return(Guid.Empty); } else { return(null); } } }
public override Guid?ParseChannelID(byte[] header) { HTTPRequest res = null; using (var stream = new MemoryStream(header)) { try { res = HTTPRequestReader.Read(stream); } catch (EndOfStreamException) { } } if (res != null && res.Uri.AbsolutePath.StartsWith(this.owner.VirtualPath)) { return(Guid.Empty); } else { return(null); } }
public override IOutputStream Create( Stream input_stream, Stream output_stream, EndPoint remote_endpoint, AccessControlInfo access_control, Guid channel_id, byte[] header) { HTTPRequest request = null; using (var stream = new MemoryStream(header)) { try { request = HTTPRequestReader.Read(stream); } catch (EndOfStreamException) { } catch (InvalidDataException) { } } return(new AdminHostOutputStream(owner, PeerCast, input_stream, output_stream, remote_endpoint, access_control, request)); }
public override Guid?ParseChannelID(byte[] header) { HTTPRequest res = null; using (var stream = new MemoryStream(header)) { try { res = HTTPRequestReader.Read(stream); } catch (EndOfStreamException) { } catch (InvalidDataException) { } } if (res != null && res.Uri.AbsolutePath == "/admin") { return(Guid.Empty); } else { return(null); } }
public override IOutputStream Create( Stream input_stream, Stream output_stream, EndPoint remote_endpoint, AccessControlInfo access_control, Guid channel_id, byte[] header) { using (var stream = new MemoryStream(header)) { var req = HTTPRequestReader.Read(stream); var bytes = stream.Position; var application = FindApplication(req.Uri); return(new OWINHostOutputStream( PeerCast, input_stream, output_stream, remote_endpoint, access_control, req, header.Skip((int)bytes).ToArray(), application)); } }
public override Guid?ParseChannelID(byte[] header) { HTTPRequest res = null; using (var stream = new MemoryStream(header)) { try { res = HTTPRequestReader.Read(stream); } catch (EndOfStreamException) { } catch (InvalidDataException) { } } if (res != null && (this.owner.VirtualPhysicalPathMap.Any(kv => res.Uri.AbsolutePath.StartsWith(kv.Key)) || res.Uri.AbsolutePath == "/")) { return(Guid.Empty); } else { return(null); } }