Update
[mono.git] / mcs / class / System / System.Net / ChangeLog
1 2006-11-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2
3         * HttpWebRequest.cs: add 2 more methods that are not supposed to have
4         a body. Fixes bug #80001.
5
6 2006-11-15  Andrew Skiba  <andrews@mainsoft.com>
7
8         * WebHeaderCollection.cs: add stubs for new 2.0 properties.
9
10 2006-11-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11
12         * HttpWebResponse.cs: cookies are actually added to the request
13         container if any. Fixes bug #79821.
14
15 2006-11-02  Michael Hutchinson  <m.j.hutchinson@gmail.com>
16
17         * WebRequest.cs: more closely follow MS behaviour: use system settings 
18           unless told otherwise, and respect app.config.
19
20 2006-11-01  Michael Hutchinson  <m.j.hutchinson@gmail.com>
21
22         * GlobalProxySelection.cs: Obsolete GlobalProxySelection under 2.0 
23           profile, and move code to new property WebRequest.DefaultWebProxy.
24         * WebRequest.cs: Implement new 2.0 property DefaultWebProxy.
25           Add support for config option UseSystemDefault using simplistic
26           implementation of new 2.0 method GetSystemWebProxy ().
27
28 2006-10-30  Atsushi Enomoto  <atsushi@ximian.com>
29
30         * FtpWebRequest.cs : more build fixes.
31
32 2006-10-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
33
34         * EndPointListener.cs: update comment and avoid exception when the
35         program is exiting.
36
37 2006-10-30  Miguel de Icaza  <miguel@novell.com>
38
39         * WebRequestMethods.cs: Another typo fix.
40
41         * ServicePointManager.cs: Set the default properly.
42
43         * SecurityProtocolType.cs: Remove non-existant defines. 
44
45 2006-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
46
47         * HttpWebRequest.cs: internally allow buffer if it's not a known
48         GET-only method instead of enabling that only for POST/PUT. Fixes bug
49         #79595.
50
51 2006-09-28 Andrew Skiba <andrews@mainsoft.com>
52
53         * WebConnection.cs: TARGET_JVM
54
55 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
56
57         * WebException.cs: patch by Andrew Skiba that fixes serialization
58         compatibility with .NET and the default value for status.
59
60 2006-09-28  Andrew Skiba <andrews@mainsoft.com>
61
62         * Dns.cs: TARGET_JVM
63
64 2006-09-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
65
66         * CookieContainer.cs: send the cookies from the collection we got for
67         the given URI, not the whole collection.
68         * HttpWebResponse.cs: only add the cookies to this instance, not to the
69         cookie container set in the request.
70
71 2006-09-11  Sebastien Pouliot  <sebastien@ximian.com>
72
73         * WebConnection.cs: Patch to remove the hack that was required for 
74         using the older versions of the SSL/TLS classes. This hack is no more
75         required :-). Patch by Gonzalo Paniagua Javier.
76
77 2006-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
78
79         * HttpConnection.cs: when the content length is available, keep it
80         updated after synchronous read. Renamed 'available' to 'remaining_body'.
81         * RequestStream.cs: when creating the stream, pass the remaining length
82         starting from the offset in the buffer.
83
84 2006-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
85
86         * RequestStream.cs: make sure we return 0 when no more bytes left.
87         Paticularly, when we have a content length and the whole response is
88         buffered.
89
90 2006-08-20  Miguel de Icaza  <miguel@novell.com>
91
92         * RequestStream.cs (Read): A bug fix for #79112 and what I
93         consider to be an important change.
94
95         The bug fix is that we update the "available" variable as soon as
96         we consume data from Read, this means that a second call into Read
97         wont block.   Available was only being updated on a secondary code
98         path, now we alwaysupdate it after using FillFromBuffer.
99
100         The second component is what I believe the right behavior should
101         be.  There was a check for "if count > available" that set count
102         to available in that case.   The idea was to limit the data read
103         from the buffer that belonged to this particular request, to allow
104         pipelining. 
105
106         But this test was done after FillFromBuffer, which assumed that
107         all the data held in the buffer (the one used by FillFromBuffer)
108         must belong to the this request, and only future data did not.
109
110         I think my change is correct, but it assumes that the initialized
111         RequestStream will be used for other pipelined HTTP requests,
112         which is not something am 100% sure of, so Gonzalo needs to check
113         this. 
114
115 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
116
117         * Cookie.cs: avoid nullref in GetHashCode and Equals.
118
119 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
120
121         * CookieCollection.cs:
122         * CookieContainer.cs: remove expired cookies.
123
124 2006-07-07  Atsushi Enomoto  <atsushi@ximian.com>
125
126         * Dns.cs : (GetHostEntry) when passed IP addresses, it does not issue
127           query to DNS. Patch by Petri Latvala.
128
129 2006-07-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
130
131         * CookieContainer.cs: don't send a secure cookie over an insecure
132         channel.
133
134 2006-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
135
136         * WebProxy.cs: (IsBypassed) 'loopback', 'localhost' and any address
137         that starts with 127 are special.
138
139 2006-05-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
140
141         * HttpListener.cs: Fixes race condition in BeginGetContext. Patch by
142         Pawel Sakowski that fixes bug #78365.
143
144 2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>
145
146         * ServicePointManager.cs : oops, CONFIGURATION_DEP.
147
148 2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>
149
150         * GlobalProxySelection.cs : if corresponding config section is
151           DefaultProxySection then use it.
152
153 2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>
154
155         * WebRequest.cs : if corresponding config section is
156           WebRequestModulesSection then use it.
157
158 2006-05-09  Atsushi Enomoto  <atsushi@ximian.com>
159
160         * ServicePointManager.cs : if corresponding config section is
161           ConnectionManagementSection then use it.
162
163 2006-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
164
165         * ResponseStream.cs:
166         * HttpListenerResponse.cs: allow 0 length POST. Patch by Horst Reiterer.
167         Closes bug #78316.
168
169 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
170
171         * CredentialCache.cs: added DefaultNetworkCredentials.
172
173 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
174
175         * NetworkCredential.cs: implement ICredentialsByHost interface.
176
177 2006-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
178
179         * WebConnection.cs: reset the challenge and the status code when
180         creating the tunnel and sending the proxy auth. headers. Improve error
181         message when there's an error creating the tunnel.
182         * HttpWebRequest.cs: don't trigger an early throw for a POST that gets
183         a 401 or 407 response.
184
185 2006-04-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
186
187         * WebConnectionData.cs:
188         * WebConnection.cs:
189         * HttpWebRequest.cs: when tunneling an ssl conneciton through a proxy,
190         we were not handling a proxy authentication request. Fixes bug #78150
191         take 2.
192
193 2006-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
194
195         * WebProxy.cs: a .ctor was not forwarding the 'credentials' argument.
196         This fixes bug #78150. Also fix the bypass check for local requests.
197
198 2006-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
199
200         * WebProxy.cs: removed bogus ^M.
201
202 2006-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
203
204         * HttpWebResponse.cs: don't remove the Set-Cookie headers. Fixes bug
205         #78028.
206
207 2006-04-04  Atsushi Enomoto  <atsushi@ximian.com>
208
209         * WebClient.cs : added a bunch of async method support.
210
211 2006-04-03  Chris Toshok  <toshok@ximian.com>
212
213         * HttpWebResponse.cs (ContentEncoding): return "" if the header
214         isn't present.
215
216 2006-03-30  Atsushi Enomoto  <atsushi@ximian.com>
217
218         * DownloadStringCompletedEventHandler.cs : missing delegate.
219
220 2006-03-30  Atsushi Enomoto  <atsushi@ximian.com>
221
222         * Dns.cs : minor argument renaming.
223
224 2006-03-28  Atsushi Enomoto  <atsushi@ximian.com>
225
226         * DownloadDataCompletedEventArgs.cs
227           DownloadDataCompletedEventHandler.cs
228           DownloadProgressChangedEventArgs.cs
229           DownloadProgressChangedEventHandler.cs
230           DownloadStringCompletedEventArgs.cs
231           OpenReadCompletedEventArgs.cs
232           OpenReadCompletedEventHandler.cs
233           OpenWriteCompletedEventArgs.cs
234           OpenWriteCompletedEventHandler.cs
235           UploadDataCompletedEventArgs.cs
236           UploadDataCompletedEventHandler.cs
237           UploadFileCompletedEventArgs.cs
238           UploadFileCompletedEventHandler.cs
239           UploadProgressChangedEventArgs.cs
240           UploadProgressChangedEventHandler.cs
241           UploadStringCompletedEventArgs.cs
242           UploadStringCompletedEventHandler.cs
243           UploadValuesCompletedEventArgs.cs
244           UploadValuesCompletedEventHandler.cs : added 2.0 types.
245
246 2006-03-28  Atsushi Enomoto  <atsushi@ximian.com>
247
248         * Dns.cs : filled missing NET_2_0 members.
249
250 2006-03-28  Atsushi Enomoto  <atsushi@ximian.com>
251
252         * IPAddress.cs : ugh, I was testing with run-test-ondotnet, not
253           run-test. Those IPv6 properties needed to be reimplemented.
254
255 2006-03-27  Atsushi Enomoto  <atsushi@ximian.com>
256
257         * IPAddress.cs : added NET_2_0 TryParse() and IPv6 related properties.
258
259 2006-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
260
261         * WebConnectionStream.cs: avoid Begin/EndWrite when the body length is
262         zero.
263
264 2006-03-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
265
266         * HttpWebRequest.cs: send the request if ContentLength is set for
267         POST/PUT, the request stream has that exact amount of bytes in it and
268         we're trying to get the response stream.
269
270         This way, closing the request stream is not needed in order to actually
271         send the request. Fixes bug #77753.
272
273         * WebConnectionStream.cs: throw if the number of bytes written is
274         greater than the specified request content length.
275
276 2006-03-11  Miguel de Icaza  <miguel@novell.com>
277
278         * WebClient.cs: Only expose the right methods to avoid warnings. 
279
280         * FtpDataStream.cs (Dispose): Fix signature.
281
282         * FtpWebResponse.cs: Comment out keepAlive field (unused, sounds
283         like we are missing features here).
284
285         * IPAddress.cs: Move m_HashCode property to the end, and set
286         pragmas to disable warnings.
287
288 2006-02-16  Dick Porter  <dick@ximian.com>
289
290         * IPEndPoint.cs: The SocketAddress AddressFamily takes up the
291         first two bytes, not just one.  Check the size of the
292         SocketAddress buffer for IPv6 as well.
293
294         * Dns.cs: Cope when GetHostByName_internal or
295         GetHostByAddr_internal returns fewer items in the array than it
296         intended to (maybe due to conversion errors.)
297
298 2006-02-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
299
300         * FtpWebResponse.cs: Add UpdateStatus method, to update both
301         statusCode and statusDescription at the same time. 
302
303 2006-02-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
304
305         * FtpWebRequest.cs: Remove WebExceptionStatus argument
306         from CreateExceptionFromResponse, since exceptions gotten
307         from server response always have a WebExceptionStatus.ProtocolError
308         value.
309         
310 2006-02-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
311
312         * FtpWebRequest.cs: Add renaming support when using 
313         WebRequestMethods.Ftp.Rename method.
314         
315 2006-02-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
316
317         * ChunkedInputStream.cs:
318         * ChunkStream.cs: handle partial trailers and zero reads. Patch by Pawel
319         Sakowski.
320
321 2006-02-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
322
323         * HttpWebRequest.cs: don't send the expect-100 if if there's no content.
324
325         * HttpListenerRequest.cs:
326         * HttpConnection.cs:
327         * RequestStream.cs: use the content length header to avoid reading past
328         the end of the stream.
329
330         Patch by Horst Reiterer.
331
332 2006-02-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
333
334         * FtpWebRequest.cs: Add supportedCommands array with the sorted
335         methods, to search using Array.BinarySearch. Remove CheckMethod.
336
337 2006-02-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
338
339         * FtpWebRequest.cs: Fixed some typos and small issues.
340         
341 2006-02-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
342
343         * HttpWebRequest.cs: dummy implementation of UnsafeAuthenticationBlah
344         property.
345
346 2006-02-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
347
348         * FtpRequestCreator.cs: 
349         * FtpAsyncResult.cs:
350         * FtpDataStream.cs:
351         * FtpWebRequest.cs:
352         * FtpWebResponse.cs: Initial implementation of FtpWebRequest (2.0)
353         
354 2006-02-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
355
356         * FtpStatusCode.cs: Fix a typo.
357         
358 2006-01-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
359
360         * WebClient.cs: (2.0) UploadString() returns string, not void.
361
362 2006-01-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
363
364         * HttpWebResponse.cs: ignore non-integer values for max-age and version.
365         Fixes bug #77199. Thanks to Cyrille Colin.
366
367 2006-01-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
368
369         * HttpWebResponse.cs: cope with malformed cookies with '=' as value.
370         Patch by Cyrille Colin. Fixes bug #77179.
371
372 2005-12-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
373
374         * FtpStatusCode.cs: New 2.0 enum.
375
376 2005-12-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
377
378         * CookieContainer.cs: fix matching of subdomains. Patch by Cyrille
379         Colin.
380
381 2005-12-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
382
383         * HttpWebResponse.cs: don't loop forever when no name or value between
384         semicolons. Fixes bug #76943.
385
386 2005-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
387
388         * HttpWebResponse.cs: don't fail if the cookie ends with a 'name'
389         without a value. Fixes bug #76922.
390
391 2005-11-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
392
393         * EndPointListener.cs:
394         * HttpListenerRequest.cs: don't require the Host header for 1.0. Just
395         map that to the '*' or '+' host.
396
397 2005-11-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
398
399         * IPAddress.cs: the byte[] ctor supports length 4 in .NET 2.0.
400         Fixes bug #76792.
401
402 2005-11-21 Senganal T   <tsenganal@novell.com>
403
404         * Dns.cs : corrected a mistake in GetHostEntry ()
405
406 2005-11-21 Senganal T   <tsenganal@novell.com>
407
408         * Dns.cs : added GetHostEntry() method for 2.0 api conformance
409
410 2005-11-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
411
412         * HttpRequestHeader.cs: add missing values.
413
414 2005-11-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
415
416         * HttpListenerPrefixCollection.cs:
417         * HttpWebResponse.cs:
418         * Dns.cs:
419         * HttpListenerRequest.cs:
420         * HttpWebRequest.cs:
421         * HttpListenerResponse.cs: a few signature fixes for 2.0.
422
423 2005-11-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
424
425         * HttpListenerPrefixCollection.cs:
426         * EndPointListener.cs:
427         * HttpStreamAsyncResult.cs:
428         * HttpListenerContext.cs:
429         * HttpListenerBasicIdentity.cs:
430         * AuthenticationSchemeSelector.cs:
431         * HttpListener.cs:
432         * WebHeaderCollection.cs:
433         * ListenerPrefix.cs:
434         * HttpListenerException.cs:
435         * HttpResponseHeader.cs:
436         * EndPointManager.cs:
437         * HttpListenerRequest.cs:
438         * HttpRequestHeader.cs:
439         * BindIPEndPoint.cs:
440         * ResponseStream.cs:
441         * ChunkedInputStream.cs:
442         * HttpStatusCode.cs:
443         * ListenerAsyncResult.cs:
444         * ChunkStream.cs:
445         * HttpConnection.cs:
446         * HttpUtility.cs:
447         * HttpListenerResponse.cs:
448         * RequestStream.cs: initial implementation of HttpListener. There are
449         a few TODOs left (cookies, HTTPS) but almost everything else is in.
450
451 2005-11-15  Sebastien Pouliot  <sebastien@ximian.com>
452
453         * IPv6Address.cs: Added on overload to ToString to get a the full 
454         length address returned (as required by System.Uri).
455
456 2005-11-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
457
458         * WebRequestMethods.cs: New 2.0 class.
459         
460 2005-11-05  Atsushi Enomoto  <atsushi@ximian.com>
461
462         * WebClient: use POST for DownloadData(). Fixed bug #76631.
463
464 2005-10-26  Atsushi Enomoto  <atsushi@ximian.com>
465
466         * AuthenticationSchemes.cs : Fixed enum values and added [Flags].
467
468 2005-10-19  Atsushi Enomoto  <atsushi@ximian.com>
469
470         * WebClient.cs : added net_2_0 DownloadString() and DownloadData()
471           with HTTP method as well.
472
473 2005-10-19  Atsushi Enomoto  <atsushi@ximian.com>
474
475         * WebClient.cs : added UploadString() and Encoding (net_2_0). Added
476           some new overloaded stuff that takes Uri instead of string address.
477
478 2005-10-17  Sebastien Pouliot  <sebastien@ximian.com> 
479
480         * ICredentialPolicy.cs: New. Interface for 2.0.
481
482 2005-10-05  Atsushi Enomoto  <atsushi@ximian.com>
483
484         * AuthenticationSchemes.cs : new 2.0 enum.
485
486 2005-08-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
487
488         * GlobalProxySelection.cs: remove double lock.
489         * HttpWebRequest.cs: remove double lock in GetServicePoint() and use
490         a private object when locking.
491
492 2005-07-15  Miguel de Icaza  <miguel@novell.com>
493
494         * DigestClient.cs: Fix bug #75556, the qop argument must be
495         quoted, per http://www.faqs.org/rfcs/rfc2617.html section
496         `quo-options'.
497
498 2005-07-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
499
500         * WebConnectionStream.cs: initiate writing the body before trying to
501         read. This fixes the performance problems observed in web services.
502         Closes bug #75455.
503
504 2005-06-27  Lluis Sanchez Gual <lluis@novell.com>
505
506         * IPAddress.cs: Changed field names for the sake of serialization
507         interoperability with MS.NET.
508         
509 2005-06-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
510
511         * WebConnection.cs: if cnc.EndRead throws, mark the asyncresult as done.
512         * WebConnectionStream.cs: if we're done with the body of a chunk, don't
513         require the next chunk header to be there, as some servers might close
514         the connection (while also sending 'Connection: close').
515
516 2005-06-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
517
518         * HttpWebRequest.cs: MS implementation follows redirects for POST. Seems
519         to me that this is against 10.3.3 in RFC 2616, but may be the user
520         'authorization' to do this is implicit in AllowAutoRedirect...
521
522 2005-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
523
524         * WebConnection.cs: SslClientStream.BeginRead might not be asynchronous
525         if there's no record available to read. This is a workaround that makes
526         the call to BeginRead itself asynchronous. Fixes bug #75342.
527
528 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
529
530         * WebConnection.cs:
531         * HttpWebRequest.cs:
532         * WebConnectionStream.cs: initiate the polling for input data after
533         sending the header so that we detect any response that the server sends
534         back even if we're still trying to write the request for a POST/PUT.
535         If we get the response (or an error) before any one calls GetResponse(),
536         keep it around instead of ignoring it.
537
538 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
539
540         * HttpWebRequest.cs: send the right header/user/password in
541         PreAuthenticate in presence of a proxy.
542
543 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
544
545         * IPv6Address.cs: fix IsLoopback. Closes bug #75128.
546
547 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
548
549         * IPv6Address.cs: don't do extra check on ipv4 if this is a ipv6
550         address. Fixes bug #75125.
551
552 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
553
554         * ServicePointManager.cs: when going through a proxy, use 2 different
555         service points depending on the scheme. Fixes bug #75135.
556
557 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
558
559         * Dns.cs: don't parse the address when it comes from an IPAddress.
560
561 2005-05-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
562
563         * WebConnection.cs: prevent 2 nullrefs when the aborting during
564         Connect() and reset the status to Success before starting a new
565         request.
566
567 2005-05-19  Sebastien Pouliot  <sebastien@ximian.com>
568
569         * WebRequest.cs: Throw NotImplementedException (not NotSupported
570         Exception) for stuff that should have been abstract. No exception
571         is thrown by the serialization constructor.
572
573 2005-05-04 James Willcox  <james@ximian.com>
574
575         * DigestClient.cs: convert to a hex string with "X8" consistently
576         for nc-value
577
578 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
579
580         * WebConnection.cs: don't rethrow errors in Write, as the error will be
581         received by GetResponse*. The result is that the threadpool thread doing
582         this will not end up printing the exception. Fixes bug #74817.
583
584 2005-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
585
586         * ServicePoint.cs: HostEntry needs to be thread safe.
587
588 2005-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
589
590         * WebConnection.cs: removed a 'slightly' important line by mistake.
591         * WebConnectionStream.cs: if the transfer encoding is chunked, ignore
592         content-length header if present.
593
594 2005-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
595
596         * WebConnection.cs: no need to use an AutoResetEvent.
597         * WebConnectionStream.cs: don't start any more reads on the socket
598         after getting a 0 signalling the end. This fixes Ben's infamous foo.cs
599         test.
600
601 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
602
603         * BasicClient.cs: firefox/IE just send latin1, stripping the high byte
604         from unicode >= 256 characters.
605
606 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
607
608         * BasicClient.cs: use latin1 when encoding the username/domain/password.
609         Fixes bug #74745.
610
611 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
612
613         * WebConnectionStream.cs: if the BeginRead/BeginWrite is completed
614         synchronously, no need to create the ManualResetEvent to wait on.
615
616 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
617
618         * WebConnectionStream.cs: call SetComplete in EndWrite when we're not
619         buffering the request body. Fixes bug #74637.
620
621         * WebAsyncResult.cs: renamed field.
622
623 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
624
625         * WebConnectionStream.cs:
626         * WebAsyncResult.cs: ensure we only call EndRead once per async. result.
627         Update total before invoking the callback when present.
628
629 2005-04-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
630
631         * WebConnection.cs:
632         * WebConnectionStream.cs: don't start reading until we've sent at least
633         the headers. This way we ensure that a Write happens before any Read,
634         which is needed by the SSL code.
635
636 2005-04-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
637
638         * HttpWebRequest.cs: ensure we read everything before redirecting.
639
640 2005-04-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
641
642         * WebConnectionStream.cs: provide a default callback when doing async.
643         read/write and waiting for a timeout so that the callback sets the
644         event and we don't block forever. Fixes bug #74539 take 3.
645
646 2005-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
647
648         * WebConnection.cs:
649         * HttpWebRequest.cs: now Abort() works properly. Fixes bug #74177.
650
651 2005-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
652
653         * WebConnection.cs: fix some breakage from my last patch.
654         * WebConnectionStream.cs: invoke the callback when done even in EndRead.
655
656 2005-04-10  Sebastien Pouliot  <sebastien@ximian.com>
657
658         * WebConnection.cs: Added support for TrustFailure when throwing a
659         WebException. Fix bug #74286.
660
661 2005-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
662
663         * HttpWebRequest.cs: 
664         * WebConnectionStream.cs: implemented support for ReadWriteTimeout.
665
666 2005-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
667
668         * WebConnection.cs: if we're reading chunked data and didn't use the
669         stream to read, we gotta set the async. result as complete and invoke
670         the callback. Don't call nstream.EndRead with the wrong IAsyncResult.
671
672         * WebConnectionStream.cs: in EndRead, pass the correct IAsyncResult to
673         cnc.EndRead. Lock on a field instead of 'this'.
674
675 2005-04-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
676
677         * HttpWebRequest.cs: throw the exception if we got an error, as now
678         it's catched in the redirection handling code.
679
680 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
681
682         * HttpWebRequest.cs: moved redirection handling to a proper place.
683
684 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
685
686         * WebHeaderCollection.cs: added if-modified-since to the list of
687         restricted headers.
688
689         * ServicePoint.cs: use a field object when locking.
690
691 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
692
693         * WebConnectionStream.cs: ForceCompletion actually calls NextRead. No
694         need to wait for a Close/ReadAll when we have no content.
695
696 2005-04-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
697
698         * NtlmClient.cs: fix typo in assembly name.
699
700 2005-03-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
701
702         * CookieContainer.cs: adding to a CookieCollection might not increment
703         the number of items if the cookie is replaced. Now Count works properly.
704         Fixed an array index exception (typo).
705
706         * CookieCollection.cs: also compare the version.
707
708         * HttpWebResponse.cs: when we have cookies, add them to the request
709         container.
710
711         * HttpWebRequest.cs: changed last parameter of HttpWebResponse ctor.
712
713 2005-03-30  Miguel de Icaza  <miguel@novell.com>
714
715         * Cookie.cs: Compare using the InvariantCulture, to match the
716         behavior of CookieContainer that already did this.
717
718 2005-03-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
719
720         * WebConnection.cs: we don't need to trigger the next queued request
721         until the response is closed.
722
723 2005-03-29  Miguel de Icaza  <miguel@novell.com>
724
725         * HttpWebResponse.cs: Handle quotations in the cookies values, per
726         the spec http://www.faqs.org/rfcs/rfc2109.html, it is allowed to
727         have quotations.
728
729 2005-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
730
731         * BasicClient.cs:
732         * DigestClient.cs: check that GetCredential() does not return null.
733
734 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
735
736         * BasicClient.cs: ensure credentials are not null.
737
738 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
739
740         * HttpWebResponse.cs: moved cookie parsing into its own class.
741         * WebHeaderCollection.cs: remove (probably bogus) GetMultipleValues
742         call.
743         * HttpWebRequest.cs: don't let exception raised in the ctor of
744         HttpWebResponse vanish.
745
746         Fixes bug #73275.
747
748 2005-03-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
749
750         * WebHeaderCollection.cs: handle commas inside quotes when splitting
751         a multi-value header. Fixes bug #73151.
752
753 2005-02-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
754
755         * DigestClient.cs: fix for digest auth. and URIs containing query. Patch
756         by James Wilcox. Fixes bug #72571.
757
758 2005-02-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
759
760         * HttpWebResponse.cs:
761         * WebConnection.cs:
762         * HttpWebRequest.cs:
763         * WebConnectionStream.cs: don't read the entire response unless the
764         user requests it. Fixes bug #72443.
765
766 2005-02-08  Zoltan Varga  <vargaz@freemail.hu>
767
768         * IPv6Address.cs: Fix endianess problems.
769
770         * IPAddress.cs: Fix misleading comments.
771
772 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
773
774         * HttpWebRequest.cs: send the headers when we're supposed to write
775         a POST/PUT but call GetResponse before GetRequestStream.
776
777         * WebConnectionStream.cs: new RequestWritten property.
778
779 2005-01-20  Jonathan Pryor  <jonpryor@vt.edu>
780
781         * EndpointPermission.cs: Fix IsSubsetof(hostname) so that the regression 
782           tests work.  In particular, IsSubsetOf ("12.13.*.*", "12.13.14.*") failed
783           because 14 wasn't a subset of * (which it is).  Fix: if part1 is we 
784           continue to the next portion.
785
786 2005-01-20  Jonathan Pryor  <jonpryor@vt.edu>
787
788         * IPAddress.cs (ParseIPV4): Fix so that the regression tests work.  In
789           particular, " foo" and ".1.1.6" weren't being caught (" foo" because it
790           started with a space, and ".1.1.6" because the split string accepted a
791           0-length portion, which would make 1...6 valid, but isn't valid based on
792           similar test cases).
793
794 2005-01-20  Jonathan Pryor  <jonpryor@vt.edu>
795
796         * WebHeaderCollection.cs: Fix GetValues(string) to split the values on
797           commas if the header is a Multi-Value header.  This matches
798           MonoTests.System.Net.WebHeaderCollectionTest.
799
800 2005-01-19  Sebastien Pouliot  <sebastien@ximian.com>
801
802         * WebPermissionAttribute.cs: Fixed NET_1_1 behaviour.
803
804 2004-12-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
805
806         * WebConnectionStream.cs: remove unneeded check. Write detects and
807         triggers the exception now.
808
809 2004-12-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
810
811         * AuthenticationManager.cs: don't lock on a public Type.
812         * HttpWebRequest.cs: read the error response for auth. errors.
813
814 2004-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
815
816         * HttpWebRequest.cs: set webResponse back to null when redirecting.
817         Fix the previous patch so that it reads the whole response even if
818         auto-redirect is not enabled. Closes bug #70484.
819
820 2004-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
821
822         * HttpWebResponse.cs: added ReadAll method.
823
824         * WebConnection.cs: in HandleError, set the response error after
825         closing the socket. Use an async. delegate to finish reading any prior
826         WebConnectionStream.
827
828         * HttpWebRequest.cs: for error responses that allow content, read the
829         stream immediately. Fixes bug #70483.
830
831 2004-12-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
832
833         * CookieContainer.cs: quote the port number.
834
835 2004-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
836
837         * WebConnection.cs:
838         * WebConnectionStream.cs: removed TryReconnect. It's no longer needed.
839
840 2004-12-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
841
842         * WebConnection.cs: set the event in Close so that if the queue is
843         empty, we won't block forever on next request. The finalizer was
844         removed because we're not implementing IDisposable pattern here.
845
846 2004-12-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
847
848         * WebConnection.cs: handle errors on chunked streams. Fixes bug #66858.
849         * ChunkStream.cs: added error checking all over.
850
851         * HttpWebRequest.cs: throw the exception received in SetResponseError
852         if we already have a response.
853         (SetRequestData): Don't nest the exception if it's a WebException.
854
855 2004-12-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
856
857         * WebConnection.cs: remove prevStream and don't set busy to false in
858         HandleError. prevStream is not needed any more and setting 'busy' so
859         early might let a request skip the queue.
860         
861         * WebConnectionGroup.cs: decrement the indexer when removing a dead
862         reference from the arraylist.
863
864         * WebConnectionStream.cs:
865         (ReadAll): call NextRead if it has not been called before even when
866         we have completed the request. Reuse the read buffer when reading a
867         response of unknown size. Increase the buffer to 8kB.
868         (BeginRead): increase pendingReads earlier and even when reading from
869         the internal buffer.
870         (EndRead): decrease pendingReads later and always.
871
872 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
873
874         * CookieContainer.cs: style, fixed checks for properties, implemented
875         the MonoTODOs for the method that take an Uri. GetCookies and
876         GetCookieHeaders now really return only the cookies that are requested
877         filtering by the Uri parameter.
878
879         * Cookie.cs: style, added default values for Comment, Domain and Port.
880
881 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
882
883         * CookieCollection.cs: reformatted, fixed Add by adding a new method to
884         search across the arraylist, as list.IndexOf is not what we want.
885
886 2004-11-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
887
888         * WebConnection.cs: check for FIN or RST on the socket before reusing.
889         Fixes bug #69388.
890
891 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
892
893         * ChunkStream.cs: simplified condition for WantMore property.
894
895         * WebConnection.cs: in Connect(), finish any pending reads we might
896         have for chunked data. Ignore possible blank lines at the very
897         beginning of the server response. Honor user set KeepAlive in
898         HttpWebRequest for HTTP/1.1 connections. Thanks to Eyal Alayuf for
899         his suggestions and code.
900
901 2004-11-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
902
903         * HttpWebResponse.cs: don't lock up when the cookie received ends with
904         a semicolon. Patch by Darryl VanDorp. Fixes bug #68956.
905
906 2004-10-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
907
908         * HttpWebRequest.cs: don't fail if the request has already been sent
909         when accessing ContentType setter. Fixes bug #68848.
910
911 2004-10-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
912
913         * ChunkStream.cs:
914         (WantMore): we're not done until we get a 0 chunk size and the trailer.
915         The 0 can be expressed as more than one character too (ie, 000000).
916
917         * HttpWebRequest.cs: new argument in SetResponseError.
918         * WebConnection.cs: added argument to HandleError as a hint for
919         debugging.
920         (Connect): make the chunked stream be in the expected state when
921         reusing.
922
923         * WebConnectionStream.cs: removed unused method (ResetWriteBuffer).
924
925 2004-10-10 David Sheldon <dave-mono@earth.li>
926
927         * HttpWebRequest.cs: Use RemoveAndAdd for AddRange. Fixes unittest.
928
929 2004-10-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
930
931         * HttpWebRequest.cs: use RemoveAndAdd for headers multivalue headers.
932         * WebHeaderCollection.cs: added RemoveAndAdd that behaves like the old
933         SetInternal.
934
935 2004-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
936
937         * HttpWebRequest.cs: ProxyQuery returns true when we use a proxy without
938         tunneling a secure connection.
939
940         * ServicePoint.cs: added UseConnect property.
941
942         * ServicePointManager.cs: set the UseConnect property when we use a http
943         proxy for a https connection.
944
945         * WebConnection.cs: setup the tunnled connection when using a proxy and
946         https.
947
948 2004-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
949
950         * HttpWebResponse.cs: remove unused SplitValue method.
951
952 2004-09-10  Sebastien Pouliot  <sebastien@ximian.com>
953
954         * DnsPermission.cs: Updated to pass new unit tests.
955         * DnsPermissionAttribute.cs: Cleanup.
956         * SocketPermission.cs: Updated to pass new unit tests.
957         * SocketPermissionAttribute.cs: Updated to pass new unit tests.
958         * WebPermission.cs: Implemented some TODO - not complete yet.
959         * WebPermissionAttribute.cs: Updated to pass new unit tests.
960
961 2004-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
962
963         * Cookie.cs: don't fail when using default constructor. Fixes bug
964         #62890.
965
966 2004-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
967
968         * HttpWebResponse.cs: set-cookie and set-cookie2 can be present more
969         than once and have multiple values. Don't rely on string.split when
970         parsing cookie values.
971
972         * WebHeaderCollection.cs: same thing for set-cookie and set-cookie2.
973         Fixed GetValues (it was splitting values that contained a comma) and
974         changed SetInternal to handle multi-value headers.
975
976         Fixes bug #62744.
977
978 2004-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
979
980         * WebProxy.cs: fix scheme detection. Patch by Konstantin Triger
981         (kostat@mainsoft.com).
982
983 2004-07-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
984
985         * HttpWebRequest.cs: detect changes in scheme or port when redirecting.
986         Fixes las take on bug 61218.
987
988 2004-07-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
989
990         * WebConnection.cs: moved loading of the ssl stream Type to its own
991         method. Don't create a new ssl stream if we're reusing the connection.
992
993         * WebConnectionStream.cs: ensure the number of bytes copied in ReadAll
994         is the expected even if the dta from the server has extra bytes.
995
996 2004-07-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
997
998         * WebConnection.cs:
999         * WebConnectionStream.cs: when the status code is 1xx, 204 or 304,
1000         "responses MUST NOT include a message-body". We tried to read the
1001         stream even when getting those codes and considered the 0 length
1002         read as a failure.
1003
1004 2004-07-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1005
1006         * HttpWebRequest.cs: removed bogus Monitor.Exit.
1007         * WebConnection.cs: use Address instead of RequestUri when checking for
1008         the scheme in order to select the stream type. Fixes bug #61218.
1009
1010 2004-06-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1011
1012         * ChunkStream.cs: added ChunkLeft property.
1013         * WebConnection.cs:
1014         (EndRead): when using small byte arrays to read from a chunked stream,
1015         ensure we've read the chunk size and try to fulfill the request
1016         completely. fixes bug 59653.
1017
1018 2004-05-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1019
1020         * WebConnectionStream.cs: fixed CanRead property. Closes bug #59273.
1021
1022 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1023
1024         * DigestClient.cs: cache the sessions based on address and
1025         credentials, not only address. Added poor men's expiration to
1026         the session cache. Fixes bug #59202.
1027
1028 2004-05-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1029
1030         * IPAddress.cs:
1031         * IPEndPoint.cs:
1032         * IPv6Address.cs: no more warnings about IPAddress.Address.
1033
1034 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1035
1036         * WebException.cs: implemented serialization .ctor and
1037         GetObjectData().
1038
1039 2004-05-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1040
1041         * WebAsyncResult.cs: don't create the WaitHandle if not needed.
1042
1043 2004-05-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1044
1045         * HttpWebRequest.cs: added 3 missing properties for 1.1. They are not
1046         used yet.
1047
1048         * NetConfig.cs: added MaxResponseHeadersLength field.
1049
1050         * ServicePoint.cs:
1051         * ServicePointManager.cs: added missing properties for 1.1. 
1052
1053 2004-05-03  Sebastien Pouliot  <sebastien@ximian.com>
1054
1055         * WebConnection.cs: Use assembly name const to load Mono.Security.
1056
1057 2004-05-03  Lluis Sanchez Gual <lluis@ximian.com>
1058
1059         * NtlmClient.cs: Use assembly name const to load Mono.Security.
1060
1061 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1062
1063         * WebConnectionStream.cs: avoid the exception when getting the content
1064         length if possible.
1065
1066 2004-03-29  Lluis Sanchez Gual <lluis@ximian.com>
1067
1068         * HttpWebRequest.cs: Use a lock block instead of Monitor.Enter/Exit, so
1069         the lock is released in case of exception (for example, a 
1070         ThreadAbortException). This also "fixes" bug #52417.
1071         Beware, this requires a runtime update (due to a bug in Monitor.Exit).
1072         * ServicePoint.cs: Changed method from internal to private, since it
1073         is not called from outside the class.
1074
1075 2004-03-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1076
1077         * HttpWebRequest.cs: added the exception status to the error message.
1078         * WebConnection.cs: add headers using SetInternal instead of Add to
1079         bypass header name validation. Fixes bug #55994.
1080         * WebHeaderCollection.cs: added SetInternal (string header).
1081
1082 2004-03-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1083
1084         * WebConnection.cs:
1085         * WebConnectionGroup.cs: the requests queue is now shared for all the
1086         connections belonging to the same connection group.
1087
1088 2004-02-26  Sebastien Pouliot  <sebastien@ximian.com>
1089
1090         * DefaultCertificatePolicy.cs: New. Certificate validation
1091         policy compatible with the documented one present in Fx. It
1092         allows valid certificates and expired certificates to be used
1093         for SSL connections.
1094         * ServicePointManager.cs: Removed the DummyPolicy. Now creates
1095         a DefaultCertificatePolicy to validate certificates. 
1096
1097 2004-02-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1098
1099         * ServicePoint.cs: SendContinue is always false for HTTP/1.0
1100
1101         * WebConnection.cs: get rid of WaitForContinue() (yes!) and prevent
1102         calling more the ContinueDelegate more than once when we get the
1103         headers in several packets.
1104
1105         * WebConnectionStream.cs: removed call to WaitForContinue.
1106
1107 2004-02-25  Sebastien Pouliot  <sebastien@ximian.com>
1108
1109         * WebConnection.cs: Update previous patch to use HttpsClientStream
1110         (internal in Mono.Security assembly) in place of SslClientStream.
1111         This will reduce reflection and allow to use ICertificatePolicy.
1112
1113 2004-02-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1114
1115         * DigestClient.cs: fix quote handling. Reordered attributes in response.
1116         Fixed typo (QOP->CNonce). Now Digest works with apache2.
1117
1118 2004-02-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1119
1120         * DigestClient.cs: removed Console.
1121         * HttpWebRequest.cs: 401/407 were hanging for GET. Fixed.
1122
1123 2004-02-24  Sebastien Pouliot  <sebastien@ximian.com>
1124
1125         * DigestClient.cs: Fixed issue with Apache server which do not use "
1126         for specifying the digest algorithm (.e.g. algorithm=MD5 not ="MD5").
1127
1128 2004-02-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1129
1130         * HttpWebRequest.cs: arghhh. I used the server response headers instead
1131         of what the client is supposed to send. Thanks to Helge Hess.
1132
1133 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1134
1135         * AuthenticationManager.cs: implemented PreAuthenticate().
1136
1137         * HttpWebRequest.cs: once we know the version of the server, use it if
1138         below the requested one. Remove 'Expect', 'Content-Length' and /or 
1139         'Transfer-Encoding' if appropiate due to changes in version. Fixed 
1140         'Host' header for non-standard ports. Support preauthentication. Closes
1141         bug #50530.
1142
1143 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1144
1145         * HttpWebRequest.cs: check for missing or wrong URI in Location header
1146         when redirecting.
1147
1148         * WebConnection.cs: if the data read does not contain all the headers,
1149         keep it around and read the rest until we get to the response body.
1150         Allow response code with no description. Fixed bug #54543.
1151
1152 2004-02-18  Sebastien Pouliot  <sebastien@ximian.com>
1153
1154         * SecurityProtocolType.cs: Added missing [Serializable] to enum. Added 
1155         Default and Ssl2 to NET_2_0 profile. Enum is now internal for NET_1_0
1156         profile (as we need it for SslClientStream).
1157         * ServicePoint.cs: Added internal SetCertificates(client,server).
1158         * ServicePointManager.cs: Added CheckCertificateRevocationList and
1159         CheckCertificateRevocationList static properties (public in 1.1, 
1160         internal for 1.0).
1161         * WebConnection.cs: Dynamically creates a SslClientStream (from 
1162         Mono.Security assembly) in case of https. Changed NetworkStream to 
1163         Stream everywhere.
1164
1165 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1166
1167         * HttpWebRequest.cs: send the 'Connection: keep-alive' header when we
1168         don't know the server version or it's 1.0.
1169
1170         * ServicePoint.cs: added SetVersion.
1171
1172         * WebAsyncResult.cs: remove ChunkAsyncResult.
1173
1174         * WebConnection.cs: set the ServicePoint version when getting a response
1175         from the server.
1176
1177         * WebConnectionStream.cs: when posting chunked content, send the head,
1178         body and trailer of the chunk at once instead of doing 3 separate
1179         writes, which may cause troubles.
1180
1181 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1182
1183         * WebConnection.cs: if we get a 100 when we're not waiting for it, set
1184         that information in the ServicePoint.
1185
1186         * WebConnectionStream.cs: send headers in the right order for
1187         non-chunked POST.
1188
1189 2004-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1190
1191         * WebConnectionStream.cs: fixed nullrefs in BeginWrite/EndWrite.
1192
1193 2004-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1194
1195         * HttpWebRequest.cs: on second and sucesive tries when authenticating,
1196         don't use chunked encoding for POST, as we know the content length and
1197         have the body. Nullify bodyBuffer always in CheckFinalStatus.
1198
1199         * WebAsyncResult.cs: added ChunkAsyncResult property. It holds the
1200         IAsyncResult when writing CRLF at the end of a chunk.
1201
1202         * WebConnectionStream.cs: support sending chunked data.
1203
1204 2004-01-24  Lluis Sanchez Gual <lluis@ximian.com>
1205
1206         * HttpWebRequest.cs: When retrying a POST request after an
1207         authentication failure, resend the body. This fixes bug #51841.
1208         * WebConnectionStream.cs: Added properties for getting what's been
1209         written.
1210
1211 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1212
1213         * HttpWebRequest.cs: don't send 'Expect: 100-continue' for 1.0 version.
1214
1215 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1216
1217         * HttpWebRequest.cs: support proxy authentication.
1218
1219 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1220
1221         * BasicClient.cs:
1222         * DigestClient.cs: use IndexOf instead of StartsWith to deal with
1223         servers that provide several authentication schemas.
1224
1225 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1226
1227         * ChunkStream.cs: use an array of buffers instead of a MemoryStream for
1228         storing the chunks. This way, we won't miss traling data from the
1229         previous chunk when a new one is received before the other is fully
1230         read.
1231
1232 2004-01-27  Nick Drochak <ndrochak@ieee.org>
1233
1234         * DigestClient.cs:
1235         * HttpWebRequest.cs:
1236         * IPv6Address.cs:
1237         * WebClient.cs:
1238         * WebConnection.cs:
1239         * WebConnectionStream.cs: Remove unused variables thus eliminating some
1240         build warnings.
1241
1242 2004-01-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1243
1244         * WebConnection.cs: patch by Yaacov Akiba Slama that fixes 100-continue
1245         handling for the case when the same packet also contains the actual
1246         [2-5]xx response.
1247
1248 2004-01-24  Lluis Sanchez Gual <lluis@ximian.com>
1249
1250         * HttpWebRequest.cs: Added missing property.
1251
1252 2004-01-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1253
1254         * Dns.cs: don't block forever in EndResolve and EndGetHostByName. Fixes
1255         bug #53222.
1256
1257 2004-01-16  Lluis Sanchez Gual <lluis@ximian.com>
1258
1259         * ChunkStream.cs: The "size" parameter of Write is not the number of
1260         bytes to write, but the last offset to be written. Thus, in WriteAndRead
1261         Back, since "read" is not an offset but the number of bytes, it must be 
1262         added to the offset. Maybe it would be a good idea to change the name of
1263         the parameter, since it is confusing. This should fix bug #52591.
1264
1265 2004-01-12  Lluis Sanchez Gual <lluis@ximian.com>
1266
1267         * WebConnection.cs: Yet another fix for WebConnection. This fixes 
1268         bug #52169.
1269
1270 2004-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1271
1272         * WebConnection.cs: Data.Init is a bad boy. Lluis realized. He also
1273         tidied up the end of ReadDone. Disabled relaunching the request if 2
1274         InitRead are called, since now we don't throw everything into
1275         RegisterWaitForSingleObject but one request at a time.
1276
1277         * WebConnectionGroup.cs: when checking available connections, allow them
1278         not to be Connected but allocated to honor the connection limit.
1279         
1280         * WebConnectionStream.cs: CheckComplete() now checks for nextReadCalled
1281         too. ReadAll don't mess contentLength if it's provided in the headers.
1282
1283         BIG thanks to Lluis. Turns out that we were debugging the same stuff and
1284         his Data.Init discovery was THE thing I was missing.
1285
1286         Fixes bug #51277.
1287
1288 2004-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1289
1290         * ServicePointManager.cs: use GetMaxConnections to get the appropiate
1291         number of connections limit.
1292
1293 2004-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1294
1295         * MonoHttpDate.cs: use the invariant culture, not en-US. Suspected
1296         guilty for bug 52629.
1297
1298 2003-12-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1299
1300         * CredentialCache.cs: return null instead of throwing NotImplemented.
1301
1302 2003-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1303
1304         * HttpWebRequest.cs: fixed checking if method allows a body. Patch by
1305         Benjamin Jemlich (pcgod@gmx.net).
1306
1307 2003-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1308
1309         * HttpWebRequest.cs: deal with authentication schemes that have more
1310         than 1 round trip (Ntlm).
1311
1312 2003-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1313
1314         * NtlmClient.cs: new class that actually uses one from Mono.Http to do
1315         the authentication.
1316
1317 2003-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1318
1319         * HttpWebRequest.cs: when building the redirect URI, use the previous
1320         one as the base URI, which makes relative URIs work.
1321
1322 2003-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1323
1324         * DigestClient.cs: merged in code from Sebastien Pouliot and Greg
1325         Reinacker that Supports cnonce and preauthentication.
1326
1327 2003-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1328
1329         * DigestClient.cs: initial Digest authentication. Works with apache
1330         mod_digest.
1331
1332 2003-11-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1333
1334         * HttpWebRequest.cs: removed unneeded StringBuilder.
1335         * WebConnection.cs: default to keep the connection open for HTTP/1.1
1336         only or HTTP/1.0 + (Proxy-)Connection header. Fixes bug #51208.
1337
1338 2003-11-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1339
1340         * WebConnection.cs: turns out that socket.Connected is not useful until
1341         we actually try to send/receive data, even if the other end has already
1342         closed the socket. Added TryReconnect() and Connected.
1343
1344         * WebConnectionData.cs: default value for StatusCode is 0 now.
1345
1346         * WebConnectionGroup.cs: reuse the connection since the beginning,
1347         instead of opening up to ConnectionLimit and then reusing.
1348
1349         * WebConnectionStream.cs: reopen the socket if we're trying to reuse
1350         one which fails on first write.
1351
1352 2003-11-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1353
1354         * WebConnectionStream.cs: when a callback is passed to BeginRead/Write,
1355         wrap it and do our job before calling it. Fixes bug #48497.
1356
1357 2003-11-12  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1358
1359         * WebExceptionStatus.cs: Restyled, Added .Net 1.1 members
1360         * SecurityProtocolType.cs: Added and implemented
1361
1362 2003-11-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1363
1364         * HttpWebRequest.cs: fixed redirects when they target another host.
1365
1366 2003-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1367
1368         * IPAddress.cs: prevent exceptions when trying to parse the static IPv6
1369         addresses.
1370
1371 2003-10-17  Pedro Martínez Juliá  <yoros@wanadoo.es>
1372
1373         * WebClient.cs: use Path.DirectorySeparator instead of "/" for
1374         windows compatibility. Add some checks for file paths like
1375         "C:/xxx/yyy/..." and like "/home/xxx/...".
1376
1377 2003-10-16  Pedro Martínez Juliá  <yoros@wanadoo.es>
1378
1379         * WebClient.cs: added a slash between directory and file names.
1380
1381 2003-10-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1382
1383         * HttpWebRequest.cs:
1384         * HttpWebResponse.cs: better abort handling and leave the stream in a
1385         stable status on abort.
1386
1387 2003-10-12  Pedro Martínez Juliá  <yoros@wanadoo.es>
1388
1389         * WebClient.cs: refine reading of local files (like MS.NET).
1390
1391 2003-10-10  Pedro Martínez Juliá  <yoros@wanadoo.es>
1392
1393         * WebClient.cs: MS.NET works right when we try OpenRead("file.txt")
1394         but we didn't. Now, when Uri fails with an exception, it adds
1395         "file://" before the URI and tries again.
1396
1397 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1398
1399         * ServicePoint.cs: preparing for recycling. Not yet finished.
1400         * ServicePointManager.cs: this is the one that reads config.
1401         * WebConnectionGroup.cs: don't read config here.
1402         * WebConnection.cs: added the queue again. Launch queued requests on
1403         error.
1404
1405 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1406
1407         * WebConnection.cs: the queue is now handled by the threadpool.
1408         Initialize the connection data in a place where it does not depend on
1409         the execution order of the requests in threadpool. More error handling.
1410
1411         * WebConnectionGroup.cs: use the limits in the config file and reuse
1412         connections when the limit is reached.
1413
1414 2003-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1415
1416         * HttpWebRequest.cs: handle 304 Ã  la MS.
1417         * WebConnection.cs: set the response data when reading 0 bytes.
1418
1419 2003-09-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1420
1421         * WebConnectionStream.cs: fix by Lluis to avoid the stream being in an
1422         invalid state.
1423
1424 2003-08-14  Nick Drochak <ndrochak@gol.com>
1425
1426         * WebRequest.cs: Check lower case string since that is what we will add.
1427
1428 2003-08-04  Jerome Laban <jlaban@wanadoo.fr>
1429
1430         * IPHostEntry.cs: Default contructor must not initialize members.
1431         (Fixes bug #45575).
1432
1433 2003-07-27  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1434
1435         * CredentialCache.cs: Removed undefined serializable attribute
1436
1437 2003-07-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1438
1439         * ChunkStream.cs:
1440         (WantMore): true if we've not received the last chunk yet. Fixes
1441         bug #45463. Thanks to Miguel for tracking this down and providing a
1442         test case.
1443         
1444         * WebConnection.cs: removed bogus ^M's.
1445         
1446         * WebHeaderCollection.cs: provide more info when the header or value is
1447         wrong.
1448
1449 2003-07-15  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1450
1451         * ChunkStream.cs: Removed unused members
1452         * IPAddress.cs: Removed unused exception variable, fixes compiler
1453         warning.
1454         * WebConnection.cs: Removed unused exception variables, fixes compiler
1455         warnings.
1456
1457 2003-07-14  Lluis Sanchez Gual <lluis@ximian.com>
1458
1459         * NetConfig.cs: If Clone method is not public, then it must use
1460           explicit interface method implementation syntax.
1461
1462 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
1463
1464         * Dns.cs: Reworked indentation.
1465         Added IPv6 support.
1466         Added literal address checking in GetHostByAddress.
1467         Changed Dns.Resolve behavior.
1468         * IPAddress.cs:
1469         * IPEndPoint.cs: Added IPv6 support.
1470         * IPv6Address.cs: Added address compression.
1471         * NetConfig.cs: Added configuration section.    
1472
1473 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
1474
1475         * ServicePoint.cs: Removed Connect and GetEndPoint methods.
1476         Removed reverse resolution when uri is literal IP address. 
1477         * WebConnection.cs: IPv6 compatibility update: Try to connect
1478         to all addresses returned by IPHostEntry.
1479         * WebConnectionGroup.cs: Removed unused parameter. 
1480
1481 2003-07-13  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1482
1483         * WebProxy.cs: Add serialization/ deserialization support
1484
1485 2003-07-10  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1486
1487         * ProxyUseType.cs:
1488         * WebStatus.cs: Deleted (do not exist in this assembly)
1489         * IPv6Address.cs: Made internal
1490
1491 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1492
1493         * HttpWebRequest.cs:
1494         * ServicePointManager.cs:
1495         * WebConnection.cs: added support for proxies.
1496
1497 2003-07-05  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1498
1499         * DnsPermissionAttribute.cs:
1500         * SocketPermissionAttribute.cs: Fixed wrong AttributeUsageAttribute
1501
1502 2003-07-05  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1503
1504         * WebPermission.cs: Added and partially implemented
1505         * WebPermissionAttribute.cs: Added and implemented
1506
1507 2003-07-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1508
1509         * WebClient.cs: fixed bug #45651.
1510
1511 2003-06-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1512
1513         * WebClient.cs: Small fix by Sebastian <scut@nb.in-berlin.de>.
1514
1515 2003-06-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1516
1517         * WebConnection.cs: fixed header writing the reusing a connection and
1518         the server does not send 100-continue response.
1519
1520 2003-06-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1521
1522         * WebConnection.cs: close the socket and connection when disposing.
1523         * WebRequest.cs: removed setter for RequestUri. Allow non-public ctors
1524         when creating instances.
1525
1526         * HttpWebRequest.cs:
1527         * HttpWebResponse.cs:
1528         * FileWebRequest.cs: support serialization.
1529
1530         * FileWebResponse.cs: support serialization and fixed dispose checks.
1531
1532         * FileWebRequestCreator.cs:
1533         * HttpRequestCreator.cs: added internal .ctor.
1534
1535 2003-06-24  Lluis Sanchez Gual <lluis@ximian.com>
1536
1537         * HttpWebRequest.cs: SetWriteStream(): SendRequestHeaders should be
1538         called before asyncWrite.SetCompleted, to make sure that the waiting
1539         thread does not start to send more information before
1540         SendRequestHeaders has finished.
1541
1542 2003-06-22  Lluis Sanchez Gual <lluis@ximian.com>
1543
1544         * WebConnectionStream.cs: Only increment pendingReads if an asynchronous
1545         read is really needed.
1546
1547 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1548
1549         * WebHeaderCollection.cs: prevent duplication headers used niternally.
1550
1551 2003-06-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1552
1553         * HttpWebRequest.cs: if CookieContainer has not been set, make
1554         HttpWebResponse ignore Set-Cookie* headers.
1555
1556         * HttpWebResponse.cs: Set-Cookie and Set-Cookie headers removed if
1557         CookieContainer have been provided to the request.
1558
1559 2003-06-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1560
1561         * AuthenticationManager.cs: get the list of authentication modules from
1562         the configuration files. Added Clear and fixed Unregister.
1563
1564         * BasicClient.cs: fully implemented.
1565
1566         * HttpWebRequest.cs: added support for Basic authentication when
1567         credentials are set.
1568
1569         * NetworkCredential.cs: fixed GetCredential.
1570
1571 2003-06-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1572
1573         * HttpWebRequest.cs: *really* take care of requestSent to prevent
1574         sending the same request twice.
1575         * WebAsyncResult.cs: don't close the handle. Just Reset.
1576         * WebConnectionStream.cs: removed unneeded line.
1577
1578 2003-06-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1579
1580         * HttpWebRequest.cs: use InternalClose when we are not going to send the
1581         rest of the request stream because of an error after sending the
1582         headers.
1583
1584         * WebConnection.cs: check for completion after setting the response.
1585         Enable reading in NextRead.
1586
1587         * WebConnectionStream.cs: re-fixed the count for partially buffered
1588         reads. If the network stream returns 0 bytes, we're done.
1589
1590 2003-06-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1591
1592         * WebClient.cs: implemented UploadFile. Fixed SetupRequest to set the
1593         special headers *after* the others.
1594
1595 2003-06-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1596
1597         * WebConnectionStream.cs: when the read is partially filled from the
1598         initial buffer, add those bytes too. Thanks to Lluis for debugging this.
1599
1600 2003-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1601
1602         * HttpWebRequest.cs: added ExpectContinue property.
1603         * WebConnection.cs: allow 100 Continue to be delayed after waiting for
1604         it.
1605
1606 2003-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1607
1608         * HttpWebRequest.cs: don't send "Expect: 100-continue" is the server
1609         is known not to respond to that.
1610
1611         * ServicePoint.cs: added SendContinue property.
1612
1613         * WebConnection.cs: only wait 2 seconds for a continue reply. If it
1614         timeouts, set SendContinue to false and proceeed sending data.
1615
1616         * WebConnectionStream.cs: if 100-continue is not received and instead we
1617         get a 417 or anything else, don't send the data.
1618
1619         * WebClient.cs: implemented all missing properties and methods except
1620         UploadFile.
1621
1622 2003-06-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1623
1624         * FileWebRequestCreator.cs: splitted from WebRequest.
1625         * HttpRequestCreator.cs: splitted fromWebRequest.
1626         * WebRequest.cs: added methods that are used by the new configuration
1627         handler to set prefix/type name requests creators.
1628
1629 2003-06-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1630
1631         * AuthenticationManager.cs:
1632         * Authorization.cs:
1633         * BasicClient.cs: new file.
1634         * ChunkStream.cs: new file.
1635         * Cookie.cs:
1636         * CookieContainer.cs:
1637         * GlobalProxySelection.cs:
1638         * HttpWebRequest.cs:
1639         * HttpWebResponse.cs:
1640         * IAuthenticationModule.cs:
1641         * ServicePoint.cs:
1642         * ServicePointManager.cs:
1643         * WebAsyncResult.cs: new file.
1644         * WebConnection.cs: new file.
1645         * WebConnectionData.cs: new file.
1646         * WebConnectionGroup.cs: new file.
1647         * WebConnectionStream.cs: new file.
1648         * WebException.cs:
1649         * WebHeaderCollection.cs:
1650         * WebProxy.cs:
1651         * WebResponse.cs:
1652
1653         Reworked HttpWebRequest and related classes.
1654
1655 2003-05-30  Miguel de Icaza  <miguel@ximian.com>
1656
1657         * HttpWebRequest.cs (EndGetResponse): Do not throw exceptions on
1658         InternalServerError (500)
1659
1660 2003-05-29  Miguel de Icaza  <miguel@ximian.com>
1661
1662         * HttpWebRequest.cs (Close): Move the code that accumulates the
1663         output to Close from Flush.  Flush could have been called in the
1664         middle of the processing, and would have generated invalid results
1665         (which it did).
1666
1667 2003-05-23  Zoltan Varga  <vargaz@freemail.hu>
1668
1669         * Dns.cs (GetHostByAddress): Return the local host when called with
1670         IF_ANY.
1671
1672 2003-04-29  Miguel de Icaza  <miguel@ximian.com>
1673
1674         * WebClient.cs (DownloadData): Close the underlyng stream.
1675         (DownloadFile): Use using, so the file gets closed.
1676
1677 2003-04-24  Miguel de Icaza  <miguel@ximian.com>
1678
1679         * WebClient.cs (DownloadData): Instead of using a MemoryStream,
1680         keep track of all the small chunks in an ArrayList.  The
1681         MemoryStream had the property of reallocating itself, and the
1682         problem was that MemoryStream.GetBuffer would return the buffer
1683         (correctly), but not something of the right size.  So clients of
1684         DownloadData would get the extra unused bytes as part of the
1685         result.
1686
1687         The solution would have been to make another copy at this point,
1688         instead, we only keep the small allocations around in the
1689         ArrayList, and we only do one large allocation at the end.
1690
1691         * HttpWebResponse.cs: If there is a Content-Length header, pass
1692         this information to our HttpWebResponseStream, so it knows when to
1693         stop, instead of waiting for the stream to be shut down by the
1694         other end.
1695
1696         * HttpWebRequest.cs: Only set the `delay-header-writing' mode on
1697         the underlying stream if the method will do a content transfer and
1698         no Content-Length was provided. If not (HEAD and GET or
1699         Content-Length provided), keep going.
1700         
1701 2003-04-23  Miguel de Icaza  <miguel@ximian.com>
1702
1703         * HttpWebRequest.cs: .NET Allows the HttpWebRequest to not have
1704         the ContentLength specified on the request.  If that happens, we
1705         have to accumulate all the data written, and once we accumulate
1706         the data, we send it off.  
1707
1708         Notice that the documentation in .NET is actually incorrect, they
1709         state that setting ContentLength is mandatory.  It is not.
1710
1711 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1712
1713         * HttpWebResponse.cs: fixes bug #41180.
1714
1715 2003-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1716
1717         * HttpWebRequest.cs: throw an exception is the response code is >= 300.
1718
1719 2003-03-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1720
1721         * HttpWebRequest.cs: implemented IDisposable, make the request stream
1722         read only. Changed the way of disposing the socket.
1723
1724         * HttpWebResponse.cs: wrapped the socket in a write-only NetworkStream,
1725         handle chunked transfer encoding (no more hangs), added serialization
1726         stuff, call CheckDisposed at the beginning of methods/properties (not
1727         in a finally clause).
1728
1729 2003-02-17  Nick Drochak <ndrochak@gol.com>
1730
1731         * WebClient.cs : Implemented Credentials property.
1732
1733 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1734
1735         * SocketAddress.cs: byte 1 of the data is the high byte of the family,
1736         not the size.
1737
1738 2003-01-29  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1739
1740         * WebClient.cs : hacked OpenRead, DownloadData and DownloadFile.
1741
1742 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1743
1744         * HttpWebRequest.cs: applied patch from Tim Haynes
1745         (thaynes@openlinksw.com).
1746
1747         Avoided double-sending of the request to the server when both
1748         GetRequestStream() and GetResponse() are called.
1749         System Header attributes survive the Headers attribute set.
1750         Added handling of Connection: KeepAlive/Close
1751
1752 2002-10-03  Dick Porter  <dick@ximian.com>
1753
1754         * Dns.cs: Fixed GetHostName()
1755
1756 2002-09-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1757
1758         * HttpWebRequest.cs:
1759         * HttpWebResponse.cs: applied another patch from Shahms E. King
1760         (shahms@shahms.com).
1761
1762 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1763
1764         * HttpWebRequest.cs:
1765         * HttpWebResponse.cs: applied patch from Shahms E. King
1766         (shahms@shahms.com).
1767
1768 2002-05-29  Lawrence Pit <loz@cable.a2000.nl>
1769
1770         * MonoHttpDate.cs: added
1771         * HttpWebRequest.cs: using MonoHttpDate
1772         * HttpWebResponse.cs: using MonoHttpDate
1773         * DnsPermission.cs: correct XML output
1774         * SocketPermission.cs: correct XML output
1775
1776 2002-05-21  Lawrence Pit <loz@cable.a2000.nl>
1777
1778         * WebClient.cs: stubbed
1779         * WebProxy.cs: fixed bug; had to change internal representation
1780         of bypasslist to ArrayList, different implementation of checking
1781         regex's.
1782
1783 2002-05-20  Lawrence Pit <loz@cable.a2000.nl>
1784
1785         * WebProxy.cs: added, implemented
1786         * ServicePoint.cs: implemented most
1787         * ServicePointManager.cs: implemented
1788         * HttpWebRequest.cs: started implementation
1789         * HttpWebResponse.cs: improved disposable routines
1790         * FileWebRequest.cs: slight improvement of Close method
1791         
1792 2002-05-19  Lawrence Pit <loz@cable.a2000.nl>
1793
1794         * FileWebRequest.cs: finished implementation of async methods.
1795         * FileWebResponse.cs: improved disposable routines.
1796         * IPEndPoint.cs: fixed bug #24666 in Serialize and Create methods, 
1797         byte ordering of address was backwards.
1798
1799 2002-05-13  Lawrence Pit <loz@cable.a2000.nl>
1800
1801         * Dns.cs: Reimplemented (simplified and fixed) asynchronous methods by
1802         relying on standard asynchronous delegate features. Added checks for
1803         null strings.
1804         * HttpWebResponse.cs: implemented properties
1805         * FileWebResponse.cs: improved the way resources are disposed.
1806         * FileWebRequest.cs: started implementation of asynchronous methods
1807         * ServicePointManager.cs: implemented properties
1808
1809 2002-05-12  Lawrence Pit <loz@cable.a2000.nl>
1810
1811         * HttpWebRequest.cs: properties implemented
1812         * HttpWebResponse.cs: added
1813         * GlobalProxySelection.cs: implemented
1814         * FileWebResponse.cs: added
1815         * FileWebRequest.cs: some methods implemented
1816
1817 2002-05-11  Lawrence Pit <loz@cable.a2000.nl>
1818
1819         * WebHeaderCollection.cs: implemented
1820         * WebRequest.cs: implemented
1821         * FileWebRequest.cs and HttpWebRequest.cs stubs added
1822
1823 2002-05-09  Lawrence Pit <loz@cable.a2000.nl>
1824
1825         * Rewrote IPAddress.Parse method, passing all unit tests
1826
1827 2002-05-09  Lawrence Pit <loz@cable.a2000.nl>
1828
1829         * fixed bug in IPEndPoint.Equals method
1830         * fixed bug in IPAddress.Parse method
1831         * fixed bug in IPAddress.SwapLong method
1832         * fixed several bugs in Cookie.cs
1833
1834 2002-05-06  Lawrence Pit <loz@cable.a2000.nl>
1835
1836         * WebRequest.cs: added
1837         * WebResponse.cs: implemented
1838         * WebException.cs: implemented
1839         * WebHeaderCollection.cs: added
1840         * HttpVersion.cs: implemented
1841         * HttpContinueDelegate.cs: added
1842         * IWebProxy.cs: added
1843         * IWebRequestCreate.cs: added
1844         * ICertificatePolicy.cs: added
1845         * ServicePoint.cs: stubbed
1846         * ServicePointManager.cs: stubbed
1847         * CookieContainer.cs: added
1848         * Authorization.cs: implemented
1849
1850 2002-05-05  Lawrence Pit <loz@cable.a2000.nl>
1851
1852         * CredentialCache.cs: implemented
1853
1854 2002-05-05  Lawrence Pit <loz@cable.a2000.nl>
1855
1856         * IPAddress.cs: fixed IsLoopback, address was already in host order
1857
1858 2002-05-05  Lawrence Pit <loz@cable.a2000.nl>
1859
1860         * IPv6Address.cs: added (note: not part of .net spec)
1861
1862 2002-05-01  Lawrence Pit <loz@cable.a2000.nl>
1863
1864         * DnsPermission.cs: implemented
1865         * DnsPermissionAttribute.cs: implemented
1866
1867 2002-04-28  Lawrence Pit <loz@cable.a2000.nl>
1868
1869         * EndpointPermission.cs: implemented
1870         * SocketPermission.cs: implemented
1871         * SocketPermissionAttribute.cs: implemented
1872         * ProtocolViolationException.cs: implemented
1873         * Dns.c: passing w32 error code when no host found
1874
1875 2002-04-27  Lawrence Pit <loz@cable.a2000.nl>
1876
1877         * Cookie.cs: implemented
1878         * CookieCollection.cs: implemented
1879         * CookieException.cs: implemented
1880
1881 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1882
1883         * IPAddress.cs: initialize the read only fields with Parse().
1884
1885 2002-04-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1886
1887         * IPAddress.cs: little changes to behave as MS.
1888
1889 2002-04-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1890
1891         * Dns.cs (Resolve): behave as MS. Agreed with Mads.
1892
1893 2002-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1894
1895         * IPAddress.cs: the icalls for sockets are endianness-aware. So I
1896         changed a few things. Also included a workaround for bug #23547.
1897
1898 2002-04-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1899
1900         * IPAddress.cs: use System.BitConverter.IsLittleEndian (suggested
1901         by Paolo) instead of guessing the endianness.
1902
1903         * SocketAddress.cs: implemented Equals() and GetHashcode().
1904         
1905 2002-04-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1906
1907         * IPEndPoint.cs: modifications to constructors according to the
1908         specifications (suggested by Lawrence Pit).
1909
1910 2002-04-15  Patrik Torstensson <patrik.torstensson@labs2.com>
1911
1912         * IPEndPoint.cs: Fixed build breaker.
1913
1914 2002-04-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1915
1916         * IPEndPoint.cs: implemented Equals() and GetHashCode(). Now 100%
1917         complete.
1918
1919 2002-04-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1920
1921         * IPAddress.cs: finished all MonoTODO's. Use network order to store 
1922         the address. Check for max and min values in Address:set. IsLoopback()
1923         returns now true for all 127.x.y.z. Some more checks in Parse ().
1924         Some changes to behave as MS does.
1925
1926 2002-02-24  Duncan Mak  <duncan@ximian.com>
1927
1928         * ICredentialLookup.cs: Added the GetCredential method to the
1929         interface. The interface is named "ICredentials", should this file
1930         be renamed?     
1931
1932         * NetworkCredential.cs: Added to CVS. Need to investigate on how
1933         GetCredential() works
1934
1935 2002-01-23  Dick Porter  <dick@ximian.com>
1936
1937         * SocketAddress.cs: Implemented.
1938
1939         * IPEndPoint.cs: Turned 'Address' field into a real property.
1940         Implemented Create() and Serialize() methods.
1941
1942         * IPAddress.cs: Fixed class constructor, turned 'Address' field
1943         into a real property. Removed undocumented "public
1944         IPAddress(string)" constructor.
1945
1946         * EndPoint.cs: Implemented.  All methods return
1947         NotSupportedException to enforce subclass overriding.
1948
1949         * Dns.cs: Replaced fixed-layout Hostent struct and cygwin
1950         P/Invokes with portable internal calls.
1951
1952 2002-01-17  Miguel de Icaza  <miguel@ximian.com>
1953
1954         * Dns.cs: Updated to API changes.
1955
1956         * IPAddress.cs: Updated API.  Much left to implement.
1957
1958         * Dns.cs: Remove IPToString method
1959
1960 2002-01-06  Ravi Pratap  <ravi@ximian.com>
1961
1962         * Dns.cs, AuthenticationManager.cs, SocketAddress.cs : MonoTODO
1963         attribute insertion.
1964
1965 2001-11-22  Nick Drochak <ndrochak@gol.com>
1966
1967         * IPAddress.cs: Fix constructor bug, properly name Address property,
1968         and use triple-slash for comments.
1969
1970 2001-11-20  Miguel de Icaza  <miguel@ximian.com>
1971
1972         * IPAddress.cs: Updated to contain Any, Broadcast, Loopback and
1973         None as suggested by Phillip.
1974
1975 2001-09-26  Mads Pultz <mpultz@get2net.dk>
1976         * Dns.cs: Initial work on BeginGetHostByName and EndGetHostByName implemented.
1977
1978 2001-09-24  Mads Pultz <mpultz@get2net.dk>
1979
1980         * Dns.cs: Minor changes (some print statements removed)
1981
1982 2001-09-23  Mads Pultz <mpultz@get2net.dk>
1983
1984         * Dns.cs: Initial work submitted to repository.
1985         * IPHostEntry.cs: Initial work submitted to repository.
1986
1987 2001-07-12  Sean MacIsaac  <macisaac@ximian.com>
1988
1989         * Authorization.cs: Fixed compiler error.
1990
1991         * IAuthenticationModule.cs: Changes for Beta2.
1992
1993         * IPAddress.cs: Internal storage changed to be uint not int.
1994
1995         * IPEndPoint.cs: Fixed compiler error.
1996
1997         * EndPoint.cs: Fixed compiler error.
1998
1999         * AuthenticationManager.cs: Fixed typo.