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