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