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