2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mcs / class / System / System.Net / ChangeLog
1 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2
3         * HttpWebRequest.cs: send the right header/user/password in
4         PreAuthenticate in presence of a proxy.
5
6 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7
8         * IPv6Address.cs: fix IsLoopback. Closes bug #75128.
9
10 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11
12         * IPv6Address.cs: don't do extra check on ipv4 if this is a ipv6
13         address. Fixes bug #75125.
14
15 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16
17         * ServicePointManager.cs: when going through a proxy, use 2 different
18         service points depending on the scheme. Fixes bug #75135.
19
20 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21
22         * Dns.cs: don't parse the address when it comes from an IPAddress.
23
24 2005-05-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25
26         * WebConnection.cs: prevent 2 nullrefs when the aborting during
27         Connect() and reset the status to Success before starting a new
28         request.
29
30 2005-05-19  Sebastien Pouliot  <sebastien@ximian.com>
31
32         * WebRequest.cs: Throw NotImplementedException (not NotSupported
33         Exception) for stuff that should have been abstract. No exception
34         is thrown by the serialization constructor.
35
36 2005-05-04 James Willcox  <james@ximian.com>
37
38         * DigestClient.cs: convert to a hex string with "X8" consistently
39         for nc-value
40
41 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
42
43         * WebConnection.cs: don't rethrow errors in Write, as the error will be
44         received by GetResponse*. The result is that the threadpool thread doing
45         this will not end up printing the exception. Fixes bug #74817.
46
47 2005-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
48
49         * ServicePoint.cs: HostEntry needs to be thread safe.
50
51 2005-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
52
53         * WebConnection.cs: removed a 'slightly' important line by mistake.
54         * WebConnectionStream.cs: if the transfer encoding is chunked, ignore
55         content-length header if present.
56
57 2005-05-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
58
59         * WebConnection.cs: no need to use an AutoResetEvent.
60         * WebConnectionStream.cs: don't start any more reads on the socket
61         after getting a 0 signalling the end. This fixes Ben's infamous foo.cs
62         test.
63
64 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
65
66         * BasicClient.cs: firefox/IE just send latin1, stripping the high byte
67         from unicode >= 256 characters.
68
69 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
70
71         * BasicClient.cs: use latin1 when encoding the username/domain/password.
72         Fixes bug #74745.
73
74 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
75
76         * WebConnectionStream.cs: if the BeginRead/BeginWrite is completed
77         synchronously, no need to create the ManualResetEvent to wait on.
78
79 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
80
81         * WebConnectionStream.cs: call SetComplete in EndWrite when we're not
82         buffering the request body. Fixes bug #74637.
83
84         * WebAsyncResult.cs: renamed field.
85
86 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
87
88         * WebConnectionStream.cs:
89         * WebAsyncResult.cs: ensure we only call EndRead once per async. result.
90         Update total before invoking the callback when present.
91
92 2005-04-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
93
94         * WebConnection.cs:
95         * WebConnectionStream.cs: don't start reading until we've sent at least
96         the headers. This way we ensure that a Write happens before any Read,
97         which is needed by the SSL code.
98
99 2005-04-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
100
101         * HttpWebRequest.cs: ensure we read everything before redirecting.
102
103 2005-04-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
104
105         * WebConnectionStream.cs: provide a default callback when doing async.
106         read/write and waiting for a timeout so that the callback sets the
107         event and we don't block forever. Fixes bug #74539 take 3.
108
109 2005-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
110
111         * WebConnection.cs:
112         * HttpWebRequest.cs: now Abort() works properly. Fixes bug #74177.
113
114 2005-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
115
116         * WebConnection.cs: fix some breakage from my last patch.
117         * WebConnectionStream.cs: invoke the callback when done even in EndRead.
118
119 2005-04-10  Sebastien Pouliot  <sebastien@ximian.com>
120
121         * WebConnection.cs: Added support for TrustFailure when throwing a
122         WebException. Fix bug #74286.
123
124 2005-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
125
126         * HttpWebRequest.cs: 
127         * WebConnectionStream.cs: implemented support for ReadWriteTimeout.
128
129 2005-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
130
131         * WebConnection.cs: if we're reading chunked data and didn't use the
132         stream to read, we gotta set the async. result as complete and invoke
133         the callback. Don't call nstream.EndRead with the wrong IAsyncResult.
134
135         * WebConnectionStream.cs: in EndRead, pass the correct IAsyncResult to
136         cnc.EndRead. Lock on a field instead of 'this'.
137
138 2005-04-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
139
140         * HttpWebRequest.cs: throw the exception if we got an error, as now
141         it's catched in the redirection handling code.
142
143 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
144
145         * HttpWebRequest.cs: moved redirection handling to a proper place.
146
147 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
148
149         * WebHeaderCollection.cs: added if-modified-since to the list of
150         restricted headers.
151
152         * ServicePoint.cs: use a field object when locking.
153
154 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
155
156         * WebConnectionStream.cs: ForceCompletion actually calls NextRead. No
157         need to wait for a Close/ReadAll when we have no content.
158
159 2005-04-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
160
161         * NtlmClient.cs: fix typo in assembly name.
162
163 2005-03-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
164
165         * CookieContainer.cs: adding to a CookieCollection might not increment
166         the number of items if the cookie is replaced. Now Count works properly.
167         Fixed an array index exception (typo).
168
169         * CookieCollection.cs: also compare the version.
170
171         * HttpWebResponse.cs: when we have cookies, add them to the request
172         container.
173
174         * HttpWebRequest.cs: changed last parameter of HttpWebResponse ctor.
175
176 2005-03-30  Miguel de Icaza  <miguel@novell.com>
177
178         * Cookie.cs: Compare using the InvariantCulture, to match the
179         behavior of CookieContainer that already did this.
180
181 2005-03-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
182
183         * WebConnection.cs: we don't need to trigger the next queued request
184         until the response is closed.
185
186 2005-03-29  Miguel de Icaza  <miguel@novell.com>
187
188         * HttpWebResponse.cs: Handle quotations in the cookies values, per
189         the spec http://www.faqs.org/rfcs/rfc2109.html, it is allowed to
190         have quotations.
191
192 2005-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
193
194         * BasicClient.cs:
195         * DigestClient.cs: check that GetCredential() does not return null.
196
197 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
198
199         * BasicClient.cs: ensure credentials are not null.
200
201 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
202
203         * HttpWebResponse.cs: moved cookie parsing into its own class.
204         * WebHeaderCollection.cs: remove (probably bogus) GetMultipleValues
205         call.
206         * HttpWebRequest.cs: don't let exception raised in the ctor of
207         HttpWebResponse vanish.
208
209         Fixes bug #73275.
210
211 2005-03-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
212
213         * WebHeaderCollection.cs: handle commas inside quotes when splitting
214         a multi-value header. Fixes bug #73151.
215
216 2005-02-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
217
218         * DigestClient.cs: fix for digest auth. and URIs containing query. Patch
219         by James Wilcox. Fixes bug #72571.
220
221 2005-02-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
222
223         * HttpWebResponse.cs:
224         * WebConnection.cs:
225         * HttpWebRequest.cs:
226         * WebConnectionStream.cs: don't read the entire response unless the
227         user requests it. Fixes bug #72443.
228
229 2005-02-08  Zoltan Varga  <vargaz@freemail.hu>
230
231         * IPv6Address.cs: Fix endianess problems.
232
233         * IPAddress.cs: Fix misleading comments.
234
235 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
236
237         * HttpWebRequest.cs: send the headers when we're supposed to write
238         a POST/PUT but call GetResponse before GetRequestStream.
239
240         * WebConnectionStream.cs: new RequestWritten property.
241
242 2005-01-20  Jonathan Pryor  <jonpryor@vt.edu>
243
244         * EndpointPermission.cs: Fix IsSubsetof(hostname) so that the regression 
245           tests work.  In particular, IsSubsetOf ("12.13.*.*", "12.13.14.*") failed
246           because 14 wasn't a subset of * (which it is).  Fix: if part1 is we 
247           continue to the next portion.
248
249 2005-01-20  Jonathan Pryor  <jonpryor@vt.edu>
250
251         * IPAddress.cs (ParseIPV4): Fix so that the regression tests work.  In
252           particular, " foo" and ".1.1.6" weren't being caught (" foo" because it
253           started with a space, and ".1.1.6" because the split string accepted a
254           0-length portion, which would make 1...6 valid, but isn't valid based on
255           similar test cases).
256
257 2005-01-20  Jonathan Pryor  <jonpryor@vt.edu>
258
259         * WebHeaderCollection.cs: Fix GetValues(string) to split the values on
260           commas if the header is a Multi-Value header.  This matches
261           MonoTests.System.Net.WebHeaderCollectionTest.
262
263 2005-01-19  Sebastien Pouliot  <sebastien@ximian.com>
264
265         * WebPermissionAttribute.cs: Fixed NET_1_1 behaviour.
266
267 2004-12-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
268
269         * WebConnectionStream.cs: remove unneeded check. Write detects and
270         triggers the exception now.
271
272 2004-12-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
273
274         * AuthenticationManager.cs: don't lock on a public Type.
275         * HttpWebRequest.cs: read the error response for auth. errors.
276
277 2004-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
278
279         * HttpWebRequest.cs: set webResponse back to null when redirecting.
280         Fix the previous patch so that it reads the whole response even if
281         auto-redirect is not enabled. Closes bug #70484.
282
283 2004-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
284
285         * HttpWebResponse.cs: added ReadAll method.
286
287         * WebConnection.cs: in HandleError, set the response error after
288         closing the socket. Use an async. delegate to finish reading any prior
289         WebConnectionStream.
290
291         * HttpWebRequest.cs: for error responses that allow content, read the
292         stream immediately. Fixes bug #70483.
293
294 2004-12-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
295
296         * CookieContainer.cs: quote the port number.
297
298 2004-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
299
300         * WebConnection.cs:
301         * WebConnectionStream.cs: removed TryReconnect. It's no longer needed.
302
303 2004-12-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
304
305         * WebConnection.cs: set the event in Close so that if the queue is
306         empty, we won't block forever on next request. The finalizer was
307         removed because we're not implementing IDisposable pattern here.
308
309 2004-12-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
310
311         * WebConnection.cs: handle errors on chunked streams. Fixes bug #66858.
312         * ChunkStream.cs: added error checking all over.
313
314         * HttpWebRequest.cs: throw the exception received in SetResponseError
315         if we already have a response.
316         (SetRequestData): Don't nest the exception if it's a WebException.
317
318 2004-12-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
319
320         * WebConnection.cs: remove prevStream and don't set busy to false in
321         HandleError. prevStream is not needed any more and setting 'busy' so
322         early might let a request skip the queue.
323         
324         * WebConnectionGroup.cs: decrement the indexer when removing a dead
325         reference from the arraylist.
326
327         * WebConnectionStream.cs:
328         (ReadAll): call NextRead if it has not been called before even when
329         we have completed the request. Reuse the read buffer when reading a
330         response of unknown size. Increase the buffer to 8kB.
331         (BeginRead): increase pendingReads earlier and even when reading from
332         the internal buffer.
333         (EndRead): decrease pendingReads later and always.
334
335 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
336
337         * CookieContainer.cs: style, fixed checks for properties, implemented
338         the MonoTODOs for the method that take an Uri. GetCookies and
339         GetCookieHeaders now really return only the cookies that are requested
340         filtering by the Uri parameter.
341
342         * Cookie.cs: style, added default values for Comment, Domain and Port.
343
344 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
345
346         * CookieCollection.cs: reformatted, fixed Add by adding a new method to
347         search across the arraylist, as list.IndexOf is not what we want.
348
349 2004-11-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
350
351         * WebConnection.cs: check for FIN or RST on the socket before reusing.
352         Fixes bug #69388.
353
354 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
355
356         * ChunkStream.cs: simplified condition for WantMore property.
357
358         * WebConnection.cs: in Connect(), finish any pending reads we might
359         have for chunked data. Ignore possible blank lines at the very
360         beginning of the server response. Honor user set KeepAlive in
361         HttpWebRequest for HTTP/1.1 connections. Thanks to Eyal Alayuf for
362         his suggestions and code.
363
364 2004-11-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
365
366         * HttpWebResponse.cs: don't lock up when the cookie received ends with
367         a semicolon. Patch by Darryl VanDorp. Fixes bug #68956.
368
369 2004-10-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
370
371         * HttpWebRequest.cs: don't fail if the request has already been sent
372         when accessing ContentType setter. Fixes bug #68848.
373
374 2004-10-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
375
376         * ChunkStream.cs:
377         (WantMore): we're not done until we get a 0 chunk size and the trailer.
378         The 0 can be expressed as more than one character too (ie, 000000).
379
380         * HttpWebRequest.cs: new argument in SetResponseError.
381         * WebConnection.cs: added argument to HandleError as a hint for
382         debugging.
383         (Connect): make the chunked stream be in the expected state when
384         reusing.
385
386         * WebConnectionStream.cs: removed unused method (ResetWriteBuffer).
387
388 2004-10-10 David Sheldon <dave-mono@earth.li>
389
390         * HttpWebRequest.cs: Use RemoveAndAdd for AddRange. Fixes unittest.
391
392 2004-10-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
393
394         * HttpWebRequest.cs: use RemoveAndAdd for headers multivalue headers.
395         * WebHeaderCollection.cs: added RemoveAndAdd that behaves like the old
396         SetInternal.
397
398 2004-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
399
400         * HttpWebRequest.cs: ProxyQuery returns true when we use a proxy without
401         tunneling a secure connection.
402
403         * ServicePoint.cs: added UseConnect property.
404
405         * ServicePointManager.cs: set the UseConnect property when we use a http
406         proxy for a https connection.
407
408         * WebConnection.cs: setup the tunnled connection when using a proxy and
409         https.
410
411 2004-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
412
413         * HttpWebResponse.cs: remove unused SplitValue method.
414
415 2004-09-10  Sebastien Pouliot  <sebastien@ximian.com>
416
417         * DnsPermission.cs: Updated to pass new unit tests.
418         * DnsPermissionAttribute.cs: Cleanup.
419         * SocketPermission.cs: Updated to pass new unit tests.
420         * SocketPermissionAttribute.cs: Updated to pass new unit tests.
421         * WebPermission.cs: Implemented some TODO - not complete yet.
422         * WebPermissionAttribute.cs: Updated to pass new unit tests.
423
424 2004-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
425
426         * Cookie.cs: don't fail when using default constructor. Fixes bug
427         #62890.
428
429 2004-08-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
430
431         * HttpWebResponse.cs: set-cookie and set-cookie2 can be present more
432         than once and have multiple values. Don't rely on string.split when
433         parsing cookie values.
434
435         * WebHeaderCollection.cs: same thing for set-cookie and set-cookie2.
436         Fixed GetValues (it was splitting values that contained a comma) and
437         changed SetInternal to handle multi-value headers.
438
439         Fixes bug #62744.
440
441 2004-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
442
443         * WebProxy.cs: fix scheme detection. Patch by Konstantin Triger
444         (kostat@mainsoft.com).
445
446 2004-07-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
447
448         * HttpWebRequest.cs: detect changes in scheme or port when redirecting.
449         Fixes las take on bug 61218.
450
451 2004-07-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
452
453         * WebConnection.cs: moved loading of the ssl stream Type to its own
454         method. Don't create a new ssl stream if we're reusing the connection.
455
456         * WebConnectionStream.cs: ensure the number of bytes copied in ReadAll
457         is the expected even if the dta from the server has extra bytes.
458
459 2004-07-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
460
461         * WebConnection.cs:
462         * WebConnectionStream.cs: when the status code is 1xx, 204 or 304,
463         "responses MUST NOT include a message-body". We tried to read the
464         stream even when getting those codes and considered the 0 length
465         read as a failure.
466
467 2004-07-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
468
469         * HttpWebRequest.cs: removed bogus Monitor.Exit.
470         * WebConnection.cs: use Address instead of RequestUri when checking for
471         the scheme in order to select the stream type. Fixes bug #61218.
472
473 2004-06-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
474
475         * ChunkStream.cs: added ChunkLeft property.
476         * WebConnection.cs:
477         (EndRead): when using small byte arrays to read from a chunked stream,
478         ensure we've read the chunk size and try to fulfill the request
479         completely. fixes bug 59653.
480
481 2004-05-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
482
483         * WebConnectionStream.cs: fixed CanRead property. Closes bug #59273.
484
485 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
486
487         * DigestClient.cs: cache the sessions based on address and
488         credentials, not only address. Added poor men's expiration to
489         the session cache. Fixes bug #59202.
490
491 2004-05-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
492
493         * IPAddress.cs:
494         * IPEndPoint.cs:
495         * IPv6Address.cs: no more warnings about IPAddress.Address.
496
497 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
498
499         * WebException.cs: implemented serialization .ctor and
500         GetObjectData().
501
502 2004-05-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
503
504         * WebAsyncResult.cs: don't create the WaitHandle if not needed.
505
506 2004-05-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
507
508         * HttpWebRequest.cs: added 3 missing properties for 1.1. They are not
509         used yet.
510
511         * NetConfig.cs: added MaxResponseHeadersLength field.
512
513         * ServicePoint.cs:
514         * ServicePointManager.cs: added missing properties for 1.1. 
515
516 2004-05-03  Sebastien Pouliot  <sebastien@ximian.com>
517
518         * WebConnection.cs: Use assembly name const to load Mono.Security.
519
520 2004-05-03  Lluis Sanchez Gual <lluis@ximian.com>
521
522         * NtlmClient.cs: Use assembly name const to load Mono.Security.
523
524 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
525
526         * WebConnectionStream.cs: avoid the exception when getting the content
527         length if possible.
528
529 2004-03-29  Lluis Sanchez Gual <lluis@ximian.com>
530
531         * HttpWebRequest.cs: Use a lock block instead of Monitor.Enter/Exit, so
532         the lock is released in case of exception (for example, a 
533         ThreadAbortException). This also "fixes" bug #52417.
534         Beware, this requires a runtime update (due to a bug in Monitor.Exit).
535         * ServicePoint.cs: Changed method from internal to private, since it
536         is not called from outside the class.
537
538 2004-03-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
539
540         * HttpWebRequest.cs: added the exception status to the error message.
541         * WebConnection.cs: add headers using SetInternal instead of Add to
542         bypass header name validation. Fixes bug #55994.
543         * WebHeaderCollection.cs: added SetInternal (string header).
544
545 2004-03-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
546
547         * WebConnection.cs:
548         * WebConnectionGroup.cs: the requests queue is now shared for all the
549         connections belonging to the same connection group.
550
551 2004-02-26  Sebastien Pouliot  <sebastien@ximian.com>
552
553         * DefaultCertificatePolicy.cs: New. Certificate validation
554         policy compatible with the documented one present in Fx. It
555         allows valid certificates and expired certificates to be used
556         for SSL connections.
557         * ServicePointManager.cs: Removed the DummyPolicy. Now creates
558         a DefaultCertificatePolicy to validate certificates. 
559
560 2004-02-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
561
562         * ServicePoint.cs: SendContinue is always false for HTTP/1.0
563
564         * WebConnection.cs: get rid of WaitForContinue() (yes!) and prevent
565         calling more the ContinueDelegate more than once when we get the
566         headers in several packets.
567
568         * WebConnectionStream.cs: removed call to WaitForContinue.
569
570 2004-02-25  Sebastien Pouliot  <sebastien@ximian.com>
571
572         * WebConnection.cs: Update previous patch to use HttpsClientStream
573         (internal in Mono.Security assembly) in place of SslClientStream.
574         This will reduce reflection and allow to use ICertificatePolicy.
575
576 2004-02-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
577
578         * DigestClient.cs: fix quote handling. Reordered attributes in response.
579         Fixed typo (QOP->CNonce). Now Digest works with apache2.
580
581 2004-02-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
582
583         * DigestClient.cs: removed Console.
584         * HttpWebRequest.cs: 401/407 were hanging for GET. Fixed.
585
586 2004-02-24  Sebastien Pouliot  <sebastien@ximian.com>
587
588         * DigestClient.cs: Fixed issue with Apache server which do not use "
589         for specifying the digest algorithm (.e.g. algorithm=MD5 not ="MD5").
590
591 2004-02-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
592
593         * HttpWebRequest.cs: arghhh. I used the server response headers instead
594         of what the client is supposed to send. Thanks to Helge Hess.
595
596 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
597
598         * AuthenticationManager.cs: implemented PreAuthenticate().
599
600         * HttpWebRequest.cs: once we know the version of the server, use it if
601         below the requested one. Remove 'Expect', 'Content-Length' and /or 
602         'Transfer-Encoding' if appropiate due to changes in version. Fixed 
603         'Host' header for non-standard ports. Support preauthentication. Closes
604         bug #50530.
605
606 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
607
608         * HttpWebRequest.cs: check for missing or wrong URI in Location header
609         when redirecting.
610
611         * WebConnection.cs: if the data read does not contain all the headers,
612         keep it around and read the rest until we get to the response body.
613         Allow response code with no description. Fixed bug #54543.
614
615 2004-02-18  Sebastien Pouliot  <sebastien@ximian.com>
616
617         * SecurityProtocolType.cs: Added missing [Serializable] to enum. Added 
618         Default and Ssl2 to NET_2_0 profile. Enum is now internal for NET_1_0
619         profile (as we need it for SslClientStream).
620         * ServicePoint.cs: Added internal SetCertificates(client,server).
621         * ServicePointManager.cs: Added CheckCertificateRevocationList and
622         CheckCertificateRevocationList static properties (public in 1.1, 
623         internal for 1.0).
624         * WebConnection.cs: Dynamically creates a SslClientStream (from 
625         Mono.Security assembly) in case of https. Changed NetworkStream to 
626         Stream everywhere.
627
628 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
629
630         * HttpWebRequest.cs: send the 'Connection: keep-alive' header when we
631         don't know the server version or it's 1.0.
632
633         * ServicePoint.cs: added SetVersion.
634
635         * WebAsyncResult.cs: remove ChunkAsyncResult.
636
637         * WebConnection.cs: set the ServicePoint version when getting a response
638         from the server.
639
640         * WebConnectionStream.cs: when posting chunked content, send the head,
641         body and trailer of the chunk at once instead of doing 3 separate
642         writes, which may cause troubles.
643
644 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
645
646         * WebConnection.cs: if we get a 100 when we're not waiting for it, set
647         that information in the ServicePoint.
648
649         * WebConnectionStream.cs: send headers in the right order for
650         non-chunked POST.
651
652 2004-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
653
654         * WebConnectionStream.cs: fixed nullrefs in BeginWrite/EndWrite.
655
656 2004-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
657
658         * HttpWebRequest.cs: on second and sucesive tries when authenticating,
659         don't use chunked encoding for POST, as we know the content length and
660         have the body. Nullify bodyBuffer always in CheckFinalStatus.
661
662         * WebAsyncResult.cs: added ChunkAsyncResult property. It holds the
663         IAsyncResult when writing CRLF at the end of a chunk.
664
665         * WebConnectionStream.cs: support sending chunked data.
666
667 2004-01-24  Lluis Sanchez Gual <lluis@ximian.com>
668
669         * HttpWebRequest.cs: When retrying a POST request after an
670         authentication failure, resend the body. This fixes bug #51841.
671         * WebConnectionStream.cs: Added properties for getting what's been
672         written.
673
674 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
675
676         * HttpWebRequest.cs: don't send 'Expect: 100-continue' for 1.0 version.
677
678 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
679
680         * HttpWebRequest.cs: support proxy authentication.
681
682 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
683
684         * BasicClient.cs:
685         * DigestClient.cs: use IndexOf instead of StartsWith to deal with
686         servers that provide several authentication schemas.
687
688 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
689
690         * ChunkStream.cs: use an array of buffers instead of a MemoryStream for
691         storing the chunks. This way, we won't miss traling data from the
692         previous chunk when a new one is received before the other is fully
693         read.
694
695 2004-01-27  Nick Drochak <ndrochak@ieee.org>
696
697         * DigestClient.cs:
698         * HttpWebRequest.cs:
699         * IPv6Address.cs:
700         * WebClient.cs:
701         * WebConnection.cs:
702         * WebConnectionStream.cs: Remove unused variables thus eliminating some
703         build warnings.
704
705 2004-01-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
706
707         * WebConnection.cs: patch by Yaacov Akiba Slama that fixes 100-continue
708         handling for the case when the same packet also contains the actual
709         [2-5]xx response.
710
711 2004-01-24  Lluis Sanchez Gual <lluis@ximian.com>
712
713         * HttpWebRequest.cs: Added missing property.
714
715 2004-01-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
716
717         * Dns.cs: don't block forever in EndResolve and EndGetHostByName. Fixes
718         bug #53222.
719
720 2004-01-16  Lluis Sanchez Gual <lluis@ximian.com>
721
722         * ChunkStream.cs: The "size" parameter of Write is not the number of
723         bytes to write, but the last offset to be written. Thus, in WriteAndRead
724         Back, since "read" is not an offset but the number of bytes, it must be 
725         added to the offset. Maybe it would be a good idea to change the name of
726         the parameter, since it is confusing. This should fix bug #52591.
727
728 2004-01-12  Lluis Sanchez Gual <lluis@ximian.com>
729
730         * WebConnection.cs: Yet another fix for WebConnection. This fixes 
731         bug #52169.
732
733 2004-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
734
735         * WebConnection.cs: Data.Init is a bad boy. Lluis realized. He also
736         tidied up the end of ReadDone. Disabled relaunching the request if 2
737         InitRead are called, since now we don't throw everything into
738         RegisterWaitForSingleObject but one request at a time.
739
740         * WebConnectionGroup.cs: when checking available connections, allow them
741         not to be Connected but allocated to honor the connection limit.
742         
743         * WebConnectionStream.cs: CheckComplete() now checks for nextReadCalled
744         too. ReadAll don't mess contentLength if it's provided in the headers.
745
746         BIG thanks to Lluis. Turns out that we were debugging the same stuff and
747         his Data.Init discovery was THE thing I was missing.
748
749         Fixes bug #51277.
750
751 2004-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
752
753         * ServicePointManager.cs: use GetMaxConnections to get the appropiate
754         number of connections limit.
755
756 2004-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
757
758         * MonoHttpDate.cs: use the invariant culture, not en-US. Suspected
759         guilty for bug 52629.
760
761 2003-12-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
762
763         * CredentialCache.cs: return null instead of throwing NotImplemented.
764
765 2003-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
766
767         * HttpWebRequest.cs: fixed checking if method allows a body. Patch by
768         Benjamin Jemlich (pcgod@gmx.net).
769
770 2003-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
771
772         * HttpWebRequest.cs: deal with authentication schemes that have more
773         than 1 round trip (Ntlm).
774
775 2003-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
776
777         * NtlmClient.cs: new class that actually uses one from Mono.Http to do
778         the authentication.
779
780 2003-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
781
782         * HttpWebRequest.cs: when building the redirect URI, use the previous
783         one as the base URI, which makes relative URIs work.
784
785 2003-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
786
787         * DigestClient.cs: merged in code from Sebastien Pouliot and Greg
788         Reinacker that Supports cnonce and preauthentication.
789
790 2003-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
791
792         * DigestClient.cs: initial Digest authentication. Works with apache
793         mod_digest.
794
795 2003-11-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
796
797         * HttpWebRequest.cs: removed unneeded StringBuilder.
798         * WebConnection.cs: default to keep the connection open for HTTP/1.1
799         only or HTTP/1.0 + (Proxy-)Connection header. Fixes bug #51208.
800
801 2003-11-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
802
803         * WebConnection.cs: turns out that socket.Connected is not useful until
804         we actually try to send/receive data, even if the other end has already
805         closed the socket. Added TryReconnect() and Connected.
806
807         * WebConnectionData.cs: default value for StatusCode is 0 now.
808
809         * WebConnectionGroup.cs: reuse the connection since the beginning,
810         instead of opening up to ConnectionLimit and then reusing.
811
812         * WebConnectionStream.cs: reopen the socket if we're trying to reuse
813         one which fails on first write.
814
815 2003-11-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
816
817         * WebConnectionStream.cs: when a callback is passed to BeginRead/Write,
818         wrap it and do our job before calling it. Fixes bug #48497.
819
820 2003-11-12  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
821
822         * WebExceptionStatus.cs: Restyled, Added .Net 1.1 members
823         * SecurityProtocolType.cs: Added and implemented
824
825 2003-11-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
826
827         * HttpWebRequest.cs: fixed redirects when they target another host.
828
829 2003-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
830
831         * IPAddress.cs: prevent exceptions when trying to parse the static IPv6
832         addresses.
833
834 2003-10-17  Pedro Martínez Juliá  <yoros@wanadoo.es>
835
836         * WebClient.cs: use Path.DirectorySeparator instead of "/" for
837         windows compatibility. Add some checks for file paths like
838         "C:/xxx/yyy/..." and like "/home/xxx/...".
839
840 2003-10-16  Pedro Martínez Juliá  <yoros@wanadoo.es>
841
842         * WebClient.cs: added a slash between directory and file names.
843
844 2003-10-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
845
846         * HttpWebRequest.cs:
847         * HttpWebResponse.cs: better abort handling and leave the stream in a
848         stable status on abort.
849
850 2003-10-12  Pedro Martínez Juliá  <yoros@wanadoo.es>
851
852         * WebClient.cs: refine reading of local files (like MS.NET).
853
854 2003-10-10  Pedro Martínez Juliá  <yoros@wanadoo.es>
855
856         * WebClient.cs: MS.NET works right when we try OpenRead("file.txt")
857         but we didn't. Now, when Uri fails with an exception, it adds
858         "file://" before the URI and tries again.
859
860 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
861
862         * ServicePoint.cs: preparing for recycling. Not yet finished.
863         * ServicePointManager.cs: this is the one that reads config.
864         * WebConnectionGroup.cs: don't read config here.
865         * WebConnection.cs: added the queue again. Launch queued requests on
866         error.
867
868 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
869
870         * WebConnection.cs: the queue is now handled by the threadpool.
871         Initialize the connection data in a place where it does not depend on
872         the execution order of the requests in threadpool. More error handling.
873
874         * WebConnectionGroup.cs: use the limits in the config file and reuse
875         connections when the limit is reached.
876
877 2003-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
878
879         * HttpWebRequest.cs: handle 304 Ã  la MS.
880         * WebConnection.cs: set the response data when reading 0 bytes.
881
882 2003-09-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
883
884         * WebConnectionStream.cs: fix by Lluis to avoid the stream being in an
885         invalid state.
886
887 2003-08-14  Nick Drochak <ndrochak@gol.com>
888
889         * WebRequest.cs: Check lower case string since that is what we will add.
890
891 2003-08-04  Jerome Laban <jlaban@wanadoo.fr>
892
893         * IPHostEntry.cs: Default contructor must not initialize members.
894         (Fixes bug #45575).
895
896 2003-07-27  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
897
898         * CredentialCache.cs: Removed undefined serializable attribute
899
900 2003-07-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
901
902         * ChunkStream.cs:
903         (WantMore): true if we've not received the last chunk yet. Fixes
904         bug #45463. Thanks to Miguel for tracking this down and providing a
905         test case.
906         
907         * WebConnection.cs: removed bogus ^M's.
908         
909         * WebHeaderCollection.cs: provide more info when the header or value is
910         wrong.
911
912 2003-07-15  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
913
914         * ChunkStream.cs: Removed unused members
915         * IPAddress.cs: Removed unused exception variable, fixes compiler
916         warning.
917         * WebConnection.cs: Removed unused exception variables, fixes compiler
918         warnings.
919
920 2003-07-14  Lluis Sanchez Gual <lluis@ximian.com>
921
922         * NetConfig.cs: If Clone method is not public, then it must use
923           explicit interface method implementation syntax.
924
925 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
926
927         * Dns.cs: Reworked indentation.
928         Added IPv6 support.
929         Added literal address checking in GetHostByAddress.
930         Changed Dns.Resolve behavior.
931         * IPAddress.cs:
932         * IPEndPoint.cs: Added IPv6 support.
933         * IPv6Address.cs: Added address compression.
934         * NetConfig.cs: Added configuration section.    
935
936 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
937
938         * ServicePoint.cs: Removed Connect and GetEndPoint methods.
939         Removed reverse resolution when uri is literal IP address. 
940         * WebConnection.cs: IPv6 compatibility update: Try to connect
941         to all addresses returned by IPHostEntry.
942         * WebConnectionGroup.cs: Removed unused parameter. 
943
944 2003-07-13  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
945
946         * WebProxy.cs: Add serialization/ deserialization support
947
948 2003-07-10  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
949
950         * ProxyUseType.cs:
951         * WebStatus.cs: Deleted (do not exist in this assembly)
952         * IPv6Address.cs: Made internal
953
954 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
955
956         * HttpWebRequest.cs:
957         * ServicePointManager.cs:
958         * WebConnection.cs: added support for proxies.
959
960 2003-07-05  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
961
962         * DnsPermissionAttribute.cs:
963         * SocketPermissionAttribute.cs: Fixed wrong AttributeUsageAttribute
964
965 2003-07-05  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
966
967         * WebPermission.cs: Added and partially implemented
968         * WebPermissionAttribute.cs: Added and implemented
969
970 2003-07-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
971
972         * WebClient.cs: fixed bug #45651.
973
974 2003-06-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
975
976         * WebClient.cs: Small fix by Sebastian <scut@nb.in-berlin.de>.
977
978 2003-06-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
979
980         * WebConnection.cs: fixed header writing the reusing a connection and
981         the server does not send 100-continue response.
982
983 2003-06-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
984
985         * WebConnection.cs: close the socket and connection when disposing.
986         * WebRequest.cs: removed setter for RequestUri. Allow non-public ctors
987         when creating instances.
988
989         * HttpWebRequest.cs:
990         * HttpWebResponse.cs:
991         * FileWebRequest.cs: support serialization.
992
993         * FileWebResponse.cs: support serialization and fixed dispose checks.
994
995         * FileWebRequestCreator.cs:
996         * HttpRequestCreator.cs: added internal .ctor.
997
998 2003-06-24  Lluis Sanchez Gual <lluis@ximian.com>
999
1000         * HttpWebRequest.cs: SetWriteStream(): SendRequestHeaders should be
1001         called before asyncWrite.SetCompleted, to make sure that the waiting
1002         thread does not start to send more information before
1003         SendRequestHeaders has finished.
1004
1005 2003-06-22  Lluis Sanchez Gual <lluis@ximian.com>
1006
1007         * WebConnectionStream.cs: Only increment pendingReads if an asynchronous
1008         read is really needed.
1009
1010 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1011
1012         * WebHeaderCollection.cs: prevent duplication headers used niternally.
1013
1014 2003-06-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1015
1016         * HttpWebRequest.cs: if CookieContainer has not been set, make
1017         HttpWebResponse ignore Set-Cookie* headers.
1018
1019         * HttpWebResponse.cs: Set-Cookie and Set-Cookie headers removed if
1020         CookieContainer have been provided to the request.
1021
1022 2003-06-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1023
1024         * AuthenticationManager.cs: get the list of authentication modules from
1025         the configuration files. Added Clear and fixed Unregister.
1026
1027         * BasicClient.cs: fully implemented.
1028
1029         * HttpWebRequest.cs: added support for Basic authentication when
1030         credentials are set.
1031
1032         * NetworkCredential.cs: fixed GetCredential.
1033
1034 2003-06-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1035
1036         * HttpWebRequest.cs: *really* take care of requestSent to prevent
1037         sending the same request twice.
1038         * WebAsyncResult.cs: don't close the handle. Just Reset.
1039         * WebConnectionStream.cs: removed unneeded line.
1040
1041 2003-06-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1042
1043         * HttpWebRequest.cs: use InternalClose when we are not going to send the
1044         rest of the request stream because of an error after sending the
1045         headers.
1046
1047         * WebConnection.cs: check for completion after setting the response.
1048         Enable reading in NextRead.
1049
1050         * WebConnectionStream.cs: re-fixed the count for partially buffered
1051         reads. If the network stream returns 0 bytes, we're done.
1052
1053 2003-06-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1054
1055         * WebClient.cs: implemented UploadFile. Fixed SetupRequest to set the
1056         special headers *after* the others.
1057
1058 2003-06-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1059
1060         * WebConnectionStream.cs: when the read is partially filled from the
1061         initial buffer, add those bytes too. Thanks to Lluis for debugging this.
1062
1063 2003-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1064
1065         * HttpWebRequest.cs: added ExpectContinue property.
1066         * WebConnection.cs: allow 100 Continue to be delayed after waiting for
1067         it.
1068
1069 2003-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1070
1071         * HttpWebRequest.cs: don't send "Expect: 100-continue" is the server
1072         is known not to respond to that.
1073
1074         * ServicePoint.cs: added SendContinue property.
1075
1076         * WebConnection.cs: only wait 2 seconds for a continue reply. If it
1077         timeouts, set SendContinue to false and proceeed sending data.
1078
1079         * WebConnectionStream.cs: if 100-continue is not received and instead we
1080         get a 417 or anything else, don't send the data.
1081
1082         * WebClient.cs: implemented all missing properties and methods except
1083         UploadFile.
1084
1085 2003-06-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1086
1087         * FileWebRequestCreator.cs: splitted from WebRequest.
1088         * HttpRequestCreator.cs: splitted fromWebRequest.
1089         * WebRequest.cs: added methods that are used by the new configuration
1090         handler to set prefix/type name requests creators.
1091
1092 2003-06-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1093
1094         * AuthenticationManager.cs:
1095         * Authorization.cs:
1096         * BasicClient.cs: new file.
1097         * ChunkStream.cs: new file.
1098         * Cookie.cs:
1099         * CookieContainer.cs:
1100         * GlobalProxySelection.cs:
1101         * HttpWebRequest.cs:
1102         * HttpWebResponse.cs:
1103         * IAuthenticationModule.cs:
1104         * ServicePoint.cs:
1105         * ServicePointManager.cs:
1106         * WebAsyncResult.cs: new file.
1107         * WebConnection.cs: new file.
1108         * WebConnectionData.cs: new file.
1109         * WebConnectionGroup.cs: new file.
1110         * WebConnectionStream.cs: new file.
1111         * WebException.cs:
1112         * WebHeaderCollection.cs:
1113         * WebProxy.cs:
1114         * WebResponse.cs:
1115
1116         Reworked HttpWebRequest and related classes.
1117
1118 2003-05-30  Miguel de Icaza  <miguel@ximian.com>
1119
1120         * HttpWebRequest.cs (EndGetResponse): Do not throw exceptions on
1121         InternalServerError (500)
1122
1123 2003-05-29  Miguel de Icaza  <miguel@ximian.com>
1124
1125         * HttpWebRequest.cs (Close): Move the code that accumulates the
1126         output to Close from Flush.  Flush could have been called in the
1127         middle of the processing, and would have generated invalid results
1128         (which it did).
1129
1130 2003-05-23  Zoltan Varga  <vargaz@freemail.hu>
1131
1132         * Dns.cs (GetHostByAddress): Return the local host when called with
1133         IF_ANY.
1134
1135 2003-04-29  Miguel de Icaza  <miguel@ximian.com>
1136
1137         * WebClient.cs (DownloadData): Close the underlyng stream.
1138         (DownloadFile): Use using, so the file gets closed.
1139
1140 2003-04-24  Miguel de Icaza  <miguel@ximian.com>
1141
1142         * WebClient.cs (DownloadData): Instead of using a MemoryStream,
1143         keep track of all the small chunks in an ArrayList.  The
1144         MemoryStream had the property of reallocating itself, and the
1145         problem was that MemoryStream.GetBuffer would return the buffer
1146         (correctly), but not something of the right size.  So clients of
1147         DownloadData would get the extra unused bytes as part of the
1148         result.
1149
1150         The solution would have been to make another copy at this point,
1151         instead, we only keep the small allocations around in the
1152         ArrayList, and we only do one large allocation at the end.
1153
1154         * HttpWebResponse.cs: If there is a Content-Length header, pass
1155         this information to our HttpWebResponseStream, so it knows when to
1156         stop, instead of waiting for the stream to be shut down by the
1157         other end.
1158
1159         * HttpWebRequest.cs: Only set the `delay-header-writing' mode on
1160         the underlying stream if the method will do a content transfer and
1161         no Content-Length was provided. If not (HEAD and GET or
1162         Content-Length provided), keep going.
1163         
1164 2003-04-23  Miguel de Icaza  <miguel@ximian.com>
1165
1166         * HttpWebRequest.cs: .NET Allows the HttpWebRequest to not have
1167         the ContentLength specified on the request.  If that happens, we
1168         have to accumulate all the data written, and once we accumulate
1169         the data, we send it off.  
1170
1171         Notice that the documentation in .NET is actually incorrect, they
1172         state that setting ContentLength is mandatory.  It is not.
1173
1174 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1175
1176         * HttpWebResponse.cs: fixes bug #41180.
1177
1178 2003-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1179
1180         * HttpWebRequest.cs: throw an exception is the response code is >= 300.
1181
1182 2003-03-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1183
1184         * HttpWebRequest.cs: implemented IDisposable, make the request stream
1185         read only. Changed the way of disposing the socket.
1186
1187         * HttpWebResponse.cs: wrapped the socket in a write-only NetworkStream,
1188         handle chunked transfer encoding (no more hangs), added serialization
1189         stuff, call CheckDisposed at the beginning of methods/properties (not
1190         in a finally clause).
1191
1192 2003-02-17  Nick Drochak <ndrochak@gol.com>
1193
1194         * WebClient.cs : Implemented Credentials property.
1195
1196 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1197
1198         * SocketAddress.cs: byte 1 of the data is the high byte of the family,
1199         not the size.
1200
1201 2003-01-29  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1202
1203         * WebClient.cs : hacked OpenRead, DownloadData and DownloadFile.
1204
1205 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1206
1207         * HttpWebRequest.cs: applied patch from Tim Haynes
1208         (thaynes@openlinksw.com).
1209
1210         Avoided double-sending of the request to the server when both
1211         GetRequestStream() and GetResponse() are called.
1212         System Header attributes survive the Headers attribute set.
1213         Added handling of Connection: KeepAlive/Close
1214
1215 2002-10-03  Dick Porter  <dick@ximian.com>
1216
1217         * Dns.cs: Fixed GetHostName()
1218
1219 2002-09-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1220
1221         * HttpWebRequest.cs:
1222         * HttpWebResponse.cs: applied another patch from Shahms E. King
1223         (shahms@shahms.com).
1224
1225 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1226
1227         * HttpWebRequest.cs:
1228         * HttpWebResponse.cs: applied patch from Shahms E. King
1229         (shahms@shahms.com).
1230
1231 2002-05-29  Lawrence Pit <loz@cable.a2000.nl>
1232
1233         * MonoHttpDate.cs: added
1234         * HttpWebRequest.cs: using MonoHttpDate
1235         * HttpWebResponse.cs: using MonoHttpDate
1236         * DnsPermission.cs: correct XML output
1237         * SocketPermission.cs: correct XML output
1238
1239 2002-05-21  Lawrence Pit <loz@cable.a2000.nl>
1240
1241         * WebClient.cs: stubbed
1242         * WebProxy.cs: fixed bug; had to change internal representation
1243         of bypasslist to ArrayList, different implementation of checking
1244         regex's.
1245
1246 2002-05-20  Lawrence Pit <loz@cable.a2000.nl>
1247
1248         * WebProxy.cs: added, implemented
1249         * ServicePoint.cs: implemented most
1250         * ServicePointManager.cs: implemented
1251         * HttpWebRequest.cs: started implementation
1252         * HttpWebResponse.cs: improved disposable routines
1253         * FileWebRequest.cs: slight improvement of Close method
1254         
1255 2002-05-19  Lawrence Pit <loz@cable.a2000.nl>
1256
1257         * FileWebRequest.cs: finished implementation of async methods.
1258         * FileWebResponse.cs: improved disposable routines.
1259         * IPEndPoint.cs: fixed bug #24666 in Serialize and Create methods, 
1260         byte ordering of address was backwards.
1261
1262 2002-05-13  Lawrence Pit <loz@cable.a2000.nl>
1263
1264         * Dns.cs: Reimplemented (simplified and fixed) asynchronous methods by
1265         relying on standard asynchronous delegate features. Added checks for
1266         null strings.
1267         * HttpWebResponse.cs: implemented properties
1268         * FileWebResponse.cs: improved the way resources are disposed.
1269         * FileWebRequest.cs: started implementation of asynchronous methods
1270         * ServicePointManager.cs: implemented properties
1271
1272 2002-05-12  Lawrence Pit <loz@cable.a2000.nl>
1273
1274         * HttpWebRequest.cs: properties implemented
1275         * HttpWebResponse.cs: added
1276         * GlobalProxySelection.cs: implemented
1277         * FileWebResponse.cs: added
1278         * FileWebRequest.cs: some methods implemented
1279
1280 2002-05-11  Lawrence Pit <loz@cable.a2000.nl>
1281
1282         * WebHeaderCollection.cs: implemented
1283         * WebRequest.cs: implemented
1284         * FileWebRequest.cs and HttpWebRequest.cs stubs added
1285
1286 2002-05-09  Lawrence Pit <loz@cable.a2000.nl>
1287
1288         * Rewrote IPAddress.Parse method, passing all unit tests
1289
1290 2002-05-09  Lawrence Pit <loz@cable.a2000.nl>
1291
1292         * fixed bug in IPEndPoint.Equals method
1293         * fixed bug in IPAddress.Parse method
1294         * fixed bug in IPAddress.SwapLong method
1295         * fixed several bugs in Cookie.cs
1296
1297 2002-05-06  Lawrence Pit <loz@cable.a2000.nl>
1298
1299         * WebRequest.cs: added
1300         * WebResponse.cs: implemented
1301         * WebException.cs: implemented
1302         * WebHeaderCollection.cs: added
1303         * HttpVersion.cs: implemented
1304         * HttpContinueDelegate.cs: added
1305         * IWebProxy.cs: added
1306         * IWebRequestCreate.cs: added
1307         * ICertificatePolicy.cs: added
1308         * ServicePoint.cs: stubbed
1309         * ServicePointManager.cs: stubbed
1310         * CookieContainer.cs: added
1311         * Authorization.cs: implemented
1312
1313 2002-05-05  Lawrence Pit <loz@cable.a2000.nl>
1314
1315         * CredentialCache.cs: implemented
1316
1317 2002-05-05  Lawrence Pit <loz@cable.a2000.nl>
1318
1319         * IPAddress.cs: fixed IsLoopback, address was already in host order
1320
1321 2002-05-05  Lawrence Pit <loz@cable.a2000.nl>
1322
1323         * IPv6Address.cs: added (note: not part of .net spec)
1324
1325 2002-05-01  Lawrence Pit <loz@cable.a2000.nl>
1326
1327         * DnsPermission.cs: implemented
1328         * DnsPermissionAttribute.cs: implemented
1329
1330 2002-04-28  Lawrence Pit <loz@cable.a2000.nl>
1331
1332         * EndpointPermission.cs: implemented
1333         * SocketPermission.cs: implemented
1334         * SocketPermissionAttribute.cs: implemented
1335         * ProtocolViolationException.cs: implemented
1336         * Dns.c: passing w32 error code when no host found
1337
1338 2002-04-27  Lawrence Pit <loz@cable.a2000.nl>
1339
1340         * Cookie.cs: implemented
1341         * CookieCollection.cs: implemented
1342         * CookieException.cs: implemented
1343
1344 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1345
1346         * IPAddress.cs: initialize the read only fields with Parse().
1347
1348 2002-04-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1349
1350         * IPAddress.cs: little changes to behave as MS.
1351
1352 2002-04-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1353
1354         * Dns.cs (Resolve): behave as MS. Agreed with Mads.
1355
1356 2002-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1357
1358         * IPAddress.cs: the icalls for sockets are endianness-aware. So I
1359         changed a few things. Also included a workaround for bug #23547.
1360
1361 2002-04-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1362
1363         * IPAddress.cs: use System.BitConverter.IsLittleEndian (suggested
1364         by Paolo) instead of guessing the endianness.
1365
1366         * SocketAddress.cs: implemented Equals() and GetHashcode().
1367         
1368 2002-04-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1369
1370         * IPEndPoint.cs: modifications to constructors according to the
1371         specifications (suggested by Lawrence Pit).
1372
1373 2002-04-15  Patrik Torstensson <patrik.torstensson@labs2.com>
1374
1375         * IPEndPoint.cs: Fixed build breaker.
1376
1377 2002-04-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1378
1379         * IPEndPoint.cs: implemented Equals() and GetHashCode(). Now 100%
1380         complete.
1381
1382 2002-04-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1383
1384         * IPAddress.cs: finished all MonoTODO's. Use network order to store 
1385         the address. Check for max and min values in Address:set. IsLoopback()
1386         returns now true for all 127.x.y.z. Some more checks in Parse ().
1387         Some changes to behave as MS does.
1388
1389 2002-02-24  Duncan Mak  <duncan@ximian.com>
1390
1391         * ICredentialLookup.cs: Added the GetCredential method to the
1392         interface. The interface is named "ICredentials", should this file
1393         be renamed?     
1394
1395         * NetworkCredential.cs: Added to CVS. Need to investigate on how
1396         GetCredential() works
1397
1398 2002-01-23  Dick Porter  <dick@ximian.com>
1399
1400         * SocketAddress.cs: Implemented.
1401
1402         * IPEndPoint.cs: Turned 'Address' field into a real property.
1403         Implemented Create() and Serialize() methods.
1404
1405         * IPAddress.cs: Fixed class constructor, turned 'Address' field
1406         into a real property. Removed undocumented "public
1407         IPAddress(string)" constructor.
1408
1409         * EndPoint.cs: Implemented.  All methods return
1410         NotSupportedException to enforce subclass overriding.
1411
1412         * Dns.cs: Replaced fixed-layout Hostent struct and cygwin
1413         P/Invokes with portable internal calls.
1414
1415 2002-01-17  Miguel de Icaza  <miguel@ximian.com>
1416
1417         * Dns.cs: Updated to API changes.
1418
1419         * IPAddress.cs: Updated API.  Much left to implement.
1420
1421         * Dns.cs: Remove IPToString method
1422
1423 2002-01-06  Ravi Pratap  <ravi@ximian.com>
1424
1425         * Dns.cs, AuthenticationManager.cs, SocketAddress.cs : MonoTODO
1426         attribute insertion.
1427
1428 2001-11-22  Nick Drochak <ndrochak@gol.com>
1429
1430         * IPAddress.cs: Fix constructor bug, properly name Address property,
1431         and use triple-slash for comments.
1432
1433 2001-11-20  Miguel de Icaza  <miguel@ximian.com>
1434
1435         * IPAddress.cs: Updated to contain Any, Broadcast, Loopback and
1436         None as suggested by Phillip.
1437
1438 2001-09-26  Mads Pultz <mpultz@get2net.dk>
1439         * Dns.cs: Initial work on BeginGetHostByName and EndGetHostByName implemented.
1440
1441 2001-09-24  Mads Pultz <mpultz@get2net.dk>
1442
1443         * Dns.cs: Minor changes (some print statements removed)
1444
1445 2001-09-23  Mads Pultz <mpultz@get2net.dk>
1446
1447         * Dns.cs: Initial work submitted to repository.
1448         * IPHostEntry.cs: Initial work submitted to repository.
1449
1450 2001-07-12  Sean MacIsaac  <macisaac@ximian.com>
1451
1452         * Authorization.cs: Fixed compiler error.
1453
1454         * IAuthenticationModule.cs: Changes for Beta2.
1455
1456         * IPAddress.cs: Internal storage changed to be uint not int.
1457
1458         * IPEndPoint.cs: Fixed compiler error.
1459
1460         * EndPoint.cs: Fixed compiler error.
1461
1462         * AuthenticationManager.cs: Fixed typo.