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