2010-02-26 Robert Jordan <robertj@gmx.net>
authorRobert Jordan <robertj@gmx.net>
Fri, 26 Feb 2010 22:30:47 +0000 (22:30 -0000)
committerRobert Jordan <robertj@gmx.net>
Fri, 26 Feb 2010 22:30:47 +0000 (22:30 -0000)
* Remove MonoHttp (NET_1_1) from the build.

svn path=/trunk/mcs/; revision=152589

30 files changed:
mcs/class/System.Runtime.Remoting/ChangeLog
mcs/class/System.Runtime.Remoting/Makefile
mcs/class/System.Runtime.Remoting/MonoHttp/AuthenticationSchemeSelector.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/AuthenticationSchemes.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/ChunkStream.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/ChunkedInputStream.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/EndPointListener.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/EndPointManager.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/HttpConnection.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/HttpListener.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/HttpListenerBasicIdentity.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/HttpListenerContext.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/HttpListenerException.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/HttpListenerPrefixCollection.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/HttpListenerRequest.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/HttpListenerResponse.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/HttpRequestHeader.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/HttpResponseHeader.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/HttpStreamAsyncResult.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/HttpUtility.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/ListenerAsyncResult.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/ListenerPrefix.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/RequestStream.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/ResponseStream.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/Utility.cs [deleted file]
mcs/class/System.Runtime.Remoting/MonoHttp/WebHeaderCollection.cs [deleted file]
mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Http/HttpServerTransportSink.cs
mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Http/RemotingHttpListener.cs
mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.dll.sources
mcs/class/System.Runtime.Remoting/get_mono_http [deleted file]

index 2c80937bcf4cce8c96a44826e456c927f5c0d04f..8b5b96c8b31abe3df96e42e8643331e62043ba56 100644 (file)
@@ -1,3 +1,7 @@
+2010-02-26  Robert Jordan  <robertj@gmx.net>
+
+       * Remove MonoHttp (NET_1_1) from the build.
+
 2008-09-19  Michael Hutchinson  <mhutchinson@novell.com>
 
        * System.Runtime.Remoting_test.dll.sources: add HttpBugtests.cs.
index 0f55bc121320917c753b85d43d26b678ed7c77b0..df85e04c17c4cb37c6bf3a0ab4de6002dcc2b7b2 100644 (file)
@@ -15,5 +15,3 @@ EXTRA_DISTFILES = Test/corba-example.cs Test/simple-example.cs
 
 include ../../build/library.make
 
