public void TestConnectionStreamLotsOfData() { var connStream = new ConnectionStream(); var producerStream = new ProducerStream(connStream); var consumerStream = new ConsumerStream(connStream); var t = new Task(() => { var streamWriter = new StreamWriter(producerStream); for (int i = 0; i < 1000; i++) { streamWriter.WriteLine("mother f*****g stream crap " + i); } streamWriter.Close(); }); t.Start(); Thread.Sleep(1000); var sr = new StreamReader(consumerStream); var result = sr.ReadToEnd(); Assert.IsTrue(result.StartsWith("mother f*****g stream crap 0")); Assert.IsTrue(result.EndsWith("mother f*****g stream crap 999\r\n")); Task.WaitAll(t); }
public override IOutputStream Create( ConnectionStream connection, AccessControlInfo access_control, Guid channel_id) { return(new PCPPongOutputStream(PeerCast, connection, access_control)); }
public void TestConnectionStreamLotsOfDataAndCheckAllReads() { var connStream = new ConnectionStream(); var producerStream = new ProducerStream(connStream); var consumerStream = new ConsumerStream(connStream); var t = new Task(() => { var streamWriter = new StreamWriter(producerStream); for (int i = 0; i < 1000; i++) { streamWriter.WriteLine("mother f*****g stream crap " + i); } streamWriter.Close(); }); t.Start(); Thread.Sleep(1000); int j = 0; using (var sr = new StreamReader(consumerStream)) { var result = sr.ReadLine(); Assert.AreEqual(result, "mother f*****g stream crap " + j); j++; } Task.WaitAll(t); }
public void TestConnectionClientTermination() { var connStream = new ConnectionStream(); var producerStream = new ProducerStream(connStream); var consumerStream = new ConsumerStream(connStream); var t = new Task(() => { var streamWriter = new StreamWriter(producerStream); for (int i = 0; i < 1000; i++) { streamWriter.WriteLine("mother f*****g stream crap " + i); } streamWriter.Close(); }); t.Start(); // Thread.Sleep(1000); var sr = new StreamReader(consumerStream); sr.Close(); Task.WaitAll(t); }
public void TestConnectionStreamBuffering() { var connStream = new ConnectionStream(); var producerStream = new ProducerStream(connStream); var consumerStream = new ConsumerStream(connStream); var t = new Task(() => { var streamWriter = new StreamWriter(producerStream); for (int i = 0; i < 1000; i++) { streamWriter.WriteLine("mother f*****g stream crap " + i); } streamWriter.Close(); }); t.Start(); Task.WaitAll(t); using (var sr = new StreamReader(consumerStream)) { // read one line var line = sr.ReadLine(); Assert.AreEqual("mother f*****g stream crap 0", line); } }
public PCPPongOutputStream( PeerCast peercast, ConnectionStream connection, AccessControlInfo access_control) : base(peercast, connection, access_control, null) { Logger.Debug("Initialized: Remote {0}", RemoteEndPoint); }
private void SendFile(object obj) { Connection c = (Connection)obj; ConnectionStream stream = new ConnectionStream(c); using (FileStream fs = File.OpenRead(_answerSoundFileName)) { using (ConnectionWriter writer = new ConnectionWriter(stream)) { writer.Write(fs); } } }
public Task Invoke( HttpRequest req, ConnectionStream stream, IPEndPoint localEndPoint, IPEndPoint remoteEndPoint, AccessControlInfo accessControlInfo, CancellationToken cancellationToken) { var ctx = new OwinContext(PeerCast, req, stream, localEndPoint, remoteEndPoint, accessControlInfo); return(ctx.Invoke(OwinApp, cancellationToken)); }
public RTMPOutputStream( PeerCast peercast, ConnectionStream connection, AccessControlInfo access_control, Guid channel_id) { connection.ReadTimeout = Timeout.Infinite; connection.WriteTimeout = 10000; this.peerCast = peercast; this.inputStream = connection; this.outputStream = connection; this.accessControl = access_control; this.connection = new RTMPPlayConnection(this, this.inputStream, this.outputStream); }
/// <summary> /// Parse connection information. /// </summary> /// <param name="direction">In or out connections.</param> private void ParseConnections(ConnectionDirection direction) { try { ConnectionStream cs = new ConnectionStream(Profile.UserName, HashKey, direction, DelayBetweenAPIRequests); cs.Read(); if (cs.Connections != null && cs.Connections.Count > 0) { Profile.Connections.AddRange(cs.Connections); } } catch (Exception e) { } }
protected override IEnumerator <IteratorAsyncResult <SecureSocketUtil.InitiateSecureClientUpgradeClientSideAsyncResult> .AsyncStep> GetAsyncSteps() { ConnectionStream connectionStream1; if (this.socketSecurityMode != SocketSecurityRole.SslClient) { this.ResultConnection = this.connection; SecureSocketUtil.InitiateSecureClientUpgradeClientSideAsyncResult initiateSecureClientUpgradeClientSideAsyncResult = this; IteratorAsyncResult <SecureSocketUtil.InitiateSecureClientUpgradeClientSideAsyncResult> .BeginCall beginCall = (SecureSocketUtil.InitiateSecureClientUpgradeClientSideAsyncResult thisRef, TimeSpan t, AsyncCallback c, object s) => thisRef.ResultConnection.BeginWrite(ConnectConstants.NoSsl, 0, 1, true, t, c, s); yield return(initiateSecureClientUpgradeClientSideAsyncResult.CallAsync(beginCall, (SecureSocketUtil.InitiateSecureClientUpgradeClientSideAsyncResult thisRef, IAsyncResult r) => thisRef.ResultConnection.EndWrite(r), IteratorAsyncResult <TIteratorAsyncResult> .ExceptionPolicy.Transfer)); } else { connectionStream1 = (this.defaultTimeouts == null ? new ConnectionStream(this.connection) : new ConnectionStream(this.connection, this.defaultTimeouts)); ConnectionStream connectionStream = connectionStream1; SecureSocketUtil.InitiateSecureClientUpgradeClientSideAsyncResult initiateSecureClientUpgradeClientSideAsyncResult1 = this; IteratorAsyncResult <SecureSocketUtil.InitiateSecureClientUpgradeClientSideAsyncResult> .BeginCall beginCall1 = (SecureSocketUtil.InitiateSecureClientUpgradeClientSideAsyncResult thisRef, TimeSpan t, AsyncCallback c, object s) => thisRef.connection.BeginWrite(ConnectConstants.UseSsl, 0, 1, true, t, c, s); yield return(initiateSecureClientUpgradeClientSideAsyncResult1.CallAsync(beginCall1, (SecureSocketUtil.InitiateSecureClientUpgradeClientSideAsyncResult thisRef, IAsyncResult r) => thisRef.connection.EndWrite(r), IteratorAsyncResult <TIteratorAsyncResult> .ExceptionPolicy.Transfer)); this.sslStream = new SslStream(connectionStream, false, new RemoteCertificateValidationCallback(SecureSocketUtil.ValidateServerCertificate), null); SecureSocketUtil.InitiateSecureClientUpgradeClientSideAsyncResult initiateSecureClientUpgradeClientSideAsyncResult2 = this; IteratorAsyncResult <SecureSocketUtil.InitiateSecureClientUpgradeClientSideAsyncResult> .BeginCall beginCall2 = (SecureSocketUtil.InitiateSecureClientUpgradeClientSideAsyncResult thisRef, TimeSpan t, AsyncCallback c, object s) => thisRef.sslStream.BeginAuthenticateAsClient(this.targetHost, c, s); yield return(initiateSecureClientUpgradeClientSideAsyncResult2.CallAsync(beginCall2, (SecureSocketUtil.InitiateSecureClientUpgradeClientSideAsyncResult thisRef, IAsyncResult r) => thisRef.sslStream.EndAuthenticateAsClient(r), IteratorAsyncResult <TIteratorAsyncResult> .ExceptionPolicy.Continue)); if (base.LastAsyncStepException == null) { this.ResultConnection = new StreamConnection(this.sslStream, connectionStream); } else { try { this.sslStream.Close(); } catch (Exception exception1) { Exception exception = exception1; if (Fx.IsFatal(exception)) { throw; } Fx.Exception.TraceHandled(exception, "SecureSocketUtil.InitiateSecureClientUpgradeClientSideAsyncResult", null); } base.Complete(base.LastAsyncStepException); } } }
private void SendTextToSpeech(object obj) { Connection c = (Connection)obj; ConnectionStream stream = new ConnectionStream(c); SpeechSynthesizer s = new SpeechSynthesizer(); using (MemoryStream memStream = new MemoryStream()) { s.SetOutputToAudioStream(memStream, new SpeechAudioFormatInfo(EncodingFormat.ALaw, 8000, 8, 1, 8000, 1, null)); s.Speak(_textToSpeak); memStream.Seek(0, SeekOrigin.Begin); using (ConnectionWriter writer = new ConnectionWriter(stream)) { writer.Reverse = true; writer.Write(memStream); } } }
public OwinContext( PeerCast peerCast, HttpRequest req, ConnectionStream stream, IPEndPoint localEndPoint, IPEndPoint remoteEndPoint, AccessControlInfo accessControlInfo) { Environment = new OwinEnvironment(); ConnectionStream = stream; RequestBody = new OwinRequestBodyStream(this, ConnectionStream); ResponseBody = new OwinResponseBodyStream(this, ConnectionStream); Environment.Environment[OwinEnvironment.Owin.Version] = "1.0.1"; Environment.Environment[OwinEnvironment.Host.TraceOutput] = TextWriter.Null; Environment.Environment[OwinEnvironment.Owin.RequestBody] = RequestBody; var requestHeaders = req.Headers.ToDictionary(); if (!requestHeaders.TryGetValue("Host", out var values) || values.Length == 0 || String.IsNullOrEmpty(values[0])) { requestHeaders["Host"] = new string[] { localEndPoint.ToString() }; } Environment.Environment[OwinEnvironment.Owin.RequestHeaders] = requestHeaders; Environment.Environment[OwinEnvironment.Owin.RequestPath] = req.Path; Environment.Environment[OwinEnvironment.Owin.RequestPathBase] = ""; Environment.Environment[OwinEnvironment.Owin.RequestProtocol] = req.Protocol; Environment.Environment[OwinEnvironment.Owin.RequestQueryString] = req.QueryString; Environment.Environment[OwinEnvironment.Owin.RequestScheme] = "http"; Environment.Environment[OwinEnvironment.Owin.RequestMethod] = req.Method; Environment.Environment[OwinEnvironment.Owin.ResponseBody] = ResponseBody; Environment.Environment[OwinEnvironment.Owin.ResponseHeaders] = new Dictionary <string, string[]>(StringComparer.OrdinalIgnoreCase); Environment.Environment[OwinEnvironment.Server.RemoteIpAddress] = remoteEndPoint.Address.ToString(); Environment.Environment[OwinEnvironment.Server.RemotePort] = remoteEndPoint.Port.ToString(); Environment.Environment[OwinEnvironment.Server.IsLocal] = remoteEndPoint.Address.GetAddressLocality() == 0; Environment.Environment[OwinEnvironment.Server.LocalIpAddress] = localEndPoint.Address.ToString(); Environment.Environment[OwinEnvironment.Server.LocalPort] = localEndPoint.Port.ToString(); Environment.Environment[OwinEnvironment.Server.OnSendingHeaders] = new Action <Action <object>, object>(OnSendingHeaders.Add); Environment.Environment[OwinEnvironment.PeerCastStation.PeerCast] = peerCast; Environment.Environment[OwinEnvironment.PeerCastStation.AccessControlInfo] = accessControlInfo; Environment.Environment[OwinEnvironment.PeerCastStation.GetRecvRate] = new Func <float>(() => stream.ReadRate); Environment.Environment[OwinEnvironment.PeerCastStation.GetSendRate] = new Func <float>(() => stream.WriteRate); Environment.Environment[OwinEnvironment.Opaque.Upgrade] = new Action <IDictionary <string, object>, Func <IDictionary <string, object>, Task> >(OpaqueUpgrade); }
public RTMPOutputStream( PeerCast peercast, System.IO.Stream input_stream, System.IO.Stream output_stream, System.Net.EndPoint remote_endpoint, AccessControlInfo access_control, Guid channel_id, byte[] header) { input_stream.ReadTimeout = System.Threading.Timeout.Infinite; this.peerCast = peercast; var stream = new ConnectionStream(new BufferedReadStream(input_stream, 8192, header), output_stream); this.inputStream = stream; this.outputStream = stream; stream.WriteTimeout = 10000; this.remoteEndPoint = remote_endpoint; this.accessControl = access_control; this.connection = new RTMPPlayConnection(this, this.inputStream, this.outputStream); }
public void TestConnectionStream() { var connStream = new ConnectionStream(); var producerStream = new ProducerStream(connStream); var consumerStream = new ConsumerStream(connStream); var t = new Task(() => { var streamWriter = new StreamWriter(producerStream); streamWriter.WriteLine("mother f*****g stream crap"); streamWriter.Close(); }); t.Start(); var sr = new StreamReader(consumerStream); var result = sr.ReadToEnd(); Assert.AreEqual("mother f*****g stream crap\r\n", result); Task.WaitAll(t); }
public OpaqueEnvironment(ConnectionStream stream, CancellationToken cancellationToken) { Environment[OwinEnvironment.Opaque.Version] = "1.0"; Environment[OwinEnvironment.Opaque.Stream] = stream; Environment[OwinEnvironment.Opaque.CallCancelled] = cancellationToken; }
public OwinHostOutputStream(PeerCast peercast, OwinHost host, ConnectionStream connection, AccessControlInfo access_control, Channel channel) : base(peercast, connection, access_control, channel) { owinHost = host; }
public override IOutputStream Create(ConnectionStream connection, AccessControlInfo access_control, Guid channel_id) { var channel = channel_id != Guid.Empty ? PeerCast.Channels.FirstOrDefault(c => c.ChannelID == channel_id) : null; return(new OwinHostOutputStream(PeerCast, owinHost, connection, access_control, channel)); }