2005-09-05 Miguel de Icaza <miguel@novell.com>
[mono.git] / mcs / class / System.Web / System.Web / ChangeLog
1 2005-09-05  Miguel de Icaza  <miguel@novell.com>
2
3         * HttpApplication.cs: Invoke EndRequest handler before OutputPage
4         as FormsAuthentication will issue a Redirect from the EndRequest 
5         handler. 
6
7 2005-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8
9         * HttpApplication.cs: when writing an error message, catch the possible
10         write error.
11
12 2005-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13
14         * HttpResponseStream.cs: prevent invalid cast exception if the first
15         thing written is a file.
16
17 2005-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18
19         * HttpApplication.cs: fix invalid cast exception (bug #75926).
20
21 2005-09-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22
23         * HttpApplicationFactory.cs: only trigger the Application_Start event
24         once. It was being invoked more than once when several clients were
25         hitting the server at the same time on startup.
26
27 2005-09-01 Eyal Alaluf <eyala@mainsoft.com>
28
29         * HttpContext.cs HttpResponse.cs HttpWorkerRequest.cs HttpRuntime.cs
30           HttpApplicationFactory.cs HttpApplication.cs: TARGET_J2EE/JVM fixes.
31           Mostly workaround limited AppModel in TARGET_J2EE.
32
33 2005-08-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
34
35         * HttpResponse.cs: if the request method is HEAD, that's equivalent to
36         SuppressContent. Added an internal TransmitFile that allows setting the
37         final_flush flag.
38         * StaticFileHandler.cs: use the new internal TransmitFile and remove
39         generation of Content-Length header, as now it's computed correctly.
40         * HttpApplication.cs: remove debugging stuff.
41         * HttpResponseStream.cs: suppress_content is checked in HttpResponse.
42
43 2005-08-31  Miguel de Icaza  <miguel@novell.com>
44
45         Removed debugging info.
46         
47         * HttpApplication.cs: Add support for async handlers. 
48
49         Add extra 2.x methods. 
50
51 2005-08-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
52
53         * BrowserCapabilities.cs: removed extra 'using'.
54
55         * HttpApplication.cs: use just the 'modcoll' to hold the collection of
56         modules instead of having a separate 'modules' one.
57
58 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
59
60         * HttpApplication.cs: clone the module collection so that
61         it's not shared between HttpApplications. Call GetHandler() in the
62         right place.
63
64 2005-08-30  Miguel de Icaza  <miguel@novell.com>
65
66         * HttpApplication.cs: Add the new 2.x method overloads that take a
67         data object.
68
69         (RunHooks): Pass the extra data instead of null.
70
71         * HttpCookie.cs (HttpOnly): Add 2.x cookie header.
72
73         * BrowserCapabilities.cs: Move the core of the capabilities into a
74         separate file.  Use partial classes to choose what version to
75         compile against.
76
77         * HttpBrowserCapabilities.cs: Update to move the code elsewhere.
78
79 2005-08-30 Eyal Alaluf <eyala@mainsoft.com>
80
81         * HttpResponseStream.cs: Fix a bug introduced by last fix (thanks to
82         Ben)
83
84 2005-08-30 Eyal Alaluf <eyala@mainsoft.com>
85
86         * HttpResponseStream.cs: Compilation fixes for TARGET_JVM. TARGET_JVM
87         does not support unsafe code. I localized all unsafe code within Chunk
88         & Block and created a managed version of Chunk.
89
90 2005-08-30 Eyal Alaluf <eyala@mainsoft.com>
91         * HttpApplicationFactory.cs: Compilation fixes for TARGET_J2EE. Under
92         TARGET_J2EE static fields are shared by all app domains. We handle
93         this difference by explicitly getting/setting values from the app
94         domain.  Since HttpApplicationFactory has many static fields, I
95         refactored it to have one static instance and moved the static fields
96         into instance fields.
97
98 2005-08-29 Eyal Alaluf <eyala@mainsoft.com>
99
100         * HttpRequest.cs: Disable use of IntPtrStream for TARGET_JVM
101
102 2005-08-29 Eyal Alaluf <eyala@mainsoft.com>
103
104         * HttpContext.cs: Compilation fixes for TARGET_J2EE/JVM
105
106 2005-08-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
107
108         * HttpResponse.cs: don't duplicate the 'charset=' and don't send a
109         charset for unknown MIME types.
110         * StaticFileHandler.cs: set the Content-Length header here.
111         * HttpRequest.cs: prevent nullrefs when we have no 'charset='.
112
113 2005-08-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
114
115         * StaticFileHandler.cs: use TransmitFile instead of WriteFile. This way
116         xsp will use sendfile().
117
118 2005-08-28  Chris Toshok  <toshok@ximian.com>
119
120         * SiteMapNode.cs: fix IHierarchyData.GetParent.
121
122 2005-08-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
123
124         * HttpRequest.cs:
125         * IntPtrStream.cs: now we only have a read-only MemoryStream or an
126         IntPtrStream. The copy is moved into HttpRequest.
127
128 2005-08-26  Sebastien Pouliot  <sebastien@ximian.com>
129
130         * WebCategoryAttribute.cs: New. Required internal attribute.
131         * WebSysDescriptionAttribute.cs: New. Required internal attribute.
132
133 2005-08-26  Jackson Harper  <jackson@ximian.com>
134
135         * HttpResponseStream.cs: Use GetBuffer so the memory isn't
136         duplicated.
137
138 2005-08-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
139
140         * HttpApplication.cs: GetHandler might return null when, for example,
141         a web service fails, but that does not mean that returning a null
142         handler should throw another exception, as the web service code
143         serialized the error as a faultString. So if the handler is null, just
144         don't call ProcessRequest and keep going.
145
146 2005-08-26  Jackson Harper  <jackson@ximian.com>
147
148         * HttpResponse.cs: Send the cached headers if this is a cached
149         response. Save the headers, date header, and page data. Fix a typo.
150         * HttpResponseStream.cs: Add new accesor to get a byte [] of the
151         page data.
152
153 2005-08-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
154
155         * HttpWorkerRequest.cs: SetEndOfSendNotification is a noop. No matter
156         what callback you use that never gets called. In XSP I actually
157         implement something for this method.
158         * HttpServerUtility.cs: unused variable.
159
160 2005-08-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
161
162         * HttpInputStream.cs: new ctor that takes a byte [].
163         * IntPtrStream.cs: make it work on a byte [] too.
164
165         * HttpRequest.cs:
166         (ContentLength): return 0 for negative numbers or error parsing, but
167         keep content_length negative in those cases.
168         (MakeInputStream): when there's no content-length (or it's negative),
169         we still read the request into a MemoryStream. Use
170         IsEntireEntityIsPreloaded() as a fast path.
171
172 2005-08-25  Sebastien Pouliot  <sebastien@ximian.com>
173
174         * HttpClientCertificate.cs: On 1.x the .ctor throws a 
175         ArgumentNullException (but 2.0 throws a NRE).
176
177 2005-08-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
178
179         * HttpRequest.cs: HttpMethod deserves its own field. Fix IsLocal.
180
181 2005-08-25  Chris Toshok  <toshok@ximian.com>
182
183         * HttpApplication.cs (IsReusable): return true.
184         (InitOnce): remove the initialization of handler_factory from
185         here.
186         (GetHandler) and move it here, so we make sure to load handlers
187         from all needed web.config files.
188
189 2005-08-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
190
191         * HttpServerUtility.cs: use GetHandler().
192         * HttpApplication.cs: remove obsolete method. Now Transfe/Execute work.
193
194 2005-08-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
195
196         * HttpApplication.cs: no need for the local var. here.
197
198 2005-08-25  Chris Toshok  <toshok@ximian.com>
199
200         * HttpApplication.cs (InitOnce): move the initialization of
201         modules above the call to HttpApplicationFactory.AttachEvents,
202         since that method accesses HttpApplication.Modules.  Fixes
203         nGallery.
204         (IsReusable): mark TODO.
205
206 2005-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
207
208         * HttpResponseHeader.cs: removed obsolete class.
209         * HttpResponse.cs: no more 'obsolete' warnings.
210
211 2005-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
212
213         * HttpRuntime.cs: implemeted some missing properties.
214
215 2005-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
216
217         * HttpResponse.cs: implemented RemoveOutputCacheItem().
218
219 2005-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
220
221         * HttpApplication.cs: implemented GetVaryByCustomString().
222
223 2005-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
224
225         * HttpRequest.cs: implemented SetHeader (allows adding a header
226         circumventing the read-only protection of the collection) and SetForm,
227         which just assigns a value of the 'form' collection.
228         * HttpServerUtility.cs: NameValueCollection -> WebROCollection.
229
230 2005-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
231
232         * HttpContext.cs:
233         * HttpRequest.cs: implemented RewritePath and supporting methods.
234
235 2005-08-22  Sebastien Pouliot  <sebastien@ximian.com>
236
237         * HttpRequest.cs: Avoid NRE if work_request if null in the ctor.
238         * HttpResponse.cs: Avoid NRE if work_request if null in the ctor.
239
240 2005-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
241
242         * HttpApplication.cs: if there's any exception thrown when getting the
243         handler, don't add an extra error to the context, as we already have
244         one.
245
246 2005-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
247
248         * HttpWriter.cs:
249         * HttpResponse.cs:
250         * HttpWorkerRequest.cs:
251         * HttpApplication.cs: added mising attributes and enabled methods
252         present in 1.1 SP1.
253
254 2005-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
255
256         * WebROCollection.cs: a collection that allows setting IsReadOnly.
257         * HttpRequest.cs: implemented MapImageCoordinates(). Use WebROCollection
258         instead of a NameValueCollection in Form, Headers, Params, QueryString.
259
260 2005-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
261
262         * HttpInputStream.cs: new copy ctor.
263         * IntPtrStream.cs: getters for base_address and size.
264         * HttpRequest.cs: implemented SaveAs(). Use a wrapper on top of
265         InputStream so that reading POST form or files does not modify the state
266         if InputStream. Don't use uri_builder.Query in QueryStringRaw, as it
267         returns the '?'.
268
269 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
270
271         * HttpRequest.cs: implemented UserLanguages and reuse code from
272         AcceptTypes.
273
274 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
275
276         * HttpRequest.cs: implemented AcceptTypes.
277
278 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
279
280         * HttpRequest.cs: implemented this[] in terms of Params. Don't add the
281         header collection in Params.
282
283 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
284
285         * HttpRequest.cs: fix Files property.
286         * HttpApplication.cs: invoke the default authentication event after all 
287         the other auth. modules.
288
289 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
290
291         * ServerVariablesCollection.cs: mark the collection as read-only except
292         when we fill it. Add the HTTP_blah key/value pairs too.
293
294 2005-08-18  Chris Toshok  <toshok@ximian.com>
295
296         * HttpRequest.cs (get_Params): implement.
297
298 2005-08-17  Chris Toshok  <toshok@ximian.com>
299
300         * HttpResponse.cs: HttpResponse's Cookie's collection acts
301         differently than HttpRequests in that it never returns null from
302         the "this [string]" accessor.
303
304 2005-08-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
305
306         * HttpRequest.cs: check length 0 case when reading a POST.
307
308 2005-08-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
309
310         * HttpContext.cs: added security attributes for User and
311         SkipAuthorization properties.
312         * HttpApplicationFactory.cs: AttachEvents is now called form the
313         application .ctor. Recycle instead of dispose.
314         * HttpApplication.cs: attach events to the newly created application.
315
316 2005-08-15  Jackson Harper  <jackson@ximian.com>
317
318         * ApplicationShutdownReason.cs: make build
319
320 2005-08-15  Miguel de Icaza  <miguel@novell.com>
321
322         * HttpApplication.cs: Update comments
323
324         * HttpPostedFile.cs: Use a substream to read from the uploaded
325         multiparts. 
326
327         * HttpRequest.cs: use new code to read the uploaded files.
328
329 2005-08-12  Miguel de Icaza  <miguel@novell.com>
330
331         2.x API fixage and small additions:
332         
333         * HttpResponse.cs: Make constructor internal.
334
335         * HttpRequest.cs (IsLocal): Expose if NET_2.x
336
337         * HttpContext.cs: Remove internal routine.
338
339         * HttpApplication.cs: Add 2.x events. 
340
341         * HttpRequest.cs: Another iFolder issue: I was not setting up the
342         uri_builder here.
343
344         Fixes to get iFolder to work:
345         
346         * HttpApplicationFactory.cs: Set the context when we are initting
347         the application.
348
349         * HttpApplication.cs (SetContext): helper routine. 
350
351         * HttpResponse.cs: Implement the various cache operations:n
352         Expires, ExpiresAbsolute, CacheControl.
353
354         Actually produce the Cache-Control header, the "Cache" property
355         takes precedence over the compatibility settings (Expires,
356         ExpiresAbsolutely and CacheControl). 
357
358         * HttpCachePolicy.cs: Fix style.
359
360         Fix the generation of the headers, use lower-case values, do not
361         add the max-value if the value is zero.  
362
363         Allow for all possible values in SetCacheability. 
364
365         * HttpRuntime.cs (ClrInstallDirectory): Implement.
366
367         * HttpResponseStream.cs: Remove debugging stuff. 
368
369 2005-08-11  Miguel de Icaza  <miguel@novell.com>
370
371         Big chunked handling rewrite, and integration of Ben's unmanaged
372         output stream.
373
374         * HttpWriter.cs: Delegate chunked encoding writing to the
375         HttpResponse. 
376
377         * HttpResponse.cs: Rework the chunked encoding system, centralize
378         it all. 
379
380         * HttpResponseStream.cs: Deploy Ben's bucket-base unmanaged
381         buffers code. 
382
383         Changed the way that we handle chunked encoding, centralize it
384         all;  
385
386         Remove a lot of manual handling of buffering turned off, and
387         instead delegate it all to Flush, fixes several issues with the
388         new framework.
389
390         * HttpWorkerRequest.cs (SendResponseFromMemory (IntPtr, int)):
391         Provide a default implementation since currently XSP does not have
392         this method implemented. 
393
394 2005-08-11  Sebastien Pouliot  <sebastien@ximian.com> 
395  
396         * HttpClientCertificate.cs: Culture insensitive int parsing. Fixed
397         NET_2_0 build.
398
399 2005-08-10  Miguel de Icaza  <miguel@novell.com>
400
401         * ServerVariablesCollection.cs: For Ben.  Implement the header
402         fetching here, do not implement it in HttpRequest.cs.
403
404 2005-08-10  Sebastien Pouliot  <sebastien@ximian.com> 
405  
406         * HttpClientCertificate.cs: Changed IsPresent logic so that new unit
407         tests will work as expected.
408
409 2005-08-10  Sebastien Pouliot  <sebastien@ximian.com>
410
411         * HttpClientCertificate.cs: Implemented, except for validation. Note 
412         that the HttpWorkerRequest derived classes must be updated to supply 
413         the required informations.
414         * HttpRequest.cs: Create an HttpClientCertificate on first call to
415         ClientCertificate.
416
417 2005-08-09  Miguel de Icaza  <miguel@novell.com>
418
419         * HttpRuntime.cs (AspInstallDirectory): Implement.
420
421 2005-08-09  Sebastien Pouliot  <sebastien@ximian.com>
422
423         * HttpClientCertificate.cs: New. Stub. It won't be fun to test.
424
425 2005-08-04  Ben Maurer  <bmaurer@ximian.com>
426
427         * HttpContext.cs: Kill a NIE.
428
429 2005-08-04  Miguel de Icaza  <miguel@novell.com>
430
431         * HttpApplicationFactory.cs: Change "Start" event like the "End"
432         event, and only do this once, when we init the type.
433
434         Fire the "Application_Start" event after we create the type.
435
436 2005-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
437
438         * HttpApplication.cs: catch a ThreadAbort (coming from Response.End)
439         here too.
440
441 2005-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
442
443         * HttpResponse.cs: setting the Status property resets the
444         StatusDescription (see the tests) and the default value for the
445         description is the one provided by GetStatusDescription() in
446         HttpWorkerRequest.
447
448 2005-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
449
450         * HttpRequest.cs: s/boundry/boundary/ and fix typo in array creation.
451
452 2005-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
453
454         * HttpApplication.cs: add call to EndOfRequest when everything is said
455         and done.
456
457 2005-08-02  Miguel de Icaza  <miguel@novell.com>
458
459         * HttpResponse.cs: Stub for TransmitFile.
460
461         * HttpRequest.cs (IsAuthenticated): Implement.
462
463 2005-08-01  Miguel de Icaza  <miguel@novell.com>
464
465         * HttpRequest.cs: Cope with implementations of HttpWorkerRequest
466         (unpatched xsp) that do not send back the PreloadedEntityBody. 
467
468         * HttpApplication.cs: keep track of the factory. 
469         (Dispose): Only dispose once, clean up other variables, release
470         the ManualResetEvent.
471         Release the handler to the factory.
472
473         * HttpApplicationFactory.cs: Implement a stack to reuse the
474         applications. 
475
476         * HttpRequest.cs: On uploads, if the ContentLenght is zero, throw
477         a 411.
478
479         * HttpRuntime.cs: Recycle the application after using it.
480
481         * HttpPostedFile.cs: Implement SaveAs.
482
483         * HttpContext.cs: Return the "Server" property.
484
485 2005-08-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
486
487         * HttpServerUtility.cs: implemented missing bits.
488
489 2005-08-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
490
491         * HttpRequest.cs: query string was getting a '?' as the start of the
492         first variable name. This makes the asmx help page work again.
493
494 2005-08-01  Miguel de Icaza  <miguel@novell.com>
495
496         * HttpRequest.cs (Cookies, Forms): Add validation.
497         (Forms): Add application/x-www-form-urlencoded parsing and
498         multipart/form-data parsing.
499         
500         (HttpMultiPart): Implement new class to load multi-part data from
501         a stream since there is no longer a byte [] that holds the data
502         (currently we have an unmanaged IntPtr buffer wrapped as a
503         stream).  Also the 2.x framework will add support for large
504         uploads which are sent directly to disk, which will require the
505         FileStream interface. 
506         
507         (Path, PathInfo): Fill a couple more methods to avoid crashes.
508
509         * HttpContext.cs: Fill another one to get web services summary
510         page painting.  The page does not work though.
511         
512         * HttpApplication.cs: Rework the pipeline to not depend on
513         `finally', as `finally' would not be invoked if we choose not to
514         call the pipeline again (which happens if the `stop' variable is
515         set). 
516
517         Instead force the pipeline to go to the shutdown, and yield from
518         there after all the release-state callbacks have been invoked. 
519
520 2005-07-31  Miguel de Icaza  <miguel@novell.com>
521
522         * HttpApplication.cs: Remove debugging messages since the compiler
523         bug has been fixed.
524
525         You must use at least mcs from revision 47879 for the application
526         pipeline to work. 
527
528 2005-07-30  Miguel de Icaza  <miguel@novell.com>
529
530         * HttpContext.cs: Error handling methods.
531
532         * HttpResponse.cs: Trigger the last event.
533
534         * HttpRuntime.cs: Add queueing of the next request. 
535
536         * HttpApplication.cs: Deploy the new yield-based application
537         pipeline, add error handling to the pipeline.
538         
539         * HttpApplication.cs (AsyncRequestState): Just use the done event
540         from the parent.
541
542 2005-07-29  Miguel de Icaza  <miguel@novell.com>
543
544         * HttpResponseStream.cs, HttpRequest.cs: Fix bugs found by nunit.
545
546         * HttpApplication.cs: Fix a race condition. 
547
548         * HttpResponseStream.cs: Fix bug, send the size of the buffer that
549         we have so far instead of the internal size of the buffer.   This
550         will need work later to ensure we enforce the Content-Length
551         maximum output size if set.
552
553         * ServerVariablesCollection.cs: This class now inherits from
554         NameValueCollection, we should probably review what the middle
555         class did, there are no dependencies on it.
556
557         I need to write tests to investigate if something is missing or
558         has changed in this implementation. 
559
560 2005-07-27  Miguel de Icaza  <miguel@novell.com>
561
562         * HttpRequest.cs: No happy replies here, send a 411.
563
564 2005-07-27  Chris Toshok  <toshok@ximian.com>
565
566         * HttpResponseHeader.cs: remove spew.
567         
568 2005-07-27  Chris Toshok  <toshok@ximian.com>
569
570         * HttpResponseHeader.cs (HttpResponseHandler..ctor): use
571         HttpWorkerRequest.GetKnownResponseHeaderName instead of
572         GetKnownRequestHeaderName.  Fixes Response.Redirect until miguel's
573         new HttpReponse is online.
574
575 2005-07-26  Miguel de Icaza  <miguel@novell.com>
576
577         * HttpResponse.cs: use_chunked is now a byte-array, if not null,
578         we use it to hold the size of the chunked so we do not have to
579         allocate many of these. 
580         (SendSize): Helper routine to send the chunked headers.
581         (BinaryWrite): First user of the chunked writer.
582
583         * HttpApplication.cs: Do not crash if they request a Server
584         instance, but throw a NotImplementedException.
585
586         * HttpRequest.cs: fix a few problems exposed by the regression
587         test suite.
588
589         * HttpRequest.cs (Cookies): use Chris' new constructor to get the
590         cookies parsed.
591
592         : The big Uri rework: instead of using QueryString
593         as the population mechanism, populate an UriBuilder from the
594         various HttpWorkerRequest methods.
595
596         * HttpWorkerRequest.cs (GetProtocol): Implement in terms of
597         IsSecure().
598
599         * HttpResponse.cs: Pointed by Ben, Write (null) is a nop instead
600         of a crash.
601
602         * HttpContext.cs: Add a couple of properties to help the 2.x
603         build.
604         
605         * HttpResponse.cs: Make ContentLength a long, add back support for
606         session's app_path_mod.
607         (ApplyAppPathmodifier): put back.
608         (End): Pass a flag to abort so we can tell the exceptions appart
609         in HttpApplication.
610         (WriteHeaders): Send the HTTP status.
611         (Redirect): Implement.
612         (Write): Use the Output property to load writer when needed.
613         
614         * HttpRequest.cs (ctor): Temporary use of InitFromWR, will fix
615         later. 
616         (MakeInputStream): check content-length size, use routines to load
617         the preloaded data, handle incomplete transfers.
618         (Query): Do not insert null keys into the collection.
619         (Url): implement.
620         (UrlReferer): implement.
621
622         * HttpApplication.cs (RunHooks): Catch Thread.Abort, and call
623         Thread.ResetAbort after each step.
624
625         Ensure that ReleaseState is called if we ever succeed in acquiring
626         the state even if we have stopped the request pipeline.
627
628         Report file not found, directory not found.
629
630 2005-07-25  Miguel de Icaza  <miguel@novell.com>
631
632         * HttpCookieCollection.cs: Add expiration of the cookie. 
633
634         * HttpRequest.cs: Add check for ContentLength, use
635         GetPreloadedEntityBody, correct number of bytes uploaded.
636
637 2005-07-21  Miguel de Icaza  <miguel@novell.com>
638
639         * HttpResponseHeader.cs: Our implementation of HttpResponse only
640         uses the text headers, does not use any constants as XSP would go
641         through a slower code path anyways.
642
643 2005-07-21  Chris Toshok  <toshok@ximian.com>
644
645         * HttpBrowserCapabilities.cs: enable support for the W3CDomVersion
646         and EcmaScriptVersion properties.
647
648 2005-07-21  Chris Toshok  <toshok@ximian.com>
649
650         * HttpResponseHeader.cs: hi, i'm stupid and missed String.Replace.
651         
652 2005-07-21  Chris Toshok  <toshok@ximian.com>
653
654         * HttpResponseHeader.cs: url encode just \r and \n if they're
655         present in the value.
656
657 2005-07-20  Chris Toshok  <toshok@ximian.com>
658
659         * HttpPostedFile.cs: add missing ContentLength property.
660
661 2005-07-20  Chris Toshok  <toshok@ximian.com>
662
663         * HttpCookieCollection.cs: add a new ctor that takes a string (the
664         contents of the Cookies: header).
665
666 2005-07-20  Chris Toshok  <toshok@ximian.com>
667
668         * HttpCookieCollection.cs: add another ctor (internal, but not
669         obsolete, so we aren't passing a stupid HttpResponse in in order
670         to change the behavior of the collection.)
671
672         * HttpCookie.cs: init this.values in the internal ctor.
673
674 2005-07-20  Chris Toshok  <toshok@ximian.com>
675
676         * HttpCookieCollection.cs: use "auto-fill mode" when we're dealing
677         with an HttpResponse's cookie collection.  That is, create the
678         cookie if the consumer looks it up.
679
680 2005-07-20  Miguel de Icaza  <miguel@novell.com>
681
682         * HttpApplication.cs: Ongoing work on pipeline, I will need to
683         redo this later.
684
685 2005-07-19  Miguel de Icaza  <miguel@novell.com>
686
687         * HttpContext.cs (GetService): Implement.  Return all of the
688         properties that we have access to.  Make HttpWorkerRequest the
689         first match as this is the only likely reason people need to use
690         this. 
691
692         * IntPtrStream.cs: Bring from corlib.
693
694         * MultiPartContentParser.cs: use a MemoryStream as HttpInputStream
695         will now be using IntPtrStream. 
696
697         * HttpRequest.cs (MakeInputStream): move code that loads the
698         request here
699         (CloseInputStream): Helper method that we will call later to
700         ensure that we dispose properly the malloced() block. 
701         (BinaryRead): Implemented.
702
703         * HttpInputStream.cs: Rewrite to be a descendant of
704         IntPtrStream.cs 
705
706 2005-07-18  Miguel de Icaza  <miguel@novell.com>
707
708         * HttpApplication.cs (Modules): Add modules support and
709         AsyncResult.
710
711 2005-07-18  Chris Toshok  <toshok@ximian.com>
712
713         * HttpResponseHeader.cs: initial implementation.
714
715 2005-07-18  Chris Toshok  <toshok@ximian.com>
716
717         * HttpModuleCollection.cs (HttpModuleCollection.GetKey): add
718         missing method.
719
720         * HttpFileCollection.cs: initial implementation.
721
722 2005-07-18  Chris Toshok  <toshok@ximian.com>
723
724         * HttpModuleCollection.cs (HttpModuleCollection.CopyTo): implement
725         missing method.
726
727 2005-07-18  Chris Toshok  <toshok@ximian.com>
728
729         * HttpModuleCollection.cs: initial implementation.
730
731 2005-07-18  Chris Toshok  <toshok@ximian.com>
732
733         * HttpCacheVaryByHeaders.cs: only add the header if it's not
734         already in the hash.
735
736         * HttpCacheVaryByParams.cs: only add the param if it's not already
737         in the hash.
738
739 2005-07-18  Chris Toshok  <toshok@ximian.com>
740
741         * HttpCookie.cs (HttpCookie+CookieNVC.Set): new override to fix an
742         MS quirk.
743
744 2005-07-17  Miguel de Icaza  <miguel@novell.com>
745
746         * HttpRequest.cs (Headers, InputStream): implemented two more
747         properties.
748
749         * HttpInputStream.cs: All we need is a MemoryStream with writable
750         set to false.
751
752         * HttpPostedFile.cs: Use a Stream.
753
754 2005-07-16  Chris Toshok  <toshok@ximian.com>
755
756         * HttpCacheVaryByHeaders.cs: make sure we set vary_by_unspecified
757         = false in the custom setter.
758
759 2005-07-16  Chris Toshok  <toshok@ximian.com>
760
761         * HttpCacheVaryByParams.cs: initial implementation.
762
763 2005-07-16  Chris Toshok  <toshok@ximian.com>
764
765         * HttpCacheVaryByHeaders.cs: initial implementation.
766
767 2005-07-15  Chris Toshok  <toshok@ximian.com>
768
769         * HttpCookie.cs: one more time.
770
771 2005-07-15  Chris Toshok  <toshok@ximian.com>
772
773         * HttpCookie.cs (HttpCookie.GetCookieHeader): use
774         expires.ToString().
775         
776 2005-07-15  Chris Toshok  <toshok@ximian.com>
777
778         * HttpCookie.cs (HttpCookie.GetCookieHeader): implement to fix
779         ben's bug.
780
781 2005-07-15  Chris Toshok  <toshok@ximian.com>
782
783         * HttpCookieCollection.cs: initial implementation (with a couple
784         of labeled inefficiencies.)
785
786 2005-07-15  Chris Toshok  <toshok@ximian.com>
787
788         * HttpCookie.cs (HttpCookie.get_HasKeys): use values.HasKeys()
789         instead of trying to be smart about it ourselves.
790
791 2005-07-15  Chris Toshok  <toshok@ximian.com>
792
793         * HttpCookie.cs: initial implementation.  we fail one unit test,
794         but it might be due to a bug in NameValueCollection.
795
796 2005-07-15  Miguel de Icaza  <miguel@novell.com>
797
798         * HttpRequest.cs: 
799
800 2005-07-14  Miguel de Icaza  <miguel@novell.com>
801
802         * HttpRuntime.cs: Return a few of the values from the AppDomain
803         data. 
804
805         Put the application shutdown process.
806
807         * HttpApplicationFactory.cs (AddEvent): Fixed bug when more than
808         one method existed.
809         
810         (FireEvent): Do not ignore errors.
811
812         * HttpContext.cs (GetAppConfig, GetConfig): First success, use
813         ConfigurationSettings.GetConfig to get the value that QueueManager
814         needed.
815
816 2005-07-14  Dick Porter  <dick@ximian.com>
817
818         * HttpPostedFile.cs: New basic implementation; needs someone to
819         figure out what a HttpRequestStream does
820
821 2005-07-13  Miguel de Icaza  <miguel@novell.com>
822
823         * HttpRequest.cs: More work on this file
824
825         * HttpRequest.cs, HttpApplication.cs, HttpContext.cs,
826         HttpRuntime.cs: New from scratch implementation.
827
828 2005-07-01  Lluis Sanchez Gual <lluis@novell.com>
829
830         * SiteMap.cs: Read provider info from the configuration files.
831
832 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
833
834         * HttpResponseHeader.cs: URL encode \r and \n in header values. Fixes
835         bug #75392.
836
837 2005-06-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
838
839         * HttpUtility.cs: fix another stupid buglet in htmldecode.
840
841 2005-06-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
842
843         * HttpContext.cs:
844         * HttpResponse.cs:
845         * HttpRequest.cs: use StrUtils (invariant culture).
846
847 2005-06-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
848
849         * HttpRequest.cs: use StartsWith when looking for 'multipart/form-data'.
850         File uploading was broken since a few commits ago.
851
852 2005-06-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
853
854         * HttpResponse.cs: ensure that the last chunk ('0\r\n\r\n') is sent
855         even if response.Close is called before a final flush. MS/IIS fails to
856         do this.
857
858 2005-06-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
859
860         * HttpRequest.cs: don't print anything for unknown content types in
861         ParseFormData. Use lowercase compare.
862
863 2005-06-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
864
865         * HttpResponse.cs: invariant love.
866
867 2005-06-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
868
869         * HttpResponse.cs: avoid 1 string concat.
870         * HttpRequest.cs: fix BinaryRead. It was totally wrong.
871
872 2005-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
873
874         * HttpUtility.cs: don't append an extra 0 when no digits seen. Fixes
875         bug #75370.
876
877 2005-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
878
879         * HttpUtility.cs: the lower limit for using &#xx; encoding is 160, not
880         128. Reset number back to 0 after use. Fixes bug #75365.
881
882 2005-06-19  Svetlana Zholkovsky <svetlanaz-at-mainsoft.com>
883                 * In following classes added TARGET_J2EE or/and TARGET_JVM
884                   directives:
885                         - HttpResponse.cs
886                         - HttpRuntime.cs
887                         - HttpUtility.cs
888                         - CapabilitiesLoader.cs
889                         - HttpApplication.cs
890                         - HttpApplicationFactory.cs
891                         - HttpContext.cs
892                         - HttpException.cs
893                         - HttpRequest.cs
894                 * Added Mainsoft's specific files :
895                         - GhHttpAsyncResult.jvm.cs
896
897 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
898
899         * HttpRequest.cs: avoid one intermediate buffer when reading the request
900         body and fail for over limit content length when the content type is
901         not handled as form or multipart data.
902
903 2005-06-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
904
905         * HttpResponse.cs: fix the check in Close() so that CloseConnection is
906         called even if there has been no final Flush. Fixes bug #75176.
907
908 2005-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
909
910         * HttpParseException.cs:
911         * HttpResponse.cs:
912         * HttpApplication.cs: updates for 1.1 service pack.
913
914 2005-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
915
916         * HttpUtility.cs: fix InvalidCastException.
917
918 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
919
920         * HttpWriter.cs: Fixed: _OutputFilter.Close () was called twice.
921
922 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
923
924         * HttpUtility.cs: modified HtmlDecode so that it does not need to call
925         Int32.Parse and handles improper &# sequences. Fixes bug #74907.
926
927 2005-05-26  Lluis Sanchez Gual <lluis@novell.com>
928
929         * SiteMapNodeCollection.cs: Implemented missing methods. The collection
930         does not inherit from CollectionBase any more.
931         * SiteMapNode.cs: Track api changes.
932         * SiteMapProvider.cs: Moved several methods to the new
933         StaticSiteMapProvider class. Other fixes.
934         * XmlSiteMapProvider.cs: Watch changes in the xml files. Other fixes.
935         * SiteMapProviderCollection.cs: Minor fixes.
936         * SiteMap.cs: Added missing event. Avoid double check lock.
937         * StaticSiteMapProvider.cs: New class that implements some of the
938         funtionality of SiteMapProvider.
939
940 2005-05-25  Ben Maurer  <bmaurer@ximian.com>
941
942         * MimeTypes.cs: Remove extra spaces, they were typos. Fixes 75049.
943
944 2005-05-13 Atsushi Enomoto <atsishi@ximian.com>
945
946         * HttpUtility.cs : UrlDecodeToBytes() incorrectly decoded escaped 
947           characters. Patch by Kazuki Oikawa.
948
949 2005-05-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
950
951         * HttpRuntime.cs: PlatformID.Unix.
952
953 2005-05-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
954
955         * HttpResponse.cs: cleaned up the .ctors, fix IsClientConnected and just
956         Clear the _Headers array instead of creating a new ArrayList in
957         ClearHeaders().
958
959 2005-05-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
960
961         * HttpResponse.cs: we had 2 variables to track client connection status.
962         Use only one. Increase the buffer size to 28KB when writing from a file.
963
964         * StaticFileHandler.cs: set the Content-Type before writing the file.
965         This allows flushing before all the content is written.
966
967         * HttpApplication.cs: use the variable instead of the property when
968         setting the Principal for the current process.
969
970 2005-05-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
971
972         * ReusableMemoryStream.cs:
973         * HttpWriter.cs: keep a pool of buffers to avoid allocations.
974
975 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
976
977         * HttpResponse.cs: no need to save/restore the thread culture when
978         getting the Date header. According to Ben's profiling, this is a big
979         deal in performance.
980
981         * HttpRuntime.cs: ignore exceptions that might be thrown when unloading 
982         a domain.
983
984 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
985
986         * HttpApplicationFactory.cs: ignore any exception thrown when invoking
987         an application event.
988
989 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
990
991         * HttpBrowserCapabilities.cs: fix Win32 property.
992
993 2005-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
994
995         * HttpResponse.cs: only add the charset when explicitly set or for
996         well-known content types.
997
998 2005-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
999
1000         * HttpCachePolicy.cs:
1001         * HttpAsyncResult.cs:
1002         * HttpClientCertificate.cs:
1003         * HttpException.cs:
1004         * HttpRuntime.cs:
1005         * HttpCacheVaryByHeaders.cs:
1006         * HttpBrowserCapabilities.cs:
1007         * HttpUtility.cs:
1008         * HttpCacheVaryByParams.cs: no more warnings.
1009
1010         * QueueManager.cs: check for local connections with minLocalFreeThreads.
1011
1012 2005-04-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1013
1014         * ServerVariablesCollection.cs: shuffled variables, added missing ones
1015         and call a method in HttpRequest to set the HTTP_ variables.
1016
1017         * HttpRequest.cs: new method to add HTTP_ variables to a collection.
1018
1019 2005-04-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1020
1021         * HttpRequest.cs: GetAllHeaders was returning the value twice instead
1022         of 'name: value'. When HTTP_ is requested on the output, don't include
1023         unknown headers.
1024
1025 2005-03-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1026
1027         * HttpCookieCollection.cs: when adding more than one cookie with the
1028         same name, the last one is the winner.
1029
1030 2005-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1031
1032         * HttpRequest.cs: correctly store the value cookies in Params. Fixes
1033         bug #73345.
1034
1035 2005-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1036
1037         * HttpRequest.cs: Path and FilePath also change when RewritePath is
1038         called. Fixes bug #73055.
1039
1040 2005-02-23  Sebastien Pouliot  <sebastien@ximian.com>
1041
1042         * HttpRequest.cs: Make sure that any access after a ValidateInput 
1043         throws an exception if the data isn't safe.
1044
1045 2005-02-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1046
1047         * CapabilitiesLoader.cs: fix the path, as machine.config is now in a
1048         x.x/ directory below $PREFIX/etc/mono.
1049
1050 2005-02-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1051
1052         * HttpRequest.cs: fail on unicode full-width '<' and '>' too. Fixes
1053         a security report (http://secunia.com/advisories/14325) that wan't
1054         reported to us before public disclosure.
1055
1056 2005-02-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1057
1058         * HttpResponse.cs: send the calculated content length even when it's 0.
1059         Fixes bug #72655.
1060
1061 2005-02-04  Lluis Sanchez Gual <lluis@novell.com>
1062
1063         * HttpContext.cs: Added internal property to keep a reference to
1064         the last accessed page. Page uses this to implement PreviousPage.
1065
1066 2005-02-02  Lluis Sanchez Gual <lluis@novell.com>
1067
1068         * ProcessModelInfo.cs: Fixed warning.
1069
1070 2005-02-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1071
1072         * TraceContext.cs: writing a message without any other argument is not
1073         a warniing. Fixes bug #72017.
1074
1075 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1076
1077         * HttpApplication.cs: if there are no more handlers, finish the
1078         request and ensure we call Complete on it. Now FreeTextBox 3.0 works.
1079
1080 2004-12-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1081
1082         * HttpRequest.cs: honor the maxRequestSize limit from machine.config.
1083
1084 2004-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1085
1086         * HttpApplication.cs: reread application CultureInfo as web.config
1087         might have changed. Fixes bug #62539.
1088
1089 2004-11-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1090
1091         * HttpResponse.cs: fixed ApplyAppPathModifier to insert the session ID.
1092
1093 2004-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1094
1095         * HttpApplicationFactory.cs: monitor changes in global.asax and bin
1096         directory and shutdown the application when that happens. Fixes bug
1097         #49651.
1098
1099 2004-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1100
1101         * ReusableMemoryStream.cs: copied from System.IO.MemoryStream and
1102         slightly modified to allow expanding the buffer for cases on which the
1103         regular MemoryStream don't allow it.
1104
1105         * HttpWriter.cs: use the new ReusableMemoryStream and fix bug #59841.
1106         Otherwise we would have to allocate a new MemoryStream...
1107
1108 2004-11-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1109
1110         * HttpApplication.cs: Create() is now GetInstance().
1111
1112 2004-11-18 Lluis Sanchez Gual <lluis@novell.com>
1113
1114         * SiteMapNodeCollection.cs: Added missing properties.
1115         * HttpParseException.cs: Added 2.0 methods and properties.
1116         * SiteMapNode.cs: Added missing methods and properties.
1117         * SiteMapProvider.cs, XmlSiteMapProvider.cs, 
1118         SiteMapProviderCollection.cs: IProvider does not exist any
1119         more, it is now ProviderBase.
1120         * ISiteMapProvider.cs: Deleted.
1121         * ParserErrorCollection.cs, ParserError.cs, SiteMapResolveEventArgs.cs:
1122           Implemented.
1123         * SiteMap.cs: Minor fixes.      
1124
1125 2004-11-15 Lluis Sanchez Gual <lluis@novell.com>
1126
1127         * SiteMapProviderCollection.cs: Fixed warning.
1128         * HttpApplication.cs: Added new 2.0 events.
1129
1130 2004-11-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1131
1132         * HttpResponse.cs: added internl SetHeadersSent.
1133         * HttpRuntime.cs: don't throw the 'headers already sent' exception
1134         if we're sending a runtime error.
1135
1136 2004-11-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1137
1138         * HttpApplication.cs: undo the TimeoutManager.(Add|Remove) shuffling.
1139         It causes troubles under heavy load.
1140
1141 2004-11-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1142
1143         * SiteMap.cs: don't lock on Type.
1144         * CapabilitiesLoader.cs: avoid 2 locks when loading data.
1145
1146 2004-11-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1147
1148         * HttpRequest.cs: patch by Dennis Gervalle that fixes PhysicalPath in
1149         presence of rewriting.
1150
1151 2004-10-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1152
1153         * HttpApplication.cs: don't hang if a sync step is aborted. Fixes the
1154         system.web portion of bug #68270.
1155
1156 2004-10-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1157
1158         * TraceContext.cs: don't cast to Page is the handler it's
1159         not a page.
1160
1161 2004-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1162
1163         * HttpRequest.cs: CurrentExecutionFilePath is the one that
1164         changes when Transfer or Execute are used, not FilePath.
1165
1166         * HttpServerUtility.cs: moved form saving/restoring from
1167         Transfer to Execute, as it's needed there too. the query string is
1168         correctly set now. Fixes bug #67388.
1169
1170         * HttpContext.cs: use SetCurrentExePath instead of SetFilePath.
1171
1172 2004-10-03 Ben Maurer  <bmaurer@ximian.com>
1173
1174         * HttpResponse.cs: use UtcNow
1175
1176 2004-10-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1177
1178         * HttpResponse.cs: SuppressContent does not throw and clears all the
1179         buffered output. Fixes bug #67213.
1180
1181 2004-09-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1182
1183         * HttpUtility.cs: UrlPathEncode is static. Fixes bug #67155.
1184
1185 2004-09-29 Ben Maurer  <bmaurer@ximian.com>
1186
1187         * HttpContext.cs, TimeoutManager: Use DateTime.UtcNow.
1188
1189 2004-09-25 Ben Maurer  <bmaurer@ximian.com>
1190
1191         * HttpApplication.cs: Make sure requests are removed from
1192         the timeout manager. Fixes a major leak. #66751.
1193
1194 2004-09-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1195
1196         * HttpApplicationFactory.cs:
1197         * HttpRuntime.cs: implemented UnloadAppDomain and be ready for domain
1198         unloading.
1199
1200 2004-09-12 Ben Maurer  <bmaurer@ximian.com>
1201
1202         * HttpContext.cs: use CallContext. It is a little bit faster.
1203
1204 2004-09-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1205
1206         * HttpStaticObjectsCollection.cs: don't share static session objects
1207         declared in the application file across the application, but on a
1208         per-session basis. Fixes bug #65446.
1209
1210 2004-09-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1211
1212         * HttpServerUtility.cs: in Transfer(path), don't keep form data if
1213         the transfer is done from inside a page that received a postback.
1214         Fixes bug #65613.
1215
1216 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1217
1218         * HttpValueCollection.cs: fixed signature of ToString (). Closes bug
1219         #65392.
1220
1221 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1222
1223         * HttpWriter.cs (.ctor): Dont create teh StreamWriter twice
1224         (Clear): Don't recreate the MemoryStream and StreamWriter
1225
1226 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1227
1228         * HttpApplication.cs: only add/remove to/from the timeout
1229         manager when we're in a interruptible step.
1230
1231 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1232
1233         * TraceContext.cs: when IsEnabled has not been set, return the value
1234         from the TraceManager. Fixes bug #63469.
1235
1236 2004-08-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1237
1238         * HttpRuntime.cs: initialize the response writer when finishing a
1239         request because it cannot be queued. Under heavy load we made new
1240         requests be processed before the ones that might be queued. This is
1241         no longer the case.
1242
1243         * QueueManager.cs: instead of queueing/dequeuing separately, we now
1244         have a single method that does everything needed to decide which one
1245         will be the next request processed.
1246
1247 2004-08-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1248
1249         * HttpRuntime.cs: removed initializations to null in .cctor. Prevent
1250         other requests from avoiding the lock if they are received before the
1251         configuration system is inited. Ensure that the queue manager is not
1252         null before using it (it can be null while the first request is being
1253         processed).
1254
1255 2004-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1256
1257         * HttpServerUtility.cs: ensure we have a full virtual path for the
1258         request being executed.
1259
1260 2004-08-02  Duncan Mak  <duncan@ximian.com>
1261
1262         * ApplicationShutdownReason.cs: Fixed typos.
1263
1264         * HttpCookieMode.cs:
1265         * HttpDataTransferMode.cs:
1266         * HttpRequestPriority.cs: Added [Serializable] attribute.
1267         
1268 2004-08-02  Duncan Mak  <duncan@ximian.com>
1269
1270         * ApplicationShutdownReason.cs:
1271         * HttpCookieMode.cs:
1272         * HttpDataTransferMode.cs:
1273         * HttpRequestPriority.cs: Added 2.0 enumerations.
1274         
1275 2004-07-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1276
1277         * HttpApplication.cs: the file not found might be a dependency.
1278
1279 2004-07-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1280
1281         * HttpCookie.cs: use invariant when formatting expires date. Fixes bug
1282         #61690.
1283
1284 2004-07-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1285
1286         * HttpApplication.cs: don't keep the session around if we got it from
1287         the context. Fixes bug #61232.
1288
1289 2004-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1290
1291         * HttpUtility.cs: fixed stupid bug in UrlDecode from bytes. Closes bug
1292         #61181.
1293
1294 2004-07-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1295
1296         * TraceContext.cs: added internal HaveTrace property whose
1297         value is true when the page has a Trace attribute.
1298
1299 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1300
1301         * TraceData.cs: fixed <br> output. Closes bug #60181.
1302
1303 2004-06-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1304
1305         * HttpUtility.cs: check for control characters in the string to encode
1306         or decode and return the same string if there are none.
1307
1308 2004-06-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1309
1310         * HttpApplication.cs: change/restore the IPrincipal in their own methods
1311         and make them internal.
1312
1313 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1314
1315         * HttpContext.cs: reverting Pedro's patch and sending mail with test
1316         to mono-devel.
1317
1318 2004-06-09  Pedro Martnez Juli  <yoros@wanadoo.es>
1319
1320         * HttpContext: User property returns its own "user" value because
1321         the context can walk through different Threads. When "User" property
1322         is changed, change "Thread.CurrentPrincipal" too.
1323
1324 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1325
1326         * HttpRequest.cs: removed extra ^Ms and fixed style of last patch.
1327
1328 2004-06-08  Alon Gazit  <along@mainsoft.com>
1329
1330         * HttpRequest.cs: Add a patch for HttpRequest.ServerVariables.
1331
1332 2004-06-07  Sebastien Pouliot  <sebastien@ximian.com>
1333
1334         * HttpContext.cs: User property now get/set Thread.CurrentPrincipal.
1335         Fix (at least partially) #59683.
1336
1337 2004-06-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1338
1339         * HttpRequest.cs: reverting patch from Alon Gazit. Uses the above file
1340         that doesn't compile.
1341
1342 2004-06-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1343
1344         * TraceData.cs: fixes nullref in an application that relies on
1345         r ["Message"] not being null. Closes bug #59679.
1346
1347 2004-06-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1348
1349         * HttpCachePolicy.cs: implemented SetAllowResponseInBrowserHistory.
1350
1351 2004-06-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1352
1353         * HttpRuntime.cs: implemented a 5 simple properties that were TODOs.
1354
1355 2004-06-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1356
1357         * HttpBrowserCapabilities.cs: implemented ClrVersion and GetClrVersions.
1358         * HttpException.cs: removed MonoTODO.
1359
1360 2004-06-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1361
1362         * TraceContext.cs: don't check if HttpRuntime.TraceManager
1363         is enabled when writing.
1364
1365 2004-06-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1366
1367         * HttpRequest.cs: added ClientTarget internal property.
1368
1369 2004-06-03  Lluis Sanchez Gual <lluis@ximian.com>
1370
1371         * HttpApplication.cs: Clear the http handler list after releasing the
1372           handlers.
1373
1374 2004-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1375
1376         * TraceData.cs: html-encode the messages written to the trace. Fixes
1377         bug #59431.
1378
1379 2004-06-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1380
1381         * HttpWorkerRequest.cs: the hashtables are now case-insensitive. Thanks
1382         to Markus Krutner.
1383
1384 2004-05-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1385
1386         * HttpRequest.cs: nullify _sRequestRootVirtualDir and baseVirtualDir
1387         when SetFilePath is called. This way the cached values are reset and
1388         get the right value in case someone (namely SessionStateModule + 
1389         cookieless session) changes the FilePath after the property cached its
1390         value. Fixes bug #59364.
1391
1392 2004-05-27      Patrik Torstensson <totte@hiddenpeaks.com>
1393
1394         * HttpApplicationFactory.cs: Added SignalError (still todo)
1395
1396 2004-05-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1397
1398         * HttpResponse.cs: remove hardcoded "HTTP/1.0" version that kept
1399         chunked encoding disabled. Fixed chunked suffix and end. Send the
1400         'lastchunk' marked when in the final Flush even if the content length
1401         is 0. This makes mod-mono-server work fine with chunked encoding.
1402          
1403         * HttpRuntime.cs: Set the _firstRequest* variables to true
1404         earlier. TraceContext don't take any parameter now.
1405
1406         * TraceManager.cs: don't need a context. Use GetAppConfig.
1407
1408 2004-05-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1409
1410         * HttpApplication.cs: set culture/uiculture from configuration and
1411         restore it after each step. Fixes bug #52851.
1412
1413 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1414
1415         * HttpUtility.cs: use lower case in UrlEncode like MS does. Delay
1416         entities hashtable creation until it's really needed.
1417
1418 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1419
1420         * HttpApplicationFactory.cs: if no module matches the name found for a
1421         possible event, ignore it. Fixes bug #58542.
1422
1423 2004-05-16      Patrik Torstensson <totte@hiddenpeaks.com>
1424
1425         * HttpRuntime (Init): Removed old todo
1426         * HttApplication : Implemented IHttpHandlerFactory recycling
1427         
1428 2004-04-28      Patrik Torstensson
1429
1430         * HttpApplicationState.cs: Performance, usage of ReaderWriter lock,
1431         removed MonoTodo
1432
1433 2004-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1434
1435         * HttpUtility.cs: return null in HtmlDecode for null input instead of
1436         throwing an exception. Patch by Jan Jaros (bug #57083).
1437
1438 2004-04-10  Vladimir Vukicevic  <vladimir@pobox.com>
1439
1440         * TimeoutManager.cs: Swap the order of initialization of contexts
1441         and the Timer, to avoid race condition of CheckTimeouts being called
1442         before contexts gets initialized.
1443
1444 2004-03-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1445
1446         * HttpRequestStream.cs: patch from Jan Jaros that fixes bug #56080.
1447         Now the posted file content does not have the boundaries and headers
1448         included.
1449
1450 2004-03-25  Alon Gazit <along@mainsoft.com>
1451
1452         * HttpRequest.cs: fix ValidateCookieCollection() to prevent
1453         InvalidCastException.
1454
1455 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1456
1457         * HttpValueCollection.cs: don't UrlDecode cookies. Fixes bug #55254.
1458
1459 2004-03-01  Larry Ewing  <lewing@ximian.com>
1460
1461         * HttpUtility.cs: fix UrlEncodeToBytes count check.
1462
1463 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1464
1465         * HttpServerUtility.cs:
1466         * HttpUtility.cs: added some checks for null. Fixed UrlPathEncode (bug
1467         #53670).
1468
1469 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1470
1471         * HttpUtility.cs: fixed length check. Closes bug #54201.
1472         Thanks to Michal Moskal. Use MemoryStream instead of an ArrayList when
1473         decoding.
1474
1475 2004-02-11  Jackson Harper <jackson@ximian.com>
1476
1477         * TraceData.cs: Use ToString for cookie/header/var name values so
1478         null is handled properly.
1479         
1480 2004-02-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1481
1482         * HttpApplication.cs: ApplicationState is inited by the factory so,
1483         return that value in the property. when we use the context Session,
1484         cache it in the instance field.
1485
1486         * HttpApplicationFactory.cs: fixed target Type for the event when
1487         hooking application and module events. Initialize application
1488         and session scope objects. Fixes non-aplication events hook up.
1489
1490         * HttpStaticObjectsCollection.cs: added StaticItem and delay the
1491         creation of the objects until they are requested.
1492
1493 2004-01-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1494
1495         * HttpApplicationFactory.cs: fixlet for session events hook.
1496
1497 2004-01-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1498
1499         * HttpApplicationFactory.cs: attach all events from Type and BaseType
1500         at the same time. Fixes bug #53454.
1501
1502 2004-01-27  Jackson Harper <jackson@ximian.com>
1503
1504         * HttpCachePolicy.cs: varybyparams::GetResponseHeader can return
1505         null now, dont hadd the header if it does.
1506         * HttpCacheVaryByParams.cs: Return null if there are no items.
1507
1508 2004-01-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1509
1510         * HttpCachePolicy.cs: it's not public.
1511         * HttpRuntime.cs: wait for requests before disposing the queue.
1512
1513 2004-01-15  Jackson Harper <jackson@ximian.com>
1514
1515         * HttpCachePolicy.cs: Fix typo causing varyby params headers to be
1516         created when they shouldn't be.
1517         
1518 2004-01-14  Jackson Harper <jackson@ximian.com>
1519
1520         * TraceData.cs: Fix some typos in the output text. Fix control
1521         position when adding controls recursively.
1522         
1523 2004-01-14  Jackson Harper <jackson@ximian.com>
1524
1525         * HttpCachePolicy.cs: Expose duration and sliding properties.
1526         
1527 2004-01-14  Jackson Harper <jackson@ximian.com>
1528
1529         * HttpCachePolicy.cs: Add an event that is fired when the
1530         cacheability is updated. The response uses this to determine
1531         whether or not it needs to cache itself.
1532         * HttpResponse.cs: When the cacheability is updated either create
1533         or dispose of the cached raw response based on whether or not we
1534         wil need it. This allows output caching to be controlled
1535         programatically.
1536         
1537 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1538
1539         * HttpContext.cs: add setter for ConfigTimeout.
1540         * HttpException.cs: added Description property and HTML encode some
1541         unescaped values.
1542
1543         * HttpRequest.cs: support request validation.
1544
1545         * HttpRequestValidationException.cs: added message and description.
1546
1547         * HttpServerUtility.cs: implemented ScriptTimeout.
1548
1549 2004-01-11  Jackson Harper <jackson@ximian.com>
1550
1551         * TraceManager.cs: Dont crash if there is no trace config element.
1552         
1553 2004-01-11  Jackson Harper <jackson@ximian.com>
1554
1555         * HttpRequest.cs: Add property for determining if the request is
1556         local or not.
1557         
1558 2004-01-10  Jackson Harper <jackson@ximian.com>
1559
1560         * TraceContext.cs: Handle tracing when it is enabled in the config
1561         file but not on the page.
1562         * TraceManager.cs: Get settings from the configuration object.
1563         * HttpRuntime.cs: Create trace manager in the first request start
1564         so it can get configuration settings.
1565         
1566 2004-01-10  Jackson Harper <jackson@ximian.com>
1567
1568         * TraceContext.cs: Save the request path in the trace data.
1569         * TraceData.cs: Add RequestPath property, make some rendering
1570         methods internal static so the TraceHandler can use them.
1571         * TraceManager.cs: Expose trace data, add a method for clearing
1572         trace data.
1573         
1574 2004-01-10  Jackson Harper <jackson@ximian.com>
1575
1576         * HttpRuntime.cs: Add trace manager
1577         * TraceManager.cs: New class for handling trace configuration and
1578         storing trace data objects.
1579         * TraceContext.cs: Save trace data to the trace manager. Fix typo.
1580         
1581 2004-01-10  Jackson Harper <jackson@ximian.com>
1582
1583         * TraceData.cs: New class for storing trace data. Data is stored
1584         here instead of the trace context so it can be saved and accessed
1585         from the trace handler.
1586         * TraceContext.cs: Save data in the TraceData object, let the
1587         trace data object handle the rendering.
1588         
1589 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1590
1591         * HttpRequest.cs: use ContentEncoding for QueryString. Fixes bug #52577.
1592         Thanks to Jan Jaros (mono-bug@jerryweb.info).
1593
1594         * HttpRequestValidationException.cs: fix comment.
1595
1596 2004-01-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1597
1598         * HttpException.cs: default to error 500. Fixes bug #52623.
1599
1600 2004-01-04  Jackson Harper <jackson@ximian.com>
1601
1602         * TraceContext.cs: Store and render trace info times. Also render
1603         cookie sizes. Remove debug code.
1604         
1605 2004-01-04  Jackson Harper <jackson@ximian.com>
1606
1607         * HttpResponse.cs: Set the cached response date header so it can
1608         be updated.
1609         * HttpResponseHeader.cs: Let values be set so we can update cached 
1610         response header values.
1611         
1612 2004-01-04  Jackson Harper <jackson@ximian.com>
1613
1614         * HttpResponse.cs: Implement RemoveOutputCacheItem.
1615         
1616 2004-01-04  Jackson Harper <jackson@ximian.com>
1617
1618         * HttpCachePolicy.cs: Add internal method to get the vary by custom string
1619         * HttpCacheVaryByHeaders.cs: Add internal method to get the header names.
1620         
1621 2004-01-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1622
1623         * HttpRuntime.cs: implemented MachineConfigurationDirectory,
1624
1625 2004-1-1  Alon Gazit <along@mainsoft.com>
1626         * HttpWriter.cs: add check in Write() in order to prevent
1627         NullReferenceException.
1628
1629 2004-1-1  Alon Gazit <along@mainsoft.com>
1630         * HttpResponse.cs: implemented ExpiresAbsolute and Expires.
1631
1632 2003-12-18  Jackson Harper <jackson@ximian.com>
1633
1634         * TraceContext.cs: Write () methods are not warnings.
1635         
1636 2003-12-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1637
1638         * HttpBrowserCapabilities.cs: added GetClrVersions ().
1639         * HttpCachePolicy.cs: added SetAllowResponseInBrowserHistory ().
1640         * HttpContext.cs: added set_Current and RewritePath (s, s, s) for 1.1.
1641         * HttpRequest.cs: added set_ContentType, SetPathInfo and ValidateInput.
1642         * HttpRequestValidationException.cs: new class for 1.1
1643         * HttpResponse.cs: added RedirectLocation.
1644         * HttpRuntime.cs: added UnloadAppDomain.
1645         * HttpServerUtility.cs: Execute (s, t, b) is internal for < 1.2
1646         * HttpUtility.cs: copied UrlPathEncode from HttpServerUtility.
1647         * HttpWorkerRequest.cs: added [ComVisible] and made the ctor public.
1648
1649 2003-12-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1650
1651         * HttpContext.cs: implemented IsCustomErrorEnabled and
1652         IsDebuggingEnabled. Added internal ErrorPage property.
1653
1654         * HttpRuntime.cs: on error, check if we have a custom error page enabled
1655         to handle it and redirect.
1656
1657         * HttpResponse.cs: added RedirectCustomError (), which actually does
1658         the redirection to the error page.
1659         
1660 2003-12-16  Jackson Harper <jackson@ximian.com>
1661
1662         * TraceContext.cs: Render all the data, and the stylesheet.
1663         
1664 2003-12-16  Jackson Harper <jackson@ximian.com>
1665
1666         * TraceContext.cs: Add incomplete render method.
1667         
1668 2003-12-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1669
1670         * CapabilitiesLoader.cs: loads browser detection and capabilities data
1671         from browscap.ini file by Gary J. Keith.
1672
1673         * HttpBrowserCapabilities.cs: removed almost all TODOs.
1674
1675         * HttpRequest.cs: fixed Browser property.
1676
1677 2003-12-15  Jackson Harper <jackson@ximian.com>
1678
1679         * TraceContext.cs: Initial implementation of storing data.
1680         * HttpContext.cs: Create and expose a trace object.
1681         
1682 2003-12-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1683
1684         * HttpApplication.cs: ThreadAbortException is ok on Redirect.
1685         * HttpContext.cs: added TimeoutPossible property.
1686         * HttpResponse.cs: throw ThreadAbortException if End () is called within
1687         a step in which is possible to timeout.
1688
1689         Fixes bug #51703.
1690
1691 2003-12-04  Jackson Harper <jackson@ximian.com>
1692
1693         * HttpRequest.cs: Cleanup method.
1694         
1695 2003-12-04  Jackson Harper <jackson@ximian.com>
1696
1697         * HttpValueCollection.cs: Allow blank value names. Posting
1698         <blank>=SomeValue is valid. And occurs if a radio button does
1699         not have its name set.
1700         
1701 2003-12-03  Jackson Harper <jackson@ximian.com>
1702
1703         * HttpResponse.cs: Actually apply an app path modifier in
1704         ApplyAppPathModifer and add a method to set the app path modifier.
1705         * HttpRequest.cs: Add utility method for setting a request header.
1706         
1707 2003-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1708
1709         * HttpApplication.cs: handle FileNotFound and DirectoryNotFound
1710         exceptions when creating the handler to generate a better error page.
1711
1712         * HttpException.cs: display the http_code if available.  Changed all
1713         \n by \r\n to make the hidden stack trace readable.
1714         
1715         * StaticFileHandler.cs: don't send the real path in th eerror.
1716
1717 2003-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1718
1719         * HttpContext.cs: updated GetConfig and GetAppConfig to new API.
1720         
1721         * HttpResponse.cs: separate initialization of the HttpWriter, as it
1722         tries to read configuration settings while the config. system is not
1723         available (ie, before the first request).
1724         
1725         * HttpRuntime.cs: delayed queueManager and response writer
1726         initialization until the configuration system is working.
1727
1728 2003-11-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1729
1730         * HttpRuntime.cs: added request queue handling.
1731
1732         * QueueManager.cs: simple request queue.
1733         
1734         * TimeoutManager.cs: added some locks to prevent the enumerator used in
1735         CheckTimeouts to be out of synch.
1736
1737 2003-11-25  Jackson Harper <jackson@ximian.com>
1738
1739         * HttpStaticObjectsCollection.cs: Add methods for serialization
1740         and conversion to/from byte arrays.
1741         
1742 2003-11-21  Jackson Harper <jackson@ximian.com>
1743
1744         * HttpResponse.cs: When caching data set the content length in the
1745         cached repsonse so that only that amount will be written back to
1746         the client. Add method to write a range of binary data.
1747         * HttpCacheVaryByParams.cs: Add method to retrieve param names.
1748         
1749 2003-11-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1750
1751         * HttpApplication.cs:
1752         * HttpContext.cs:
1753         * HttpRuntime.cs: add timeout handling.
1754         * TimeoutManager.cs: new class that takes care of aborting threads on
1755         timeout.
1756
1757 2003-11-19  Jackson Harper <jackson@ximian.com>
1758
1759         * HttpWriter.cs: Use a constant for the buffer size so the cache
1760         can get the buffer size. Add method to get the buffer.
1761         * HttpResponse.cs: Methods for getting data to cache, and setting
1762         vars from the cache.
1763         * HttpCachePolicy.cs: Expose a pages cache expire time.
1764         
1765 2003-11-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1766
1767         * HttpResponse.cs: 
1768         * HttpWriter.cs: some fixes to allow closing a response stream without
1769         messing the rest.
1770
1771 2003-11-13  Jackson Harper  <jackson@ximian.com>
1772
1773         * HttpCachePolicy.cs: Make sure cacheability and maxage get
1774         set. Add method to set Http response header data
1775         * HttpCacheVaryByParams.cs: Add method to create a response header.
1776         * HttpCacheability.cs: Add ServerAndPrivate and ServerAndNoCache.
1777         * HttpResponse.cs: Set cache headers.
1778         
1779 2003-11-11 Ben Maurer  <bmaurer@users.sourceforge.net>
1780
1781         * HttpModuleCollection.cs (GetKey): Recursion, again!
1782
1783 2003-11-11 Ben Maurer  <bmaurer@users.sourceforge.net>
1784
1785         * HttpClientCertificate.cs (ValidUntil): recursion!
1786
1787 2003-11-08 Ben Maurer  <bmaurer@users.sourceforge.net>
1788
1789         * SiteMapNode.cs (GetDataSourceView): Implement.
1790         * SiteMapProvider.cs: Typo fixing.
1791         * XmlSiteMapProvider.cs: We shouldnt resolve here.
1792         
1793 2003-11-08 Ben Maurer  <bmaurer@users.sourceforge.net>
1794
1795         * SiteMap.cs (Init): implement a hack that doesnt need the config
1796         stuff. Should do that later.
1797         * SiteMapNodeCollection (OnValidate): Fix recursion.
1798         * SiteMapProvider.cs: We dont implement some culture stuff work
1799         around it. Fix typo.
1800         * XmlSiteMapProvider.cs: Added.
1801         
1802 2003-11-07 Ben Maurer  <bmaurer@users.sourceforge.net>
1803
1804         * ISiteMapProvider.cs:
1805         * SiteMap.cs:
1806         * SiteMapNode.cs:
1807         * SiteMapNodeCollection.cs:
1808         * SiteMapProvider.cs:
1809         * SiteMapProviderCollection.cs: V2 sitemap related stuff.
1810
1811 2003-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1812
1813         * HttpRequest.cs: don't attempt to read more bytes than specified
1814         content length.
1815
1816 2003-11-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1817
1818         * HttpRequest.cs:
1819         * HttpResponse.cs:
1820         * HttpUtility.cs:
1821         * HttpValueCollection.cs: encoding fixes/updates.
1822
1823         * HttpWriter.cs: when updating the encoding, flush the existing stream.
1824         Encoding updates.
1825
1826 2003-11-04 Ben Maurer  <bmaurer@users.sourceforge.net>
1827
1828         * HttpContext.cs (IsCustomErrorEnabled): dont throw exception, just
1829         return false (which makes sense, as the custom errors *arent* enabled;
1830         ie they dont work.
1831         * HttpResponseStream.cs: you actually can write with len = 0
1832
1833 2003-11-03 Jackson Harper <jackson@ximian.com>
1834
1835         * HttpResponse.cs (ContentEncoding): Throw
1836         ArgumentNullException. Patch by Yaron Shkop.
1837         
1838 2003-10-30  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1839
1840         * HttpMultipartContentParser.cs : Quick fix for cygwin build. 
1841           CSC complains that constant char cannot be casted as byte.
1842
1843 2003-10-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1844
1845         * HttpApplication.cs: added AssemblyLocation property.
1846
1847 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1848
1849         * HttpApplicationFactory.cs: use NoParamsInvoker.
1850         * HttpRequest.cs: support request filters.
1851         * HttpRequestStream.cs: mono-stylized and added new Set method.
1852
1853         * NoParamsInvoker.cs: proxy class to invoke user-provided methods
1854         without parameters that are invoked by EventHandlers.
1855
1856 2003-10-13  Lluis Sanchez Gual <lluis@ximian.com>
1857
1858         * HttpResponse.cs: Changed harcoded switch to en-US culture to a switch
1859           to invariant culture.
1860
1861 2003-10-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1862
1863         * HttpResponse.cs:
1864         * HttpServerUtility.cs: change the response writer in Execute. Thanks
1865         to Rich Alimi <rich@velvetsea.net> for noticing this.
1866
1867 2003-10-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1868
1869         * HttpApplicationFactory.cs: support for wiring up events without
1870         parameters.
1871
1872 2003-10-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1873
1874         * HttpUtility.cs: small memory usage reduction.
1875
1876 2003-10-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1877
1878         * HttpApplication.cs: pass the Uri, not the file path to
1879         when looking for a handler.
1880
1881 2003-09-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1882
1883         * HttpRequest.cs: small fix needed when reading big POST data.
1884
1885 2003-09-04  Lluis Sanchez Gual <lluis@ximian.com>
1886
1887         * HttpRequest.cs: Url property: use GetLocalAddress() to get the address
1888           (this will get the address from the request headers).
1889
1890 2003-09-04  Lluis Sanchez Gual <lluis@ximian.com>
1891
1892         * HttpServerUtility.cs: In Transfer(), preserve the query string if
1893           told to do so.
1894
1895 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1896
1897         * HttpApplication.cs: ensure we do all the EndRequest steps. Don't
1898         filter the output on error.
1899         
1900         * HttpResponse.cs: modified DoFilter to allow bypassing filtering.
1901
1902 2003-08-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1903
1904         * HttpApplication.cs: when the request is completed or an
1905         error happens, execute all the delegates attached to EndRequest, not
1906         only the last one. This makes xsp/test/authtest work again.
1907         
1908         * HttpMethodNotAllowedHandler.cs: fixed description for http
1909         status code.
1910
1911 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1912
1913         * HttpRequest.cs: quick way of checking that the path is within the
1914         root for the application. Thanks to Johannes for reporting.
1915         
1916         * HttpRuntime.cs: use the status code from teh exception when it'ss a
1917         HttpException.
1918
1919         * StaticFileHandler.cs: forbidden is 403.
1920
1921 2003-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1922
1923         * HttpServerUtility.cs: fixed path and query. Path by Rich Alimi
1924         <rich@velvetsea.net>.
1925
1926 2003-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1927
1928         * HttpException.cs: make the unhandled error more like the MS one.
1929         * HttpRuntime.cs: set a 500 error code on unhandled exceptions.
1930
1931 2003-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1932
1933         * HttpResponse.cs: flush headers when the body length is 0.
1934         * StaticFileHandler.cs: added If-Modified-Since handling patch slightly
1935         modified from the original by Piers Haken <piersh@friskit.com>.
1936
1937 2003-08-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1938
1939         * HttpResponse.cs: another patch from totte and me. This one prevents
1940         writing output if the client have disconnected and filters the data
1941         when there's a non-final Flush in the middle of the process.
1942
1943 2003-08-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1944
1945         * HttpApplication.cs: fixed typos. Closes bug #44197.
1946
1947 2003-08-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1948
1949         * HttpApplication.cs:
1950         * HttpApplicationFactory.cs: fix duplicate application OnStart events.
1951
1952         Patch by Patrik Torstensson.
1953
1954 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1955
1956         * HttpApplicationFactory.cs: use the correct Delegate.CreateDelegate
1957         overload. The previous one only admits static methods.
1958
1959 2003-08-01  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1960
1961         * ProcessModelInfo.cs: Fixed signature
1962
1963 2003-07-30  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1964
1965         * WebCategoryAttribute.cs: Implemented localization
1966         * WebSysDescriptionAttribute.cs: Implemented localization
1967
1968 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1969
1970         * HttpRuntime.cs: also clear the headers that may have been set upon
1971         error processing the request.
1972
1973 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1974
1975         * HttpResponseStreamProxy.cs: reformatted. Fixed infinite recursion in
1976         Write method.
1977
1978         * HttpWriter.cs: flush the filter after writing.
1979
1980 2003-07-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1981
1982         * HttpWriter.cs: avoid duplicating the MemoryStream byte buffer.
1983
1984 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1985
1986         * HttpContext.cs: Session doesn't have a setter.
1987
1988         * HttpResponse.cs: Request is private.
1989
1990 2003-07-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1991
1992         * HttpRequest.cs: fixed Headers property. It was getting known headers
1993         values instead of known headers names.
1994
1995 2003-07-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1996
1997         * HttpApplication.cs: prevent nullref if an error happens before context
1998         is set.
1999         * HttpException.cs: small fix in the stack trace sent.
2000         * HttpUtility.cs: the lock is not needed.
2001
2002 2003-06-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2003
2004         * HttpRequest.cs: added REMOTE_PORT.
2005         * HttpValueCollection.cs: fixed bug #45490.
2006
2007 2003-05-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2008
2009         * HttpApplication.cs:
2010         * HttpApplicationFactory.cs: fire application start and session
2011         start/end events.
2012
2013 2003-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2014
2015         * HttpException.cs: encode as HTML the inner exception that
2016         is appended as a comment at the end of error pages.
2017
2018 2003-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2019
2020         * HttpWriter.cs: don't do anything in Flush. Fixes #42249.
2021
2022 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2023
2024         * HtmlizedException.cs: added more virtual methods.
2025
2026         * HttpException.cs:  some work on the output when there's a source
2027         file present.
2028
2029 2003-04-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2030
2031         * HtmlizedException.cs: simplified to cope with the new interface.
2032
2033         * HttpApplicationFactory.cs: use the application file parser to get the 
2034         application Type.
2035         
2036         * HttpException.cs: small changes. Needs some more work on
2037         ParseExceptions.
2038         
2039 2003-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2040
2041         * HttpRequest.cs: fixed Url property.
2042
2043 2003-03-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2044
2045         * HtmlizedException.cs:
2046         * HttpException.cs: display the correct line number in error messages.
2047
2048 2003-03-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2049
2050         * HttpCachePolicy.cs: implemented all TODOs.
2051         * HttpRequestStream.cs: make it internal.
2052
2053 2003-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2054
2055         * HttpContext.cs: implemented RewritePath in other way.
2056         * HttpRequest.cs: removed SetPhysicalPath and added SetForm.
2057         * HttpServerUtility.cs: implemented Transfer (string, bool).
2058
2059 2003-03-16  Daniel Lopez Ridruejo <daniel @ rawbyte.com>
2060         * HttpContext.cs : Implemented RewritePath
2061         * HttpRequest.cs : Added internal function SetPhysicalPath
2062
2063 2003-03-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2064
2065         * HttpServerUtility.cs: implemented Transfer ().
2066
2067 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2068
2069         * HttpRuntime.cs: Cache no longer have a Dispose method.
2070
2071         * HttpServerUtility.cs: removed MonoTODO.
2072
2073 2003-03-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2074
2075         * HttpHelper.cs: store the values in an ArrayList to get them in correct
2076         order.
2077
2078 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2079
2080         * HttpApplicationFactory.cs: Global.asax takes precedence over
2081         global.asax if it exists.
2082
2083         * HttpRequest.cs: use allowCrossAppMapping in MapPath.
2084
2085 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2086
2087         * HttpApplication.cs: CreateHttpHandler is now internal.
2088
2089         * HttpRequest.cs: allow setting QueryStringRaw, which
2090         invalidates the data obtained from the previous value. Added internal
2091         SetFilePath method.
2092
2093         * HttpServerUtility.cs: implemented Execute and GetLastError.
2094
2095 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2096
2097         * HttpServerUtility.cs: style.
2098
2099 2003-02-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2100
2101         * HttpApplication.cs: only execute the EndRequest step on error
2102         condition or request marked as completed. This prevent page events from
2103         being called when, for example, the url authorization module forbids
2104         the request.
2105
2106 2003-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2107
2108         * HttpRequest.cs: implemented the indexer.
2109
2110 2003-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2111
2112         * HtmlizedException.cs: base class for exceptions that makes it easy to
2113         generate error pages.
2114
2115         * HttpException.cs: improved error displaying.
2116
2117         * HttpRuntime.cs: removed debugging output.
2118
2119 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2120
2121         * HttpApplication.cs: display the error instead of hanging when we get
2122         any error before the last step of the request.
2123
2124 2003-02-04  Tim Haynes <thaynes@openlinksw.com>
2125
2126         * HttpApplicationFactory.cs: fixed HttpRuntime.Close() to decrement
2127         instance counter.
2128
2129 2003-01-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2130
2131         * HttpRequest.cs: added BaseVirtualDir property and use it in MapPath.
2132
2133 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2134
2135         * HttpRequest.cs: implemented CurrentExecutionFilePath.
2136
2137 2003-01-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2138
2139         * HttpApplication.cs: keep _lasterror if no context. Attach
2140         application events *after* modules initialization (if not, User is not
2141         set when the user handler is called).
2142         
2143         * HttpApplicationFactory.cs: made all methods related to
2144         AttachEvents static. I will fix OnStart/OnEnd for application and
2145         session later.
2146         
2147         * HttpRequest.cs: don't initialize cookies twice.
2148
2149 2003-01-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2150
2151         * HttpResponse.cs:
2152         (ApplyAppPathModifiers): return the root directory for "".
2153
2154 2003-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2155
2156         * HttpUtility.cs: fixed HtmlDecode to avoid ArgumentOutOfRangeException.
2157
2158 2003-01-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2159
2160         * HttpApplication.cs: added new state to handle default authentication.
2161
2162 2003-01-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2163
2164         * HttpContext.cs: removed hack to get the User.
2165
2166 2003-01-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2167
2168         * HttpUtility.cs: fixed bug #36038. Thanks to juancri@tagnet.org for
2169         reporting the bug and how to fix it.
2170
2171 2002-12-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2172
2173         * HttpCookie.cs: send 'expires' in the header.
2174
2175 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2176
2177         * HttpValueCollection.cs: patch from Botjan Vizin 
2178         <bostjan.vizin@siol.net> that implements ToString (bool).
2179
2180 2002-12-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2181
2182         * HttpApplicationFactory.cs: add the context as parameter when building
2183         the application Type.
2184         
2185         * HttpCookie.cs: new internal constructor.
2186         * HttpCookieCollection.cs: new internal method to make a cookie expire.
2187
2188         * HttpRequest.cs: MapPath fixes.
2189         * HttpResponse.cs: implemented ApplyAppPathModifier.
2190         * HttpRuntime.cs: fixed typo in AppDomainAppVirtualPath.
2191
2192 2002-12-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2193
2194         * HttpContext.cs: hack to create a default user when there's no one.
2195         Implemented GetConfig (string).
2196
2197         * HttpRequest.cs: fixes to MapPath (string).
2198
2199 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2200
2201         * HttpRuntime.cs: avoid nulls and exception when getting resource
2202         format strings.
2203
2204         * StaticFileHandler.cs: added file name to error message.
2205
2206 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2207
2208         * HttpResponse.cs: avoid sending chunked content for HTTP/1.1.
2209
2210 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2211
2212         * HttpApplicationFactory.cs: get the events from the application class,
2213         fire Application/Session Start/End and add the others as application
2214         events.
2215
2216 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2217
2218         * HttpApplicationFactory.cs: compile global.asax file if it exists.
2219
2220 2002-11-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2221
2222         * HttpRequest.cs: provide a default Browser until we detect it.
2223         * HttpResponse.cs:
2224         (End): do not close the connection here.
2225         (Flush (bool)): send the headers when, for example, Redirect () is
2226         called.
2227
2228 2002-11-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2229
2230         * HttpException.cs: simple error output.
2231
2232 2002-11-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2233
2234         * HttpApplication.cs: style.
2235         * HttpException.cs: style.
2236         * HttpRuntime.cs: only flush the response if there are no errors.
2237         Otherwise, write an error output.
2238         * HttpWriter.cs: change Unicode to UTF8.
2239
2240 2002-11-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2241
2242         * HttpApplication.cs: don't begin the request using ExecuteNextAsync
2243         (it fails to work on NetServ).
2244
2245         * HttpWorkerRequest.cs: typo.
2246
2247 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2248
2249         * HttpValueCollection.cs: the value may contain trailing '=' as it is
2250         UrlEncoded. Don't split name=value based on '='.
2251
2252 2002-11-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2253
2254         * HttpCookie.cs: made GetCookieHeader internal.
2255
2256         * HttpRequest.cs: get cookies from request.
2257
2258         * HttpResponse.cs: send cookies. Implemented
2259         AddFileDependencies (). Added check for _Writer == null in Flush
2260         (Patrik ;-). Clear the content if HEAD or SupressContent == true.
2261         Removed redirect hack used in old server.
2262
2263 2002-10-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2264
2265         * HttpRequest.cs: fixed GetRawContent (). Now it only tries to read at
2266         most ContentLength bytes.
2267
2268         * HttpResponse.cs: now it sends the headers. Added
2269         X-Powered-By header :-).
2270
2271         * HttpRuntime.cs: fixed typo.
2272
2273         * HttpValueCollection.cs: cosmetic changes.
2274
2275 2002-10-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2276
2277         * HttpApplication.cs: reenabled a few lines of code
2278         (ThreadPool already fixed). 
2279         
2280         * HttpRequest.cs:
2281         * HttpResponse.cs:
2282         * HttpUtility.cs:
2283         * HttpValueCollection.cs:
2284         * HttpWriter.cs: Use WebEncoding.Encoding.
2285
2286 2002-10-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2287
2288         * HttpWriter.cs: changed encoding of the writer from Unicode to UTF8.
2289         This fixes sending bytes and allows mixing byte with chars.
2290
2291 2002-10-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2292
2293         * HttpResponse.cs: implemented WriteFile methods.
2294         * MimeTypes.cs: removed duplicated entries.
2295
2296 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2297
2298         * HttpResponse.cs: don't throw exception in a couple of
2299         methods not yet implemented.
2300
2301 2002-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2302
2303         * HttpApplication.cs: fixed type and handle factories when creating
2304         IHttpHandler for a request.
2305
2306 2002-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2307
2308         * HttpApplication.cs: use handlers from configuration.
2309         * HttpContext.cs: get handlers from ConfigurationSettings.
2310
2311 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2312
2313         * HttpMethodNotAllowedHandler.cs:
2314         * HttpRuntime.cs:
2315         * StaticFileHandler.cs: Modified file.
2316
2317         * HttpUtility.cs: implemented all missing methods.
2318
2319
2320 2002-09-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2321
2322         * System.Web/HttpApplication.cs: use the static file handler.
2323         * System.Web/HttpForbiddenHandler.cs: handler to forbid access.
2324         * System.Web/HttpMethodNotAllowedHandler.cs: handler for method not
2325         allowed.
2326         
2327         * System.Web/HttpUtility.cs: finished all UrlDecode methods.
2328         * System.Web/MimeTypes.cs: map from file extension to MIME type.
2329         * System.Web/StaticFileHandler.cs: serves static files
2330
2331 2002-09-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2332
2333         * System.Web/HttpApplication.cs:
2334         * System.Web/HttpApplicationFactory.cs:
2335         * System.Web/HttpRequest.cs:
2336         * System.Web/HttpRuntime.cs: we are now able to compile pages and use
2337         HttpApplication, HttpRuntime and SimpleWorkerRequest.
2338
2339 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2340
2341         * HttpApplication.cs: added some missing methods.
2342         * HttpApplicationFactory.cs: get event handlers for the application.
2343         * HttpAsyncResult.cs: little fixes.
2344         * HttpRequest.cs: make Encoding work even with no worker request.
2345
2346 2002-08-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2347
2348         * HttpWorkerRequest.cs: mcs doesn't go crazy. It's just me, that forgot
2349         to add HttpMapPath to the list file...
2350
2351 2002-08-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2352
2353         * HttpWorkerRequest.cs: fixes compilation with mcs. I will add a bug
2354         report when i get a test case.
2355
2356 2002-08-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2357
2358         * HttpApplicationFactory.cs:
2359         * HttpCachePolicy.cs:
2360         * HttpResponseHeader.cs:
2361         * HttpResponseStream.cs:
2362         * HttpResponseStreamProxy.cs:
2363         * HttpValueCollection.cs: misc. fixes based on class status page.
2364
2365         * IHttpMapPath.cs: New file.
2366
2367         * HttpRequest.cs: implemented ContentEncoding.
2368         * HttpWorkerRequest.cs: mono-stylized and implemented
2369         SendResponseFromMemory.
2370
2371 2002-08-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2372
2373         * HttpContext.cs: reformatted.
2374         * HttpStaticObjectsCollection.cs: implemented GetEnumertor, CopyTo and
2375         the indexer.
2376
2377 2002-08-05  Patrik Torstensson <ptorsten@hotmail.com>
2378
2379         * HttpApplication.cs: Implemented a state machine to allow handling of
2380         HttpModules and HttpHandlers. Implementation of async handlers. 
2381                                                                  
2382         * HttpApplicationFactory.cs: Factory for creating HttpApplication
2383         instances, including caching.
2384         
2385         * HttpRuntime.cs: Usage of the new HttpApplicationFactory to get a
2386         application instance to execute requests in and implementation of 
2387         request execution (still no request queue). 
2388                                                          
2389         * HttpAsyncResult.cs: New file to handle async module results.                                          
2390                                                          
2391         * HttpRequest.cs: Change signature of Dispose
2392         * HttpResponse.cs: new internal method allowing filtering to happen
2393         during the request flow in the state machine.
2394
2395 2002-07-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2396
2397         * HttpApplication.cs: events were not being initialized.
2398
2399 2002-07-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2400
2401         * ProcessModelInfo.cs: fixed compilation.
2402
2403 2002-07-25  Tim Coleman <tim@timcoleman.com>
2404         * ProcessModelInfo.cs:
2405                 New class added
2406         * HttpParseException.cs:
2407         * HttpCompileException.cs:
2408         * HttpUnhandledException.cs:
2409                 Internal constructors added to these
2410
2411 2002-07-24  Tim Coleman <tim@timcoleman.com>
2412         * ProcessInfo.cs: 
2413                 Fix constructor, reference to shutdownreason.
2414
2415 2002-07-24  Tim Coleman <tim@timcoleman.com>
2416         * HttpCachePolicy.cs:
2417                 Added stubbs to this class.
2418         * HttpCacheability.cs:
2419         * HttpCacheRevalidation.cs:
2420         * HttpValidationStatus.cs:
2421         * ProcessShutdownReason.cs:
2422         * ProcessStatus.cs:
2423         * TraceMode.cs:
2424                 Reorder the enumerations (and in some cases make
2425                 one-based) in order to agree with the .NET 
2426                 implementation, based on the class status page.
2427         * ProcessInfo.cs:
2428                 Implementation of this class.
2429
2430 2002-07-23  Tim Coleman <tim@timcoleman.com>
2431         * HttpCompileException.cs:
2432         * HttpParseException.cs:
2433         * HttpUnhandledException.cs:
2434                 New stubbs created.
2435         * HttpApplication.cs:
2436         * HttpBrowserCapabilities.cs:
2437                 Added missing methods stubbs and attributes based
2438                 on the class status page.  Also reformatted some
2439                 source for consistency.
2440
2441 2002-07-23  Tim Coleman <tim@timcoleman.com>
2442         * HttpUtility.cs: Moved entities hashtable into main
2443                 class as a static object, so we don't instantiate
2444                 a new one every time.  Also put the hashtable
2445                 building into a lock block.
2446
2447 2002-07-22  Tim Coleman <tim@timcoleman.com>
2448         * HttpUtility.cs: Cleanup of the code, implementation
2449                 of HtmlDecode/HtmlEncode functions
2450
2451 2002-07-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2452
2453         * HttpResponse.cs: quick&dirty hack to make redirection work. Should
2454         be out of there once we have SimpleWorkerRequest.
2455
2456 2002-07-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2457
2458         * HttpUtility.cs: little typo, big headache.
2459
2460 2002-07-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2461
2462         * HttpRuntime.cs: don't throw NotImplemented in a couple of methods.
2463
2464 2002-06-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2465
2466         * System.Web/HttpResponse.cs: 
2467
2468         Fixes based on class status page:
2469         
2470                 - Add attributes (DefaultEvent, ParseChildren).
2471                 - Fix declarations.
2472                 - Explicitly implement some interfaces (IPostBackDataHandler
2473                 and IPostBackEventHandler).
2474                 - Implemented some missing methods.
2475
2476 2002-06-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2477
2478         * HttpContext.cs:
2479         (Session): return null instead of throwing an exception.
2480
2481         * HttpRequest.cs:
2482         (HttpMethod): return RequestType if not set.
2483         (GetRawContent): return QueryString if we don't have a
2484         HttpWorkerRequest.
2485
2486         * HttpUtility.cs: fixed Decode and Encode.
2487
2488 2002-06-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2489
2490         * HttpApplication.cs:
2491         * HttpContext.cs: added System.Web.SessionState namespace.
2492
2493         * HttpSessionState.cs: removed. It is under
2494         System.Web.SessionState.
2495
2496 2002-06-10  Duncan Mak  <duncan@ximian.com>
2497
2498         * HttpBrowserCapabilities.cs (BackgroundSounds): Fixed typo.
2499
2500 2002-06-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2501
2502         * HttpRequest.cs: implemented Browser property.
2503
2504 2002-06-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2505
2506         * HttpBrowserCapabilities.cs: stubbed out.
2507
2508 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
2509
2510         * HttpRuntime.cs: Reformat file.
2511
2512 2002-05-07  Duncan Mak  <duncan@ximian.com>
2513
2514         * HttpBrowserCapabilities.cs: Added, replacing
2515         HttpBrowserCapabilites because of typo.
2516
2517         * HttpBrowserCapabilites.cs: Removed, replaced by above.
2518
2519         * HttpRequest.cs (Browser): Fixed typo.
2520
2521 2002-04-12  Patrik Torstensson <patrik.torstensson@labs2.com>
2522
2523         * HttpApplication.cs: Minor updates
2524         * HttpApplicationState.cs: Ready.
2525         * HttpClientCertificate.cs: Signature updates
2526         * HttpValueCollection.cs: ready
2527         * HttpStaticObjectsCollection.cs: ready
2528         * HttpResponseHeader.cs: made internal only
2529         * HttpResponse.cs: Signature updates
2530         * HttpPostedFile.cs: ready
2531         * HttpCacheVaryByHeaders.cs: ready (except communication to policy)
2532         * HttpCacheVaryByParams.cs: ready (except communication to policy)
2533         
2534         System.Web is now over 60% ready.. 
2535
2536 2002-04-11  Patrik Torstensson <patrik.torstensson@labs2.com>
2537
2538         * HttpException.cs: 95% ready, only windows dependent code left
2539         * HttpFileCollection.cs: Finished.
2540         * HttpRequest.cs: Minor fixes and fixed signature problems
2541         * HttpResponse.cs: Implementation of missing methods and signature problems
2542         * HttpResponseHeader.cs: Fixed signature problems
2543         * HttpRuntime.cs: Fixed signature problems
2544         * HttpServerUtility.cs: Added support for HttpApplication
2545         * HttpSessionState.cs: Fixed signature issues
2546         * HttpUtility.cs: fixed signature issues
2547         * HttpValueCollection.cs: Support for cookie parsing and fixed signature issues
2548         * HttpWorkerRequest.cs: Fixed small signature issue
2549         * HttpWriter.cs: Fixed signature issue
2550         * HttpApplication.cs: Basic implementation
2551         * HttpApplicationState.cs: Small fixes to support major change comming up
2552         * HttpBrowserCapabilities.cs: Added Type method
2553         * HttpClientCertificate.cs: Almost ready, needs to parse certificate.
2554         * HttpContext.cs: Fixed signature issues and added last methods.
2555         * HttpCookie.cs: Full implementation
2556         * HttpCookieCollection.cs: Full implementation
2557         * TraceContext.cs: Methods implemented.
2558         * HttpPostedFile.cs: Placeholder
2559         * HttpStaticObjectsCollection.cs: Placeholder
2560         * HttpModuleCollection.cs: Ready, will be used during the major revamp.
2561         
2562         * Fixed a number of other small signature problems also (class status page)
2563         
2564         
2565 2002-04-10  Patrik Torstensson <patrik.torstensson@labs2.com>
2566
2567     * HttpWorkerRequest.EndOfSendNotification.cs Removed (included in WorkerRequest)
2568     * Checkin of all new files (noted in last changenote)
2569
2570 2002-04-10  Patrik Torstensson <patrik.torstensson@labs2.com>
2571
2572     * HttpContext.cs: First implementation (basic support, few methods left to impl)
2573     * HttpException.cs: Partial implementation (basic support)
2574     * HttpHelper.cs: Header parse helper, used by runtime (non public)
2575     * HttpRequest.cs: Implementation (all methods there, not all fully impl)
2576     * HttpRequestStream.cs: Full implementation
2577     * HttpResponse.cs: Partial implementation(almost all methods)
2578     * HttpResponseHeader.cs: Header helper
2579     * HttpResponseStream.cs: Full implementation - Response stream support
2580     * HttpResponseStreamProxy.cs: Implementation - filter support
2581     * HttpRuntime.cs: Rewrite to support one IHttpModule (use for testing the runtime)
2582         * HttpServerUtility.cs: Implemented usage of HttpContext for methods
2583                                 and moved encoding functions to HttpUtility.
2584
2585     * HttpUtility.cs: Added encoding/decoding functions from HttpServerUtility and
2586                       added the Attribute encoding functions.
2587
2588     * HttpValueCollection.cs: Implementation.
2589     * HttpWorkerRequest.cs: Rewrite and implementation of all methods (ready)
2590     * HttpWriter.cs: Implementation (with filter support)    
2591
2592     * HttpFileCollection: Added dummy class (placeholder)
2593     * HttpApplication.cs: Added dummy class (placeholder)
2594     * HttpApplicationState.cs: Added dummy class (placeholder)
2595     * HttpBrowserCapabilities.cs: Added dummy class (placeholder)
2596     * HtttpCachePolicy.cs: Added dummy class (placeholder)
2597     * HttpClientCertificate.cs: Added dummy class (placeholder)
2598     * HttpSessionState.cs: Added dummy class (placeholder)
2599     * TraceContext.cs: Added dummy class (placeholder)
2600     
2601
2602 2002/04/10  Nick Drochak <ndrochak@gol.com>
2603
2604         * HttpServerUtility.cs: Fix build breaker.
2605
2606 2002-03-28  Wictor Wiln  <wictor@iBizkit.se>
2607
2608         * HttpServerUtils.cs : Added some more functionality
2609         
2610 2002-03-28  Martin Baulig  <martin@gnome.org>
2611
2612         * HttpServerUtils.cs (UrlDecode): You cannot implicitly cast a
2613         char to a string, use ToString() instead.
2614
2615 2002-03-16  Gaurav Vaish  <gavish@iitk.ac.in>
2616
2617         * WebCategoryAttribute.cs
2618                                : Added private attribute.
2619
2620 2002-03-16  Gaurav Vaish  <gavish@iitk.ac.in>
2621
2622         * HttpRuntime.cs       : Stubbed methods for
2623                   FormatStringResource(...) in agreement with the various
2624                   overloads available at String.Format(...)
2625
2626 2002-01-08  Gaurav Vaish  <gavish@iitk.ac.in>
2627
2628         * TODOAttribute.cs     : Added, as an internal class to the assembly
2629
2630 2002-01-03  Nick Drochak  <ndrochak@gol.com>
2631
2632         * HttpRuntime.cs: remove uneeded exception variable from catch and
2633         initialize remaining instance members to avoid compile warnings
2634
2635 2002-01-02  Nick Drochak  <ndrochak@gol.com>
2636
2637         * HttpRuntime.cs: fix spelling error/variable name change.
2638
2639 2001-12-18  Gaurav Vaish <gvaish@iitk.ac.in>
2640
2641         * HttpRuntime.cs       : Initial implementation
2642
2643 2001-08-29  Bob Smith  <bob@thestuff.net>
2644
2645         * HttpWorkerRequest.cs: Partial Implementation.
2646
2647 2001-08-16  Bob Smith  <bob@thestuff.net>
2648
2649          * HttpCookieCollection.cs, HttpCookie.cs: Bug fixes.
2650
2651 2001-08-09  Bob Smith  <bob@thestuff.net>
2652
2653          * BeginEventHandler.cs: Implemented.
2654          * EndEventHandler.cs: Implemented.
2655          * HttpCacheability.cs: Implemented.
2656          * HttpCacheRevalidation.cs: Implemented.
2657          * HttpCacheValidateHandler.cs: Implemented.
2658          * HttpCookieCollection.cs: Implemented.
2659          * HttpCookie.cs: Implemented.
2660          * HttpValidationStatus.cs: Implemented.
2661          * HttpWorkerRequest.EndOfSendNotification.cs: Implemented.
2662          * IHttpAsyncHandler.cs: Implemented.
2663          * IHttpHandler.cs: Implemented.
2664          * IHttpHandlerFactory.cs: Implemented.
2665          * IHttpModule.cs: Implemented.
2666          * ProcessShutdownReason.cs: Implemented.
2667          * ProcessStatus.cs: Implemented.
2668          * TraceMode.cs: Implemented.