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