2007-10-30 Igor Zelmanovich <igorz@mainsoft.com>
[mono.git] / mcs / class / System.Web / System.Web / ChangeLog
index a2f247fab717626c5542b2a24e7b419ceb09ae80..c70c21b5a26559ca8f8bda29e1eba5754697db29 100644 (file)
@@ -1,3 +1,341 @@
+2007-10-30 Igor Zelmanovich <igorz@mainsoft.com>
+
+       * HttpUtility.cs: fixed UrlPathEncode.
+
+2007-10-24  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * StaticFileHandler.cs: Modified 404 message to match MS.
+
+2007-10-24  Marek Habersack  <mhabersack@novell.com>
+
+       * HttpUtility.cs: MS.NET does not support the ';' query parameter
+       separator. Fixes bug #335615
+
+2007-10-18  Juraj Skripsky  <js@hotfeet.ch>
+
+       * StaticSiteMapProvider.cs: Replace Hashtables by Dictionaries,
+       don't allocate them on-demand, there will never be many
+       Provider instances around.
+       AddNode(): Check for duplicate keys before adding any item to
+       hashtables.
+       RemoveNode(): Use fact that Hashtable.Remove() never throws,
+       remove item from keyToNode as well, make symmetric to AddNode().
+       MapUrl(): Use VirtualPathUtility, allow for full urls
+       (e.g. http://www.google.com).
+       
+2007-10-17  Marek Habersack  <mhabersack@novell.com>
+
+       * StaticFileHandler.cs: fixed an bug with Mono running under
+       Windows operating systems which caused XSP to return source of the
+       requested page if the file name used in the request ended in any
+       number of spaces or dots. The problem lies in the way the Win32
+       subsystem treats such file names - it ignores the trailing
+       characters and allows the calling application to open a file on
+       disk even when its name does not contain the trailing characters
+       used in the open request. Such file names may be supported by the
+       underlying filesystem (e.g. NTFS) but they are not supported by
+       the I/O Win32 subsystem. The security issue is reported in
+       CVE security report CVE-2007-5473. Fixes bug #332401
+       
+2007-10-17  Igor Zelmanovich <igorz@mainsoft.com>
+
+       * HttpResponse.cs:
+       response status is sent after PreSendRequestHeaders invoked.
+       Redirect method set RedirectLocation property
+       fixes bug #334521
+               
+2007-10-15  Marek Habersack  <mhabersack@novell.com>
+
+       * HttpApplication.cs: do not return a non-existing bin directory
+       from BinDirectories. Patch from Atsushi Enomoto
+       <atsushi@ximian.com>, thanks! Fixes bug #332434. 
+
+2007-10-04  Marek Habersack  <mhabersack@novell.com>
+
+       * HttpApplication.cs: call the Init method after loading the
+       modules and hooking up application events. Fixes bug #330416.
+
+2007-10-01  Marek Habersack  <mhabersack@novell.com>
+
+       * HttpServerUtility.cs: set a flag when transferring control to
+       another page.
+
+       * HttpContext.cs: added an internal InTransit property to carry
+       information that HttpServerUtility.Transfer has been used, over to
+       the target page.
+
+2007-09-12  Juraj Skripsky <js@hotfeet.ch>
+
+       * StaticSiteMapProvider.cs (AddNode): Add message text to
+       InvalidOperationException (duplicate url case).
+
+2007-09-06  Marek Habersack  <mhabersack@novell.com>
+
+       * HttpCachePolicy.cs: implemented setting the ETag and
+       Last-Modified headers from file dependencies.
+
+       * HttpResponse.cs: implemented file dependency methods.
+
+2007-09-01  Marek Habersack  <mhabersack@novell.com>
+
+       * HttpRuntime.cs: rewrote the app_offline.htm support. It now uses
+       filesystem watchers instead of checking for existence of the
+       file(s) at the beginning of every request. No performance penalty
+       that way.
+
+2007-08-31  Marek Habersack  <mhabersack@novell.com>
+
+       * HttpApplicationFactory.cs: added methods to enable/disable
+       watchers.
+
+       * HttpRuntime.cs: implemented handling of app_offline.htm file in
+       the application root directory. Fixes bug #81127.
+
+       * HttpResponse.cs: make sure neither context or
+       context.ApplicationInstance are null in End ().
+
+2007-08-27  Marek Habersack  <mhabersack@novell.com>
+
+       * HttpCookie.cs: make sure a key is output even if it has no
+       values set. Fixes bug #81333.
+
+2007-08-23  Marek Habersack  <mhabersack@novell.com>
+
+       * HttpApplication.cs: added a static array BinDirs which contains
+       the common bin directory names we can encounter.
+       Added internal static property IsRunningOnWindows.
+       Added internal enumerable property BinDirectories to iterate over
+       the full paths of the available binary directories.
+       Added internal enumerable property BinDirectoryAssemblies to
+       iterate over .dll files in the bin directories.
+       LoadTypeFromPrivateBin renamed to LoadTypeFromBin.
+       LoadTypeFromBin uses BinDirectoryAssemblies.
+       
+       * HttpApplicationFactory.cs: use HttpApplication.BinDirectories to
+       interate over the list of bin dirs.
+
+2007-08-21  Marek Habersack  <mhabersack@novell.com>
+
+       * HttpApplicationFactory.cs: watch for changes in all the
+       private binary directories for the current application domain.
+
+       * HttpApplication.cs: turn the PrivateBinPath property into an
+       internal enumerable, so that code throughout the assembly can
+       iterate over the list of private bin directories configured for
+       the application domain.
+       Added a new internal method LoadTypeFromPrivateBin, for sharing
+       with other parts of the assembly.
+
+2007-08-18  Juraj Skripsky <js@hotfeet.ch>
+
+       * HttpRequest.cs (StripPath): Fix off-by-one error, make static.
+
+2007-08-18  Marek Habersack  <mhabersack@novell.com>
+
+       * HttpRequest.cs: IE sends the full input file path when uploading
+       a file via the upload input control. Detect the situation and
+       strip the leading path. Fixes bug #82059.
+
+       * HttpServerUtility.cs: set the current context's path(s) to the
+       Transfer/Execute target only to retrieve the new handler, and
+       restore them immediately afterwards. It has a two-fold effect:
+       first it avoids an extra round trip to the original page which
+       called Transfer/Execute, second it makes FilePath etc. return
+       information about the original page (that is the one which called
+       Transfer/Execute). Fixes bug #82439.
+
+2007-08-14  Marek Habersack  <mhabersack@novell.com>
+
+       * XmlSiteMapProvider.cs: do not hide this_lock.
+
+2007-08-09  Marek Habersack  <mhabersack@novell.com>
+
+       * HttpApplicationFactory.cs: unconditionally watch for changes
+       (including creation) to Global.asax, global.asax, Web.config,
+       web.config and Web.Config. This makes the application restart once
+       any of those is created. Patch from Juraj Skripsky
+       <juraj@hotfeet.ch>, thanks! Fixes bug #82380.
+
+2007-08-08  Marek Habersack  <mhabersack@novell.com>
+
+       * StaticSiteMapProvider.cs, HttpApplicationFactory.cs,
+       HttpStaticObjectsCollection.cs, SiteMapProvider.cs,
+       XmlSiteMapProvider.cs, HttpApplication.cs, CapabilitiesLoader.cs,
+       TimeoutManager.cs: do not use lock (this), replace it with lock
+       (this_object), where this_object is an instance variable. Prevents
+       deadlocks in situation when external code locks on the class
+       instance.
+
+2007-08-05  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * HttpUtility.cs: performance refactoring, optimized UrlEncode
+
+2007-08-05 Igor Zelmanovich <igorz@mainsoft.com>
+
+       * SiteMapNode.cs: refactoring + typo fix: 
+       variable is declared in scope where is used.
+
+2007-07-31  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * VirtualPathUtility.cs: refactored GetDirectory, ToAbsolute, added
+       internal api to skip path normalizing
+
+2007-07-30  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * HttpResponseStream.jvm.cs: optimized CharBucket
+
+2007-07-22  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * HttpServerUtility.cs: fixed Execute, SetCurrentExePath should be 
+       called after ApplicationInstance.GetHandler call in case of GetHandler
+       fails for some reason
+
+2007-07-21  Marek Habersack  <mhabersack@novell.com>
+
+       * HttpRuntime.cs: clean up the dynamic base directory on domain
+       shutdown.
+
+2007-07-10  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * HttpUtility.cs: optimized HtmlEncode and HtmlAttributeEncode methods
+
+2007-07-05  Miguel de Icaza  <miguel@novell.com>
+
+       * HttpApplication.cs (AsyncRequestState.Complete): Add the
+       try/catch for the callback here to ensure that we only call
+       complete_event.Set once. 
+
+       (PipelineDone): This is where the core of the bug fix is: do not
+       call Complete() or call done.Set() (depending on the invocation
+       case) until we are actually done cleaning up the request.
+
+       The problem was that we signaled that we were done, but we had not
+       completed the shut down, so another thread could have been
+       scheduled on the same HttpApplication and had its variables be
+       modified as we completed the shutdown on the first thread. 
+
+       This fixes #81400 which was a very long standing bug.  
+
+       (Tick): Remove the pipeline check against null, this is not
+       necessary and it will help us find problems like this one in the
+       future.
+
+       Reverts patch r66072 which was a described as:
+
+               band-aid patch to help debugging hang running 2.0
+               tests.
+
+2007-07-02  Marek Habersack  <mhabersack@novell.com>
+
+       * CapabilitiesLoader.cs: provide default capability values for all
+       the 2.0+ capabilities which are not defined in our
+       browscap.ini. The default values have been assigned as per
+       MSDN. Fixes bug #81927
+
+2007-06-28  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * HttpResponse.cs: fixed AddHeadersNoCache, removed content-length
+       header for TARGET_JVM
+       * HttpWorkerRequest.cs: made this class partial, moved TARGET_JVM stuff
+       to .jvm part
+       * HttpWriter.cs: fixed write methods, output_stream can write char[]
+       and string in TARGET_JVM
+       added HttpWorkerRequest.jvm.cs, HttpResponseStream.jvm.cs
+
+2007-06-25 Juraj Skripsky <js@hotfeet.ch>
+
+       * HttpRuntime.cs (ShutdownAppDomain): Re-introduce call to
+       "Cache.InvokePrivateCallbacks".
+
+2007-06-24  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * HttpUtility.cs: fixed HtmlAttributeEncode, performance improvement
+
+2007-06-20  Marek Habersack  <mhabersack@novell.com>
+
+       * HttpRuntime.cs: added new internal property, InternalCache, to
+       keep all the internal cache entries instead of mixing them with
+       the public cache ones.
+       Do not invoke Cache.InvokePrivateCallbacks - this method no longer
+       exists.
+
+       * HttpResponse.cs: private entries are now kept in
+       Context.InternalCache.
+
+       * HttpContext.cs: added new internal property, InternalCache,
+       which returns the HttpRuntime.InternalCache value.
+
+       * HttpApplication.cs: check all the loaded assemblies for the type
+       being looked up. Patch from Juraj Skripsky <juraj@hotfeet.ch>,
+       thanks! Fixes bug #81697.
+
+2007-06-18 Igor Zelmanovich <igorz@mainsoft.com>
+
+       * HttpUtility.cs: refactoring:
+       removed constants to another class.     
+
+2007-06-18 Igor Zelmanovich <igorz@mainsoft.com>
+
+       * AssemblyResourceLoader.cs: refactoring:
+       make the code reusable in System.Web.Extenssions.       
+
+2007-05-31  Marek Habersack  <mhabersack@novell.com>
+
+       * SiteMapProvider.cs: implemented proper logic of authorizing
+       user's access to a sitemap node, as per MSDN2 docs. Patch from
+       Dumitru Ban <dban@dako.ro>, thanks!
+
+2007-05-30  Marek Habersack  <mhabersack@novell.com>
+
+       * TraceManager.cs: Catch all the possible exceptions in the
+       constructor - the object MUST be created successfully (even if
+       there are errors).
+
+       * HttpRequest.cs: do not attempt to apply url mappings if the
+       configuration manager has errors.
+
+       * HttpRuntime.cs: handle static constructor exceptions later on,
+       during the first call to ReallyProcessRequest.
+
+       * QueueManager.cs: provide defaults for the parameters to be read
+       from the config file(s).
+       Catch all the possible exceptions in the constructor - the object
+       MUST be created successfully (even if there are errors).
+
+2007-05-29  Marek Habersack  <mhabersack@novell.com>
+
+       * SiteMapProvider.cs: updated the node accessibility comments.
+       If Roles not null and user is not in at least one of the
+       specified roles, return false.
+       If there Url is null or empty, return false.
+
+2007-05-28  Marek Habersack  <mhabersack@novell.com>
+
+       * HttpRequest.cs: since Path is used from within
+       WebConfigurationManager, under some conditions it may lead to
+       endless recursion if the UrlComponents is not instantiated when
+       Path_get is called.
+
+2007-05-21  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * HttpContext.cs: added ProfileInitialized boolean property
+
+2007-05-16  Vladimir Krasnov  <vladimirk@mainsoft.com>
+
+       * VirtualPathUtility.cs: Normalize method check more carefully if need
+       to normalize, performance fix
+
+2007-05-16  Konstantin Triger <kostat@mainsoft.com>
+
+       * HttpContext.cs: correctly check for request locality.
+
+2007-05-15  Marek Habersack  <mhabersack@novell.com>
+
+       * HttpApplication.cs: refactoring - moved LoadType from
+       WebConfigurationHost here and made it internal static, in order to
+       make the code avaliable from all the places where extended type
+       loading is required.
+
 2007-05-14  Marek Habersack  <mhabersack@novell.com>
  
        * HttpUtility.cs: when parsing query strings, skip the leading ?