-update-http: get_mono_http
-       ./get_mono_http
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/AuthenticationSchemeSelector.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/AuthenticationSchemeSelector.cs
deleted file mode 100644 (file)
index b16e11a..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.AuthenticationSchemeSelector.cs
-//
-// Author:
-//     Gonzalo Paniagua Javier  <gonzalo@novell.com>
-//
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-#if !NET_2_0
-
-using System; using System.Net; namespace MonoHttp {
-       internal delegate AuthenticationSchemes AuthenticationSchemeSelector (HttpListenerRequest httpRequest);
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/AuthenticationSchemes.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/AuthenticationSchemes.cs
deleted file mode 100644 (file)
index cce5fa9..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.AuthenticationSchemes.cs
-//
-// Author:
-//     Atsushi Enomoto  <atsushi@ximian.com>
-//
-// (C) 2005 Novell, Inc. (http://www.novell.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-#if !NET_2_0
-
-using System.Collections;
-using System.Configuration;
-
-using System; using System.Net; namespace MonoHttp
-{
-       [Flags]
-       internal enum AuthenticationSchemes {
-               None,
-               Digest = 1,
-               Negotiate = 2,
-               Ntlm = 4,
-               IntegratedWindowsAuthentication = 6,
-               Basic = 8,
-               Anonymous = 0x8000,
-       }
-}
-
-#endif
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/ChunkStream.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/ChunkStream.cs
deleted file mode 100644 (file)
index c2314f9..0000000
+++ /dev/null
@@ -1,333 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.ChunkStream
-//
-// Authors:
-//     Gonzalo Paniagua Javier (gonzalo@ximian.com)
-//
-// (C) 2003 Ximian, Inc (http://www.ximian.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System.Collections;
-using System.Globalization;
-using System.IO;
-using System.Text;
-
-using System; using System.Net; namespace MonoHttp
-{
-       class ChunkStream
-       {
-               enum State {
-                       None,
-                       Body,
-                       BodyFinished,
-                       Trailer
-               }
-
-               class Chunk {
-                       public byte [] Bytes;
-                       public int Offset;
-
-                       public Chunk (byte [] chunk)
-                       {
-                               this.Bytes = chunk;
-                       }
-
-                       public int Read (byte [] buffer, int offset, int size)
-                       {
-                               int nread = (size > Bytes.Length - Offset) ? Bytes.Length - Offset : size;
-                               Buffer.BlockCopy (Bytes, Offset, buffer, offset, nread);
-                               Offset += nread;
-                               return nread;
-                       }
-               }
-
-               internal WebHeaderCollection headers;
-               int chunkSize;
-               int chunkRead;
-               State state;
-               //byte [] waitBuffer;
-               StringBuilder saved;
-               bool sawCR;
-               bool gotit;
-               int trailerState;
-               ArrayList chunks;
-               
-               public ChunkStream (byte [] buffer, int offset, int size, WebHeaderCollection headers)
-                                       : this (headers)
-               {
-                       Write (buffer, offset, size);
-               }
-
-               public ChunkStream (WebHeaderCollection headers)
-               {
-                       this.headers = headers;
-                       saved = new StringBuilder ();
-                       chunks = new ArrayList ();
-                       chunkSize = -1;
-               }
-
-               public void ResetBuffer ()
-               {
-                       chunkSize = -1;
-                       chunkRead = 0;
-                       chunks.Clear ();
-               }
-               
-               public void WriteAndReadBack (byte [] buffer, int offset, int size, ref int read)
-               {
-                       if (offset + read > 0)
-                               Write (buffer, offset, offset+read);
-                       read = Read (buffer, offset, size);
-               }
-
-               public int Read (byte [] buffer, int offset, int size)
-               {
-                       return ReadFromChunks (buffer, offset, size);
-               }
-
-               int ReadFromChunks (byte [] buffer, int offset, int size)
-               {
-                       int count = chunks.Count;
-                       int nread = 0;
-                       for (int i = 0; i < count; i++) {
-                               Chunk chunk = (Chunk) chunks [i];
-                               if (chunk == null)
-                                       continue;
-
-                               if (chunk.Offset == chunk.Bytes.Length) {
-                                       chunks [i] = null;
-                                       continue;
-                               }
-                               
-                               nread += chunk.Read (buffer, offset + nread, size - nread);
-                               if (nread == size)
-                                       break;
-                       }
-
-                       return nread;
-               }
-               
-               public void Write (byte [] buffer, int offset, int size)
-               {
-                       InternalWrite (buffer, ref offset, size);
-               }
-               
-               void InternalWrite (byte [] buffer, ref int offset, int size)
-               {
-                       if (state == State.None) {
-                               state = GetChunkSize (buffer, ref offset, size);
-                               if (state == State.None)
-                                       return;
-                               
-                               saved.Length = 0;
-                               sawCR = false;
-                               gotit = false;
-                       }
-                       
-                       if (state == State.Body && offset < size) {
-                               state = ReadBody (buffer, ref offset, size);
-                               if (state == State.Body)
-                                       return;
-                       }
-                       
-                       if (state == State.BodyFinished && offset < size) {
-                               state = ReadCRLF (buffer, ref offset, size);
-                               if (state == State.BodyFinished)
-                                       return;
-
-                               sawCR = false;
-                       }
-                       
-                       if (state == State.Trailer && offset < size) {
-                               state = ReadTrailer (buffer, ref offset, size);
-                               if (state == State.Trailer)
-                                       return;
-
-                               saved.Length = 0;
-                               sawCR = false;
-                               gotit = false;
-                       }
-
-                       if (offset < size)
-                               InternalWrite (buffer, ref offset, size);
-               }
-
-               public bool WantMore {
-                       get { return (chunkRead != chunkSize || chunkSize != 0 || state != State.None); }
-               }
-
-               public int ChunkLeft {
-                       get { return chunkSize - chunkRead; }
-               }
-               
-               State ReadBody (byte [] buffer, ref int offset, int size)
-               {
-                       if (chunkSize == 0)
-                               return State.BodyFinished;
-
-                       int diff = size - offset;
-                       if (diff + chunkRead > chunkSize)
-                               diff = chunkSize - chunkRead;
-
-                       byte [] chunk = new byte [diff];
-                       Buffer.BlockCopy (buffer, offset, chunk, 0, diff);
-                       chunks.Add (new Chunk (chunk));
-                       offset += diff;
-                       chunkRead += diff;
-                       return (chunkRead == chunkSize) ? State.BodyFinished : State.Body;
-                               
-               }
-               
-               State GetChunkSize (byte [] buffer, ref int offset, int size)
-               {
-                       char c = '\0';
-                       while (offset < size) {
-                               c = (char) buffer [offset++];
-                               if (c == '\r') {
-                                       if (sawCR)
-                                               ThrowProtocolViolation ("2 CR found");
-
-                                       sawCR = true;
-                                       continue;
-                               }
-                               
-                               if (sawCR && c == '\n')
-                                       break;
-
-                               if (c == ' ')
-                                       gotit = true;
-
-                               if (!gotit)
-                                       saved.Append (c);
-
-                               if (saved.Length > 20)
-                                       ThrowProtocolViolation ("chunk size too long.");
-                       }
-
-                       if (!sawCR || c != '\n') {
-                               if (offset < size)
-                                       ThrowProtocolViolation ("Missing \\n");
-
-                               try {
-                                       if (saved.Length > 0)
-                                               chunkSize = Int32.Parse (saved.ToString (), NumberStyles.HexNumber);
-                               } catch (Exception) {
-                                       ThrowProtocolViolation ("Cannot parse chunk size.");
-                               }
-
-                               return State.None;
-                       }
-
-                       chunkRead = 0;
-                       try {
-                               chunkSize = Int32.Parse (saved.ToString (), NumberStyles.HexNumber);
-                       } catch (Exception) {
-                               ThrowProtocolViolation ("Cannot parse chunk size.");
-                       }
-                       
-                       if (chunkSize == 0) {
-                               trailerState = 2;
-                               return State.Trailer;
-                       }
-
-                       return State.Body;
-               }
-
-               State ReadCRLF (byte [] buffer, ref int offset, int size)
-               {
-                       if (!sawCR) {
-                               if ((char) buffer [offset++] != '\r')
-                                       ThrowProtocolViolation ("Expecting \\r");
-
-                               sawCR = true;
-                               if (offset == size)
-                                       return State.BodyFinished;
-                       }
-                       
-                       if (sawCR && (char) buffer [offset++] != '\n')
-                               ThrowProtocolViolation ("Expecting \\n");
-
-                       return State.None;
-               }
-
-               State ReadTrailer (byte [] buffer, ref int offset, int size)
-               {
-                       char c = '\0';
-
-                       // short path
-                       if (trailerState == 2 && (char) buffer [offset] == '\r' && saved.Length == 0) {
-                               offset++;
-                               if (offset < size && (char) buffer [offset] == '\n') {
-                                       offset++;
-                                       return State.None;
-                               }
-                               offset--;
-                       }
-                       
-                       int st = trailerState;
-                       string stString = "\r\n\r";
-                       while (offset < size && st < 4) {
-                               c = (char) buffer [offset++];
-                               if ((st == 0 || st == 2) && c == '\r') {
-                                       st++;
-                                       continue;
-                               }
-
-                               if ((st == 1 || st == 3) && c == '\n') {
-                                       st++;
-                                       continue;
-                               }
-
-                               if (st > 0) {
-                                       saved.Append (stString.Substring (0, saved.Length == 0? st-2: st));
-                                       st = 0;
-                               }
-                       }
-
-                       if (st < 4) {
-                               trailerState = st;
-                               if (offset <  size)
-                                       ThrowProtocolViolation ("Error reading trailer.");
-
-                               return State.Trailer;
-                       }
-
-                       StringReader reader = new StringReader (saved.ToString ());
-                       string line;
-                       while ((line = reader.ReadLine ()) != null && line != "")
-                               headers.Add (line);
-
-                       return State.None;
-               }
-
-               static void ThrowProtocolViolation (string message)
-               {
-                       WebException we = new WebException (message, null, WebExceptionStatus.ServerProtocolViolation, null);
-                       throw we;
-               }
-       }
-}
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/ChunkedInputStream.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/ChunkedInputStream.cs
deleted file mode 100644 (file)
index 2d004a4..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.ChunkedInputStream
-//
-// Authors:
-//     Gonzalo Paniagua Javier (gonzalo@novell.com)
-//
-// Copyright (c) 2005 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-#if EMBEDDED_IN_1_0
-
-using System.IO;
-using System.Net.Sockets;
-using System.Runtime.InteropServices;
-using System; using System.Net; namespace MonoHttp {
-       class ChunkedInputStream : RequestStream {
-               bool disposed;
-               ChunkStream decoder;
-               HttpListenerContext context;
-               bool no_more_data;
-
-               class ReadBufferState {
-                       public byte [] Buffer;
-                       public int Offset;
-                       public int Count;
-                       public int InitialCount;
-                       public HttpStreamAsyncResult Ares;
-                       public ReadBufferState (byte [] buffer, int offset, int count,
-                                               HttpStreamAsyncResult ares)
-                       {
-                               Buffer = buffer;
-                               Offset = offset;
-                               Count = count;
-                               InitialCount = count;
-                               Ares = ares;
-                       }
-               }
-
-               public ChunkedInputStream (HttpListenerContext context, Stream stream,
-                                               byte [] buffer, int offset, int length)
-                                       : base (stream, buffer, offset, length)
-               {
-                       this.context = context;
-                       WebHeaderCollection coll = (WebHeaderCollection) context.Request.Headers;
-                       decoder = new ChunkStream (coll);
-               }
-
-               public ChunkStream Decoder {
-                       get { return decoder; }
-                       set { decoder = value; }
-               }
-
-               public override int Read ([In,Out] byte [] buffer, int offset, int count)
-               {
-                       IAsyncResult ares = BeginRead (buffer, offset, count, null, null);
-                       return EndRead (ares);
-               }
-
-               public override IAsyncResult BeginRead (byte [] buffer, int offset, int count,
-                                                       AsyncCallback cback, object state)
-               {
-                       if (disposed)
-                               throw new ObjectDisposedException (GetType ().ToString ());
-
-                       if (buffer == null)
-                               throw new ArgumentNullException ("buffer");
-
-                       int len = buffer.Length;
-                       if (offset < 0 || offset > len)
-                               throw new ArgumentOutOfRangeException ("offset exceeds the size of buffer");
-
-                       if (count < 0 || offset > len - count)
-                               throw new ArgumentOutOfRangeException ("offset+size exceeds the size of buffer");
-
-                       HttpStreamAsyncResult ares = new HttpStreamAsyncResult ();
-                       ares.Callback = cback;
-                       ares.State = state;
-                       if (no_more_data) {
-                               ares.Complete ();
-                               return ares;
-                       }
-                       int nread = decoder.Read (buffer, offset, count);
-                       offset += nread;
-                       count -= nread;
-                       if (count == 0) {
-                               // got all we wanted, no need to bother the decoder yet
-                               ares.Count = nread;
-                               ares.Complete ();
-                               return ares;
-                       }
-                       if (!decoder.WantMore) {
-                               no_more_data = nread == 0;
-                               ares.Count = nread;
-                               ares.Complete ();
-                               return ares;
-                       }
-                       ares.Buffer = new byte [8192];
-                       ares.Offset = 0;
-                       ares.Count = 8192;
-                       ReadBufferState rb = new ReadBufferState (buffer, offset, count, ares);
-                       rb.InitialCount += nread;
-                       base.BeginRead (ares.Buffer, ares.Offset, ares.Count, OnRead, rb);
-                       return ares;
-               }
-
-               void OnRead (IAsyncResult base_ares)
-               {
-                       ReadBufferState rb = (ReadBufferState) base_ares.AsyncState;
-                       HttpStreamAsyncResult ares = rb.Ares;
-                       try {
-                               int nread = base.EndRead (base_ares);
-                               decoder.Write (ares.Buffer, ares.Offset, nread);
-                               nread = decoder.Read (rb.Buffer, rb.Offset, rb.Count);
-                               rb.Offset += nread;
-                               rb.Count -= nread;
-                               if (rb.Count == 0 || !decoder.WantMore || nread == 0) {
-                                       no_more_data = !decoder.WantMore && nread == 0;
-                                       ares.Count = rb.InitialCount - rb.Count;
-                                       ares.Complete ();
-                                       return;
-                               }
-                               ares.Offset = 0;
-                               ares.Count = Math.Min (8192, decoder.ChunkLeft + 6);
-                               base.BeginRead (ares.Buffer, ares.Offset, ares.Count, OnRead, rb);
-                       } catch (Exception e) {
-                               context.Connection.SendError (e.Message, 400);
-                               ares.Complete (e);
-                       }
-               }
-
-               public override int EndRead (IAsyncResult ares)
-               {
-                       if (disposed)
-                               throw new ObjectDisposedException (GetType ().ToString ());
-
-                       HttpStreamAsyncResult my_ares = ares as HttpStreamAsyncResult;
-                       if (ares == null)
-                               throw new ArgumentException ("Invalid IAsyncResult", "ares");
-
-                       if (!ares.IsCompleted)
-                               ares.AsyncWaitHandle.WaitOne ();
-
-                       if (my_ares.Error != null)
-                               throw new HttpListenerException (400, "I/O operation aborted.");
-
-                       return my_ares.Count;
-               }
-
-               public override void Close ()
-               {
-                       if (!disposed) {
-                               disposed = true;
-                               base.Close ();
-                       }
-               }
-       }
-}
-#endif
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/EndPointListener.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/EndPointListener.cs
deleted file mode 100644 (file)
index deb7922..0000000
+++ /dev/null
@@ -1,328 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.EndPointListener
-//
-// Author:
-//     Gonzalo Paniagua Javier (gonzalo@novell.com)
-//
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-#if !NET_2_0
-
-using System.IO;
-using System.Net.Sockets;
-using System.Collections;
-using System.Security.Cryptography;
-using System.Security.Cryptography.X509Certificates;
-using Mono.Security.Authenticode;
-
-using System; using System.Net; namespace MonoHttp {
-       sealed class EndPointListener : IHttpListenerContextBinder
-       {
-               IPEndPoint endpoint;
-               Socket sock;
-               Hashtable prefixes;  // Dictionary <ListenerPrefix, HttpListener>
-               ArrayList unhandled; // List<ListenerPrefix> unhandled; host = '*'
-               ArrayList all;       // List<ListenerPrefix> all;  host = '+'
-               
-               AsymmetricAlgorithm key;
-               bool secure;
-
-               public EndPointListener (IPAddress addr, int port, bool secure)
-               {
-#if !EMBEDDED_IN_1_0
-                       if (secure) {
-                               this.secure = secure;
-                               LoadCertificateAndKey (addr, port);
-                       }
-#endif
-
-                       endpoint = new IPEndPoint (addr, port);
-                       sock = new Socket (addr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
-                       sock.Bind (endpoint);
-                       sock.Listen (500);
-                       sock.BeginAccept (OnAccept, this);
-                       prefixes = new Hashtable ();
-               }
-
-#if !EMBEDDED_IN_1_0
-               void LoadCertificateAndKey (IPAddress addr, int port)
-               {
-                       // Actually load the certificate
-                       try {
-                               string dirname = Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData);
-                               string path = Path.Combine (dirname, ".mono");
-                               path = Path.Combine (path, "httplistener");
-                               string cert_file = Path.Combine (path, String.Format ("{0}.cer", port));
-                               string pvk_file = Path.Combine (path, String.Format ("{0}.pvk", port));
-                               cert = new X509Certificate2 (cert_file);
-                               key = PrivateKey.CreateFromFile (pvk_file).RSA;
-                       } catch {
-                               // ignore errors
-                       }
-               }
-#endif
-
-               static void OnAccept (IAsyncResult ares)
-               {
-                       EndPointListener epl = (EndPointListener) ares.AsyncState;
-                       Socket accepted = null;
-                       try {
-                               accepted = epl.sock.EndAccept (ares);
-                       } catch {
-                               // Anything to do here?
-                       } finally {
-                               try {
-                                       epl.sock.BeginAccept (OnAccept, epl);
-                               } catch {
-                                       if (accepted != null) {
-                                               try {
-                                                       accepted.Close ();
-                                               } catch {}
-                                               accepted = null;
-                                       }
-                               } 
-                       }
-
-                       if (accepted == null)
-                               return;
-
-                       if (epl.secure && (epl.key == null)) {
-                               accepted.Close ();
-                               return;
-                       }
-                       HttpConnection conn = new HttpConnection (accepted, epl);
-                       conn.BeginReadRequest ();
-               }
-
-               public bool BindContext (HttpListenerContext context)
-               {
-                       HttpListenerRequest req = context.Request;
-                       ListenerPrefix prefix;
-                       HttpListener listener = SearchListener (req.UserHostName, req.RawUrl, out prefix);
-                       if (listener == null)
-                               return false;
-
-                       context.Listener = listener;
-                       context.Connection.Prefix = prefix;
-                       listener.RegisterContext (context);
-                       return true;
-               }
-
-               public void UnbindContext (HttpListenerContext context)
-               {
-                       if (context == null || context.Request == null)
-                               return;
-
-                       HttpListenerRequest req = context.Request;
-                       ListenerPrefix prefix;
-                       HttpListener listener = SearchListener (req.UserHostName, req.RawUrl, out prefix);
-                       if (listener != null)
-                               listener.UnregisterContext (context);
-               }
-
-               HttpListener SearchListener (string host, string raw_url, out ListenerPrefix prefix)
-               {
-                       prefix = null;
-                       if (raw_url == null)
-                               return null;
-
-                       //TODO: We should use a ReaderWriterLock between this and the add/remove operations.
-                       if (host != null) {
-                               int colon = host.IndexOf (':');
-                               if (colon >= 0)
-                                       host = host.Substring (0, colon);
-                       }
-
-                       string path;
-                       Uri raw_uri;
-                       #if NET_2_0
-if (MonoHttp.Utility.MaybeUri (raw_url) && Uri.TryCreate (raw_url, UriKind.Absolute, out raw_uri))
-#else
-try { raw_uri = new Uri (raw_url); } catch { raw_uri = null; } if (raw_uri != null)
-#endif
-
-                               path = raw_uri.PathAndQuery;
-                       else
-                               path = HttpUtility.UrlDecode (raw_url);
-                       
-                       string path_slash = path [path.Length - 1] == '/' ? path : path + "/";
-                       
-                       HttpListener best_match = null;
-                       int best_length = -1;
-
-                       lock (prefixes) {
-                               if (host != null && host != "") {
-                                       foreach (ListenerPrefix p in prefixes.Keys) {
-                                               string ppath = p.Path;
-                                               if (ppath.Length < best_length)
-                                                       continue;
-
-                                               if (p.Host == host && (path.StartsWith (ppath) || path_slash.StartsWith (ppath))) {
-                                                       best_length = ppath.Length;
-                                                       best_match = (HttpListener) prefixes [p];
-                                                       prefix = p;
-                                               }
-                                       }
-                                       if (best_length != -1)
-                                               return best_match;
-                               }
-
-                               best_match = MatchFromList (host, path, unhandled, out prefix);
-                               if (best_match != null)
-                                       return best_match;
-
-                               best_match = MatchFromList (host, path, all, out prefix);
-                               if (best_match != null)
-                                       return best_match;
-                       }
-                       return null;
-               }
-
-               HttpListener MatchFromList (string host, string path, ArrayList list, out ListenerPrefix prefix)
-               {
-                       prefix = null;
-                       if (list == null)
-                               return null;
-
-                       HttpListener best_match = null;
-                       int best_length = -1;
-                       
-                       foreach (ListenerPrefix p in list) {
-                               string ppath = p.Path;
-                               if (ppath.Length < best_length)
-                                       continue;
-
-                               if (path.StartsWith (ppath)) {
-                                       best_length = ppath.Length;
-                                       best_match = p.Listener;
-                                       prefix = p;
-                               }
-                       }
-
-                       return best_match;
-               }
-
-               void AddSpecial (ArrayList coll, ListenerPrefix prefix)
-               {
-                       if (coll == null)
-                               return;
-
-                       foreach (ListenerPrefix p in coll) {
-                               if (p.Path == prefix.Path) //TODO: code
-                                       throw new HttpListenerException (400, "Prefix already in use.");
-                       }
-
-                       coll.Add (prefix);
-               }
-
-               void RemoveSpecial (ArrayList coll, ListenerPrefix prefix)
-               {
-                       if (coll == null)
-                               return;
-
-                       int c = coll.Count;
-                       for (int i = 0; i < c; i++) {
-                               ListenerPrefix p = (ListenerPrefix) coll [i];
-                               if (p.Path == prefix.Path) {
-                                       coll.RemoveAt (i);
-                                       CheckIfRemove ();
-                                       return;
-                               }
-                       }
-               }
-
-               void CheckIfRemove ()
-               {
-                       if (prefixes.Count > 0)
-                               return;
-
-                       if (unhandled != null && unhandled.Count > 0)
-                               return;
-
-                       if (all != null && all.Count > 0)
-                               return;
-
-                       EndPointManager.RemoveEndPoint (this, endpoint);
-               }
-
-               public void Close ()
-               {
-                       sock.Close ();
-               }
-
-               public void AddPrefix (ListenerPrefix prefix, HttpListener listener)
-               {
-                       lock (prefixes) {
-                               if (prefix.Host == "*") {
-                                       if (unhandled == null)
-                                               unhandled = new ArrayList ();
-
-                                       prefix.Listener = listener;
-                                       AddSpecial (unhandled, prefix);
-                                       return;
-                               }
-
-                               if (prefix.Host == "+") {
-                                       if (all == null)
-                                               all = new ArrayList ();
-                                       prefix.Listener = listener;
-                                       AddSpecial (all, prefix);
-                                       return;
-                               }
-
-                               if (prefixes.ContainsKey (prefix)) {
-                                       HttpListener other = (HttpListener) prefixes [prefix];
-                                       if (other != listener) // TODO: code.
-                                               throw new HttpListenerException (400, "There's another listener for " + prefix);
-                                       return;
-                               }
-
-                               prefixes [prefix] = listener;
-                       }
-               }
-
-               public void RemovePrefix (ListenerPrefix prefix, HttpListener listener)
-               {
-                       lock (prefixes) {
-                               if (prefix.Host == "*") {
-                                       RemoveSpecial (unhandled, prefix);
-                                       return;
-                               }
-
-                               if (prefix.Host == "+") {
-                                       RemoveSpecial (all, prefix);
-                                       return;
-                               }
-
-                               if (prefixes.ContainsKey (prefix)) {
-                                       prefixes.Remove (prefix);
-                                       CheckIfRemove ();
-                               }
-                       }
-               }
-       }
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/EndPointManager.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/EndPointManager.cs
deleted file mode 100644 (file)
index 3e2934e..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.EndPointManager
-//
-// Author:
-//     Gonzalo Paniagua Javier (gonzalo@ximian.com)
-//
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-#if !NET_2_0
-
-using System.Collections;
-using System.Collections.Generic;
-using System; using System.Net; namespace MonoHttp {
-       sealed class EndPointManager
-       {
-               // Dictionary<IPAddress, Dictionary<int, EndPointListener>>
-               static Hashtable ip_to_endpoints = new Hashtable ();
-               
-               private EndPointManager ()
-               {
-               }
-
-               public static void AddListener (HttpListener listener)
-               {
-                       ArrayList added = new ArrayList ();
-                       try {
-                               lock (ip_to_endpoints) {
-                                       foreach (string prefix in listener.Prefixes) {
-                                               AddPrefixInternal (prefix, listener);
-                                               added.Add (prefix);
-                                       }
-                               }
-                       } catch {
-                               foreach (string prefix in added) {
-                                       RemovePrefix (prefix, listener);
-                               }
-                               throw;
-                       }
-               }
-
-               public static void AddPrefix (string prefix, HttpListener listener)
-               {
-                       lock (ip_to_endpoints) {
-                               AddPrefixInternal (prefix, listener);
-                       }
-               }
-
-               static void AddPrefixInternal (string p, HttpListener listener)
-               {
-                       ListenerPrefix lp = new ListenerPrefix (p);
-                       if (lp.Path.IndexOf ('%') != -1)
-                               throw new HttpListenerException (400, "Invalid path.");
-
-                       if (lp.Path.IndexOf ("//") != -1) // TODO: Code?
-                               throw new HttpListenerException (400, "Invalid path.");
-
-                       // Always listens on all the interfaces, no matter the host name/ip used.
-                       EndPointListener epl = GetEPListener (IPAddress.Any, lp.Port, listener, lp.Secure);
-                       epl.AddPrefix (lp, listener);
-               }
-
-               static EndPointListener GetEPListener (IPAddress addr, int port, HttpListener listener, bool secure)
-               {
-                       Hashtable p = null;  // Dictionary<int, EndPointListener>
-                       if (ip_to_endpoints.ContainsKey (addr)) {
-                               p = (Hashtable) ip_to_endpoints [addr];
-                       } else {
-                               p = new Hashtable ();
-                               ip_to_endpoints [addr] = p;
-                       }
-
-                       EndPointListener epl = null;
-                       if (p.ContainsKey (port)) {
-                               epl = (EndPointListener) p [port];
-                       } else {
-                               epl = new EndPointListener (addr, port, secure);
-                               p [port] = epl;
-                       }
-
-                       return epl;
-               }
-
-               public static void RemoveEndPoint (EndPointListener epl, IPEndPoint ep)
-               {
-                       lock (ip_to_endpoints) {
-                               // Dictionary<int, EndPointListener> p
-                               Hashtable p = null;
-                               p = (Hashtable) ip_to_endpoints [ep.Address];
-                               p.Remove (ep.Port);
-                               if (p.Count == 0) {
-                                       ip_to_endpoints.Remove (ep.Address);
-                               }
-                               epl.Close ();
-                       }
-               }
-
-               public static void RemoveListener (HttpListener listener)
-               {
-                       lock (ip_to_endpoints) {
-                               foreach (string prefix in listener.Prefixes) {
-                                       RemovePrefixInternal (prefix, listener);
-                               }
-                       }
-               }
-
-               public static void RemovePrefix (string prefix, HttpListener listener)
-               {
-                       lock (ip_to_endpoints) {
-                               RemovePrefixInternal (prefix, listener);
-                       }
-               }
-
-               static void RemovePrefixInternal (string prefix, HttpListener listener)
-               {
-                       ListenerPrefix lp = new ListenerPrefix (prefix);
-                       if (lp.Path.IndexOf ('%') != -1)
-                               return;
-
-                       if (lp.Path.IndexOf ("//") != -1)
-                               return;
-
-                       EndPointListener epl = GetEPListener (IPAddress.Any, lp.Port, listener, lp.Secure);
-                       epl.RemovePrefix (lp, listener);
-               }
-       }
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/HttpConnection.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/HttpConnection.cs
deleted file mode 100644 (file)
index 5016883..0000000
+++ /dev/null
@@ -1,377 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.HttpConnection
-//
-// Author:
-//     Gonzalo Paniagua Javier (gonzalo@novell.com)
-//
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-#if EMBEDDED_IN_1_0
-
-using System.IO;
-using System.Net.Sockets;
-using System.Reflection;
-using System.Text;
-using System.Security.Cryptography;
-using System.Security.Cryptography.X509Certificates;
-#if !EMBEDDED_IN_1_0
-using Mono.Security.Protocol.Tls;
-#endif
-
-using System; using System.Net; namespace MonoHttp {
-
-       interface IHttpListenerContextBinder {
-               bool BindContext (HttpListenerContext context);
-               void UnbindContext (HttpListenerContext context);
-       }
-
-       sealed class HttpConnection
-       {
-               const int BufferSize = 8192;
-               Socket sock;
-               Stream stream;
-               IHttpListenerContextBinder epl;
-               MemoryStream ms;
-               byte [] buffer;
-               HttpListenerContext context;
-               StringBuilder current_line;
-               ListenerPrefix prefix;
-               RequestStream i_stream;
-               ResponseStream o_stream;
-               bool chunked;
-               int chunked_uses;
-               bool context_bound;
-               bool secure;
-               AsymmetricAlgorithm key;
-
-#if EMBEDDED_IN_1_0
-               public HttpConnection (Socket sock, IHttpListenerContextBinder epl)
-               {
-                       this.sock = sock;
-                       this.epl = epl;
-                       stream = new NetworkStream (sock, false);
-                       Init ();
-               }
-#else
-               public HttpConnection (Socket sock, IHttpListenerContextBinder epl, bool secure, X509Certificate2 cert, AsymmetricAlgorithm key)
-               {
-                       this.sock = sock;
-                       this.epl = epl;
-                       this.secure = secure;
-                       this.key = key;
-                       if (secure == false) {
-                               stream = new NetworkStream (sock, false);
-                       } else {
-#if EMBEDDED_IN_1_0
-                               throw new NotImplementedException ();
-#else
-                               SslServerStream ssl_stream = new SslServerStream (new NetworkStream (sock, false), cert, false, false);
-                               ssl_stream.PrivateKeyCertSelectionDelegate += OnPVKSelection;
-                               stream = ssl_stream;
-#endif
-                       }
-                       Init ();
-               }
-#endif
-
-               AsymmetricAlgorithm OnPVKSelection (X509Certificate certificate, string targetHost)
-               {
-                       return key;
-               }
-
-
-               void Init ()
-               {
-                       context_bound = false;
-                       i_stream = null;
-                       o_stream = null;
-                       prefix = null;
-                       chunked = false;
-                       ms = new MemoryStream ();
-                       position = 0;
-                       input_state = InputState.RequestLine;
-                       line_state = LineState.None;
-                       context = new HttpListenerContext (this);
-               }
-
-               public int ChunkedUses {
-                       get { return chunked_uses; }
-               }
-
-               public IPEndPoint LocalEndPoint {
-                       get { return (IPEndPoint) sock.LocalEndPoint; }
-               }
-
-               public IPEndPoint RemoteEndPoint {
-                       get { return (IPEndPoint) sock.RemoteEndPoint; }
-               }
-
-               public bool IsSecure {
-                       get { return secure; }
-               }
-
-               public ListenerPrefix Prefix {
-                       get { return prefix; }
-                       set { prefix = value; }
-               }
-
-               public void BeginReadRequest ()
-               {
-                       if (buffer == null)
-                               buffer = new byte [BufferSize];
-                       try {
-                               stream.BeginRead (buffer, 0, BufferSize, OnRead, this);
-                       } catch {
-                               sock.Close (); // stream disposed
-                       }
-               }
-
-               public RequestStream GetRequestStream (bool chunked, long contentlength)
-               {
-                       if (i_stream == null) {
-                               byte [] buffer = ms.GetBuffer ();
-                               int length = (int) ms.Length;
-                               ms = null;
-                               if (chunked) {
-                                       this.chunked = true;
-                                       context.Response.SendChunked = true;
-                                       i_stream = new ChunkedInputStream (context, stream, buffer, position, length - position);
-                               } else {
-                                       i_stream = new RequestStream (stream, buffer, position, length - position, contentlength);
-                               }
-                       }
-                       return i_stream;
-               }
-
-               public ResponseStream GetResponseStream ()
-               {
-                       // TODO: can we get this stream before reading the input?
-                       if (o_stream == null) {
-                               HttpListener listener = context.Listener;
-                               bool ign = false;// ? true : listener.IgnoreWriteExceptions;
-                               o_stream = new ResponseStream (stream, context.Response, ign);
-                       }
-                       return o_stream;
-               }
-
-               void OnRead (IAsyncResult ares)
-               {
-                       // TODO: set a limit on ms length.
-                       HttpConnection cnc = (HttpConnection) ares.AsyncState;
-                       int nread = -1;
-                       try {
-                               nread = stream.EndRead (ares);
-                               ms.Write (buffer, 0, nread);
-                       } catch (Exception e) {
-                               //Console.WriteLine (e);
-                               if (ms.Length > 0)
-                                       SendError ();
-                               sock.Close ();
-                               return;
-                       }
-
-                       if (nread == 0) {
-                               //if (ms.Length > 0)
-                               //      SendError (); // Why bother?
-                               sock.Close ();
-                               return;
-                       }
-
-                       if (ProcessInput (ms)) {
-                               if (!context.HaveError)
-                                       context.Request.FinishInitialization ();
-
-                               if (context.HaveError) {
-                                       SendError ();
-                                       Close ();
-                                       return;
-                               }
-
-                               if (!epl.BindContext (context)) {
-                                       SendError ("Invalid host", 400);
-                                       Close ();
-                               }
-                               context_bound = true;
-                               return;
-                       }
-                       stream.BeginRead (buffer, 0, BufferSize, OnRead, cnc);
-               }
-
-               enum InputState {
-                       RequestLine,
-                       Headers
-               }
-
-               enum LineState {
-                       None,
-                       CR,
-                       LF
-               }
-
-               InputState input_state = InputState.RequestLine;
-               LineState line_state = LineState.None;
-               int position;
-
-               // true -> done processing
-               // false -> need more input
-               bool ProcessInput (MemoryStream ms)
-               {
-                       byte [] buffer = ms.GetBuffer ();
-                       int len = (int) ms.Length;
-                       int used = 0;
-                       string line;
-                       while ((line = ReadLine (buffer, position, len - position, ref used)) != null) {
-                               position += used;
-                               if (line == "") {
-                                       if (input_state == InputState.RequestLine)
-                                               continue;
-                                       current_line = null;
-                                       ms = null;
-                                       return true;
-                               }
-
-                               if (input_state == InputState.RequestLine) {
-                                       context.Request.SetRequestLine (line);
-                                       input_state = InputState.Headers;
-                               } else {
-                                       context.Request.AddHeader (line);
-                               }
-
-                               if (context.HaveError)
-                                       return true;
-
-                               if (position >= len)
-                                       break;
-                       }
-
-                       if (used == len) {
-                               ms.SetLength (0);
-                               position = 0;
-                       }
-                       return false;
-               }
-
-               string ReadLine (byte [] buffer, int offset, int len, ref int used)
-               {
-                       if (current_line == null)
-                               current_line = new StringBuilder ();
-                       int last = offset + len;
-                       used = 0;
-                       for (int i = offset; i < last && line_state != LineState.LF; i++) {
-                               used++;
-                               byte b = buffer [i];
-                               if (b == 13) {
-                                       line_state = LineState.CR;
-                               } else if (b == 10) {
-                                       line_state = LineState.LF;
-                               } else {
-                                       current_line.Append ((char) b);
-                               }
-                       }
-
-                       string result = null;
-                       if (line_state == LineState.LF) {
-                               line_state = LineState.None;
-                               result = current_line.ToString ();
-                               current_line.Length = 0;
-                       }
-
-                       return result;
-               }
-
-               public void SendError (string msg, int status)
-               {
-                       HttpListenerResponse response = context.Response;
-                       response.StatusCode = status;
-                       response.ContentType = "text/html";
-                       string description = HttpListenerResponse.GetStatusDescription (status);
-                       string str;
-                       if (msg != null)
-                               str = String.Format ("<h1>{0} ({1})</h1>", description, msg);
-                       else
-                               str = String.Format ("<h1>{0}</h1>", description);
-
-                       byte [] error = context.Response.ContentEncoding.GetBytes (str);
-                       response.Close (error, false);
-               }
-
-               public void SendError ()
-               {
-                       SendError (context.ErrorMessage, context.ErrorStatus);
-               }
-
-               void Unbind ()
-               {
-                       if (context_bound) {
-                               epl.UnbindContext (context);
-                               context_bound = false;
-                       }
-               }
-
-               public void Close ()
-               {
-                       Close (false);
-               }
-
-               internal void Close (bool force_close)
-               {
-                       if (sock != null) {
-                               Stream st = GetResponseStream ();
-                               st.Close ();
-                               o_stream = null;
-                       }
-
-                       if (sock != null) {
-                               if (!force_close && chunked && context.Response.ForceCloseChunked == false) {
-                                       // Don't close. Keep working.
-                                       chunked_uses++;
-                                       Unbind ();
-                                       Init ();
-                                       BeginReadRequest ();
-                                       return;
-                               }
-
-                               if (force_close || context.Response.Headers ["connection"] == "close") {
-                                       Socket s = sock;
-                                       sock = null;
-                                       try {
-                                               s.Shutdown (SocketShutdown.Both);
-                                       } catch {
-                                       } finally {
-                                               s.Close ();
-                                       }
-                                       Unbind ();
-                               } else {
-                                       Unbind ();
-                                       Init ();
-                                       BeginReadRequest ();
-                                       return;
-                               }
-                       }
-               }
-       }
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/HttpListener.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/HttpListener.cs
deleted file mode 100644 (file)
index ff505de..0000000
+++ /dev/null
@@ -1,319 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.HttpListener
-//
-// Author:
-//     Gonzalo Paniagua Javier (gonzalo@novell.com)
-//
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-#if !NET_2_0
-
-using System.Collections;
-using System.Threading;
-//TODO: logging
-using System; using System.Net; namespace MonoHttp {
-       internal class HttpListener : IDisposable {
-               AuthenticationSchemes auth_schemes;
-               HttpListenerPrefixCollection prefixes;
-               AuthenticationSchemeSelector auth_selector; 
-               string realm;
-               bool ignore_write_exceptions;
-               bool unsafe_ntlm_auth;
-               bool listening;
-               bool disposed;
-
-               Hashtable registry;   // Dictionary<HttpListenerContext,HttpListenerContext> 
-               ArrayList ctx_queue;  // List<HttpListenerContext> ctx_queue;
-               ArrayList wait_queue; // List<ListenerAsyncResult> wait_queue;
-
-               public HttpListener ()
-               {
-                       prefixes = new HttpListenerPrefixCollection (this);
-                       registry = new Hashtable ();
-                       ctx_queue = new ArrayList ();
-                       wait_queue = new ArrayList ();
-                       auth_schemes = AuthenticationSchemes.Anonymous;
-               }
-
-               // TODO: Digest, NTLM and Negotiate require ControlPrincipal
-               public AuthenticationSchemes AuthenticationSchemes {
-                       get { return auth_schemes; }
-                       set {
-                               CheckDisposed ();
-                               auth_schemes = value;
-                       }
-               }
-
-               //TODO: when is this called?
-               public AuthenticationSchemeSelector AuthenticationSchemeSelectorDelegate {
-                       get { return auth_selector; }
-                       set {
-                               CheckDisposed ();
-                               auth_selector = value;
-                       }
-               }
-
-               public bool IgnoreWriteExceptions {
-                       get { return ignore_write_exceptions; }
-                       set {
-                               CheckDisposed ();
-                               ignore_write_exceptions = value;
-                       }
-               }
-
-               public bool IsListening {
-                       get { return listening; }
-               }
-
-               public static bool IsSupported {
-                       get { return true; }
-               }
-
-               public HttpListenerPrefixCollection Prefixes {
-                       get {
-                               CheckDisposed ();
-                               return prefixes;
-                       }
-               }
-
-               // TODO: use this
-               public string Realm {
-                       get { return realm; }
-                       set {
-                               CheckDisposed ();
-                               realm = value;
-                       }
-               }
-
-               [MonoTODO ("Support for NTLM needs some loving.")]
-               public bool UnsafeConnectionNtlmAuthentication {
-                       get { return unsafe_ntlm_auth; }
-                       set {
-                               CheckDisposed ();
-                               unsafe_ntlm_auth = value;
-                       }
-               }
-
-               public void Abort ()
-               {
-                       if (disposed)
-                               return;
-
-                       if (!listening) {
-                               return;
-                       }
-
-                       Close (true);
-               }
-
-               public void Close ()
-               {
-                       if (disposed)
-                               return;
-
-                       if (!listening) {
-                               disposed = true;
-                               return;
-                       }
-
-                       Close (false);
-                       disposed = true;
-               }
-
-               void Close (bool force)
-               {
-                       CheckDisposed ();
-                       EndPointManager.RemoveListener (this);
-                       Cleanup (force);
-               }
-
-               void Cleanup (bool close_existing)
-               {
-                       lock (registry) {
-                               if (close_existing) {
-                                       foreach (HttpListenerContext context in registry.Keys) {
-                                               context.Connection.Close ();
-                                       }
-                                       registry.Clear (); // Just in case.
-                               }
-
-                               lock (ctx_queue) {
-                                       foreach (HttpListenerContext context in ctx_queue)
-                                               context.Connection.Close ();
-
-                                       ctx_queue.Clear ();
-                               }
-
-                               lock (wait_queue) {
-                                       foreach (ListenerAsyncResult ares in wait_queue) {
-                                               ares.Complete ("Listener was closed.");
-                                       }
-                                       wait_queue.Clear ();
-                               }
-                       }
-               }
-
-               public IAsyncResult BeginGetContext (AsyncCallback callback, Object state)
-               {
-                       CheckDisposed ();
-                       if (!listening)
-                               throw new InvalidOperationException ("Please, call Start before using this method.");
-
-                       ListenerAsyncResult ares = new ListenerAsyncResult (callback, state);
-
-                       // lock wait_queue early to avoid race conditions
-                       lock (wait_queue) {
-                               lock (ctx_queue) {
-                                       HttpListenerContext ctx = GetContextFromQueue ();
-                                       if (ctx != null) {
-                                               ares.Complete (ctx, true);
-                                               return ares;
-                                       }
-                               }
-
-                               wait_queue.Add (ares);
-                       }
-
-                       return ares;
-               }
-
-               public HttpListenerContext EndGetContext (IAsyncResult asyncResult)
-               {
-                       CheckDisposed ();
-                       if (asyncResult == null)
-                               throw new ArgumentNullException ("asyncResult");
-
-                       ListenerAsyncResult ares = asyncResult as ListenerAsyncResult;
-                       if (ares == null)
-                               throw new ArgumentException ("Wrong IAsyncResult.", "asyncResult");
-
-                       if (!ares.IsCompleted)
-                               ares.AsyncWaitHandle.WaitOne ();
-
-                       lock (wait_queue) {
-                               int idx = wait_queue.IndexOf (ares);
-                               if (idx >= 0)
-                                       wait_queue.RemoveAt (idx);
-                       }
-
-                       HttpListenerContext context = ares.GetContext ();
-                       if (auth_schemes != AuthenticationSchemes.Anonymous) {
-                               context.ParseAuthentication ();
-                       }
-                       return context; // This will throw on error.
-               }
-
-               public HttpListenerContext GetContext ()
-               {
-                       // The prefixes are not checked when using the async interface!?
-                       if (prefixes.Count == 0)
-                               throw new InvalidOperationException ("Please, call AddPrefix before using this method.");
-
-                       IAsyncResult ares = BeginGetContext (null, null);
-                       return EndGetContext (ares);
-               }
-
-               public void Start ()
-               {
-                       CheckDisposed ();
-                       if (listening)
-                               return;
-
-                       EndPointManager.AddListener (this);
-                       listening = true;
-               }
-
-               public void Stop ()
-               {
-                       CheckDisposed ();
-                       listening = false;
-                       Close (false);
-               }
-
-               void IDisposable.Dispose ()
-               {
-                       if (disposed)
-                               return;
-
-                       Close (true); //TODO: Should we force here or not?
-                       disposed = true;
-               }
-
-               internal void CheckDisposed ()
-               {
-                       if (disposed)
-                               throw new ObjectDisposedException (GetType ().ToString ());
-               }
-
-               // Must be called with a lock on ctx_queue
-               HttpListenerContext GetContextFromQueue ()
-               {
-                       if (ctx_queue.Count == 0)
-                               return null;
-
-                       HttpListenerContext context = (HttpListenerContext) ctx_queue [0];
-                       ctx_queue.RemoveAt (0);
-                       return context;
-               }
-
-               internal void RegisterContext (HttpListenerContext context)
-               {
-                       try {
-                               Monitor.Enter (registry);
-                               registry [context] = context;
-                               Monitor.Enter (wait_queue);
-                               Monitor.Enter (ctx_queue);
-                               if (wait_queue.Count == 0) {
-                                       ctx_queue.Add (context);
-                               } else {
-                                       ListenerAsyncResult ares = (ListenerAsyncResult) wait_queue [0];
-                                       wait_queue.RemoveAt (0);
-                                       ares.Complete (context);
-                               }
-                       } finally {
-                               Monitor.Exit (ctx_queue);
-                               Monitor.Exit (wait_queue);
-                               Monitor.Exit (registry);
-                       }
-               }
-
-               internal void UnregisterContext (HttpListenerContext context)
-               {
-                       try {
-                               Monitor.Enter (registry);
-                               Monitor.Enter (ctx_queue);
-                               int idx = ctx_queue.IndexOf (context);
-                               if (idx >= 0)
-                                       ctx_queue.RemoveAt (idx);
-                               registry.Remove (context);
-                       } finally {
-                               Monitor.Exit (ctx_queue);
-                               Monitor.Exit (registry);
-                       }
-               }
-       }
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/HttpListenerBasicIdentity.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/HttpListenerBasicIdentity.cs
deleted file mode 100644 (file)
index e785bac..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.HttpListenerBasicIdentity
-//
-// Author:
-//     Gonzalo Paniagua Javier (gonzalo@novell.com)
-//
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-#if !NET_2_0
-using System.Security.Principal;
-using System; using System.Net; namespace MonoHttp {
-       internal class HttpListenerBasicIdentity : GenericIdentity {
-               string password;
-
-               public HttpListenerBasicIdentity (string username, string password) : base (username, "Basic")
-               {
-                       this.password = password;
-               }
-
-               public virtual string Password {
-                       get { return password; }
-               }
-       }
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/HttpListenerContext.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/HttpListenerContext.cs
deleted file mode 100644 (file)
index b002a6a..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.HttpListenerContext
-//
-// Author:
-//     Gonzalo Paniagua Javier (gonzalo@novell.com)
-//
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-#if EMBEDDED_IN_1_0
-
-using System.Collections.Specialized;
-using System.IO;
-using System.Security.Principal;
-using System.Text;
-using System; using System.Net; namespace MonoHttp {
-       internal class HttpListenerContext {
-               HttpListenerRequest request;
-               HttpListenerResponse response;
-               IPrincipal user;
-               HttpConnection cnc;
-               string error;
-               int err_status = 400;
-               internal HttpListener Listener;
-
-               internal HttpListenerContext (HttpConnection cnc)
-               {
-                       this.cnc = cnc;
-                       request = new HttpListenerRequest (this);
-                       response = new HttpListenerResponse (this);
-               }
-
-               internal int ErrorStatus {
-                       get { return err_status; }
-                       set { err_status = value; }
-               }
-
-               internal string ErrorMessage {
-                       get { return error; }
-                       set { error = value; }
-               }
-
-               internal bool HaveError {
-                       get { return (error != null); }
-               }
-
-               internal HttpConnection Connection {
-                       get { return cnc; }
-               }
-
-               public HttpListenerRequest Request {
-                       get { return request; }
-               }
-
-               public HttpListenerResponse Response {
-                       get { return response; }
-               }
-
-               public IPrincipal User {
-                       get { return user; }
-               }
-
-               internal void ParseAuthentication () {
-                       // TODO: Handle NTLM/Digest modes
-                       string header = request.Headers ["Authorization"];
-
-                       if (header == null || header.Length < 2)
-                               return;
-
-                       string [] authenticationData = header.Substring (header.IndexOf (':') + 1).Split (new char [] {' '});
-
-                       if (string.Compare (authenticationData [0], "basic", true) == 0) {
-                               user = ParseBasicAuthentication (authenticationData [1]);
-                       }
-               }
-       
-               internal IPrincipal ParseBasicAuthentication (string authData) {
-                       try {
-                               // Basic AUTH Data is a formatted Base64 String
-                               //string domain = null;
-                               string user = null;
-                               string password = null;
-                               int pos = -1;
-                               string authString = System.Text.Encoding.Default.GetString (Convert.FromBase64String (authData));
-       
-                               // The format is DOMAIN\username:password
-                               // Domain is optional
-
-                               pos = authString.IndexOf (':');
-       
-                               // parse the password off the end
-                               password = authString.Substring (pos+1);
-                               
-                               // discard the password
-                               authString = authString.Substring (0, pos);
-       
-                               // check if there is a domain
-                               pos = authString.IndexOf ('\\');
-       
-                               if (pos > 0) {
-                                       //domain = authString.Substring (0, pos);
-                                       user = authString.Substring (pos);
-                               } else {
-                                       user = authString;
-                               }
-       
-                               HttpListenerBasicIdentity identity = new HttpListenerBasicIdentity (user, password);
-                               // TODO: What are the roles MS sets
-                               return new GenericPrincipal (identity, new string [0]);
-                       } catch (Exception) {
-                               // Invalid auth data is swallowed silently
-                               return null;
-                       } 
-               }
-       }
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/HttpListenerException.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/HttpListenerException.cs
deleted file mode 100644 (file)
index 036058e..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.HttpListenerException
-//
-// Author:
-//     Gonzalo Paniagua Javier (gonzalo@novell.com)
-//
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-#if !NET_2_0
-using System.ComponentModel;
-using System.Runtime.Serialization;
-using System; using System.Net; namespace MonoHttp {
-       [Serializable]
-       internal class HttpListenerException : Win32Exception
-       {
-               public HttpListenerException ()
-               {
-               }
-
-               public HttpListenerException (int errorCode) : base (errorCode)
-               {
-               }
-
-               public HttpListenerException (int errorCode, string message) : base (errorCode, message)
-               {
-               }
-
-               protected HttpListenerException (SerializationInfo serializationInfo, StreamingContext streamingContext) : base (serializationInfo, streamingContext)
-               {
-               }
-
-               public override int ErrorCode {
-                       get { return base.ErrorCode; }
-               }
-       }
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/HttpListenerPrefixCollection.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/HttpListenerPrefixCollection.cs
deleted file mode 100644 (file)
index 2c7b38a..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.HttpListenerPrefixCollection.cs
-//
-// Author:
-//     Gonzalo Paniagua Javier (gonzalo@novell.com)
-//
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-#if !NET_2_0
-
-using System.Collections;
-using System.Collections.Generic;
-using System; using System.Net; namespace MonoHttp {
-#if EMBEDDED_IN_1_0
-       internal class HttpListenerPrefixCollection : IEnumerable, ICollection {
-               ArrayList prefixes;
-               
-#else
-       internal class HttpListenerPrefixCollection : ICollection<string>, IEnumerable<string>, IEnumerable {
-               List<string> prefixes = new List<string> ();
-#endif
-               HttpListener listener;
-
-               internal HttpListenerPrefixCollection (HttpListener listener)
-               {
-                       this.listener = listener;
-               }
-
-               public int Count {
-                       get { return prefixes.Count; }
-               }
-
-               public bool IsReadOnly {
-                       get { return false; }
-               }
-
-               public bool IsSynchronized {
-                       get { return false; }
-               }
-
-               public void Add (string uriPrefix)
-               {
-                       listener.CheckDisposed ();
-                       ListenerPrefix.CheckUri (uriPrefix);
-                       if (prefixes.Contains (uriPrefix))
-                               return;
-
-                       prefixes.Add (uriPrefix);
-                       if (listener.IsListening)
-                               EndPointManager.AddPrefix (uriPrefix, listener);
-               }
-
-               public void Clear ()
-               {
-                       listener.CheckDisposed ();
-                       prefixes.Clear ();
-                       if (listener.IsListening)
-                               EndPointManager.RemoveListener (listener);
-               }
-
-               public bool Contains (string uriPrefix)
-               {
-                       listener.CheckDisposed ();
-                       return prefixes.Contains (uriPrefix);
-               }
-
-               public void CopyTo (string [] array, int offset)
-               {
-                       listener.CheckDisposed ();
-                       prefixes.CopyTo (array, offset);
-               }
-
-               public void CopyTo (Array array, int offset)
-               {
-                       listener.CheckDisposed ();
-                       ((ICollection) prefixes).CopyTo (array, offset);
-               }
-
-#if !EMBEDDED_IN_1_0
-               public IEnumerator<string> GetEnumerator ()
-               {
-                       return prefixes.GetEnumerator ();
-               }
-#else
-               object ICollection.SyncRoot { get { return this; } }
-#endif
-       
-               IEnumerator IEnumerable.GetEnumerator ()
-               {
-                       return prefixes.GetEnumerator ();
-               }
-
-               public bool Remove (string uriPrefix)
-               {
-                       listener.CheckDisposed ();
-                       if (uriPrefix == null)
-                               throw new ArgumentNullException ("uriPrefix");
-
-                       bool result = prefixes.Contains (uriPrefix); if (result) prefixes.Remove (uriPrefix);;
-                       if (result && listener.IsListening)
-                               EndPointManager.RemovePrefix (uriPrefix, listener);
-
-                       return result;
-               }
-       }
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/HttpListenerRequest.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/HttpListenerRequest.cs
deleted file mode 100644 (file)
index e2f9e4b..0000000
+++ /dev/null
@@ -1,450 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.HttpListenerRequest
-//
-// Author:
-//     Gonzalo Paniagua Javier (gonzalo@novell.com)
-//
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-#if EMBEDDED_IN_1_0
-
-using System.Collections;
-using System.Collections.Specialized;
-using System.Globalization;
-using System.IO;
-using System.Security.Cryptography.X509Certificates;
-using System.Text;
-using System; using System.Net; namespace MonoHttp {
-       internal class HttpListenerRequest
-       {
-               string [] accept_types;
-//             int client_cert_error;
-//             bool no_get_certificate;
-               Encoding content_encoding;
-               long content_length;
-               bool cl_set;
-               CookieCollection cookies;
-               WebHeaderCollection headers;
-               string method;
-               Stream input_stream;
-               Version version;
-               NameValueCollection query_string; // check if null is ok, check if read-only, check case-sensitiveness
-               string raw_url;
-               Guid identifier;
-               Uri url;
-               Uri referrer;
-               string [] user_languages;
-               HttpListenerContext context;
-               bool is_chunked;
-               static byte [] _100continue = Encoding.ASCII.GetBytes ("HTTP/1.1 100 Continue\r\n\r\n");
-               static readonly string [] no_body_methods = new string [] {
-                       "GET", "HEAD", "DELETE" };
-
-               internal HttpListenerRequest (HttpListenerContext context)
-               {
-                       this.context = context;
-                       headers = new WebHeaderCollection ();
-                       input_stream = Stream.Null;
-                       version = HttpVersion.Version10;
-               }
-
-               static char [] separators = new char [] { ' ' };
-
-               internal void SetRequestLine (string req)
-               {
-                       string [] parts = req.Split (separators, 3);
-                       if (parts.Length != 3) {
-                               context.ErrorMessage = "Invalid request line (parts).";
-                               return;
-                       }
-
-                       method = parts [0];
-                       foreach (char c in method){
-                               int ic = (int) c;
-
-                               if ((ic >= 'A' && ic <= 'Z') ||
-                                   (ic > 32 && c < 127 && c != '(' && c != ')' && c != '<' &&
-                                    c != '<' && c != '>' && c != '@' && c != ',' && c != ';' &&
-                                    c != ':' && c != '\\' && c != '"' && c != '/' && c != '[' &&
-                                    c != ']' && c != '?' && c != '=' && c != '{' && c != '}'))
-                                       continue;
-
-                               context.ErrorMessage = "(Invalid verb)";
-                               return;
-                       }
-
-                       raw_url = parts [1];
-                       if (parts [2].Length != 8 || !parts [2].StartsWith ("HTTP/")) {
-                               context.ErrorMessage = "Invalid request line (version).";
-                               return;
-                       }
-
-                       try {
-                               version = new Version (parts [2].Substring (5));
-                               if (version.Major < 1)
-                                       throw new Exception ();
-                       } catch {
-                               context.ErrorMessage = "Invalid request line (version).";
-                               return;
-                       }
-               }
-
-               void CreateQueryString (string query)
-               {
-                       query_string = new NameValueCollection ();
-                       if (query == null || query.Length == 0)
-                               return;
-
-                       if (query [0] == '?')
-                               query = query.Substring (1);
-                       string [] components = query.Split ('&');
-                       foreach (string kv in components) {
-                               int pos = kv.IndexOf ('=');
-                               if (pos == -1) {
-                                       query_string.Add (null, HttpUtility.UrlDecode (kv));
-                               } else {
-                                       string key = HttpUtility.UrlDecode (kv.Substring (0, pos));
-                                       string val = HttpUtility.UrlDecode (kv.Substring (pos + 1));
-                                       
-                                       query_string.Add (key, val);
-                               }
-                       }
-               }
-
-               internal void FinishInitialization ()
-               {
-                       string host = UserHostName;
-                       if (version > HttpVersion.Version10 && (host == null || host.Length == 0)) {
-                               context.ErrorMessage = "Invalid host name";
-                               return;
-                       }
-
-                       string path;
-                       Uri raw_uri;
-                       #if NET_2_0
-if (MonoHttp.Utility.MaybeUri (raw_url) && Uri.TryCreate (raw_url, UriKind.Absolute, out raw_uri))
-#else
-try { raw_uri = new Uri (raw_url); } catch { raw_uri = null; } if (url != raw_uri && (raw_uri.Host == null || raw_uri.Host.Length == 0)) raw_uri = null; if (raw_uri != null)
-#endif
-
-                               path = raw_uri.PathAndQuery;
-                       else
-                               path = raw_url;
-
-                       if ((host == null || host.Length == 0))
-                               host = UserHostAddress;
-
-                       if (raw_uri != null)
-                               host = raw_uri.Host;
-       
-                       int colon = host.IndexOf (':');
-                       if (colon >= 0)
-                               host = host.Substring (0, colon);
-
-                       string base_uri = String.Format ("{0}://{1}:{2}",
-                                                               (IsSecureConnection) ? "https" : "http",
-                                                               host,
-                                                               LocalEndPoint.Port);
-
-                       #if NET_2_0
-if (!Uri.TryCreate (base_uri + path, UriKind.Absolute, out url)){
-#else
-try { url = new Uri (base_uri + path); } catch {}; if (url != null && (url.Host == null || url.Host.Length == 0)) url = null;  if (url == null) {
-#endif
-
-                               context.ErrorMessage = "Invalid url: " + base_uri + path;
-                               return;
-                       }
-
-                       CreateQueryString (url.Query);
-
-                       string t_encoding = null;
-                       if (version >= HttpVersion.Version11) {
-                               t_encoding = Headers ["Transfer-Encoding"];
-                               // 'identity' is not valid!
-                               if (t_encoding != null && t_encoding != "chunked") {
-                                       context.Connection.SendError (null, 501);
-                                       return;
-                               }
-                       }
-
-                       is_chunked = (t_encoding == "chunked");
-
-                       foreach (string m in no_body_methods)
-                               if (string.Compare (method, m, true, System.Globalization.CultureInfo.InvariantCulture) == 0)
-                                       return;
-
-                       if (!is_chunked && !cl_set) {
-                               context.Connection.SendError (null, 411);
-                               return;
-                       }
-
-                       if (is_chunked || content_length > 0) {
-                               input_stream = context.Connection.GetRequestStream (is_chunked, content_length);
-                       }
-
-                       if (Headers ["Expect"] == "100-continue") {
-                               ResponseStream output = context.Connection.GetResponseStream ();
-                               output.InternalWrite (_100continue, 0, _100continue.Length);
-                       }
-               }
-
-               internal static string Unquote (String str) {
-                       int start = str.IndexOf ('\"');
-                       int end = str.LastIndexOf ('\"');
-                       if (start >= 0 && end >=0)
-                               str = str.Substring (start + 1, end - 1);
-                       return str.Trim ();
-               }
-
-               internal void AddHeader (string header)
-               {
-                       int colon = header.IndexOf (':');
-                       if (colon == -1 || colon == 0) {
-                               context.ErrorMessage = "Bad Request";
-                               return;
-                       }
-
-                       string name = header.Substring (0, colon).Trim ();
-                       string val = header.Substring (colon + 1).Trim ();
-                       string lower = name.ToLower (CultureInfo.InvariantCulture);
-                       headers.SetInternal (name, val);
-                       switch (lower) {
-                               case "accept-language":
-                                       user_languages = val.Split (','); // yes, only split with a ','
-                                       break;
-                               case "accept":
-                                       accept_types = val.Split (','); // yes, only split with a ','
-                                       break;
-                               case "content-length":
-                                       try {
-                                               //TODO: max. content_length?
-                                               content_length = Int64.Parse (val.Trim ());
-                                               if (content_length < 0)
-                                                       context.ErrorMessage = "Invalid Content-Length.";
-                                               cl_set = true;
-                                       } catch {
-                                               context.ErrorMessage = "Invalid Content-Length.";
-                                       }
-
-                                       break;
-                               case "referer":
-                                       try {
-                                               referrer = new Uri (val);
-                                       } catch {
-                                               referrer = new Uri ("http://someone.is.screwing.with.the.headers.com/");
-                                       }
-                                       break;
-                               case "cookie":
-                                       if (cookies == null)
-                                               cookies = new CookieCollection();
-
-                                       string[] cookieStrings = val.Split(new char[] {',', ';'});
-                                       Cookie current = null;
-                                       int version = 0;
-                                       foreach (string cookieString in cookieStrings) {
-                                               string str = cookieString.Trim ();
-                                               if (str.Length == 0)
-                                                       continue;
-                                               if (str.StartsWith ("$Version")) {
-                                                       version = Int32.Parse (Unquote (str.Substring (str.IndexOf ("=") + 1)));
-                                               } else if (str.StartsWith ("$Path")) {
-                                                       if (current != null)
-                                                               current.Path = str.Substring (str.IndexOf ("=") + 1).Trim ();
-                                               } else if (str.StartsWith ("$Domain")) {
-                                                       if (current != null)
-                                                               current.Domain = str.Substring (str.IndexOf ("=") + 1).Trim ();
-                                               } else if (str.StartsWith ("$Port")) {
-                                                       if (current != null)
-                                                               current.Port = str.Substring (str.IndexOf ("=") + 1).Trim ();
-                                               } else {
-                                                       if (current != null) {
-                                                               cookies.Add (current);
-                                                       }
-                                                       current = new Cookie ();
-                                                       int idx = str.IndexOf ("=");
-                                                       if (idx > 0) {
-                                                               current.Name = str.Substring (0, idx).Trim ();
-                                                               current.Value =  str.Substring (idx + 1).Trim ();
-                                                       } else {
-                                                               current.Name = str.Trim ();
-                                                               current.Value = String.Empty;
-                                                       }
-                                                       current.Version = version;
-                                               }
-                                       }
-                                       if (current != null) {
-                                               cookies.Add (current);
-                                       }
-                                       break;
-                       }
-               }
-
-               public string [] AcceptTypes {
-                       get { return accept_types; }
-               }
-
-               [MonoTODO ("Always returns 0")]
-               public int ClientCertificateError {
-                       get {
-/*                             
-                               if (no_get_certificate)
-                                       throw new InvalidOperationException (
-                                               "Call GetClientCertificate() before calling this method.");
-                               return client_cert_error;
-*/
-                               return 0;
-                       }
-               }
-
-               public Encoding ContentEncoding {
-                       get {
-                               if (content_encoding == null)
-                                       content_encoding = Encoding.Default;
-                               return content_encoding;
-                       }
-               }
-
-               public long ContentLength64 {
-                       get { return content_length; }
-               }
-
-               public string ContentType {
-                       get { return headers ["content-type"]; }
-               }
-
-               public CookieCollection Cookies {
-                       get {
-                               // TODO: check if the collection is read-only
-                               if (cookies == null)
-                                       cookies = new CookieCollection ();
-                               return cookies;
-                       }
-               }
-
-               public bool HasEntityBody {
-                       get { return (content_length > 0 || is_chunked); }
-               }
-
-               public NameValueCollection Headers {
-                       get { return headers; }
-               }
-
-               public string HttpMethod {
-                       get { return method; }
-               }
-
-               public Stream InputStream {
-                       get { return input_stream; }
-               }
-
-               [MonoTODO ("Always returns false")]
-               public bool IsAuthenticated {
-                       get { return false; }
-               }
-
-               public bool IsLocal {
-                       get { return IPAddress.IsLoopback (RemoteEndPoint.Address); }
-               }
-
-               public bool IsSecureConnection {
-                       get { return context.Connection.IsSecure; } 
-               }
-
-               public bool KeepAlive {
-                       get { return false; }
-               }
-
-               public IPEndPoint LocalEndPoint {
-                       get { return context.Connection.LocalEndPoint; }
-               }
-
-               public Version ProtocolVersion {
-                       get { return version; }
-               }
-
-               public NameValueCollection QueryString {
-                       get { return query_string; }
-               }
-
-               public string RawUrl {
-                       get { return raw_url; }
-               }
-
-               public IPEndPoint RemoteEndPoint {
-                       get { return context.Connection.RemoteEndPoint; }
-               }
-
-               public Guid RequestTraceIdentifier {
-                       get { return identifier; }
-               }
-
-               public Uri Url {
-                       get { return url; }
-               }
-
-               public Uri UrlReferrer {
-                       get { return referrer; }
-               }
-
-               public string UserAgent {
-                       get { return headers ["user-agent"]; }
-               }
-
-               public string UserHostAddress {
-                       get { return LocalEndPoint.ToString (); }
-               }
-
-               public string UserHostName {
-                       get { return headers ["host"]; }
-               }
-
-               public string [] UserLanguages {
-                       get { return user_languages; }
-               }
-
-               public IAsyncResult BeginGetClientCertificate (AsyncCallback requestCallback, Object state)
-               {
-                       return null;
-               }
-#if SECURITY_DEP
-               public X509Certificate2 EndGetClientCertificate (IAsyncResult asyncResult)
-               {
-                       return null;
-                       // set no_client_certificate once done.
-               }
-
-               public X509Certificate2 GetClientCertificate ()
-               {
-                       // set no_client_certificate once done.
-
-                       // InvalidOp if call in progress.
-                       return null;
-               }
-#endif
-       }
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/HttpListenerResponse.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/HttpListenerResponse.cs
deleted file mode 100644 (file)
index a53942a..0000000
+++ /dev/null
@@ -1,511 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.HttpListenerResponse
-//
-// Author:
-//     Gonzalo Paniagua Javier (gonzalo@novell.com)
-//
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-#if EMBEDDED_IN_1_0
-
-using System.Globalization;
-using System.IO;
-using System.Text;
-using System; using System.Net; namespace MonoHttp {
-       internal class HttpListenerResponse : IDisposable
-       {
-               bool disposed;
-               Encoding content_encoding;
-               long content_length;
-               bool cl_set;
-               string content_type;
-               CookieCollection cookies;
-               WebHeaderCollection headers = new WebHeaderCollection ();
-               bool keep_alive = true;
-               ResponseStream output_stream;
-               Version version = HttpVersion.Version11;
-               string location;
-               int status_code = 200;
-               string status_description = "OK";
-               bool chunked;
-               HttpListenerContext context;
-               internal bool HeadersSent;
-               bool force_close_chunked;
-
-               internal HttpListenerResponse (HttpListenerContext context)
-               {
-                       this.context = context;
-               }
-
-               internal bool ForceCloseChunked {
-                       get { return force_close_chunked; }
-               }
-
-               public Encoding ContentEncoding {
-                       get {
-                               if (content_encoding == null)
-                                       content_encoding = Encoding.Default;
-                               return content_encoding;
-                       }
-                       set {
-                               if (disposed)
-                                       throw new ObjectDisposedException (GetType ().ToString ());
-
-                               //TODO: is null ok?
-                               if (HeadersSent)
-                                       throw new InvalidOperationException ("Cannot be changed after headers are sent.");
-                                       
-                               content_encoding = value;
-                       }
-               }
-
-               public long ContentLength64 {
-                       get { return content_length; }
-                       set {
-                               if (disposed)
-                                       throw new ObjectDisposedException (GetType ().ToString ());
-
-                               if (HeadersSent)
-                                       throw new InvalidOperationException ("Cannot be changed after headers are sent.");
-
-                               if (value < 0)
-                                       throw new ArgumentOutOfRangeException ("Must be >= 0", "value");
-
-                               cl_set = true;
-                               content_length = value;
-                       }
-               }
-               
-               public string ContentType {
-                       get { return content_type; }
-                       set {
-                               // TODO: is null ok?
-                               if (disposed)
-                                       throw new ObjectDisposedException (GetType ().ToString ());
-
-                               if (HeadersSent)
-                                       throw new InvalidOperationException ("Cannot be changed after headers are sent.");
-
-                               content_type = value;
-                       }
-               }
-
-               // RFC 2109, 2965 + the netscape specification at http://wp.netscape.com/newsref/std/cookie_spec.html
-               public CookieCollection Cookies {
-                       get {
-                               if (cookies == null)
-                                       cookies = new CookieCollection ();
-                               return cookies;
-                       }
-                       set { cookies = value; } // null allowed?
-               }
-
-               public WebHeaderCollection Headers {
-                       get { return headers; }
-                       set {
-               /**
-                *      "If you attempt to set a Content-Length, Keep-Alive, Transfer-Encoding, or
-                *      WWW-Authenticate header using the Headers property, an exception will be
-                *      thrown. Use the KeepAlive or ContentLength64 properties to set these headers.
-                *      You cannot set the Transfer-Encoding or WWW-Authenticate headers manually."
-               */
-               // TODO: check if this is marked readonly after headers are sent.
-                               headers = value;
-                       }
-               }
-
-               public bool KeepAlive {
-                       get { return keep_alive; }
-                       set {
-                               if (disposed)
-                                       throw new ObjectDisposedException (GetType ().ToString ());
-
-                               if (HeadersSent)
-                                       throw new InvalidOperationException ("Cannot be changed after headers are sent.");
-                                       
-                               keep_alive = value;
-                       }
-               }
-
-               public Stream OutputStream {
-                       get {
-                               if (output_stream == null)
-                                       output_stream = context.Connection.GetResponseStream ();
-                               return output_stream;
-                       }
-               }
-               
-               public Version ProtocolVersion {
-                       get { return version; }
-                       set {
-                               if (disposed)
-                                       throw new ObjectDisposedException (GetType ().ToString ());
-
-                               if (HeadersSent)
-                                       throw new InvalidOperationException ("Cannot be changed after headers are sent.");
-                                       
-                               if (value == null)
-                                       throw new ArgumentNullException ("value");
-
-                               if (value.Major != 1 || (value.Minor != 0 && value.Minor != 1))
-                                       throw new ArgumentException ("Must be 1.0 or 1.1", "value");
-
-                               if (disposed)
-                                       throw new ObjectDisposedException (GetType ().ToString ());
-
-                               version = value;
-                       }
-               }
-
-               public string RedirectLocation {
-                       get { return location; }
-                       set {
-                               if (disposed)
-                                       throw new ObjectDisposedException (GetType ().ToString ());
-
-                               if (HeadersSent)
-                                       throw new InvalidOperationException ("Cannot be changed after headers are sent.");
-                                       
-                               location = value;
-                       }
-               }
-
-               public bool SendChunked {
-                       get { return chunked; }
-                       set {
-                               if (disposed)
-                                       throw new ObjectDisposedException (GetType ().ToString ());
-
-                               if (HeadersSent)
-                                       throw new InvalidOperationException ("Cannot be changed after headers are sent.");
-                                       
-                               chunked = value;
-                       }
-               }
-
-               public int StatusCode {
-                       get { return status_code; }
-                       set {
-                               if (disposed)
-                                       throw new ObjectDisposedException (GetType ().ToString ());
-
-                               if (HeadersSent)
-                                       throw new InvalidOperationException ("Cannot be changed after headers are sent.");
-                                       
-                               if (value < 100 || value > 999)
-                                       throw new ProtocolViolationException ("StatusCode must be between 100 and 999.");
-                               status_code = value;
-                               status_description = GetStatusDescription (value);
-                       }
-               }
-
-               internal static string GetStatusDescription (int code)
-               {
-                       switch (code){
-                       case 100: return "Continue";
-                       case 101: return "Switching Protocols";
-                       case 102: return "Processing";
-                       case 200: return "OK";
-                       case 201: return "Created";
-                       case 202: return "Accepted";
-                       case 203: return "Non-Authoritative Information";
-                       case 204: return "No Content";
-                       case 205: return "Reset Content";
-                       case 206: return "Partial Content";
-                       case 207: return "Multi-Status";
-                       case 300: return "Multiple Choices";
-                       case 301: return "Moved Permanently";
-                       case 302: return "Found";
-                       case 303: return "See Other";
-                       case 304: return "Not Modified";
-                       case 305: return "Use Proxy";
-                       case 307: return "Temporary Redirect";
-                       case 400: return "Bad Request";
-                       case 401: return "Unauthorized";
-                       case 402: return "Payment Required";
-                       case 403: return "Forbidden";
-                       case 404: return "Not Found";
-                       case 405: return "Method Not Allowed";
-                       case 406: return "Not Acceptable";
-                       case 407: return "Proxy Authentication Required";
-                       case 408: return "Request Timeout";
-                       case 409: return "Conflict";
-                       case 410: return "Gone";
-                       case 411: return "Length Required";
-                       case 412: return "Precondition Failed";
-                       case 413: return "Request Entity Too Large";
-                       case 414: return "Request-Uri Too Long";
-                       case 415: return "Unsupported Media Type";
-                       case 416: return "Requested Range Not Satisfiable";
-                       case 417: return "Expectation Failed";
-                       case 422: return "Unprocessable Entity";
-                       case 423: return "Locked";
-                       case 424: return "Failed Dependency";
-                       case 500: return "Internal Server Error";
-                       case 501: return "Not Implemented";
-                       case 502: return "Bad Gateway";
-                       case 503: return "Service Unavailable";
-                       case 504: return "Gateway Timeout";
-                       case 505: return "Http Version Not Supported";
-                       case 507: return "Insufficient Storage";
-                       }
-                       return "";
-               }
-
-               public string StatusDescription {
-                       get { return status_description; }
-                       set {
-                               status_description = value;
-                       }
-               }
-
-               void IDisposable.Dispose ()
-               {
-                       Close (true); //TODO: Abort or Close?
-               }
-
-               public void Abort ()
-               {
-                       if (disposed)
-                               return;
-
-                       Close (true);
-               }
-
-               public void AddHeader (string name, string value)
-               {
-                       if (name == null)
-                               throw new ArgumentNullException ("name");
-
-                       if (name == "")
-                               throw new ArgumentException ("'name' cannot be empty", "name");
-                       
-                       //TODO: check for forbidden headers and invalid characters
-                       if (value.Length > 65535)
-                               throw new ArgumentOutOfRangeException ("value");
-
-                       headers.Set (name, value);
-               }
-
-               public void AppendCookie (Cookie cookie)
-               {
-                       if (cookie == null)
-                               throw new ArgumentNullException ("cookie");
-                       
-                       Cookies.Add (cookie);
-               }
-
-               public void AppendHeader (string name, string value)
-               {
-                       if (name == null)
-                               throw new ArgumentNullException ("name");
-
-                       if (name == "")
-                               throw new ArgumentException ("'name' cannot be empty", "name");
-                       
-                       if (value.Length > 65535)
-                               throw new ArgumentOutOfRangeException ("value");
-
-                       headers.Add (name, value);
-               }
-
-               void Close (bool force)
-               {
-                       context.Connection.Close (force);
-                       disposed = true;
-               }
-
-               public void Close ()
-               {
-                       if (disposed)
-                               return;
-
-                       Close (false);
-               }
-
-               public void Close (byte [] responseEntity, bool willBlock)
-               {
-                       if (disposed)
-                               return;
-
-                       if (responseEntity == null)
-                               throw new ArgumentNullException ("responseEntity");
-
-                       //TODO: if willBlock -> BeginWrite + Close ?
-                       ContentLength64 = responseEntity.Length;
-                       OutputStream.Write (responseEntity, 0, (int) content_length);
-                       Close (false);
-               }
-
-               public void CopyFrom (HttpListenerResponse templateResponse)
-               {
-                       headers.Clear ();
-                       headers.Add (templateResponse.headers);
-                       content_length = templateResponse.content_length;
-                       status_code = templateResponse.status_code;
-                       status_description = templateResponse.status_description;
-                       keep_alive = templateResponse.keep_alive;
-                       version = templateResponse.version;
-               }
-
-               public void Redirect (string url)
-               {
-                       StatusCode = 302; // Found
-                       location = url;
-               }
-
-               bool FindCookie (Cookie cookie)
-               {
-                       string name = cookie.Name;
-                       string domain = cookie.Domain;
-                       string path = cookie.Path;
-                       foreach (Cookie c in cookies) {
-                               if (name != c.Name)
-                                       continue;
-                               if (domain != c.Domain)
-                                       continue;
-                               if (path == c.Path)
-                                       return true;
-                       }
-
-                       return false;
-               }
-
-               internal void SendHeaders (bool closing, MemoryStream ms)
-               {
-                       //TODO: When do we send KeepAlive?
-                       Encoding encoding = content_encoding;
-                       if (encoding == null)
-                               encoding = Encoding.Default;
-
-                       if (content_type != null) {
-                               if (content_encoding != null && content_type.IndexOf ("charset=") == -1) {
-                                       string enc_name = content_encoding.WebName;
-                                       headers.SetInternal ("Content-Type", content_type + "; charset=" + enc_name);
-                               } else {
-                                       headers.SetInternal ("Content-Type", content_type);
-                               }
-                       }
-
-                       if (headers ["Server"] == null)
-                               headers.SetInternal ("Server", "Mono-HTTPAPI/1.0");
-
-                       CultureInfo inv = CultureInfo.InvariantCulture;
-                       if (headers ["Date"] == null)
-                               headers.SetInternal ("Date", DateTime.UtcNow.ToString ("r", inv));
-
-                       if (!chunked) {
-                               if (!cl_set && closing) {
-                                       cl_set = true;
-                                       content_length = 0;
-                               }
-
-                               if (cl_set)
-                                       headers.SetInternal ("Content-Length", content_length.ToString (inv));
-                       }
-
-                       Version v = context.Request.ProtocolVersion;
-                       if (!cl_set && !chunked && v >= HttpVersion.Version11)
-                               chunked = true;
-                               
-                       /* Apache forces closing the connection for these status codes:
-                        *      HttpStatusCode.BadRequest               400
-                        *      HttpStatusCode.RequestTimeout           408
-                        *      HttpStatusCode.LengthRequired           411
-                        *      HttpStatusCode.RequestEntityTooLarge    413
-                        *      HttpStatusCode.RequestUriTooLong        414
-                        *      HttpStatusCode.InternalServerError      500
-                        *      HttpStatusCode.ServiceUnavailable       503
-                        */
-                       bool conn_close = (status_code == 400 || status_code == 408 || status_code == 411 ||
-                                       status_code == 413 || status_code == 414 || status_code == 500 ||
-                                       status_code == 503);
-
-                       if (conn_close == false) {
-                               conn_close = (context.Request.Headers ["connection"] == "close");
-                               conn_close |= (v <= HttpVersion.Version10);
-                       }
-
-                       // They sent both KeepAlive: true and Connection: close!?
-                       if (!keep_alive || conn_close)
-                               headers.SetInternal ("Connection", "close");
-
-                       if (chunked)
-                               headers.SetInternal ("Transfer-Encoding", "chunked");
-
-                       int chunked_uses = context.Connection.ChunkedUses;
-                       if (chunked_uses >= 100) {
-                               force_close_chunked = true;
-                               if (!conn_close)
-                                       headers.SetInternal ("Connection", "close");
-                       }
-
-                       if (location != null)
-                               headers.SetInternal ("Location", location);
-
-                       if (cookies != null) {
-                               bool firstDone = false;
-                               StringBuilder cookieSB = new StringBuilder ();
-                               foreach (Cookie cookie in cookies) {
-                                       if (firstDone)
-                                               cookieSB.Append (",");
-                                       firstDone = true;
-                                       cookieSB.Append (MonoHttp.Utility.ToClientString (cookie));
-                               }
-                               headers.SetInternal("Set-Cookie2", cookieSB.ToString ());
-                       }
-
-                       StreamWriter writer = new StreamWriter (ms, encoding);
-                       writer.Write ("HTTP/{0} {1} {2}\r\n", version, status_code, status_description);
-                       string headers_str = headers.ToString ();
-                       writer.Write (headers_str);
-                       writer.Flush ();
-                       int preamble = encoding.GetPreamble ().Length;
-                       if (output_stream == null)
-                               output_stream = context.Connection.GetResponseStream ();
-
-                       /* Assumes that the ms was at position 0 */
-                       ms.Position = preamble;
-                       HeadersSent = true;
-               }
-
-               public void SetCookie (Cookie cookie)
-               {
-                       if (cookie == null)
-                               throw new ArgumentNullException ("cookie");
-
-                       if (cookies != null) {
-                               if (FindCookie (cookie))
-                                       throw new ArgumentException ("The cookie already exists.");
-                       } else {
-                               cookies = new CookieCollection ();
-                       }
-
-                       cookies.Add (cookie);
-               }
-       }
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/HttpRequestHeader.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/HttpRequestHeader.cs
deleted file mode 100644 (file)
index 66783bf..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.HttpRequestHeader
-//
-// Author:
-//     Gonzalo Paniagua Javier (gonzalo@novell.com)
-//
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-#if !NET_2_0
-using System; using System.Net; namespace MonoHttp {
-       internal enum HttpRequestHeader {
-               CacheControl,
-               Connection,
-               Date,
-               KeepAlive,
-               Pragma,
-               Trailer,
-               TransferEncoding,
-               Upgrade,
-               Via,
-               Warning,
-               Allow,
-               ContentLength,
-               ContentType,
-               ContentEncoding,
-               ContentLanguage,
-               ContentLocation,
-               ContentMd5,
-               ContentRange,
-               Expires,
-               LastModified,
-               Accept,
-               AcceptCharset,
-               AcceptEncoding,
-               AcceptLanguage,
-               Authorization,
-               Cookie,
-               Expect,
-               From,
-               Host,
-               IfMatch,
-               IfModifiedSince,
-               IfNoneMatch,
-               IfRange,
-               IfUnmodifiedSince,
-               MaxForwards,
-               ProxyAuthorization,
-               Referer,
-               Range,
-               Te,
-               Translate,
-               UserAgent
-       }
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/HttpResponseHeader.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/HttpResponseHeader.cs
deleted file mode 100644 (file)
index 6493ecc..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.HttpResponseHeader
-//
-// Author:
-//     Gonzalo Paniagua Javier (gonzalo@novell.com)
-//
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-#if !NET_2_0
-using System; using System.Net; namespace MonoHttp {
-       internal enum HttpResponseHeader {
-               CacheControl,
-               Connection,
-               Date,
-               KeepAlive,
-               Pragma,
-               Trailer,
-               TransferEncoding,
-               Upgrade,
-               Via,
-               Warning,
-               Allow,
-               ContentLength,
-               ContentType,
-               ContentEncoding,
-               ContentLanguage,
-               ContentLocation,
-               ContentMd5,
-               ContentRange,
-               Expires,
-               LastModified,
-               AcceptRanges,
-               Age,
-               ETag,
-               Location,
-               ProxyAuthenticate,
-               RetryAfter,
-               Server,
-               SetCookie,
-               Vary,
-               WwwAuthenticate
-       }
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/HttpStreamAsyncResult.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/HttpStreamAsyncResult.cs
deleted file mode 100644 (file)
index 41aa236..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.HttpStreamAsyncResult
-//
-// Authors:
-//     Gonzalo Paniagua Javier (gonzalo@novell.com)
-//
-// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-#if EMBEDDED_IN_1_0
-using System.Threading;
-
-using System; using System.Net; namespace MonoHttp {
-       class HttpStreamAsyncResult : IAsyncResult {
-               object locker = new object ();
-               ManualResetEvent handle;
-               bool completed;
-
-               internal byte [] Buffer;
-               internal int Offset;
-               internal int Count;
-               internal AsyncCallback Callback;
-               internal object State;
-               internal int SynchRead;
-               internal Exception Error;
-
-               public void Complete (Exception e)
-               {
-                       Error = e;
-                       Complete ();
-               }
-
-               public void Complete ()
-               {
-                       lock (locker) {
-                               if (completed)
-                                       return;
-
-                               completed = true;
-                               if (handle != null)
-                                       handle.Set ();
-
-                               if (Callback != null)
-                                       Callback.BeginInvoke (this, null, null);
-                       }
-               }
-               
-               public object AsyncState {
-                       get { return State; }
-               }
-
-               public WaitHandle AsyncWaitHandle {
-                       get {
-                               lock (locker) {
-                                       if (handle == null)
-                                               handle = new ManualResetEvent (completed);
-                               }
-                               
-                               return handle;
-                       }
-               }
-
-               public bool CompletedSynchronously {
-                       get { return (SynchRead == Count); }
-               }
-
-               public bool IsCompleted {
-                       get {
-                               lock (locker) {
-                                       return completed;
-                               }
-                       }
-               }
-       }
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/HttpUtility.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/HttpUtility.cs
deleted file mode 100644 (file)
index 3ee4747..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.HttpUtility
-//
-// Author:
-//     Gonzalo Paniagua Javier (gonzalo@novell.com)
-//
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-#if EMBEDDED_IN_1_0
-using System.Globalization;
-using System.IO;
-using System.Text;
-using System; using System.Net; namespace MonoHttp {
-       sealed class HttpUtility
-       {
-               private HttpUtility ()
-               {
-               }
-
-               public static string UrlDecode (string s)
-               {
-                       return UrlDecode (s, null);
-               }
-
-               static char [] GetChars (MemoryStream b, Encoding e)
-               {
-                       return e.GetChars (b.GetBuffer (), 0, (int) b.Length);
-               }
-
-               public static string UrlDecode (string s, Encoding e)
-               {
-                       if (null == s) 
-                               return null;
-
-                       if (s.IndexOf ('%') == -1 && s.IndexOf ('+') == -1)
-                               return s;
-
-                       if (e == null)
-                               e = Encoding.GetEncoding (28591);
-       
-                       StringBuilder output = new StringBuilder ();
-                       long len = s.Length;
-                       NumberStyles hexa = NumberStyles.HexNumber;
-                       MemoryStream bytes = new MemoryStream ();
-       
-                       for (int i = 0; i < len; i++) {
-                               if (s [i] == '%' && i + 2 < len) {
-                                       if (s [i + 1] == 'u' && i + 5 < len) {
-                                               if (bytes.Length > 0) {
-                                                       output.Append (GetChars (bytes, e));
-                                                       bytes.SetLength (0);
-                                               }
-                                               output.Append ((char) Int32.Parse (s.Substring (i + 2, 4), hexa));
-                                               i += 5;
-                                       } else {
-                                               bytes.WriteByte ((byte) Int32.Parse (s.Substring (i + 1, 2), hexa));
-                                               i += 2;
-                                       }
-                                       continue;
-                               }
-
-                               if (bytes.Length > 0) {
-                                       output.Append (GetChars (bytes, e));
-                                       bytes.SetLength (0);
-                               }
-
-                               if (s [i] == '+') {
-                                       output.Append (' ');
-                               } else {
-                                       output.Append (s [i]);
-                               }
-                       }
-       
-                       if (bytes.Length > 0) {
-                               output.Append (GetChars (bytes, e));
-                       }
-
-                       bytes = null;
-                       return output.ToString ();
-               }
-       }
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/ListenerAsyncResult.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/ListenerAsyncResult.cs
deleted file mode 100644 (file)
index f4348d9..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.ListenerAsyncResult
-//
-// Authors:
-//     Gonzalo Paniagua Javier (gonzalo@ximian.com)
-//
-// Copyright (c) 2005 Ximian, Inc (http://www.ximian.com)
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-#if EMBEDDED_IN_1_0
-
-using System.Threading;
-using System; using System.Net; namespace MonoHttp {
-       class ListenerAsyncResult : IAsyncResult {
-               ManualResetEvent handle;
-               bool synch;
-               bool completed;
-               AsyncCallback cb;
-               object state;
-               Exception exception;
-               HttpListenerContext context;
-               object locker = new object ();
-
-               public ListenerAsyncResult (AsyncCallback cb, object state)
-               {
-                       this.cb = cb;
-                       this.state = state;
-               }
-
-               internal void Complete (string error)
-               {
-                       //FIXME: error_code?
-                       exception = new HttpListenerException (0, error);
-                       lock (locker) {
-                               completed = true;
-                               if (handle != null)
-                                       handle.Set ();
-
-                               if (cb != null)
-                                       ThreadPool.QueueUserWorkItem (InvokeCallback, this);
-                       }
-               }
-
-               static void InvokeCallback (object o)
-               {
-                       ListenerAsyncResult ares = (ListenerAsyncResult) o;
-                       ares.cb (ares);
-               }
-
-               internal void Complete (HttpListenerContext context)
-               {
-                       Complete (context, false);
-               }
-
-               internal void Complete (HttpListenerContext context, bool synch)
-               {
-                       this.synch = synch;
-                       this.context = context;
-                       lock (locker) {
-                               completed = true;
-                               if (handle != null)
-                                       handle.Set ();
-
-                               if ((context.Listener.AuthenticationSchemes == AuthenticationSchemes.Basic || context.Listener.AuthenticationSchemes == AuthenticationSchemes.Negotiate) && context.Request.Headers ["Authorization"] == null) {
-                                       context.Listener.EndGetContext (this);
-                                       context.Response.StatusCode = 401;
-                                       context.Response.Headers ["WWW-Authenticate"] = AuthenticationSchemes.Basic + " realm=\"\"";
-                                       context.Response.OutputStream.Close ();
-                                       context.Listener.BeginGetContext (cb, state);
-                               } else if (cb != null)
-                                       ThreadPool.QueueUserWorkItem (InvokeCallback, this);
-                       }
-               }
-
-               internal HttpListenerContext GetContext ()
-               {
-                       if (exception != null)
-                               throw exception;
-
-                       return context;
-               }
-               
-               public object AsyncState {
-                       get { return state; }
-               }
-
-               public WaitHandle AsyncWaitHandle {
-                       get {
-                               lock (locker) {
-                                       if (handle == null)
-                                               handle = new ManualResetEvent (completed);
-                               }
-                               
-                               return handle;
-                       }
-               }
-
-               public bool CompletedSynchronously {
-                       get { return synch; }
-               }
-
-               public bool IsCompleted {
-                       get {
-                               lock (locker) {
-                                       return completed;
-                               }
-                       }
-               }
-       }
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/ListenerPrefix.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/ListenerPrefix.cs
deleted file mode 100644 (file)
index f857bab..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.ListenerPrefix
-//
-// Author:
-//     Gonzalo Paniagua Javier (gonzalo@novell.com)
-//     Oleg Mihailik (mihailik gmail co_m)
-//
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-#if EMBEDDED_IN_1_0
-
-using System; using System.Net; namespace MonoHttp {
-       sealed class ListenerPrefix
-       {
-               string original;
-               string host;
-               ushort port;
-               string path;
-               bool secure;
-               IPAddress [] addresses;
-               public HttpListener Listener;
-
-               public ListenerPrefix (string prefix)
-               {
-                       this.original = prefix;
-                       Parse (prefix);
-               }
-
-               public override string ToString ()
-               {
-                       return original;
-               }
-
-               public IPAddress [] Addresses {
-                       get { return addresses; }
-                       set { addresses = value; }
-               }
-               public bool Secure {
-                       get { return secure; }
-               }
-
-               public string Host {
-                       get { return host; }
-               }
-
-               public int Port {
-                       get { return (int) port; }
-               }
-
-               public string Path {
-                       get { return path; }
-               }
-
-               // Equals and GetHashCode are required to detect duplicates in HttpListenerPrefixCollection.
-               public override bool Equals (object o)
-               {
-                       ListenerPrefix other = o as ListenerPrefix;
-                       if (other == null)
-                               return false;
-
-                       return (original == other.original);
-               }
-
-               public override int GetHashCode ()
-               {
-                       return original.GetHashCode ();
-               }
-
-               void Parse (string uri)
-               {
-                       int default_port = (uri.StartsWith ("http://")) ? 80 : -1;
-                       if (default_port == -1) {
-                               default_port = (uri.StartsWith ("https://")) ? 443 : -1;
-                               secure = true;
-                       }
-
-                       int length = uri.Length;
-                       int start_host = uri.IndexOf (':') + 3;
-                       if (start_host >= length)
-                               throw new ArgumentException ("No host specified.");
-
-                       int colon = uri.IndexOf (':', start_host, length - start_host);
-                       int root;
-                       if (colon > 0) {
-                               host = uri.Substring (start_host, colon - start_host);
-                               root = uri.IndexOf ('/', colon, length - colon);
-                               port = (ushort) Int32.Parse (uri.Substring (colon + 1, root - colon - 1));
-                               path = uri.Substring (root);
-                       } else {
-                               root = uri.IndexOf ('/', start_host, length - start_host);
-                               host = uri.Substring (start_host, root - start_host);
-                               path = uri.Substring (root);
-                       }
-               }
-
-               public static void CheckUri (string uri)
-               {
-                       if (uri == null)
-                               throw new ArgumentNullException ("uriPrefix");
-
-                       int default_port = (uri.StartsWith ("http://")) ? 80 : -1;
-                       if (default_port == -1)
-                               default_port = (uri.StartsWith ("https://")) ? 443 : -1;
-                       if (default_port == -1)
-                               throw new ArgumentException ("Only 'http' and 'https' schemes are supported.");
-
-                       int length = uri.Length;
-                       int start_host = uri.IndexOf (':') + 3;
-                       if (start_host >= length)
-                               throw new ArgumentException ("No host specified.");
-
-                       int colon = uri.IndexOf (':', start_host, length - start_host);
-                       if (start_host == colon)
-                               throw new ArgumentException ("No host specified.");
-
-                       int root;
-                       if (colon > 0) {
-                               root = uri.IndexOf ('/', colon, length - colon);
-                               if (root == -1)
-                                       throw new ArgumentException ("No path specified.");
-
-                               try {
-                                       int p = Int32.Parse (uri.Substring (colon + 1, root - colon - 1));
-                                       if (p <= 0 || p >= 65536)
-                                               throw new Exception ();
-                               } catch {
-                                       throw new ArgumentException ("Invalid port.");
-                               }
-                       } else {
-                               root = uri.IndexOf ('/', start_host, length - start_host);
-                               if (root == -1)
-                                       throw new ArgumentException ("No path specified.");
-                       }
-
-                       if (uri [uri.Length - 1] != '/')
-                               throw new ArgumentException ("The prefix must end with '/'");
-               }
-       }
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/RequestStream.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/RequestStream.cs
deleted file mode 100644 (file)
index 42212e1..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.RequestStream
-//
-// Author:
-//     Gonzalo Paniagua Javier (gonzalo@novell.com)
-//
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-#if EMBEDDED_IN_1_0
-using System.IO;
-using System.Net.Sockets;
-using System.Runtime.InteropServices;
-using System; using System.Net; namespace MonoHttp {
-       class RequestStream : Stream
-       {
-               byte [] buffer;
-               int offset;
-               int length;
-               long remaining_body;
-               bool disposed;
-               Stream stream;
-
-               internal RequestStream (Stream stream, byte [] buffer, int offset, int length)
-                       : this (stream, buffer, offset, length, -1)
-               {
-               }
-
-               internal RequestStream (Stream stream, byte [] buffer, int offset, int length, long contentlength)
-               {
-                       this.stream = stream;
-                       this.buffer = buffer;
-                       this.offset = offset;
-                       this.length = length;
-                       this.remaining_body = contentlength;
-               }
-
-               public override bool CanRead {
-                       get { return true; }
-               }
-
-               public override bool CanSeek {
-                       get { return false; }
-               }
-
-               public override bool CanWrite {
-                       get { return false; }
-               }
-
-               public override long Length {
-                       get { throw new NotSupportedException (); }
-               }
-
-               public override long Position {
-                       get { throw new NotSupportedException (); }
-                       set { throw new NotSupportedException (); }
-               }
-
-
-               public override void Close ()
-               {
-                       disposed = true;
-               }
-
-               public override void Flush ()
-               {
-               }
-
-               
-               // Returns 0 if we can keep reading from the base stream,
-               // > 0 if we read something from the buffer.
-               // -1 if we had a content length set and we finished reading that many bytes.
-               int FillFromBuffer (byte [] buffer, int off, int count)
-               {
-                       if (buffer == null)
-                               throw new ArgumentNullException ("buffer");
-                       if (off < 0)
-                               throw new ArgumentOutOfRangeException ("offset", "< 0");
-                       if (count < 0)
-                               throw new ArgumentOutOfRangeException ("count", "< 0");
-                       int len = buffer.Length;
-                       if (off > len)
-                               throw new ArgumentException ("destination offset is beyond array size");
-                       if (off > len - count)
-                               throw new ArgumentException ("Reading would overrun buffer");
-
-                       if (this.remaining_body == 0)
-                               return -1;
-
-                       if (this.length == 0)
-                               return 0;
-
-                       int size = Math.Min (this.length, count);
-                       if (this.remaining_body > 0)
-                               size = (int) Math.Min (size, this.remaining_body);
-
-                       if (this.offset > this.buffer.Length - size) {
-                               size = Math.Min (size, this.buffer.Length - this.offset);
-                       }
-                       if (size == 0)
-                               return 0;
-
-                       Buffer.BlockCopy (this.buffer, this.offset, buffer, off, size);
-                       this.offset += size;
-                       this.length -= size;
-                       if (this.remaining_body > 0)
-                               remaining_body -= size;
-                       return size;
-               }
-
-               public override int Read ([In,Out] byte[] buffer, int offset, int count)
-               {
-                       if (disposed)
-                               throw new ObjectDisposedException (typeof (RequestStream).ToString ());
-
-                       // Call FillFromBuffer to check for buffer boundaries even when remaining_body is 0
-                       int nread = FillFromBuffer (buffer, offset, count);
-                       if (nread == -1) { // No more bytes available (Content-Length)
-                               return 0;
-                       } else if (nread > 0) {
-                               return nread;
-                       }
-
-                       nread = stream.Read (buffer, offset, count);
-                       if (nread > 0 && remaining_body > 0)
-                               remaining_body -= nread;
-                       return nread;
-               }
-
-               public override IAsyncResult BeginRead (byte [] buffer, int offset, int count,
-                                                       AsyncCallback cback, object state)
-               {
-                       if (disposed)
-                               throw new ObjectDisposedException (typeof (RequestStream).ToString ());
-
-                       int nread = FillFromBuffer (buffer, offset, count);
-                       if (nread > 0 || nread == -1) {
-                               HttpStreamAsyncResult ares = new HttpStreamAsyncResult ();
-                               ares.Buffer = buffer;
-                               ares.Offset = offset;
-                               ares.Count = count;
-                               ares.Callback = cback;
-                               ares.State = state;
-                               ares.SynchRead = nread;
-                               ares.Complete ();
-                               return ares;
-                       }
-
-                       // Avoid reading past the end of the request to allow
-                       // for HTTP pipelining
-                       if (remaining_body >= 0 && count > remaining_body)
-                               count = (int) Math.Min (Int32.MaxValue, remaining_body);
-                       return stream.BeginRead (buffer, offset, count, cback, state);
-               }
-
-               public override int EndRead (IAsyncResult ares)
-               {
-                       if (disposed)
-                               throw new ObjectDisposedException (typeof (RequestStream).ToString ());
-
-                       if (ares == null)
-                               throw new ArgumentNullException ("async_result");
-
-                       if (ares is HttpStreamAsyncResult) {
-                               HttpStreamAsyncResult r = (HttpStreamAsyncResult) ares;
-                               if (!ares.IsCompleted)
-                                       ares.AsyncWaitHandle.WaitOne ();
-                               return r.SynchRead;
-                       }
-
-                       // Close on exception?
-                       int nread = stream.EndRead (ares);
-                       if (remaining_body > 0 && nread > 0)
-                               remaining_body -= nread;
-                       return nread;
-               }
-
-               public override long Seek (long offset, SeekOrigin origin)
-               {
-                       throw new NotSupportedException ();
-               }
-
-               public override void SetLength (long value)
-               {
-                       throw new NotSupportedException ();
-               }
-
-               public override void Write (byte[] buffer, int offset, int count)
-               {
-                       throw new NotSupportedException ();
-               }
-
-               public override IAsyncResult BeginWrite (byte [] buffer, int offset, int count,
-                                                       AsyncCallback cback, object state)
-               {
-                       throw new NotSupportedException ();
-               }
-
-               public override void EndWrite (IAsyncResult async_result)
-               {
-                       throw new NotSupportedException ();
-               }
-       }
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/ResponseStream.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/ResponseStream.cs
deleted file mode 100644 (file)
index ae386bc..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.ResponseStream
-//
-// Author:
-//     Gonzalo Paniagua Javier (gonzalo@novell.com)
-//
-// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-#if EMBEDDED_IN_1_0
-
-using System.IO;
-using System.Net.Sockets;
-using System.Text;
-using System.Runtime.InteropServices;
-using System; using System.Net; namespace MonoHttp {
-       // FIXME: Does this buffer the response until Close?
-       // Update: we send a single packet for the first non-chunked Write
-       // What happens when we set content-length to X and write X-1 bytes then close?
-       // what if we don't set content-length at all?
-       class ResponseStream : Stream
-       {
-               HttpListenerResponse response;
-               bool ignore_errors;
-               bool disposed;
-               bool trailer_sent;
-               Stream stream;
-
-               internal ResponseStream (Stream stream, HttpListenerResponse response, bool ignore_errors)
-               {
-                       this.response = response;
-                       this.ignore_errors = ignore_errors;
-                       this.stream = stream;
-               }
-
-               public override bool CanRead {
-                       get { return false; }
-               }
-
-               public override bool CanSeek {
-                       get { return false; }
-               }
-
-               public override bool CanWrite {
-                       get { return true; }
-               }
-
-               public override long Length {
-                       get { throw new NotSupportedException (); }
-               }
-
-               public override long Position {
-                       get { throw new NotSupportedException (); }
-                       set { throw new NotSupportedException (); }
-               }
-
-
-               public override void Close ()
-               {
-                       if (disposed == false) {
-                               disposed = true;
-                               byte [] bytes = null;
-                               MemoryStream ms = GetHeaders (true);
-                               bool chunked = response.SendChunked;
-                               if (ms != null) {
-                                       long start = ms.Position;
-                                       if (chunked && !trailer_sent) {
-                                               bytes = GetChunkSizeBytes (0, true);
-                                               ms.Position = ms.Length;
-                                               ms.Write (bytes, 0, bytes.Length);
-                                       }
-                                       InternalWrite (ms.GetBuffer (), (int) start, (int) (ms.Length - start));
-                                       trailer_sent = true;
-                               } else if (chunked && !trailer_sent) {
-                                       bytes = GetChunkSizeBytes (0, true);
-                                       InternalWrite (bytes, 0, bytes.Length);
-                                       trailer_sent = true;
-                               }
-                               response.Close ();
-                       }
-               }
-
-               MemoryStream GetHeaders (bool closing)
-               {
-                       if (response.HeadersSent)
-                               return null;
-                       MemoryStream ms = new MemoryStream ();
-                       response.SendHeaders (closing, ms);
-                       return ms;
-               }
-
-               public override void Flush ()
-               {
-               }
-
-               static byte [] crlf = new byte [] { 13, 10 };
-               static byte [] GetChunkSizeBytes (int size, bool final)
-               {
-                       string str = String.Format ("{0:x}\r\n{1}", size, final ? "\r\n" : "");
-                       return Encoding.ASCII.GetBytes (str);
-               }
-
-               internal void InternalWrite (byte [] buffer, int offset, int count)
-               {
-                       if (ignore_errors) {
-                               try {
-                                       stream.Write (buffer, offset, count);
-                               } catch { }
-                       } else {
-                               stream.Write (buffer, offset, count);
-                       }
-               }
-
-               public override void Write (byte [] buffer, int offset, int count)
-               {
-                       if (disposed)
-                               throw new ObjectDisposedException (GetType ().ToString ());
-
-                       byte [] bytes = null;
-                       MemoryStream ms = GetHeaders (false);
-                       bool chunked = response.SendChunked;
-                       if (ms != null) {
-                               long start = ms.Position; // After the possible preamble for the encoding
-                               ms.Position = ms.Length;
-                               if (chunked) {
-                                       bytes = GetChunkSizeBytes (count, false);
-                                       ms.Write (bytes, 0, bytes.Length);
-                               }
-
-                               int new_count = Math.Min (count, 16384 - (int) ms.Position + (int) start);
-                               ms.Write (buffer, offset, new_count);
-                               count -= new_count;
-                               offset += new_count;
-                               InternalWrite (ms.GetBuffer (), (int) start, (int) (ms.Length - start));
-                               ms.SetLength (0);
-                               ms.Capacity = 0; // 'dispose' the buffer in ms.
-                       } else if (chunked) {
-                               bytes = GetChunkSizeBytes (count, false);
-                               InternalWrite (bytes, 0, bytes.Length);
-                       }
-
-                       if (count > 0)
-                               InternalWrite (buffer, offset, count);
-                       if (chunked)
-                               InternalWrite (crlf, 0, 2);
-               }
-
-               public override IAsyncResult BeginWrite (byte [] buffer, int offset, int count,
-                                                       AsyncCallback cback, object state)
-               {
-                       if (disposed)
-                               throw new ObjectDisposedException (GetType ().ToString ());
-
-                       byte [] bytes = null;
-                       MemoryStream ms = GetHeaders (false);
-                       bool chunked = response.SendChunked;
-                       if (ms != null) {
-                               long start = ms.Position;
-                               ms.Position = ms.Length;
-                               if (chunked) {
-                                       bytes = GetChunkSizeBytes (count, false);
-                                       ms.Write (bytes, 0, bytes.Length);
-                               }
-                               ms.Write (buffer, offset, count);
-                               buffer = ms.GetBuffer ();
-                               offset = (int) start;
-                               count = (int) (ms.Position - start);
-                       } else if (chunked) {
-                               bytes = GetChunkSizeBytes (count, false);
-                               InternalWrite (bytes, 0, bytes.Length);
-                       }
-
-                       return stream.BeginWrite (buffer, offset, count, cback, state);
-               }
-
-               public override void EndWrite (IAsyncResult ares)
-               {
-                       if (disposed)
-                               throw new ObjectDisposedException (GetType ().ToString ());
-
-                       if (ignore_errors) {
-                               try {
-                                       stream.EndWrite (ares);
-                                       if (response.SendChunked)
-                                               stream.Write (crlf, 0, 2);
-                               } catch { }
-                       } else {
-                               stream.EndWrite (ares);
-                               if (response.SendChunked)
-                                       stream.Write (crlf, 0, 2);
-                       }
-               }
-
-               public override int Read ([In,Out] byte[] buffer, int offset, int count)
-               {
-                       throw new NotSupportedException ();
-               }
-
-               public override IAsyncResult BeginRead (byte [] buffer, int offset, int count,
-                                                       AsyncCallback cback, object state)
-               {
-                       throw new NotSupportedException ();
-               }
-
-               public override int EndRead (IAsyncResult ares)
-               {
-                       throw new NotSupportedException ();
-               }
-
-               public override long Seek (long offset, SeekOrigin origin)
-               {
-                       throw new NotSupportedException ();
-               }
-
-               public override void SetLength (long value)
-               {
-                       throw new NotSupportedException ();
-               }
-       }
-}
-#endif
-
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/Utility.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/Utility.cs
deleted file mode 100644 (file)
index fe6100d..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-
-
-using System;
-using System.Text;
-
-namespace MonoHttp
-{
-       class Utility
-       {
-       
-               #region from System.Uri
-               
-               internal static bool MaybeUri (string s)
-               {
-                       int p = s.IndexOf (':');
-                       if (p == -1)
-                               return false;
-
-                       if (p >= 10)
-                               return false;
-
-                       return IsPredefinedScheme (s.Substring (0, p));
-               }
-               
-               private static bool IsPredefinedScheme (string scheme)
-               {
-                       switch (scheme) {
-                       case "http":
-                       case "https":
-                       case "file":
-                       case "ftp":
-                       case "nntp":
-                       case "gopher":
-                       case "mailto":
-                       case "news":
-#if NET_2_0
-                       case "net.pipe":
-                       case "net.tcp":
-#endif
-                               return true;
-                       default:
-                               return false;
-                       }
-               }
-               
-               #endregion
-               
-               #region from System.Net.Cookiie
-               
-               internal static string ToClientString (System.Net.Cookie cookie) 
-               {
-                       if (cookie.Name.Length == 0) 
-                               return String.Empty;
-
-                       StringBuilder result = new StringBuilder (64);
-       
-                       if (cookie.Version > 0) 
-                               result.Append ("Version=").Append (cookie.Version).Append (";");
-                               
-                       result.Append (cookie.Name).Append ("=").Append (cookie.Value);
-
-                       if (cookie.Path != null && cookie.Path.Length != 0)
-                               result.Append (";Path=").Append (QuotedString (cookie, cookie.Path));
-                               
-                       if (cookie.Domain != null && cookie.Domain.Length != 0)
-                               result.Append (";Domain=").Append (QuotedString (cookie, cookie.Domain));                       
-       
-                       if (cookie.Port != null && cookie.Port.Length != 0)
-                               result.Append (";Port=").Append (cookie.Port);  
-                                               
-                       return result.ToString ();
-               }
-
-               // See par 3.6 of RFC 2616
-               static string QuotedString (System.Net.Cookie cookie, string value)
-               {
-                       if (cookie.Version == 0 || IsToken (value))
-                               return value;
-                       else 
-                               return "\"" + value.Replace("\"", "\\\"") + "\"";
-               }                                   
-
-               static bool IsToken (string value) 
-               {
-                       int len = value.Length;
-                       for (int i = 0; i < len; i++) {
-                               char c = value [i];
-                               if (c < 0x20 || c >= 0x7f || tspecials.IndexOf (c) != -1)
-                                       return false;
-                       }
-                       return true;
-               }
-               
-                static string tspecials = "()<>@,;:\\\"/[]?={} \t";   // from RFC 2965, 2068
-               
-               #endregion
-       }
-}
diff --git a/mcs/class/System.Runtime.Remoting/MonoHttp/WebHeaderCollection.cs b/mcs/class/System.Runtime.Remoting/MonoHttp/WebHeaderCollection.cs
deleted file mode 100644 (file)
index dd582ca..0000000
+++ /dev/null
@@ -1,713 +0,0 @@
-#define EMBEDDED_IN_1_0
-
-//
-// System.Net.WebHeaderCollection
-//
-// Authors:
-//     Lawrence Pit (loz@cable.a2000.nl)
-//     Gonzalo Paniagua Javier (gonzalo@ximian.com)
-//      Miguel de Icaza (miguel@novell.com)
-//
-// Copyright 2003 Ximian, Inc. (http://www.ximian.com)
-// Copyright 2007 Novell, Inc. (http://www.novell.com)
-//
-//
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections;
-#if EMBEDDED_IN_1_0
-using System.Collections.Generic;
-#endif
-using System.Collections.Specialized;
-using System.Runtime.InteropServices;
-using System.Runtime.Serialization;
-using System.Text;
-    
-// See RFC 2068 par 4.2 Message Headers
-    
-using System; using System.Net; namespace MonoHttp 
-{
-       [Serializable]
-       [ComVisible(true)]
-       internal class WebHeaderCollection : NameValueCollection, ISerializable
-       {
-               private static readonly Hashtable restricted;
-               private static readonly Hashtable multiValue;
-               private bool internallyCreated = false;
-               
-               // Static Initializer
-               
-               static WebHeaderCollection () 
-               {
-                       // the list of restricted header names as defined 
-                       // by the ms.net spec
-                       restricted = new Hashtable (CaseInsensitiveHashCodeProvider.DefaultInvariant,
-                                                   CaseInsensitiveComparer.DefaultInvariant);
-
-                       restricted.Add ("accept", true);
-                       restricted.Add ("connection", true);
-                       restricted.Add ("content-length", true);
-                       restricted.Add ("content-type", true);
-                       restricted.Add ("date", true);
-                       restricted.Add ("expect", true);
-                       restricted.Add ("host", true);
-                       restricted.Add ("if-modified-since", true);
-                       restricted.Add ("range", true);
-                       restricted.Add ("referer", true);
-                       restricted.Add ("transfer-encoding", true);
-                       restricted.Add ("user-agent", true);                    
-                       restricted.Add ("proxy-connection", true);                      
-
-                       //
-                       // see par 14 of RFC 2068 to see which header names
-                       // accept multiple values each separated by a comma
-                       multiValue = new Hashtable (CaseInsensitiveHashCodeProvider.DefaultInvariant,
-                                                   CaseInsensitiveComparer.DefaultInvariant);
-
-                       multiValue.Add ("accept", true);
-                       multiValue.Add ("accept-charset", true);
-                       multiValue.Add ("accept-encoding", true);
-                       multiValue.Add ("accept-language", true);
-                       multiValue.Add ("accept-ranges", true);
-                       multiValue.Add ("allow", true);
-                       multiValue.Add ("authorization", true);
-                       multiValue.Add ("cache-control", true);
-                       multiValue.Add ("connection", true);
-                       multiValue.Add ("content-encoding", true);
-                       multiValue.Add ("content-language", true);                      
-                       multiValue.Add ("expect", true);                
-                       multiValue.Add ("if-match", true);
-                       multiValue.Add ("if-none-match", true);
-                       multiValue.Add ("proxy-authenticate", true);
-                       multiValue.Add ("public", true);                        
-                       multiValue.Add ("range", true);
-                       multiValue.Add ("transfer-encoding", true);
-                       multiValue.Add ("upgrade", true);
-                       multiValue.Add ("vary", true);
-                       multiValue.Add ("via", true);
-                       multiValue.Add ("warning", true);
-                       multiValue.Add ("www-authenticate", true);
-
-                       // Extra
-                       multiValue.Add ("set-cookie", true);
-                       multiValue.Add ("set-cookie2", true);
-               }
-               
-               // Constructors
-               
-               public WebHeaderCollection () { }       
-               
-               protected WebHeaderCollection (SerializationInfo serializationInfo, 
-                                              StreamingContext streamingContext)
-               {
-                       int count;
-
-                       try {
-                               count = serializationInfo.GetInt32("Count");
-                               for (int i = 0; i < count; i++) 
-                                       this.Add (serializationInfo.GetString (i.ToString ()),
-                                                 serializationInfo.GetString ((count + i).ToString ()));
-                       } catch (SerializationException){
-                               count = serializationInfo.GetInt32("count");
-                               for (int i = 0; i < count; i++) 
-                                       this.Add (serializationInfo.GetString ("k" + i),
-                                                 serializationInfo.GetString ("v" + i));
-                       }
-                       
-               }
-               
-               internal WebHeaderCollection (bool internallyCreated)
-               {       
-                       this.internallyCreated = internallyCreated;
-               }               
-               
-               // Methods
-               
-               public void Add (string header)
-               {
-                       if (header == null)
-                               throw new ArgumentNullException ("header");
-                       int pos = header.IndexOf (':');
-                       if (pos == -1)
-                               throw new ArgumentException ("no colon found", "header");                               
-                       this.Add (header.Substring (0, pos), 
-                                 header.Substring (pos + 1));
-               }
-               
-               public override void Add (string name, string value)
-               {
-                       if (name == null)
-                               throw new ArgumentNullException ("name");
-                       if (internallyCreated && IsRestricted (name))
-                               throw new ArgumentException ("This header must be modified with the appropiate property.");
-                       this.AddWithoutValidate (name, value);
-               }
-
-               protected void AddWithoutValidate (string headerName, string headerValue)
-               {
-                       if (!IsHeaderName (headerName))
-                               throw new ArgumentException ("invalid header name: " + headerName, "headerName");
-                       if (headerValue == null)
-                               headerValue = String.Empty;
-                       else
-                               headerValue = headerValue.Trim ();
-                       if (!IsHeaderValue (headerValue))
-                               throw new ArgumentException ("invalid header value: " + headerValue, "headerValue");
-                       base.Add (headerName, headerValue);                     
-               }
-
-               public override string [] GetValues (string header)
-               {
-                       if (header == null)
-                               throw new ArgumentNullException ("header");
-
-                       string [] values = base.GetValues (header);
-                       if (values == null || values.Length == 0)
-                               return null;
-
-                       /*
-                       if (IsMultiValue (header)) {
-                               values = GetMultipleValues (values);
-                       }
-                       */
-
-                       return values;
-               }
-
-               public override string[] GetValues (int index)
-               {
-                       string[] values = base.GetValues (index);
-                       if (values == null || values.Length == 0) {
-                               return(null);
-                       }
-                       
-                       return(values);
-               }
-
-               /* Now i wonder why this is here...
-               static string [] GetMultipleValues (string [] values)
-               {
-                       ArrayList mvalues = new ArrayList (values.Length);
-                       StringBuilder sb = null;
-                       for (int i = 0; i < values.Length; ++i) {
-                               string val = values [i];
-                               if (val.IndexOf (',') == -1) {
-                                       mvalues.Add (val);
-                                       continue;
-                               }
-
-                               if (sb == null)
-                                       sb = new StringBuilder ();
-
-                               bool quote = false;
-                               for (int k = 0; k < val.Length; k++) {
-                                       char c = val [k];
-                                       if (c == '"') {
-                                               quote = !quote;
-                                       } else if (!quote && c == ',') {
-                                               mvalues.Add (sb.ToString ().Trim ());
-                                               sb.Length = 0;
-                                               continue;
-                                       }
-                                       sb.Append (c);
-                               }
-
-                               if (sb.Length > 0) {
-                                       mvalues.Add (sb.ToString ().Trim ());
-                                       sb.Length = 0;
-                               }
-                       }
-
-                       return (string []) mvalues.ToArray (typeof (string));
-               }
-               */
-
-               public static bool IsRestricted (string headerName)
-               {
-                       if (headerName == null)
-                               throw new ArgumentNullException ("headerName");
-
-                       if (headerName == "") // MS throw nullexception here!
-                               throw new ArgumentException ("empty string", "headerName");
-
-                       if (!IsHeaderName (headerName))
-                               throw new ArgumentException ("Invalid character in header");
-
-                       return restricted.ContainsKey (headerName);
-               }
-
-#if EMBEDDED_IN_1_0
-               public static bool IsRestricted (string headerName, bool response)
-               {
-                       if (headerName == null || headerName.Length == 0)
-                               throw new ArgumentNullException ("headerName");
-
-                       if (!IsHeaderName (headerName))
-                               throw new ArgumentException ("Invalid character in header");
-
-
-                       if (response)
-                               return false;
-                       return restricted.ContainsKey (headerName);
-               }
-#endif
-
-               public override void OnDeserialization (object sender)
-               {
-               }
-
-               public override void Remove (string name)
-               {
-                       if (name == null)
-                               throw new ArgumentNullException ("name");
-                       if (internallyCreated && IsRestricted (name))
-                               throw new ArgumentException ("restricted header");
-                       base.Remove (name);
-               }
-
-               public override void Set (string name, string value)
-               {
-                       if (name == null)
-                               throw new ArgumentNullException ("name");
-                       if (internallyCreated && IsRestricted (name))
-                               throw new ArgumentException ("restricted header");
-                       if (!IsHeaderName (name))
-                               throw new ArgumentException ("invalid header name");
-                       if (value == null)
-                               value = String.Empty;
-                       else
-                               value = value.Trim ();
-                       if (!IsHeaderValue (value))
-                               throw new ArgumentException ("invalid header value");
-                       base.Set (name, value);                 
-               }
-
-               public byte[] ToByteArray ()
-               {
-                       return Encoding.UTF8.GetBytes(ToString ());
-               }
-
-               public override string ToString ()
-               {
-                       StringBuilder sb = new StringBuilder();
-
-                       int count = base.Count;
-                       for (int i = 0; i < count ; i++)
-                               sb.Append (GetKey (i))
-                                 .Append (": ")
-                                 .Append (Get (i))
-                                 .Append ("\r\n");
-                                 
-                       return sb.Append("\r\n").ToString();
-               }
-#if !TARGET_JVM
-               void ISerializable.GetObjectData (SerializationInfo serializationInfo,
-                                                 StreamingContext streamingContext)
-               {
-                       GetObjectData (serializationInfo, streamingContext);
-               }
-#endif
-               public override void GetObjectData (SerializationInfo serializationInfo, StreamingContext streamingContext)
-               {
-                       int count = base.Count;
-                       serializationInfo.AddValue ("Count", count);
-                       for (int i = 0; i < count; i++) {
-                               serializationInfo.AddValue (i.ToString (), GetKey (i));
-                               serializationInfo.AddValue ((count + i).ToString (), Get (i));
-                       }
-               }
-
-               public override string[] AllKeys
-               {
-                       get {
-                               return(base.AllKeys);
-                       }
-               }
-               
-               public override int Count 
-               {
-                       get {
-                               return(base.Count);
-                       }
-               }
-
-               public override KeysCollection Keys
-               {
-                       get {
-                               return(base.Keys);
-                       }
-               }
-
-               public override string Get (int index)
-               {
-                       return(base.Get (index));
-               }
-               
-               public override string Get (string name)
-               {
-                       return(base.Get (name));
-               }
-               
-               public override string GetKey (int index)
-               {
-                       return(base.GetKey (index));
-               }
-
-#if EMBEDDED_IN_1_0
-               public void Add (HttpRequestHeader header, string value)
-               {
-                       Add (RequestHeaderToString (header), value);
-               }
-
-               public void Remove (HttpRequestHeader header)
-               {
-                       Remove (RequestHeaderToString (header));
-               }
-
-               public void Set (HttpRequestHeader header, string value)
-               {
-                       Set (RequestHeaderToString (header), value);
-               }
-
-               public void Add (HttpResponseHeader header, string value)
-               {
-                       Add (ResponseHeaderToString (header), value);
-               }
-
-               public void Remove (HttpResponseHeader header)
-               {
-                       Remove (ResponseHeaderToString (header));
-               }
-
-               public void Set (HttpResponseHeader header, string value)
-               {
-                       Set (ResponseHeaderToString (header), value);
-               }
-
-               string RequestHeaderToString (HttpRequestHeader value)
-               {
-                       switch (value){
-                       case HttpRequestHeader.CacheControl:
-                               return "cache-control";
-                       case HttpRequestHeader.Connection:
-                               return "connection";
-                       case HttpRequestHeader.Date:
-                               return "date";
-                       case HttpRequestHeader.KeepAlive:
-                               return "keep-alive";
-                       case HttpRequestHeader.Pragma:
-                               return "pragma";
-                       case HttpRequestHeader.Trailer:
-                               return "trailer";
-                       case HttpRequestHeader.TransferEncoding:
-                               return "transfer-encoding";
-                       case HttpRequestHeader.Upgrade:
-                               return "upgrade";
-                       case HttpRequestHeader.Via:
-                               return "via";
-                       case HttpRequestHeader.Warning:
-                               return "warning";
-                       case HttpRequestHeader.Allow:
-                               return "allow";
-                       case HttpRequestHeader.ContentLength:
-                               return "content-length";
-                       case HttpRequestHeader.ContentType:
-                               return "content-type";
-                       case HttpRequestHeader.ContentEncoding:
-                               return "content-encoding";
-                       case HttpRequestHeader.ContentLanguage:
-                               return "content-language";
-                       case HttpRequestHeader.ContentLocation:
-                               return "content-location";
-                       case HttpRequestHeader.ContentMd5:
-                               return "content-md5";
-                       case HttpRequestHeader.ContentRange:
-                               return "content-range";
-                       case HttpRequestHeader.Expires:
-                               return "expires";
-                       case HttpRequestHeader.LastModified:
-                               return "last-modified";
-                       case HttpRequestHeader.Accept:
-                               return "accept";
-                       case HttpRequestHeader.AcceptCharset:
-                               return "accept-charset";
-                       case HttpRequestHeader.AcceptEncoding:
-                               return "accept-encoding";
-                       case HttpRequestHeader.AcceptLanguage:
-                               return "accept-language";
-                       case HttpRequestHeader.Authorization:
-                               return "authorization";
-                       case HttpRequestHeader.Cookie:
-                               return "cookie";
-                       case HttpRequestHeader.Expect:
-                               return "expect";
-                       case HttpRequestHeader.From:
-                               return "from";
-                       case HttpRequestHeader.Host:
-                               return "host";
-                       case HttpRequestHeader.IfMatch:
-                               return "if-match";
-                       case HttpRequestHeader.IfModifiedSince:
-                               return "if-modified-since";
-                       case HttpRequestHeader.IfNoneMatch:
-                               return "if-none-match";
-                       case HttpRequestHeader.IfRange:
-                               return "if-range";
-                       case HttpRequestHeader.IfUnmodifiedSince:
-                               return "if-unmodified-since";
-                       case HttpRequestHeader.MaxForwards:
-                               return "max-forwards";
-                       case HttpRequestHeader.ProxyAuthorization:
-                               return "proxy-authorization";
-                       case HttpRequestHeader.Referer:
-                               return "referer";
-                       case HttpRequestHeader.Range:
-                               return "range";
-                       case HttpRequestHeader.Te:
-                               return "te";
-                       case HttpRequestHeader.Translate:
-                               return "translate";
-                       case HttpRequestHeader.UserAgent:
-                               return "user-agent";
-                       default:
-                               throw new InvalidOperationException ();
-                       }
-               }
-               
-               
-               public string this[HttpRequestHeader hrh]
-               {
-                       get {
-                               return Get (RequestHeaderToString (hrh));
-                       }
-                       
-                       set {
-                               Add (RequestHeaderToString (hrh), value);
-                       }
-               }
-
-               string ResponseHeaderToString (HttpResponseHeader value)
-               {
-                       switch (value){
-                       case HttpResponseHeader.CacheControl:
-                               return "cache-control";
-                       case HttpResponseHeader.Connection:
-                               return "connection";
-                       case HttpResponseHeader.Date:
-                               return "date";
-                       case HttpResponseHeader.KeepAlive:
-                               return "keep-alive";
-                       case HttpResponseHeader.Pragma:
-                               return "pragma";
-                       case HttpResponseHeader.Trailer:
-                               return "trailer";
-                       case HttpResponseHeader.TransferEncoding:
-                               return "transfer-encoding";
-                       case HttpResponseHeader.Upgrade:
-                               return "upgrade";
-                       case HttpResponseHeader.Via:
-                               return "via";
-                       case HttpResponseHeader.Warning:
-                               return "warning";
-                       case HttpResponseHeader.Allow:
-                               return "allow";
-                       case HttpResponseHeader.ContentLength:
-                               return "content-length";
-                       case HttpResponseHeader.ContentType:
-                               return "content-type";
-                       case HttpResponseHeader.ContentEncoding:
-                               return "content-encoding";
-                       case HttpResponseHeader.ContentLanguage:
-                               return "content-language";
-                       case HttpResponseHeader.ContentLocation:
-                               return "content-location";
-                       case HttpResponseHeader.ContentMd5:
-                               return "content-md5";
-                       case HttpResponseHeader.ContentRange:
-                               return "content-range";
-                       case HttpResponseHeader.Expires:
-                               return "expires";
-                       case HttpResponseHeader.LastModified:
-                               return "last-modified";
-                       case HttpResponseHeader.AcceptRanges:
-                               return "accept-ranges";
-                       case HttpResponseHeader.Age:
-                               return "age";
-                       case HttpResponseHeader.ETag:
-                               return "etag";
-                       case HttpResponseHeader.Location:
-                               return "location";
-                       case HttpResponseHeader.ProxyAuthenticate:
-                               return "proxy-authenticate";
-                       case HttpResponseHeader.RetryAfter:
-                               return "RetryAfter";
-                       case HttpResponseHeader.Server:
-                               return "server";
-                       case HttpResponseHeader.SetCookie:
-                               return "set-cookie";
-                       case HttpResponseHeader.Vary:
-                               return "vary";
-                       case HttpResponseHeader.WwwAuthenticate:
-                               return "www-authenticate";
-                       default:
-                               throw new InvalidOperationException ();
-                       }
-               }
-               public string this[HttpResponseHeader hrh]
-               {
-                       get
-                       {
-                               return Get (ResponseHeaderToString (hrh));
-                       }
-
-                       set
-                       {
-                               Add (ResponseHeaderToString (hrh), value);
-                       }
-               }
-
-#if !EMBEDDED_IN_1_0
-               public override void Clear ()
-               {
-                       base.Clear ();
-               }
-
-
-               public override IEnumerator GetEnumerator ()
-               {
-                       return(base.GetEnumerator ());
-               }
-#endif
-#endif
-
-               // Internal Methods
-               
-               // With this we don't check for invalid characters in header. See bug #55994.
-               internal void SetInternal (string header)
-               {
-                       int pos = header.IndexOf (':');
-                       if (pos == -1)
-                               throw new ArgumentException ("no colon found", "header");                               
-
-                       SetInternal (header.Substring (0, pos), header.Substring (pos + 1));
-               }
-
-               internal void SetInternal (string name, string value)
-               {
-                       if (value == null)
-                               value = String.Empty;
-                       else
-                               value = value.Trim ();
-                       if (!IsHeaderValue (value))
-                               throw new ArgumentException ("invalid header value");
-
-                       if (IsMultiValue (name)) {
-                               base.Add (name, value);
-                       } else {
-                               base.Remove (name);
-                               base.Set (name, value); 
-                       }
-               }
-
-               internal void RemoveAndAdd (string name, string value)
-               {
-                       if (value == null)
-                               value = String.Empty;
-                       else
-                               value = value.Trim ();
-
-                       base.Remove (name);
-                       base.Set (name, value);
-               }
-
-               internal void RemoveInternal (string name)
-               {
-                       if (name == null)
-                               throw new ArgumentNullException ("name");
-                       base.Remove (name);
-               }               
-               
-               // Private Methods
-               
-               internal static bool IsMultiValue (string headerName)
-               {
-                       if (headerName == null || headerName == "")
-                               return false;
-
-                       return multiValue.ContainsKey (headerName);
-               }               
-               
-               internal static bool IsHeaderValue (string value)
-               {
-                       // TEXT any 8 bit value except CTL's (0-31 and 127)
-                       //      but including \r\n space and \t
-                       //      after a newline at least one space or \t must follow
-                       //      certain header fields allow comments ()
-                               
-                       int len = value.Length;
-                       for (int i = 0; i < len; i++) {                 
-                               char c = value [i];
-                               if (c == 127)
-                                       return false;
-                               if (c < 0x20 && (c != '\r' && c != '\n' && c != '\t'))
-                                       return false;
-                               if (c == '\n' && ++i < len) {
-                                       c = value [i];
-                                       if (c != ' ' && c != '\t')
-                                               return false;
-                               }
-                       }
-                       
-                       return true;
-               }
-               
-               internal static bool IsHeaderName (string name)
-               {
-                       if (name == null || name.Length == 0)
-                               return false;
-
-                       int len = name.Length;
-                       for (int i = 0; i < len; i++) {                 
-                               char c = name [i];
-                               if (c > 126 || !allowed_chars [(int) c])
-                                       return false;
-                       }
-                       
-                       return true;
-               }
-
-               static bool [] allowed_chars = new bool [126] {
-                       false, false, false, false, false, false, false, false, false, false, false, false, false, false,
-                       false, false, false, false, false, false, false, false, false, false, false, false, false, false,
-                       false, false, false, false, false, true, false, true, true, true, true, false, false, false, true,
-                       true, false, true, true, false, true, true, true, true, true, true, true, true, true, true, false,
-                       false, false, false, false, false, false, true, true, true, true, true, true, true, true, true,
-                       true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
-                       false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true,
-                       true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
-                       false, true, false
-                       };
-       }
-}
-
-
index 139b8a19a2895d9f89a1a3bc09f2768812cd3e5b..adb0fa70cb99fbd6d705dedd86df06c498b16e22 100644 (file)
@@ -31,9 +31,6 @@ using System.Collections;
 using System.IO;
 using System.Net;
 using System.Runtime.Remoting.Messaging;
-#if !NET_2_0
-using MonoHttp;
-#endif
 
 namespace System.Runtime.Remoting.Channels.Http
 {
index 1fdb06f02371ed9f795bbbe3a87653771c1ae6f8..520000423acef980da5902c4acf5b4b68ce2dd27 100644 (file)
@@ -33,9 +33,6 @@ using System.Net;
 using System.Net.Sockets;
 using System.Runtime.Remoting.Messaging;
 using System.IO;
-#if !NET_2_0
-using MonoHttp;
-#endif
 
 namespace System.Runtime.Remoting.Channels.Http
 {
index 1dd9cd4168d7613fc582431efb0d32ce9a72631a..edb23325761a123174330eaf3df99880c96d5de0 100644 (file)
@@ -65,27 +65,3 @@ System.Runtime.Remoting.MetadataServices/SdlType.cs
 System.Runtime.Remoting.MetadataServices/SUDSGeneratorException.cs
 System.Runtime.Remoting.Services/RemotingClientProxy.cs
 System.Runtime.Remoting.Services/RemotingService.cs
-MonoHttp/AuthenticationSchemes.cs
-MonoHttp/AuthenticationSchemeSelector.cs
-MonoHttp/ChunkedInputStream.cs
-MonoHttp/ChunkStream.cs
-MonoHttp/EndPointListener.cs
-MonoHttp/EndPointManager.cs
-MonoHttp/HttpConnection.cs
-MonoHttp/HttpListener.cs
-MonoHttp/HttpListenerContext.cs
-MonoHttp/HttpListenerBasicIdentity.cs
-MonoHttp/HttpListenerException.cs
-MonoHttp/HttpListenerPrefixCollection.cs
-MonoHttp/HttpListenerRequest.cs
-MonoHttp/HttpListenerResponse.cs
-MonoHttp/HttpRequestHeader.cs
-MonoHttp/HttpResponseHeader.cs
-MonoHttp/HttpStreamAsyncResult.cs
-MonoHttp/HttpUtility.cs
-MonoHttp/ListenerAsyncResult.cs
-MonoHttp/ListenerPrefix.cs
-MonoHttp/RequestStream.cs
-MonoHttp/ResponseStream.cs
-MonoHttp/WebHeaderCollection.cs
-MonoHttp/Utility.cs
diff --git a/mcs/class/System.Runtime.Remoting/get_mono_http b/mcs/class/System.Runtime.Remoting/get_mono_http
deleted file mode 100644 (file)
index 1e9c9b5..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/bin/bash
-for i in \
-       AuthenticationSchemes.cs \
-       AuthenticationSchemeSelector.cs \
-       HttpResponseHeader.cs \
-       HttpRequestHeader.cs \
-       ChunkedInputStream.cs \
-       ChunkStream.cs \
-       EndPointManager.cs \
-       EndPointListener.cs \
-       HttpConnection.cs \
-       HttpListener.cs \
-       HttpListenerContext.cs \
-       HttpListenerBasicIdentity.cs \
-       HttpListenerException.cs \
-       HttpListenerPrefixCollection.cs \
-       HttpListenerRequest.cs \
-       HttpListenerResponse.cs \
-       HttpStreamAsyncResult.cs \
-       HttpUtility.cs \
-       ListenerAsyncResult.cs \
-       ListenerPrefix.cs \
-       RequestStream.cs \
-       ResponseStream.cs \
-       WebHeaderCollection.cs;
-do sed -e '1{
-i\#define EMBEDDED_IN_1_0\n
-}' \
-       -e 's/#if NET_2_0 && SECURITY_DEP/#if EMBEDDED_IN_1_0/' \
-       -e 's/#if NET_2_0/#if EMBEDDED_IN_1_0/' \
-       -e 's/public sealed class/internal class/' \
-       -e 's/public class/internal class/' \
-       -e 's/public delegate/internal delegate/' \
-       -e 's/public enum/internal enum/' \
-       -e 's/public interface/internal delegate/' \
-       -e 's/namespace System.Net/using System; using System.Net; namespace MonoHttp/' \
-       ../System/System.Net/$i > MonoHttp/$i; done
-
-#these are only needed in 1.0
-for f in \
-       AuthenticationSchemes.cs \
-       AuthenticationSchemeSelector.cs \
-       EndPointManager.cs \
-       EndPointListener.cs \
-       HttpListener.cs \
-       HttpListenerException.cs \
-       HttpListenerPrefixCollection.cs \
-       HttpListenerBasicIdentity.cs \
-       HttpResponseHeader.cs \
-       HttpRequestHeader.cs;
-do sed -e '0,/#if.*EMBEDDED_IN_1_0.*$/s//#if !NET_2_0/' -i MonoHttp/$f; done
-
-#break some other internal dependencies
-sed -e 's/cookie.ToClientString ()/MonoHttp.Utility.ToClientString (cookie)/' -i MonoHttp/HttpListenerResponse.cs
-sed -e 's#bool ign = (listener == null)#bool ign = false;//#' -i MonoHttp/HttpConnection.cs
-
-#rewrite 2.0->1.0 API
-sed -e 's/if (Uri.MaybeUri (raw_url) && Uri.TryCreate (raw_url, UriKind.Absolute, out raw_uri))/#if NET_2_0\nif (MonoHttp.Utility.MaybeUri (raw_url) \&\& Uri.TryCreate (raw_url, UriKind.Absolute, out raw_uri))\n#else\ntry { raw_uri = new Uri (raw_url); } catch { raw_uri = null; } if (url != raw_uri \&\& (raw_uri.Host == null || raw_uri.Host.Length == 0)) raw_uri = null; if (raw_uri != null)\n#endif\n/' \
-    -e 's/if (!Uri.TryCreate (base_uri + path, UriKind.Absolute, out url)){/#if NET_2_0\nif (!Uri.TryCreate (base_uri + path, UriKind.Absolute, out url)){\n#else\ntry { url = new Uri (base_uri + path); } catch {}; if (url != null \&\& (url.Host == null || url.Host.Length == 0)) url = null;  if (url == null) {\n#endif\n/' \
-    -e 's/string.Compare (method, m, StringComparison.InvariantCultureIgnoreCase)/string.Compare (method, m, true, System.Globalization.CultureInfo.InvariantCulture)/' \
-    -i MonoHttp/HttpListenerRequest.cs
-
-sed -e 's/X509Certificate2 cert;//' \
-    -e 's/epl.cert == null || //' \
-    -e 's/new HttpConnection (accepted, epl, epl.secure, epl.cert, epl.key);/new HttpConnection (accepted, epl);/' \
-    -e 's/if (Uri.MaybeUri (raw_url) && Uri.TryCreate (raw_url, UriKind.Absolute, out raw_uri))/#if NET_2_0\nif (MonoHttp.Utility.MaybeUri (raw_url) \&\& Uri.TryCreate (raw_url, UriKind.Absolute, out raw_uri))\n#else\ntry { raw_uri = new Uri (raw_url); } catch { raw_uri = null; } if (raw_uri != null)\n#endif\n/' \
--i MonoHttp/EndPointListener.cs
-
-sed -e 's/prefixes.Remove (uriPrefix);/prefixes.Contains (uriPrefix); if (result) &;/' \
-       -i MonoHttp/HttpListenerPrefixCollection.cs