Author: gonzalo
Date: 2005-04-19 22:13:49 -0400 (Tue, 19 Apr 2005)
New Revision: 43306

Modified:
   trunk/mcs/class/System.Web/System.Web/ChangeLog
   trunk/mcs/class/System.Web/System.Web/HttpRequest.cs
   trunk/mcs/class/System.Web/System.Web/ServerVariablesCollection.cs
Log:
2005-04-19 Gonzalo Paniagua Javier <[EMAIL PROTECTED]>

        * ServerVariablesCollection.cs: shuffled variables, added missing ones
        and call a method in HttpRequest to set the HTTP_ variables.

        * HttpRequest.cs: new method to add HTTP_ variables to a collection.



Modified: trunk/mcs/class/System.Web/System.Web/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/System.Web/ChangeLog     2005-04-20 02:11:05 UTC 
(rev 43305)
+++ trunk/mcs/class/System.Web/System.Web/ChangeLog     2005-04-20 02:13:49 UTC 
(rev 43306)
@@ -1,5 +1,12 @@
 2005-04-19 Gonzalo Paniagua Javier <[EMAIL PROTECTED]>
 
+       * ServerVariablesCollection.cs: shuffled variables, added missing ones
+       and call a method in HttpRequest to set the HTTP_ variables.
+
+       * HttpRequest.cs: new method to add HTTP_ variables to a collection.
+
+2005-04-19 Gonzalo Paniagua Javier <[EMAIL PROTECTED]>
+
        * HttpRequest.cs: GetAllHeaders was returning the value twice instead
        of 'name: value'. When HTTP_ is requested on the output, don't include
        unknown headers.

Modified: trunk/mcs/class/System.Web/System.Web/HttpRequest.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web/HttpRequest.cs        2005-04-20 
02:11:05 UTC (rev 43305)
+++ trunk/mcs/class/System.Web/System.Web/HttpRequest.cs        2005-04-20 
02:13:49 UTC (rev 43306)
@@ -121,8 +121,33 @@
                        _iTotalBytes = -1;
                }
 
