2009-01-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
[mono.git] / mcs / class / System / System.Net / ChangeLog
1
2 2009-01-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
3
4         * FtpWebRequest.cs: now deleting a file works when we're not in the
5         root directory.
6
7 2008-12-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
8
9         * IPAddress.cs: avoid throwing when parsing a subnet.
10
11 2008-11-18 Gonzalo Paniagua Javier <gonzalo@novell.com>
12
13         * HttpConnection.cs: remove CWL. When reusing, BeginReadRequest might
14         throw if the client closes.
15         * HttpListenerResponse.cs: close the connection for 1.0 clients.
16
17 2008-11-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
18
19         * FtpDataStream.cs: use the socket for reading until the end of a
20         stream that wasn't read entirely. Remove unused ManualResetEvent.
21         * FtpWebRequest.cs: set the file_name when downloading. Update the
22         response status after every SendCommand. Send a "OPTS utf8 on" as MS
23         does (the control cnc reader should do something with UTF8)
24
25 2008-11-04 Gonzalo Paniagua Javier <gonzalo@novell.com>
26
27         * WebRequest.cs: if the cache level is NoCacheNoStore, don't throw
28         when setting the CachePolicy.
29
30 2008-11-03 Gonzalo Paniagua Javier <gonzalo@novell.com>
31
32         * FtpWebRequest.cs: take the server current directory into account
33         when uploading files. Set the data connection type before every
34         transmission.
35         Bug 333985 fixed.
36
37 2008-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
38
39         * FtpWebRequest.cs: disable keep-alive connections as the current code 
40         does not deal with keep-alive connections.
41         Workaround for bug #380262.
42
43 2008-10-30 Gonzalo Paniagua Javier <gonzalo@novell.com>
44
45         * WebConnectionStream.cs: when there's a NTLM authentication in
46         progress, don't let the connection be used by the next request if we
47         have the entire response in the input buffer.
48
49 2008-10-30 Gonzalo Paniagua Javier <gonzalo@novell.com>
50
51         * HttpListenerResponse.cs: removed obsolete comment.
52         * ResponseStream.cs: don't read response.SendChunked until after
53         getting the response headers.
54
55 2008-10-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
56
57         * ServicePointManager.cs: set the default limit of connections from
58         the configuration file(s) on startup.
59         Bug #339422 fixed.
60
61 2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
62
63         * HttpWebRequest.cs: don't call ProxyRequest twice.
64         * WebConnectionData.cs: remove unused fields.
65
66         * WebConnection.cs:
67         * WebConnectionStream.cs: when setting the input buffer, check to see
68         if the entire response is already there and free up the request slot.
69         Fixes bug #423156.
70
71         * ResponseStream.cs:
72         * HttpListenerResponse.cs: buffer the headers so that they are sent
73         together with the data on the first Write (if any). The fix above
74         didn't work with our HttpListener without this.
75
76 2008-10-08 Gonzalo Paniagua Javier <gonzalo@novell.com>
77
78         * WebConnection.cs:
79         * ServicePoint.cs:
80         * WebConnectionGroup.cs:
81         * HttpWebRequest.cs:
82         * WebConnectionStream.cs: reuse the same connection when doing NTLM
83         authentication. Fixes bug #323375.
84         Implemented support for UnsafeAuthenticatedConnectionSharing.
85
86 2008-10-08 Gonzalo Paniagua Javier <gonzalo@novell.com>
87
88         * HttpConnection.cs:
89         * HttpListenerResponse.cs: fix typo that caused the "connection close"
90         header to be sent. Do not close the socket when the encoding is not
91         chunked and reuse is possible.
92         Fixes bug #433371.
93
94 2008-10-08 Gonzalo Paniagua Javier <gonzalo@novell.com>
95
96         * HttpWebRequest.cs: if GetRequestStream has already been called,
97         return the same stream that we returned in the first call.
98         Fixes bug #429200.
99
100 2008-10-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
101
102         * ServicePointManager.cs: better handling of possible collisions of the
103         hash for schema/host/port. Fixes bug #417891.
104
105 2008-10-06 Gonzalo Paniagua Javier <gonzalo@novell.com>
106
107         * ChunkStream.cs: (ReadTrailer) make sure the array access is not out
108         of bounds. Fixes bug #322715.
109
110 2008-09-19 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
111
112         * WebConnectionStream.cs: when receiving a 0 content-length, free up
113         the slot for the next request immediately.
114         Fixes bug #427974.
115
116 2008-09-16  Miguel de Icaza  <miguel@novell.com>
117
118         * IPv6Address.cs: On the 2.0 profile, avoid throwing/catching
119         exceptions inside TryParse.
120
121 2008-09-12  Miguel de Icaza  <miguel@novell.com>
122
123         * HttpListenerPrefixCollection.cs, EndPointListener.cs,
124         HttpListener.cs, EndPointManager.cs, HttpConnection.cs: Remove
125         generics support where necessary to allow this code to be reused
126         in the 1.0 profile.
127
128 2008-09-08  Miguel de Icaza  <miguel@novell.com>
129
130         * EndPointListener.cs (SearchListener): Cope with the raw_url not
131         being merely a path, but potentially a full URI (see the proxy
132         case). 
133
134         * HttpListenerRequest.cs: Cope with raw_url not being merely a
135         path, but potentially a full Uri.   Also uses TryCreate, hoping
136         that one day it will be faster.
137
138 2008-08-23  Zoltan Varga  <vargaz@gmail.com>
139
140         * WebConnectionStream.cs (WriteRequest): Fix the copying in the
141         previous patch, when bytes.Length != length.
142
143 2008-08-22  Zoltan Varga  <vargaz@gmail.com>
144
145         * WebConnectionStream.cs (WriteRequest): For small requests,
146         cluster together the header + body in a single write call, avoids
147         the latency problems observed in an TLS application that makes
148         many web service calls. 
149
150 2008-08-22  Geoff Norton  <gnorton@novell.com>
151
152         * WebConnection.cs: Set NoDelay
153
154 2008-08-21  Stephane Delcroix  <sdelcroix@novell.com>
155
156         * OpenReadCompletedEventArgs.cs: new Address property for 2.1
157
158 2008-08-06  Miguel de Icaza  <miguel@novell.com>
159
160         * IPAddress.cs (ParseIPV6): Use an exception-less parser for ipv6
161         addresses.
162
163         * IPv6Address.cs: Rewrite most of the parsing code to not use that
164         incredibly fragile, hacky and hacky implementation.
165
166         (TryParse): Provide a exception-less parsing path.
167
168 2008-07-25  Gert Driesen  <drieseng@users.sourceforge.net>µ
169
170 2008-08-06  Atsushi Enomoto  <atsushi@ximian.com>
171
172         * IPAddress.cs : several IPv4 parsing fix exposed by bug #411920.
173
174 2008-08-05  Atsushi Enomoto  <atsushi@ximian.com>
175
176         * WebClient.cs : it should not invoke delegate directly, but should
177           call overridable OnDownloadProgressChanged.
178
179 2008-07-25  Gert Driesen  <drieseng@users.sourceforge.net>μ
180
181         * HttpWebResponse.cs: Initialize contentLength in ctor, as it must
182         remain accessible after the response is disposed (and the headers are
183         no longer available). Adding missing disposed checks in properties
184         (except for StatusCode) and GetResponseHeader. On the 2.0 profile,
185         headers must remain accessible after the HttpWebResponse is disposed.
186
187 2008-06-10  Stephane Delcroix  <sdelcroix@novell.com>
188
189         * IPAddress.cs: allow usage on 2.1 as smcs knows nothing about
190         string.GetEnumerator : IEnumerable<char>
191
192 2008-06-08  Miguel de Icaza  <miguel@novell.com>
193
194         * ResponseStream.cs: Do not Close the HttpResponse object here as
195         it is possible to issue multiple OutputStream.Close calls (they
196         actually happen implicitly through things like StreamWriter.Close,
197         and they are in various MSDN samples).
198
199 2008-05-28 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
200
201         * CookieContainer.cs: apply slightly modified patch from rulatir@wp.pl
202         that fixes bug #356537.
203
204 2008-04-30  Miguel de Icaza  <miguel@novell.com>
205
206         * WebPermission.cs (ToXml): To allow code that uses WebPermission
207         to be built. 
208
209 2008-04-21 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
210
211         * HttpWebResponse.cs: do not check the disposed status for properties
212         and methods that return response data other than the stream itself.
213         Fixes bug #381223.
214
215 2008-04-16  Marek Habersack  <mhabersack@novell.com>
216
217         * HttpWebRequest.cs: fix an off-by-one bug - the number of
218         redirects must not exceed the value of
219         MaximumAutomaticRedirections. Fixes bug #380131
220
221 2008-04-13  Jb Evain  <jbevain@novell.com>
222
223         * *_2_1.cs: move the specific 2.1 System.Net code to the
224         assembly System.Net.
225
226 2008-04-13  Jb Evain  <jbevain@novell.com>
227
228         * WebRequest_2_1.cs, WebResponse_2_1.cs: new files
229         * HttpWebRequest_2_1.cs, HttpWebResponse_2_1, WebHeaderCollection_2_1:
230         update to Silverlight 2.0b1 API.
231         Merged from the Moonlight 2 branch.
232
233 2008-04-06  <gnorton@novell.com>
234
235         * ListenerAsyncContext.cs: Fix Basic authentication support.  Patch from 
236         Maciej Paszta <paszczi@go2.pl>
237
238 2008-02-21  Zoltan Varga  <vargaz@gmail.com>
239
240         * HttpConnection.cs (Close): Close the socket even if Shutdown throws an exception.
241
242 2008-02-17  Daniel Nauck  <dna@mono-project.de>
243
244         * HttpWebResponse.cs: refactored cookie expires parsing to
245         allow all common expires datetime formats.
246
247 2008-02-09  Daniel Nauck  <dna@mono-project.de>
248
249         * HttpWebResponse.cs: convert UTC/GMT Expires DateTime from a cookie
250         into local time, also set the HttpOnly property if available.
251
252 2008-02-09  Daniel Nauck  <dna@mono-project.de>
253
254         * Cookie.cs: implemented HttpOnly
255
256 2008-01-27  Gert Driesen  <drieseng@users.sourceforge.net>
257
258         * IPAddress.cs (Parse): Changed argument name to match MS.
259         (TryParse): Changed argument name to match MS.
260         (ParseIPV4): Only treat zero-length or " " address as empty on 1.0
261         profile. On 2.0 profile, only ignore characters after blank if last
262         part is valid hex string.
263         * IPv6Address.cs: Removed extra spaces and tabs.
264
265 2008-01-26  Daniel Nauck  <dna@mono-project.de>
266
267         * HttpWebRequest.cs: fixed typo. Use the actual uri for correct
268         cookie header informations and not the originally one.
269
270 2008-01-26  Daniel Nauck  <dna@mono-project.de>
271
272         * Cookie.cs: set Version to '1' if Port is set,
273         don't include path and domain informations when version is 0,
274         match ToString () output with .NET 2.0,
275         fixes bug #316017
276
277 2008-01-15  Atsushi Enomoto  <atsushi@ximian.com>
278
279         * MonoHttpDate.cs : Parse() should return Local time. Fixed bug
280           #353495.
281
282 2008-01-12  Gert Driesen  <drieseng@users.sourceforge.net>
283
284         * WebClient.cs: Do not add trailing CRLF in UploadValuesCore. Fixes
285         standalone test for bug #351049.
286
287 2008-01-07  Sebastien Pouliot  <sebastien@ximian.com>
288
289         * CredentialCache.cs: Gendarme's AvoidToStringOnStringsRule in
290         CredentialCacheKey constructor. UseStringEmptyRule on CredentialCache
291         static ctor (3 times).
292
293 2007-12-27  Miguel de Icaza  <miguel@novell.com>
294
295         * WebClient.cs: We catch exceptions that happen on the helper
296         async threads toa void terminating the application on errors, and
297         also raise a variant of the OnXXXXCompleted methods that take an
298         Exception argument.
299
300         Note that this differs from the .NET implementation in that
301         we actually raise a signal on error, and set the exception, and in
302         their case no error is ever raised.
303
304         We now call CompleteAsync in the OnXXXCompleted handlers to ensure
305         that the WebClient can be reused immediately by the callback.
306
307         This fixes #350621.
308
309         This also should fix the bug report on IRC where someone
310         complained that they could not "chain" invocations to XXXAsync
311         methods from the OnXXXXCompleted handlers due to the WebClient
312         refusing to work if there was an ongoing operation
313
314 2007-12-24  Miguel de Icaza  <miguel@novell.com>
315
316         * WebClient.cs: Do not validate method to be null, we do not do
317         that in OpenWrite, the detection is done later on.  
318
319         Fixes #350622
320
321 2007-12-16  Miguel de Icaza  <miguel@novell.com>
322
323         * WebClient.cs: Got the arguments in the wrong order, fix
324
325 2007-12-12  Marek Habersack  <mhabersack@novell.com>
326
327         * WebClient.cs: DownloadProgressChanged is available only in the
328         2.0+ profiles.
329
330 2007-12-12  Miguel de Icaza  <miguel@novell.com>
331
332         * WebClient.cs (DownloadFileCore): use longs for the
333         ContentLength, although the other code (loading into a byte array,
334         or a string) still uses ints, the DownloadFileCore should not.
335
336 2007-12-11  Miguel de Icaza  <miguel@novell.com>
337
338         * WebClient.cs: 
339
340         Lots of fixes to get the *Async methods to work.
341         
342         * WebClient.cs: async, new boolean flag, used to track whether we
343         are an async invocation, and if so, we need to invoke some
344         methods. 
345
346         Switch to using System.Threading.Thread instead of the ThreadPool
347         as there is no way with the ThreadPool to abort threads (to
348         implemente CancelAsync). 
349
350         (CompleteAsync): Helper method used to clear the state after an
351         async operation completes, otherwise the WebClient can only be
352         used once. 
353
354         (CancelAsync): Use Thread.Interrupt to signal the thread that we
355         are aborting it (it is a lot milder than Thread.Abort, and we are
356         in no rush to cancel this anyways); Also the documentation states
357         that we need to call the WebRequest.Abort method, so we do that in
358         every Download instance.
359
360         (DownloadDataAsync, DownloadFileAsync, DownloadStringAsync,
361         OpenReadAsync, OpenWriteAsync, UplaodDataAsync, UploadFileAsync,
362         UploadStringAsync): Make signature parameters match MS; use
363         threads instead of threadpool (so we can implement CancelAsync),
364         catch ThreadAbortException here so we can also raise the proper
365         DownloadDataCompleteEventArgs.
366
367         These routines will also call the WebRequest.Abort when
368         appropriate when ThreadInterrupted is used.
369         
370         (ReadAll): Raise DownloadProgressChanged events.
371         
372 2007-12-03  Gert Driesen  <drieseng@users.sourceforge.net>
373
374         * WebClient.cs: Modified argument checks to match MS, and wrap
375         exceptions in a WebException. Fixes bug #343064.
376
377 2007-12-03  Miguel de Icaza  <miguel@novell.com>
378
379         * FtpWebRequest.cs: Applied patch from Jerome Haltom that fixes
380         multi-line responses (after my fix).
381
382         Closes #333978
383
384 2007-11-16  Marek Habersack  <mhabersack@novell.com>
385
386         * HttpWebRequest.cs: when folding a request into a GET one, set
387         content length to 0 and kill the buffers. Fixes bug #327314. Patch
388         from Geoff Norton <gnorton@novell.com>, thanks!
389
390 2007-11-13  Atsushi Enomoto  <atsushi@ximian.com>
391
392         * WebRequest.cs : added missing ImpersonationLevel (NIE).
393         * SecurityProtocolType.cs : not [Serializable] in 2.0.
394         * ServicePoint.cs : no GetHashCode() in 2.0.
395         * WebRequestMethods.cs : fixed wrong STOU.
396         * FileWebResponse.cs : no Dispose(true) in 2.0 API.
397
398 2007-11-08  Jb Evain  <jbevain@novell.com>
399
400         * WebHeaderCollection_2_1.cs: add a custom WebHeaderCollection
401         for the 2.1 profile.
402
403 2007-11-07  Geoff Norton  <gnorton@novell.com>
404
405         * ListenerAsyncResult.cs: Only send the 401 header if our authentication
406         type is Basic or Negotiate (which we default to basic) because that is
407         all we support.  Set the WWW-Authenticate header when we return a 401 
408         result.  Send the correct state object in the async result.
409
410 2007-11-06  Geoff Norton  <gnorton@novell.com>
411
412         * ListenerAsyncResult.cs: If the HttpListener has an authentication
413         scheme, the user should be presented with a 401 without calling the 
414         callback.
415
416 2007-11-04  Miguel de Icaza  <miguel@novell.com>
417
418         * FtpWebRequest.cs (GetResponseStatus): Fix this routine
419         propertly, refactor, and make it follow Mono coding conventions.
420
421 2007-10-30  Jerome Haltom  (wasabi@larvalstage.net)
422
423         * FtpWebRequest.cs: adds support for ftp multiline results, fixes
424         #333978
425
426 2007-10-27  Miguel de Icaza  <miguel@novell.com>
427
428         * HttpListener.cs: Remove more trigger-happy disposed=true from
429         the code;   We should only dispose when the Dispose method is
430         actually called.   Not before.  
431
432         Fixes #337371
433
434         *  HttpListener.cs (Close): Closing does not mean dispose the
435         object.   This allows Start/Stop/Start to be called as many times
436         as desired.
437
438         Fixes #337368
439
440 2007-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
441
442         * FtpWebRequest.cs: Added support for DELETE.
443
444 2007-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
445
446         * WebRequest.cs: Changed serialization ctor to throw NIE on 1.0
447         profile. Cache default proxy, but still allow it to be explicitly set
448         to null. Removed commented code.
449
450 2007-10-14 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
451
452         * WebRequest.cs: DefaultWebProxy allows a null value. Fixes bug #323668.
453
454 2007-09-30  Gert Driesen  <drieseng@users.sourceforge.net>
455
456         * HttpListenerRequest.cs: Do not store 'method' in upper case, but
457         instead use case-insensitive comparison.
458
459 2007-09-30  Gert Driesen  <drieseng@users.sourceforge.net>
460
461         * HttpListenerRequest.cs: Removed dead code. USe String.Length to
462         check for zero-length string. Use instance field for is_chunked, and
463         also set it for GET/HEAD/DELETE. Fixed HasEntityBody to return true
464         when Content-Length > 0, or Transfer-Encoding is chunked.
465
466 2007-09-28  Marek Habersack  <mhabersack@novell.com>
467
468         * HttpListenerRequest.cs: make sure 'method' is always stored in
469         upper case.
470         The DELETE method must not error out on missing Content-Length
471         header (this is the behavior of the MS.NET version of the
472         class). Fixes bug #323215.
473         HasEntityBody should return false when method is GET/HEAD,
474         content_length is less than or equal to zero or the request is
475         chunked. Fixes bug #325296
476
477 2007-08-29  Atsushi Enomoto  <atsushi@ximian.com>
478
479         * IPAddress.cs, IPv6Address.cs : (ToString) output ScopeId.
480
481 2007-08-09  Atsushi Enomoto  <atsushi@ximian.com>
482
483         * HttpWebRequest_2_1.cs, HttpWebResponse_2_1.cs :
484           added new sources for those classes for 2.1 (in 2.1 they are
485           almost abstract, while in 2.0 they are concrete).
486         * HttpRequestCreator.cs, ServicePoint.cs :
487           #ifdef 2.0 dependencies out.
488
489 2007-06-28  Chris Howie  <cdhowie@nerdshack.com>
490
491         * ServicePoint.cs: Implemented BindIPEndPointDelegate.
492         * FtpWebRequest.cs: Respect ServicePoint.BindIPEndPointDelegate.
493         * WebConnection.cs: Respect ServicePoint.BindIPEndPointDelegate.
494
495 2007-08-08  Jb Evain  <jbevain@novell.com>
496
497         * HttpWebRequest.cs: .ctor(Uri) is public in 2.1.
498
499 2007-08-03  Jb Evain  <jbevain@novell.com>
500
501         * Dns.cs: remove async methods for the 2.1 profile.
502
503 2007-07-17  Rodrigo Kumpera  <rkumpera@novell.com>
504
505         * HttpListenerRequest.cs: Support for Cookie decoding.
506         * HttpListenerResponse.cs: Support for encoding cookies on the response sent to the client
507         * Cookie.cs: new internal method to encode the Cookie in a proper form to sent to clients
508
509 2007-07-14 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
510
511         * WebConnectionStream.cs: implement the CanTimeout for 2.0. Fixes
512         bug #81504.
513
514 2007-07-12  Geoff Norton  <gnorton@customerdna.com>
515
516         * HttpListenerContext.cs: 
517         * HttpListener.cs: Handle HttpListener AuthenticationSchemes
518         Only Basic authentication is included for now.
519
520 2007-06-30  Gert Driesen  <drieseng@users.sourceforge.net>
521
522         * NetworkAccess.cs: Only mark as flags enum on 2.0.
523
524 2007-06-21  Dick Porter  <dick@ximian.com>
525
526         * AuthenticationManager.cs: 
527         * FtpWebRequest.cs: 
528         * Cookie.cs: 
529         * ServicePoint.cs: 
530         * WebClient.cs: 
531         * Authorization.cs: 
532         * FileWebRequest.cs: 
533         * HttpWebRequest.cs: 
534         * WebResponse.cs: 
535         * ServicePointManager.cs: 
536         * HttpWebResponse.cs: Throw NotImplementedException indirectly, to
537         reduce noise in Moma reports.
538
539 2007-06-20  Atsushi Enomoto  <atsushi@ximian.com>
540
541         * ServicePointManager.cs : (bootstrap) build fix.
542
543 2007-06-19  Dick Porter  <dick@ximian.com>
544
545         * AuthenticationManager.cs: 
546         * IWebProxyScript.cs: 
547         * Authorization.cs: 
548         * Cookie.cs: 
549         * CookieException.cs: 
550         * CredentialCache.cs: 
551         * FileWebRequest.cs: 
552         * WebRequest.cs: 
553         * FileWebResponse.cs: 
554         * WebResponse.cs: 
555         * FtpWebRequest.cs: 
556         * HttpWebRequest.cs: 
557         * DecompressionMethods.cs: 
558         * HttpWebResponse.cs: 
559         * ProtocolViolationException.cs: 
560         * ServicePoint.cs: 
561         * ServicePointManager.cs: 
562         * WebClient.cs: 
563         * WebException.cs: 
564         * WebHeaderCollection.cs: 
565         * WebProxy.cs: 
566         * WebExceptionStatus.cs: 2.0 profile updates
567
568 2007-05-18  Gert Driesen  <drieseng@users.sourceforge.net>
569
570         * WebConnectionStream.cs: On read timeout, throw WebException with
571         status Timeout instead of IOException.
572
573 2007-05-16  Adar Wesley <adarw@mainsoft.com>
574
575         * CookieCollection.cs: added missing method strongly typed CopyTo.
576
577         * CredentialCache.cs: added missing methods Add, Remove, GetCredential
578
579         * HttpWebRequest.jvm.cs: added missing ClientCertificates getter.
580
581         * ServicePoint.cs: added missing method CloseConnectionGroup.
582
583         * WebClient.cs: added missing methods OnDownloadProgressChanged,
584         OnUploadProgressChanged, GetWebRequest, GetWebResponse
585
586         * WebHeaderCollection.cs: added missing methods IsRestricted, Add,
587         Remove, Set.
588
589         * WebProxy.cs: added missing method GetObjectData.
590
591 2007-05-15  Marek Habersack  <mhabersack@novell.com>
592
593         * HttpWebRequest.cs: fold all methods into GET for
594         redirect/moves. Fixes bug #81624
595
596 2007-05-07  Miguel de Icaza  <miguel@novell.com>
597
598         Missing second part of the patch.
599         
600         * WebHeaderCollection.cs: To be compatible with older versions of
601         Mono that might have serialized this in a different format, catch
602         the potential exception, and try the old name.
603
604         This should become a practice whenever we fix serialization in the
605         future. 
606
607         This is for #81467
608
609 2007-04-23  Marek Habersack  <mhabersack@novell.com>
610
611         * EndPointListener.cs: relax prefix matching to succeed in cases
612         when the prefix ends with / and the request path does not. Fixes
613         bug #80091.
614
615         * CookieCollection.cs: added a SortByPath method to sort the
616         collection on demand.
617
618         * Cookie.cs: do not return "/" for Path if it wasn't set
619         explicitly.
620
621         * CookieContainer.cs: set cookie path only if its version is
622         "Netscape" and is null or empty. Fixes #81420.
623         Sort the collection by the path relevance before returning from
624         the GetCookies method. Fixes bug #81421.
625
626 2007-04-17  Joel Reed  <joelwreed@gmail.com>
627
628         * WebHeaderCollection.cs: www-authenticate should be multivalue.
629         This fixes a bug related to RFC 2608 which says in section
630         "15.2 Offering a Choice of Authentication Schemes"
631
632         An HTTP/1.1 server may return multiple challenges with a 401
633  (Authenticate) response, and each challenge may use a different
634         scheme.  The order of the challenges returned to the user agent is in
635         the order that the server would prefer they be chosen. The server
636         should order its challenges with the "most secure" authentication
637         scheme first. A user agent should choose as the challenge to be made
638         to the user the first one that the user agent understands.
639
640         Before this change, mono was choosing whatever was sent last,
641         which was the most insecure authentication option.
642         
643 2007-04-10  Marek Habersack  <mhabersack@novell.com>
644
645         * HttpListenerRequest.cs: do not include the query start marker
646         ('?') in the first variable name stored in the QueryString
647         collection. There is no HTTP header 'Accept-Types' in the
648         standard, there's only the 'Accept' header that specifies the
649         accepted MIME types. Fixes bug #81317
650
651 2007-03-25 Alan McGovern <alan.mcgovern@gmail.com>
652
653         * IPAddress.cs : Further optimisation for the Swap*** methods.
654
655 2007-03-24 Alan McGovern <alan.mcgovern@gmail.com>
656
657         * IPAddress.cs : Optimised the SwapInt and SwapLong methods.
658
659 2007-03-09  Miguel de Icaza  <miguel@novell.com>
660
661         * FtpDataStream.cs: Close must be called on the stream before we
662         attempt to read a status code from the remote server.
663
664         Fixes FTP transfers to complete. 
665
666 2007-03-05 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
667
668         * HttpWebRequest.cs: properly handle OPTIONS, which may or may not
669         have a request body. Fixes bug #80686.
670
671 2007-03-02  Marek Habersack  <mhabersack@novell.com>
672
673         * WebClient.cs: Overwrite existing files on download, as
674         documented and as tested on MS.NET. Fixes Bug#81005
675
676 2007-02-24  Gert Driesen  <drieseng@users.sourceforge.net>
677
678         * HttpWebRequest.cs: Allow Proxy to be set to null on 2.0 profile.
679
680 2007-02-18  Geoff Norton  <gnorton@customerdna.com>
681
682         * AuthenticationManager.cs: Register the modules in the 2.0 profile
683         when we create the ArrayList.
684
685 2007-02-01  Gert Driesen  <drieseng@users.sourceforge.net>
686
687         * WebProxy.cs: In IsBypassed, move address check back to satify unit
688         tests.
689
690 2007-01-30  Ilya Kharmatsky <ilyak -at- mainsoft.com>
691
692         * Dns.cs : implemented proper exception handling under TARGET_JVM
693         when trying to resolve not existing host.
694
695 2007-01-28  Gert Driesen  <drieseng@users.sourceforge.net>
696
697         * IPAddress.cs: Provide more meaningful exception message on 2.0
698         profile.
699
700 2007-01-28  Gert Driesen  <drieseng@users.sourceforge.net>
701
702         * FileWebRequest.cs: Fixed PreAuthenticate and Proxy properties to
703         no longer throw NotSupportedException. No longer store ContentLength
704         in headers. Do not allow null or zero-length method. Allow timeout
705         to be set to -1 (infine). Only disallow GET, HEAD and CONNECT requests.
706         Removed workarounds for bug #24943. In (Begin)GetRequest overwrite
707         file if it already exists. Binary serialization compatibility fixes.
708         * FileWebResponse.cs: Return application/octet-stream as ContentType.
709
710 2007-01-28  Gert Driesen  <drieseng@users.sourceforge.net>
711
712         * WebHeaderCollection.cs: Fixed binary serialization compatibility 
713         with MS.
714
715 2007-01-28  Gert Driesen  <drieseng@users.sourceforge.net>
716
717         * WebProxy.cs: Lazy init bypassList. Fixes for binary serialization
718         compatibility. Added stub for UseDefaultCredentials (2.0). On 2.0
719         profile, throw ArgumentNullException in IsBypassed if host is null.
720
721 2007-01-22  Miguel de Icaza  <miguel@novell.com>
722
723         * HttpWebRequest.cs: Remove unused variable.
724
725         * FtpWebRequest.cs: Remove unused variable.
726
727         * WebHeaderCollection.cs: Remove a handful of NotImplementedException's
728
729 2007-01-11  Miguel de Icaza  <miguel@novell.com>
730
731         * HttpListenerRequest.cs (SetRequestLine): Add validation for the
732         verbs. 
733
734         Allow any verbs to go through, not only
735         the white list of verbs.
736
737         Fixes: 80504
738
739 2007-01-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
740
741         * RequestStream.cs: initialize the stream in both ctors. Fixes a couple
742         of unit tests.
743
744 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
745
746         * HttpWebRequest.jvm.cs: Fixed line endings.
747         * HttpWebResponse.jvm.cs: Same.
748         * WebException.cs: Same.
749         * FtpWebRequest.cs: Same.
750         * VMWHttpProvider.jvm.cs: Same.
751
752 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
753
754         * DnsPermissionAttribute.cs: Fixed line endings.
755         * HttpVersion.cs: Same.
756         * FtpWebResponse.cs: Same.
757         * HttpContinueDelegate.cs: Same.
758         * FtpAsyncResult.cs: Same.
759         * EndpointPermission.cs: Same.
760         * IPv6Address.cs: Same.
761         * FtpDataStream.cs: Same.
762         * SocketPermission.cs: Same.
763         * FileWebRequest.cs: Same.
764         * FileWebResponse.cs: Same.
765         * DnsPermission.cs: Same.
766         * ProtocolViolationException.cs: Same.
767         * MonoHttpDate.cs: Same.
768         * SocketPermissionAttribute.cs: Same.
769         * CookieException.cs: Same.
770         * WebResponse.cs: Same.
771         * DefaultCertificatePolicy.cs: Same.
772
773 2006-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
774
775         * IPAddress.cs: On 1.1, 4-byte addresses are not supported in the 
776         ctor. Added null checks for the address passed in the ctors.
777
778 2006-12-28  Miguel de Icaza  <miguel@novell.com>
779
780         * IPAddress.cs: The condition in 1.1 was broken, it only allowed
781         16-byte addresses, and never 4-byte addresses (only 2.0 had
782         them).  
783
784         Keep a single code path.
785
786         Also, remove all the NET_1_1 defines, we realistically only
787         distinguish between 1.1 and 2.0, we wont likely support 1.0, 1.1
788         and 2.0, so remove the 1.0 vs 1.1 conditionals.
789
790         Fixes 76792
791         
792 〓2006-12-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
793
794         * WebConnectionStream.cs: fix error in my last patch. Thanks to Felipe
795         Almeida.
796
797 2006-12-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
798
799         * WebConnection.cs:
800         * HttpWebRequest.cs:
801         * WebConnectionStream.cs: detect errors writing headers earlier and
802         avoid race that showed up with SSL. Fixes bug #80234.
803
804 2006-12-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
805
806         * EndPointListener.cs:
807         * ListenerPrefix.cs:
808         * ResponseStream.cs:
809         * ChunkedInputStream.cs:
810         * HttpConnection.cs:
811         * RequestStream.cs: add initial support for HTTPS.
812
813 2006-12-18  Atsushi Enomoto  <atsushi@ximian.com>
814
815         * FtpStatus.cs : The build gets broken when only-2.0 classes/members
816           are not excluded in 1.x build.
817
818 2006-12-18  David Elkind  <davide@mainsoft.com>
819
820         * FtpAsyncResult.cs : FTP request is now working and covers about 100% of .NET API
821         * FtpDataStream.cs: FTP request is now working and covers about 100% of .NET API
822         * FtpWebRequest.cs: FTP request is now working and covers about 100% of .NET API
823         * FtpWebResponse.cs: FTP request is now working and covers about 100% of .NET API
824         * FtpStatus.cs: added composite status (includes status code and status description)
825
826 2006-12-04  Konstantin Triger  <kostat@mainsoft.com>
827
828         * WebRequest.cs, WebResponse.cs: TARGET_JVM limitation workaround.
829
830 2006-12-04  Konstantin Triger  <kostat@mainsoft.com>
831
832         * ServicePointManager.cs: correct assignment typo.
833         * ServicePoint.cs: Remove unneeded locks for getters, add internal setter.
834
835 2006-11-27  Miguel de Icaza  <miguel@novell.com>
836
837         * WebRequest.cs: Instead of throwing NotImplemented exceptions,
838         call GetMustImplement, that way we do not need the whitelist, and
839         we save a handful of opcodes.
840
841 2006-11-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
842
843         * HttpWebRequest.cs: add 2 more methods that are not supposed to have
844         a body. Fixes bug #80001.
845
846 2006-11-15  Andrew Skiba  <andrews@mainsoft.com>
847
848         * WebHeaderCollection.cs: add stubs for new 2.0 properties.
849
850 2006-11-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
851
852         * HttpWebResponse.cs: cookies are actually added to the request
853         container if any. Fixes bug #79821.
854
855 2006-11-02  Michael Hutchinson  <m.j.hutchinson@gmail.com>
856
857         * WebRequest.cs: more closely follow MS behaviour: use system settings 
858           unless told otherwise, and respect app.config.
859
860 2006-11-01  Michael Hutchinson  <m.j.hutchinson@gmail.com>
861
862         * GlobalProxySelection.cs: Obsolete GlobalProxySelection under 2.0 
863           profile, and move code to new property WebRequest.DefaultWebProxy.
864         * WebRequest.cs: Implement new 2.0 property DefaultWebProxy.
865           Add support for config option UseSystemDefault using simplistic
866           implementation of new 2.0 method GetSystemWebProxy ().
867
868 2006-10-30  Atsushi Enomoto  <atsushi@ximian.com>
869
870         * FtpWebRequest.cs : more build fixes.
871
872 2006-10-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
873
874         * EndPointListener.cs: update comment and avoid exception when the
875         program is exiting.
876
877 2006-10-30  Miguel de Icaza  <miguel@novell.com>
878
879         * WebRequestMethods.cs: Another typo fix.
880
881         * ServicePointManager.cs: Set the default properly.
882
883         * SecurityProtocolType.cs: Remove non-existant defines. 
884
885 2006-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
886
887         * HttpWebRequest.cs: internally allow buffer if it's not a known
888         GET-only method instead of enabling that only for POST/PUT. Fixes bug
889         #79595.
890
891 2006-09-28 Andrew Skiba <andrews@mainsoft.com>
892
893         * WebConnection.cs: TARGET_JVM
894
895 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
896
897         * WebException.cs: patch by Andrew Skiba that fixes serialization
898         compatibility with .NET and the default value for status.
899
900 2006-09-28  Andrew Skiba <andrews@mainsoft.com>
901
902         * Dns.cs: TARGET_JVM
903
904 2006-09-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
905
906         * CookieContainer.cs: send the cookies from the collection we got for
907         the given URI, not the whole collection.
908         * HttpWebResponse.cs: only add the cookies to this instance, not to the
909         cookie container set in the request.
910
911 2006-09-11  Sebastien Pouliot  <sebastien@ximian.com>
912
913         * WebConnection.cs: Patch to remove the hack that was required for 
914         using the older versions of the SSL/TLS classes. This hack is no more
915         required :-). Patch by Gonzalo Paniagua Javier.
916
917 2006-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
918
919         * HttpConnection.cs: when the content length is available, keep it
920         updated after synchronous read. Renamed 'available' to 'remaining_body'.
921         * RequestStream.cs: when creating the stream, pass the remaining length
922         starting from the offset in the buffer.
923
924 2006-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
925
926         * RequestStream.cs: make sure we return 0 when no more bytes left.
927         Paticularly, when we have a content length and the whole response is
928         buffered.
929
930 2006-08-20  Miguel de Icaza  <miguel@novell.com>
931
932         * RequestStream.cs (Read): A bug fix for #79112 and what I
933         consider to be an important change.
934
935         The bug fix is that we update the "available" variable as soon as
936         we consume data from Read, this means that a second call into Read
937         wont block.   Available was only being updated on a secondary code
938         path, now we alwaysupdate it after using FillFromBuffer.
939
940         The second component is what I believe the right behavior should
941         be.  There was a check for "if count > available" that set count
942         to available in that case.   The idea was to limit the data read
943         from the buffer that belonged to this particular request, to allow
944         pipelining. 
945
946         But this test was done after FillFromBuffer, which assumed that
947         all the data held in the buffer (the one used by FillFromBuffer)
948         must belong to the this request, and only future data did not.
949
950         I think my change is correct, but it assumes that the initialized
951         RequestStream will be used for other pipelined HTTP requests,
952         which is not something am 100% sure of, so Gonzalo needs to check
953         this. 
954
955 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
956
957         * Cookie.cs: avoid nullref in GetHashCode and Equals.
958
959 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
960
961         * CookieCollection.cs:
962         * CookieContainer.cs: remove expired cookies.
963
964 2006-07-07  Atsushi Enomoto  <atsushi@ximian.com>
965
966         * Dns.cs : (GetHostEntry) when passed IP addresses, it does not issue
967           query to DNS. Patch by Petri Latvala.
968
969 2006-07-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
970
971         * CookieContainer.cs: don't send a secure cookie over an insecure
972         channel.
973
974 2006-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
975
976         * WebProxy.cs: (IsBypassed) 'loopback', 'localhost' and any address
977         that starts with 127 are special.
978
979 2006-05-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
980
981         * HttpListener.cs: Fixes race condition in BeginGetContext. Patch by
982         Pawel Sakowski that fixes bug #78365.
983
984 2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>
985
986         * ServicePointManager.cs : oops, CONFIGURATION_DEP.
987
988 2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>
989
990         * GlobalProxySelection.cs : if corresponding config section is
991           DefaultProxySection then use it.
992
993 2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>
994
995         * WebRequest.cs : if corresponding config section is
996           WebRequestModulesSection then use it.
997
998 2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>
999
1000         * ServicePointManager.cs : if corresponding config section is
1001           ConnectionManagementSection then use it.
1002
1003 2006-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1004
1005         * ResponseStream.cs:
1006         * HttpListenerResponse.cs: allow 0 length POST. Patch by Horst Reiterer.
1007         Closes bug #78316.
1008
1009 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1010
1011         * CredentialCache.cs: added DefaultNetworkCredentials.
1012
1013 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1014
1015         * NetworkCredential.cs: implement ICredentialsByHost interface.
1016
1017 2006-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1018
1019         * WebConnection.cs: reset the challenge and the status code when
1020         creating the tunnel and sending the proxy auth. headers. Improve error
1021         message when there's an error creating the tunnel.
1022         * HttpWebRequest.cs: don't trigger an early throw for a POST that gets
1023         a 401 or 407 response.
1024
1025 2006-04-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1026
1027         * WebConnectionData.cs:
1028         * WebConnection.cs:
1029         * HttpWebRequest.cs: when tunneling an ssl conneciton through a proxy,
1030         we were not handling a proxy authentication request. Fixes bug #78150
1031         take 2.
1032
1033 2006-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1034
1035         * WebProxy.cs: a .ctor was not forwarding the 'credentials' argument.
1036         This fixes bug #78150. Also fix the bypass check for local requests.
1037
1038 2006-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1039
1040         * WebProxy.cs: removed bogus ^M.
1041
1042 2006-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1043
1044         * HttpWebResponse.cs: don't remove the Set-Cookie headers. Fixes bug
1045         #78028.
1046
1047 2006-04-04  Atsushi Enomoto  <atsushi@ximian.com>
1048
1049         * WebClient.cs : added a bunch of async method support.
1050
1051 2006-04-03  Chris Toshok  <toshok@ximian.com>
1052
1053         * HttpWebResponse.cs (ContentEncoding): return "" if the header
1054         isn't present.
1055
1056 2006-03-30  Atsushi Enomoto  <atsushi@ximian.com>
1057
1058         * DownloadStringCompletedEventHandler.cs : missing delegate.
1059
1060 2006-03-30  Atsushi Enomoto  <atsushi@ximian.com>
1061
1062         * Dns.cs : minor argument renaming.
1063
1064 2006-03-28  Atsushi Enomoto  <atsushi@ximian.com>
1065
1066         * DownloadDataCompletedEventArgs.cs
1067           DownloadDataCompletedEventHandler.cs
1068           DownloadProgressChangedEventArgs.cs
1069           DownloadProgressChangedEventHandler.cs
1070           DownloadStringCompletedEventArgs.cs
1071           OpenReadCompletedEventArgs.cs
1072           OpenReadCompletedEventHandler.cs
1073           OpenWriteCompletedEventArgs.cs
1074           OpenWriteCompletedEventHandler.cs
1075           UploadDataCompletedEventArgs.cs
1076           UploadDataCompletedEventHandler.cs
1077           UploadFileCompletedEventArgs.cs
1078           UploadFileCompletedEventHandler.cs
1079           UploadProgressChangedEventArgs.cs
1080           UploadProgressChangedEventHandler.cs
1081           UploadStringCompletedEventArgs.cs
1082           UploadStringCompletedEventHandler.cs
1083           UploadValuesCompletedEventArgs.cs
1084           UploadValuesCompletedEventHandler.cs : added 2.0 types.
1085
1086 2006-03-28  Atsushi Enomoto  <atsushi@ximian.com>
1087
1088         * Dns.cs : filled missing NET_2_0 members.
1089
1090 2006-03-28  Atsushi Enomoto  <atsushi@ximian.com>
1091
1092         * IPAddress.cs : ugh, I was testing with run-test-ondotnet, not
1093           run-test. Those IPv6 properties needed to be reimplemented.
1094
1095 2006-03-27  Atsushi Enomoto  <atsushi@ximian.com>
1096
1097         * IPAddress.cs : added NET_2_0 TryParse() and IPv6 related properties.
1098
1099 2006-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1100
1101         * WebConnectionStream.cs: avoid Begin/EndWrite when the body length is
1102         zero.
1103
1104 2006-03-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1105
1106         * HttpWebRequest.cs: send the request if ContentLength is set for
1107         POST/PUT, the request stream has that exact amount of bytes in it and
1108         we're trying to get the response stream.
1109
1110         This way, closing the request stream is not needed in order to actually
1111         send the request. Fixes bug #77753.
1112
1113         * WebConnectionStream.cs: throw if the number of bytes written is
1114         greater than the specified request content length.
1115
1116 2006-03-11  Miguel de Icaza  <miguel@novell.com>
1117
1118         * WebClient.cs: Only expose the right methods to avoid warnings. 
1119
1120         * FtpDataStream.cs (Dispose): Fix signature.
1121
1122         * FtpWebResponse.cs: Comment out keepAlive field (unused, sounds
1123         like we are missing features here).
1124
1125         * IPAddress.cs: Move m_HashCode property to the end, and set
1126         pragmas to disable warnings.
1127
1128 2006-02-16  Dick Porter  <dick@ximian.com>
1129
1130         * IPEndPoint.cs: The SocketAddress AddressFamily takes up the
1131         first two bytes, not just one.  Check the size of the
1132         SocketAddress buffer for IPv6 as well.
1133
1134         * Dns.cs: Cope when GetHostByName_internal or
1135         GetHostByAddr_internal returns fewer items in the array than it
1136         intended to (maybe due to conversion errors.)
1137
1138 2006-02-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1139
1140         * FtpWebResponse.cs: Add UpdateStatus method, to update both
1141         statusCode and statusDescription at the same time. 
1142
1143 2006-02-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1144
1145         * FtpWebRequest.cs: Remove WebExceptionStatus argument
1146         from CreateExceptionFromResponse, since exceptions gotten
1147         from server response always have a WebExceptionStatus.ProtocolError
1148         value.
1149         
1150 2006-02-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1151
1152         * FtpWebRequest.cs: Add renaming support when using 
1153         WebRequestMethods.Ftp.Rename method.
1154         
1155 2006-02-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1156
1157         * ChunkedInputStream.cs:
1158         * ChunkStream.cs: handle partial trailers and zero reads. Patch by Pawel
1159         Sakowski.
1160
1161 2006-02-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1162
1163         * HttpWebRequest.cs: don't send the expect-100 if if there's no content.
1164
1165         * HttpListenerRequest.cs:
1166         * HttpConnection.cs:
1167         * RequestStream.cs: use the content length header to avoid reading past
1168         the end of the stream.
1169
1170         Patch by Horst Reiterer.
1171
1172 2006-02-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1173
1174         * FtpWebRequest.cs: Add supportedCommands array with the sorted
1175         methods, to search using Array.BinarySearch. Remove CheckMethod.
1176
1177 2006-02-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1178
1179         * FtpWebRequest.cs: Fixed some typos and small issues.
1180         
1181 2006-02-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1182
1183         * HttpWebRequest.cs: dummy implementation of UnsafeAuthenticationBlah
1184         property.
1185
1186 2006-02-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1187
1188         * FtpRequestCreator.cs: 
1189         * FtpAsyncResult.cs:
1190         * FtpDataStream.cs:
1191         * FtpWebRequest.cs:
1192         * FtpWebResponse.cs: Initial implementation of FtpWebRequest (2.0)
1193         
1194 2006-02-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1195
1196         * FtpStatusCode.cs: Fix a typo.
1197         
1198 2006-01-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1199
1200         * WebClient.cs: (2.0) UploadString() returns string, not void.
1201
1202 2006-01-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1203
1204         * HttpWebResponse.cs: ignore non-integer values for max-age and version.
1205         Fixes bug #77199. Thanks to Cyrille Colin.
1206
1207 2006-01-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1208
1209         * HttpWebResponse.cs: cope with malformed cookies with '=' as value.
1210         Patch by Cyrille Colin. Fixes bug #77179.
1211
1212 2005-12-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1213
1214         * FtpStatusCode.cs: New 2.0 enum.
1215
1216 2005-12-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1217
1218         * CookieContainer.cs: fix matching of subdomains. Patch by Cyrille
1219         Colin.
1220
1221 2005-12-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1222
1223         * HttpWebResponse.cs: don't loop forever when no name or value between
1224         semicolons. Fixes bug #76943.
1225
1226 2005-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1227
1228         * HttpWebResponse.cs: don't fail if the cookie ends with a 'name'
1229         without a value. Fixes bug #76922.
1230
1231 2005-11-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1232
1233         * EndPointListener.cs:
1234         * HttpListenerRequest.cs: don't require the Host header for 1.0. Just
1235         map that to the '*' or '+' host.
1236
1237 2005-11-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1238
1239         * IPAddress.cs: the byte[] ctor supports length 4 in .NET 2.0.
1240         Fixes bug #76792.
1241
1242 2005-11-21 Senganal T   <tsenganal@novell.com>
1243
1244         * Dns.cs : corrected a mistake in GetHostEntry ()
1245
1246 2005-11-21 Senganal T   <tsenganal@novell.com>
1247
1248         * Dns.cs : added GetHostEntry() method for 2.0 api conformance
1249
1250 2005-11-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1251
1252         * HttpRequestHeader.cs: add missing values.
1253
1254 2005-11-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1255
1256         * HttpListenerPrefixCollection.cs:
1257         * HttpWebResponse.cs:
1258         * Dns.cs:
1259         * HttpListenerRequest.cs:
1260         * HttpWebRequest.cs:
1261         * HttpListenerResponse.cs: a few signature fixes for 2.0.
1262
1263 2005-11-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1264
1265         * HttpListenerPrefixCollection.cs:
1266         * EndPointListener.cs:
1267         * HttpStreamAsyncResult.cs:
1268         * HttpListenerContext.cs:
1269         * HttpListenerBasicIdentity.cs:
1270         * AuthenticationSchemeSelector.cs:
1271         * HttpListener.cs:
1272         * WebHeaderCollection.cs:
1273         * ListenerPrefix.cs:
1274         * HttpListenerException.cs:
1275         * HttpResponseHeader.cs:
1276         * EndPointManager.cs:
1277         * HttpListenerRequest.cs:
1278         * HttpRequestHeader.cs:
1279         * BindIPEndPoint.cs:
1280         * ResponseStream.cs:
1281         * ChunkedInputStream.cs:
1282         * HttpStatusCode.cs:
1283         * ListenerAsyncResult.cs:
1284         * ChunkStream.cs:
1285         * HttpConnection.cs:
1286         * HttpUtility.cs:
1287         * HttpListenerResponse.cs:
1288         * RequestStream.cs: initial implementation of HttpListener. There are
1289         a few TODOs left (cookies, HTTPS) but almost everything else is in.
1290
1291 2005-11-15  Sebastien Pouliot  <sebastien@ximian.com>
1292
1293         * IPv6Address.cs: Added on overload to ToString to get a the full 
1294         length address returned (as required by System.Uri).
1295
1296 2005-11-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1297
1298         * WebRequestMethods.cs: New 2.0 class.
1299         
1300 2005-11-05  Atsushi Enomoto  <atsushi@ximian.com>
1301
1302         * WebClient: use POST for DownloadData(). Fixed bug #76631.
1303
1304 2005-10-26  Atsushi Enomoto  <atsushi@ximian.com>
1305
1306         * AuthenticationSchemes.cs : Fixed enum values and added [Flags].
1307
1308 2005-10-19  Atsushi Enomoto  <atsushi@ximian.com>
1309
1310         * WebClient.cs : added net_2_0 DownloadString() and DownloadData()
1311           with HTTP method as well.
1312
1313 2005-10-19  Atsushi Enomoto  <atsushi@ximian.com>
1314
1315         * WebClient.cs : added UploadString() and Encoding (net_2_0). Added
1316           some new overloaded stuff that takes Uri instead of string address.
1317
1318 2005-10-17  Sebastien Pouliot  <sebastien@ximian.com> 
1319
1320         * ICredentialPolicy.cs: New. Interface for 2.0.
1321
1322 2005-10-05  Atsushi Enomoto  <atsushi@ximian.com>
1323
1324         * AuthenticationSchemes.cs : new 2.0 enum.
1325
1326 2005-08-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1327
1328         * GlobalProxySelection.cs: remove double lock.
1329         * HttpWebRequest.cs: remove double lock in GetServicePoint() and use
1330         a private object when locking.
1331
1332 2005-07-15  Miguel de Icaza  <miguel@novell.com>
1333
1334         * DigestClient.cs: Fix bug #75556, the qop argument must be
1335         quoted, per http://www.faqs.org/rfcs/rfc2617.html section
1336         `quo-options'.
1337
1338 2005-07-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1339
1340         * WebConnectionStream.cs: initiate writing the body before trying to
1341         read. This fixes the performance problems observed in web services.
1342         Closes bug #75455.
1343
1344 2005-06-27  Lluis Sanchez Gual <lluis@novell.com>
1345
1346         * IPAddress.cs: Changed field names for the sake of serialization
1347         interoperability with MS.NET.
1348         
1349 2005-06-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1350
1351         * WebConnection.cs: if cnc.EndRead throws, mark the asyncresult as done.
1352         * WebConnectionStream.cs: if we're done with the body of a chunk, don't
1353         require the next chunk header to be there, as some servers might close
1354         the connection (while also sending 'Connection: close').
1355
1356 2005-06-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1357
1358         * HttpWebRequest.cs: MS implementation follows redirects for POST. Seems
1359         to me that this is against 10.3.3 in RFC 2616, but may be the user
1360         'authorization' to do this is implicit in AllowAutoRedirect...
1361
1362 2005-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1363
1364         * WebConnection.cs: SslClientStream.BeginRead might not be asynchronous
1365         if there's no record available to read. This is a workaround that makes
1366         the call to BeginRead itself asynchronous. Fixes bug #75342.
1367
1368 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1369
1370         * WebConnection.cs:
1371         * HttpWebRequest.cs:
1372         * WebConnectionStream.cs: initiate the polling for input data after
1373         sending the header so that we detect any response that the server sends
1374         back even if we're still trying to write the request for a POST/PUT.
1375         If we get the response (or an error) before any one calls GetResponse(),
1376         keep it around instead of ignoring it.
1377
1378 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1379
1380         * HttpWebRequest.cs: send the right header/user/password in
1381         PreAuthenticate in presence of a proxy.
1382
1383 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1384
1385         * IPv6Address.cs: fix IsLoopback. Closes bug #75128.
1386
1387 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1388
1389         * IPv6Address.cs: don't do extra check on ipv4 if this is a ipv6
1390         address. Fixes bug #75125.
1391
1392 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1393
1394         * ServicePointManager.cs: when going through a proxy, use 2 different
1395         service points depending on the scheme. Fixes bug #75135.
1396
1397 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1398
1399         * Dns.cs: don't parse the address when it comes from an IPAddress.
1400
1401 2005-05-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1402
1403         * WebConnection.cs: prevent 2 nullrefs when the aborting during
1404         Connect() and reset the status to Success before starting a new
1405         request.
1406
1407 2005-05-19  Sebastien Pouliot  <sebastien@ximian.com>
1408
1409         * WebRequest.cs: Throw NotImplementedException (not NotSupported
1410         Exception) for stuff that should have been abstract. No exception
1411         is thrown by the serialization constructor.
1412
1413 2005-05-04 James Willcox  <james@ximian.com>
1414
1415         * DigestClient.cs: convert to a hex string with "X8" consistently
1416         for nc-value
1417
1418 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1419
1420         * WebConnection.cs: don't rethrow errors in Write, as the error will be
1421         received by GetResponse*. The result is that the threadpool thread doing
1422         this will not end up printing the exception. Fixes bug #74817.
1423
1424 2005-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1425
1426         * ServicePoint.cs: HostEntry needs to be thread safe.
1427
1428 2005-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1429
1430         * WebConnection.cs: removed a 'slightly' important line by mistake.
1431         * WebConnectionStream.cs: if the transfer encoding is chunked, ignore
1432         content-length header if present.
1433
1434 2005-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1435
1436         * WebConnection.cs: no need to use an AutoResetEvent.
1437         * WebConnectionStream.cs: don't start any more reads on the socket
1438         after getting a 0 signalling the end. This fixes Ben's infamous foo.cs
1439         test.
1440
1441 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1442
1443         * BasicClient.cs: firefox/IE just send latin1, stripping the high byte
1444         from unicode >= 256 characters.
1445
1446 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1447
1448         * BasicClient.cs: use latin1 when encoding the username/domain/password.
1449         Fixes bug #74745.
1450
1451 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1452
1453         * WebConnectionStream.cs: if the BeginRead/BeginWrite is completed
1454         synchronously, no need to create the ManualResetEvent to wait on.
1455
1456 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1457
1458         * WebConnectionStream.cs: call SetComplete in EndWrite when we're not
1459         buffering the request body. Fixes bug #74637.
1460
1461         * WebAsyncResult.cs: renamed field.
1462
1463 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1464
1465         * WebConnectionStream.cs:
1466         * WebAsyncResult.cs: ensure we only call EndRead once per async. result.
1467         Update total before invoking the callback when present.
1468
1469 2005-04-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1470
1471         * WebConnection.cs:
1472         * WebConnectionStream.cs: don't start reading until we've sent at least
1473         the headers. This way we ensure that a Write happens before any Read,
1474         which is needed by the SSL code.
1475
1476 2005-04-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1477
1478         * HttpWebRequest.cs: ensure we read everything before redirecting.
1479
1480 2005-04-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1481
1482         * WebConnectionStream.cs: provide a default callback when doing async.
1483         read/write and waiting for a timeout so that the callback sets the
1484         event and we don't block forever. Fixes bug #74539 take 3.
1485
1486 2005-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1487
1488         * WebConnection.cs:
1489         * HttpWebRequest.cs: now Abort() works properly. Fixes bug #74177.
1490
1491 2005-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1492
1493         * WebConnection.cs: fix some breakage from my last patch.
1494         * WebConnectionStream.cs: invoke the callback when done even in EndRead.
1495
1496 2005-04-10  Sebastien Pouliot  <sebastien@ximian.com>
1497
1498         * WebConnection.cs: Added support for TrustFailure when throwing a
1499         WebException. Fix bug #74286.
1500
1501 2005-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1502
1503         * HttpWebRequest.cs: 
1504         * WebConnectionStream.cs: implemented support for ReadWriteTimeout.
1505
1506 2005-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1507
1508         * WebConnection.cs: if we're reading chunked data and didn't use the
1509         stream to read, we gotta set the async. result as complete and invoke
1510         the callback. Don't call nstream.EndRead with the wrong IAsyncResult.
1511
1512         * WebConnectionStream.cs: in EndRead, pass the correct IAsyncResult to
1513         cnc.EndRead. Lock on a field instead of 'this'.
1514
1515 2005-04-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1516
1517         * HttpWebRequest.cs: throw the exception if we got an error, as now
1518         it's catched in the redirection handling code.
1519
1520 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1521
1522         * HttpWebRequest.cs: moved redirection handling to a proper place.
1523
1524 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1525
1526         * WebHeaderCollection.cs: added if-modified-since to the list of
1527         restricted headers.
1528
1529         * ServicePoint.cs: use a field object when locking.
1530
1531 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1532
1533         * WebConnectionStream.cs: ForceCompletion actually calls NextRead. No
1534         need to wait for a Close/ReadAll when we have no content.
1535
1536 2005-04-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1537
1538         * NtlmClient.cs: fix typo in assembly name.
1539
1540 2005-03-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1541
1542         * CookieContainer.cs: adding to a CookieCollection might not increment
1543         the number of items if the cookie is replaced. Now Count works properly.
1544         Fixed an array index exception (typo).
1545
1546         * CookieCollection.cs: also compare the version.
1547
1548         * HttpWebResponse.cs: when we have cookies, add them to the request
1549         container.
1550
1551         * HttpWebRequest.cs: changed last parameter of HttpWebResponse ctor.
1552
1553 2005-03-30  Miguel de Icaza  <miguel@novell.com>
1554
1555         * Cookie.cs: Compare using the InvariantCulture, to match the
1556         behavior of CookieContainer that already did this.
1557
1558 2005-03-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1559
1560         * WebConnection.cs: we don't need to trigger the next queued request
1561         until the response is closed.
1562
1563 2005-03-29  Miguel de Icaza  <miguel@novell.com>
1564
1565         * HttpWebResponse.cs: Handle quotations in the cookies values, per
1566         the spec http://www.faqs.org/rfcs/rfc2109.html, it is allowed to
1567         have quotations.
1568
1569 2005-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1570
1571         * BasicClient.cs:
1572         * DigestClient.cs: check that GetCredential() does not return null.
1573
1574 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1575
1576         * BasicClient.cs: ensure credentials are not null.
1577
1578 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1579
1580         * HttpWebResponse.cs: moved cookie parsing into its own class.
1581         * WebHeaderCollection.cs: remove (probably bogus) GetMultipleValues
1582         call.
1583         * HttpWebRequest.cs: don't let exception raised in the ctor of
1584         HttpWebResponse vanish.
1585
1586         Fixes bug #73275.
1587
1588 2005-03-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1589
1590         * WebHeaderCollection.cs: handle commas inside quotes when splitting
1591         a multi-value header. Fixes bug #73151.
1592
1593 2005-02-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1594
1595         * DigestClient.cs: fix for digest auth. and URIs containing query. Patch
1596         by James Wilcox. Fixes bug #72571.
1597
1598 2005-02-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1599
1600         * HttpWebResponse.cs:
1601         * WebConnection.cs:
1602         * HttpWebRequest.cs:
1603         * WebConnectionStream.cs: don't read the entire response unless the
1604         user requests it. Fixes bug #72443.
1605
1606 2005-02-08  Zoltan Varga  <vargaz@freemail.hu>
1607
1608         * IPv6Address.cs: Fix endianess problems.
1609
1610         * IPAddress.cs: Fix misleading comments.
1611
1612 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1613
1614         * HttpWebRequest.cs: send the headers when we're supposed to write
1615         a POST/PUT but call GetResponse before GetRequestStream.
1616
1617         * WebConnectionStream.cs: new RequestWritten property.
1618
1619 2005-01-20  Jonathan Pryor  <jonpryor@vt.edu>
1620
1621         * EndpointPermission.cs: Fix IsSubsetof(hostname) so that the regression 
1622           tests work.  In particular, IsSubsetOf ("12.13.*.*", "12.13.14.*") failed
1623           because 14 wasn't a subset of * (which it is).  Fix: if part1 is we 
1624           continue to the next portion.
1625
1626 2005-01-20  Jonathan Pryor  <jonpryor@vt.edu>
1627
1628         * IPAddress.cs (ParseIPV4): Fix so that the regression tests work.  In
1629           particular, " foo" and ".1.1.6" weren't being caught (" foo" because it
1630           started with a space, and ".1.1.6" because the split string accepted a
1631           0-length portion, which would make 1...6 valid, but isn't valid based on
1632           similar test cases).
1633
1634 2005-01-20  Jonathan Pryor  <jonpryor@vt.edu>
1635
1636         * WebHeaderCollection.cs: Fix GetValues(string) to split the values on
1637           commas if the header is a Multi-Value header.  This matches
1638           MonoTests.System.Net.WebHeaderCollectionTest.
1639
1640 2005-01-19  Sebastien Pouliot  <sebastien@ximian.com>
1641
1642         * WebPermissionAttribute.cs: Fixed NET_1_1 behaviour.
1643
1644 2004-12-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1645
1646         * WebConnectionStream.cs: remove unneeded check. Write detects and
1647         triggers the exception now.
1648
1649 2004-12-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1650
1651         * AuthenticationManager.cs: don't lock on a public Type.
1652         * HttpWebRequest.cs: read the error response for auth. errors.
1653
1654 2004-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1655
1656         * HttpWebRequest.cs: set webResponse back to null when redirecting.
1657         Fix the previous patch so that it reads the whole response even if
1658         auto-redirect is not enabled. Closes bug #70484.
1659
1660 2004-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1661
1662         * HttpWebResponse.cs: added ReadAll method.
1663
1664         * WebConnection.cs: in HandleError, set the response error after
1665         closing the socket. Use an async. delegate to finish reading any prior
1666         WebConnectionStream.
1667
1668         * HttpWebRequest.cs: for error responses that allow content, read the
1669         stream immediately. Fixes bug #70483.
1670
1671 2004-12-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1672
1673         * CookieContainer.cs: quote the port number.
1674
1675 2004-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1676
1677         * WebConnection.cs:
1678         * WebConnectionStream.cs: removed TryReconnect. It's no longer needed.
1679
1680 2004-12-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1681
1682         * WebConnection.cs: set the event in Close so that if the queue is
1683         empty, we won't block forever on next request. The finalizer was
1684         removed because we're not implementing IDisposable pattern here.
1685
1686 2004-12-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1687
1688         * WebConnection.cs: handle errors on chunked streams. Fixes bug #66858.
1689         * ChunkStream.cs: added error checking all over.
1690
1691         * HttpWebRequest.cs: throw the exception received in SetResponseError
1692         if we already have a response.
1693         (SetRequestData): Don't nest the exception if it's a WebException.
1694
1695 2004-12-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1696
1697         * WebConnection.cs: remove prevStream and don't set busy to false in
1698         HandleError. prevStream is not needed any more and setting 'busy' so
1699         early might let a request skip the queue.
1700         
1701         * WebConnectionGroup.cs: decrement the indexer when removing a dead
1702         reference from the arraylist.
1703
1704         * WebConnectionStream.cs:
1705         (ReadAll): call NextRead if it has not been called before even when
1706         we have completed the request. Reuse the read buffer when reading a
1707         response of unknown size. Increase the buffer to 8kB.
1708         (BeginRead): increase pendingReads earlier and even when reading from
1709         the internal buffer.
1710         (EndRead): decrease pendingReads later and always.
1711
1712 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1713
1714         * CookieContainer.cs: style, fixed checks for properties, implemented
1715         the MonoTODOs for the method that take an Uri. GetCookies and
1716         GetCookieHeaders now really return only the cookies that are requested
1717         filtering by the Uri parameter.
1718
1719         * Cookie.cs: style, added default values for Comment, Domain and Port.
1720
1721 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1722
1723         * CookieCollection.cs: reformatted, fixed Add by adding a new method to
1724         search across the arraylist, as list.IndexOf is not what we want.
1725
1726 2004-11-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1727
1728         * WebConnection.cs: check for FIN or RST on the socket before reusing.
1729         Fixes bug #69388.
1730
1731 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1732
1733         * ChunkStream.cs: simplified condition for WantMore property.
1734
1735         * WebConnection.cs: in Connect(), finish any pending reads we might
1736         have for chunked data. Ignore possible blank lines at the very
1737         beginning of the server response. Honor user set KeepAlive in
1738         HttpWebRequest for HTTP/1.1 connections. Thanks to Eyal Alayuf for
1739         his suggestions and code.
1740
1741 2004-11-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1742
1743         * HttpWebResponse.cs: don't lock up when the cookie received ends with
1744         a semicolon. Patch by Darryl VanDorp. Fixes bug #68956.
1745
1746 2004-10-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1747
1748         * HttpWebRequest.cs: don't fail if the request has already been sent
1749         when accessing ContentType setter. Fixes bug #68848.
1750
1751 2004-10-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1752
1753         * ChunkStream.cs:
1754         (WantMore): we're not done until we get a 0 chunk size and the trailer.
1755         The 0 can be expressed as more than one character too (ie, 000000).
1756
1757         * HttpWebRequest.cs: new argument in SetResponseError.
1758         * WebConnection.cs: added argument to HandleError as a hint for
1759         debugging.
1760         (Connect): make the chunked stream be in the expected state when
1761         reusing.
1762
1763         * WebConnectionStream.cs: removed unused method (ResetWriteBuffer).
1764
1765 2004-10-10 David Sheldon <dave-mono@earth.li>
1766
1767         * HttpWebRequest.cs: Use RemoveAndAdd for AddRange. Fixes unittest.
1768
1769 2004-10-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1770
1771         * HttpWebRequest.cs: use RemoveAndAdd for headers multivalue headers.
1772         * WebHeaderCollection.cs: added RemoveAndAdd that behaves like the old
1773         SetInternal.
1774
1775 2004-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1776
1777         * HttpWebRequest.cs: ProxyQuery returns true when we use a proxy without
1778         tunneling a secure connection.
1779
1780         * ServicePoint.cs: added UseConnect property.
1781
1782         * ServicePointManager.cs: set the UseConnect property when we use a http
1783         proxy for a https connection.
1784
1785         * WebConnection.cs: setup the tunnled connection when using a proxy and
1786         https.
1787
1788 2004-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1789
1790         * HttpWebResponse.cs: remove unused SplitValue method.
1791
1792 2004-09-10  Sebastien Pouliot  <sebastien@ximian.com>
1793
1794         * DnsPermission.cs: Updated to pass new unit tests.
1795         * DnsPermissionAttribute.cs: Cleanup.
1796         * SocketPermission.cs: Updated to pass new unit tests.
1797         * SocketPermissionAttribute.cs: Updated to pass new unit tests.
1798         * WebPermission.cs: Implemented some TODO - not complete yet.
1799         * WebPermissionAttribute.cs: Updated to pass new unit tests.
1800
1801 2004-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1802
1803         * Cookie.cs: don't fail when using default constructor. Fixes bug
1804         #62890.
1805
1806 2004-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1807
1808         * HttpWebResponse.cs: set-cookie and set-cookie2 can be present more
1809         than once and have multiple values. Don't rely on string.split when
1810         parsing cookie values.
1811
1812         * WebHeaderCollection.cs: same thing for set-cookie and set-cookie2.
1813         Fixed GetValues (it was splitting values that contained a comma) and
1814         changed SetInternal to handle multi-value headers.
1815
1816         Fixes bug #62744.
1817
1818 2004-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1819
1820         * WebProxy.cs: fix scheme detection. Patch by Konstantin Triger
1821         (kostat@mainsoft.com).
1822
1823 2004-07-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1824
1825         * HttpWebRequest.cs: detect changes in scheme or port when redirecting.
1826         Fixes las take on bug 61218.
1827
1828 2004-07-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1829
1830         * WebConnection.cs: moved loading of the ssl stream Type to its own
1831         method. Don't create a new ssl stream if we're reusing the connection.
1832
1833         * WebConnectionStream.cs: ensure the number of bytes copied in ReadAll
1834         is the expected even if the dta from the server has extra bytes.
1835
1836 2004-07-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1837
1838         * WebConnection.cs:
1839         * WebConnectionStream.cs: when the status code is 1xx, 204 or 304,
1840         "responses MUST NOT include a message-body". We tried to read the
1841         stream even when getting those codes and considered the 0 length
1842         read as a failure.
1843
1844 2004-07-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1845
1846         * HttpWebRequest.cs: removed bogus Monitor.Exit.
1847         * WebConnection.cs: use Address instead of RequestUri when checking for
1848         the scheme in order to select the stream type. Fixes bug #61218.
1849
1850 2004-06-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1851
1852         * ChunkStream.cs: added ChunkLeft property.
1853         * WebConnection.cs:
1854         (EndRead): when using small byte arrays to read from a chunked stream,
1855         ensure we've read the chunk size and try to fulfill the request
1856         completely. fixes bug 59653.
1857
1858 2004-05-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1859
1860         * WebConnectionStream.cs: fixed CanRead property. Closes bug #59273.
1861
1862 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1863
1864         * DigestClient.cs: cache the sessions based on address and
1865         credentials, not only address. Added poor men's expiration to
1866         the session cache. Fixes bug #59202.
1867
1868 2004-05-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1869
1870         * IPAddress.cs:
1871         * IPEndPoint.cs:
1872         * IPv6Address.cs: no more warnings about IPAddress.Address.
1873
1874 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1875
1876         * WebException.cs: implemented serialization .ctor and
1877         GetObjectData().
1878
1879 2004-05-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1880
1881         * WebAsyncResult.cs: don't create the WaitHandle if not needed.
1882
1883 2004-05-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1884
1885         * HttpWebRequest.cs: added 3 missing properties for 1.1. They are not
1886         used yet.
1887
1888         * NetConfig.cs: added MaxResponseHeadersLength field.
1889
1890         * ServicePoint.cs:
1891         * ServicePointManager.cs: added missing properties for 1.1. 
1892
1893 2004-05-03  Sebastien Pouliot  <sebastien@ximian.com>
1894
1895         * WebConnection.cs: Use assembly name const to load Mono.Security.
1896
1897 2004-05-03  Lluis Sanchez Gual <lluis@ximian.com>
1898
1899         * NtlmClient.cs: Use assembly name const to load Mono.Security.
1900
1901 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1902
1903         * WebConnectionStream.cs: avoid the exception when getting the content
1904         length if possible.
1905
1906 2004-03-29  Lluis Sanchez Gual <lluis@ximian.com>
1907
1908         * HttpWebRequest.cs: Use a lock block instead of Monitor.Enter/Exit, so
1909         the lock is released in case of exception (for example, a 
1910         ThreadAbortException). This also "fixes" bug #52417.
1911         Beware, this requires a runtime update (due to a bug in Monitor.Exit).
1912         * ServicePoint.cs: Changed method from internal to private, since it
1913         is not called from outside the class.
1914
1915 2004-03-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1916
1917         * HttpWebRequest.cs: added the exception status to the error message.
1918         * WebConnection.cs: add headers using SetInternal instead of Add to
1919         bypass header name validation. Fixes bug #55994.
1920         * WebHeaderCollection.cs: added SetInternal (string header).
1921
1922 2004-03-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1923
1924         * WebConnection.cs:
1925         * WebConnectionGroup.cs: the requests queue is now shared for all the
1926         connections belonging to the same connection group.
1927
1928 2004-02-26  Sebastien Pouliot  <sebastien@ximian.com>
1929
1930         * DefaultCertificatePolicy.cs: New. Certificate validation
1931         policy compatible with the documented one present in Fx. It
1932         allows valid certificates and expired certificates to be used
1933         for SSL connections.
1934         * ServicePointManager.cs: Removed the DummyPolicy. Now creates
1935         a DefaultCertificatePolicy to validate certificates. 
1936
1937 2004-02-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1938
1939         * ServicePoint.cs: SendContinue is always false for HTTP/1.0
1940
1941         * WebConnection.cs: get rid of WaitForContinue() (yes!) and prevent
1942         calling more the ContinueDelegate more than once when we get the
1943         headers in several packets.
1944
1945         * WebConnectionStream.cs: removed call to WaitForContinue.
1946
1947 2004-02-25  Sebastien Pouliot  <sebastien@ximian.com>
1948
1949         * WebConnection.cs: Update previous patch to use HttpsClientStream
1950         (internal in Mono.Security assembly) in place of SslClientStream.
1951         This will reduce reflection and allow to use ICertificatePolicy.
1952
1953 2004-02-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1954
1955         * DigestClient.cs: fix quote handling. Reordered attributes in response.
1956         Fixed typo (QOP->CNonce). Now Digest works with apache2.
1957
1958 2004-02-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1959
1960         * DigestClient.cs: removed Console.
1961         * HttpWebRequest.cs: 401/407 were hanging for GET. Fixed.
1962
1963 2004-02-24  Sebastien Pouliot  <sebastien@ximian.com>
1964
1965         * DigestClient.cs: Fixed issue with Apache server which do not use "
1966         for specifying the digest algorithm (.e.g. algorithm=MD5 not ="MD5").
1967
1968 2004-02-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1969
1970         * HttpWebRequest.cs: arghhh. I used the server response headers instead
1971         of what the client is supposed to send. Thanks to Helge Hess.
1972
1973 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1974
1975         * AuthenticationManager.cs: implemented PreAuthenticate().
1976
1977         * HttpWebRequest.cs: once we know the version of the server, use it if
1978         below the requested one. Remove 'Expect', 'Content-Length' and /or 
1979         'Transfer-Encoding' if appropiate due to changes in version. Fixed 
1980         'Host' header for non-standard ports. Support preauthentication. Closes
1981         bug #50530.
1982
1983 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1984
1985         * HttpWebRequest.cs: check for missing or wrong URI in Location header
1986         when redirecting.
1987
1988         * WebConnection.cs: if the data read does not contain all the headers,
1989         keep it around and read the rest until we get to the response body.
1990         Allow response code with no description. Fixed bug #54543.
1991
1992 2004-02-18  Sebastien Pouliot  <sebastien@ximian.com>
1993
1994         * SecurityProtocolType.cs: Added missing [Serializable] to enum. Added 
1995         Default and Ssl2 to NET_2_0 profile. Enum is now internal for NET_1_0
1996         profile (as we need it for SslClientStream).
1997         * ServicePoint.cs: Added internal SetCertificates(client,server).
1998         * ServicePointManager.cs: Added CheckCertificateRevocationList and
1999         CheckCertificateRevocationList static properties (public in 1.1, 
2000         internal for 1.0).
2001         * WebConnection.cs: Dynamically creates a SslClientStream (from 
2002         Mono.Security assembly) in case of https. Changed NetworkStream to 
2003         Stream everywhere.
2004
2005 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2006
2007         * HttpWebRequest.cs: send the 'Connection: keep-alive' header when we
2008         don't know the server version or it's 1.0.
2009
2010         * ServicePoint.cs: added SetVersion.
2011
2012         * WebAsyncResult.cs: remove ChunkAsyncResult.
2013
2014         * WebConnection.cs: set the ServicePoint version when getting a response
2015         from the server.
2016
2017         * WebConnectionStream.cs: when posting chunked content, send the head,
2018         body and trailer of the chunk at once instead of doing 3 separate
2019         writes, which may cause troubles.
2020
2021 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2022
2023         * WebConnection.cs: if we get a 100 when we're not waiting for it, set
2024         that information in the ServicePoint.
2025
2026         * WebConnectionStream.cs: send headers in the right order for
2027         non-chunked POST.
2028
2029 2004-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2030
2031         * WebConnectionStream.cs: fixed nullrefs in BeginWrite/EndWrite.
2032
2033 2004-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2034
2035         * HttpWebRequest.cs: on second and sucesive tries when authenticating,
2036         don't use chunked encoding for POST, as we know the content length and
2037         have the body. Nullify bodyBuffer always in CheckFinalStatus.
2038
2039         * WebAsyncResult.cs: added ChunkAsyncResult property. It holds the
2040         IAsyncResult when writing CRLF at the end of a chunk.
2041
2042         * WebConnectionStream.cs: support sending chunked data.
2043
2044 2004-01-24  Lluis Sanchez Gual <lluis@ximian.com>
2045
2046         * HttpWebRequest.cs: When retrying a POST request after an
2047         authentication failure, resend the body. This fixes bug #51841.
2048         * WebConnectionStream.cs: Added properties for getting what's been
2049         written.
2050
2051 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2052
2053         * HttpWebRequest.cs: don't send 'Expect: 100-continue' for 1.0 version.
2054
2055 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2056
2057         * HttpWebRequest.cs: support proxy authentication.
2058
2059 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2060
2061         * BasicClient.cs:
2062         * DigestClient.cs: use IndexOf instead of StartsWith to deal with
2063         servers that provide several authentication schemas.
2064
2065 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2066
2067         * ChunkStream.cs: use an array of buffers instead of a MemoryStream for
2068         storing the chunks. This way, we won't miss traling data from the
2069         previous chunk when a new one is received before the other is fully
2070         read.
2071
2072 2004-01-27  Nick Drochak <ndrochak@ieee.org>
2073
2074         * DigestClient.cs:
2075         * HttpWebRequest.cs:
2076         * IPv6Address.cs:
2077         * WebClient.cs:
2078         * WebConnection.cs:
2079         * WebConnectionStream.cs: Remove unused variables thus eliminating some
2080         build warnings.
2081
2082 2004-01-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2083
2084         * WebConnection.cs: patch by Yaacov Akiba Slama that fixes 100-continue
2085         handling for the case when the same packet also contains the actual
2086         [2-5]xx response.
2087
2088 2004-01-24  Lluis Sanchez Gual <lluis@ximian.com>
2089
2090         * HttpWebRequest.cs: Added missing property.
2091
2092 2004-01-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2093
2094         * Dns.cs: don't block forever in EndResolve and EndGetHostByName. Fixes
2095         bug #53222.
2096
2097 2004-01-16  Lluis Sanchez Gual <lluis@ximian.com>
2098
2099         * ChunkStream.cs: The "size" parameter of Write is not the number of
2100         bytes to write, but the last offset to be written. Thus, in WriteAndRead
2101         Back, since "read" is not an offset but the number of bytes, it must be 
2102         added to the offset. Maybe it would be a good idea to change the name of
2103         the parameter, since it is confusing. This should fix bug #52591.
2104
2105 2004-01-12  Lluis Sanchez Gual <lluis@ximian.com>
2106
2107         * WebConnection.cs: Yet another fix for WebConnection. This fixes 
2108         bug #52169.
2109
2110 2004-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2111
2112         * WebConnection.cs: Data.Init is a bad boy. Lluis realized. He also
2113         tidied up the end of ReadDone. Disabled relaunching the request if 2
2114         InitRead are called, since now we don't throw everything into
2115         RegisterWaitForSingleObject but one request at a time.
2116
2117         * WebConnectionGroup.cs: when checking available connections, allow them
2118         not to be Connected but allocated to honor the connection limit.
2119         
2120         * WebConnectionStream.cs: CheckComplete() now checks for nextReadCalled
2121         too. ReadAll don't mess contentLength if it's provided in the headers.
2122
2123         BIG thanks to Lluis. Turns out that we were debugging the same stuff and
2124         his Data.Init discovery was THE thing I was missing.
2125
2126         Fixes bug #51277.
2127
2128 2004-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2129
2130         * ServicePointManager.cs: use GetMaxConnections to get the appropiate
2131         number of connections limit.
2132
2133 2004-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2134
2135         * MonoHttpDate.cs: use the invariant culture, not en-US. Suspected
2136         guilty for bug 52629.
2137
2138 2003-12-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2139
2140         * CredentialCache.cs: return null instead of throwing NotImplemented.
2141
2142 2003-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2143
2144         * HttpWebRequest.cs: fixed checking if method allows a body. Patch by
2145         Benjamin Jemlich (pcgod@gmx.net).
2146
2147 2003-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2148
2149         * HttpWebRequest.cs: deal with authentication schemes that have more
2150         than 1 round trip (Ntlm).
2151
2152 2003-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2153
2154         * NtlmClient.cs: new class that actually uses one from Mono.Http to do
2155         the authentication.
2156
2157 2003-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2158
2159         * HttpWebRequest.cs: when building the redirect URI, use the previous
2160         one as the base URI, which makes relative URIs work.
2161
2162 2003-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2163
2164         * DigestClient.cs: merged in code from Sebastien Pouliot and Greg
2165         Reinacker that Supports cnonce and preauthentication.
2166
2167 2003-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2168
2169         * DigestClient.cs: initial Digest authentication. Works with apache
2170         mod_digest.
2171
2172 2003-11-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2173
2174         * HttpWebRequest.cs: removed unneeded StringBuilder.
2175         * WebConnection.cs: default to keep the connection open for HTTP/1.1
2176         only or HTTP/1.0 + (Proxy-)Connection header. Fixes bug #51208.
2177
2178 2003-11-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2179
2180         * WebConnection.cs: turns out that socket.Connected is not useful until
2181         we actually try to send/receive data, even if the other end has already
2182         closed the socket. Added TryReconnect() and Connected.
2183
2184         * WebConnectionData.cs: default value for StatusCode is 0 now.
2185
2186         * WebConnectionGroup.cs: reuse the connection since the beginning,
2187         instead of opening up to ConnectionLimit and then reusing.
2188
2189         * WebConnectionStream.cs: reopen the socket if we're trying to reuse
2190         one which fails on first write.
2191
2192 2003-11-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2193
2194         * WebConnectionStream.cs: when a callback is passed to BeginRead/Write,
2195         wrap it and do our job before calling it. Fixes bug #48497.
2196
2197 2003-11-12  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2198
2199         * WebExceptionStatus.cs: Restyled, Added .Net 1.1 members
2200         * SecurityProtocolType.cs: Added and implemented
2201
2202 2003-11-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2203
2204         * HttpWebRequest.cs: fixed redirects when they target another host.
2205
2206 2003-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2207
2208         * IPAddress.cs: prevent exceptions when trying to parse the static IPv6
2209         addresses.
2210
2211 2003-10-17  Pedro Martinez Julia  <yoros@wanadoo.es>
2212
2213         * WebClient.cs: use Path.DirectorySeparator instead of "/" for
2214         windows compatibility. Add some checks for file paths like
2215         "C:/xxx/yyy/..." and like "/home/xxx/...".
2216
2217 2003-10-16  Pedro Martinez Julia  <yoros@wanadoo.es>
2218
2219         * WebClient.cs: added a slash between directory and file names.
2220
2221 2003-10-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2222
2223         * HttpWebRequest.cs:
2224         * HttpWebResponse.cs: better abort handling and leave the stream in a
2225         stable status on abort.
2226
2227 2003-10-12  Pedro Martinez Julia  <yoros@wanadoo.es>
2228
2229         * WebClient.cs: refine reading of local files (like MS.NET).
2230
2231 2003-10-10  Pedro Martinez Julia  <yoros@wanadoo.es>
2232
2233         * WebClient.cs: MS.NET works right when we try OpenRead("file.txt")
2234         but we didn't. Now, when Uri fails with an exception, it adds
2235         "file://" before the URI and tries again.
2236
2237 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2238
2239         * ServicePoint.cs: preparing for recycling. Not yet finished.
2240         * ServicePointManager.cs: this is the one that reads config.
2241         * WebConnectionGroup.cs: don't read config here.
2242         * WebConnection.cs: added the queue again. Launch queued requests on
2243         error.
2244
2245 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2246
2247         * WebConnection.cs: the queue is now handled by the threadpool.
2248         Initialize the connection data in a place where it does not depend on
2249         the execution order of the requests in threadpool. More error handling.
2250
2251         * WebConnectionGroup.cs: use the limits in the config file and reuse
2252         connections when the limit is reached.
2253
2254 2003-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2255
2256         * HttpWebRequest.cs: handle 304 a la MS.
2257         * WebConnection.cs: set the response data when reading 0 bytes.
2258
2259 2003-09-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2260
2261         * WebConnectionStream.cs: fix by Lluis to avoid the stream being in an
2262         invalid state.
2263
2264 2003-08-14  Nick Drochak <ndrochak@gol.com>
2265
2266         * WebRequest.cs: Check lower case string since that is what we will add.
2267
2268 2003-08-04  Jerome Laban <jlaban@wanadoo.fr>
2269
2270         * IPHostEntry.cs: Default contructor must not initialize members.
2271         (Fixes bug #45575).
2272
2273 2003-07-27  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2274
2275         * CredentialCache.cs: Removed undefined serializable attribute
2276
2277 2003-07-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2278
2279         * ChunkStream.cs:
2280         (WantMore): true if we've not received the last chunk yet. Fixes
2281         bug #45463. Thanks to Miguel for tracking this down and providing a
2282         test case.
2283         
2284         * WebConnection.cs: removed bogus ^M's.
2285         
2286         * WebHeaderCollection.cs: provide more info when the header or value is
2287         wrong.
2288
2289 2003-07-15  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2290
2291         * ChunkStream.cs: Removed unused members
2292         * IPAddress.cs: Removed unused exception variable, fixes compiler
2293         warning.
2294         * WebConnection.cs: Removed unused exception variables, fixes compiler
2295         warnings.
2296
2297 2003-07-14  Lluis Sanchez Gual <lluis@ximian.com>
2298
2299         * NetConfig.cs: If Clone method is not public, then it must use
2300           explicit interface method implementation syntax.
2301
2302 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
2303
2304         * Dns.cs: Reworked indentation.
2305         Added IPv6 support.
2306         Added literal address checking in GetHostByAddress.
2307         Changed Dns.Resolve behavior.
2308         * IPAddress.cs:
2309         * IPEndPoint.cs: Added IPv6 support.
2310         * IPv6Address.cs: Added address compression.
2311         * NetConfig.cs: Added configuration section.    
2312
2313 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
2314
2315         * ServicePoint.cs: Removed Connect and GetEndPoint methods.
2316         Removed reverse resolution when uri is literal IP address. 
2317         * WebConnection.cs: IPv6 compatibility update: Try to connect
2318         to all addresses returned by IPHostEntry.
2319         * WebConnectionGroup.cs: Removed unused parameter. 
2320
2321 2003-07-13  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2322
2323         * WebProxy.cs: Add serialization/ deserialization support
2324
2325 2003-07-10  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2326
2327         * ProxyUseType.cs:
2328         * WebStatus.cs: Deleted (do not exist in this assembly)
2329         * IPv6Address.cs: Made internal
2330
2331 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2332
2333         * HttpWebRequest.cs:
2334         * ServicePointManager.cs:
2335         * WebConnection.cs: added support for proxies.
2336
2337 2003-07-05  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2338
2339         * DnsPermissionAttribute.cs:
2340         * SocketPermissionAttribute.cs: Fixed wrong AttributeUsageAttribute
2341
2342 2003-07-05  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2343
2344         * WebPermission.cs: Added and partially implemented
2345         * WebPermissionAttribute.cs: Added and implemented
2346
2347 2003-07-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2348
2349         * WebClient.cs: fixed bug #45651.
2350
2351 2003-06-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2352
2353         * WebClient.cs: Small fix by Sebastian <scut@nb.in-berlin.de>.
2354
2355 2003-06-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2356
2357         * WebConnection.cs: fixed header writing the reusing a connection and
2358         the server does not send 100-continue response.
2359
2360 2003-06-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2361
2362         * WebConnection.cs: close the socket and connection when disposing.
2363         * WebRequest.cs: removed setter for RequestUri. Allow non-public ctors
2364         when creating instances.
2365
2366         * HttpWebRequest.cs:
2367         * HttpWebResponse.cs:
2368         * FileWebRequest.cs: support serialization.
2369
2370         * FileWebResponse.cs: support serialization and fixed dispose checks.
2371
2372         * FileWebRequestCreator.cs:
2373         * HttpRequestCreator.cs: added internal .ctor.
2374
2375 2003-06-24  Lluis Sanchez Gual <lluis@ximian.com>
2376
2377         * HttpWebRequest.cs: SetWriteStream(): SendRequestHeaders should be
2378         called before asyncWrite.SetCompleted, to make sure that the waiting
2379         thread does not start to send more information before
2380         SendRequestHeaders has finished.
2381
2382 2003-06-22  Lluis Sanchez Gual <lluis@ximian.com>
2383
2384         * WebConnectionStream.cs: Only increment pendingReads if an asynchronous
2385         read is really needed.
2386
2387 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2388
2389         * WebHeaderCollection.cs: prevent duplication headers used niternally.
2390
2391 2003-06-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2392
2393         * HttpWebRequest.cs: if CookieContainer has not been set, make
2394         HttpWebResponse ignore Set-Cookie* headers.
2395
2396         * HttpWebResponse.cs: Set-Cookie and Set-Cookie headers removed if
2397         CookieContainer have been provided to the request.
2398
2399 2003-06-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2400
2401         * AuthenticationManager.cs: get the list of authentication modules from
2402         the configuration files. Added Clear and fixed Unregister.
2403
2404         * BasicClient.cs: fully implemented.
2405
2406         * HttpWebRequest.cs: added support for Basic authentication when
2407         credentials are set.
2408
2409         * NetworkCredential.cs: fixed GetCredential.
2410
2411 2003-06-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2412
2413         * HttpWebRequest.cs: *really* take care of requestSent to prevent
2414         sending the same request twice.
2415         * WebAsyncResult.cs: don't close the handle. Just Reset.
2416         * WebConnectionStream.cs: removed unneeded line.
2417
2418 2003-06-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2419
2420         * HttpWebRequest.cs: use InternalClose when we are not going to send the
2421         rest of the request stream because of an error after sending the
2422         headers.
2423
2424         * WebConnection.cs: check for completion after setting the response.
2425         Enable reading in NextRead.
2426
2427         * WebConnectionStream.cs: re-fixed the count for partially buffered
2428         reads. If the network stream returns 0 bytes, we're done.
2429
2430 2003-06-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2431
2432         * WebClient.cs: implemented UploadFile. Fixed SetupRequest to set the
2433         special headers *after* the others.
2434
2435 2003-06-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2436
2437         * WebConnectionStream.cs: when the read is partially filled from the
2438         initial buffer, add those bytes too. Thanks to Lluis for debugging this.
2439
2440 2003-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2441
2442         * HttpWebRequest.cs: added ExpectContinue property.
2443         * WebConnection.cs: allow 100 Continue to be delayed after waiting for
2444         it.
2445
2446 2003-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2447
2448         * HttpWebRequest.cs: don't send "Expect: 100-continue" is the server
2449         is known not to respond to that.
2450
2451         * ServicePoint.cs: added SendContinue property.
2452
2453         * WebConnection.cs: only wait 2 seconds for a continue reply. If it
2454         timeouts, set SendContinue to false and proceeed sending data.
2455
2456         * WebConnectionStream.cs: if 100-continue is not received and instead we
2457         get a 417 or anything else, don't send the data.
2458
2459         * WebClient.cs: implemented all missing properties and methods except
2460         UploadFile.
2461
2462 2003-06-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2463
2464         * FileWebRequestCreator.cs: splitted from WebRequest.
2465         * HttpRequestCreator.cs: splitted fromWebRequest.
2466         * WebRequest.cs: added methods that are used by the new configuration
2467         handler to set prefix/type name requests creators.
2468
2469 2003-06-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2470
2471         * AuthenticationManager.cs:
2472         * Authorization.cs:
2473         * BasicClient.cs: new file.
2474         * ChunkStream.cs: new file.
2475         * Cookie.cs:
2476         * CookieContainer.cs:
2477         * GlobalProxySelection.cs:
2478         * HttpWebRequest.cs:
2479         * HttpWebResponse.cs:
2480         * IAuthenticationModule.cs:
2481         * ServicePoint.cs:
2482         * ServicePointManager.cs:
2483         * WebAsyncResult.cs: new file.
2484         * WebConnection.cs: new file.
2485         * WebConnectionData.cs: new file.
2486         * WebConnectionGroup.cs: new file.
2487         * WebConnectionStream.cs: new file.
2488         * WebException.cs:
2489         * WebHeaderCollection.cs:
2490         * WebProxy.cs:
2491         * WebResponse.cs:
2492
2493         Reworked HttpWebRequest and related classes.
2494
2495 2003-05-30  Miguel de Icaza  <miguel@ximian.com>
2496
2497         * HttpWebRequest.cs (EndGetResponse): Do not throw exceptions on
2498         InternalServerError (500)
2499
2500 2003-05-29  Miguel de Icaza  <miguel@ximian.com>
2501
2502         * HttpWebRequest.cs (Close): Move the code that accumulates the
2503         output to Close from Flush.  Flush could have been called in the
2504         middle of the processing, and would have generated invalid results
2505         (which it did).
2506
2507 2003-05-23  Zoltan Varga  <vargaz@freemail.hu>
2508
2509         * Dns.cs (GetHostByAddress): Return the local host when called with
2510         IF_ANY.
2511
2512 2003-04-29  Miguel de Icaza  <miguel@ximian.com>
2513
2514         * WebClient.cs (DownloadData): Close the underlyng stream.
2515         (DownloadFile): Use using, so the file gets closed.
2516
2517 2003-04-24  Miguel de Icaza  <miguel@ximian.com>
2518
2519         * WebClient.cs (DownloadData): Instead of using a MemoryStream,
2520         keep track of all the small chunks in an ArrayList.  The
2521         MemoryStream had the property of reallocating itself, and the
2522         problem was that MemoryStream.GetBuffer would return the buffer
2523         (correctly), but not something of the right size.  So clients of
2524         DownloadData would get the extra unused bytes as part of the
2525         result.
2526
2527         The solution would have been to make another copy at this point,
2528         instead, we only keep the small allocations around in the
2529         ArrayList, and we only do one large allocation at the end.
2530
2531         * HttpWebResponse.cs: If there is a Content-Length header, pass
2532         this information to our HttpWebResponseStream, so it knows when to
2533         stop, instead of waiting for the stream to be shut down by the
2534         other end.
2535
2536         * HttpWebRequest.cs: Only set the `delay-header-writing' mode on
2537         the underlying stream if the method will do a content transfer and
2538         no Content-Length was provided. If not (HEAD and GET or
2539         Content-Length provided), keep going.
2540         
2541 2003-04-23  Miguel de Icaza  <miguel@ximian.com>
2542
2543         * HttpWebRequest.cs: .NET Allows the HttpWebRequest to not have
2544         the ContentLength specified on the request.  If that happens, we
2545         have to accumulate all the data written, and once we accumulate
2546         the data, we send it off.  
2547
2548         Notice that the documentation in .NET is actually incorrect, they
2549         state that setting ContentLength is mandatory.  It is not.
2550
2551 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2552
2553         * HttpWebResponse.cs: fixes bug #41180.
2554
2555 2003-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2556
2557         * HttpWebRequest.cs: throw an exception is the response code is >= 300.
2558
2559 2003-03-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2560
2561         * HttpWebRequest.cs: implemented IDisposable, make the request stream
2562         read only. Changed the way of disposing the socket.
2563
2564         * HttpWebResponse.cs: wrapped the socket in a write-only NetworkStream,
2565         handle chunked transfer encoding (no more hangs), added serialization
2566         stuff, call CheckDisposed at the beginning of methods/properties (not
2567         in a finally clause).
2568
2569 2003-02-17  Nick Drochak <ndrochak@gol.com>
2570
2571         * WebClient.cs : Implemented Credentials property.
2572
2573 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2574
2575         * SocketAddress.cs: byte 1 of the data is the high byte of the family,
2576         not the size.
2577
2578 2003-01-29  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
2579
2580         * WebClient.cs : hacked OpenRead, DownloadData and DownloadFile.
2581
2582 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2583
2584         * HttpWebRequest.cs: applied patch from Tim Haynes
2585         (thaynes@openlinksw.com).
2586
2587         Avoided double-sending of the request to the server when both
2588         GetRequestStream() and GetResponse() are called.
2589         System Header attributes survive the Headers attribute set.
2590         Added handling of Connection: KeepAlive/Close
2591
2592 2002-10-03  Dick Porter  <dick@ximian.com>
2593
2594         * Dns.cs: Fixed GetHostName()
2595
2596 2002-09-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2597
2598         * HttpWebRequest.cs:
2599         * HttpWebResponse.cs: applied another patch from Shahms E. King
2600         (shahms@shahms.com).
2601
2602 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2603
2604         * HttpWebRequest.cs:
2605         * HttpWebResponse.cs: applied patch from Shahms E. King
2606         (shahms@shahms.com).
2607
2608 2002-05-29  Lawrence Pit <loz@cable.a2000.nl>
2609
2610         * MonoHttpDate.cs: added
2611         * HttpWebRequest.cs: using MonoHttpDate
2612         * HttpWebResponse.cs: using MonoHttpDate
2613         * DnsPermission.cs: correct XML output
2614         * SocketPermission.cs: correct XML output
2615
2616 2002-05-21  Lawrence Pit <loz@cable.a2000.nl>
2617
2618         * WebClient.cs: stubbed
2619         * WebProxy.cs: fixed bug; had to change internal representation
2620         of bypasslist to ArrayList, different implementation of checking
2621         regex's.
2622
2623 2002-05-20  Lawrence Pit <loz@cable.a2000.nl>
2624
2625         * WebProxy.cs: added, implemented
2626         * ServicePoint.cs: implemented most
2627         * ServicePointManager.cs: implemented
2628         * HttpWebRequest.cs: started implementation
2629         * HttpWebResponse.cs: improved disposable routines
2630         * FileWebRequest.cs: slight improvement of Close method
2631         
2632 2002-05-19  Lawrence Pit <loz@cable.a2000.nl>
2633
2634         * FileWebRequest.cs: finished implementation of async methods.
2635         * FileWebResponse.cs: improved disposable routines.
2636         * IPEndPoint.cs: fixed bug #24666 in Serialize and Create methods, 
2637         byte ordering of address was backwards.
2638
2639 2002-05-13  Lawrence Pit <loz@cable.a2000.nl>
2640
2641         * Dns.cs: Reimplemented (simplified and fixed) asynchronous methods by
2642         relying on standard asynchronous delegate features. Added checks for
2643         null strings.
2644         * HttpWebResponse.cs: implemented properties
2645         * FileWebResponse.cs: improved the way resources are disposed.
2646         * FileWebRequest.cs: started implementation of asynchronous methods
2647         * ServicePointManager.cs: implemented properties
2648
2649 2002-05-12  Lawrence Pit <loz@cable.a2000.nl>
2650
2651         * HttpWebRequest.cs: properties implemented
2652         * HttpWebResponse.cs: added
2653         * GlobalProxySelection.cs: implemented
2654         * FileWebResponse.cs: added
2655         * FileWebRequest.cs: some methods implemented
2656
2657 2002-05-11  Lawrence Pit <loz@cable.a2000.nl>
2658
2659         * WebHeaderCollection.cs: implemented
2660         * WebRequest.cs: implemented
2661         * FileWebRequest.cs and HttpWebRequest.cs stubs added
2662
2663 2002-05-09  Lawrence Pit <loz@cable.a2000.nl>
2664
2665         * Rewrote IPAddress.Parse method, passing all unit tests
2666
2667 2002-05-09  Lawrence Pit <loz@cable.a2000.nl>
2668
2669         * fixed bug in IPEndPoint.Equals method
2670         * fixed bug in IPAddress.Parse method
2671         * fixed bug in IPAddress.SwapLong method
2672         * fixed several bugs in Cookie.cs
2673
2674 2002-05-06  Lawrence Pit <loz@cable.a2000.nl>
2675
2676         * WebRequest.cs: added
2677         * WebResponse.cs: implemented
2678         * WebException.cs: implemented
2679         * WebHeaderCollection.cs: added
2680         * HttpVersion.cs: implemented
2681         * HttpContinueDelegate.cs: added
2682         * IWebProxy.cs: added
2683         * IWebRequestCreate.cs: added
2684         * ICertificatePolicy.cs: added
2685         * ServicePoint.cs: stubbed
2686         * ServicePointManager.cs: stubbed
2687         * CookieContainer.cs: added
2688         * Authorization.cs: implemented
2689
2690 2002-05-05  Lawrence Pit <loz@cable.a2000.nl>
2691
2692         * CredentialCache.cs: implemented
2693
2694 2002-05-05  Lawrence Pit <loz@cable.a2000.nl>
2695
2696         * IPAddress.cs: fixed IsLoopback, address was already in host order
2697
2698 2002-05-05  Lawrence Pit <loz@cable.a2000.nl>
2699
2700         * IPv6Address.cs: added (note: not part of .net spec)
2701
2702 2002-05-01  Lawrence Pit <loz@cable.a2000.nl>
2703
2704         * DnsPermission.cs: implemented
2705         * DnsPermissionAttribute.cs: implemented
2706
2707 2002-04-28  Lawrence Pit <loz@cable.a2000.nl>
2708
2709         * EndpointPermission.cs: implemented
2710         * SocketPermission.cs: implemented
2711         * SocketPermissionAttribute.cs: implemented
2712         * ProtocolViolationException.cs: implemented
2713         * Dns.c: passing w32 error code when no host found
2714
2715 2002-04-27  Lawrence Pit <loz@cable.a2000.nl>
2716
2717         * Cookie.cs: implemented
2718         * CookieCollection.cs: implemented
2719         * CookieException.cs: implemented
2720
2721 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2722
2723         * IPAddress.cs: initialize the read only fields with Parse().
2724
2725 2002-04-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2726
2727         * IPAddress.cs: little changes to behave as MS.
2728
2729 2002-04-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2730
2731         * Dns.cs (Resolve): behave as MS. Agreed with Mads.
2732
2733 2002-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2734
2735         * IPAddress.cs: the icalls for sockets are endianness-aware. So I
2736         changed a few things. Also included a workaround for bug #23547.
2737
2738 2002-04-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2739
2740         * IPAddress.cs: use System.BitConverter.IsLittleEndian (suggested
2741         by Paolo) instead of guessing the endianness.
2742
2743         * SocketAddress.cs: implemented Equals() and GetHashcode().
2744         
2745 2002-04-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2746
2747         * IPEndPoint.cs: modifications to constructors according to the
2748         specifications (suggested by Lawrence Pit).
2749
2750 2002-04-15  Patrik Torstensson <patrik.torstensson@labs2.com>
2751
2752         * IPEndPoint.cs: Fixed build breaker.
2753
2754 2002-04-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2755
2756         * IPEndPoint.cs: implemented Equals() and GetHashCode(). Now 100%
2757         complete.
2758
2759 2002-04-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2760
2761         * IPAddress.cs: finished all MonoTODO's. Use network order to store 
2762         the address. Check for max and min values in Address:set. IsLoopback()
2763         returns now true for all 127.x.y.z. Some more checks in Parse ().
2764         Some changes to behave as MS does.
2765
2766 2002-02-24  Duncan Mak  <duncan@ximian.com>
2767
2768         * ICredentialLookup.cs: Added the GetCredential method to the
2769         interface. The interface is named "ICredentials", should this file
2770         be renamed?     
2771
2772         * NetworkCredential.cs: Added to CVS. Need to investigate on how
2773         GetCredential() works
2774
2775 2002-01-23  Dick Porter  <dick@ximian.com>
2776
2777         * SocketAddress.cs: Implemented.
2778
2779         * IPEndPoint.cs: Turned 'Address' field into a real property.
2780         Implemented Create() and Serialize() methods.
2781
2782         * IPAddress.cs: Fixed class constructor, turned 'Address' field
2783         into a real property. Removed undocumented "public
2784         IPAddress(string)" constructor.
2785
2786         * EndPoint.cs: Implemented.  All methods return
2787         NotSupportedException to enforce subclass overriding.
2788
2789         * Dns.cs: Replaced fixed-layout Hostent struct and cygwin
2790         P/Invokes with portable internal calls.
2791
2792 2002-01-17  Miguel de Icaza  <miguel@ximian.com>
2793
2794         * Dns.cs: Updated to API changes.
2795
2796         * IPAddress.cs: Updated API.  Much left to implement.
2797
2798         * Dns.cs: Remove IPToString method
2799
2800 2002-01-06  Ravi Pratap  <ravi@ximian.com>
2801
2802         * Dns.cs, AuthenticationManager.cs, SocketAddress.cs : MonoTODO
2803         attribute insertion.
2804
2805 2001-11-22  Nick Drochak <ndrochak@gol.com>
2806
2807         * IPAddress.cs: Fix constructor bug, properly name Address property,
2808         and use triple-slash for comments.
2809
2810 2001-11-20  Miguel de Icaza  <miguel@ximian.com>
2811
2812         * IPAddress.cs: Updated to contain Any, Broadcast, Loopback and
2813         None as suggested by Phillip.
2814
2815 2001-09-26  Mads Pultz <mpultz@get2net.dk>
2816         * Dns.cs: Initial work on BeginGetHostByName and EndGetHostByName implemented.
2817
2818 2001-09-24  Mads Pultz <mpultz@get2net.dk>
2819
2820         * Dns.cs: Minor changes (some print statements removed)
2821
2822 2001-09-23  Mads Pultz <mpultz@get2net.dk>
2823
2824         * Dns.cs: Initial work submitted to repository.
2825         * IPHostEntry.cs: Initial work submitted to repository.
2826
2827 2001-07-12  Sean MacIsaac  <macisaac@ximian.com>
2828
2829         * Authorization.cs: Fixed compiler error.
2830
2831         * IAuthenticationModule.cs: Changes for Beta2.
2832
2833         * IPAddress.cs: Internal storage changed to be uint not int.
2834
2835         * IPEndPoint.cs: Fixed compiler error.
2836
2837         * EndPoint.cs: Fixed compiler error.
2838
2839         * AuthenticationManager.cs: Fixed typo.