// Martin Willemoes Hansen (mwh@sysrq.dk)
// Gonzalo Paniagua Javier (gonzalo@ximian.com)
// Andres G. Aragoneses (andres@7digital.com)
+// Bogdanov Kirill (bogdanov@macroscop.com)
//
// (C) 2003 Martin Willemoes Hansen
// Copyright (c) 2005 Novell, Inc. (http://www.novell.com
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading;
+using System.Reflection;
using Mono.Security.Authenticode;
#if !MOBILE
using Mono.Security.Protocol.Tls;
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Timeout = 2000;
response.Close ();
rs.Close ();
-
- responder.Stop ();
}
}
string url = "http://" + ep.ToString () + "/test/";
foreach (DictionaryEntry de in methods) {
- SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler));
- responder.Start ();
-
- HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
- req.Method = (string) de.Key;
- req.Timeout = 2000;
- req.ReadWriteTimeout = 2000;
- req.KeepAlive = false;
- Stream rs = req.GetRequestStream ();
- rs.Close ();
- using (HttpWebResponse resp = (HttpWebResponse) req.GetResponse ()) {
- StreamReader sr = new StreamReader (resp.GetResponseStream (),
- Encoding.UTF8);
- string line = sr.ReadLine ();
- sr.Close ();
- Assert.AreEqual (((string) de.Value) + " /test/ HTTP/1.1",
- line, req.Method);
- resp.Close ();
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
+ HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
+ req.Method = (string) de.Key;
+ req.Timeout = 2000;
+ req.ReadWriteTimeout = 2000;
+ req.KeepAlive = false;
+ Stream rs = req.GetRequestStream ();
+ rs.Close ();
+ using (HttpWebResponse resp = (HttpWebResponse) req.GetResponse ()) {
+ StreamReader sr = new StreamReader (resp.GetResponseStream (),
+ Encoding.UTF8);
+ string line = sr.ReadLine ();
+ sr.Close ();
+ Assert.AreEqual (((string) de.Value) + " /test/ HTTP/1.1",
+ line, req.Method);
+ resp.Close ();
+ }
}
- responder.Stop ();
}
}
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest request;
request = (HttpWebRequest) WebRequest.Create (url);
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req;
Stream rs;
IAsyncResult ar;
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req;
req = (HttpWebRequest) WebRequest.Create (url);
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Abort ();
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Abort ();
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.BeginGetRequestStream (null, null);
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IAsyncResult ar = req.BeginGetRequestStream (null, null);
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Timeout = 2000;
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Timeout = 2000;
req.ReadWriteTimeout = 2000;
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Timeout = 2000;
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Abort ();
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req;
Stream rs;
string url = "http://" + ep.ToString () + "/test/";
// buffered, non-chunked
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req;
Stream rs;
byte [] buffer;
}
// buffered, chunked
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req;
Stream rs;
byte [] buffer;
}
// non-buffered, non-chunked
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req;
Stream rs;
byte [] buffer;
}
// non-buffered, chunked
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req;
Stream rs;
byte [] buffer;
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Abort ();
[Ignore ("This does not timeout any more. That's how MS works when reading small responses")]
public void ReadTimeout ()
{
- IPEndPoint localEP = new IPEndPoint (IPAddress.Loopback, 8764);
+ IPEndPoint localEP = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + localEP.ToString () + "/original/";
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (RedirectRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => RedirectRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.AllowAutoRedirect = false;
Assert.AreEqual (WebExceptionStatus.Timeout, ex.Status, "#5");
}
}
- responder.Stop ();
}
}
[Test] // bug #324300
public void AllowAutoRedirect ()
{
- IPEndPoint localEP = new IPEndPoint (IPAddress.Loopback, 8765);
+ IPEndPoint localEP = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + localEP.ToString () + "/original/";
// allow autoredirect
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (RedirectRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => RedirectRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Timeout = 2000;
Assert.AreEqual ("GET", resp.Method, "#A3");
Assert.AreEqual ("LOOKS OK", body, "#A4");
}
- responder.Stop ();
}
// do not allow autoredirect
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (RedirectRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => RedirectRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.AllowAutoRedirect = false;
Assert.AreEqual (url, resp.ResponseUri.ToString (), "#B2");
Assert.AreEqual ("POST", resp.Method, "#B3");
}
- responder.Stop ();
}
}
[Test]
public void PostAndRedirect_NoCL ()
{
- IPEndPoint localEP = new IPEndPoint (IPAddress.Loopback, 8769);
+ IPEndPoint localEP = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + localEP.ToString () + "/original/";
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (RedirectRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => RedirectRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Timeout = 2000;
Assert.AreEqual ("GET", resp.Method, "#A3");
Assert.AreEqual ("LOOKS OK", body, "#A4");
}
- responder.Stop ();
}
}
[Test]
public void PostAndRedirect_CL ()
{
- IPEndPoint localEP = new IPEndPoint (IPAddress.Loopback, 8770);
+ IPEndPoint localEP = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + localEP.ToString () + "/original/";
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (RedirectRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => RedirectRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Timeout = 2000;
Assert.AreEqual ("GET", resp.Method, "#A3");
Assert.AreEqual ("LOOKS OK", body, "#A4");
}
- responder.Stop ();
}
}
[Test]
public void PostAnd401 ()
{
- IPEndPoint localEP = new IPEndPoint (IPAddress.Loopback, 8771);
+ IPEndPoint localEP = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + localEP.ToString () + "/original/";
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (RedirectRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => RedirectRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Timeout = 2000;
Assert.AreEqual ("GET", resp.Method, "#A3");
Assert.AreEqual ("LOOKS OK", body, "#A4");
}
- responder.Stop ();
}
}
[Category ("NotWorking")]
public void InternalServerError ()
{
- IPEndPoint localEP = new IPEndPoint (IPAddress.Loopback, 8766);
+ IPEndPoint localEP = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + localEP.ToString () + "/original/";
// POST
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (InternalErrorHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => InternalErrorHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Timeout = 2000;
Assert.AreEqual ("POST", webResponse.Method, "#A7");
webResponse.Close ();
}
-
- responder.Stop ();
}
// GET
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (InternalErrorHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => InternalErrorHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
Assert.AreEqual ("GET", webResponse.Method, "#B6");
webResponse.Close ();
}
-
- responder.Stop ();
}
}
[Category ("NotWorking")] // #B3 fails; we get a SocketException: An existing connection was forcibly closed by the remote host
public void NoContentLength ()
{
- IPEndPoint localEP = new IPEndPoint (IPAddress.Loopback, 8767);
+ IPEndPoint localEP = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + localEP.ToString () + "/original/";
// POST
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (NoContentLengthHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => NoContentLengthHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Timeout = 2000;
HttpWebResponse webResponse = ex.Response as HttpWebResponse;
Assert.IsNull (webResponse, "#A11");
}
-
- responder.Stop ();
}
// GET
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (NoContentLengthHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => NoContentLengthHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
Assert.AreEqual ("GET", webResponse.Method, "#B6");
webResponse.Close ();
}
-
- responder.Stop ();
}
}
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/moved/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (VerbEchoHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => VerbEchoHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "WhatEver";
req.KeepAlive = false;
Assert.AreEqual ("WhatEver", resp.Method, "#3");
Assert.AreEqual ("WhatEver", body, "#4");
}
-
- responder.Stop ();
}
}
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (NotModifiedSinceHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => NotModifiedSinceHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.KeepAlive = false;
TimeSpan elapsed = DateTime.Now - start;
Assert.IsTrue (elapsed.TotalMilliseconds < 2000, "#4");
-
- responder.Stop ();
}
}
Thread.Sleep (three_seconds_in_milliseconds * 3);
if (timeoutWorker.End == null) {
+#if MONO_FEATURE_THREAD_ABORT
thread.Abort ();
+#else
+ thread.Interrupt ();
+#endif
Assert.Fail ("Thread finished after triple the timeout specified has passed");
}
[Test] // 1st possible case of https://bugzilla.novell.com/show_bug.cgi?id=MONO74177
public void TestTimeoutPropertyWithServerThatExistsAndRespondsButTooLate ()
{
- var ep = new IPEndPoint (IPAddress.Loopback, 8123);
+ var ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep + "/foobar/";
using (var responder = new SocketResponder (ep, TimeOutHandler))
{
- responder.Start ();
-
TestTimeOut (url, WebExceptionStatus.Timeout);
-
- responder.Stop ();
}
}
Where = "first write";
StreamWriter writer = new StreamWriter (ns, Encoding.ASCII);
writer.Write ( "HTTP/1.1 401 Unauthorized\r\n" +
- "WWW-Authenticate: NTLM\r\n" +
+ "WWW-Authenticate: ignore\r\n" +
+ "WWW-Authenticate: NTLM\r\n" +
+ "WWW-Authenticate: ignore,K\r\n" +
"Content-Length: 5\r\n\r\nWRONG");
writer.Flush ();
return;
}
+
+ [Test]
+ public void TestLargeDataReading ()
+ {
+ int near2GBStartPosition = rand.Next (int.MaxValue - 500, int.MaxValue);
+ AutoResetEvent readyGetLastPortionEvent = new AutoResetEvent (false);
+ Exception testException = null;
+
+ DoRequest (
+ (request, waitHandle) =>
+ {
+ try
+ {
+ const int timeoutMs = 5000;
+
+ request.Timeout = timeoutMs;
+ request.ReadWriteTimeout = timeoutMs;
+
+ WebResponse webResponse = request.GetResponse ();
+ Stream webResponseStream = webResponse.GetResponseStream ();
+ Assert.IsNotNull (webResponseStream, null, "#1");
+
+ Type webConnectionStreamType = webResponseStream.GetType ();
+ FieldInfo totalReadField = webConnectionStreamType.GetField ("totalRead", BindingFlags.NonPublic | BindingFlags.Instance);
+ Assert.IsNotNull (totalReadField, "#2");
+ totalReadField.SetValue (webResponseStream, near2GBStartPosition);
+
+ byte[] readBuffer = new byte[int.MaxValue - near2GBStartPosition];
+ Assert.AreEqual (webResponseStream.Read (readBuffer, 0, readBuffer.Length), readBuffer.Length, "#3");
+ readyGetLastPortionEvent.Set ();
+ Assert.IsTrue (webResponseStream.Read (readBuffer, 0, readBuffer.Length) > 0);
+ readyGetLastPortionEvent.Set ();
+
+ webResponse.Close();
+ }
+ catch (Exception e)
+ {
+ testException = e;
+ }
+ finally
+ {
+ waitHandle.Set ();
+ }
+ },
+ processor =>
+ {
+ processor.Request.InputStream.Close ();
+
+ HttpListenerResponse response = processor.Response;
+ response.SendChunked = true;
+
+ Stream outputStream = response.OutputStream;
+ var writeBuffer = new byte[int.MaxValue - near2GBStartPosition];
+ outputStream.Write (writeBuffer, 0, writeBuffer.Length);
+ readyGetLastPortionEvent.WaitOne ();
+ outputStream.Write (writeBuffer, 0, writeBuffer.Length);
+ readyGetLastPortionEvent.WaitOne ();
+
+ response.Close();
+ });
+
+ if (testException != null)
+ throw testException;
+ }
void DoRequest (Action<HttpWebRequest, EventWaitHandle> request)
{
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString ();
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (CookieRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => CookieRequestHandler (s))) {
CookieContainer container = new CookieContainer ();
container.Add(new Uri (url), new Cookie ("foo", "bar"));
HttpWebRequest request = (HttpWebRequest) WebRequest.Create (url);
Assert.AreEqual ("foo=bar", response.Headers.Get("Set-Cookie"), "#02");
}
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (CookieRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => CookieRequestHandler (s))) {
CookieContainer container = new CookieContainer ();
HttpWebRequest request = (HttpWebRequest) WebRequest.Create (url);
request.CookieContainer = container;
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";