-               static private string MakeServerVariableFromHeader(string 
header) {
-                       return "HTTP_" + header.ToUpper().Replace("-", "_");
+               internal void AddHeaderVariables (ServerVariablesCollection 
coll)
+               {
+                       if (null == _WorkerRequest)
+                               return;
+
+                       string hname;
+                       string hvalue;
+
+                       // Add all known headers
+                       for (int i = 0; i < 
HttpWorkerRequest.RequestHeaderMaximum; i++) {
+                               hvalue = _WorkerRequest.GetKnownRequestHeader 
(i);
+                               if (null != hvalue && hvalue.Length > 0) {
+                                       hname = 
HttpWorkerRequest.GetKnownRequestHeaderName (i);
+                                       if (null != hname && hname.Length > 0)
+                                               coll.Add ("HTTP_" + 
hname.ToUpper ().Replace ('-', '_'), hvalue);
+                               }
+                       }
+
+                       // Get all other headers
+                       string [][] unknown = 
_WorkerRequest.GetUnknownRequestHeaders ();
+                       if (null != unknown) {
+                               for (int i = 0; i < unknown.Length; i++) {
+                                       hname = unknown [i][0];
+                                       hvalue = unknown [i][1];
+                                       coll.Add ("HTTP_" + hname.ToUpper 
().Replace ('-', '_'), hvalue);
+                               }
+                       }
                }
 
                internal string GetAllHeaders(bool raw) {
@@ -138,7 +163,7 @@
                        string sHeaderName;
                        int iCount = 0;
 
-                       // Add all know headers
+                       // Add all known headers
                        for (; iCount != 
HttpWorkerRequest.RequestHeaderMaximum; iCount++) {
                                sHeaderValue = 
_WorkerRequest.GetKnownRequestHeader(iCount);
                                if (null != sHeaderValue && sHeaderValue.Length 
> 0) {
@@ -157,14 +182,17 @@
                                }
                        }
 
-                       if (!raw)
-                               return oData.ToString ();
-
                        // Get all other headers
                        string [][] arrUnknownHeaders = 
_WorkerRequest.GetUnknownRequestHeaders();
                        if (null != arrUnknownHeaders) {
                                for (iCount = 0; iCount != 
arrUnknownHeaders.Length; iCount++) {
-                                       
oData.Append(arrUnknownHeaders[iCount][0]);
+                                       string hname = 
arrUnknownHeaders[iCount][0];
+                                       if (raw) {
+                                               oData.Append (hname);
+                                       } else {
+                                               oData.Append ("HTTP_");
+                                               oData.Append (hname.ToUpper 
().Replace ('-', '_'));
+                                       }
                                        oData.Append(": ");
                                        
oData.Append(arrUnknownHeaders[iCount][1]);
                                        oData.Append("\r\n");

Modified: trunk/mcs/class/System.Web/System.Web/ServerVariablesCollection.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web/ServerVariablesCollection.cs  
2005-04-20 02:11:05 UTC (rev 43305)
+++ trunk/mcs/class/System.Web/System.Web/ServerVariablesCollection.cs  
2005-04-20 02:13:49 UTC (rev 43306)
@@ -39,7 +39,8 @@
        {
                private HttpRequest _request;
                private bool _loaded = false;
-               public ServerVariablesCollection(HttpRequest request):base()
+
+               public ServerVariablesCollection(HttpRequest request)
                {
                        _request = request;
                }
@@ -52,7 +53,19 @@
                        Add("ALL_HTTP", _request.GetAllHeaders(false));
                        Add("ALL_RAW", _request.GetAllHeaders(true));
                        Add("APPL_MD_PATH", 
_request.WorkerRequest.GetServerVariable("APPL_MD_PATH"));
+                       Add("APPL_PHYSICAL_PATH", 
_request.WorkerRequest.GetServerVariable("APPL_PHYSICAL_PATH"));
+
+                       if (null != _request.Context.User && 
_request.Context.User.Identity.IsAuthenticated) {
+                               Add ("AUTH_TYPE", 
_request.Context.User.Identity.AuthenticationType);
+                               Add ("AUTH_USER", 
_request.Context.User.Identity.Name);
+                       } else {
+                               Add ("AUTH_TYPE", "");
+                               Add ("AUTH_USER", "");
+                       }
+
                        Add("AUTH_PASSWORD", 
_request.WorkerRequest.GetServerVariable("AUTH_PASSWORD"));
+                       Add ("LOGON_USER", 
_request.WorkerRequest.GetServerVariable("LOGON_USER"));
+                       Add ("REMOTE_USER", 
_request.WorkerRequest.GetServerVariable("REMOTE_USER"));
                        Add("CERT_COOKIE", 
_request.WorkerRequest.GetServerVariable("CERT_COOKIE"));
                        Add("CERT_FLAGS", 
_request.WorkerRequest.GetServerVariable("CERT_FLAGS"));
                        Add("CERT_ISSUER", 
_request.WorkerRequest.GetServerVariable("CERT_ISSUER"));
@@ -62,48 +75,40 @@
                        Add("CERT_SERVER_ISSUER", 
_request.WorkerRequest.GetServerVariable("CERT_SERVER_ISSUER"));
                        Add("CERT_SERVER_SUBJECT", 
_request.WorkerRequest.GetServerVariable("CERT_SERVER_SUBJECT"));
                        Add("CERT_SUBJECT", 
_request.WorkerRequest.GetServerVariable("CERT_SUBJECT"));
+
+                       string sTmp = 
_request.WorkerRequest.GetKnownRequestHeader(HttpWorkerRequest.HeaderContentLength);
+                       if (null != sTmp)
+                               Add ("CONTENT_LENGTH", sTmp);
+                       Add ("CONTENT_TYPE", _request.ContentType);
+
                        Add("GATEWAY_INTERFACE", 
_request.WorkerRequest.GetServerVariable("GATEWAY_INTERFACE"));
                        Add("HTTPS", 
_request.WorkerRequest.GetServerVariable("HTTPS"));
                        Add("HTTPS_KEYSIZE", 
_request.WorkerRequest.GetServerVariable("HTTPS_KEYSIZE"));
                        Add("HTTPS_SECRETKEYSIZE", 
_request.WorkerRequest.GetServerVariable("HTTPS_SECRETKEYSIZE"));
-                       Add("CONTENT_TYPE", _request.ContentType);
                        Add("HTTPS_SERVER_ISSUER", 
_request.WorkerRequest.GetServerVariable("HTTPS_SERVER_ISSUER"));
                        Add("HTTPS_SERVER_SUBJECT", 
_request.WorkerRequest.GetServerVariable("HTTPS_SERVER_SUBJECT"));
                        Add("INSTANCE_ID", 
_request.WorkerRequest.GetServerVariable("INSTANCE_ID"));
                        Add("INSTANCE_META_PATH", 
_request.WorkerRequest.GetServerVariable("INSTANCE_META_PATH"));
                        Add("LOCAL_ADDR", 
_request.WorkerRequest.GetLocalAddress());
+                       Add("PATH_INFO", _request.PathInfo);
+                       Add("PATH_TRANSLATED", _request.PhysicalPath);
+                       Add("QUERY_STRING", _request.QueryStringRaw);
                        Add("REMOTE_ADDR", _request.UserHostAddress);
                        Add("REMOTE_HOST", _request.UserHostName);
                        Add("REMOTE_PORT", _request.WorkerRequest.GetRemotePort 
().ToString ());
                        Add("REQUEST_METHOD", _request.HttpMethod);
+                       Add("SCRIPT_NAME", _request.FilePath);
                        Add("SERVER_NAME", 
_request.WorkerRequest.GetServerName());
                        Add("SERVER_PORT", 
_request.WorkerRequest.GetLocalPort().ToString());
+                       if (_request.WorkerRequest.IsSecure()) 
+                               Add("SERVER_PORT_SECURE", "1");
+                       else
+                               Add("SERVER_PORT_SECURE", "0");
                        Add("SERVER_PROTOCOL", 
_request.WorkerRequest.GetHttpVersion());
                        Add("SERVER_SOFTWARE", 
_request.WorkerRequest.GetServerVariable("SERVER_SOFTWARE"));
-                       if (_request.WorkerRequest.IsSecure()) 
-                               Add("SERVER_PORT_SECURE", "1");
-                       else 
-                               Add("SERVER_PORT_SECURE", "0");
+                       Add ("URL", _request.Url.AbsolutePath);
 
-                       string sTmp = 
_request.WorkerRequest.GetKnownRequestHeader(HttpWorkerRequest.HeaderContentLength);
-                       if (null != sTmp) 
-                               Add("CONTENT_LENGTH", sTmp);
-                       // TODO: Should be dynamic
-                       if (null != _request.Context.User && 
_request.Context.User.Identity.IsAuthenticated) 
-                       {
-                               Add("AUTH_TYPE", 
_request.Context.User.Identity.AuthenticationType);
-                               Add("AUTH_USER", 
_request.Context.User.Identity.Name);
-                       } 
-                       else 
-                       {
-                               Add("AUTH_TYPE", "");
-                               Add("AUTH_USER", "");
-                       }
-
-                       Add("PATH_INFO", _request.PathInfo);
-                       Add("PATH_TRANSLATED", _request.PhysicalPath);
-                       Add("QUERY_STRING", _request.QueryStringRaw);
-                       Add("SCRIPT_NAME", _request.FilePath);
+                       _request.AddHeaderVariables (this);
                        MakeReadOnly();
                        _loaded = true;
                }

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to