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