2009-02-18 Gonzalo Paniagua Javier <gonzalo@novell.com>
[mono.git] / mcs / class / System.Web / System.Web / ChangeLog
1 2009-02-18 Gonzalo Paniagua Javier <gonzalo@novell.com>
2
3         * HttpApplicationFactory.cs: check of global.asax was precompiled.
4
5
6 2009-01-29 Gonzalo Paniagua Javier <gonzalo@novell.com>
7
8         * HttpApplicationFactory.cs: fix check that avoids lock. Keep one
9         HttpApplication instance ready to be returned in an instance variable
10         to avoid a few locks.
11
12 2009-01-29  Marek Habersack  <mhabersack@novell.com>
13
14         * HttpApplicationFactory.cs: optimize lock usage.
15
16 2009-01-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
17
18         * HttpResponse.cs: make sure config is not null here.
19         * HttpApplication.cs: add a timer (-d:PIPELINE_TIMER) for the pipeline.
20         Handle timeouts for OutputPage() too.
21
22 2009-01-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
23
24         * HttpApplicationFactory.cs: set/reset the context for the application
25         when creating/disposing. Dispose() out of the lock.
26
27 2009-01-24  Marek Habersack  <mhabersack@novell.com>
28
29         * XmlSiteMapProvider.cs: if a nested sitemap is used (via the
30         siteMapFile node attribute) watch the named file for
31         changes. Fixes bug #465693
32
33 2009-01-19  Christian Hergert  <christian.hergert@gmail.com>
34
35         * QueueManager.cs: Implement requests queued performance counter.
36         * HttpRuntime.cs: Implement requests total counter.
37         * HttpApplication.cs: Implement requests total counter.
38
39 2009-01-13  Dean Brettle  <dean@brettle.com>
40
41         * HttpApplicationFactory.cs: if there are any *.browser files in
42         App_Data/Mono_Machine_Browsers/, use those instead of the default
43         machine browser files.  This allows app developers to workaround
44         limitations with Mono's default browser files without causing
45         incompatibilities with MS's implementation.
46
47 2009-01-09  Marek Habersack  <mhabersack@novell.com>
48
49         * HttpContext.cs: RewritePath now treats relative and absolute
50         file paths with more care. If a path is of the ~/file.aspx form,
51         then the ~/ part is removed and the rest is combined with the base
52         virtual path. If the file path is of the ~ or /file.aspx forms,
53         then it is combined verbatim with the base virtual path. Fixes bug
54         #463964
55         Make sure the path returned from HttpRequest.BaseVirtualPath
56         contains the trailing slash before combining. Fixes bug #463964
57
58 2008-12-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
59
60         * ServerVariablesCollection.cs: use IndexOf (char).
61
62 2008-12-24  Marek Habersack  <mhabersack@novell.com>
63
64         * HttpApplicationFactory.cs: watch for changes to web.config also
65         in the subdirectories.
66
67 2008-12-20  Marek Habersack  <mhabersack@novell.com>
68
69         * HttpResponse.cs: the code in TransmitFile (VirtualFile, bool)
70         was an abomination - dear children, don't do this at home (never,
71         ever, allocate a buffer to load entire file). I will wear a brown
72         paper bag every 2nd Sunday in the next 6 months for writing the
73         old version of this code.
74         New code optimizes the write when DefaultVirtualFile is used (as
75         it refers to a physical file on disk) and reads/writes other
76         virtual files in chunks.
77
78 2008-12-16  Marek Habersack  <mhabersack@novell.com>
79
80         * StaticFileHandler.cs: use HttpRuntime.RunningOnWindows instead
81         of checking the platform directly.
82
83 2008-12-09  Marek Habersack  <mhabersack@novell.com>
84
85         * HttpServerUtility.cs: when Execute finishes, clear
86         Request.QueryStringRaw. Backport of r121010 by Vladimir Krasnov.
87
88 2008-12-03  Gert Driesen  <drieseng@users.sourceforge.net>
89
90         * NoParamsInvoker.cs:
91         * HttpApplicationFactory.cs: Fixed support for static eventhandlers.
92
93 2008-11-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
94
95         * HttpContext.cs: MS does not throw. They just return null.
96
97 2008-11-24  Marek Habersack  <mhabersack@novell.com>
98
99         * HttpRuntime.cs: take PlatformID.MacOSX into account when
100         determining whether we're running on Windows or not. Possible fix
101         for #447874
102
103 2008-11-21  Marek Habersack  <mhabersack@novell.com>
104
105         * HttpParseException.cs, HtmlizedException.cs: added
106         deserialization constructor.
107
108 2008-10-31  Marek Habersack  <mhabersack@novell.com>
109
110         * HttpContext.cs: RewritePath correctly rewrites paths for cases
111         when application is running under a virtual directory different to
112         '/'. Fixes bug #371581
113         RewritePath checks the passed virtual path for validity.
114
115         * HttpRequest.cs: MapPath now uses
116         VirtualPathUtility.IsValidVirtualPath.
117
118         * VirtualPathUtility.cs: made Canonize () internal.
119         Added a new method - IsValidVirtualPath () which checks whether a
120         passed path contains only characters allowed for virtual paths.
121
122 2008-10-22  Marek Habersack  <mhabersack@novell.com>
123
124         * HttpApplicationFactory.cs: use only the first matching method in
125         GetApplicationTypeEvents, since it will be the one coming from the
126         topmost type. Partial fix for bug #437691
127
128 2008-10-21  Marek Habersack  <mhabersack@novell.com>
129
130         * HttpApplication.cs: if context.Session is null in get_Session,
131         throw an exception. Fixes bug #437289
132
133         * CapabilitiesLoader.cs: seal BrowserData.
134         Seal CapabilitiesLoader.
135         Do not lock on typeof (CapabilitiesLoader) in GetCapabilities ().
136
137 2008-10-16  Marek Habersack  <mhabersack@novell.com>
138
139         * HttpApplicationFactory.cs: when looking up application type
140         event handlers (the Application_* methods), look deep in the
141         parent chain - we must support private handler methods in base
142         types as well.
143
144 2008-10-15  Marek Habersack  <mhabersack@novell.com>
145
146         * HttpResponse.cs: CacheabilityUpdatedEvent is no longer
147         used. cached_response is allocated only when the IsCached property
148         is assigned the 'true' value. 
149
150         * HttpCachePolicy.cs: CacheabilityUpdatedEvent is no longer used,
151         removed all the traces of it. SetCacheability should not switch
152         output caching on.
153
154 2008-10-12  Gert Driesen  <drieseng@users.sourceforge.net>
155
156         * HttpResponse.cs: Simplify code for outputting ASP.NET version, as
157         version header cannot be configured. MS corrected this documenation
158         error in .NET 2.0 SDK.
159
160 2008-10-03 Gonzalo Paniagua Javier <gonzalo@novell.com>
161
162         * HttpApplication.cs: make sure we release the resources used by the
163         request and/or the response at the end of the request.
164         Fixes bug #430040.
165
166 2008-10-01  Marek Habersack  <mhabersack@novell.com>
167
168         * BrowserCapabilities.cs: IsBrowser needs to compare browser names
169         case insensitively.
170
171 2008-09-29  Marek Habersack  <mhabersack@novell.com>
172
173         * HttpApplication.cs: do not assume the passed IAsyncResult is a
174         is a valid object in async_handler_complete_cb. Fixes bug #430488
175
176 2008-09-28  Sebastien Pouliot  <sebastien@ximian.com>
177
178         * HttpRequest.cs: Make sure the result of the multiplications are
179         longs (not integers casted into longs since they could overflow).
180         [Found using Gendarme's ReviewCastOnIntegerMultiplicationRule]
181
182 2008-09-23  Marek Habersack  <mhabersack@novell.com>
183
184         * HttpWorkerRequest.cs: implemented a SendCalculatedContentLength
185         overload. This method apparently does nothing in MS.NET.
186
187 2008-09-16  Juraj Skripsky  <js@hotfeet.ch>
188
189         * HttpServerUtility.cs (UrlDecode, UrlEncode): Respect request/response
190         encoding. Fixes bug #426539.
191
192 2008-08-29  Marek Habersack  <mhabersack@novell.com>
193
194         * HttpApplication.cs: do not cache handlers which aren't
195         reusable.
196
197 2008-08-20  Marek Habersack  <mhabersack@novell.com>
198
199         * HttpResponseHeader.cs: encode header values if
200         httpRuntime.enableHeaderChecking is true (default). Fixes bug
201         #418620
202
203 2008-08-13  Marek Habersack  <mhabersack@novell.com>
204
205         * HttpException.cs: do not use StringBuilder.AppendFormat when
206         there is no need.
207
208 2008-08-08  Marek Habersack  <mhabersack@novell.com>
209
210         * XmlSiteMapProvider.cs: a better bugfix for bug #412495.
211         Do not call RootNode within BuildSiteMap, as it induces
212         recursion. Fixes bug #415685.
213
214 2008-07-29  Marek Habersack  <mhabersack@novell.com>
215
216         * HttpRequest.cs: if the FilePath contains embedded cookie-less
217         session identifier, remove it before computing the base virtual
218         directory. Fixes bug #397418
219
220 2008-07-28  Marek Habersack  <mhabersack@novell.com>
221
222         * XmlSiteMapProvider.cs: set the base ResourceKey to the name of
223         our associated site map file, so that localization works
224         correctly. Fixes bug #412493
225         Do not add the root node retrieved from BuildSiteMapRecursive in
226         BuildMap, if the node is already the current root node. Fixes bug
227         #412495
228
229 2008-07-26  Gert Driesen  <drieseng@users.sourceforge.net>
230
231         * HttpCachePolicy.cs: Only add Expires header if expire date is
232         actually set. Removed extra tabs and regions. Code formatting.
233
234 2008-07-23  Marek Habersack  <mhabersack@novell.com>
235
236         * HttpApplication.cs: do not register handlers for
237         BeginRequest/EndRequest when called from within the
238         Application_Start handler. Fixes bug #411213
239
240         * HttpApplicationFactory.cs: let the application know we're
241         running the Application_Start handler so that it can suppress
242         registering some events from inside that handler (see bug
243         #381971). Fixes bug #411213
244
245 2008-06-30  Marek Habersack  <mhabersack@novell.com>
246
247         * HttpRuntime.cs, HttpApplication.cs: hush the warnings
248
249         * HttpContext.cs: GetGlobalObjectFromFactory caches the
250         ResourceManager objects now. Patch from Zoltan Varga
251         <vargaz@gmail.com>, thanks!
252         The GetGlobalObjectFromFactory caches are thread local to avoid
253         locking.
254         GetResourceObject ResourceManager cache is now a thread local
255         Dictionary to avoid cloning.
256         Hush the warnings.
257
258 2008-06-27  Robert Jordan  <robertj@gmx.net>
259
260         * HttpCachePolicy.cs: map default HttpCacheability to
261         "Cache-control: private" for MS.NET compatibility.
262         Fixes bug #404083. Contributed by
263         Hubert FONGARNAND <informatique.internet@fiducial.fr>.
264
265 2008-06-21  Robert Jordan  <robertj@gmx.net>
266
267         * HttpRuntime.cs (.cctor): Workaround for bug #402263.
268
269 2008-06-19  Marek Habersack  <mhabersack@novell.com>
270
271         * MimeTypes.cs: added a mime type entry for .xpi files.
272
273 2008-06-18  Juraj Skripsky  <js@hotfeet.ch>
274
275         * HttpResponse.cs (AddHeadersNoCache): Add "X-AspNet-Version" header if
276         enabled.
277
278 2008-06-16  Noam Lampert  <noaml@mainsoft.com>
279
280         * HttpContext.cs: improve support for RewritePath
281
282 2008-06-10  Marek Habersack  <mhabersack@novell.com>
283
284         * HttpRuntime.cs: do not create a new thread to run the
285         application, reuse the thread from the hosting application (XSP's
286         thread comes from threadpool).
287
288 2008-06-06  Marek Habersack  <mhabersack@novell.com>
289
290         * SiteMap.cs: FindCurrentNode is no longer needed. CurrentNode
291         uses Provider.CurrentNode to find the return value.
292         AddNode doesn't throw a duplicate key exception for nodes not
293         belonging to the current provider.
294         Check whether keys exist before removing entries from the
295         dictionaries.
296
297         * XmlSiteMapProvider.cs: implemented support for child providers
298         (the AddProvider method). FindSiteMapNode* methods look for the
299         node also in the collection of child providers. Fixes bug #397040
300
301 2008-06-04  Marek Habersack  <mhabersack@novell.com>
302
303         * HttpResponse.cs: correctly modify virtual path to include the
304         session ID in cookieless session mode. Fixes bug #396628.
305
306         * HttpServerUtility.cs: remove session hash from the URL if in the
307         cookieless mode. Fixes bug #396628.
308
309         * HttpRequest.cs: make sure that BaseVirtualDir always returns
310         some value.
311
312 2008-06-02  Miguel de Icaza  <miguel@novell.com>
313         
314         * HttpRuntime.cs: Thanks to Christian Hergert for finding this
315         one.  
316
317         Do not throw NIEX on IsOnUNCShare, instead compute the value. 
318
319 2008-05-30  Marek Habersack  <mhabersack@novell.com>
320         
321         * HttpApplication.cs, HttpCachePolicy.cs, SiteMapProvider.cs,
322         TraceContext.cs: do not use synthetized event accessors (to avoid
323         locks).
324
325 2008-05-19 Noam Lampert <noaml@mainsoft.com>
326
327         * HttpServerUtility.cs: Fix bug in UrlPathEncode when URL contains '?' 
328
329 2008-05-12 Noam Lampert <noaml@mainsoft.com>
330
331         * HttpApplication.cs: Fix regressions introduced by latest commit
332
333 2008-05-07 Gonzalo Panigua Javier <gonzalo.mono@gmail.com>
334
335         * HttpApplication.cs: create a fake context while loading the
336         modules on the first request so that the modules don't mess up
337         with the actual output of that request.
338
339 2008-05-07  Marek Habersack  <mhabersack@novell.com>
340
341         * HttpRequest.cs: StripPath should handle UNC paths too. Fixes bug
342         #385870. Patch from Ivan Hamilton <ivan@chimerical.com.au>,
343         thanks!
344
345 2008-05-06  Marek Habersack  <mhabersack@novell.com>
346
347         * MimeTypes.cs: mime type keys might not exist in the dictionary,
348         in the 2.0 profile. Patch from Rolf Kvinge <rkvinge@novell.com>
349         and Jean-Baptiste Evain <jbevain@novell.com>, thanks! Fixes bug
350         #386008
351
352 2008-04-30  Marek Habersack  <mhabersack@novell.com>
353
354         * HttpApplication.cs: when the Start method is called in a new
355         thread, the thread's culture and ui culture are set to their
356         defaults, thus ignoring whatever their values were in the parent
357         thread. This is now fixed by passing an array containing the
358         culture values to the Start method, so that the new thread can be
359         properly initialized. Fixes bug #323566
360
361         * SiteMapNode.cs: the implicitResourceKey parameter to one of the
362         constructors sets the value of the ResourceKey property.
363         GetImplicitResourceString uses the provider's ResourceKey as the
364         global resource object key and the node's ResourceKey to construct
365         the resource name. Fixes bug #323994
366         ResourceKey setter throws an InvalidOperationException now, when
367         the node is read-only.
368
369 2008-04-29  Marek Habersack  <mhabersack@novell.com>
370
371         * HttpException.cs: safe guard against context being null in
372         GetHtmlErrorMessage.
373
374 2008-04-26  Marek Habersack  <mhabersack@novell.com>
375
376         * VirtualPath.cs: added a new property, PhysicalPath.
377
378 2008-04-25  Gert Driesen  <drieseng@users.sourceforge.net>
379
380         * HttpResponse.cs: Use double quotes in link to match MS.
381
382 2008-04-25  Marek Habersack  <mhabersack@novell.com>
383
384         * HttpApplication.cs: use Request.CurrentExecutionFilePath when
385         querying for the handler. Makes requests work if request path was
386         rewritten without modifying the FilePath. Fixes bug #383652
387
388         * HttpContext.cs: set Request.FilePath in RewritePath only if
389         setClientFilePath is true. Fixes bug #383652
390         Revert the change in revision 100273 - the real bug was in a
391         different overload of RewritePath, fixed with the commit for the
392         above bug #383652
393
394 2008-04-24  Marek Habersack  <mhabersack@novell.com>
395
396         * HttpApplication.cs: added a new overload of GetHandler which
397         allows the caller to ignore the handler found in the context
398         passed to the method.
399
400         * HttpServerUtility.cs: have HttpApplication.GetHandler ignore the
401         handler found in the current context when Execute'ing another
402         page. Fixes bug #316166
403
404 2008-04-23  Marek Habersack  <mhabersack@novell.com>
405
406         * VirtualPath.cs: introduced the CurrentRequestDirectory property,
407         which returns the virtual directory for the current request. The
408         information is taken from either current request's
409         CurrentExecutionFilePath property (if not null) or from the path
410         set externally (by setting the property or using the appropriate
411         VirtualPath constructor). The new property is used to construct
412         the correct absolute virtual path in the MakeRooted method. Fixes
413         bug #381715.
414
415         * HttpApplication.cs: events registered from Application_Start are
416         silently ignored - any event registered after the one-time
417         application initialization is completed, is ignored. Fixes bug
418         #381971
419
420         * HttpApplicationFactory.cs: call app.DisposeInternal instead of
421         app.Dispose.
422
423         * HttpContext.cs: Fix bug #371581 for 1.1 as well.
424
425 2008-04-19  Marek Habersack  <mhabersack@novell.com>
426
427         * HttpException.cs: don't write the stack trace inside html
428         comment if custom errors are enabled.
429
430 2008-04-15  Kornél Pál  <kornelpal@gmail.com>
431
432         * HttpRuntime.cs: Don't add Date header for error pages either. Fixes bug
433         #363404.
434
435 2008-04-15  Marek Habersack  <mhabersack@novell.com>
436
437         * HttpRequest.cs: dispose of streams the way it should
438         be done.
439
440 2008-04-14  Igor Zelmanovich <igorz@mainsoft.com>
441
442         * HttpRuntime.cs: refactoring.
443
444 2008-04-14  Marek Habersack  <mhabersack@novell.com>
445
446         * XmlSiteMapProvider.cs: FindStartingNode throws an exception when
447         it is passed a file which ends in an extension other than
448         .sitemap.
449         Fixed a check for the siteMapFile attribute presence. Fixes bug
450         #379566.
451
452         * SiteMap.cs: FindCurrent node uses the default provider
453         exclusively. Fixes bug #379566
454
455 2008-04-10  Marek Habersack  <mhabersack@novell.com>
456
457         * HttpApplicationFactory.cs: compile web references before
458         App_Code. Fixes bug #377934
459
460         * MimeTypes.cs: added some missing MIME types. New entries
461         contributed by Albert Ritmeester
462         <aritmeester@vitalhealthsoftware.nl>, thanks! Fixes bug #372290
463
464 2008-04-09  Marek Habersack  <mhabersack@novell.com>
465
466         * HttpContext.cs: make RewritePath work correctly in the 2.0
467         profile, fixes bug #371581
468
469         * HttpApplicationFactory.cs: compile web references. Fixes bug
470         #377934
471
472         * VirtualPath.cs: added a method to convert a physical path into a
473         virtual one, if the physical path is under the application root.
474
475 2008-04-08  Dean Brettle <dean@brettle.com>
476
477         * HttpApplicationFactory.cs (CapabilitiesProcessor): changed to
478         use etc/mono/2.0/Browser/*.browser files in addition to 
479         ~/App_Browsers/*.browser files.
480
481 2008-04-07  Marek Habersack  <mhabersack@novell.com>
482
483         * VirtualPath.cs: added
484
485 2008-04-02  Marek Habersack  <mhabersack@novell.com>
486
487         * HttpRequest.cs: make sure QueryStringRaw is always returned with
488         a leading '?' and that we return something meaningful even if the
489         url components weren't collected before. Fixes bug #376352
490
491 2008-04-01  Marek Habersack  <mhabersack@novell.com>
492
493         * HttpApplication.cs: set context.Handler to the detected handler
494         object before firing application events. Fixes bug #372897
495
496 2008-03-31  Marek Habersack  <mhabersack@novell.com>
497
498         * StaticFileHandler.cs: added code to use custom
499         VirtualPathProvider, if present, to serve files from virtual
500         storage.
501
502         * HttpResponse.cs: added two internal TransmitFile overloads which
503         take a VirtualFile as a parameter.
504
505 2008-03-27  Marek Habersack  <mhabersack@novell.com>
506
507         * HttpRequest.cs: make UrlComponents internal.
508
509         * HttpContext.cs: added support for resource provider factories.
510
511 2008-03-13  Marek Habersack  <mhabersack@novell.com>
512
513         * HttpApplicationFactory.cs: use HttpApplication.BinDirs to
514         create watchers for binary application directories.
515
516         * HttpApplication.cs: use HttpRuntime.CaseInsensitive instead of
517         own IsRunningOnWindows.
518         Remove the BinDirectories enumerator property, replaced with a
519         BinDirectory one returning a string with path to the binary
520         directory.
521
522         * HttpRuntime.cs: introduce two static properties -
523         CaseInsensitive (set to true whenever the environment is
524         case-insensitive - i.e. MONO_IOMAP="all" or MONO_IOMAP="case", or
525         running on Windows) and RunningOnWindows.
526
527 2008-03-12  Marek Habersack  <mhabersack@novell.com>
528
529         * HttpApplication.cs: HttpContext.Handler may be set by a module
530         in any of the event handlers between acquiring the initial handler
531         and processing the request. Honor the setting and use
532         HttpContext.Handler instead of the matched one if set.
533
534 2008-03-10  Marek Habersack  <mhabersack@novell.com>
535
536         * HttpApplication.cs: synchronize Modules and Dispose with
537         InitOnce. Should prevent firing module events before the modules
538         are fully initialized.
539
540 2008-03-09  Dean Brettle <dean@brettle.com> 
541
542         * HttpApplicationFactory.cs: Added support for detecting 
543         App_Browsers/*.browser files and using them to determine capabilities.
544         Also restart the app if the App_Browsers, App_Code, or App_GlobalResources
545         directories are created.
546
547         * BrowserCapabilities.cs (TagWriter): get value via internal virtual
548         GetTagWriter() method, which is overridden in nBrowser.Result.
549
550         * HttpRequest.cs (BrowserMightHaveSpecialWriter, BrowserMightHaveAdapters):
551         internal properties added to allow Page and Control methods to avoid
552         accessing Request.Browser to get browser-specific HtmlTextWriters or 
553         ControlAdapters.  Those things only exist when there are App_Browsers
554         files.
555
556 2008-03-09  Marek Habersack  <mhabersack@novell.com>
557
558         * HttpUtility.cs: HTML-decode the query string prior to parsing
559         it.
560
561 2008-03-01  Marek Habersack  <mhabersack@novell.com>
562
563         * HttpRuntime.cs: SettingsMappingManager has been moved to
564         Mono.Web.
565
566 2008-02-28  Marek Habersack  <mhabersack@novell.com>
567
568         * HttpParamsCollection.cs: restore the GetValues overrides only to
569         make sure the collections are merged before invoking the base
570         implementation. 
571         Remove code that's no longer needed.
572
573 2008-02-27  Marek Habersack  <mhabersack@novell.com>
574
575         * HttpException.cs: error message output format changes.
576
577 2008-02-26  Kornél Pál  <kornelpal@gmail.com>
578
579         * HttpResponse.cs: Don't add Date header because servers usually add
580         a Date header that would result in duplicate Date header sent to the
581         client. Fixes bug #363404.
582
583 2008-02-25  Marek Habersack  <mhabersack@novell.com>
584
585         * HttpException.cs: fix a buglet with unfoldable hidden divs which
586         contain the full compiler output and the full source code.
587
588         * HttpContext.cs: correctly set the timeout if the user has
589         specified a timeout which, when converted to milliseconds yields a
590         value larger than one allowed by Timer.Change. This can happen,
591         for instance, when HttpServerUtility.ScriptTimeout is set to
592         Int32.MaxValue. Previously, when something like that happened, the
593         value was converted to 0ms, giving an instantenous timer
594         expiration and, what follows, a request "timeout".
595
596 2008-02-19  Marek Habersack  <mhabersack@novell.com>
597
598         * HttpParamsCollection.cs: do not override the NVC behavior for
599         GetValues - values from different sources (Form, Query, Cookies,
600         ServerVariables) must be kept separate for this purpose. This is
601         also the behavior of MS.NET. Fixes bug #362189
602
603 2008-02-18  Marek Habersack  <mhabersack@novell.com>
604
605         * HttpRuntime.cs: When app is offline, send status code 503
606         instead of 200. Fixes bug #357565
607
608 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
609
610         * HttpException.cs: Avoid IndexOutOfRangeException when there are no
611         error lines.
612
613 2008-02-07  Gert Driesen  <drieseng@users.sourceforge.net>
614
615         * HttpException.cs: Removed CWL.
616
617 2008-02-07  Marek Habersack  <mhabersack@novell.com>
618
619         * HttpException.cs: more exception output compatibility changes to
620         match MS.NET.
621
622 2008-02-07  Vladimir Krasnov  <vladimirk@mainsoft.com>
623
624         * HttpContext.jvm.cs: added CurrentHandlerInternal property
625
626 2008-02-07  Marek Habersack  <mhabersack@novell.com>
627
628         * HttpException.cs: moved several strings to constants, for easier
629         maintenance. 
630         Added 3 new constructors which let the caller to set the exception
631         description.
632         The Description property is now settable.
633         The stack trace at the bottom of the file is written after the
634         terminating </html>, inside a HTML comment. Format changed to
635         match MS.NET.
636         Error 404 is handled in a special way, to match the output with
637         MS.NET.
638
639         * HttpContext.cs, StaticFileHandler.cs, HttpApplication.cs: use
640         the new HttpException constructor for 404.
641
642 2008-02-07  Vladimir Krasnov  <vladimirk@mainsoft.com>
643
644         * HttpResponse.cs: fixed AddHeadersNoCache, removed date_header since
645         java app server adds it, under TARGET_J2EE.
646
647 2008-02-06  Marek Habersack  <mhabersack@novell.com>
648
649         * HttpApplicationFactory.cs: in FireOnAppEnd, set app_type to null
650         after the event has been fired.
651
652         * HttpRuntime.cs: when switching to offline mode fire the
653         shutdown events. Fixes bug #357565.
654         Watch for Created event in the FileSystemWatcher for the
655         app_offline.htm files.
656
657 2008-01-29  Vladimir Krasnov  <vladimirk@mainsoft.com>
658
659         * HttpRequest.cs: performance optimization of QueryStringRaw
660
661 2008-01-27  Igor Zelmanovich <igorz@mainsoft.com>
662
663         * HttpResponse.cs: rise PreSendRequestHeaders befire headers_sent 
664         initialization to allow set additional headers or status code at 
665         PreSendRequestHeaders event handlers.
666
667 2008-01-24  Marek Habersack  <mhabersack@novell.com>
668
669         * HttpApplicationFactory.cs: use BuildManager.GetCompiledType to
670         build the application (global.asax) file.
671
672 2008-01-22  Konstantin Triger <kostat@mainsoft.com>
673
674         * HttpResponse.cs: move headers_sent initialization up to prevent additional
675                 trial to send headers if an exception is thrown.
676
677 2008-01-21  Konstantin Triger <kostat@mainsoft.com>
678
679         * HttpRequest.cs: Form validation: ensure the collection is accessible after
680                 validation failed.
681
682 2008-01-16  Juraj Skripsky  <js@hotfeet.ch>
683
684         * HttpRequest.cs (get_UrlReferrer): Handle case when headers contain
685         invalid Url for referer.
686
687 2008-01-16  Juraj Skripsky  <js@hotfeet.ch>
688
689         * HttpCookieCollection.cs (AllKeys): Use Keys.CopyTo().
690
691 2008-01-14  Sebastien Pouliot  <sebastien@ximian.com>
692
693         * HttpCookie.cs: Fix HttpOnly setter. Found using Gendarme.
694
695 2008-01-02  Vladimir Krasnov  <vladimirk@mainsoft.com>
696
697         * HttpContext.cs: added resource manager caching in GetResourceObject
698         * HttpContext.jvm.cs: added resourceManagerCache storing in appdomain
699
700 2007-12-31  Vladimir Krasnov  <vladimirk@mainsoft.com>
701
702         * HttpContext.cs: added HasError method
703         * HttpApplication.cs: refactored thread abort handling
704
705 2007-12-31  Vladimir Krasnov  <vladimirk@mainsoft.com>
706
707         * HttpRuntime.cs: fixed HttpRuntime, added Cache.DependencyCache
708         initialization
709
710 2007-12-26 Igor Zelmanovich <igorz@mainsoft.com>
711         
712         * TraceContext.cs:
713         * TraceData.cs:
714         make trace considers control state info.                
715
716 2007-12-25 Igor Zelmanovich <igorz@mainsoft.com>
717         
718         * HttpApplication.cs: initialize culture each request.
719         makes it consider culture settings from nested web.config               
720
721 2007-12-19  Juraj Skripsky <js@hotfeet.ch>
722
723         * HttpContext.cs, HttpApplication.cs: Move timeout tracking from
724         TimeoutManager into HttpContext. Replace periodic timeout checks with
725         separate per-context timeout timers.  
726         * HttpRuntime.cs: remove TimeoutManager.
727
728 2007-12-18  Miguel de Icaza  <miguel@novell.com>
729
730         * HttpCookieCollection.cs (Get): implement using the indexer to
731         share some code.   Should fix #349564.
732
733 2007-12-16 Igor Zelmanovich <igorz@mainsoft.com>
734         
735         * HttpContext.cs: added IsProcessingInclude property.
736         * HttpServerUtility.cs: set IsProcessingInclude value within Execute.
737
738 2007-12-13  Marek Habersack  <mhabersack@novell.com>
739
740         * HttpRequest.cs, HttpResponse.cs, SiteMapNode.cs, HttpRuntime.cs,
741         HttpResponseStream.cs, HttpApplication.cs, HttpCachePolicy.cs:
742         speed optimization - use String.Concat instead of String.Format in
743         some cases.
744
745 2007-12-13 Igor Zelmanovich <igorz@mainsoft.com>
746         
747         * HttpApplication.cs:
748         * HttpContext.cs:
749         * HttpRequest.cs:
750         * HttpServerUtility.cs:
751         - When Transfer/Execute is called with preserveForm=true, transferred 
752         page is not processed as PostBack but form collection is preserved.
753         - When Execute is called more than once, PreviousPage property is set 
754         correct.
755
756 2007-12-09  Vladimir Krasnov  <vladimirk@mainsoft.com>
757
758         * HttpApplication.cs: added TARGET_JVM to LoadType method
759
760 2007-12-08  Marek Habersack  <mhabersack@novell.com>
761
762         * HttpRuntime.cs: initialize the Settings Mapping Manager once per
763         application, just after initalizing the WebConfigurationManager.
764
765 2007-11-28  Marek Habersack  <mhabersack@novell.com>
766
767         * HttpApplication.cs: peform the check of whether we're running on
768         Windows from within a static constructor.
769
770 2007-11-23  Marek Habersack  <mhabersack@novell.com>
771
772         * RequestNotificationStatus.cs: fix the order of enum members.
773
774         * RequestNotification.cs: assign correct values to the enum
775         members.
776
777         * StaticSiteMapProvider.cs: change visibility of the constructor.
778
779         * HttpRequest.cs: added missing property LogonUserIdentity.
780
781         * HttpCacheVaryByContentEncodings.cs: this constructor should not
782         be public.
783
784 2007-11-23  Daniel Nauck  <dna@mono-project.de>
785
786         * TraceContextRecord.cs: implemented
787
788 2007-11-23  Marek Habersack  <mhabersack@novell.com>
789
790         * BrowserCapabilities.cs: the JavaScript property is obsolete in
791         2.0sp1.
792
793 2007-11-22  Daniel Nauck  <dna@mono-project.de>
794
795         * IPartitionResolver.cs: implemented
796
797 2007-11-22  Daniel Nauck  <dna@mono-project.de>
798
799         * WebPageTraceListener.cs: implemented
800
801 2007-11-22  Marek Habersack  <mhabersack@novell.com>
802
803         * RequestNotificationStatus.cs: added
804
805         * RequestNotification.cs: added
806
807         * HttpCacheVaryByContentEncodings.cs: added
808
809         * HttpCachePolicy.cs: added the HttpCacheVaryByContentEncodings
810         property.
811
812         * HttpApplication.cs: added 3 new events to the pipeline (for
813         compatibility with the 2.0sp1/3.5 version of System.Web)
814
815 2007-11-22  Daniel Nauck  <dna@mono-project.de>
816
817         * WebPageTraceListener.cs: initial checkin (stubs).
818
819 2007-11-17  Marek Habersack  <mhabersack@novell.com>
820
821         * HttpResponse.cs: make sure fileDependencies is not null before
822         attempting to use it. Fixes bug #342511.
823
824 2007-11-07 Igor Zelmanovich <igorz@mainsoft.com>
825
826         * TraceContext.cs:
827         * TraceData.cs: implemented TraceMode feature.  
828
829 2007-11-07 Igor Zelmanovich <igorz@mainsoft.com>
830
831         * BaseParamsCollection.cs:
832         ensure collection will not be changed during enumeration.
833
834 2007-11-06  Marek Habersack  <mhabersack@novell.com>
835
836         * HttpResponse.cs: trigger the PreSendRequestHeaders event before
837         setting the output headers. Fixes bugs #334521, #339538
838
839         * TraceData.cs: do not use DataTable for trace data storage
840         anymore. Instead, a set of classes is used to hold data and a
841         Queue container (generic version in 2.0) is used to hold the data
842         rows. Fixes bug #325267.
843
844 2007-11-05  Marek Habersack  <mhabersack@novell.com>
845
846         * HttpRequest.cs: cope with UriBuilder.Query being null.
847
848 2007-11-03  Gert Driesen  <drieseng@users.sourceforge.net>
849
850         * HttpRuntime.cs: Always return a path with trailing directory
851         separator character. Spaces to tabs.
852
853 2007-11-03  Marek Habersack  <mhabersack@novell.com>
854
855         * HttpApplication.cs: removed unused internal PrivateBinPath
856         property.
857
858         * HttpRuntime.cs: BinDirectory returns a path that ends with the
859         directory separator character.
860
861 2007-11-02  Marek Habersack  <mhabersack@novell.com>
862
863         * HttpServerUtility.cs: in 2.0, Transfer is allowed only from
864         pages. Fixes bug #334931
865         Also, according to MSDN docs, transfer in 2.0+ is possible only to
866         other pages.
867
868         * HttpRuntime.cs: BinDirectory returns a full path to the actual
869         bin directory in the application root. If no bin directory is
870         found, it defaults to returning <applicationPath>/bin. Fixes bug
871         338116.
872
873         * HttpApplication.cs: introduced HTTP handler cache to save time
874         on repetitive handler collection traversals. On busy sites the
875         traversal of the default 26 handlers may account for thousands of
876         unnecessary calls to configsystem.LocateHandler method, which may
877         also involve executing a regex. The cache is cleared whenever the
878         HTTP handler collection is modified.
879
880 2007-10-30 Igor Zelmanovich <igorz@mainsoft.com>
881
882         * HttpUtility.cs: fixed HtmlEncode for TARGET_JVM.
883
884 2007-10-30 Igor Zelmanovich <igorz@mainsoft.com>
885
886         * HttpUtility.cs: fixed UrlPathEncode.
887
888 2007-10-24  Gert Driesen  <drieseng@users.sourceforge.net>
889
890         * StaticFileHandler.cs: Modified 404 message to match MS.
891
892 2007-10-24  Marek Habersack  <mhabersack@novell.com>
893
894         * HttpUtility.cs: MS.NET does not support the ';' query parameter
895         separator. Fixes bug #335615
896
897 2007-10-18  Juraj Skripsky  <js@hotfeet.ch>
898
899         * StaticSiteMapProvider.cs: Replace Hashtables by Dictionaries,
900         don't allocate them on-demand, there will never be many
901         Provider instances around.
902         AddNode(): Check for duplicate keys before adding any item to
903         hashtables.
904         RemoveNode(): Use fact that Hashtable.Remove() never throws,
905         remove item from keyToNode as well, make symmetric to AddNode().
906         MapUrl(): Use VirtualPathUtility, allow for full urls
907         (e.g. http://www.google.com).
908         
909 2007-10-17  Marek Habersack  <mhabersack@novell.com>
910
911         * StaticFileHandler.cs: fixed an bug with Mono running under
912         Windows operating systems which caused XSP to return source of the
913         requested page if the file name used in the request ended in any
914         number of spaces or dots. The problem lies in the way the Win32
915         subsystem treats such file names - it ignores the trailing
916         characters and allows the calling application to open a file on
917         disk even when its name does not contain the trailing characters
918         used in the open request. Such file names may be supported by the
919         underlying filesystem (e.g. NTFS) but they are not supported by
920         the I/O Win32 subsystem. The security issue is reported in
921         CVE security report CVE-2007-5473. Fixes bug #332401
922         
923 2007-10-17  Igor Zelmanovich <igorz@mainsoft.com>
924
925         * HttpResponse.cs:
926         response status is sent after PreSendRequestHeaders invoked.
927         Redirect method set RedirectLocation property
928         fixes bug #334521
929                 
930 2007-10-15  Marek Habersack  <mhabersack@novell.com>
931
932         * HttpApplication.cs: do not return a non-existing bin directory
933         from BinDirectories. Patch from Atsushi Enomoto
934         <atsushi@ximian.com>, thanks! Fixes bug #332434. 
935
936 2007-10-04  Marek Habersack  <mhabersack@novell.com>
937
938         * HttpApplication.cs: call the Init method after loading the
939         modules and hooking up application events. Fixes bug #330416.
940
941 2007-10-01  Marek Habersack  <mhabersack@novell.com>
942
943         * HttpServerUtility.cs: set a flag when transferring control to
944         another page.
945
946         * HttpContext.cs: added an internal InTransit property to carry
947         information that HttpServerUtility.Transfer has been used, over to
948         the target page.
949
950 2007-09-12  Juraj Skripsky <js@hotfeet.ch>
951
952         * StaticSiteMapProvider.cs (AddNode): Add message text to
953         InvalidOperationException (duplicate url case).
954
955 2007-09-06  Marek Habersack  <mhabersack@novell.com>
956
957         * HttpCachePolicy.cs: implemented setting the ETag and
958         Last-Modified headers from file dependencies.
959
960         * HttpResponse.cs: implemented file dependency methods.
961
962 2007-09-01  Marek Habersack  <mhabersack@novell.com>
963
964         * HttpRuntime.cs: rewrote the app_offline.htm support. It now uses
965         filesystem watchers instead of checking for existence of the
966         file(s) at the beginning of every request. No performance penalty
967         that way.
968
969 2007-08-31  Marek Habersack  <mhabersack@novell.com>
970
971         * HttpApplicationFactory.cs: added methods to enable/disable
972         watchers.
973
974         * HttpRuntime.cs: implemented handling of app_offline.htm file in
975         the application root directory. Fixes bug #81127.
976
977         * HttpResponse.cs: make sure neither context or
978         context.ApplicationInstance are null in End ().
979
980 2007-08-27  Marek Habersack  <mhabersack@novell.com>
981
982         * HttpCookie.cs: make sure a key is output even if it has no
983         values set. Fixes bug #81333.
984
985 2007-08-23  Marek Habersack  <mhabersack@novell.com>
986
987         * HttpApplication.cs: added a static array BinDirs which contains
988         the common bin directory names we can encounter.
989         Added internal static property IsRunningOnWindows.
990         Added internal enumerable property BinDirectories to iterate over
991         the full paths of the available binary directories.
992         Added internal enumerable property BinDirectoryAssemblies to
993         iterate over .dll files in the bin directories.
994         LoadTypeFromPrivateBin renamed to LoadTypeFromBin.
995         LoadTypeFromBin uses BinDirectoryAssemblies.
996         
997         * HttpApplicationFactory.cs: use HttpApplication.BinDirectories to
998         interate over the list of bin dirs.
999
1000 2007-08-21  Marek Habersack  <mhabersack@novell.com>
1001
1002         * HttpApplicationFactory.cs: watch for changes in all the
1003         private binary directories for the current application domain.
1004
1005         * HttpApplication.cs: turn the PrivateBinPath property into an
1006         internal enumerable, so that code throughout the assembly can
1007         iterate over the list of private bin directories configured for
1008         the application domain.
1009         Added a new internal method LoadTypeFromPrivateBin, for sharing
1010         with other parts of the assembly.
1011
1012 2007-08-18  Juraj Skripsky <js@hotfeet.ch>
1013
1014         * HttpRequest.cs (StripPath): Fix off-by-one error, make static.
1015
1016 2007-08-18  Marek Habersack  <mhabersack@novell.com>
1017
1018         * HttpRequest.cs: IE sends the full input file path when uploading
1019         a file via the upload input control. Detect the situation and
1020         strip the leading path. Fixes bug #82059.
1021
1022         * HttpServerUtility.cs: set the current context's path(s) to the
1023         Transfer/Execute target only to retrieve the new handler, and
1024         restore them immediately afterwards. It has a two-fold effect:
1025         first it avoids an extra round trip to the original page which
1026         called Transfer/Execute, second it makes FilePath etc. return
1027         information about the original page (that is the one which called
1028         Transfer/Execute). Fixes bug #82439.
1029
1030 2007-08-14  Marek Habersack  <mhabersack@novell.com>
1031
1032         * XmlSiteMapProvider.cs: do not hide this_lock.
1033
1034 2007-08-09  Marek Habersack  <mhabersack@novell.com>
1035
1036         * HttpApplicationFactory.cs: unconditionally watch for changes
1037         (including creation) to Global.asax, global.asax, Web.config,
1038         web.config and Web.Config. This makes the application restart once
1039         any of those is created. Patch from Juraj Skripsky
1040         <juraj@hotfeet.ch>, thanks! Fixes bug #82380.
1041
1042 2007-08-08  Marek Habersack  <mhabersack@novell.com>
1043
1044         * StaticSiteMapProvider.cs, HttpApplicationFactory.cs,
1045         HttpStaticObjectsCollection.cs, SiteMapProvider.cs,
1046         XmlSiteMapProvider.cs, HttpApplication.cs, CapabilitiesLoader.cs,
1047         TimeoutManager.cs: do not use lock (this), replace it with lock
1048         (this_object), where this_object is an instance variable. Prevents
1049         deadlocks in situation when external code locks on the class
1050         instance.
1051
1052 2007-08-05  Vladimir Krasnov  <vladimirk@mainsoft.com>
1053
1054         * HttpUtility.cs: performance refactoring, optimized UrlEncode
1055
1056 2007-08-05 Igor Zelmanovich <igorz@mainsoft.com>
1057
1058         * SiteMapNode.cs: refactoring + typo fix: 
1059         variable is declared in scope where is used.
1060
1061 2007-07-31  Vladimir Krasnov  <vladimirk@mainsoft.com>
1062
1063         * VirtualPathUtility.cs: refactored GetDirectory, ToAbsolute, added
1064         internal api to skip path normalizing
1065
1066 2007-07-30  Vladimir Krasnov  <vladimirk@mainsoft.com>
1067
1068         * HttpResponseStream.jvm.cs: optimized CharBucket
1069
1070 2007-07-22  Vladimir Krasnov  <vladimirk@mainsoft.com>
1071
1072         * HttpServerUtility.cs: fixed Execute, SetCurrentExePath should be 
1073         called after ApplicationInstance.GetHandler call in case of GetHandler
1074         fails for some reason
1075
1076 2007-07-21  Marek Habersack  <mhabersack@novell.com>
1077
1078         * HttpRuntime.cs: clean up the dynamic base directory on domain
1079         shutdown.
1080
1081 2007-07-10  Vladimir Krasnov  <vladimirk@mainsoft.com>
1082
1083         * HttpUtility.cs: optimized HtmlEncode and HtmlAttributeEncode methods
1084
1085 2007-07-05  Miguel de Icaza  <miguel@novell.com>
1086
1087         * HttpApplication.cs (AsyncRequestState.Complete): Add the
1088         try/catch for the callback here to ensure that we only call
1089         complete_event.Set once. 
1090
1091         (PipelineDone): This is where the core of the bug fix is: do not
1092         call Complete() or call done.Set() (depending on the invocation
1093         case) until we are actually done cleaning up the request.
1094
1095         The problem was that we signaled that we were done, but we had not
1096         completed the shut down, so another thread could have been
1097         scheduled on the same HttpApplication and had its variables be
1098         modified as we completed the shutdown on the first thread. 
1099
1100         This fixes #81400 which was a very long standing bug.  
1101
1102         (Tick): Remove the pipeline check against null, this is not
1103         necessary and it will help us find problems like this one in the
1104         future.
1105
1106         Reverts patch r66072 which was a described as:
1107
1108                 band-aid patch to help debugging hang running 2.0
1109                 tests.
1110
1111 2007-07-02  Marek Habersack  <mhabersack@novell.com>
1112
1113         * CapabilitiesLoader.cs: provide default capability values for all
1114         the 2.0+ capabilities which are not defined in our
1115         browscap.ini. The default values have been assigned as per
1116         MSDN. Fixes bug #81927
1117
1118 2007-06-28  Vladimir Krasnov  <vladimirk@mainsoft.com>
1119
1120         * HttpResponse.cs: fixed AddHeadersNoCache, removed content-length
1121         header for TARGET_JVM
1122         * HttpWorkerRequest.cs: made this class partial, moved TARGET_JVM stuff
1123         to .jvm part
1124         * HttpWriter.cs: fixed write methods, output_stream can write char[]
1125         and string in TARGET_JVM
1126         added HttpWorkerRequest.jvm.cs, HttpResponseStream.jvm.cs
1127
1128 2007-06-25 Juraj Skripsky <js@hotfeet.ch>
1129
1130         * HttpRuntime.cs (ShutdownAppDomain): Re-introduce call to
1131         "Cache.InvokePrivateCallbacks".
1132
1133 2007-06-24  Vladimir Krasnov  <vladimirk@mainsoft.com>
1134
1135         * HttpUtility.cs: fixed HtmlAttributeEncode, performance improvement
1136
1137 2007-06-20  Marek Habersack  <mhabersack@novell.com>
1138
1139         * HttpRuntime.cs: added new internal property, InternalCache, to
1140         keep all the internal cache entries instead of mixing them with
1141         the public cache ones.
1142         Do not invoke Cache.InvokePrivateCallbacks - this method no longer
1143         exists.
1144
1145         * HttpResponse.cs: private entries are now kept in
1146         Context.InternalCache.
1147
1148         * HttpContext.cs: added new internal property, InternalCache,
1149         which returns the HttpRuntime.InternalCache value.
1150
1151         * HttpApplication.cs: check all the loaded assemblies for the type
1152         being looked up. Patch from Juraj Skripsky <juraj@hotfeet.ch>,
1153         thanks! Fixes bug #81697.
1154
1155 2007-06-18 Igor Zelmanovich <igorz@mainsoft.com>
1156
1157         * HttpUtility.cs: refactoring:
1158         removed constants to another class.     
1159
1160 2007-06-18 Igor Zelmanovich <igorz@mainsoft.com>
1161
1162         * AssemblyResourceLoader.cs: refactoring:
1163         make the code reusable in System.Web.Extenssions.       
1164
1165 2007-05-31  Marek Habersack  <mhabersack@novell.com>
1166
1167         * SiteMapProvider.cs: implemented proper logic of authorizing
1168         user's access to a sitemap node, as per MSDN2 docs. Patch from
1169         Dumitru Ban <dban@dako.ro>, thanks!
1170
1171 2007-05-30  Marek Habersack  <mhabersack@novell.com>
1172
1173         * TraceManager.cs: Catch all the possible exceptions in the
1174         constructor - the object MUST be created successfully (even if
1175         there are errors).
1176
1177         * HttpRequest.cs: do not attempt to apply url mappings if the
1178         configuration manager has errors.
1179
1180         * HttpRuntime.cs: handle static constructor exceptions later on,
1181         during the first call to ReallyProcessRequest.
1182
1183         * QueueManager.cs: provide defaults for the parameters to be read
1184         from the config file(s).
1185         Catch all the possible exceptions in the constructor - the object
1186         MUST be created successfully (even if there are errors).
1187
1188 2007-05-29  Marek Habersack  <mhabersack@novell.com>
1189
1190         * SiteMapProvider.cs: updated the node accessibility comments.
1191         If Roles not null and user is not in at least one of the
1192         specified roles, return false.
1193         If there Url is null or empty, return false.
1194
1195 2007-05-28  Marek Habersack  <mhabersack@novell.com>
1196
1197         * HttpRequest.cs: since Path is used from within
1198         WebConfigurationManager, under some conditions it may lead to
1199         endless recursion if the UrlComponents is not instantiated when
1200         Path_get is called.
1201
1202 2007-05-21  Vladimir Krasnov  <vladimirk@mainsoft.com>
1203
1204         * HttpContext.cs: added ProfileInitialized boolean property
1205
1206 2007-05-16  Vladimir Krasnov  <vladimirk@mainsoft.com>
1207
1208         * VirtualPathUtility.cs: Normalize method check more carefully if need
1209         to normalize, performance fix
1210
1211 2007-05-16  Konstantin Triger <kostat@mainsoft.com>
1212
1213         * HttpContext.cs: correctly check for request locality.
1214
1215 2007-05-15  Marek Habersack  <mhabersack@novell.com>
1216
1217         * HttpApplication.cs: refactoring - moved LoadType from
1218         WebConfigurationHost here and made it internal static, in order to
1219         make the code avaliable from all the places where extended type
1220         loading is required.
1221
1222 2007-05-14  Marek Habersack  <mhabersack@novell.com>
1223  
1224         * HttpUtility.cs: when parsing query strings, skip the leading ?
1225         for the first parameter name.
1226
1227         * HttpRequest.cs: added support for mapping urls, as defined in
1228         the system.web/urlMappings section.
1229
1230 2007-05-14  Vladimir Krasnov  <vladimirk@mainsoft.com>
1231         
1232         * HttpWriter.cs: GetMaxByteCount was used in Write and WriteString
1233         methods to improve performance of HttpWriter
1234
1235 2007-05-14 Igor Zelmanovich <igorz@mainsoft.com>
1236
1237         * HttpApplication.cs:
1238         prevent DOS attack: remove configuration from the cache in case 
1239         of invalid resource not exists  
1240
1241 2007-05-14  Vladimir Krasnov  <vladimirk@mainsoft.com>
1242
1243         * TraceContext.cs: refactoring, cached TraceManager
1244
1245 2007-05-03 Igor Zelmanovich <igorz@mainsoft.com>
1246
1247         * HttpApplication.cs:
1248         * HttpContext.cs:
1249         handling exceptions occurred if  <system.web/customError> 
1250         section is not valid.   
1251
1252 2007-05-08  Vladimir Krasnov  <vladimirk@mainsoft.com>
1253
1254         * BaseParamsCollection.cs: fixed Get(string) property, fixed collection
1255         lazy initialization
1256
1257 2007-05-07  Marek Habersack  <mhabersack@novell.com>
1258
1259         * HttpResponseStream.cs: use BufferOutput
1260
1261         * HttpResponse.cs: support Buffer, but use BufferOutput
1262
1263 2007-05-03 Igor Zelmanovich <igorz@mainsoft.com>
1264
1265         * BrowserCapabilities.cs:
1266         added missing API.      
1267
1268 2007-04-30 Igor Zelmanovich <igorz@mainsoft.com>
1269
1270         * HttpApplication.cs: reverted r74717.
1271
1272 2007-04-29 Igor Zelmanovich <igorz@mainsoft.com>
1273
1274         * HttpContext.jvm.cs: Response.End() must abort thread if not async.    
1275
1276 2007-04-29 Igor Zelmanovich <igorz@mainsoft.com>
1277
1278         * HttpApplication.cs: doesn't cache httpHandlersSection in instance, 
1279         that allows to consider httpHandlers section in nested web.config.      
1280
1281 2007-04-27  Marek Habersack  <mhabersack@novell.com>
1282
1283         * XmlSiteMapProvider.cs: add support for siteMapFile attribute.
1284
1285 2007-04-24  Marek Habersack  <mhabersack@novell.com>
1286
1287         * CapabilitiesLoader.cs: Hashtables used as property containers
1288         should not be case-insensitive as we now preload the property
1289         hashes with default properties, to make the code work in case
1290         browscap.ini is broken or missing. Instead, the keys are
1291         lower-cased and trimmed before indexing the Hashtable.
1292         Added all the missing capabilities to the defaultCaps Hashtable.
1293         The returned Hashtable is not reversed in GetCapabilities anymore
1294         - it might make the code faster, but it also makes it mismatch
1295         browsers (e.g. Firefox 2.0 is mismatched for Mozilla 1.8).
1296         All of the above fixes bug #81437.
1297
1298         * HttpRequest.cs: MS.NET throws HttpException for invalid paths,
1299         not ArgumentNullException.
1300
1301         * HttpException.cs: wrap GetHtmlErrorMessage internals in
1302         try/catch to capture possible exceptions in HttpContext.
1303
1304         * HttpContext.cs: IsCustomErrorEnabled is used from within
1305         HttpException, make sure it gets the section in a safe way and
1306         resorts to the default settings.
1307         
1308         * HttpResponse.cs: HeaderEncoding is used in the same context as
1309         above. Take the same precautions.
1310         
1311 2007-04-22 Joshua Tauberer <jit@occams.info>
1312  
1313         * HttpParamsCollection.cs: Fix IndexOutOfRangeException.
1314
1315 2007-04-19  Miguel de Icaza  <miguel@novell.com>
1316
1317         * BaseParamsCollection.cs (Get (string)): Call LoadInfo here to
1318         fix #81385
1319
1320 2007-04-17 Igor Zelmanovich <igorz@mainsoft.com>
1321
1322         * HttpException.cs: used GetBaseException() instead InnerException.
1323
1324 2007-04-17 Igor Zelmanovich <igorz@mainsoft.com>
1325
1326         * HttpException.cs: shows message of InnerException in head of Page.
1327
1328 2007-04-17 Igor Zelmanovich <igorz@mainsoft.com>
1329
1330         * HttpException.cs: fixed generated HTML formating.
1331
1332 2007-04-17 Igor Zelmanovich <igorz@mainsoft.com>
1333
1334         * HttpContext.cs: GetGlobalResourceObject, GetLocalResourceObject
1335         use case-insensitive ResourceManager
1336
1337 2007-04-15  Marek Habersack  <mhabersack@novell.com>
1338
1339         * VirtualPathUtility.cs: converted to LF line endings and set the
1340         svn:eol-style property to 'native'
1341
1342 2007-04-13  Marek Habersack  <mhabersack@novell.com>
1343
1344         * SiteMap.cs: try to look up the current map node in providers
1345         other than the current one. Patch from Mike Morano
1346         <mmorano@mikeandwan.us>. Fixes bug #81366. 
1347
1348 2007-04-12  Vladimir Krasnov  <vladimirk@mainsoft.com>
1349
1350         * HttpRequest.cs: fixed Params property to be lazy initialzation
1351         collection
1352         * added HttpParamsCollection.cs
1353
1354 2007-04-11  Konstantin Triger <kostat@mainsoft.com>
1355
1356         * HttpRequest.cs: IsLocal should return true for loopback addresses.
1357
1358 2007-04-10  Marek Habersack  <mhabersack@novell.com>
1359
1360         * HttpCookie.cs: format the output of HttpCookie.Values.ToString()
1361         in the same way MS.NET does. Fixes bug #81333. Patch from Mike
1362         Morano <mmorano@mikeandwan.us>.
1363
1364         * XmlSiteMapProvider.cs: add the NotifyFilters.Size to the
1365         watcher flags, so that we watch for modifications to a file when
1366         using Linux inotify.
1367
1368         * HttpApplicationFactory.cs: add the NotifyFilters.Size to the
1369         watcher flags, so that we watch for modifications to a file when
1370         using Linux inotify.
1371         App_Code, App_Browsers and App_GlobalResources watchers must watch
1372         for events with the '*' mask so that they can notice events
1373         related to subdirectory creation/deletion.
1374         Watch for subdirectory events with the App_Code watcher.
1375
1376 2007-04-07  Marek Habersack  <mhabersack@novell.com>
1377
1378         * HttpException.cs: show a default custom error message if custom
1379         errors are enabled.
1380         Cleaned up the errors HTML, made it XHTML-compliant. Generated
1381         HTML now uses inline CSS styles.
1382
1383 2007-04-06  Marek Habersack  <mhabersack@novell.com>
1384
1385         * HttpUtility.cs: added a constant that contains the default query
1386         parameter character.
1387         ParseQueryString supports queries with both '&' and ';' parameter
1388         separators.
1389
1390 2007-04-05  Marek Habersack  <mhabersack@novell.com>
1391
1392         * CapabilitiesLoader.cs: Make sure that the capability names
1393         (keys) are stored in lowercase.
1394
1395 2007-04-05 Igor Zelmanovich <igorz@mainsoft.com>
1396
1397         * XmlSiteMapProvider.cs: 
1398         custom attributes of siteMapNode are loaded properly.
1399
1400 2007-04-05  Marek Habersack  <mhabersack@novell.com>
1401
1402         * CapabilitiesLoader.cs: add a full default set of capabilities
1403         for cases when browscap.ini is broken, missing or doesn't contain
1404         definition for the client's User-Agent. Makes it possible to surf
1405         asp.net sites from unsupported clients.
1406
1407 2007-04-04 Juraj Skripsky <js@hotfeet.ch>
1408
1409         * HttpApplicationFactory.cs: Make sure an web application is
1410         shutdown only once (and Application_End in global.asax is called
1411         only once as well). This is necessary because FileSystemWatcher
1412         emits multiple events when e.g. global.asax is changed.
1413
1414 2007-04-01  Vladimir Krasnov  <vladimirk@mainsoft.com>
1415
1416         * HttpRequest.cs: fixed Headers property to use optimized
1417         HeadersCollection
1418         * WebROCollection.cs: used StringComparer.OrdinalIgnoreCase for
1419         NET_2_0
1420         * ServerVariablesCollection.cs: used lazy collection fill optimization
1421         * added: HeadersCollection.cs, BaseParamsCollection.cs
1422
1423 2007-04-01  Konstantin Triger <kostat@mainsoft.com>
1424
1425         * HttpContext.cs: 
1426                 GetLocalResourceObject - should not prefix resources with 'Resources.'.
1427
1428 2007-04-01  Konstantin Triger <kostat@mainsoft.com>
1429
1430         * BrowserCapabilities.cs: Default Browser (userAgent) property to 'Unknown'.
1431
1432 2007-03-29  Vladimir Krasnov  <vladimirk@mainsoft.com>
1433
1434         * HttpContext.cs: timeout methods removed from TARGET_J2EE compilation
1435         * HttpContext.jvm.cs: added stubs for timeout methods
1436
1437 2007-03-28 Igor Zelmanovich <igorz@mainsoft.com>
1438
1439         * StaticSiteMapProvider.cs:
1440         GetChildNodes does not return null but SiteMapNodeCollection.EmptyCollection.
1441
1442 2007-03-28  Konstantin Triger <kostat@mainsoft.com>
1443
1444         * BrowserCapabilities.cs: 
1445                 1. refactoring.
1446                 2. Break recoursion in case 'browser' capability is not found.
1447
1448 2007-03-28 Igor Zelmanovich <igorz@mainsoft.com>
1449
1450         * SiteMapNode.cs: fixed GetAllNodes method.
1451
1452 2007-03-27 Igor Zelmanovich <igorz@mainsoft.com>
1453
1454         * XmlSiteMapProvider.cs: fixed:
1455         resolve app-relative path from config such siteMapFile="~/Web.sitemap".
1456
1457 2007-03-27 Igor Zelmanovich <igorz@mainsoft.com>
1458
1459         * SiteMapNode.cs:
1460         * XmlSiteMapProvider.cs: fixed: Localize Site-Map Data.
1461
1462 2007-03-26  Konstantin Triger <kostat@mainsoft.com>
1463
1464         * HttpRequest.cs: correctly handle null and empty virtual pathes in MapPath.
1465
1466 2007-03-25  Vladimir Krasnov  <vladimirk@mainsoft.com>
1467
1468         * HttpContext.cs: AppGlobalResourcesAssembly static member stored in
1469         AppDomain for TARGET_JVM
1470
1471 2007-03-24  Marek Habersack  <mhabersack@novell.com>
1472
1473         * HttpRuntime.cs: use ICalls.GetMachineConfigPath instead of
1474         opening the machine.config file and getting its path.
1475
1476         * CapabilitiesLoader.cs: use HttpRuntime.MachineConfigurationDirectory 
1477         instead of opening the machine config file and getting its path.
1478
1479 2007-03-23  Konstantin Triger <kostat@mainsoft.com>
1480
1481         * HttpApplication.cs: complete the pipeline in case of exception during
1482                 InitOnce() to avoid a deadlock.
1483
1484 2007-03-22  Adar Wesley <adarw@mainsoft.com>
1485
1486         * BrowserCapabilities.cs: Added implementation for all capabilities.
1487         changed implementation to throw when capability is not defined in browscaps.ini.
1488
1489         * CapabilitiesLoader.cs: fixed parent resultion bug.  added internal support for
1490         browser and browsers capabilities.
1491
1492 2007-03-21  Vladimir Krasnov  <vladimirk@mainsoft.com>
1493
1494         * HttpContext.jvm.cs, HttpRuntime.cs: cached instance of HttpRuntime
1495         in context in addition to AppDomain
1496
1497 2007-03-21  Vladimir Krasnov  <vladimirk@mainsoft.com>
1498         
1499         * HttpCookie.cs, HttpCookieCollection.cs: used OrdinalIgnoreCase
1500         StringComparer for cookies and values collections 
1501
1502 2007-03-21  Vladimir Krasnov  <vladimirk@mainsoft.com>
1503
1504         * HttpApplication.cs: refactred handlers configuration section as
1505         member of class
1506
1507 2007-03-20  Marek Habersack  <mhabersack@novell.com>
1508
1509         * HttpRequest.cs: implement AppRelativeCurrentExecutionFilePath.
1510
1511 2007-03-18 Igor Zelmanovich <igorz@mainsoft.com>
1512
1513         * VirtualPathUtility.cs: fixed GetFileName(), GetExtension() methods.
1514
1515 2007-03-18 Igor Zelmanovich <igorz@mainsoft.com>
1516
1517         * VirtualPathUtility.cs: fixed GetDirectory() method.
1518
1519 2007-03-15  Marek Habersack  <mhabersack@novell.com>
1520
1521         * XmlSiteMapProvider.cs: handle cases with no default for the
1522         reskey properly.
1523
1524 2007-03-15 Igor Zelmanovich <igorz@mainsoft.com>
1525
1526         * HttpRequest.cs: fixed MapPath () method.
1527
1528 2007-03-15 Igor Zelmanovich <igorz@mainsoft.com>
1529
1530         * VirtualPathUtility.cs: fixed ToAbsolute() method.
1531
1532 2007-03-15 Igor Zelmanovich <igorz@mainsoft.com>
1533
1534         * VirtualPathUtility.cs: refactoring: class is shared with 1.x.
1535
1536 2007-03-15  Marek Habersack  <mhabersack@novell.com>
1537
1538         * XmlSiteMapProvider.cs: add support for the enableLocalization
1539         <siteMap> attribute and handle per-node localization resource
1540         strings for explicit localization as well as the resourceKey
1541         attribute to <siteMapNode> for implicit localization (closes bug
1542         #81103).
1543
1544         * SiteMapNode.cs: add support for the resource keys and foreign
1545         attributes.
1546         Implement GetImplicitResourceString.
1547         Add support for translation of the Title and Description
1548         attributes (closes bug #81103) as well as foreign attributes.
1549
1550 2007-03-15 Igor Zelmanovich <igorz@mainsoft.com>
1551
1552         * VirtualPathUtility.cs: fixed: works properly with appRelative path.
1553
1554 2007-03-13  Marek Habersack  <mhabersack@novell.com>
1555
1556         * HttpApplicationFactory.cs: resources compiler no longer accepts
1557         a boolean parameter.
1558
1559         * HttpRuntime.cs: Do not compile local resources here anymore.
1560
1561         * HttpContext.cs: if App_LocalResources assembly corresponding to
1562         the virtual path is not found, compile it here.
1563         Look up resources in the "Resources." class path.
1564
1565 2007-03-13 Igor Zelmanovich <igorz@mainsoft.com>
1566
1567         * HttpUtility.cs: fixed HttpUtillity.HtmlAttributeEncode
1568          '<' char must be encoded.      
1569
1570 2007-03-12  Vladimir Krasnov  <vladimirk@mainsoft.com>
1571
1572         * CapabilitiesLoader.cs: added TARGET_JVM part of static members,
1573         added caching to GetCapabilities method for performance improvement
1574
1575 2007-03-12  Marek Habersack  <mhabersack@novell.com>
1576
1577         * XmlSiteMapProvider.cs: support custom site map providers. Fixes
1578         bug #81115
1579
1580 2007-03-06  Vladimir Krasnov  <vladimirk@mainsoft.com>
1581
1582         * StaticFileHandler.cs: fixed ProcessRequest TARGET_JVM path,
1583         if_modified_since fixed in WAR mode
1584
1585 2007-02-25  Vladimir Krasnov  <vladimirk@mainsoft.com>
1586
1587         * HttpRequest.jvm.cs: fixed LoadWwwForm, should distinguish between
1588         query string and form values
1589
1590 2007-02-21  Marek Habersack  <grendello@gmail.com>
1591
1592         * HttpRuntime.cs: BinDirectory returns the bin directory
1593         determined by the application host on the application startup.
1594
1595         * HttpApplicationFactory.cs: Watch the bin directory determined by
1596         the application host on the application startup.
1597
1598 2007-02-20  Vladimir Krasnov  <vladimirk@mainsoft.com>
1599
1600         * HttpRequest.cs: fixed MapPath, removed TARGET_J2EE block that checks
1601         war root symbol
1602
1603 2007-02-19  Marek Habersack  <grendello@gmail.com>
1604
1605         * HttpContext.cs: Make sure all the global resource objects are
1606         sought in the Resources. namespace.
1607
1608 2007-02-18  Eyal Alaluf  <eyala@mainsoft.com>
1609
1610         * HttpContext.jvm.cs, HttpRequest.jvm.cs: Adapt for tunning under test
1611           harness where we don't have a SevletRequest/Response.
1612
1613 2007-02-13  Vladimir Krasnov  <vladimirk@mainsoft.com>
1614
1615         * HttpApplication.cs: fixed InitOnce, httpModules section is global and
1616         taken from the root web.config
1617
1618 2007-02-12  Robert Jordan  <robertj@gmx.net>
1619
1620         * HttpResponseStream.cs (BlockManager.EnsureCapacity):
1621         don't call Marshal.ReAllocHGlobal on NULL because, unlike
1622         realloc(3) and g_realloc, it doesn't support this semantic.
1623         Fixes a part of bug #77075.
1624
1625 2007-02-12  Marek Habersack  <grendello@gmail.com>
1626
1627         * HttpRuntime.cs: support for preservation (.compiled) assembly
1628         mapping files.
1629
1630 2007-02-11  Vladimir Krasnov  <vladimirk@mainsoft.com>
1631
1632         * HttpApplication.cs: added exception pass through from processAction
1633         in j2ee portal
1634
1635 2007-02-02  Marek Habersack  <grendello@gmail.com>
1636
1637         * HttpApplicationFactory.cs: make code a bit more compact.
1638
1639 2007-01-30  Vladimir Krasnov  <vladimirk@mainsoft.com>
1640
1641         * HttpResponse.cs: fixed TARGET_J2EE part of Redirect for portlet
1642
1643 2007-01-30  Adar Wesley <adarw@mainsoft.com>
1644
1645         * VirtualPathUtility.cs: fixed exceptions thrown from Combine
1646         so they are compatible with MS.
1647
1648 2007-01-25  Marek Habersack  <grendello@gmail.com>
1649
1650         * HttpApplication.cs: Make sure that a specific culture is used
1651         when setting the current thread culture.
1652
1653 2007-01-21 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
1654
1655         * HttpServerUtility.cs: implement Execute/Transfer overloads that take
1656         an IHttpHandler. Still missing the documented check for page IsCallback.
1657         Also, on MS when i derive from Page for my IHttpHandler, it works fine,
1658         but if I just implement IHttpHandler, an exception is thrown. This needs
1659         to be researched but, by now, the IHttpHandler version works on mono
1660         and fails on MS.
1661
1662 2007-01-20  Miguel de Icaza  <miguel@novell.com>
1663
1664         * SiteMapNode.cs (GetExplicitResourceString): implement.
1665
1666         * HttpContext.cs (GetGlobalResourceObject): remove unused variable.
1667
1668         * StaticFileHandler.cs (ProcessRequest): remove unused variable.
1669
1670         * HttpApplication.cs (ProcessError): Remove unused variable. 
1671
1672         * HttpServerUtility.cs (Execute): Add new overload and rename
1673         parameter to match MS (as they are normative).
1674
1675 2007-01-17  Marek Habersack  <grendello@gmail.com>
1676
1677         * HttpApplicationFactory.cs: Implement code and framework to
1678         enable automatic application restarts on changes to folders/files
1679         in a generic way. Patch from Damien Churchill
1680         <damien.churchill@ukplc.net>, thanks!
1681         Make sure the top-level assemblies (App_Code, resources) are not
1682         referenced twice should a compilation error occur.
1683
1684 2007-01-16  Atsushi Enomoto  <atsushi@ximian.com>
1685
1686         * TraceData.cs : page could be null. Fixed bug #80480.
1687
1688 2007-01-15  Ilya Kharmatsky   <ilya -at- decode-systems.com>
1689
1690         * VirtualPathUtility.cs: fixed bugs in methods - GetDirectory and
1691         GetExtension, according to the VirtualPathUtilityTest
1692
1693 2007-01-15  Vladimir Krasnov  <vladimirk@mainsoft.com>
1694
1695         * SiteMapProvider.cs: fixed IsAccessibleToUser, true if
1696         SecurityTrimmingEnabled not enabled, true if Roles exists on node and
1697         rolename is '*'
1698
1699 2007-01-14  Eyal Alaluf  <eyala@mainsoft.com>
1700
1701         * HttpRequest.jvm.cs, HttpContext.jvm.cs: Added TARGET_J2EE specific files.
1702         * HttpContext.cs, HttpResponse.cs, HttpRequest.cs, HttpCookie.cs:
1703           Add J2EE Portal support for TARGET_J2EE.
1704
1705 2007-01-04  Vladimir Krasnov  <vladimirk@mainsoft.com>
1706
1707         * HttpRequest.cs: fixed IsLocal, should check all ip addresses of host
1708
1709 2007-01-05  Marek Habersack  <grendello@gmail.com>
1710
1711         * HttpApplicationFactory.cs: Use the new app resources compiler.
1712
1713         * HttpRuntime.cs: Use the new app resources compiler.
1714
1715         * HttpContext.cs: Reimplement the GetGlobalResourceObject
1716         methods, implement the GetLocalResourceObject methods.
1717
1718         * HttpResponse.cs: Implement the HeaderEncoding property.
1719
1720 2007-01-04  Andreia Gaita  <avidigal@novell.com>
1721
1722         * HttpRuntime.cs: Add check for NET_2_0 when initializing
1723         WebConfigurationManager, build failing on 1.1 profile
1724         
1725 2007-01-04  Vladimir Krasnov  <vladimirk@mainsoft.com>
1726
1727         * HttpApplicationFactory.cs, HttpRuntime.cs: WebConfigurationManager
1728         should be initializaed before any possible access to it
1729
1730 2007-01-04  Vladimir Krasnov  <vladimirk@mainsoft.com>
1731
1732         * HttpRequest.cs: fixed Path property, add call of
1733         Uri.UnescapeDataString in net_2_0
1734
1735 2007-01-04  Vladimir Krasnov  <vladimirk@mainsoft.com>
1736
1737         * HttpApplication.cs: fixed PreStart, should not set thread culture
1738         to invariant
1739
1740 2007-01-03  Vladimir Krasnov  <vladimirk@mainsoft.com>
1741
1742         * HttpRequest.cs: fixed jvm version of MakeInputStream, should not
1743         throw exception on zero content length
1744
1745 2007-01-03  Vladimir Krasnov  <vladimirk@mainsoft.com>
1746
1747         * SiteMap.cs, SiteMapNodeCollection.cs: TARGET_JVM of static members
1748
1749 2006-12-20  Marek Habersack  <grendello@gmail.com>
1750
1751         * HttpContext.cs: add internal setter for the Profile property.
1752
1753         * HttpApplicationFactory.cs: Added a shortcut version of
1754         InvokeSessionEnd for use from the 2.0 SessionState code.
1755
1756 2006-12-18  Vladimir Krasnov  <vladimirk@mainsoft.com>
1757
1758         * HttpRequest.cs: fixed Path property, returns unescaped url
1759
1760 2006-12-16  Marek Habersack  <grendello@gmail.com>
1761
1762         * HttpRequest.cs: Fix for http exception during first visit to an
1763         application when the visit path is not the app's virtual root.
1764
1765 2006-12-12 Igor Zelmanovich <igorz@mainsoft.com>
1766
1767         * SiteMapProvider.cs.cs:
1768         * XmlSiteMapProvider.cs: fixed: because more then one node with empty url
1769         is allowed unique key is generated for each node.               
1770
1771 2006-12-12 Igor Zelmanovich <igorz@mainsoft.com>
1772
1773         * SiteMapProvider.cs.cs: fixed: IsAccessibleToUser resolvs relative url.
1774         * StaticSiteMapProvider.cs: fixed: RemoveNode   
1775
1776 2006-12-12 Igor Zelmanovich <igorz@mainsoft.com>
1777
1778         * VirtualPathUtility.cs: fixed: Combine(), ToAbsolute() methods.
1779
1780 2006-12-12 Igor Zelmanovich <igorz@mainsoft.com>
1781
1782         * VirtualPathUtility.cs: fixed: IsAppRelative() method.
1783
1784 2006-12-07  Vladimir Krasnov  <vladimirk@mainsoft.com>
1785
1786         * BrowserCapabilities.cs: fixed MSDomVersion property
1787
1788 2006-12-05 Igor Zelmanovich <igorz@mainsoft.com>
1789
1790         * VirtualPathUtility.cs: fixed: ToAbsolute() method.
1791
1792 2006-12-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1793
1794         * HttpRequest.cs: call MapPath on the HttpWorkerRequest so that if
1795         FilePath is changed we get the new physical path, not the one of the
1796         original request. Fixes bug #80152.
1797
1798 2006-12-03 Igor Zelmanovich <igorz@mainsoft.com>
1799
1800         * HttpWriter.cs: reverted r38835.
1801
1802 2006-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1803
1804         * HttpWriter.cs: remove unused WriteBytes method.
1805
1806 2006-11-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1807
1808         * HttpRequest.cs: physical path comes from GetFilePathTranslated to
1809         avoid trimming in HttpRequest.MapPath.
1810
1811 2006-11-29  Marek Habersack  <grendello@gmail.com>
1812
1813         * HttpApplication.cs: Make use of the handler stack implemented
1814         in HttpContext.
1815
1816         * HttpCacheVaryByHeaders.cs: Optionally omit the vary:* header
1817         value in the 2.0 profile.
1818
1819         * HttpServerUtility.cs: Make use of the handler stack implemented
1820         in HttpContext.
1821         Implemented the UrlToken{Encode,Decode} 2.0 methods.
1822
1823         * HttpResponse.cs: Implemented the IsRequestBeingRedirected
1824         property.
1825
1826         * HttpContext.cs: Implemented the CurrentHandler and PreviousHandler
1827         methods, together with helper functions to handle the handler
1828         stack.
1829         GetSection(string) should be present only in the 2.0 profile.
1830
1831         * HttpCachePolicy.cs: implement the SetNoServerCaching,
1832         SetNoStore, SetNoTransforms, SetValidUntilExpires and
1833         SetOmitVaryStar methods.
1834         Added code to set the no-store and no-transform options of the
1835         Cache-Control header.
1836
1837 2006-11-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1838
1839         * HttpServerUtility.cs: don't prepend extra '?' when the original url
1840         already has a query string. Fixes bug #80042.
1841
1842 2006-11-24  Miguel de Icaza  <miguel@novell.com>
1843
1844         * HttpApplicationFactory.cs (InitType): Also look for "Web.Config"
1845         casing here.
1846
1847 2006-11-20  Marek Habersack  <grendello@gmail.com>
1848
1849         * HttpApplication.cs: Added support for automatic detection of
1850         user's preferred language.
1851
1852 2006-11-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1853
1854         * HttpApplication.cs: don't leak the directory name for non-local
1855         connections.
1856
1857 2006-11-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1858
1859         * CapabilitiesLoader.cs: made the hasstable that contains the properties
1860         for the brower case insensitive. Fixes bug #79795.
1861
1862 2006-11-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1863
1864         * HttpResponse.cs: fix typo that prevented Server.Execute from restoring
1865         the initial output stream used. Closes bug #79916.
1866
1867 2006-11-12  Marek Habersack  <grendello@gmail.com>
1868
1869         * HttpContext.cs: Implemented the 2.0 RewritePath overloads.
1870
1871 2006-11-08  Marek Habersack  <grendello@gmail.com>
1872
1873         * HttpRuntime.cs: Moved the resource compiler results handling to
1874         the resource compiler itself.
1875
1876         * HttpApplicationFactory.cs: Add invocation of the App_Code
1877         compiler. Moved the resource compiler results handling to the
1878         resource compiler itself. Removed compilation of the local
1879         resources from here - it should be done only when a request
1880         determines that the App_LocalResources directory exists.
1881         
1882
1883 2006-11-07  Andrew Skiba  <andrews@mainsoft.com>
1884
1885         * HttpRuntime.cs: TARGET_JVM ifdef
1886
1887 2006-11-05  Andrew Skiba  <andrews@mainsoft.com>
1888
1889         * SiteMapProvider.cs: don't iterate through Roles when they are null.
1890
1891 2006-11-05  Vladimir Krasnov  <vladimirk@mainsoft.com>
1892
1893         * HttpContext.cs: implemented Profile property
1894
1895 2006-11-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1896
1897         * HttpApplication.cs: the unexpected 'tick' exceptions can be an abort
1898         exception due to timeout or end of the request.
1899
1900 2006-10-18  Marek Habersack  <grendello@gmail.com>
1901
1902         * HttpRuntime.cs: add support for compilation of local resources
1903         at the start of request.
1904
1905         * HttpContext.cs: implement the GetGlobalResourceObject APIs
1906
1907         * HttpApplicationFactory.cs: include the bootstrap code for the
1908         global/local resources compiler.
1909
1910 2006-10-09  Marek Habersack  <grendello@gmail.com>
1911
1912         * HttpApplication.cs: change the pipeline order for ASP.NET 2.0 to
1913         comply with the Microsoft documentation.
1914
1915 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1916
1917         * HttpApplication.cs: this makes the test run successfully. Still need
1918         to figure out why that is null.
1919
1920 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1921
1922         * HttpApplication.cs: band-aid patch to help debugging hang running 2.0
1923         tests.
1924
1925 2006-09-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1926
1927         * HttpServerUtility.cs: 1.1 Execute(s) preserves the query string.
1928         Thanks to Hubert Fongarnand. Fixes bug #79506.
1929
1930 2006-09-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1931
1932         * QueueManager.cs: if disposed, always return null for next request.
1933         * HttpRuntime.cs: dispose the queue manager when shutting down the
1934         domain. This will close pending requests with a 503.
1935         * HttpApplication.cs: release the handler before marking the request
1936         as completed. If in PipelineDone context is null, use
1937         HttpContext.Current. Fixes some of those "Tick detected an unhandled
1938         exception" errors printed out.
1939
1940 2006-09-11  Andrew Skiba <andrews@mainsoft.com>
1941
1942         * XmlSiteMapProvider.cs: ifdef TARGET_JVM
1943
1944 2006-09-11  Vladimir Krasnov  <vladimirk@mainsoft.com>
1945
1946         * HttpWriter.cs: fixed WriteLine to work correctly in utf-16 encoding
1947
1948 2006-09-08  Robert Jordan  <robertj@gmx.net>
1949
1950         * TraceData.cs: fixed NRE if `sizes' is null, which may happen
1951         if a page was unable to save its viewstate and size.
1952
1953 2006-09-07 Andrew Skiba <andrews@mainsoft.com>
1954
1955         * HttpApplicationFactory.cs: ifdef the previous fix with TARGET_JVM to
1956         pass compilation.
1957
1958 2006-09-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1959
1960         * HttpApplicationFactory.cs: watch web.config too. Fixes bug #78356.
1961
1962 2006-09-05  Konstantin Triger <kostat@mainsoft.com>
1963
1964         * SiteMapProvider.cs: consider authorization section for access decision.
1965
1966 2006-09-04 Igor Zelmanovich <igorz@mainsoft.com>
1967
1968         * HttpUtility.cs: fixed UrlPathEncode method.
1969
1970 2006-08-31      Boris Kirzner <borisk@mainsoft.com>
1971
1972         * VirtualPathUtility.cs : pass parameters in correct order.
1973
1974 2006-08-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1975
1976         * HttpApplicationFactory.cs: handle the 'renamed' event too.
1977
1978 2006-08-08  Vladimir Krasnov  <vladimirk@mainsoft.com>
1979
1980         * HttpApplication.cs: fixed BeginProcessRequest, TARGET_JVM part
1981         merged
1982
1983 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1984
1985         * HttpApplication.cs: don't leak local path names when a file is not
1986         found.
1987
1988 2006-06-21 Konstantin Triger <kostat@mainsoft.com>
1989
1990         * XmlSiteMapProvider.cs: if the url is relative, make it relative to the
1991                 context root.
1992
1993 2006-06-07 Juraj Skripsky <js@hotfeet.ch>
1994
1995         * HttpException.cs (GetHtmlizedErrorMessage): Beautify compilation error
1996         page by showing multiple errors on separate lines.
1997
1998 2006-06-05 Juraj Skripsky <js@hotfeet.ch>
1999
2000         * HttpRequest.cs: simplify code around uri_builder (and rename 
2001         to url_components). Move storage of query_string into 
2002         uri_builder.Query and initialize it lazily using 
2003         worker_request.GetQueryStringRawBytes() or GetQueryString().
2004         (QueryString): Use HttpUtility.ParseQueryString instead of 
2005         duplicating its functionality.
2006
2007 2006-06-05 Juraj Skripsky <js@hotfeet.ch>
2008
2009         * HttpUtility.cs (ParseQueryString): move core of
2010         ParseQueryString into internal method to make it available to 
2011         HttpRequest.
2012
2013 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2014
2015         * HttpApplication.cs: assign the context when run from a thread not in
2016         the threadpool. Patch by Andrew Skiba. Fixes bug #78583.
2017
2018 2006-05-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2019
2020         * HttpApplication.cs: context.Handler does not change for
2021         HttpServerUtility.Execute, so moved setting it into the pipeline instead
2022         of GetHandler.
2023
2024 2006-05-17  Kazuki Oikawa  <kazuki@panicode.com>
2025
2026         * HttpUtility.cs: implemented ParseQueryString
2027
2028 2006-05-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2029
2030         * HttpUtility.cs: get rid of TryParseHexa.
2031
2032 2006-04-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2033
2034         * HttpApplicationFactory.cs: make sure that the application start event
2035         is run before any request is processed.
2036
2037 2006-04-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2038
2039         * HttpServerUtility.cs: don't reset the query string in Execute() when
2040         the path does not contain it and we have one from the previous request.
2041         Fixes bug #78177.
2042
2043 2006-04-20 Andrew Skiba <andrews@mainsoft.com>
2044
2045         * SiteMapNode.cs: fix few null reference exceptions
2046
2047 2006-04-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2048
2049         * HttpResponse.cs:
2050         (TransmitFile): make sure we can read the file before buffering it.
2051
2052 2006-04-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2053
2054         * HttpApplicationFactory.cs: don't fail on events that are not
2055         EventHandlers. Patch by Matthew Metnetsky.
2056
2057 2006-04-11 Andrew Skiba <andrews@mainsoft.com>
2058
2059         * HttpRequest.cs: remove code duplication (see UrlUtils.Combine)
2060
2061 2006-04-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2062
2063         * HttpUtility.cs: allow "%%" as a escape for '%' and ignore invalid
2064         hexadecimal characters. Based on a patch by Vladimir Krasnov.
2065
2066 2006-04-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2067
2068         * HttpWriter.cs: only keep the byte buffer around if its size is less
2069         than or equals to 32K.
2070
2071 2006-04-08  Miguel de Icaza  <miguel@novell.com>
2072
2073         * HttpWriter.cs (Write): Added missing check for null string as
2074         something is now calling it like that. 
2075
2076 2006-03-27 Joshua Tauberer <tauberer@for.net>
2077
2078         * HttpWriter.cs: Avoid creation of a byte[] on each Write()
2079           by reusing and resizing a private array.
2080
2081 2006-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2082
2083         * HttpRequest.cs: the field content_length can be < 0 and then we try to
2084         read when there's no data and block.
2085
2086 2006-04-05 Andrew Skiba <andrews@mainsoft.com>
2087
2088         * HttpUtility: UrlEncode and UrlEncodeUnicode logic unified, behaviour
2089         fixed to match dotnet and http://rfc.net/rfc1738.html
2090
2091 2006-03-30 Konstantin Triger <kostat@mainsoft.com>
2092
2093         * HttpApplicationFactory.cs: refactoring: remove static modifier from session_end field.
2094         Does not check the behavior as HttpApplicationFactory is a singleton.
2095
2096 2006-03-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2097
2098         * HttpUtility.cs: UrlDecode does not throw if an hexadecimal sequence
2099         fails to parse as an integer. Fixes bug #77931.
2100
2101 2006-03-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2102
2103         * HttpResponse.cs: more fixes for CacheControl: MS allows to set it to
2104         null and "" and the getter value does not completely depend on Cache.
2105
2106         * HttpRequest.cs: fail validating the request input if there's a control
2107         character after a '<'. Fixes XSS_Null test.
2108
2109         All System.Web tests pass again.
2110 2006-03-22  Robert Jordan  <robertj@gmx.net>
2111
2112         * HttpCachePolicy.cs: fix the Cache-control header. Fixes bug #77826.
2113
2114 2006-03-22  Chris Toshok  <toshok@ximian.com>
2115
2116         * HttpApplication.cs: fix typo - AuthenticateRequest =>
2117         PostAuthenticateRequest.
2118
2119 2006-03-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2120
2121         * ChangeLog:
2122         * HttpRequest.cs: revert part of r58229.
2123
2124 2006-03-21  Vladimir Krasnov  <vladimirk@mainsoft.com>
2125
2126         * ServerVariablesCollection.cs: fixed "URL" variable, it should not
2127         return path info
2128
2129 2006-03-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2130
2131         * HttpRequest.cs:
2132         (CheckString): style and don't index the string twice per iteration.
2133
2134 2006-03-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2135
2136         * TempFileStream.cs: a FileStream that removes the file once
2137         it is disposed.
2138         * HttpRequest.cs: support for writing request data to on-disk
2139         files if the request is longer than the threshold specified in the
2140         configuration files. In mono this will work for 1.x and 2.0, while with
2141         MS this only works for 2.0.
2142
2143 2006-03-18  Robert Jordan  <robertj@gmx.net>
2144
2145         * HttpCachePolicy.cs: expose the validation callbacks.
2146         Fixes bug #77825.
2147
2148 2006-03-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2149
2150         * HttpApplication.cs: fix upper bound when iterating through the module
2151         collection.
2152
2153 2006-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2154
2155         * HttpRequest.cs: use the provided content encoding to decode the file
2156         name. Fixes bug #77714.
2157
2158 2006-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2159
2160         * HttpResponse.cs: allow setting a Cache-Control header through
2161         AppendHeader. Fixes bug #77775.
2162
2163 2006-03-15  Chris Toshok  <toshok@ximian.com>
2164
2165         * XmlSiteMapProvider.cs (RemoveProvider): oops, no override.
2166
2167         * StaticSiteMapProvider.cs (AddNode): call MapUrl.
2168         (FindSiteMapNode): same.
2169
2170 2006-03-15  Chris Toshok  <toshok@ximian.com>
2171
2172         * SiteMapProvider.cs (ReturnNodeIfAccessible): new function,
2173         either return the node or throw InvalidOperationException.
2174         (get_RootNode): use ReturnNodeIfAccessible.
2175         (IsAccessibleToUser): flesh this out a bit, and add comments on
2176         how the rest of the implementation should be written.
2177         (FindSiteMapNodeFromKey): implement to match MS behavior, docs be
2178         damned.
2179
2180         * XmlSiteMapProvider.cs: corcompare work.
2181
2182         * StaticSiteMapProvider.cs (AddNode): Add a check to see if node
2183         == RootNode.  Not sure if this is actually correct, but it's
2184         required given our implementation of XmlSiteMapProvider.  without
2185         this check, we end up assigning RootNode.ParentNode == RootNode,
2186         which makes for an infinite loop when we traverse up the tree.
2187
2188 2006-03-15  Vladimir Krasnov  <vladimirk@mainsoft.com>
2189
2190         * HttpRequest.cs: fixed MakeInputStream method under TARGET_JVM,
2191         fixed if content lenght value is less that byte received
2192
2193 2006-03-10  Chris Toshok  <toshok@ximian.com>
2194
2195         * StaticSiteMapProvider.cs (UrlToNode): this entire file is #if
2196         NET_2_0, no need to embed another #if NET_2_0.
2197
2198         * SiteMapProvider.cs (AddNode): throw NotImplementedException.
2199         (FindSiteMapNode): with null context, return null.  don't throw
2200         ArgumentNullException.
2201         (RemoveNode): throw NotImplementedException.
2202         (IsAccessibleToUser): check arguments to make test pass.  still
2203         lacking the method's actual functionality.
2204         (ResourceKey): add missing property.
2205
2206 2006-03-10  Chris Toshok  <toshok@ximian.com>
2207
2208         * HttpRequest.cs (CheckString): add back in the check for \xff1c
2209         that i took out.  oops.
2210
2211 2006-03-10  Chris Toshok  <toshok@ximian.com>
2212
2213         * HttpRequest.cs (CheckString): implement as described in
2214         Shackow's "Professional ASP.NET 2.0 Security, Membership, and Role
2215         Management", page 310.
2216
2217 2006-03-08  Chris Toshok  <toshok@ximian.com>
2218
2219         * SiteMap.cs: clean this up a bunch.  use the SiteMapSection to
2220         initialize the provider collection, and don't add a provider.
2221         web.config handles that for us.  Also, don't always return true
2222         from get_Enabled.
2223
2224 2006-02-28  Chris Toshok  <toshok@ximian.com>
2225
2226         * HttpCookieMode.cs: corcompare work.
2227
2228         * ProcessShutdownReason.cs: same.
2229
2230         * SiteMapNodeCollection.cs: same.
2231
2232         * SiteMapNode.cs: same.
2233
2234         * SiteMapProvider.cs: same.
2235
2236         * HttpCacheRevalidation.cs: same.
2237
2238         * HttpCacheability.cs: same.
2239
2240         * StaticSiteMapProvider.cs: same.
2241
2242         * HttpValidationStatus.cs: same.
2243         
2244 2006-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2245
2246         * DefaultHttpHandler.cs: New file.
2247
2248 2006-02-01  Chris Toshok  <toshok@ximian.com>
2249
2250         * SiteMap.cs: use GetSection instead of GetWebApplicationSection.
2251
2252 2006-02-01  Chris Toshok  <toshok@ximian.com>
2253
2254         * HttpApplication.cs: CONFIGURATION_2_0 => NET_2_0, and use
2255         GetSection instead of GetWebApplicationSection.
2256
2257         * HttpApplication.jvm.cs: same.
2258         
2259         * HttpApplicationFactory.cs: same.
2260
2261         * HttpContext.cs: same.
2262
2263         * CapabilitiesLoader.cs: same.
2264
2265         * QueueManager.cs: same.
2266
2267         * HttpRuntime.cs: same.
2268
2269         * TraceManager.cs: same.
2270
2271         * HttpRequest.cs: same.
2272         
2273 2006-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2274
2275         * HttpApplication.cs: keep any exception that happens during
2276         initialization.
2277
2278 2006-01-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2279
2280         * HttpDataTransferMode.cs: Removed file.
2281         * HttpRequestPriority.cs: Removed file.
2282         * ApplicationShutdownReason.cs:
2283         * SiteMap.cs:
2284         * HttpRuntime.cs:
2285         * HttpApplication.cs: minor class status fixes.
2286
2287 2006-01-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2288
2289         * VirtualPathUtility.cs: done with all the not implemented methods.
2290
2291 2006-01-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2292
2293         * HttpResponse.cs: use UInt64.Parse for content length. In AppendHeader,
2294         set cache_control through the property to update the cachebility
2295         accordingly. When using the cached headers, don't add again all the
2296         headers to that collection.
2297         * HttpCacheVaryByParams.cs: if there are no params, return null.
2298         Otherwise we get an empty 'Vary' header.
2299
2300 2006-01-25  Chris Toshok  <toshok@ximian.com>
2301
2302         * HttpApplication.cs (Start): wrap InitOnce in a try/catch block,
2303         and if there's a configuration error, output it and end things
2304         immediately.
2305
2306 2006-01-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2307
2308         * HttpRequest.cs: fixed the file path when RewritePath is used. Also
2309         add the PathInfo to the Url. Fixes bug #77291.
2310
2311 2006-01-22  Chris Toshok  <toshok@ximian.com>
2312
2313         * HttpRequest.cs (ReadBoundary): remove two unused variables to
2314         quiet mcs.
2315         (IsBoundary): remove unused method.
2316
2317         * MimeTypes.cs (.cctor): use a 2.0 friendly form of the Hashtable
2318         ctor to silence a warning.
2319
2320         * HttpCacheVaryByHeaders.cs (.ctor): same.
2321
2322         * HttpCacheVaryByParams.cs (.ctor): same.
2323
2324         * StaticSiteMapProvider.cs (UrlToNode): same.
2325
2326 2006-01-22  Konstantin Triger <kostat@mainsoft.com>
2327
2328         * HttpWorkerRequest.cs: ensure case insensitivity in header search.
2329
2330 2006-01-19  Konstantin Triger <kostat@mainsoft.com>
2331
2332         * HttpApplication.jvm.cs: merge HttpApplication.cs changes.
2333
2334 2006-01-17  Chris Toshok  <toshok@ximian.com>
2335
2336         * CapabilitiesLoader.cs (Init): use WebConfigurationManager in the
2337         CONFIGURATION_2_0 case.
2338
2339         * HttpRuntime.cs (MachineConfigurationDirectory): same.
2340
2341 2006-01-16  Chris Toshok  <toshok@ximian.com>
2342
2343         * HttpApplicationFactory.cs: call WebConfigurationManager.Init in
2344         the CONFIGURATION_2_0 case.
2345
2346 2006-01-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2347
2348         * HttpWriter.cs: made Write (char) less memory hungry. Thanks to Mike
2349         Glenn for pointing this out.
2350
2351 2006-01-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2352
2353         * HttpApplicationFactory.cs: fix condition for ContextAvailable.
2354
2355 2006-01-11  Vladimir Krasnov  <vladimirk@mainsoft.com>
2356
2357         * HttpResponse.cs: removed TARGET_JVM block from End
2358         * GetJavaTextReader: Merged TARGET_JVM block from LoadFile
2359         to GetJavaTextReader
2360
2361 2006-01-11  Vladimir Krasnov  <vladimirk@mainsoft.com>
2362
2363         * HttpRequest.cs: removed TARGET_JVM block from MapPath
2364
2365 2006-01-11  Vladimir Krasnov  <vladimirk@mainsoft.com>
2366
2367         * HttpRequest.cs: little fix in MapPath(), virtualPath.Replace
2368         return value wasnt stored.
2369
2370 2006-01-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2371
2372         * HttpResponse.cs: typo in comment.
2373
2374         * HttpApplicationFactory.cs:
2375         * HttpApplication.cs: don't discard the application used for running the
2376         Application_Start event to allow for Redirect/Transfer to be used. Fail
2377         to get the request/response from the application object as MS does (it
2378         can still be retrieved through HttpContext.Current.blah). Fixes
2379         bug #77162.
2380
2381 2006-01-09  Vladimir Krasnov <vladimirk@mainsoft.com>
2382
2383         * CapabilitiesLoader.cs: Merged TARGET_JVM parts in LoadFile
2384         from /main/9
2385         * HttpException.cs: Merged TARGET_JVM parts in GetHtmlizedErrorMessage
2386         from /main/13
2387         * HttpRequest.cs: Merged TARGET_JVM parts in MapPath from /main/29
2388         * HttpResponse.cs: Merged TARGET_JVM parts in End() from /main/30
2389         * StaticFileHandler.cs: Merged TARGET_JVM parts in ProcessRequest
2390         from /main/7
2391
2392 2006-01-08  Konstantin Triger <kostat@mainsoft.com>
2393
2394         * BrowserCapabilities.cs, HttpBrowserCapabilities.cs,
2395         HttpResponseStream.cs: TARGET_JVM changes to let the compilation
2396         pass with csc 1.1.
2397
2398 2006-01-04  Chris Toshok  <toshok@ximian.com>
2399
2400         * HttpContext.cs (IsCustomErrorEnabled): add CONFIGURATION_2_0
2401         code.  use a nasty 'using' hack to map the 2.0 CustomErrorsMode to
2402         the 1.x CustomErrorMode name.
2403         (IsDebuggingEnabled): add CONFIGURATION_2_0 code.
2404         (ConfigTimeout): add CONFIGURATION_2_0 code.
2405
2406         * HttpRequest.cs (MakeInputStream): add CONFIGURATION_2_0 code.
2407
2408         * HttpApplication.cs (RedirectCustomError): add CONFIGURATION_2_0
2409         code.
2410
2411         * SiteMap.c (Init): use
2412         WebConfigurationManager.GetWebApplicationSection.
2413
2414 2005-12-21  Miguel de Icaza  <miguel@novell.com>
2415
2416         * HttpUtility.cs (UrlEncodeUnicode): The generated encoding of
2417         unicode values must be in %XXXX format, not %XX sometimes.
2418
2419 2005-12-08 Robert Jordan  <robertj@gmx.net> 
2420
2421         * MimeTypes.cs: added entry for "jpg".
2422
2423 2005-12-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2424
2425         * HttpRequest.cs: only read up to content-length when provided. Patch
2426         by Peter Teichman.
2427
2428 2005-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2429
2430         * HttpCookie.cs: fixed the set_Secure. Closes bug #76906.
2431
2432 2005-11-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2433
2434         * HttpResponseStream.cs: flush the filter stream before closing.
2435         Patch by Geir Bergum that fixes bug #76753.
2436
2437 2005-11-28  Chris Toshok  <toshok@ximian.com>
2438
2439         * HttpContext.cs (Profile): remove the #if false from around this,
2440         as we now have the ProfileBase type.
2441         (GetConfig): add CONFIGURATION_2_0 version.
2442         (GetSection): add CONFIGURATION_2_0 version.
2443
2444 2005-11-28  Chris Toshok  <toshok@ximian.com>
2445
2446         * TraceManager.cs (..ctor): CONFIGURATION_2_0 work.
2447
2448         * QueueManager.cs (..ctor): CONFIGURATION_2_0 work.
2449
2450         * HttpRequest.cs (AnonymousID): add 2.0 property.
2451         (MakeInputStream): CONFIGURATION_2_0 work.
2452
2453         * HttpApplication.cs (InitOnce): change around the
2454         CONFIGURATION_2_0 stuff since we need additional Culture foo for
2455         it.
2456
2457 2005-11-27  Chris Toshok  <toshok@ximian.com>
2458
2459         * HttpApplication.cs (InitOnce): add Configuration_2.0 code.
2460         (GetHandler): same.
2461
2462 2005-11-26  Miguel de Icaza  <miguel@novell.com>
2463
2464         * HttpResponseStream.cs: Do not try to write zero bytes.
2465
2466 2005-11-24  Miguel de Icaza  <miguel@novell.com>
2467
2468         * WebROCollection.cs: Do not add an empty "=" to the query string
2469         if the key is empty or null.
2470
2471 2005-11-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2472
2473         * WebROCollection.cs: override ToString and generate a query string from
2474         the key/value pairs. Fixes bug #76779.
2475
2476 2005-11-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2477
2478         * HttpServerUtility.cs: prevent possible nullref in GetLastError().
2479
2480 2005-11-07  Jason Diamond  <jason@diamond.name>
2481
2482         * HttpRequest.cs: Don't throw exception when Content-Length doesn't
2483         match length of POSTed data. Also, allow charset parameter on
2484         Content-Type header when type is "application/x-www-form-urlencoded".
2485
2486 2005-11-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2487
2488         * WebROCollection.cs: add an ID for the collection. Page needs it.
2489
2490 2005-11-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2491
2492         * HttpRequest.cs: no need to allocate the buffer when all the content
2493         is preloaded.
2494
2495 2005-11-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2496
2497         * HttpApplication.cs: ignore TAE in ProcesssError. The Error event might
2498         redirect or transfer and that causes a TAE to be thrown. Fixes
2499         bug #76573.
2500
2501 2005-11-01  Chris Toshok  <toshok@ximian.com>
2502
2503         * VirtualPathUtility.cs: new (partial implementation) to get some
2504         MS provider examples compiling.
2505
2506 2005-10-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2507
2508         * HttpContext.cs: added a new internal overload for ClearError.
2509
2510 2005-10-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2511
2512         * HttpRuntime.cs: invoke callbacks on private items in the cache before 
2513         calling disposing the app. factory. This way we get notifications of
2514         removal for all sessions stored in the cache (InProc only).
2515
2516 2005-10-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2517
2518         * HttpResponseStream.cs: reworked buffering so that adjacents blocks are
2519         written at once. Also fix bug #76460.
2520
2521 2005-10-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2522
2523         * HttpResponseStream.cs: when allocating a chunk larger than the
2524         default chunk size, mark all the blocks as taken. Fixes bug
2525         #76452.
2526
2527 2005-10-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2528
2529         * HttpResponse.cs: use HaveFilter instead of Filter.
2530         * HttpResponseStream.cs: allocate chunks of the requested size
2531         when it's > 32KB. Fixes bug #76460.
2532
2533 2005-10-14  Sebastien Pouliot  <sebastien@ximian.com> 
2534
2535         * ServerVariablesCollection.cs: Added a demand for 
2536         SerializationFormatter on GetObjectData method (even if it's not 
2537         really required in this case as it remove warnings from gendarme.
2538
2539 2005-10-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2540
2541         * HttpResponse.cs:
2542         * HttpRequest.cs: buglets in error checking in Filter.
2543
2544 2005-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2545
2546         * OutputFilterStream.cs: proxy class for response filters.
2547         * HttpResponse.cs: moved all the actual write operations into the
2548         response stream. Handle response filtering. When caching, get the
2549         actual length of the data, not the buffer length.
2550         * HttpApplication.cs: if there's no error, invoke the filters before
2551         updating the request cache.
2552         * HttpResponseStream.cs: new Filter property. SendChunkSize is moved
2553         here and now supports writing the final chunk. New method ApplyFilter
2554         that filters the existing buckets and replaces them with the filtered
2555         ones. Modified Write to deal with buffering and filtering.
2556
2557 2005-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2558
2559         * HttpResponseStream.cs: allow for writes of more than 32K at once.
2560
2561 2005-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2562
2563         * InputFilterStream.cs proxy stream for use by filters.
2564         * HttpRequest.cs: implement input filtering.
2565
2566 2005-10-02 Eyal Alaluf <eyala@mainsoft.com>
2567         * HttpApplication.jvm.cs - Workaround for use of yield in
2568         HttpApplication.cs HttpRuntime.cs: AppDomain.Unload is not supported
2569         * under TARGET_J2EE
2570
2571 2005-09-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2572
2573         * HttpResponseStream.cs: remove dead code.
2574
2575 2005-09-29  Sebastien Pouliot  <sebastien@ximian.com> 
2576
2577         * HttpClientCertificate.cs: Remove last TODO on IsValid. This now 
2578         works when using XSP. Now use flags to determine valid/presence.
2579
2580 2005-09-26  Chris Toshok  <toshok@ximian.com>
2581
2582         * HttpApplicationFactory.cs (OnAppFileChanged): add null checks
2583         for bin_watcher and app_file_watcher so we don't get NRE's here.
2584
2585 2005-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2586
2587         * BrowserCapabilities.cs: don't rely on the win32 attribute to be there.
2588         Just use the platform to determine whether Win32 is true or not. Fixes
2589         bug #74777.
2590
2591 2005-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2592
2593         * HttpApplication.cs: fixed typo when setting UI culture. Closes bug
2594         #76189.
2595
2596 2005-09-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2597
2598         * HttpRequest.cs: new SetFilePath() that does not conflict with
2599         SetCurrentExePath. Now when transfering from a page to another,
2600         CurrentExecutionFilePath and FilePath are correct.
2601
2602 2005-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2603
2604         * TraceContext.cs: add new method to store size of controls.
2605         * TraceData.cs: render control size.
2606         * HttpResponse.cs: new internal method to get the number of bytes of
2607         buffered output.
2608         * HttpResponseStream.cs: added Length property to the Buckets and new
2609         GetTotalLength.
2610
2611 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2612
2613         * TraceData.cs: we have to change the method of getting a control render
2614         size. MS does not do this or otherwise would run into the same bug
2615         (#76051) that this patch fixes. This is temporarily setting the size
2616         to 0.
2617
2618 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2619
2620         * HttpResponseStream.cs: implemented Send(stream) for files. Fixes bug
2621         #76145.
2622
2623 2005-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2624
2625         * HttpRuntime.cs: catch errors when compiling global.asax and
2626         initializing the application. Fixes bug #76090.
2627
2628 2005-09-14  Sebastien Pouliot  <sebastien@ximian.com> 
2629  
2630         * BrowserCapabilities.cs: Fixed changes (in 2.0) with versions. Fixed
2631         compare with "True" (culture and case sensitivity).
2632         * HttpApplicationState.cs: Added LinkDemand for Minimal. Use the 
2633         internal HttpStaticObjectsCollection ctor to avoid the UnmanagedCode
2634         demand.
2635         * HttpContext.cs: Added LinkDemand for Minimal. Added 2.0 properties
2636         and methods to test CAS on them.
2637         * HttpRequest.cs: Added LinkDemand for Minimal. Ensure we return 
2638         proper values when worker_request is null.
2639         * HttpResponse.cs: Added LinkDemand for Minimal. Ensure we return 
2640         proper values when context or WorkerRequest is null. Added 2.0 
2641         properties and methods to test CAS on them.
2642         * HttpRuntime.cs: Added LinkDemand for Minimal. Added PathDiscovery 
2643         demands for properties returning directories. Added demand for High 
2644         level on AppDomainAppId and AppDomainId properties, Low level on 
2645         IsOnUNCShare, Medium level on ProcessRequest and a demand for 
2646         UnmanagedCode on UnloadAppDomain method. Constructor also has a 
2647         UnmanagedCode demand for 1.x.
2648         * HttpStaticObjectsCollection.cs: Added LinkDemand for Minimal. Added
2649         a UnmanagedCode demand to public ctor. Added internal ctor without the
2650         demand. Changed Serialize and Deserialize methods to public for 2.0.
2651
2652 2005-09-14  Sebastien Pouliot  <sebastien@ximian.com>
2653
2654         * HttpWorkerRequest.cs: Removed TODO for 2.0 APIs and return the 
2655         default values for them.
2656
2657 2005-09-13  Sebastien Pouliot  <sebastien@ximian.com>
2658
2659         * HttpApplication.cs: : Added LinkDemand and InheritanceDemand (class)
2660         for Minimal. Changed AssemblyLocation to a property (so it doesn't 
2661         require special permission, PathDiscovery) to create an instance. 
2662         Protected Modules property with a Demand for High level. Added some 
2663         missing HttpException for null context.
2664         * HttpServerUtility.cs: Added LinkDemand for Minimal. Added demands 
2665         for UnmanagedCode on all CreateObject* methods. Added demand for 
2666         Medium level on MachineName and ScriptTimeout properties. Added new
2667         overloaded Transfer method (2.0) to test CAS on it.
2668         * HttpUtility.cs: Added LinkDemand for Minimal. Added [Obsolete] to 
2669         ctor (2.0). Changed some return values when 'count' is 0. Added 
2670         ParseQueryString (overload) methods for 2.0 (to enabled CAS testing on
2671         them).
2672         * HttpWorkerRequest.cs: Added LinkDemand and InheritanceDemand (class)
2673         for Minimal. Added RequestTraceIdentifier and RootWebConfigPath (2.0) 
2674         properties, GetPreloadedEntityBody, GetPreloadedEntityBodyLength, 
2675         GetTotalEntityBodyLength and ReadEntityBody (2.0) methods to test CAS 
2676         on them. Fixed SendResponseFromMemory to ignore IntPtr.Zero (used in 
2677         tests without failures).
2678         * ServerVariablesCollection.cs: Fixed loadServerVariablesCollection 
2679         when HttpWorkerRequest is null.
2680         * TraceContext.cs: Added LinkDemand for Minimal. Fixed default Mode 
2681         (SortByTime). Added new (2.0) TraceFinished event to test CAS on it.
2682
2683 2005-09-13  Sebastien Pouliot  <sebastien@ximian.com> 
2684  
2685         * HttpBrowserCapabilities.cs: Added LinkDemand and InheritanceDemand 
2686         (class) for Minimal. Note that current MCS has problem compiling 
2687         security attributes on partial class (bug #75969).
2688         * HttpCachePolicy.cs: Added LinkDemand for Minimal. Added 2.0 methods
2689         (stub) to enable CAS tests on them.
2690         * HttpCacheVaryByHeaders.cs: Added LinkDemand for Minimal.
2691         * HttpCacheVaryByParams.cs: Added LinkDemand for Minimal.
2692         * HttpClientCertificate.cs: Added LinkDemand and InheritanceDemand 
2693         (class) for Minimal.
2694         * HttpCookie.cs: Added LinkDemand for Minimal.
2695         * HttpCookieCollection.cs: Added LinkDemand for Minimal.
2696         * HttpFileCollection.cs: Added LinkDemand for Minimal.
2697         * HttpModuleCollection.cs: Added LinkDemand for Minimal.
2698         * HttpPostedFile.cs: Added LinkDemand for Minimal.
2699         * HttpRequestPriority.cs: Fix enum values.
2700         * HttpWriter.cs: Added LinkDemand for Minimal.
2701
2702 2005-09-13  Sebastien Pouliot  <sebastien@ximian.com>
2703
2704         * ProcessInfo.cs: Added LinkDemand and InheritanceDemand (class) for
2705         Minimal.
2706         * ProcessModelInfo.cs: Added LinkDemand and InheritanceDemand (class)
2707         for Minimal. Methods GetCurrentProcessInfo and GetHistory are also
2708         protected by Demand for High level.
2709
2710 2005-09-13  Sebastien Pouliot  <sebastien@ximian.com> 
2711  
2712         * HttpCompileException.cs: Added new public ctors and [Serializable]
2713         to 2.0. Added new Message property and GetObjectData (protected by a
2714         demand for SerializationFormatter) for 2.0. Fixed line-ending.
2715         * HttpException.cs: Added LinkDemand and InheritanceDemand (class) for
2716         Minimal. Renamed parameters to match documentation.
2717         * HttpParseException.cs: Added LinkDemand (class) for Minimal. Added
2718         demand for SerializationFormatter on GetObjectData method. Fixed 
2719         line-ending.
2720         * HttpRequestValidationException.cs: Added new public ctors and 
2721         [Serializable] to 2.0. Added LinkDemand for Minimal.
2722         * HttpUnhandledException.cs: Added new public ctors and [Serializable]
2723         to 2.0. Removed unused internal ctor. Added LinkDemand for Minimal.
2724         Fixed line-ending.
2725
2726 2005-09-13  Sebastien Pouliot  <sebastien@ximian.com>
2727
2728         * HttpResponseSubstitutionCallback.cs: New. 2.0 delegate.
2729         * TraceContextEventArgs.cs: New. 2.0 class.
2730         * TraceContextEventHandler.cs: New. 2.0 delegate.
2731
2732 2005-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2733
2734         * HttpRequest.cs: use GetServerName instead of GetLocalAddress when
2735         building the Url.
2736
2737 2005-09-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2738
2739         * HttpRequest.cs: fix the indexer.
2740
2741 2005-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2742
2743         * HttpPostedFile.cs: fixes in Seek and Position.
2744
2745 2005-09-08  Sebastien Pouliot  <sebastien@ximian.com>
2746
2747         * HttpRequest.cs: Make sure the MemoryStream created have their 
2748         contents marked as public - or else you can't call GetBuffer on them!
2749
2750 2005-09-08  Miguel de Icaza  <miguel@novell.com>
2751
2752         * HttpRequest.cs: Patch from Juraj Skripsky <js@hotfeet.ch> that
2753         fixes UrlReferrer. 
2754
2755 2005-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2756
2757         * HttpPostedFile.cs: Make this class actually work. Every time we read,
2758         we have to position the underlying stream.
2759
2760 2005-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2761
2762         * HttpRequest.cs: reading multipart/form-data works again.
2763
2764 2005-09-08 Eyal Alaluf <eyala@mainsoft.com>
2765         * HttpRequest.cs: Under TARGET_JVM the input stream must allow GetBuffer.
2766
2767 2005-09-08 Eyal Alaluf <eyala@mainsoft.com>
2768         * HttpApplicationFactory.cs: TARGET_J2EE/JVM fix.
2769
2770 2005-09-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2771
2772         * HttpRequest.cs: correctly detect multipart/form-data.
2773
2774 2005-09-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2775
2776         * HttpApplicationFactory.cs: recycle after invoking session_end.
2777
2778 2005-09-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2779
2780         * HttpRuntime.cs: remove Console.
2781
2782         * HttpApplicationFactory.cs: don't hook Session_End, but keep
2783         the MethodInfo around for later invocation if needed. Don't call
2784         GetMethods() for every HttpApplication (or derived class) instances.
2785         Added a method, used by SessionStateModule, that will create use an
2786         application without context to invoke Session_End. Keep a pool of
2787         applications that are meant to be used by this method only.
2788
2789         * HttpApplication.cs: add a SetSession method and do not
2790         attach all the events if the application is for Session_End only.
2791
2792 2005-09-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2793
2794         * HttpRuntime.cs: actually unload the domain when requested. Reformatted
2795         FinishUnavailable() and removed the 'Location' header form the error.
2796
2797         * HttpApplicationFactory.cs: set up the watcher for the bin directory.
2798         This also prevents a nullref when global.asax is changed.
2799
2800 2005-09-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2801
2802         * HttpApplication.cs: fixed bug introduced when moving GetHandler call
2803         around. Now we get error pages again.
2804
2805 2005-09-06  Miguel de Icaza  <miguel@novell.com>
2806
2807         * HttpApplication.cs: Catch EndRequest errors as well.
2808
2809 2005-09-05  Miguel de Icaza  <miguel@novell.com>
2810
2811         * HttpApplication.cs: Invoke EndRequest handler before OutputPage
2812         as FormsAuthentication will issue a Redirect from the EndRequest 
2813         handler. 
2814
2815 2005-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2816
2817         * HttpApplication.cs: when writing an error message, catch the possible
2818         write error.
2819
2820 2005-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2821
2822         * HttpResponseStream.cs: prevent invalid cast exception if the first
2823         thing written is a file.
2824
2825 2005-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2826
2827         * HttpApplication.cs: fix invalid cast exception (bug #75926).
2828
2829 2005-09-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2830
2831         * HttpApplicationFactory.cs: only trigger the Application_Start event
2832         once. It was being invoked more than once when several clients were
2833         hitting the server at the same time on startup.
2834
2835 2005-09-01 Eyal Alaluf <eyala@mainsoft.com>
2836
2837         * HttpContext.cs HttpResponse.cs HttpWorkerRequest.cs HttpRuntime.cs
2838           HttpApplicationFactory.cs HttpApplication.cs: TARGET_J2EE/JVM fixes.
2839           Mostly workaround limited AppModel in TARGET_J2EE.
2840
2841 2005-08-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2842
2843         * HttpResponse.cs: if the request method is HEAD, that's equivalent to
2844         SuppressContent. Added an internal TransmitFile that allows setting the
2845         final_flush flag.
2846         * StaticFileHandler.cs: use the new internal TransmitFile and remove
2847         generation of Content-Length header, as now it's computed correctly.
2848         * HttpApplication.cs: remove debugging stuff.
2849         * HttpResponseStream.cs: suppress_content is checked in HttpResponse.
2850
2851 2005-08-31  Miguel de Icaza  <miguel@novell.com>
2852
2853         Removed debugging info.
2854         
2855         * HttpApplication.cs: Add support for async handlers. 
2856
2857         Add extra 2.x methods. 
2858
2859 2005-08-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2860
2861         * BrowserCapabilities.cs: removed extra 'using'.
2862
2863         * HttpApplication.cs: use just the 'modcoll' to hold the collection of
2864         modules instead of having a separate 'modules' one.
2865
2866 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2867
2868         * HttpApplication.cs: clone the module collection so that
2869         it's not shared between HttpApplications. Call GetHandler() in the
2870         right place.
2871
2872 2005-08-30  Miguel de Icaza  <miguel@novell.com>
2873
2874         * HttpApplication.cs: Add the new 2.x method overloads that take a
2875         data object.
2876
2877         (RunHooks): Pass the extra data instead of null.
2878
2879         * HttpCookie.cs (HttpOnly): Add 2.x cookie header.
2880
2881         * BrowserCapabilities.cs: Move the core of the capabilities into a
2882         separate file.  Use partial classes to choose what version to
2883         compile against.
2884
2885         * HttpBrowserCapabilities.cs: Update to move the code elsewhere.
2886
2887 2005-08-30 Eyal Alaluf <eyala@mainsoft.com>
2888
2889         * HttpResponseStream.cs: Fix a bug introduced by last fix (thanks to
2890         Ben)
2891
2892 2005-08-30 Eyal Alaluf <eyala@mainsoft.com>
2893
2894         * HttpResponseStream.cs: Compilation fixes for TARGET_JVM. TARGET_JVM
2895         does not support unsafe code. I localized all unsafe code within Chunk
2896         & Block and created a managed version of Chunk.
2897
2898 2005-08-30 Eyal Alaluf <eyala@mainsoft.com>
2899         * HttpApplicationFactory.cs: Compilation fixes for TARGET_J2EE. Under
2900         TARGET_J2EE static fields are shared by all app domains. We handle
2901         this difference by explicitly getting/setting values from the app
2902         domain.  Since HttpApplicationFactory has many static fields, I
2903         refactored it to have one static instance and moved the static fields
2904         into instance fields.
2905
2906 2005-08-29 Eyal Alaluf <eyala@mainsoft.com>
2907
2908         * HttpRequest.cs: Disable use of IntPtrStream for TARGET_JVM
2909
2910 2005-08-29 Eyal Alaluf <eyala@mainsoft.com>
2911
2912         * HttpContext.cs: Compilation fixes for TARGET_J2EE/JVM
2913
2914 2005-08-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2915
2916         * HttpResponse.cs: don't duplicate the 'charset=' and don't send a
2917         charset for unknown MIME types.
2918         * StaticFileHandler.cs: set the Content-Length header here.
2919         * HttpRequest.cs: prevent nullrefs when we have no 'charset='.
2920
2921 2005-08-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2922
2923         * StaticFileHandler.cs: use TransmitFile instead of WriteFile. This way
2924         xsp will use sendfile().
2925
2926 2005-08-28  Chris Toshok  <toshok@ximian.com>
2927
2928         * SiteMapNode.cs: fix IHierarchyData.GetParent.
2929
2930 2005-08-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2931
2932         * HttpRequest.cs:
2933         * IntPtrStream.cs: now we only have a read-only MemoryStream or an
2934         IntPtrStream. The copy is moved into HttpRequest.
2935
2936 2005-08-26  Sebastien Pouliot  <sebastien@ximian.com>
2937
2938         * WebCategoryAttribute.cs: New. Required internal attribute.
2939         * WebSysDescriptionAttribute.cs: New. Required internal attribute.
2940
2941 2005-08-26  Jackson Harper  <jackson@ximian.com>
2942
2943         * HttpResponseStream.cs: Use GetBuffer so the memory isn't
2944         duplicated.
2945
2946 2005-08-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2947
2948         * HttpApplication.cs: GetHandler might return null when, for example,
2949         a web service fails, but that does not mean that returning a null
2950         handler should throw another exception, as the web service code
2951         serialized the error as a faultString. So if the handler is null, just
2952         don't call ProcessRequest and keep going.
2953
2954 2005-08-26  Jackson Harper  <jackson@ximian.com>
2955
2956         * HttpResponse.cs: Send the cached headers if this is a cached
2957         response. Save the headers, date header, and page data. Fix a typo.
2958         * HttpResponseStream.cs: Add new accesor to get a byte [] of the
2959         page data.
2960
2961 2005-08-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2962
2963         * HttpWorkerRequest.cs: SetEndOfSendNotification is a noop. No matter
2964         what callback you use that never gets called. In XSP I actually
2965         implement something for this method.
2966         * HttpServerUtility.cs: unused variable.
2967
2968 2005-08-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2969
2970         * HttpInputStream.cs: new ctor that takes a byte [].
2971         * IntPtrStream.cs: make it work on a byte [] too.
2972
2973         * HttpRequest.cs:
2974         (ContentLength): return 0 for negative numbers or error parsing, but
2975         keep content_length negative in those cases.
2976         (MakeInputStream): when there's no content-length (or it's negative),
2977         we still read the request into a MemoryStream. Use
2978         IsEntireEntityIsPreloaded() as a fast path.
2979
2980 2005-08-25  Sebastien Pouliot  <sebastien@ximian.com>
2981
2982         * HttpClientCertificate.cs: On 1.x the .ctor throws a 
2983         ArgumentNullException (but 2.0 throws a NRE).
2984
2985 2005-08-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2986
2987         * HttpRequest.cs: HttpMethod deserves its own field. Fix IsLocal.
2988
2989 2005-08-25  Chris Toshok  <toshok@ximian.com>
2990
2991         * HttpApplication.cs (IsReusable): return true.
2992         (InitOnce): remove the initialization of handler_factory from
2993         here.
2994         (GetHandler) and move it here, so we make sure to load handlers
2995         from all needed web.config files.
2996
2997 2005-08-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2998
2999         * HttpServerUtility.cs: use GetHandler().
3000         * HttpApplication.cs: remove obsolete method. Now Transfe/Execute work.
3001
3002 2005-08-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3003
3004         * HttpApplication.cs: no need for the local var. here.
3005
3006 2005-08-25  Chris Toshok  <toshok@ximian.com>
3007
3008         * HttpApplication.cs (InitOnce): move the initialization of
3009         modules above the call to HttpApplicationFactory.AttachEvents,
3010         since that method accesses HttpApplication.Modules.  Fixes
3011         nGallery.
3012         (IsReusable): mark TODO.
3013
3014 2005-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3015
3016         * HttpResponseHeader.cs: removed obsolete class.
3017         * HttpResponse.cs: no more 'obsolete' warnings.
3018
3019 2005-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3020
3021         * HttpRuntime.cs: implemeted some missing properties.
3022
3023 2005-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3024
3025         * HttpResponse.cs: implemented RemoveOutputCacheItem().
3026
3027 2005-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3028
3029         * HttpApplication.cs: implemented GetVaryByCustomString().
3030
3031 2005-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3032
3033         * HttpRequest.cs: implemented SetHeader (allows adding a header
3034         circumventing the read-only protection of the collection) and SetForm,
3035         which just assigns a value of the 'form' collection.
3036         * HttpServerUtility.cs: NameValueCollection -> WebROCollection.
3037
3038 2005-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3039
3040         * HttpContext.cs:
3041         * HttpRequest.cs: implemented RewritePath and supporting methods.
3042
3043 2005-08-22  Sebastien Pouliot  <sebastien@ximian.com>
3044
3045         * HttpRequest.cs: Avoid NRE if work_request if null in the ctor.
3046         * HttpResponse.cs: Avoid NRE if work_request if null in the ctor.
3047
3048 2005-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3049
3050         * HttpApplication.cs: if there's any exception thrown when getting the
3051         handler, don't add an extra error to the context, as we already have
3052         one.
3053
3054 2005-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3055
3056         * HttpWriter.cs:
3057         * HttpResponse.cs:
3058         * HttpWorkerRequest.cs:
3059         * HttpApplication.cs: added mising attributes and enabled methods
3060         present in 1.1 SP1.
3061
3062 2005-08-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3063
3064         * WebROCollection.cs: a collection that allows setting IsReadOnly.
3065         * HttpRequest.cs: implemented MapImageCoordinates(). Use WebROCollection
3066         instead of a NameValueCollection in Form, Headers, Params, QueryString.
3067
3068 2005-08-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3069
3070         * HttpInputStream.cs: new copy ctor.
3071         * IntPtrStream.cs: getters for base_address and size.
3072         * HttpRequest.cs: implemented SaveAs(). Use a wrapper on top of
3073         InputStream so that reading POST form or files does not modify the state
3074         if InputStream. Don't use uri_builder.Query in QueryStringRaw, as it
3075         returns the '?'.
3076
3077 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3078
3079         * HttpRequest.cs: implemented UserLanguages and reuse code from
3080         AcceptTypes.
3081
3082 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3083
3084         * HttpRequest.cs: implemented AcceptTypes.
3085
3086 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3087
3088         * HttpRequest.cs: implemented this[] in terms of Params. Don't add the
3089         header collection in Params.
3090
3091 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3092
3093         * HttpRequest.cs: fix Files property.
3094         * HttpApplication.cs: invoke the default authentication event after all 
3095         the other auth. modules.
3096
3097 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3098
3099         * ServerVariablesCollection.cs: mark the collection as read-only except
3100         when we fill it. Add the HTTP_blah key/value pairs too.
3101
3102 2005-08-18  Chris Toshok  <toshok@ximian.com>
3103
3104         * HttpRequest.cs (get_Params): implement.
3105
3106 2005-08-17  Chris Toshok  <toshok@ximian.com>
3107
3108         * HttpResponse.cs: HttpResponse's Cookie's collection acts
3109         differently than HttpRequests in that it never returns null from
3110         the "this [string]" accessor.
3111
3112 2005-08-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3113
3114         * HttpRequest.cs: check length 0 case when reading a POST.
3115
3116 2005-08-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3117
3118         * HttpContext.cs: added security attributes for User and
3119         SkipAuthorization properties.
3120         * HttpApplicationFactory.cs: AttachEvents is now called form the
3121         application .ctor. Recycle instead of dispose.
3122         * HttpApplication.cs: attach events to the newly created application.
3123
3124 2005-08-15  Jackson Harper  <jackson@ximian.com>
3125
3126         * ApplicationShutdownReason.cs: make build
3127
3128 2005-08-15  Miguel de Icaza  <miguel@novell.com>
3129
3130         * HttpApplication.cs: Update comments
3131
3132         * HttpPostedFile.cs: Use a substream to read from the uploaded
3133         multiparts. 
3134
3135         * HttpRequest.cs: use new code to read the uploaded files.
3136
3137 2005-08-12  Miguel de Icaza  <miguel@novell.com>
3138
3139         2.x API fixage and small additions:
3140         
3141         * HttpResponse.cs: Make constructor internal.
3142
3143         * HttpRequest.cs (IsLocal): Expose if NET_2.x
3144
3145         * HttpContext.cs: Remove internal routine.
3146
3147         * HttpApplication.cs: Add 2.x events. 
3148
3149         * HttpRequest.cs: Another iFolder issue: I was not setting up the
3150         uri_builder here.
3151
3152         Fixes to get iFolder to work:
3153         
3154         * HttpApplicationFactory.cs: Set the context when we are initting
3155         the application.
3156
3157         * HttpApplication.cs (SetContext): helper routine. 
3158
3159         * HttpResponse.cs: Implement the various cache operations:n
3160         Expires, ExpiresAbsolute, CacheControl.
3161
3162         Actually produce the Cache-Control header, the "Cache" property
3163         takes precedence over the compatibility settings (Expires,
3164         ExpiresAbsolutely and CacheControl). 
3165
3166         * HttpCachePolicy.cs: Fix style.
3167
3168         Fix the generation of the headers, use lower-case values, do not
3169         add the max-value if the value is zero.  
3170
3171         Allow for all possible values in SetCacheability. 
3172
3173         * HttpRuntime.cs (ClrInstallDirectory): Implement.
3174
3175         * HttpResponseStream.cs: Remove debugging stuff. 
3176
3177 2005-08-11  Miguel de Icaza  <miguel@novell.com>
3178
3179         Big chunked handling rewrite, and integration of Ben's unmanaged
3180         output stream.
3181
3182         * HttpWriter.cs: Delegate chunked encoding writing to the
3183         HttpResponse. 
3184
3185         * HttpResponse.cs: Rework the chunked encoding system, centralize
3186         it all. 
3187
3188         * HttpResponseStream.cs: Deploy Ben's bucket-base unmanaged
3189         buffers code. 
3190
3191         Changed the way that we handle chunked encoding, centralize it
3192         all;  
3193
3194         Remove a lot of manual handling of buffering turned off, and
3195         instead delegate it all to Flush, fixes several issues with the
3196         new framework.
3197
3198         * HttpWorkerRequest.cs (SendResponseFromMemory (IntPtr, int)):
3199         Provide a default implementation since currently XSP does not have
3200         this method implemented. 
3201
3202 2005-08-11  Sebastien Pouliot  <sebastien@ximian.com> 
3203  
3204         * HttpClientCertificate.cs: Culture insensitive int parsing. Fixed
3205         NET_2_0 build.
3206
3207 2005-08-10  Miguel de Icaza  <miguel@novell.com>
3208
3209         * ServerVariablesCollection.cs: For Ben.  Implement the header
3210         fetching here, do not implement it in HttpRequest.cs.
3211
3212 2005-08-10  Sebastien Pouliot  <sebastien@ximian.com> 
3213  
3214         * HttpClientCertificate.cs: Changed IsPresent logic so that new unit
3215         tests will work as expected.
3216
3217 2005-08-10  Sebastien Pouliot  <sebastien@ximian.com>
3218
3219         * HttpClientCertificate.cs: Implemented, except for validation. Note 
3220         that the HttpWorkerRequest derived classes must be updated to supply 
3221         the required informations.
3222         * HttpRequest.cs: Create an HttpClientCertificate on first call to
3223         ClientCertificate.
3224
3225 2005-08-09  Miguel de Icaza  <miguel@novell.com>
3226
3227         * HttpRuntime.cs (AspInstallDirectory): Implement.
3228
3229 2005-08-09  Sebastien Pouliot  <sebastien@ximian.com>
3230
3231         * HttpClientCertificate.cs: New. Stub. It won't be fun to test.
3232
3233 2005-08-04  Ben Maurer  <bmaurer@ximian.com>
3234
3235         * HttpContext.cs: Kill a NIE.
3236
3237 2005-08-04  Miguel de Icaza  <miguel@novell.com>
3238
3239         * HttpApplicationFactory.cs: Change "Start" event like the "End"
3240         event, and only do this once, when we init the type.
3241
3242         Fire the "Application_Start" event after we create the type.
3243
3244 2005-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3245
3246         * HttpApplication.cs: catch a ThreadAbort (coming from Response.End)
3247         here too.
3248
3249 2005-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3250
3251         * HttpResponse.cs: setting the Status property resets the
3252         StatusDescription (see the tests) and the default value for the
3253         description is the one provided by GetStatusDescription() in
3254         HttpWorkerRequest.
3255
3256 2005-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3257
3258         * HttpRequest.cs: s/boundry/boundary/ and fix typo in array creation.
3259
3260 2005-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3261
3262         * HttpApplication.cs: add call to EndOfRequest when everything is said
3263         and done.
3264
3265 2005-08-02  Miguel de Icaza  <miguel@novell.com>
3266
3267         * HttpResponse.cs: Stub for TransmitFile.
3268
3269         * HttpRequest.cs (IsAuthenticated): Implement.
3270
3271 2005-08-01  Miguel de Icaza  <miguel@novell.com>
3272
3273         * HttpRequest.cs: Cope with implementations of HttpWorkerRequest
3274         (unpatched xsp) that do not send back the PreloadedEntityBody. 
3275
3276         * HttpApplication.cs: keep track of the factory. 
3277         (Dispose): Only dispose once, clean up other variables, release
3278         the ManualResetEvent.
3279         Release the handler to the factory.
3280
3281         * HttpApplicationFactory.cs: Implement a stack to reuse the
3282         applications. 
3283
3284         * HttpRequest.cs: On uploads, if the ContentLenght is zero, throw
3285         a 411.
3286
3287         * HttpRuntime.cs: Recycle the application after using it.
3288
3289         * HttpPostedFile.cs: Implement SaveAs.
3290
3291         * HttpContext.cs: Return the "Server" property.
3292
3293 2005-08-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3294
3295         * HttpServerUtility.cs: implemented missing bits.
3296
3297 2005-08-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3298
3299         * HttpRequest.cs: query string was getting a '?' as the start of the
3300         first variable name. This makes the asmx help page work again.
3301
3302 2005-08-01  Miguel de Icaza  <miguel@novell.com>
3303
3304         * HttpRequest.cs (Cookies, Forms): Add validation.
3305         (Forms): Add application/x-www-form-urlencoded parsing and
3306         multipart/form-data parsing.
3307         
3308         (HttpMultiPart): Implement new class to load multi-part data from
3309         a stream since there is no longer a byte [] that holds the data
3310         (currently we have an unmanaged IntPtr buffer wrapped as a
3311         stream).  Also the 2.x framework will add support for large
3312         uploads which are sent directly to disk, which will require the
3313         FileStream interface. 
3314         
3315         (Path, PathInfo): Fill a couple more methods to avoid crashes.
3316
3317         * HttpContext.cs: Fill another one to get web services summary
3318         page painting.  The page does not work though.
3319         
3320         * HttpApplication.cs: Rework the pipeline to not depend on
3321         `finally', as `finally' would not be invoked if we choose not to
3322         call the pipeline again (which happens if the `stop' variable is
3323         set). 
3324
3325         Instead force the pipeline to go to the shutdown, and yield from
3326         there after all the release-state callbacks have been invoked. 
3327
3328 2005-07-31  Miguel de Icaza  <miguel@novell.com>
3329
3330         * HttpApplication.cs: Remove debugging messages since the compiler
3331         bug has been fixed.
3332
3333         You must use at least mcs from revision 47879 for the application
3334         pipeline to work. 
3335
3336 2005-07-30  Miguel de Icaza  <miguel@novell.com>
3337
3338         * HttpContext.cs: Error handling methods.
3339
3340         * HttpResponse.cs: Trigger the last event.
3341
3342         * HttpRuntime.cs: Add queueing of the next request. 
3343
3344         * HttpApplication.cs: Deploy the new yield-based application
3345         pipeline, add error handling to the pipeline.
3346         
3347         * HttpApplication.cs (AsyncRequestState): Just use the done event
3348         from the parent.
3349
3350 2005-07-29  Miguel de Icaza  <miguel@novell.com>
3351
3352         * HttpResponseStream.cs, HttpRequest.cs: Fix bugs found by nunit.
3353
3354         * HttpApplication.cs: Fix a race condition. 
3355
3356         * HttpResponseStream.cs: Fix bug, send the size of the buffer that
3357         we have so far instead of the internal size of the buffer.   This
3358         will need work later to ensure we enforce the Content-Length
3359         maximum output size if set.
3360
3361         * ServerVariablesCollection.cs: This class now inherits from
3362         NameValueCollection, we should probably review what the middle
3363         class did, there are no dependencies on it.
3364
3365         I need to write tests to investigate if something is missing or
3366         has changed in this implementation. 
3367
3368 2005-07-27  Miguel de Icaza  <miguel@novell.com>
3369
3370         * HttpRequest.cs: No happy replies here, send a 411.
3371
3372 2005-07-27  Chris Toshok  <toshok@ximian.com>
3373
3374         * HttpResponseHeader.cs: remove spew.
3375         
3376 2005-07-27  Chris Toshok  <toshok@ximian.com>
3377
3378         * HttpResponseHeader.cs (HttpResponseHandler..ctor): use
3379         HttpWorkerRequest.GetKnownResponseHeaderName instead of
3380         GetKnownRequestHeaderName.  Fixes Response.Redirect until miguel's
3381         new HttpReponse is online.
3382
3383 2005-07-26  Miguel de Icaza  <miguel@novell.com>
3384
3385         * HttpResponse.cs: use_chunked is now a byte-array, if not null,
3386         we use it to hold the size of the chunked so we do not have to
3387         allocate many of these. 
3388         (SendSize): Helper routine to send the chunked headers.
3389         (BinaryWrite): First user of the chunked writer.
3390
3391         * HttpApplication.cs: Do not crash if they request a Server
3392         instance, but throw a NotImplementedException.
3393
3394         * HttpRequest.cs: fix a few problems exposed by the regression
3395         test suite.
3396
3397         * HttpRequest.cs (Cookies): use Chris' new constructor to get the
3398         cookies parsed.
3399
3400         : The big Uri rework: instead of using QueryString
3401         as the population mechanism, populate an UriBuilder from the
3402         various HttpWorkerRequest methods.
3403
3404         * HttpWorkerRequest.cs (GetProtocol): Implement in terms of
3405         IsSecure().
3406
3407         * HttpResponse.cs: Pointed by Ben, Write (null) is a nop instead
3408         of a crash.
3409
3410         * HttpContext.cs: Add a couple of properties to help the 2.x
3411         build.
3412         
3413         * HttpResponse.cs: Make ContentLength a long, add back support for
3414         session's app_path_mod.
3415         (ApplyAppPathmodifier): put back.
3416         (End): Pass a flag to abort so we can tell the exceptions appart
3417         in HttpApplication.
3418         (WriteHeaders): Send the HTTP status.
3419         (Redirect): Implement.
3420         (Write): Use the Output property to load writer when needed.
3421         
3422         * HttpRequest.cs (ctor): Temporary use of InitFromWR, will fix
3423         later. 
3424         (MakeInputStream): check content-length size, use routines to load
3425         the preloaded data, handle incomplete transfers.
3426         (Query): Do not insert null keys into the collection.
3427         (Url): implement.
3428         (UrlReferer): implement.
3429
3430         * HttpApplication.cs (RunHooks): Catch Thread.Abort, and call
3431         Thread.ResetAbort after each step.
3432
3433         Ensure that ReleaseState is called if we ever succeed in acquiring
3434         the state even if we have stopped the request pipeline.
3435
3436         Report file not found, directory not found.
3437
3438 2005-07-25  Miguel de Icaza  <miguel@novell.com>
3439
3440         * HttpCookieCollection.cs: Add expiration of the cookie. 
3441
3442         * HttpRequest.cs: Add check for ContentLength, use
3443         GetPreloadedEntityBody, correct number of bytes uploaded.
3444
3445 2005-07-21  Miguel de Icaza  <miguel@novell.com>
3446
3447         * HttpResponseHeader.cs: Our implementation of HttpResponse only
3448         uses the text headers, does not use any constants as XSP would go
3449         through a slower code path anyways.
3450
3451 2005-07-21  Chris Toshok  <toshok@ximian.com>
3452
3453         * HttpBrowserCapabilities.cs: enable support for the W3CDomVersion
3454         and EcmaScriptVersion properties.
3455
3456 2005-07-21  Chris Toshok  <toshok@ximian.com>
3457
3458         * HttpResponseHeader.cs: hi, i'm stupid and missed String.Replace.
3459         
3460 2005-07-21  Chris Toshok  <toshok@ximian.com>
3461
3462         * HttpResponseHeader.cs: url encode just \r and \n if they're
3463         present in the value.
3464
3465 2005-07-20  Chris Toshok  <toshok@ximian.com>
3466
3467         * HttpPostedFile.cs: add missing ContentLength property.
3468
3469 2005-07-20  Chris Toshok  <toshok@ximian.com>
3470
3471         * HttpCookieCollection.cs: add a new ctor that takes a string (the
3472         contents of the Cookies: header).
3473
3474 2005-07-20  Chris Toshok  <toshok@ximian.com>
3475
3476         * HttpCookieCollection.cs: add another ctor (internal, but not
3477         obsolete, so we aren't passing a stupid HttpResponse in in order
3478         to change the behavior of the collection.)
3479
3480         * HttpCookie.cs: init this.values in the internal ctor.
3481
3482 2005-07-20  Chris Toshok  <toshok@ximian.com>
3483
3484         * HttpCookieCollection.cs: use "auto-fill mode" when we're dealing
3485         with an HttpResponse's cookie collection.  That is, create the
3486         cookie if the consumer looks it up.
3487
3488 2005-07-20  Miguel de Icaza  <miguel@novell.com>
3489
3490         * HttpApplication.cs: Ongoing work on pipeline, I will need to
3491         redo this later.
3492
3493 2005-07-19  Miguel de Icaza  <miguel@novell.com>
3494
3495         * HttpContext.cs (GetService): Implement.  Return all of the
3496         properties that we have access to.  Make HttpWorkerRequest the
3497         first match as this is the only likely reason people need to use
3498         this. 
3499
3500         * IntPtrStream.cs: Bring from corlib.
3501
3502         * MultiPartContentParser.cs: use a MemoryStream as HttpInputStream
3503         will now be using IntPtrStream. 
3504
3505         * HttpRequest.cs (MakeInputStream): move code that loads the
3506         request here
3507         (CloseInputStream): Helper method that we will call later to
3508         ensure that we dispose properly the malloced() block. 
3509         (BinaryRead): Implemented.
3510
3511         * HttpInputStream.cs: Rewrite to be a descendant of
3512         IntPtrStream.cs 
3513
3514 2005-07-18  Miguel de Icaza  <miguel@novell.com>
3515
3516         * HttpApplication.cs (Modules): Add modules support and
3517         AsyncResult.
3518
3519 2005-07-18  Chris Toshok  <toshok@ximian.com>
3520
3521         * HttpResponseHeader.cs: initial implementation.
3522
3523 2005-07-18  Chris Toshok  <toshok@ximian.com>
3524
3525         * HttpModuleCollection.cs (HttpModuleCollection.GetKey): add
3526         missing method.
3527
3528         * HttpFileCollection.cs: initial implementation.
3529
3530 2005-07-18  Chris Toshok  <toshok@ximian.com>
3531
3532         * HttpModuleCollection.cs (HttpModuleCollection.CopyTo): implement
3533         missing method.
3534
3535 2005-07-18  Chris Toshok  <toshok@ximian.com>
3536
3537         * HttpModuleCollection.cs: initial implementation.
3538
3539 2005-07-18  Chris Toshok  <toshok@ximian.com>
3540
3541         * HttpCacheVaryByHeaders.cs: only add the header if it's not
3542         already in the hash.
3543
3544         * HttpCacheVaryByParams.cs: only add the param if it's not already
3545         in the hash.
3546
3547 2005-07-18  Chris Toshok  <toshok@ximian.com>
3548
3549         * HttpCookie.cs (HttpCookie+CookieNVC.Set): new override to fix an
3550         MS quirk.
3551
3552 2005-07-17  Miguel de Icaza  <miguel@novell.com>
3553
3554         * HttpRequest.cs (Headers, InputStream): implemented two more
3555         properties.
3556
3557         * HttpInputStream.cs: All we need is a MemoryStream with writable
3558         set to false.
3559
3560         * HttpPostedFile.cs: Use a Stream.
3561
3562 2005-07-16  Chris Toshok  <toshok@ximian.com>
3563
3564         * HttpCacheVaryByHeaders.cs: make sure we set vary_by_unspecified
3565         = false in the custom setter.
3566
3567 2005-07-16  Chris Toshok  <toshok@ximian.com>
3568
3569         * HttpCacheVaryByParams.cs: initial implementation.
3570
3571 2005-07-16  Chris Toshok  <toshok@ximian.com>
3572
3573         * HttpCacheVaryByHeaders.cs: initial implementation.
3574
3575 2005-07-15  Chris Toshok  <toshok@ximian.com>
3576
3577         * HttpCookie.cs: one more time.
3578
3579 2005-07-15  Chris Toshok  <toshok@ximian.com>
3580
3581         * HttpCookie.cs (HttpCookie.GetCookieHeader): use
3582         expires.ToString().
3583         
3584 2005-07-15  Chris Toshok  <toshok@ximian.com>
3585
3586         * HttpCookie.cs (HttpCookie.GetCookieHeader): implement to fix
3587         ben's bug.
3588
3589 2005-07-15  Chris Toshok  <toshok@ximian.com>
3590
3591         * HttpCookieCollection.cs: initial implementation (with a couple
3592         of labeled inefficiencies.)
3593
3594 2005-07-15  Chris Toshok  <toshok@ximian.com>
3595
3596         * HttpCookie.cs (HttpCookie.get_HasKeys): use values.HasKeys()
3597         instead of trying to be smart about it ourselves.
3598
3599 2005-07-15  Chris Toshok  <toshok@ximian.com>
3600
3601         * HttpCookie.cs: initial implementation.  we fail one unit test,
3602         but it might be due to a bug in NameValueCollection.
3603
3604 2005-07-15  Miguel de Icaza  <miguel@novell.com>
3605
3606         * HttpRequest.cs: 
3607
3608 2005-07-14  Miguel de Icaza  <miguel@novell.com>
3609
3610         * HttpRuntime.cs: Return a few of the values from the AppDomain
3611         data. 
3612
3613         Put the application shutdown process.
3614
3615         * HttpApplicationFactory.cs (AddEvent): Fixed bug when more than
3616         one method existed.
3617         
3618         (FireEvent): Do not ignore errors.
3619
3620         * HttpContext.cs (GetAppConfig, GetConfig): First success, use
3621         ConfigurationSettings.GetConfig to get the value that QueueManager
3622         needed.
3623
3624 2005-07-14  Dick Porter  <dick@ximian.com>
3625
3626         * HttpPostedFile.cs: New basic implementation; needs someone to
3627         figure out what a HttpRequestStream does
3628
3629 2005-07-13  Miguel de Icaza  <miguel@novell.com>
3630
3631         * HttpRequest.cs: More work on this file
3632
3633         * HttpRequest.cs, HttpApplication.cs, HttpContext.cs,
3634         HttpRuntime.cs: New from scratch implementation.
3635
3636 2005-07-01  Lluis Sanchez Gual <lluis@novell.com>
3637
3638         * SiteMap.cs: Read provider info from the configuration files.
3639
3640 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3641
3642         * HttpResponseHeader.cs: URL encode \r and \n in header values. Fixes
3643         bug #75392.
3644
3645 2005-06-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3646
3647         * HttpUtility.cs: fix another stupid buglet in htmldecode.
3648
3649 2005-06-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3650
3651         * HttpContext.cs:
3652         * HttpResponse.cs:
3653         * HttpRequest.cs: use StrUtils (invariant culture).
3654
3655 2005-06-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3656
3657         * HttpRequest.cs: use StartsWith when looking for 'multipart/form-data'.
3658         File uploading was broken since a few commits ago.
3659
3660 2005-06-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3661
3662         * HttpResponse.cs: ensure that the last chunk ('0\r\n\r\n') is sent
3663         even if response.Close is called before a final flush. MS/IIS fails to
3664         do this.
3665
3666 2005-06-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3667
3668         * HttpRequest.cs: don't print anything for unknown content types in
3669         ParseFormData. Use lowercase compare.
3670
3671 2005-06-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3672
3673         * HttpResponse.cs: invariant love.
3674
3675 2005-06-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3676
3677         * HttpResponse.cs: avoid 1 string concat.
3678         * HttpRequest.cs: fix BinaryRead. It was totally wrong.
3679
3680 2005-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3681
3682         * HttpUtility.cs: don't append an extra 0 when no digits seen. Fixes
3683         bug #75370.
3684
3685 2005-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3686
3687         * HttpUtility.cs: the lower limit for using &#xx; encoding is 160, not
3688         128. Reset number back to 0 after use. Fixes bug #75365.
3689
3690 2005-06-19  Svetlana Zholkovsky <svetlanaz-at-mainsoft.com>
3691                 * In following classes added TARGET_J2EE or/and TARGET_JVM
3692                   directives:
3693                         - HttpResponse.cs
3694                         - HttpRuntime.cs
3695                         - HttpUtility.cs
3696                         - CapabilitiesLoader.cs
3697                         - HttpApplication.cs
3698                         - HttpApplicationFactory.cs
3699                         - HttpContext.cs
3700                         - HttpException.cs
3701                         - HttpRequest.cs
3702                 * Added Mainsoft's specific files :
3703                         - GhHttpAsyncResult.jvm.cs
3704
3705 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3706
3707         * HttpRequest.cs: avoid one intermediate buffer when reading the request
3708         body and fail for over limit content length when the content type is
3709         not handled as form or multipart data.
3710
3711 2005-06-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3712
3713         * HttpResponse.cs: fix the check in Close() so that CloseConnection is
3714         called even if there has been no final Flush. Fixes bug #75176.
3715
3716 2005-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3717
3718         * HttpParseException.cs:
3719         * HttpResponse.cs:
3720         * HttpApplication.cs: updates for 1.1 service pack.
3721
3722 2005-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3723
3724         * HttpUtility.cs: fix InvalidCastException.
3725
3726 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
3727
3728         * HttpWriter.cs: Fixed: _OutputFilter.Close () was called twice.
3729
3730 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3731
3732         * HttpUtility.cs: modified HtmlDecode so that it does not need to call
3733         Int32.Parse and handles improper &# sequences. Fixes bug #74907.
3734
3735 2005-05-26  Lluis Sanchez Gual <lluis@novell.com>
3736
3737         * SiteMapNodeCollection.cs: Implemented missing methods. The collection
3738         does not inherit from CollectionBase any more.
3739         * SiteMapNode.cs: Track api changes.
3740         * SiteMapProvider.cs: Moved several methods to the new
3741         StaticSiteMapProvider class. Other fixes.
3742         * XmlSiteMapProvider.cs: Watch changes in the xml files. Other fixes.
3743         * SiteMapProviderCollection.cs: Minor fixes.
3744         * SiteMap.cs: Added missing event. Avoid double check lock.
3745         * StaticSiteMapProvider.cs: New class that implements some of the
3746         funtionality of SiteMapProvider.
3747
3748 2005-05-25  Ben Maurer  <bmaurer@ximian.com>
3749
3750         * MimeTypes.cs: Remove extra spaces, they were typos. Fixes 75049.
3751
3752 2005-05-13 Atsushi Enomoto <atsishi@ximian.com>
3753
3754         * HttpUtility.cs : UrlDecodeToBytes() incorrectly decoded escaped 
3755           characters. Patch by Kazuki Oikawa.
3756
3757 2005-05-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3758
3759         * HttpRuntime.cs: PlatformID.Unix.
3760
3761 2005-05-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3762
3763         * HttpResponse.cs: cleaned up the .ctors, fix IsClientConnected and just
3764         Clear the _Headers array instead of creating a new ArrayList in
3765         ClearHeaders().
3766
3767 2005-05-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3768
3769         * HttpResponse.cs: we had 2 variables to track client connection status.
3770         Use only one. Increase the buffer size to 28KB when writing from a file.
3771
3772         * StaticFileHandler.cs: set the Content-Type before writing the file.
3773         This allows flushing before all the content is written.
3774
3775         * HttpApplication.cs: use the variable instead of the property when
3776         setting the Principal for the current process.
3777
3778 2005-05-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3779
3780         * ReusableMemoryStream.cs:
3781         * HttpWriter.cs: keep a pool of buffers to avoid allocations.
3782
3783 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3784
3785         * HttpResponse.cs: no need to save/restore the thread culture when
3786         getting the Date header. According to Ben's profiling, this is a big
3787         deal in performance.
3788
3789         * HttpRuntime.cs: ignore exceptions that might be thrown when unloading 
3790         a domain.
3791
3792 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3793
3794         * HttpApplicationFactory.cs: ignore any exception thrown when invoking
3795         an application event.
3796
3797 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3798
3799         * HttpBrowserCapabilities.cs: fix Win32 property.
3800
3801 2005-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3802
3803         * HttpResponse.cs: only add the charset when explicitly set or for
3804         well-known content types.
3805
3806 2005-04-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3807
3808         * HttpCachePolicy.cs:
3809         * HttpAsyncResult.cs:
3810         * HttpClientCertificate.cs:
3811         * HttpException.cs:
3812         * HttpRuntime.cs:
3813         * HttpCacheVaryByHeaders.cs:
3814         * HttpBrowserCapabilities.cs:
3815         * HttpUtility.cs:
3816         * HttpCacheVaryByParams.cs: no more warnings.
3817
3818         * QueueManager.cs: check for local connections with minLocalFreeThreads.
3819
3820 2005-04-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3821
3822         * ServerVariablesCollection.cs: shuffled variables, added missing ones
3823         and call a method in HttpRequest to set the HTTP_ variables.
3824
3825         * HttpRequest.cs: new method to add HTTP_ variables to a collection.
3826
3827 2005-04-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3828
3829         * HttpRequest.cs: GetAllHeaders was returning the value twice instead
3830         of 'name: value'. When HTTP_ is requested on the output, don't include
3831         unknown headers.
3832
3833 2005-03-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3834
3835         * HttpCookieCollection.cs: when adding more than one cookie with the
3836         same name, the last one is the winner.
3837
3838 2005-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3839
3840         * HttpRequest.cs: correctly store the value cookies in Params. Fixes
3841         bug #73345.
3842
3843 2005-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3844
3845         * HttpRequest.cs: Path and FilePath also change when RewritePath is
3846         called. Fixes bug #73055.
3847
3848 2005-02-23  Sebastien Pouliot  <sebastien@ximian.com>
3849
3850         * HttpRequest.cs: Make sure that any access after a ValidateInput 
3851         throws an exception if the data isn't safe.
3852
3853 2005-02-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3854
3855         * CapabilitiesLoader.cs: fix the path, as machine.config is now in a
3856         x.x/ directory below $PREFIX/etc/mono.
3857
3858 2005-02-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3859
3860         * HttpRequest.cs: fail on unicode full-width '<' and '>' too. Fixes
3861         a security report (http://secunia.com/advisories/14325) that wan't
3862         reported to us before public disclosure.
3863
3864 2005-02-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3865
3866         * HttpResponse.cs: send the calculated content length even when it's 0.
3867         Fixes bug #72655.
3868
3869 2005-02-04  Lluis Sanchez Gual <lluis@novell.com>
3870
3871         * HttpContext.cs: Added internal property to keep a reference to
3872         the last accessed page. Page uses this to implement PreviousPage.
3873
3874 2005-02-02  Lluis Sanchez Gual <lluis@novell.com>
3875
3876         * ProcessModelInfo.cs: Fixed warning.
3877
3878 2005-02-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3879
3880         * TraceContext.cs: writing a message without any other argument is not
3881         a warniing. Fixes bug #72017.
3882
3883 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3884
3885         * HttpApplication.cs: if there are no more handlers, finish the
3886         request and ensure we call Complete on it. Now FreeTextBox 3.0 works.
3887
3888 2004-12-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3889
3890         * HttpRequest.cs: honor the maxRequestSize limit from machine.config.
3891
3892 2004-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3893
3894         * HttpApplication.cs: reread application CultureInfo as web.config
3895         might have changed. Fixes bug #62539.
3896
3897 2004-11-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3898
3899         * HttpResponse.cs: fixed ApplyAppPathModifier to insert the session ID.
3900
3901 2004-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3902
3903         * HttpApplicationFactory.cs: monitor changes in global.asax and bin
3904         directory and shutdown the application when that happens. Fixes bug
3905         #49651.
3906
3907 2004-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3908
3909         * ReusableMemoryStream.cs: copied from System.IO.MemoryStream and
3910         slightly modified to allow expanding the buffer for cases on which the
3911         regular MemoryStream don't allow it.
3912
3913         * HttpWriter.cs: use the new ReusableMemoryStream and fix bug #59841.
3914         Otherwise we would have to allocate a new MemoryStream...
3915
3916 2004-11-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3917
3918         * HttpApplication.cs: Create() is now GetInstance().
3919
3920 2004-11-18 Lluis Sanchez Gual <lluis@novell.com>
3921
3922         * SiteMapNodeCollection.cs: Added missing properties.
3923         * HttpParseException.cs: Added 2.0 methods and properties.
3924         * SiteMapNode.cs: Added missing methods and properties.
3925         * SiteMapProvider.cs, XmlSiteMapProvider.cs, 
3926         SiteMapProviderCollection.cs: IProvider does not exist any
3927         more, it is now ProviderBase.
3928         * ISiteMapProvider.cs: Deleted.
3929         * ParserErrorCollection.cs, ParserError.cs, SiteMapResolveEventArgs.cs:
3930           Implemented.
3931         * SiteMap.cs: Minor fixes.      
3932
3933 2004-11-15 Lluis Sanchez Gual <lluis@novell.com>
3934
3935         * SiteMapProviderCollection.cs: Fixed warning.
3936         * HttpApplication.cs: Added new 2.0 events.
3937
3938 2004-11-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3939
3940         * HttpResponse.cs: added internl SetHeadersSent.
3941         * HttpRuntime.cs: don't throw the 'headers already sent' exception
3942         if we're sending a runtime error.
3943
3944 2004-11-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3945
3946         * HttpApplication.cs: undo the TimeoutManager.(Add|Remove) shuffling.
3947         It causes troubles under heavy load.
3948
3949 2004-11-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3950
3951         * SiteMap.cs: don't lock on Type.
3952         * CapabilitiesLoader.cs: avoid 2 locks when loading data.
3953
3954 2004-11-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3955
3956         * HttpRequest.cs: patch by Dennis Gervalle that fixes PhysicalPath in
3957         presence of rewriting.
3958
3959 2004-10-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3960
3961         * HttpApplication.cs: don't hang if a sync step is aborted. Fixes the
3962         system.web portion of bug #68270.
3963
3964 2004-10-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3965
3966         * TraceContext.cs: don't cast to Page is the handler it's
3967         not a page.
3968
3969 2004-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3970
3971         * HttpRequest.cs: CurrentExecutionFilePath is the one that
3972         changes when Transfer or Execute are used, not FilePath.
3973
3974         * HttpServerUtility.cs: moved form saving/restoring from
3975         Transfer to Execute, as it's needed there too. the query string is
3976         correctly set now. Fixes bug #67388.
3977
3978         * HttpContext.cs: use SetCurrentExePath instead of SetFilePath.
3979
3980 2004-10-03 Ben Maurer  <bmaurer@ximian.com>
3981
3982         * HttpResponse.cs: use UtcNow
3983
3984 2004-10-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3985
3986         * HttpResponse.cs: SuppressContent does not throw and clears all the
3987         buffered output. Fixes bug #67213.
3988
3989 2004-09-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3990
3991         * HttpUtility.cs: UrlPathEncode is static. Fixes bug #67155.
3992
3993 2004-09-29 Ben Maurer  <bmaurer@ximian.com>
3994
3995         * HttpContext.cs, TimeoutManager: Use DateTime.UtcNow.
3996
3997 2004-09-25 Ben Maurer  <bmaurer@ximian.com>
3998
3999         * HttpApplication.cs: Make sure requests are removed from
4000         the timeout manager. Fixes a major leak. #66751.
4001
4002 2004-09-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4003
4004         * HttpApplicationFactory.cs:
4005         * HttpRuntime.cs: implemented UnloadAppDomain and be ready for domain
4006         unloading.
4007
4008 2004-09-12 Ben Maurer  <bmaurer@ximian.com>
4009
4010         * HttpContext.cs: use CallContext. It is a little bit faster.
4011
4012 2004-09-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4013
4014         * HttpStaticObjectsCollection.cs: don't share static session objects
4015         declared in the application file across the application, but on a
4016         per-session basis. Fixes bug #65446.
4017
4018 2004-09-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4019
4020         * HttpServerUtility.cs: in Transfer(path), don't keep form data if
4021         the transfer is done from inside a page that received a postback.
4022         Fixes bug #65613.
4023
4024 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4025
4026         * HttpValueCollection.cs: fixed signature of ToString (). Closes bug
4027         #65392.
4028
4029 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
4030
4031         * HttpWriter.cs (.ctor): Dont create teh StreamWriter twice
4032         (Clear): Don't recreate the MemoryStream and StreamWriter
4033
4034 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4035
4036         * HttpApplication.cs: only add/remove to/from the timeout
4037         manager when we're in a interruptible step.
4038
4039 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4040
4041         * TraceContext.cs: when IsEnabled has not been set, return the value
4042         from the TraceManager. Fixes bug #63469.
4043
4044 2004-08-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4045
4046         * HttpRuntime.cs: initialize the response writer when finishing a
4047         request because it cannot be queued. Under heavy load we made new
4048         requests be processed before the ones that might be queued. This is
4049         no longer the case.
4050
4051         * QueueManager.cs: instead of queueing/dequeuing separately, we now
4052         have a single method that does everything needed to decide which one
4053         will be the next request processed.
4054
4055 2004-08-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4056
4057         * HttpRuntime.cs: removed initializations to null in .cctor. Prevent
4058         other requests from avoiding the lock if they are received before the
4059         configuration system is inited. Ensure that the queue manager is not
4060         null before using it (it can be null while the first request is being
4061         processed).
4062
4063 2004-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4064
4065         * HttpServerUtility.cs: ensure we have a full virtual path for the
4066         request being executed.
4067
4068 2004-08-02  Duncan Mak  <duncan@ximian.com>
4069
4070         * ApplicationShutdownReason.cs: Fixed typos.
4071
4072         * HttpCookieMode.cs:
4073         * HttpDataTransferMode.cs:
4074         * HttpRequestPriority.cs: Added [Serializable] attribute.
4075         
4076 2004-08-02  Duncan Mak  <duncan@ximian.com>
4077
4078         * ApplicationShutdownReason.cs:
4079         * HttpCookieMode.cs:
4080         * HttpDataTransferMode.cs:
4081         * HttpRequestPriority.cs: Added 2.0 enumerations.
4082         
4083 2004-07-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4084
4085         * HttpApplication.cs: the file not found might be a dependency.
4086
4087 2004-07-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4088
4089         * HttpCookie.cs: use invariant when formatting expires date. Fixes bug
4090         #61690.
4091
4092 2004-07-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4093
4094         * HttpApplication.cs: don't keep the session around if we got it from
4095         the context. Fixes bug #61232.
4096
4097 2004-07-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4098
4099         * HttpUtility.cs: fixed stupid bug in UrlDecode from bytes. Closes bug
4100         #61181.
4101
4102 2004-07-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4103
4104         * TraceContext.cs: added internal HaveTrace property whose
4105         value is true when the page has a Trace attribute.
4106
4107 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4108
4109         * TraceData.cs: fixed <br> output. Closes bug #60181.
4110
4111 2004-06-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4112
4113         * HttpUtility.cs: check for control characters in the string to encode
4114         or decode and return the same string if there are none.
4115
4116 2004-06-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4117
4118         * HttpApplication.cs: change/restore the IPrincipal in their own methods
4119         and make them internal.
4120
4121 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4122
4123         * HttpContext.cs: reverting Pedro's patch and sending mail with test
4124         to mono-devel.
4125
4126 2004-06-09  Pedro Martnez Juli  <yoros@wanadoo.es>
4127
4128         * HttpContext: User property returns its own "user" value because
4129         the context can walk through different Threads. When "User" property
4130         is changed, change "Thread.CurrentPrincipal" too.
4131
4132 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4133
4134         * HttpRequest.cs: removed extra ^Ms and fixed style of last patch.
4135
4136 2004-06-08  Alon Gazit  <along@mainsoft.com>
4137
4138         * HttpRequest.cs: Add a patch for HttpRequest.ServerVariables.
4139
4140 2004-06-07  Sebastien Pouliot  <sebastien@ximian.com>
4141
4142         * HttpContext.cs: User property now get/set Thread.CurrentPrincipal.
4143         Fix (at least partially) #59683.
4144
4145 2004-06-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4146
4147         * HttpRequest.cs: reverting patch from Alon Gazit. Uses the above file
4148         that doesn't compile.
4149
4150 2004-06-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4151
4152         * TraceData.cs: fixes nullref in an application that relies on
4153         r ["Message"] not being null. Closes bug #59679.
4154
4155 2004-06-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4156
4157         * HttpCachePolicy.cs: implemented SetAllowResponseInBrowserHistory.
4158
4159 2004-06-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4160
4161         * HttpRuntime.cs: implemented a 5 simple properties that were TODOs.
4162
4163 2004-06-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4164
4165         * HttpBrowserCapabilities.cs: implemented ClrVersion and GetClrVersions.
4166         * HttpException.cs: removed MonoTODO.
4167
4168 2004-06-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4169
4170         * TraceContext.cs: don't check if HttpRuntime.TraceManager
4171         is enabled when writing.
4172
4173 2004-06-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4174
4175         * HttpRequest.cs: added ClientTarget internal property.
4176
4177 2004-06-03  Lluis Sanchez Gual <lluis@ximian.com>
4178
4179         * HttpApplication.cs: Clear the http handler list after releasing the
4180           handlers.
4181
4182 2004-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4183
4184         * TraceData.cs: html-encode the messages written to the trace. Fixes
4185         bug #59431.
4186
4187 2004-06-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4188
4189         * HttpWorkerRequest.cs: the hashtables are now case-insensitive. Thanks
4190         to Markus Krutner.
4191
4192 2004-05-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4193
4194         * HttpRequest.cs: nullify _sRequestRootVirtualDir and baseVirtualDir
4195         when SetFilePath is called. This way the cached values are reset and
4196         get the right value in case someone (namely SessionStateModule + 
4197         cookieless session) changes the FilePath after the property cached its
4198         value. Fixes bug #59364.
4199
4200 2004-05-27      Patrik Torstensson <totte@hiddenpeaks.com>
4201
4202         * HttpApplicationFactory.cs: Added SignalError (still todo)
4203
4204 2004-05-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4205
4206         * HttpResponse.cs: remove hardcoded "HTTP/1.0" version that kept
4207         chunked encoding disabled. Fixed chunked suffix and end. Send the
4208         'lastchunk' marked when in the final Flush even if the content length
4209         is 0. This makes mod-mono-server work fine with chunked encoding.
4210          
4211         * HttpRuntime.cs: Set the _firstRequest* variables to true
4212         earlier. TraceContext don't take any parameter now.
4213
4214         * TraceManager.cs: don't need a context. Use GetAppConfig.
4215
4216 2004-05-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4217
4218         * HttpApplication.cs: set culture/uiculture from configuration and
4219         restore it after each step. Fixes bug #52851.
4220
4221 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4222
4223         * HttpUtility.cs: use lower case in UrlEncode like MS does. Delay
4224         entities hashtable creation until it's really needed.
4225
4226 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4227
4228         * HttpApplicationFactory.cs: if no module matches the name found for a
4229         possible event, ignore it. Fixes bug #58542.
4230
4231 2004-05-16      Patrik Torstensson <totte@hiddenpeaks.com>
4232
4233         * HttpRuntime (Init): Removed old todo
4234         * HttApplication : Implemented IHttpHandlerFactory recycling
4235         
4236 2004-04-28      Patrik Torstensson
4237
4238         * HttpApplicationState.cs: Performance, usage of ReaderWriter lock,
4239         removed MonoTodo
4240
4241 2004-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4242
4243         * HttpUtility.cs: return null in HtmlDecode for null input instead of
4244         throwing an exception. Patch by Jan Jaros (bug #57083).
4245
4246 2004-04-10  Vladimir Vukicevic  <vladimir@pobox.com>
4247
4248         * TimeoutManager.cs: Swap the order of initialization of contexts
4249         and the Timer, to avoid race condition of CheckTimeouts being called
4250         before contexts gets initialized.
4251
4252 2004-03-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4253
4254         * HttpRequestStream.cs: patch from Jan Jaros that fixes bug #56080.
4255         Now the posted file content does not have the boundaries and headers
4256         included.
4257
4258 2004-03-25  Alon Gazit <along@mainsoft.com>
4259
4260         * HttpRequest.cs: fix ValidateCookieCollection() to prevent
4261         InvalidCastException.
4262
4263 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4264
4265         * HttpValueCollection.cs: don't UrlDecode cookies. Fixes bug #55254.
4266
4267 2004-03-01  Larry Ewing  <lewing@ximian.com>
4268
4269         * HttpUtility.cs: fix UrlEncodeToBytes count check.
4270
4271 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4272
4273         * HttpServerUtility.cs:
4274         * HttpUtility.cs: added some checks for null. Fixed UrlPathEncode (bug
4275         #53670).
4276
4277 2004-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4278
4279         * HttpUtility.cs: fixed length check. Closes bug #54201.
4280         Thanks to Michal Moskal. Use MemoryStream instead of an ArrayList when
4281         decoding.
4282
4283 2004-02-11  Jackson Harper <jackson@ximian.com>
4284
4285         * TraceData.cs: Use ToString for cookie/header/var name values so
4286         null is handled properly.
4287         
4288 2004-02-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4289
4290         * HttpApplication.cs: ApplicationState is inited by the factory so,
4291         return that value in the property. when we use the context Session,
4292         cache it in the instance field.
4293
4294         * HttpApplicationFactory.cs: fixed target Type for the event when
4295         hooking application and module events. Initialize application
4296         and session scope objects. Fixes non-aplication events hook up.
4297
4298         * HttpStaticObjectsCollection.cs: added StaticItem and delay the
4299         creation of the objects until they are requested.
4300
4301 2004-01-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4302
4303         * HttpApplicationFactory.cs: fixlet for session events hook.
4304
4305 2004-01-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4306
4307         * HttpApplicationFactory.cs: attach all events from Type and BaseType
4308         at the same time. Fixes bug #53454.
4309
4310 2004-01-27  Jackson Harper <jackson@ximian.com>
4311
4312         * HttpCachePolicy.cs: varybyparams::GetResponseHeader can return
4313         null now, dont hadd the header if it does.
4314         * HttpCacheVaryByParams.cs: Return null if there are no items.
4315
4316 2004-01-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4317
4318         * HttpCachePolicy.cs: it's not public.
4319         * HttpRuntime.cs: wait for requests before disposing the queue.
4320
4321 2004-01-15  Jackson Harper <jackson@ximian.com>
4322
4323         * HttpCachePolicy.cs: Fix typo causing varyby params headers to be
4324         created when they shouldn't be.
4325         
4326 2004-01-14  Jackson Harper <jackson@ximian.com>
4327
4328         * TraceData.cs: Fix some typos in the output text. Fix control
4329         position when adding controls recursively.
4330         
4331 2004-01-14  Jackson Harper <jackson@ximian.com>
4332
4333         * HttpCachePolicy.cs: Expose duration and sliding properties.
4334         
4335 2004-01-14  Jackson Harper <jackson@ximian.com>
4336
4337         * HttpCachePolicy.cs: Add an event that is fired when the
4338         cacheability is updated. The response uses this to determine
4339         whether or not it needs to cache itself.
4340         * HttpResponse.cs: When the cacheability is updated either create
4341         or dispose of the cached raw response based on whether or not we
4342         wil need it. This allows output caching to be controlled
4343         programatically.
4344         
4345 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4346
4347         * HttpContext.cs: add setter for ConfigTimeout.
4348         * HttpException.cs: added Description property and HTML encode some
4349         unescaped values.
4350
4351         * HttpRequest.cs: support request validation.
4352
4353         * HttpRequestValidationException.cs: added message and description.
4354
4355         * HttpServerUtility.cs: implemented ScriptTimeout.
4356
4357 2004-01-11  Jackson Harper <jackson@ximian.com>
4358
4359         * TraceManager.cs: Dont crash if there is no trace config element.
4360         
4361 2004-01-11  Jackson Harper <jackson@ximian.com>
4362
4363         * HttpRequest.cs: Add property for determining if the request is
4364         local or not.
4365         
4366 2004-01-10  Jackson Harper <jackson@ximian.com>
4367
4368         * TraceContext.cs: Handle tracing when it is enabled in the config
4369         file but not on the page.
4370         * TraceManager.cs: Get settings from the configuration object.
4371         * HttpRuntime.cs: Create trace manager in the first request start
4372         so it can get configuration settings.
4373         
4374 2004-01-10  Jackson Harper <jackson@ximian.com>
4375
4376         * TraceContext.cs: Save the request path in the trace data.
4377         * TraceData.cs: Add RequestPath property, make some rendering
4378         methods internal static so the TraceHandler can use them.
4379         * TraceManager.cs: Expose trace data, add a method for clearing
4380         trace data.
4381         
4382 2004-01-10  Jackson Harper <jackson@ximian.com>
4383
4384         * HttpRuntime.cs: Add trace manager
4385         * TraceManager.cs: New class for handling trace configuration and
4386         storing trace data objects.
4387         * TraceContext.cs: Save trace data to the trace manager. Fix typo.
4388         
4389 2004-01-10  Jackson Harper <jackson@ximian.com>
4390
4391         * TraceData.cs: New class for storing trace data. Data is stored
4392         here instead of the trace context so it can be saved and accessed
4393         from the trace handler.
4394         * TraceContext.cs: Save data in the TraceData object, let the
4395         trace data object handle the rendering.
4396         
4397 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4398
4399         * HttpRequest.cs: use ContentEncoding for QueryString. Fixes bug #52577.
4400         Thanks to Jan Jaros (mono-bug@jerryweb.info).
4401
4402         * HttpRequestValidationException.cs: fix comment.
4403
4404 2004-01-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4405
4406         * HttpException.cs: default to error 500. Fixes bug #52623.
4407
4408 2004-01-04  Jackson Harper <jackson@ximian.com>
4409
4410         * TraceContext.cs: Store and render trace info times. Also render
4411         cookie sizes. Remove debug code.
4412         
4413 2004-01-04  Jackson Harper <jackson@ximian.com>
4414
4415         * HttpResponse.cs: Set the cached response date header so it can
4416         be updated.
4417         * HttpResponseHeader.cs: Let values be set so we can update cached 
4418         response header values.
4419         
4420 2004-01-04  Jackson Harper <jackson@ximian.com>
4421
4422         * HttpResponse.cs: Implement RemoveOutputCacheItem.
4423         
4424 2004-01-04  Jackson Harper <jackson@ximian.com>
4425
4426         * HttpCachePolicy.cs: Add internal method to get the vary by custom string
4427         * HttpCacheVaryByHeaders.cs: Add internal method to get the header names.
4428         
4429 2004-01-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4430
4431         * HttpRuntime.cs: implemented MachineConfigurationDirectory,
4432
4433 2004-1-1  Alon Gazit <along@mainsoft.com>
4434         * HttpWriter.cs: add check in Write() in order to prevent
4435         NullReferenceException.
4436
4437 2004-1-1  Alon Gazit <along@mainsoft.com>
4438         * HttpResponse.cs: implemented ExpiresAbsolute and Expires.
4439
4440 2003-12-18  Jackson Harper <jackson@ximian.com>
4441
4442         * TraceContext.cs: Write () methods are not warnings.
4443         
4444 2003-12-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4445
4446         * HttpBrowserCapabilities.cs: added GetClrVersions ().
4447         * HttpCachePolicy.cs: added SetAllowResponseInBrowserHistory ().
4448         * HttpContext.cs: added set_Current and RewritePath (s, s, s) for 1.1.
4449         * HttpRequest.cs: added set_ContentType, SetPathInfo and ValidateInput.
4450         * HttpRequestValidationException.cs: new class for 1.1
4451         * HttpResponse.cs: added RedirectLocation.
4452         * HttpRuntime.cs: added UnloadAppDomain.
4453         * HttpServerUtility.cs: Execute (s, t, b) is internal for < 1.2
4454         * HttpUtility.cs: copied UrlPathEncode from HttpServerUtility.
4455         * HttpWorkerRequest.cs: added [ComVisible] and made the ctor public.
4456
4457 2003-12-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4458
4459         * HttpContext.cs: implemented IsCustomErrorEnabled and
4460         IsDebuggingEnabled. Added internal ErrorPage property.
4461
4462         * HttpRuntime.cs: on error, check if we have a custom error page enabled
4463         to handle it and redirect.
4464
4465         * HttpResponse.cs: added RedirectCustomError (), which actually does
4466         the redirection to the error page.
4467         
4468 2003-12-16  Jackson Harper <jackson@ximian.com>
4469
4470         * TraceContext.cs: Render all the data, and the stylesheet.
4471         
4472 2003-12-16  Jackson Harper <jackson@ximian.com>
4473
4474         * TraceContext.cs: Add incomplete render method.
4475         
4476 2003-12-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4477
4478         * CapabilitiesLoader.cs: loads browser detection and capabilities data
4479         from browscap.ini file by Gary J. Keith.
4480
4481         * HttpBrowserCapabilities.cs: removed almost all TODOs.
4482
4483         * HttpRequest.cs: fixed Browser property.
4484
4485 2003-12-15  Jackson Harper <jackson@ximian.com>
4486
4487         * TraceContext.cs: Initial implementation of storing data.
4488         * HttpContext.cs: Create and expose a trace object.
4489         
4490 2003-12-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4491
4492         * HttpApplication.cs: ThreadAbortException is ok on Redirect.
4493         * HttpContext.cs: added TimeoutPossible property.
4494         * HttpResponse.cs: throw ThreadAbortException if End () is called within
4495         a step in which is possible to timeout.
4496
4497         Fixes bug #51703.
4498
4499 2003-12-04  Jackson Harper <jackson@ximian.com>
4500
4501         * HttpRequest.cs: Cleanup method.
4502         
4503 2003-12-04  Jackson Harper <jackson@ximian.com>
4504
4505         * HttpValueCollection.cs: Allow blank value names. Posting
4506         <blank>=SomeValue is valid. And occurs if a radio button does
4507         not have its name set.
4508         
4509 2003-12-03  Jackson Harper <jackson@ximian.com>
4510
4511         * HttpResponse.cs: Actually apply an app path modifier in
4512         ApplyAppPathModifer and add a method to set the app path modifier.
4513         * HttpRequest.cs: Add utility method for setting a request header.
4514         
4515 2003-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4516
4517         * HttpApplication.cs: handle FileNotFound and DirectoryNotFound
4518         exceptions when creating the handler to generate a better error page.
4519
4520         * HttpException.cs: display the http_code if available.  Changed all
4521         \n by \r\n to make the hidden stack trace readable.
4522         
4523         * StaticFileHandler.cs: don't send the real path in th eerror.
4524
4525 2003-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4526
4527         * HttpContext.cs: updated GetConfig and GetAppConfig to new API.
4528         
4529         * HttpResponse.cs: separate initialization of the HttpWriter, as it
4530         tries to read configuration settings while the config. system is not
4531         available (ie, before the first request).
4532         
4533         * HttpRuntime.cs: delayed queueManager and response writer
4534         initialization until the configuration system is working.
4535
4536 2003-11-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4537
4538         * HttpRuntime.cs: added request queue handling.
4539
4540         * QueueManager.cs: simple request queue.
4541         
4542         * TimeoutManager.cs: added some locks to prevent the enumerator used in
4543         CheckTimeouts to be out of synch.
4544
4545 2003-11-25  Jackson Harper <jackson@ximian.com>
4546
4547         * HttpStaticObjectsCollection.cs: Add methods for serialization
4548         and conversion to/from byte arrays.
4549         
4550 2003-11-21  Jackson Harper <jackson@ximian.com>
4551
4552         * HttpResponse.cs: When caching data set the content length in the
4553         cached repsonse so that only that amount will be written back to
4554         the client. Add method to write a range of binary data.
4555         * HttpCacheVaryByParams.cs: Add method to retrieve param names.
4556         
4557 2003-11-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4558
4559         * HttpApplication.cs:
4560         * HttpContext.cs:
4561         * HttpRuntime.cs: add timeout handling.
4562         * TimeoutManager.cs: new class that takes care of aborting threads on
4563         timeout.
4564
4565 2003-11-19  Jackson Harper <jackson@ximian.com>
4566
4567         * HttpWriter.cs: Use a constant for the buffer size so the cache
4568         can get the buffer size. Add method to get the buffer.
4569         * HttpResponse.cs: Methods for getting data to cache, and setting
4570         vars from the cache.
4571         * HttpCachePolicy.cs: Expose a pages cache expire time.
4572         
4573 2003-11-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4574
4575         * HttpResponse.cs: 
4576         * HttpWriter.cs: some fixes to allow closing a response stream without
4577         messing the rest.
4578
4579 2003-11-13  Jackson Harper  <jackson@ximian.com>
4580
4581         * HttpCachePolicy.cs: Make sure cacheability and maxage get
4582         set. Add method to set Http response header data
4583         * HttpCacheVaryByParams.cs: Add method to create a response header.
4584         * HttpCacheability.cs: Add ServerAndPrivate and ServerAndNoCache.
4585         * HttpResponse.cs: Set cache headers.
4586         
4587 2003-11-11 Ben Maurer  <bmaurer@users.sourceforge.net>
4588
4589         * HttpModuleCollection.cs (GetKey): Recursion, again!
4590
4591 2003-11-11 Ben Maurer  <bmaurer@users.sourceforge.net>
4592
4593         * HttpClientCertificate.cs (ValidUntil): recursion!
4594
4595 2003-11-08 Ben Maurer  <bmaurer@users.sourceforge.net>
4596
4597         * SiteMapNode.cs (GetDataSourceView): Implement.
4598         * SiteMapProvider.cs: Typo fixing.
4599         * XmlSiteMapProvider.cs: We shouldnt resolve here.
4600         
4601 2003-11-08 Ben Maurer  <bmaurer@users.sourceforge.net>
4602
4603         * SiteMap.cs (Init): implement a hack that doesnt need the config
4604         stuff. Should do that later.
4605         * SiteMapNodeCollection (OnValidate): Fix recursion.
4606         * SiteMapProvider.cs: We dont implement some culture stuff work
4607         around it. Fix typo.
4608         * XmlSiteMapProvider.cs: Added.
4609         
4610 2003-11-07 Ben Maurer  <bmaurer@users.sourceforge.net>
4611
4612         * ISiteMapProvider.cs:
4613         * SiteMap.cs:
4614         * SiteMapNode.cs:
4615         * SiteMapNodeCollection.cs:
4616         * SiteMapProvider.cs:
4617         * SiteMapProviderCollection.cs: V2 sitemap related stuff.
4618
4619 2003-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4620
4621         * HttpRequest.cs: don't attempt to read more bytes than specified
4622         content length.
4623
4624 2003-11-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4625
4626         * HttpRequest.cs:
4627         * HttpResponse.cs:
4628         * HttpUtility.cs:
4629         * HttpValueCollection.cs: encoding fixes/updates.
4630
4631         * HttpWriter.cs: when updating the encoding, flush the existing stream.
4632         Encoding updates.
4633
4634 2003-11-04 Ben Maurer  <bmaurer@users.sourceforge.net>
4635
4636         * HttpContext.cs (IsCustomErrorEnabled): dont throw exception, just
4637         return false (which makes sense, as the custom errors *arent* enabled;
4638         ie they dont work.
4639         * HttpResponseStream.cs: you actually can write with len = 0
4640
4641 2003-11-03 Jackson Harper <jackson@ximian.com>
4642
4643         * HttpResponse.cs (ContentEncoding): Throw
4644         ArgumentNullException. Patch by Yaron Shkop.
4645         
4646 2003-10-30  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4647
4648         * HttpMultipartContentParser.cs : Quick fix for cygwin build. 
4649           CSC complains that constant char cannot be casted as byte.
4650
4651 2003-10-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4652
4653         * HttpApplication.cs: added AssemblyLocation property.
4654
4655 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4656
4657         * HttpApplicationFactory.cs: use NoParamsInvoker.
4658         * HttpRequest.cs: support request filters.
4659         * HttpRequestStream.cs: mono-stylized and added new Set method.
4660
4661         * NoParamsInvoker.cs: proxy class to invoke user-provided methods
4662         without parameters that are invoked by EventHandlers.
4663
4664 2003-10-13  Lluis Sanchez Gual <lluis@ximian.com>
4665
4666         * HttpResponse.cs: Changed harcoded switch to en-US culture to a switch
4667           to invariant culture.
4668
4669 2003-10-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4670
4671         * HttpResponse.cs:
4672         * HttpServerUtility.cs: change the response writer in Execute. Thanks
4673         to Rich Alimi <rich@velvetsea.net> for noticing this.
4674
4675 2003-10-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4676
4677         * HttpApplicationFactory.cs: support for wiring up events without
4678         parameters.
4679
4680 2003-10-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4681
4682         * HttpUtility.cs: small memory usage reduction.
4683
4684 2003-10-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4685
4686         * HttpApplication.cs: pass the Uri, not the file path to
4687         when looking for a handler.
4688
4689 2003-09-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4690
4691         * HttpRequest.cs: small fix needed when reading big POST data.
4692
4693 2003-09-04  Lluis Sanchez Gual <lluis@ximian.com>
4694
4695         * HttpRequest.cs: Url property: use GetLocalAddress() to get the address
4696           (this will get the address from the request headers).
4697
4698 2003-09-04  Lluis Sanchez Gual <lluis@ximian.com>
4699
4700         * HttpServerUtility.cs: In Transfer(), preserve the query string if
4701           told to do so.
4702
4703 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4704
4705         * HttpApplication.cs: ensure we do all the EndRequest steps. Don't
4706         filter the output on error.
4707         
4708         * HttpResponse.cs: modified DoFilter to allow bypassing filtering.
4709
4710 2003-08-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4711
4712         * HttpApplication.cs: when the request is completed or an
4713         error happens, execute all the delegates attached to EndRequest, not
4714         only the last one. This makes xsp/test/authtest work again.
4715         
4716         * HttpMethodNotAllowedHandler.cs: fixed description for http
4717         status code.
4718
4719 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4720
4721         * HttpRequest.cs: quick way of checking that the path is within the
4722         root for the application. Thanks to Johannes for reporting.
4723         
4724         * HttpRuntime.cs: use the status code from teh exception when it'ss a
4725         HttpException.
4726
4727         * StaticFileHandler.cs: forbidden is 403.
4728
4729 2003-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4730
4731         * HttpServerUtility.cs: fixed path and query. Path by Rich Alimi
4732         <rich@velvetsea.net>.
4733
4734 2003-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4735
4736         * HttpException.cs: make the unhandled error more like the MS one.
4737         * HttpRuntime.cs: set a 500 error code on unhandled exceptions.
4738
4739 2003-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4740
4741         * HttpResponse.cs: flush headers when the body length is 0.
4742         * StaticFileHandler.cs: added If-Modified-Since handling patch slightly
4743         modified from the original by Piers Haken <piersh@friskit.com>.
4744
4745 2003-08-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4746
4747         * HttpResponse.cs: another patch from totte and me. This one prevents
4748         writing output if the client have disconnected and filters the data
4749         when there's a non-final Flush in the middle of the process.
4750
4751 2003-08-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4752
4753         * HttpApplication.cs: fixed typos. Closes bug #44197.
4754
4755 2003-08-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4756
4757         * HttpApplication.cs:
4758         * HttpApplicationFactory.cs: fix duplicate application OnStart events.
4759
4760         Patch by Patrik Torstensson.
4761
4762 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4763
4764         * HttpApplicationFactory.cs: use the correct Delegate.CreateDelegate
4765         overload. The previous one only admits static methods.
4766
4767 2003-08-01  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
4768
4769         * ProcessModelInfo.cs: Fixed signature
4770
4771 2003-07-30  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
4772
4773         * WebCategoryAttribute.cs: Implemented localization
4774         * WebSysDescriptionAttribute.cs: Implemented localization
4775
4776 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4777
4778         * HttpRuntime.cs: also clear the headers that may have been set upon
4779         error processing the request.
4780
4781 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4782
4783         * HttpResponseStreamProxy.cs: reformatted. Fixed infinite recursion in
4784         Write method.
4785
4786         * HttpWriter.cs: flush the filter after writing.
4787
4788 2003-07-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4789
4790         * HttpWriter.cs: avoid duplicating the MemoryStream byte buffer.
4791
4792 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4793
4794         * HttpContext.cs: Session doesn't have a setter.
4795
4796         * HttpResponse.cs: Request is private.
4797
4798 2003-07-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4799
4800         * HttpRequest.cs: fixed Headers property. It was getting known headers
4801         values instead of known headers names.
4802
4803 2003-07-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4804
4805         * HttpApplication.cs: prevent nullref if an error happens before context
4806         is set.
4807         * HttpException.cs: small fix in the stack trace sent.
4808         * HttpUtility.cs: the lock is not needed.
4809
4810 2003-06-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4811
4812         * HttpRequest.cs: added REMOTE_PORT.
4813         * HttpValueCollection.cs: fixed bug #45490.
4814
4815 2003-05-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4816
4817         * HttpApplication.cs:
4818         * HttpApplicationFactory.cs: fire application start and session
4819         start/end events.
4820
4821 2003-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4822
4823         * HttpException.cs: encode as HTML the inner exception that
4824         is appended as a comment at the end of error pages.
4825
4826 2003-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4827
4828         * HttpWriter.cs: don't do anything in Flush. Fixes #42249.
4829
4830 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4831
4832         * HtmlizedException.cs: added more virtual methods.
4833
4834         * HttpException.cs:  some work on the output when there's a source
4835         file present.
4836
4837 2003-04-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4838
4839         * HtmlizedException.cs: simplified to cope with the new interface.
4840
4841         * HttpApplicationFactory.cs: use the application file parser to get the 
4842         application Type.
4843         
4844         * HttpException.cs: small changes. Needs some more work on
4845         ParseExceptions.
4846         
4847 2003-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4848
4849         * HttpRequest.cs: fixed Url property.
4850
4851 2003-03-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4852
4853         * HtmlizedException.cs:
4854         * HttpException.cs: display the correct line number in error messages.
4855
4856 2003-03-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4857
4858         * HttpCachePolicy.cs: implemented all TODOs.
4859         * HttpRequestStream.cs: make it internal.
4860
4861 2003-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4862
4863         * HttpContext.cs: implemented RewritePath in other way.
4864         * HttpRequest.cs: removed SetPhysicalPath and added SetForm.
4865         * HttpServerUtility.cs: implemented Transfer (string, bool).
4866
4867 2003-03-16  Daniel Lopez Ridruejo <daniel @ rawbyte.com>
4868         * HttpContext.cs : Implemented RewritePath
4869         * HttpRequest.cs : Added internal function SetPhysicalPath
4870
4871 2003-03-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4872
4873         * HttpServerUtility.cs: implemented Transfer ().
4874
4875 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4876
4877         * HttpRuntime.cs: Cache no longer have a Dispose method.
4878
4879         * HttpServerUtility.cs: removed MonoTODO.
4880
4881 2003-03-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4882
4883         * HttpHelper.cs: store the values in an ArrayList to get them in correct
4884         order.
4885
4886 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4887
4888         * HttpApplicationFactory.cs: Global.asax takes precedence over
4889         global.asax if it exists.
4890
4891         * HttpRequest.cs: use allowCrossAppMapping in MapPath.
4892
4893 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4894
4895         * HttpApplication.cs: CreateHttpHandler is now internal.
4896
4897         * HttpRequest.cs: allow setting QueryStringRaw, which
4898         invalidates the data obtained from the previous value. Added internal
4899         SetFilePath method.
4900
4901         * HttpServerUtility.cs: implemented Execute and GetLastError.
4902
4903 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4904
4905         * HttpServerUtility.cs: style.
4906
4907 2003-02-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4908
4909         * HttpApplication.cs: only execute the EndRequest step on error
4910         condition or request marked as completed. This prevent page events from
4911         being called when, for example, the url authorization module forbids
4912         the request.
4913
4914 2003-02-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4915
4916         * HttpRequest.cs: implemented the indexer.
4917
4918 2003-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4919
4920         * HtmlizedException.cs: base class for exceptions that makes it easy to
4921         generate error pages.
4922
4923         * HttpException.cs: improved error displaying.
4924
4925         * HttpRuntime.cs: removed debugging output.
4926
4927 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4928
4929         * HttpApplication.cs: display the error instead of hanging when we get
4930         any error before the last step of the request.
4931
4932 2003-02-04  Tim Haynes <thaynes@openlinksw.com>
4933
4934         * HttpApplicationFactory.cs: fixed HttpRuntime.Close() to decrement
4935         instance counter.
4936
4937 2003-01-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4938
4939         * HttpRequest.cs: added BaseVirtualDir property and use it in MapPath.
4940
4941 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4942
4943         * HttpRequest.cs: implemented CurrentExecutionFilePath.
4944
4945 2003-01-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4946
4947         * HttpApplication.cs: keep _lasterror if no context. Attach
4948         application events *after* modules initialization (if not, User is not
4949         set when the user handler is called).
4950         
4951         * HttpApplicationFactory.cs: made all methods related to
4952         AttachEvents static. I will fix OnStart/OnEnd for application and
4953         session later.
4954         
4955         * HttpRequest.cs: don't initialize cookies twice.
4956
4957 2003-01-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4958
4959         * HttpResponse.cs:
4960         (ApplyAppPathModifiers): return the root directory for "".
4961
4962 2003-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4963
4964         * HttpUtility.cs: fixed HtmlDecode to avoid ArgumentOutOfRangeException.
4965
4966 2003-01-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4967
4968         * HttpApplication.cs: added new state to handle default authentication.
4969
4970 2003-01-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4971
4972         * HttpContext.cs: removed hack to get the User.
4973
4974 2003-01-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4975
4976         * HttpUtility.cs: fixed bug #36038. Thanks to juancri@tagnet.org for
4977         reporting the bug and how to fix it.
4978
4979 2002-12-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4980
4981         * HttpCookie.cs: send 'expires' in the header.
4982
4983 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4984
4985         * HttpValueCollection.cs: patch from Botjan Vizin 
4986         <bostjan.vizin@siol.net> that implements ToString (bool).
4987
4988 2002-12-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4989
4990         * HttpApplicationFactory.cs: add the context as parameter when building
4991         the application Type.
4992         
4993         * HttpCookie.cs: new internal constructor.
4994         * HttpCookieCollection.cs: new internal method to make a cookie expire.
4995
4996         * HttpRequest.cs: MapPath fixes.
4997         * HttpResponse.cs: implemented ApplyAppPathModifier.
4998         * HttpRuntime.cs: fixed typo in AppDomainAppVirtualPath.
4999
5000 2002-12-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5001
5002         * HttpContext.cs: hack to create a default user when there's no one.
5003         Implemented GetConfig (string).
5004
5005         * HttpRequest.cs: fixes to MapPath (string).
5006
5007 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5008
5009         * HttpRuntime.cs: avoid nulls and exception when getting resource
5010         format strings.
5011
5012         * StaticFileHandler.cs: added file name to error message.
5013
5014 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5015
5016         * HttpResponse.cs: avoid sending chunked content for HTTP/1.1.
5017
5018 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5019
5020         * HttpApplicationFactory.cs: get the events from the application class,
5021         fire Application/Session Start/End and add the others as application
5022         events.
5023
5024 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5025
5026         * HttpApplicationFactory.cs: compile global.asax file if it exists.
5027
5028 2002-11-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5029
5030         * HttpRequest.cs: provide a default Browser until we detect it.
5031         * HttpResponse.cs:
5032         (End): do not close the connection here.
5033         (Flush (bool)): send the headers when, for example, Redirect () is
5034         called.
5035
5036 2002-11-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5037
5038         * HttpException.cs: simple error output.
5039
5040 2002-11-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5041
5042         * HttpApplication.cs: style.
5043         * HttpException.cs: style.
5044         * HttpRuntime.cs: only flush the response if there are no errors.
5045         Otherwise, write an error output.
5046         * HttpWriter.cs: change Unicode to UTF8.
5047
5048 2002-11-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5049
5050         * HttpApplication.cs: don't begin the request using ExecuteNextAsync
5051         (it fails to work on NetServ).
5052
5053         * HttpWorkerRequest.cs: typo.
5054
5055 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5056
5057         * HttpValueCollection.cs: the value may contain trailing '=' as it is
5058         UrlEncoded. Don't split name=value based on '='.
5059
5060 2002-11-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5061
5062         * HttpCookie.cs: made GetCookieHeader internal.
5063
5064         * HttpRequest.cs: get cookies from request.
5065
5066         * HttpResponse.cs: send cookies. Implemented
5067         AddFileDependencies (). Added check for _Writer == null in Flush
5068         (Patrik ;-). Clear the content if HEAD or SupressContent == true.
5069         Removed redirect hack used in old server.
5070
5071 2002-10-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5072
5073         * HttpRequest.cs: fixed GetRawContent (). Now it only tries to read at
5074         most ContentLength bytes.
5075
5076         * HttpResponse.cs: now it sends the headers. Added
5077         X-Powered-By header :-).
5078
5079         * HttpRuntime.cs: fixed typo.
5080
5081         * HttpValueCollection.cs: cosmetic changes.
5082
5083 2002-10-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5084
5085         * HttpApplication.cs: reenabled a few lines of code
5086         (ThreadPool already fixed). 
5087         
5088         * HttpRequest.cs:
5089         * HttpResponse.cs:
5090         * HttpUtility.cs:
5091         * HttpValueCollection.cs:
5092         * HttpWriter.cs: Use WebEncoding.Encoding.
5093
5094 2002-10-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5095
5096         * HttpWriter.cs: changed encoding of the writer from Unicode to UTF8.
5097         This fixes sending bytes and allows mixing byte with chars.
5098
5099 2002-10-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5100
5101         * HttpResponse.cs: implemented WriteFile methods.
5102         * MimeTypes.cs: removed duplicated entries.
5103
5104 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5105
5106         * HttpResponse.cs: don't throw exception in a couple of
5107         methods not yet implemented.
5108
5109 2002-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5110
5111         * HttpApplication.cs: fixed type and handle factories when creating
5112         IHttpHandler for a request.
5113
5114 2002-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5115
5116         * HttpApplication.cs: use handlers from configuration.
5117         * HttpContext.cs: get handlers from ConfigurationSettings.
5118
5119 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5120
5121         * HttpMethodNotAllowedHandler.cs:
5122         * HttpRuntime.cs:
5123         * StaticFileHandler.cs: Modified file.
5124
5125         * HttpUtility.cs: implemented all missing methods.
5126
5127
5128 2002-09-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5129
5130         * System.Web/HttpApplication.cs: use the static file handler.
5131         * System.Web/HttpForbiddenHandler.cs: handler to forbid access.
5132         * System.Web/HttpMethodNotAllowedHandler.cs: handler for method not
5133         allowed.
5134         
5135         * System.Web/HttpUtility.cs: finished all UrlDecode methods.
5136         * System.Web/MimeTypes.cs: map from file extension to MIME type.
5137         * System.Web/StaticFileHandler.cs: serves static files
5138
5139 2002-09-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5140
5141         * System.Web/HttpApplication.cs:
5142         * System.Web/HttpApplicationFactory.cs:
5143         * System.Web/HttpRequest.cs:
5144         * System.Web/HttpRuntime.cs: we are now able to compile pages and use
5145         HttpApplication, HttpRuntime and SimpleWorkerRequest.
5146
5147 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5148
5149         * HttpApplication.cs: added some missing methods.
5150         * HttpApplicationFactory.cs: get event handlers for the application.
5151         * HttpAsyncResult.cs: little fixes.
5152         * HttpRequest.cs: make Encoding work even with no worker request.
5153
5154 2002-08-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5155
5156         * HttpWorkerRequest.cs: mcs doesn't go crazy. It's just me, that forgot
5157         to add HttpMapPath to the list file...
5158
5159 2002-08-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5160
5161         * HttpWorkerRequest.cs: fixes compilation with mcs. I will add a bug
5162         report when i get a test case.
5163
5164 2002-08-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5165
5166         * HttpApplicationFactory.cs:
5167         * HttpCachePolicy.cs:
5168         * HttpResponseHeader.cs:
5169         * HttpResponseStream.cs:
5170         * HttpResponseStreamProxy.cs:
5171         * HttpValueCollection.cs: misc. fixes based on class status page.
5172
5173         * IHttpMapPath.cs: New file.
5174
5175         * HttpRequest.cs: implemented ContentEncoding.
5176         * HttpWorkerRequest.cs: mono-stylized and implemented
5177         SendResponseFromMemory.
5178
5179 2002-08-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5180
5181         * HttpContext.cs: reformatted.
5182         * HttpStaticObjectsCollection.cs: implemented GetEnumertor, CopyTo and
5183         the indexer.
5184
5185 2002-08-05  Patrik Torstensson <ptorsten@hotmail.com>
5186
5187         * HttpApplication.cs: Implemented a state machine to allow handling of
5188         HttpModules and HttpHandlers. Implementation of async handlers. 
5189                                                                  
5190         * HttpApplicationFactory.cs: Factory for creating HttpApplication
5191         instances, including caching.
5192         
5193         * HttpRuntime.cs: Usage of the new HttpApplicationFactory to get a
5194         application instance to execute requests in and implementation of 
5195         request execution (still no request queue). 
5196                                                          
5197         * HttpAsyncResult.cs: New file to handle async module results.                                          
5198                                                          
5199         * HttpRequest.cs: Change signature of Dispose
5200         * HttpResponse.cs: new internal method allowing filtering to happen
5201         during the request flow in the state machine.
5202
5203 2002-07-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5204
5205         * HttpApplication.cs: events were not being initialized.
5206
5207 2002-07-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5208
5209         * ProcessModelInfo.cs: fixed compilation.
5210
5211 2002-07-25  Tim Coleman <tim@timcoleman.com>
5212         * ProcessModelInfo.cs:
5213                 New class added
5214         * HttpParseException.cs:
5215         * HttpCompileException.cs:
5216         * HttpUnhandledException.cs:
5217                 Internal constructors added to these
5218
5219 2002-07-24  Tim Coleman <tim@timcoleman.com>
5220         * ProcessInfo.cs: 
5221                 Fix constructor, reference to shutdownreason.
5222
5223 2002-07-24  Tim Coleman <tim@timcoleman.com>
5224         * HttpCachePolicy.cs:
5225                 Added stubbs to this class.
5226         * HttpCacheability.cs:
5227         * HttpCacheRevalidation.cs:
5228         * HttpValidationStatus.cs:
5229         * ProcessShutdownReason.cs:
5230         * ProcessStatus.cs:
5231         * TraceMode.cs:
5232                 Reorder the enumerations (and in some cases make
5233                 one-based) in order to agree with the .NET 
5234                 implementation, based on the class status page.
5235         * ProcessInfo.cs:
5236                 Implementation of this class.
5237
5238 2002-07-23  Tim Coleman <tim@timcoleman.com>
5239         * HttpCompileException.cs:
5240         * HttpParseException.cs:
5241         * HttpUnhandledException.cs:
5242                 New stubbs created.
5243         * HttpApplication.cs:
5244         * HttpBrowserCapabilities.cs:
5245                 Added missing methods stubbs and attributes based
5246                 on the class status page.  Also reformatted some
5247                 source for consistency.
5248
5249 2002-07-23  Tim Coleman <tim@timcoleman.com>
5250         * HttpUtility.cs: Moved entities hashtable into main
5251                 class as a static object, so we don't instantiate
5252                 a new one every time.  Also put the hashtable
5253                 building into a lock block.
5254
5255 2002-07-22  Tim Coleman <tim@timcoleman.com>
5256         * HttpUtility.cs: Cleanup of the code, implementation
5257                 of HtmlDecode/HtmlEncode functions
5258
5259 2002-07-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5260
5261         * HttpResponse.cs: quick&dirty hack to make redirection work. Should
5262         be out of there once we have SimpleWorkerRequest.
5263
5264 2002-07-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5265
5266         * HttpUtility.cs: little typo, big headache.
5267
5268 2002-07-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5269
5270         * HttpRuntime.cs: don't throw NotImplemented in a couple of methods.
5271
5272 2002-06-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5273
5274         * System.Web/HttpResponse.cs: 
5275
5276         Fixes based on class status page:
5277         
5278                 - Add attributes (DefaultEvent, ParseChildren).
5279                 - Fix declarations.
5280                 - Explicitly implement some interfaces (IPostBackDataHandler
5281                 and IPostBackEventHandler).
5282                 - Implemented some missing methods.
5283
5284 2002-06-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5285
5286         * HttpContext.cs:
5287         (Session): return null instead of throwing an exception.
5288
5289         * HttpRequest.cs:
5290         (HttpMethod): return RequestType if not set.
5291         (GetRawContent): return QueryString if we don't have a
5292         HttpWorkerRequest.
5293
5294         * HttpUtility.cs: fixed Decode and Encode.
5295
5296 2002-06-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5297
5298         * HttpApplication.cs:
5299         * HttpContext.cs: added System.Web.SessionState namespace.
5300
5301         * HttpSessionState.cs: removed. It is under
5302         System.Web.SessionState.
5303
5304 2002-06-10  Duncan Mak  <duncan@ximian.com>
5305
5306         * HttpBrowserCapabilities.cs (BackgroundSounds): Fixed typo.
5307
5308 2002-06-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5309
5310         * HttpRequest.cs: implemented Browser property.
5311
5312 2002-06-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5313
5314         * HttpBrowserCapabilities.cs: stubbed out.
5315
5316 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
5317
5318         * HttpRuntime.cs: Reformat file.
5319
5320 2002-05-07  Duncan Mak  <duncan@ximian.com>
5321
5322         * HttpBrowserCapabilities.cs: Added, replacing
5323         HttpBrowserCapabilites because of typo.
5324
5325         * HttpBrowserCapabilites.cs: Removed, replaced by above.
5326
5327         * HttpRequest.cs (Browser): Fixed typo.
5328
5329 2002-04-12  Patrik Torstensson <patrik.torstensson@labs2.com>
5330
5331         * HttpApplication.cs: Minor updates
5332         * HttpApplicationState.cs: Ready.
5333         * HttpClientCertificate.cs: Signature updates
5334         * HttpValueCollection.cs: ready
5335         * HttpStaticObjectsCollection.cs: ready
5336         * HttpResponseHeader.cs: made internal only
5337         * HttpResponse.cs: Signature updates
5338         * HttpPostedFile.cs: ready
5339         * HttpCacheVaryByHeaders.cs: ready (except communication to policy)
5340         * HttpCacheVaryByParams.cs: ready (except communication to policy)
5341         
5342         System.Web is now over 60% ready.. 
5343
5344 2002-04-11  Patrik Torstensson <patrik.torstensson@labs2.com>
5345
5346         * HttpException.cs: 95% ready, only windows dependent code left
5347         * HttpFileCollection.cs: Finished.
5348         * HttpRequest.cs: Minor fixes and fixed signature problems
5349         * HttpResponse.cs: Implementation of missing methods and signature problems
5350         * HttpResponseHeader.cs: Fixed signature problems
5351         * HttpRuntime.cs: Fixed signature problems
5352         * HttpServerUtility.cs: Added support for HttpApplication
5353         * HttpSessionState.cs: Fixed signature issues
5354         * HttpUtility.cs: fixed signature issues
5355         * HttpValueCollection.cs: Support for cookie parsing and fixed signature issues
5356         * HttpWorkerRequest.cs: Fixed small signature issue
5357         * HttpWriter.cs: Fixed signature issue
5358         * HttpApplication.cs: Basic implementation
5359         * HttpApplicationState.cs: Small fixes to support major change comming up
5360         * HttpBrowserCapabilities.cs: Added Type method
5361         * HttpClientCertificate.cs: Almost ready, needs to parse certificate.
5362         * HttpContext.cs: Fixed signature issues and added last methods.
5363         * HttpCookie.cs: Full implementation
5364         * HttpCookieCollection.cs: Full implementation
5365         * TraceContext.cs: Methods implemented.
5366         * HttpPostedFile.cs: Placeholder
5367         * HttpStaticObjectsCollection.cs: Placeholder
5368         * HttpModuleCollection.cs: Ready, will be used during the major revamp.
5369         
5370         * Fixed a number of other small signature problems also (class status page)
5371         
5372         
5373 2002-04-10  Patrik Torstensson <patrik.torstensson@labs2.com>
5374
5375     * HttpWorkerRequest.EndOfSendNotification.cs Removed (included in WorkerRequest)
5376     * Checkin of all new files (noted in last changenote)
5377
5378 2002-04-10  Patrik Torstensson <patrik.torstensson@labs2.com>
5379
5380     * HttpContext.cs: First implementation (basic support, few methods left to impl)
5381     * HttpException.cs: Partial implementation (basic support)
5382     * HttpHelper.cs: Header parse helper, used by runtime (non public)
5383     * HttpRequest.cs: Implementation (all methods there, not all fully impl)
5384     * HttpRequestStream.cs: Full implementation
5385     * HttpResponse.cs: Partial implementation(almost all methods)
5386     * HttpResponseHeader.cs: Header helper
5387     * HttpResponseStream.cs: Full implementation - Response stream support
5388     * HttpResponseStreamProxy.cs: Implementation - filter support
5389     * HttpRuntime.cs: Rewrite to support one IHttpModule (use for testing the runtime)
5390         * HttpServerUtility.cs: Implemented usage of HttpContext for methods
5391                                 and moved encoding functions to HttpUtility.
5392
5393     * HttpUtility.cs: Added encoding/decoding functions from HttpServerUtility and
5394                       added the Attribute encoding functions.
5395
5396     * HttpValueCollection.cs: Implementation.
5397     * HttpWorkerRequest.cs: Rewrite and implementation of all methods (ready)
5398     * HttpWriter.cs: Implementation (with filter support)    
5399
5400     * HttpFileCollection: Added dummy class (placeholder)
5401     * HttpApplication.cs: Added dummy class (placeholder)
5402     * HttpApplicationState.cs: Added dummy class (placeholder)
5403     * HttpBrowserCapabilities.cs: Added dummy class (placeholder)
5404     * HtttpCachePolicy.cs: Added dummy class (placeholder)
5405     * HttpClientCertificate.cs: Added dummy class (placeholder)
5406     * HttpSessionState.cs: Added dummy class (placeholder)
5407     * TraceContext.cs: Added dummy class (placeholder)
5408     
5409
5410 2002/04/10  Nick Drochak <ndrochak@gol.com>
5411
5412         * HttpServerUtility.cs: Fix build breaker.
5413
5414 2002-03-28  Wictor Wiln  <wictor@iBizkit.se>
5415
5416         * HttpServerUtils.cs : Added some more functionality
5417         
5418 2002-03-28  Martin Baulig  <martin@gnome.org>
5419
5420         * HttpServerUtils.cs (UrlDecode): You cannot implicitly cast a
5421         char to a string, use ToString() instead.
5422
5423 2002-03-16  Gaurav Vaish  <gavish@iitk.ac.in>
5424
5425         * WebCategoryAttribute.cs
5426                                : Added private attribute.
5427
5428 2002-03-16  Gaurav Vaish  <gavish@iitk.ac.in>
5429
5430         * HttpRuntime.cs       : Stubbed methods for
5431                   FormatStringResource(...) in agreement with the various
5432                   overloads available at String.Format(...)
5433
5434 2002-01-08  Gaurav Vaish  <gavish@iitk.ac.in>
5435
5436         * TODOAttribute.cs     : Added, as an internal class to the assembly
5437
5438 2002-01-03  Nick Drochak  <ndrochak@gol.com>
5439
5440         * HttpRuntime.cs: remove uneeded exception variable from catch and
5441         initialize remaining instance members to avoid compile warnings
5442
5443 2002-01-02  Nick Drochak  <ndrochak@gol.com>
5444
5445         * HttpRuntime.cs: fix spelling error/variable name change.
5446
5447 2001-12-18  Gaurav Vaish <gvaish@iitk.ac.in>
5448
5449         * HttpRuntime.cs       : Initial implementation
5450
5451 2001-08-29  Bob Smith  <bob@thestuff.net>
5452
5453         * HttpWorkerRequest.cs: Partial Implementation.
5454
5455 2001-08-16  Bob Smith  <bob@thestuff.net>
5456
5457          * HttpCookieCollection.cs, HttpCookie.cs: Bug fixes.
5458
5459 2001-08-09  Bob Smith  <bob@thestuff.net>
5460
5461          * BeginEventHandler.cs: Implemented.
5462          * EndEventHandler.cs: Implemented.
5463          * HttpCacheability.cs: Implemented.
5464          * HttpCacheRevalidation.cs: Implemented.
5465          * HttpCacheValidateHandler.cs: Implemented.
5466          * HttpCookieCollection.cs: Implemented.
5467          * HttpCookie.cs: Implemented.
5468          * HttpValidationStatus.cs: Implemented.
5469          * HttpWorkerRequest.EndOfSendNotification.cs: Implemented.
5470          * IHttpAsyncHandler.cs: Implemented.
5471          * IHttpHandler.cs: Implemented.
5472          * IHttpHandlerFactory.cs: Implemented.
5473          * IHttpModule.cs: Implemented.
5474          * ProcessShutdownReason.cs: Implemented.
5475          * ProcessStatus.cs: Implemented.
5476          * TraceMode.cs: Implemented.