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