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