2005-01-31 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / class / System.Web / System.Web / HttpHelper.cs
1 // \r
2 // System.Web.HttpHelper\r
3 //\r
4 // Author:\r
5 //   Patrik Torstensson (Patrik.Torstensson@labs2.com)\r
6 //\r
7
8 //
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
16 // 
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
19 // 
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28 using System;\r
29 using System.Collections;\r
30 using System.IO;\r
31 \r
32 namespace System.Web {\r
33    internal class HttpHelper {\r
34       internal static string [] ParseMultiValueHeader(string header) {\r
35          if (null == header) {\r
36             return null;\r
37          }\r
38 \r
39          if (header.Length == 0) {\r
40             return null;\r
41          }\r
42 \r
43          // Parse the , chars\r
44          ArrayList oValues = new ArrayList();\r
45 \r
46          string sValue;\r
47 \r
48          int iLastPos = -1;\r
49          int iPos = header.IndexOf(",");\r
50 \r
51          while (iPos != -1) {\r
52             sValue = header.Substring(iLastPos + 1, iPos - iLastPos - 1).Trim();\r
53             iLastPos = iPos;\r
54 \r
55             iPos = header.IndexOf(",", iPos + 1);\r
56             oValues.Add(sValue);\r
57          }\r
58 \r
59          sValue = header.Substring(iLastPos + 1).Trim();\r
60          oValues.Add(sValue);\r
61 \r
62          string [] arrValues = new string[oValues.Count];\r
63 \r
64          Array.Copy(oValues.ToArray(), 0, arrValues, 0, oValues.Count);\r
65 \r
66          return arrValues;\r
67       }\r
68    }\r
69 }\r