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