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