Merge branch 'alexischr/nursery-canaries-managed-alloc'
[mono.git] / mcs / class / System.Web / System.Web / HttpResponseHeader.cs
index 82e30af95db1a30fe72c15c6a0f76579603839eb..574bbade505e556e0881c3c6f1ecea296e67f46f 100644 (file)
@@ -6,7 +6,7 @@
 //
 
 //
-// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2005-2010 Novell, Inc (http://www.novell.com)
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
 
 using System.Collections;
 using System.Text;
+using System.Web.Configuration;
+using System.Web.Util;
 
-namespace System.Web {
+namespace System.Web
+{
+       abstract class BaseResponseHeader
+       {
+               string headerValue;
+               
+               public string Value {
+                       get { return headerValue; }
+                       set {
+                               string hname, hvalue;
+                               HttpEncoder.Current.HeaderNameValueEncode (null, value, out hname, out hvalue);
+                               headerValue = hvalue;
+                       }
+               }
+/*       
+               static bool headerCheckingEnabled;
+               
+               static BaseResponseHeader ()
+               {
+                       HttpRuntimeSection section = HttpRuntime.Section;
+                       headerCheckingEnabled = section == null || section.EnableHeaderChecking;
+               }
+*/
 
-       internal abstract class BaseResponseHeader {
-               public string Value;
-         
                internal BaseResponseHeader (string val)
                {
                        Value = val;
                }
-
+               
                internal abstract void SendContent (HttpWorkerRequest wr);
        }
 
-       internal sealed class KnownResponseHeader : BaseResponseHeader {
+       internal sealed class KnownResponseHeader : BaseResponseHeader
+       {
                public int ID;
 
                internal KnownResponseHeader (int ID, string val) : base (val)
@@ -58,8 +80,19 @@ namespace System.Web {
                }
        }
 
-       internal  class UnknownResponseHeader : BaseResponseHeader {
-               public string Name;
+       internal sealed class UnknownResponseHeader : BaseResponseHeader
+       {
+               string headerName;
+               
+               public string Name {
+                       get { return headerName; }
+                       set {
+                               string hname, hvalue;
+                               HttpEncoder.Current.HeaderNameValueEncode (value, null, out hname, out hvalue);
+                               headerName = hname;
+                       }
+               }
+               
 
                public UnknownResponseHeader (string name, string val) : base (val)
                {