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