aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDiva Canto2010-12-18 18:23:51 -0800
committerDiva Canto2010-12-18 18:23:51 -0800
commitcf72fece6db782530086724cd704261ccfb8c986 (patch)
tree1b48ebc272ba2891c06cc990a67a0939103bd754
parentReplaced HttpServer_OpenSim.dll with a version that locks certain ops in Http... (diff)
downloadopensim-SC_OLD-cf72fece6db782530086724cd704261ccfb8c986.zip
opensim-SC_OLD-cf72fece6db782530086724cd704261ccfb8c986.tar.gz
opensim-SC_OLD-cf72fece6db782530086724cd704261ccfb8c986.tar.bz2
opensim-SC_OLD-cf72fece6db782530086724cd704261ccfb8c986.tar.xz
Replaced the HttpServer_OpenSim.dll with one compiled for .NET 3.5 (the last one was 4.0, and that doesn't work). Also added the corresponding .xml and .pdb, if that makes any difference.
-rw-r--r--bin/HttpServer_OpenSim.dllbin116224 -> 115712 bytes
-rw-r--r--bin/HttpServer_OpenSim.pdbbin382464 -> 409088 bytes
-rw-r--r--bin/HttpServer_OpenSim.xml5978
3 files changed, 2989 insertions, 2989 deletions
diff --git a/bin/HttpServer_OpenSim.dll b/bin/HttpServer_OpenSim.dll
index cdd4655..d7503a0 100644
--- a/bin/HttpServer_OpenSim.dll
+++ b/bin/HttpServer_OpenSim.dll
Binary files differ
diff --git a/bin/HttpServer_OpenSim.pdb b/bin/HttpServer_OpenSim.pdb
index 7c00e66..4151588 100644
--- a/bin/HttpServer_OpenSim.pdb
+++ b/bin/HttpServer_OpenSim.pdb
Binary files differ
diff --git a/bin/HttpServer_OpenSim.xml b/bin/HttpServer_OpenSim.xml
index 9c3df78..27386b7 100644
--- a/bin/HttpServer_OpenSim.xml
+++ b/bin/HttpServer_OpenSim.xml
@@ -4,492 +4,494 @@
4 <name>HttpServer_OpenSim</name> 4 <name>HttpServer_OpenSim</name>
5 </assembly> 5 </assembly>
6 <members> 6 <members>
7 <member name="T:HttpServer.IComponentProvider"> 7 <member name="T:HttpServer.Exceptions.BadRequestException">
8 <summary>
9 Inversion of control interface.
10 </summary>
11 </member>
12 <member name="M:HttpServer.IComponentProvider.AddInstance``1(System.Object)">
13 <summary> 8 <summary>
14 Add a component instance 9 The request could not be understood by the server due to malformed syntax.
10 The client SHOULD NOT repeat the request without modifications.
11
12 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
15 </summary> 13 </summary>
16 <typeparam name="T">Interface type</typeparam>
17 <param name="instance">Instance to add</param>
18 </member> 14 </member>
19 <member name="M:HttpServer.IComponentProvider.Get``1"> 15 <member name="T:HttpServer.Exceptions.HttpException">
20 <summary> 16 <summary>
21 Get a component. 17 All HTTP based exceptions will derive this class.
22 </summary> 18 </summary>
23 <typeparam name="T">Interface type</typeparam>
24 <returns>Component if registered, otherwise null.</returns>
25 <remarks>
26 Component will get created if needed.
27 </remarks>
28 </member> 19 </member>
29 <member name="M:HttpServer.IComponentProvider.Contains(System.Type)"> 20 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String)">
30 <summary> 21 <summary>
31 Checks if the specified component interface have been added. 22 Create a new HttpException
32 </summary> 23 </summary>
33 <param name="interfaceType"></param> 24 <param name="code">http status code (sent in the response)</param>
34 <returns>true if found; otherwise false.</returns> 25 <param name="message">error description</param>
35 </member> 26 </member>
36 <member name="M:HttpServer.IComponentProvider.Add``2"> 27 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String,System.Exception)">
37 <summary> 28 <summary>
38 Add a component. 29 Create a new HttpException
39 </summary> 30 </summary>
40 <typeparam name="InterfaceType">Type being requested.</typeparam> 31 <param name="code">http status code (sent in the response)</param>
41 <typeparam name="InstanceType">Type being created.</typeparam> 32 <param name="message">error description</param>
33 <param name="inner">inner exception</param>
42 </member> 34 </member>
43 <member name="T:HttpServer.HttpModules.HttpModule"> 35 <member name="P:HttpServer.Exceptions.HttpException.HttpStatusCode">
44 <summary> 36 <summary>
45 A HttpModule can be used to serve Uri's. The module itself 37 status code to use in the response.
46 decides if it should serve a Uri or not. In this way, you can
47 get a very flexible http application since you can let multiple modules
48 serve almost similar urls.
49 </summary> 38 </summary>
50 <remarks>
51 Throw <see cref="T:HttpServer.Exceptions.UnauthorizedException"/> if you are using a <see cref="T:HttpServer.Authentication.AuthenticationModule"/> and want to prompt for user name/password.
52 </remarks>
53 </member> 39 </member>
54 <member name="M:HttpServer.HttpModules.HttpModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 40 <member name="M:HttpServer.Exceptions.BadRequestException.#ctor(System.String)">
55 <summary> 41 <summary>
56 Method that process the url 42 Create a new bad request exception.
57 </summary> 43 </summary>
58 <param name="request">Information sent by the browser about the request</param> 44 <param name="errMsg">reason to why the request was bad.</param>
59 <param name="response">Information that is being sent back to the client.</param>
60 <param name="session">Session used to </param>
61 <returns>true if this module handled the request.</returns>
62 </member> 45 </member>
63 <member name="M:HttpServer.HttpModules.HttpModule.SetLogWriter(HttpServer.ILogWriter)"> 46 <member name="M:HttpServer.Exceptions.BadRequestException.#ctor(System.String,System.Exception)">
64 <summary> 47 <summary>
65 Set the log writer to use. 48 Create a new bad request exception.
66 </summary> 49 </summary>
67 <param name="writer">logwriter to use.</param> 50 <param name="errMsg">reason to why the request was bad.</param>
51 <param name="inner">inner exception</param>
68 </member> 52 </member>
69 <member name="M:HttpServer.HttpModules.HttpModule.Write(HttpServer.LogPrio,System.String)"> 53 <member name="T:HttpServer.Authentication.DigestAuthentication">
70 <summary> 54 <summary>
71 Log something. 55 Implements HTTP Digest authentication. It's more secure than Basic auth since password is
56 encrypted with a "key" from the server.
72 </summary> 57 </summary>
73 <param name="prio">importance of log message</param> 58 <remarks>
74 <param name="message">message</param> 59 Keep in mind that the password is encrypted with MD5. Use a combination of SSL and digest auth to be secure.
60 </remarks>
75 </member> 61 </member>
76 <member name="P:HttpServer.HttpModules.HttpModule.AllowSecondaryProcessing"> 62 <member name="T:HttpServer.Authentication.AuthenticationModule">
77 <summary> 63 <summary>
78 If true specifies that the module doesn't consume the processing of a request so that subsequent modules 64 Authentication modules are used to implement different
79 can continue processing afterwards. Default is false. 65 kind of HTTP authentication.
80 </summary> 66 </summary>
81 </member> 67 </member>
82 <member name="T:HttpServer.Helpers.ResourceInfo"> 68 <member name="F:HttpServer.Authentication.AuthenticationModule.AuthenticationTag">
83 <summary> 69 <summary>
84 Container to bind resource names to assemblies 70 Tag used for authentication.
85 </summary> 71 </summary>
86 </member> 72 </member>
87 <member name="M:HttpServer.Helpers.ResourceInfo.#ctor(System.String,System.String,System.Reflection.Assembly)"> 73 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
88 <summary> 74 <summary>
89 Instantiates an instance of <see cref="T:HttpServer.Helpers.ResourceInfo"/> 75 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class.
90 </summary> 76 </summary>
91 <param name="uri">The dot seperated uri the resource maps to</param> 77 <param name="authenticator">Delegate used to provide information used during authentication.</param>
92 <param name="resourceName">The full resource name</param> 78 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
93 <param name="assembly">The assembly the resource exists in</param>
94 </member> 79 </member>
95 <member name="M:HttpServer.Helpers.ResourceInfo.GetStream"> 80 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler)">
96 <summary> 81 <summary>
97 Retrieves a stream to the resource 82 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class.
98 </summary> 83 </summary>
99 <returns>Null if the resource couldn't be located somehow</returns> 84 <param name="authenticator">Delegate used to provide information used during authentication.</param>
100 </member> 85 </member>
101 <member name="P:HttpServer.Helpers.ResourceInfo.Assembly"> 86 <member name="M:HttpServer.Authentication.AuthenticationModule.CreateResponse(System.String,System.Object[])">
102 <summary> 87 <summary>
103 Retrieves the assembly the resource resides in 88 Create a response that can be sent in the WWW-Authenticate header.
104 </summary> 89 </summary>
90 <param name="realm">Realm that the user should authenticate in</param>
91 <param name="options">Array with optional options.</param>
92 <returns>A correct authentication request.</returns>
93 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
105 </member> 94 </member>
106 <member name="P:HttpServer.Helpers.ResourceInfo.Uri"> 95 <member name="M:HttpServer.Authentication.AuthenticationModule.Authenticate(System.String,System.String,System.String,System.Object[])">
107 <summary> 96 <summary>
108 Retrieves the full name/path of the assembly 97 An authentication response have been received from the web browser.
98 Check if it's correct
109 </summary> 99 </summary>
100 <param name="authenticationHeader">Contents from the Authorization header</param>
101 <param name="realm">Realm that should be authenticated</param>
102 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
103 <param name="options">options to specific implementations</param>
104 <returns>Authentication object that is stored for the request. A user class or something like that.</returns>
105 <exception cref="T:System.ArgumentException">if <paramref name="authenticationHeader"/> is invalid</exception>
106 <exception cref="T:System.ArgumentNullException">If any of the parameters is empty or null.</exception>
110 </member> 107 </member>
111 <member name="P:HttpServer.Helpers.ResourceInfo.Extension"> 108 <member name="M:HttpServer.Authentication.AuthenticationModule.CheckAuthentication(System.String,System.String,System.String@,System.Object@)">
112 <summary> 109 <summary>
113 Retrieves the extension of the resource 110 Used to invoke the authentication delegate that is used to lookup the user name/realm.
114 </summary> 111 </summary>
112 <param name="realm">Realm (domain) that user want to authenticate in</param>
113 <param name="userName">User name</param>
114 <param name="password">Password used for validation. Some implementations got password in clear text, they are then sent to client.</param>
115 <param name="login">object that will be stored in the request to help you identify the user if authentication was successful.</param>
116 <returns>true if authentication was successful</returns>
115 </member> 117 </member>
116 <member name="P:HttpServer.Helpers.ResourceInfo.ExtensionLessUri"> 118 <member name="M:HttpServer.Authentication.AuthenticationModule.AuthenticationRequired(HttpServer.IHttpRequest)">
117 <summary>Returns the Uri without extension</summary>
118 </member>
119 <member name="P:HttpServer.Helpers.ResourceInfo.ResourceName">
120 <summary>Retrieves the full path name to the resource file</summary>
121 </member>
122 <member name="T:HttpServer.Helpers.ObjectForm">
123 <summary> 119 <summary>
124 The object form class takes an object and creates form items for it. 120 Determines if authentication is required.
125 </summary> 121 </summary>
122 <param name="request">HTTP request from browser</param>
123 <returns>true if user should be authenticated.</returns>
124 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> from your delegate if no more attempts are allowed.</remarks>
125 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
126 </member> 126 </member>
127 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object,System.String)"> 127 <member name="P:HttpServer.Authentication.AuthenticationModule.Name">
128 <summary> 128 <summary>
129 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class. 129 name used in HTTP request.
130 </summary> 130 </summary>
131 <param name="method"></param>
132 <param name="name">form name *and* id.</param>
133 <param name="action">action to do when form is posted.</param>
134 <param name="obj"></param>
135 </member> 131 </member>
136 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object)"> 132 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
137 <summary> 133 <summary>
138 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class. 134 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class.
139 </summary> 135 </summary>
140 <param name="name">form name *and* id.</param> 136 <param name="authenticator">Delegate used to provide information used during authentication.</param>
141 <param name="action">action to do when form is posted.</param> 137 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
142 <param name="obj">object to get values from</param>
143 </member> 138 </member>
144 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.Object)"> 139 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)">
145 <summary> 140 <summary>
146 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class. 141 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class.
147 </summary> 142 </summary>
148 <param name="action">form action.</param> 143 <param name="authenticator">Delegate used to provide information used during authentication.</param>
149 <param name="obj">object to get values from.</param>
150 </member> 144 </member>
151 <member name="M:HttpServer.Helpers.ObjectForm.Begin"> 145 <member name="F:HttpServer.Authentication.DigestAuthentication.DisableNonceCheck">
152 <summary> 146 <summary>
153 write out the FORM-tag. 147 Used by test classes to be able to use hardcoded values
154 </summary> 148 </summary>
155 <returns>generated html code</returns>
156 </member> 149 </member>
157 <member name="M:HttpServer.Helpers.ObjectForm.Begin(System.Boolean)"> 150 <member name="M:HttpServer.Authentication.DigestAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])">
158 <summary> 151 <summary>
159 Writeout the form tag 152 An authentication response have been received from the web browser.
153 Check if it's correct
160 </summary> 154 </summary>
161 <param name="isAjax">form should be posted through ajax.</param> 155 <param name="authenticationHeader">Contents from the Authorization header</param>
162 <returns>generated html code</returns> 156 <param name="realm">Realm that should be authenticated</param>
157 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
158 <param name="options">First option: true if username/password is correct but not cnonce</param>
159 <returns>
160 Authentication object that is stored for the request. A user class or something like that.
161 </returns>
162 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception>
163 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception>
163 </member> 164 </member>
164 <member name="M:HttpServer.Helpers.ObjectForm.Tb(System.String,System.Object[])"> 165 <member name="M:HttpServer.Authentication.DigestAuthentication.Encrypt(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
165 <summary> 166 <summary>
166 Generates a text box. 167 Encrypts parameters into a Digest string
167 </summary> 168 </summary>
168 <param name="propertyName"></param> 169 <param name="realm">Realm that the user want to log into.</param>
169 <param name="options"></param> 170 <param name="userName">User logging in</param>
170 <returns>generated html code</returns> 171 <param name="password">Users password.</param>
172 <param name="method">HTTP method.</param>
173 <param name="uri">Uri/domain that generated the login prompt.</param>
174 <param name="qop">Quality of Protection.</param>
175 <param name="nonce">"Number used ONCE"</param>
176 <param name="nc">Hexadecimal request counter.</param>
177 <param name="cnonce">"Client Number used ONCE"</param>
178 <returns>Digest encrypted string</returns>
171 </member> 179 </member>
172 <member name="M:HttpServer.Helpers.ObjectForm.Pb(System.String,System.Object[])"> 180 <member name="M:HttpServer.Authentication.DigestAuthentication.Encrypt(System.String,System.String,System.String,System.String,System.String,System.String)">
173 <summary> 181 <summary>
174 password box 182
175 </summary> 183 </summary>
176 <param name="propertyName"></param> 184 <param name="ha1">Md5 hex encoded "userName:realm:password", without the quotes.</param>
177 <param name="options"></param> 185 <param name="ha2">Md5 hex encoded "method:uri", without the quotes</param>
178 <returns>generated html code</returns> 186 <param name="qop">Quality of Protection</param>
187 <param name="nonce">"Number used ONCE"</param>
188 <param name="nc">Hexadecimal request counter.</param>
189 <param name="cnonce">Client number used once</param>
190 <returns></returns>
179 </member> 191 </member>
180 <member name="M:HttpServer.Helpers.ObjectForm.Hidden(System.String,System.Object[])"> 192 <member name="M:HttpServer.Authentication.DigestAuthentication.CreateResponse(System.String,System.Object[])">
181 <summary> 193 <summary>
182 Hiddens the specified property name. 194 Create a response that can be sent in the WWW-Authenticate header.
183 </summary> 195 </summary>
184 <param name="propertyName">Name of the property.</param> 196 <param name="realm">Realm that the user should authenticate in</param>
185 <param name="options">The options.</param> 197 <param name="options">First options specifies if true if username/password is correct but not cnonce.</param>
186 <returns>generated html code</returns> 198 <returns>A correct auth request.</returns>
199 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
187 </member> 200 </member>
188 <member name="M:HttpServer.Helpers.ObjectForm.Label(System.String,System.String)"> 201 <member name="M:HttpServer.Authentication.DigestAuthentication.Decode(System.String,System.Text.Encoding)">
189 <summary> 202 <summary>
190 Labels the specified property name. 203 Decodes authorization header value
191 </summary> 204 </summary>
192 <param name="propertyName">property in object.</param> 205 <param name="buffer">header value</param>
193 <param name="label">caption</param> 206 <param name="encoding">Encoding that the buffer is in</param>
194 <returns>generated html code</returns> 207 <returns>All headers and their values if successful; otherwise null</returns>
208 <example>
209 NameValueCollection header = DigestAuthentication.Decode("response=\"6629fae49393a05397450978507c4ef1\",\r\nc=00001", Encoding.ASCII);
210 </example>
211 <remarks>Can handle lots of whitespaces and new lines without failing.</remarks>
195 </member> 212 </member>
196 <member name="M:HttpServer.Helpers.ObjectForm.Cb(System.String,System.String,System.Object[])"> 213 <member name="M:HttpServer.Authentication.DigestAuthentication.GetCurrentNonce">
197 <summary> 214 <summary>
198 Generate a checkbox 215 Gets the current nonce.
199 </summary> 216 </summary>
200 <param name="propertyName">property in object</param> 217 <returns></returns>
201 <param name="value">checkbox value</param>
202 <param name="options">additional html attributes.</param>
203 <returns>generated html code</returns>
204 </member> 218 </member>
205 <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.String,System.String,System.Object[])"> 219 <member name="M:HttpServer.Authentication.DigestAuthentication.GetMD5HashBinHex2(System.String)">
206 <summary> 220 <summary>
207 Write a html select tag 221 Gets the Md5 hash bin hex2.
208 </summary> 222 </summary>
209 <param name="propertyName">object property.</param> 223 <param name="toBeHashed">To be hashed.</param>
210 <param name="idColumn">id column</param>
211 <param name="titleColumn">The title column.</param>
212 <param name="options">The options.</param>
213 <returns></returns> 224 <returns></returns>
214 </member> 225 </member>
215 <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.Collections.IEnumerable,System.String,System.String,System.Object[])"> 226 <member name="M:HttpServer.Authentication.DigestAuthentication.IsValidNonce(System.String)">
216 <summary> 227 <summary>
217 Selects the specified property name. 228 determines if the nonce is valid or has expired.
218 </summary> 229 </summary>
219 <param name="propertyName">Name of the property.</param> 230 <param name="nonce">nonce value (check wikipedia for info)</param>
220 <param name="items">The items.</param> 231 <returns>true if the nonce has not expired.</returns>
221 <param name="idColumn">The id column.</param>
222 <param name="titleColumn">The title column.</param>
223 <param name="options">The options.</param>
224 <returns></returns>
225 </member> 232 </member>
226 <member name="M:HttpServer.Helpers.ObjectForm.Submit(System.String)"> 233 <member name="P:HttpServer.Authentication.DigestAuthentication.Name">
227 <summary> 234 <summary>
228 Write a submit tag. 235 name used in http request.
229 </summary> 236 </summary>
230 <param name="value">button caption</param>
231 <returns>html submit tag</returns>
232 </member> 237 </member>
233 <member name="M:HttpServer.Helpers.ObjectForm.End"> 238 <member name="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1">
234 <summary> 239 <summary>
235 html end form tag 240 Gets or sets whether the token supplied in <see cref="T:HttpServer.Authentication.AuthenticationHandler"/> is a
241 HA1 generated string.
236 </summary> 242 </summary>
237 <returns>html</returns>
238 </member> 243 </member>
239 <member name="T:HttpServer.FormDecoders.XmlDecoder"> 244 <member name="T:HttpServer.Rules.RegexRedirectRule">
240 <summary> 245 <summary>
241 This decoder converts XML documents to form items. 246 Class to make dynamic binding of redirects. Instead of having to specify a number of similar redirect rules
242 Each element becomes a subitem in the form, and each attribute becomes an item. 247 a regular expression can be used to identify redirect URLs and their targets.
243 </summary> 248 </summary>
244 <example> 249 <example>
245 // xml: <hello id="1">something<world id="2">data</world></hello> 250 <![CDATA[
246 // result: 251 new RegexRedirectRule("/(?<target>[a-z0-9]+)", "/users/${target}?find=true", RegexOptions.IgnoreCase)
247 // form["hello"].Value = "something" 252 ]]>
248 // form["hello"]["id"].Value = 1
249 // form["hello"]["world]["id"].Value = 1
250 // form["hello"]["world"].Value = "data"
251 </example> 253 </example>
252 <remarks>
253 The original xml document is stored in form["__xml__"].Value.
254 </remarks>
255 </member> 254 </member>
256 <member name="T:HttpServer.FormDecoders.IFormDecoder"> 255 <member name="T:HttpServer.Rules.RedirectRule">
257 <summary>
258 Interface for form content decoders.
259 </summary>
260 </member>
261 <member name="M:HttpServer.FormDecoders.IFormDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
262 <summary>
263
264 </summary>
265 <param name="stream">Stream containing the content</param>
266 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
267 <param name="encoding">Stream enconding</param>
268 <returns>A http form, or null if content could not be parsed.</returns>
269 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
270 </member>
271 <member name="M:HttpServer.FormDecoders.IFormDecoder.CanParse(System.String)">
272 <summary>
273 Checks if the decoder can handle the mime type
274 </summary>
275 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
276 <returns>True if the decoder can parse the specified content type</returns>
277 </member>
278 <member name="M:HttpServer.FormDecoders.XmlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
279 <summary>
280
281 </summary>
282 <param name="stream">Stream containing the content</param>
283 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
284 <param name="encoding">Stream encoding</param>
285 Note: contentType and encoding are not used?
286 <returns>A http form, or null if content could not be parsed.</returns>
287 <exception cref="T:System.IO.InvalidDataException"></exception>
288 </member>
289 <member name="M:HttpServer.FormDecoders.XmlDecoder.TraverseNode(HttpServer.IHttpInput,System.Xml.XmlNode)">
290 <summary>
291 Recursive function that will go through an xml element and store it's content
292 to the form item.
293 </summary>
294 <param name="item">(parent) Item in form that content should be added to.</param>
295 <param name="node">Node that should be parsed.</param>
296 </member>
297 <member name="M:HttpServer.FormDecoders.XmlDecoder.CanParse(System.String)">
298 <summary> 256 <summary>
299 Checks if the decoder can handle the mime type 257 redirects from one URL to another.
300 </summary> 258 </summary>
301 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
302 <returns>True if the decoder can parse the specified content type</returns>
303 </member> 259 </member>
304 <member name="T:HttpServer.Exceptions.InternalServerException"> 260 <member name="T:HttpServer.Rules.IRule">
305 <summary> 261 <summary>
306 The server encountered an unexpected condition which prevented it from fulfilling the request. 262 Rules are used to perform operations before a request is being handled.
263 Rules can be used to create routing etc.
307 </summary> 264 </summary>
308 </member> 265 </member>
309 <member name="T:HttpServer.Exceptions.HttpException"> 266 <member name="M:HttpServer.Rules.IRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
310 <summary> 267 <summary>
311 All HTTP based exceptions will derive this class. 268 Process the incoming request.
312 </summary> 269 </summary>
270 <param name="request">incoming HTTP request</param>
271 <param name="response">outgoing HTTP response</param>
272 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
273 <remarks>
274 returning true means that no modules will get the request. Returning true is typically being done
275 for redirects.
276 </remarks>
277 <exception cref="T:System.ArgumentNullException">If request or response is null.</exception>
313 </member> 278 </member>
314 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String)"> 279 <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String)">
315 <summary> 280 <summary>
316 Create a new HttpException 281 Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class.
317 </summary> 282 </summary>
318 <param name="code">http status code (sent in the response)</param> 283 <param name="fromUrl">Absolute path (no server name)</param>
319 <param name="message">error description</param> 284 <param name="toUrl">Absolute path (no server name)</param>
285 <example>
286 server.Add(new RedirectRule("/", "/user/index"));
287 </example>
320 </member> 288 </member>
321 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String,System.Exception)"> 289 <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String,System.Boolean)">
322 <summary> 290 <summary>
323 Create a new HttpException 291 Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class.
324 </summary> 292 </summary>
325 <param name="code">http status code (sent in the response)</param> 293 <param name="fromUrl">Absolute path (no server name)</param>
326 <param name="message">error description</param> 294 <param name="toUrl">Absolute path (no server name)</param>
327 <param name="inner">inner exception</param> 295 <param name="shouldRedirect">true if request should be redirected, false if the request URI should be replaced.</param>
296 <example>
297 server.Add(new RedirectRule("/", "/user/index"));
298 </example>
328 </member> 299 </member>
329 <member name="P:HttpServer.Exceptions.HttpException.HttpStatusCode"> 300 <member name="M:HttpServer.Rules.RedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
330 <summary> 301 <summary>
331 status code to use in the response. 302 Process the incoming request.
332 </summary> 303 </summary>
304 <param name="request">incoming HTTP request</param>
305 <param name="response">outgoing HTTP response</param>
306 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
307 <remarks>
308 returning true means that no modules will get the request. Returning true is typically being done
309 for redirects.
310 </remarks>
333 </member> 311 </member>
334 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor"> 312 <member name="P:HttpServer.Rules.RedirectRule.FromUrl">
335 <summary> 313 <summary>
336 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class. 314 Gets string to match request URI with.
337 </summary> 315 </summary>
316 <remarks>Is compared to request.Uri.AbsolutePath</remarks>
338 </member> 317 </member>
339 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor(System.String)"> 318 <member name="P:HttpServer.Rules.RedirectRule.ToUrl">
340 <summary> 319 <summary>
341 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class. 320 Gets where to redirect.
342 </summary> 321 </summary>
343 <param name="message">error message.</param>
344 </member> 322 </member>
345 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor(System.String,System.Exception)"> 323 <member name="P:HttpServer.Rules.RedirectRule.ShouldRedirect">
346 <summary> 324 <summary>
347 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class. 325 Gets whether server should redirect client.
348 </summary> 326 </summary>
349 <param name="message">error message.</param> 327 <remarks>
350 <param name="inner">inner exception.</param> 328 <c>false</c> means that the rule will replace
329 the current request URI with the new one from this class.
330 <c>true</c> means that a redirect response is sent to the client.
331 </remarks>
351 </member> 332 </member>
352 <member name="T:HttpServer.Sessions.MemorySessionStore"> 333 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String)">
353 <summary> 334 <summary>
354 Session store using memory for each session. 335 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class.
355 </summary> 336 </summary>
337 <param name="fromUrlExpression">Expression to match URL</param>
338 <param name="toUrlExpression">Expression to generate URL</param>
339 <example>
340 <![CDATA[
341 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/${first}"));
342 Result of ie. /employee1 will then be /user/employee1
343 ]]>
344 </example>
356 </member> 345 </member>
357 <member name="T:HttpServer.Sessions.IHttpSessionStore"> 346 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String,System.Text.RegularExpressions.RegexOptions)">
358 <summary> 347 <summary>
359 A session store is used to store and load sessions on a media. 348 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class.
360 The default implementation (<see cref="T:HttpServer.Sessions.MemorySessionStore"/>) saves/retrieves sessions from memory.
361 </summary> 349 </summary>
350 <param name="fromUrlExpression">Expression to match URL</param>
351 <param name="toUrlExpression">Expression to generate URL</param>
352 <param name="options">Regular expression options to use, can be null</param>
353 <example>
354 <![CDATA[
355 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/{first}", RegexOptions.IgnoreCase));
356 Result of ie. /employee1 will then be /user/employee1
357 ]]>
358 </example>
362 </member> 359 </member>
363 <member name="M:HttpServer.Sessions.IHttpSessionStore.Create"> 360 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String,System.Text.RegularExpressions.RegexOptions,System.Boolean)">
364 <summary> 361 <summary>
365 Creates a new http session with a generated id. 362 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class.
366 </summary> 363 </summary>
367 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object</returns> 364 <param name="fromUrlExpression">Expression to match URL</param>
365 <param name="toUrlExpression">Expression to generate URL</param>
366 <param name="options">Regular expression options to apply</param>
367 <param name="shouldRedirect"><c>true</c> if request should be redirected, <c>false</c> if the request URI should be replaced.</param>
368 <example>
369 <![CDATA[
370 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/${first}", RegexOptions.None));
371 Result of ie. /employee1 will then be /user/employee1
372 ]]>
373 </example>
374 <exception cref="T:System.ArgumentNullException">Argument is null.</exception>
375 <seealso cref="P:HttpServer.Rules.RedirectRule.ShouldRedirect"/>
368 </member> 376 </member>
369 <member name="M:HttpServer.Sessions.IHttpSessionStore.Create(System.String)"> 377 <member name="M:HttpServer.Rules.RegexRedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
370 <summary> 378 <summary>
371 Creates a new http session with a specific id 379 Process the incoming request.
372 </summary> 380 </summary>
373 <param name="id">Id used to identify the new cookie..</param> 381 <param name="request">incoming HTTP request</param>
374 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns> 382 <param name="response">outgoing HTTP response</param>
383 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
375 <remarks> 384 <remarks>
376 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>. 385 returning true means that no modules will get the request. Returning true is typically being done
386 for redirects.
377 </remarks> 387 </remarks>
388 <exception cref="T:System.ArgumentNullException">If request or response is null</exception>
378 </member> 389 </member>
379 <member name="M:HttpServer.Sessions.IHttpSessionStore.Load(System.String)"> 390 <member name="T:HttpServer.ExceptionHandler">
380 <summary>
381 Load an existing session.
382 </summary>
383 <param name="sessionId">Session id (usually retrieved from a client side cookie).</param>
384 <returns>A session if found; otherwise null.</returns>
385 </member>
386 <member name="M:HttpServer.Sessions.IHttpSessionStore.Save(HttpServer.Sessions.IHttpSession)">
387 <summary>
388 Save an updated session to the store.
389 </summary>
390 <param name="session">Session id (usually retrieved from a client side cookie).</param>
391 <exception cref="T:System.ArgumentException">If Id property have not been specified.</exception>
392 </member>
393 <member name="M:HttpServer.Sessions.IHttpSessionStore.AddUnused(HttpServer.Sessions.IHttpSession)">
394 <summary>
395 We use the flyweight pattern which reuses small objects
396 instead of creating new each time.
397 </summary>
398 <param name="session">Unused session that should be reused next time Create is called.</param>
399 </member>
400 <member name="M:HttpServer.Sessions.IHttpSessionStore.Cleanup">
401 <summary> 391 <summary>
402 Remove expired sessions 392 We dont want to let the server to die due to exceptions thrown in worker threads.
393 therefore we use this delegate to give you a change to handle uncaught exceptions.
403 </summary> 394 </summary>
395 <param name="source">Class that the exception was thrown in.</param>
396 <param name="exception">Exception</param>
397 <remarks>
398 Server will throw a InternalServerException in release version if you dont
399 handle this delegate.
400 </remarks>
404 </member> 401 </member>
405 <member name="M:HttpServer.Sessions.IHttpSessionStore.Remove(System.String)"> 402 <member name="T:HttpServer.Authentication.AuthenticationHandler">
406 <summary> 403 <summary>
407 Remove a session 404 Delegate used to let authentication modules authenticate the user name and password.
408 </summary> 405 </summary>
409 <param name="sessionId">id of the session.</param> 406 <param name="realm">Realm that the user want to authenticate in</param>
407 <param name="userName">User name specified by client</param>
408 <param name="token">Can either be user password or implementation specific token.</param>
409 <param name="login">object that will be stored in a session variable called <see cref="F:HttpServer.Authentication.AuthenticationModule.AuthenticationTag"/> if authentication was successful.</param>
410 <exception cref="T:HttpServer.Exceptions.ForbiddenException">throw forbidden exception if too many attempts have been made.</exception>
411 <remarks>
412 <para>
413 Use <see cref="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1"/> to specify that the token is a HA1 token. (MD5 generated
414 string from realm, user name and password); Md5String(userName + ":" + realm + ":" + password);
415 </para>
416 </remarks>
410 </member> 417 </member>
411 <member name="P:HttpServer.Sessions.IHttpSessionStore.Item(System.String)"> 418 <member name="T:HttpServer.Authentication.AuthenticationRequiredHandler">
412 <summary> 419 <summary>
413 Load a session from the store 420 Let's you decide on a system level if authentication is required.
414 </summary> 421 </summary>
415 <param name="sessionId"></param> 422 <param name="request">HTTP request from client</param>
416 <returns>null if session is not found.</returns> 423 <returns>true if user should be authenticated.</returns>
424 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> if no more attempts are allowed.</remarks>
425 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
417 </member> 426 </member>
418 <member name="P:HttpServer.Sessions.IHttpSessionStore.ExpireTime"> 427 <member name="T:HttpServer.Sessions.IHttpSession">
419 <summary> 428 <summary>
420 Number of minutes before a session expires. 429 Interface for sessions
421 </summary> 430 </summary>
422 <value>Default time is 20 minutes.</value>
423 </member> 431 </member>
424 <member name="M:HttpServer.Sessions.MemorySessionStore.#ctor"> 432 <member name="M:HttpServer.Sessions.IHttpSession.Clear">
425 <summary> 433 <summary>
426 Initializes the class setting the expirationtimer to clean the session every minute 434 Remove everything from the session
427 </summary> 435 </summary>
428 </member> 436 </member>
429 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup(System.Object)"> 437 <member name="M:HttpServer.Sessions.IHttpSession.Clear(System.Boolean)">
430 <summary> 438 <summary>
431 Delegate for the cleanup timer 439 Remove everything from the session
432 </summary> 440 </summary>
441 <param name="expires">True if the session is cleared due to expiration</param>
433 </member> 442 </member>
434 <member name="M:HttpServer.Sessions.MemorySessionStore.Create"> 443 <member name="P:HttpServer.Sessions.IHttpSession.Id">
435 <summary> 444 <summary>
436 Creates a new http session 445 Session id
437 </summary> 446 </summary>
438 <returns></returns>
439 </member> 447 </member>
440 <member name="M:HttpServer.Sessions.MemorySessionStore.Create(System.String)"> 448 <member name="P:HttpServer.Sessions.IHttpSession.Item(System.String)">
441 <summary> 449 <summary>
442 Creates a new http session with a specific id 450 Should
443 </summary> 451 </summary>
444 <param name="id">Id used to identify the new cookie..</param> 452 <param name="name">Name of the session variable</param>
445 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns> 453 <returns>null if it's not set</returns>
446 <remarks> 454 <exception cref="T:System.Runtime.Serialization.SerializationException">If the object cant be serialized.</exception>
447 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>.
448 </remarks>
449 </member> 455 </member>
450 <member name="M:HttpServer.Sessions.MemorySessionStore.Load(System.String)"> 456 <member name="P:HttpServer.Sessions.IHttpSession.Accessed">
451 <summary> 457 <summary>
452 Load an existing session. 458 When the session was last accessed.
459 This property is touched by the http server each time the
460 session is requested.
453 </summary> 461 </summary>
454 <param name="sessionId"></param>
455 <returns></returns>
456 </member> 462 </member>
457 <member name="M:HttpServer.Sessions.MemorySessionStore.Save(HttpServer.Sessions.IHttpSession)"> 463 <member name="P:HttpServer.Sessions.IHttpSession.Count">
458 <summary> 464 <summary>
459 Save an updated session to the store. 465 Number of session variables.
460 </summary> 466 </summary>
461 <param name="session"></param>
462 </member> 467 </member>
463 <member name="M:HttpServer.Sessions.MemorySessionStore.AddUnused(HttpServer.Sessions.IHttpSession)"> 468 <member name="E:HttpServer.Sessions.IHttpSession.BeforeClear">
464 <summary> 469 <summary>
465 We use the flyweight pattern which reuses small objects 470 Event triggered upon clearing the session
466 instead of creating new each time.
467 </summary> 471 </summary>
468 <param name="session">EmptyLanguageNode (unused) session that should be reused next time Create is called.</param>
469 </member> 472 </member>
470 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup"> 473 <member name="T:HttpServer.Sessions.HttpSessionClearedArgs">
471 <summary> 474 <summary>
472 Remove expired sessions 475 Arguments sent when a <see cref="T:HttpServer.Sessions.IHttpSession"/> is cleared
473 </summary> 476 </summary>
474 </member> 477 </member>
475 <member name="M:HttpServer.Sessions.MemorySessionStore.Remove(System.String)"> 478 <member name="M:HttpServer.Sessions.HttpSessionClearedArgs.#ctor(System.Boolean)">
476 <summary> 479 <summary>
477 Remove a session 480 Instantiates the arguments for the event
478 </summary> 481 </summary>
479 <param name="sessionId">id of the session.</param> 482 <param name="expired">True if the session is cleared due to expiration</param>
480 </member> 483 </member>
481 <member name="P:HttpServer.Sessions.MemorySessionStore.Item(System.String)"> 484 <member name="P:HttpServer.Sessions.HttpSessionClearedArgs.Expired">
482 <summary> 485 <summary>
483 Load a session from the store 486 Returns true if the session is cleared due to expiration
484 </summary> 487 </summary>
485 <param name="sessionId"></param>
486 <returns>null if session is not found.</returns>
487 </member> 488 </member>
488 <member name="P:HttpServer.Sessions.MemorySessionStore.ExpireTime"> 489 <member name="T:HttpServer.Sessions.HttpSessionClearedHandler">
489 <summary> 490 <summary>
490 Number of minutes before a session expires. 491 Delegate for when a IHttpSession is cleared
491 Default is 20 minutes.
492 </summary> 492 </summary>
493 <param name="session"><see cref="T:HttpServer.Sessions.IHttpSession"/> this is being cleared.</param>
494 <param name="args">Arguments for the clearing</param>
493 </member> 495 </member>
494 <member name="T:HttpServer.ResponseCookies"> 496 <member name="T:HttpServer.ResponseCookies">
495 <summary> 497 <summary>
@@ -541,35 +543,29 @@
541 Gets the cookie of a given identifier (null if not existing). 543 Gets the cookie of a given identifier (null if not existing).
542 </summary> 544 </summary>
543 </member> 545 </member>
544 <member name="T:HttpServer.Check"> 546 <member name="T:HttpServer.RequestParserFactory">
545 <summary> 547 <summary>
546 Small design by contract implementation. 548 Creates request parsers when needed.
547 </summary> 549 </summary>
548 </member> 550 </member>
549 <member name="M:HttpServer.Check.NotEmpty(System.String,System.String)"> 551 <member name="T:HttpServer.IRequestParserFactory">
550 <summary> 552 <summary>
551 Check whether a parameter is empty. 553 Creates request parsers when needed.
552 </summary> 554 </summary>
553 <param name="value">Parameter value</param>
554 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
555 <exception cref="T:System.ArgumentException">value is empty.</exception>
556 </member> 555 </member>
557 <member name="M:HttpServer.Check.Require(System.Object,System.String)"> 556 <member name="M:HttpServer.IRequestParserFactory.CreateParser(HttpServer.ILogWriter)">
558 <summary> 557 <summary>
559 Checks whether a parameter is null. 558 Create a new request parser.
560 </summary> 559 </summary>
561 <param name="value">Parameter value</param> 560 <param name="logWriter">Used when logging should be enabled.</param>
562 <param name="parameterOrErrorMessage">Parameter name, or error description.</param> 561 <returns>A new request parser.</returns>
563 <exception cref="T:System.ArgumentNullException">value is null.</exception>
564 </member> 562 </member>
565 <member name="M:HttpServer.Check.Min(System.Int32,System.Object,System.String)"> 563 <member name="M:HttpServer.RequestParserFactory.CreateParser(HttpServer.ILogWriter)">
566 <summary> 564 <summary>
567 Checks whether a parameter is null. 565 Create a new request parser.
568 </summary> 566 </summary>
569 <param name="minValue"></param> 567 <param name="logWriter">Used when logging should be enabled.</param>
570 <param name="value">Parameter value</param> 568 <returns>A new request parser.</returns>
571 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
572 <exception cref="T:System.ArgumentException">value is null.</exception>
573 </member> 569 </member>
574 <member name="T:HttpServer.Parser.HttpRequestParser"> 570 <member name="T:HttpServer.Parser.HttpRequestParser">
575 <summary> 571 <summary>
@@ -707,33 +703,20 @@
707 A header have been received. 703 A header have been received.
708 </summary> 704 </summary>
709 </member> 705 </member>
710 <member name="T:HttpServer.HttpModules.WebSiteModule"> 706 <member name="T:HttpServer.HttpModules.HttpModuleExceptionEventArgs">
711 <summary> 707 <summary>
712 The website module let's you handle multiple websites in the same server. 708 Used to inform http server that
713 It uses the "Host" header to check which site you want.
714 </summary> 709 </summary>
715 <remarks>It's recommended that you do not
716 add any other modules to HttpServer if you are using the website module. Instead,
717 add all wanted modules to each website.</remarks>
718 </member> 710 </member>
719 <member name="M:HttpServer.HttpModules.WebSiteModule.#ctor(System.String,System.String)"> 711 <member name="M:HttpServer.HttpModules.HttpModuleExceptionEventArgs.#ctor(System.Exception)">
720 <summary>
721
722 </summary>
723 <param name="host">domain name that should be handled.</param>
724 <param name="name"></param>
725 </member>
726 <member name="M:HttpServer.HttpModules.WebSiteModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
727 <summary> 712 <summary>
728 Method that process the url 713 Eventarguments used when an exception is thrown by a module
729 </summary> 714 </summary>
730 <param name="request">Information sent by the browser about the request</param> 715 <param name="e">the exception</param>
731 <param name="response">Information that is being sent back to the client.</param>
732 <param name="session">Session used to </param>
733 </member> 716 </member>
734 <member name="P:HttpServer.HttpModules.WebSiteModule.SiteName"> 717 <member name="P:HttpServer.HttpModules.HttpModuleExceptionEventArgs.Exception">
735 <summary> 718 <summary>
736 Name of site. 719 Exception thrown in a module
737 </summary> 720 </summary>
738 </member> 721 </member>
739 <member name="T:HttpServer.HttpForm"> 722 <member name="T:HttpServer.HttpForm">
@@ -927,76 +910,489 @@
927 </summary> 910 </summary>
928 <returns>0 if no files are added</returns> 911 <returns>0 if no files are added</returns>
929 </member> 912 </member>
930 <member name="T:HttpServer.Exceptions.BadRequestException"> 913 <member name="T:HttpServer.FormDecoders.IFormDecoder">
914 <summary>
915 Interface for form content decoders.
916 </summary>
917 </member>
918 <member name="M:HttpServer.FormDecoders.IFormDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
931 <summary> 919 <summary>
932 The request could not be understood by the server due to malformed syntax.
933 The client SHOULD NOT repeat the request without modifications.
934 920
935 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
936 </summary> 921 </summary>
922 <param name="stream">Stream containing the content</param>
923 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
924 <param name="encoding">Stream enconding</param>
925 <returns>A http form, or null if content could not be parsed.</returns>
926 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
937 </member> 927 </member>
938 <member name="M:HttpServer.Exceptions.BadRequestException.#ctor(System.String)"> 928 <member name="M:HttpServer.FormDecoders.IFormDecoder.CanParse(System.String)">
939 <summary> 929 <summary>
940 Create a new bad request exception. 930 Checks if the decoder can handle the mime type
941 </summary> 931 </summary>
942 <param name="errMsg">reason to why the request was bad.</param> 932 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
933 <returns>True if the decoder can parse the specified content type</returns>
943 </member> 934 </member>
944 <member name="M:HttpServer.Exceptions.BadRequestException.#ctor(System.String,System.Exception)"> 935 <member name="T:HttpServer.ContentType">
945 <summary> 936 <summary>
946 Create a new bad request exception. 937 Lists content type mime types.
947 </summary> 938 </summary>
948 <param name="errMsg">reason to why the request was bad.</param>
949 <param name="inner">inner exception</param>
950 </member> 939 </member>
951 <member name="T:HttpServer.Sessions.MemorySession"> 940 <member name="F:HttpServer.ContentType.Text">
952 <summary> 941 <summary>
953 A session stored in memory. 942 text/plain
954 </summary> 943 </summary>
955 </member> 944 </member>
956 <member name="T:HttpServer.Sessions.IHttpSession"> 945 <member name="F:HttpServer.ContentType.Html">
957 <summary> 946 <summary>
958 Interface for sessions 947 text/haml
959 </summary> 948 </summary>
960 </member> 949 </member>
961 <member name="M:HttpServer.Sessions.IHttpSession.Clear"> 950 <member name="F:HttpServer.ContentType.Javascript">
962 <summary> 951 <summary>
963 Remove everything from the session 952 content type for javascript documents = application/javascript
964 </summary> 953 </summary>
954 <remarks>
955 <para>
956 RFC 4329 states that text/javascript have been superseeded by
957 application/javascript. You might still want to check browser versions
958 since older ones do not support application/javascript.
959 </para>
960 <para>Browser support: http://krijnhoetmer.nl/stuff/javascript/mime-types/</para>
961 </remarks>
965 </member> 962 </member>
966 <member name="M:HttpServer.Sessions.IHttpSession.Clear(System.Boolean)"> 963 <member name="F:HttpServer.ContentType.Xml">
967 <summary> 964 <summary>
968 Remove everything from the session 965 text/xml
969 </summary> 966 </summary>
970 <param name="expires">True if the session is cleared due to expiration</param>
971 </member> 967 </member>
972 <member name="P:HttpServer.Sessions.IHttpSession.Id"> 968 <member name="T:HttpServer.ContentTypes">
973 <summary> 969 <summary>
974 Session id 970 A list of content types
975 </summary> 971 </summary>
976 </member> 972 </member>
977 <member name="P:HttpServer.Sessions.IHttpSession.Item(System.String)"> 973 <member name="M:HttpServer.ContentTypes.#ctor(System.String)">
978 <summary> 974 <summary>
979 Should 975
980 </summary> 976 </summary>
981 <param name="name">Name of the session variable</param> 977 <param name="types">Semicolon separated content types.</param>
982 <returns>null if it's not set</returns>
983 <exception cref="T:System.Runtime.Serialization.SerializationException">If the object cant be serialized.</exception>
984 </member> 978 </member>
985 <member name="P:HttpServer.Sessions.IHttpSession.Accessed"> 979 <member name="M:HttpServer.ContentTypes.GetEnumerator">
986 <summary> 980 <summary>
987 When the session was last accessed. 981 Returns an enumerator that iterates through a collection.
988 This property is touched by the http server each time the
989 session is requested.
990 </summary> 982 </summary>
983 <returns>
984 An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
985 </returns>
991 </member> 986 </member>
992 <member name="P:HttpServer.Sessions.IHttpSession.Count"> 987 <member name="M:HttpServer.ContentTypes.Contains(System.String)">
993 <summary> 988 <summary>
994 Number of session variables. 989 Searches for the specified type
995 </summary> 990 </summary>
991 <param name="type">Can also be a part of a type (searching for "xml" would return true for "application/xml").</param>
992 <returns>true if type was found.</returns>
996 </member> 993 </member>
997 <member name="E:HttpServer.Sessions.IHttpSession.BeforeClear"> 994 <member name="P:HttpServer.ContentTypes.First">
998 <summary> 995 <summary>
999 Event triggered upon clearing the session 996 Get this first content type.
997 </summary>
998 </member>
999 <member name="P:HttpServer.ContentTypes.Item(System.String)">
1000 <summary>
1001 Fetch a content type
1002 </summary>
1003 <param name="type">Part of type ("xml" would return "application/xml")</param>
1004 <returns></returns>
1005 <remarks>All content types are in lower case.</remarks>
1006 </member>
1007 <member name="T:HttpServer.HttpModules.HttpModule">
1008 <summary>
1009 A HttpModule can be used to serve Uri's. The module itself
1010 decides if it should serve a Uri or not. In this way, you can
1011 get a very flexible http application since you can let multiple modules
1012 serve almost similar urls.
1013 </summary>
1014 <remarks>
1015 Throw <see cref="T:HttpServer.Exceptions.UnauthorizedException"/> if you are using a <see cref="T:HttpServer.Authentication.AuthenticationModule"/> and want to prompt for user name/password.
1016 </remarks>
1017 </member>
1018 <member name="M:HttpServer.HttpModules.HttpModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
1019 <summary>
1020 Method that process the url
1021 </summary>
1022 <param name="request">Information sent by the browser about the request</param>
1023 <param name="response">Information that is being sent back to the client.</param>
1024 <param name="session">Session used to </param>
1025 <returns>true if this module handled the request.</returns>
1026 </member>
1027 <member name="M:HttpServer.HttpModules.HttpModule.SetLogWriter(HttpServer.ILogWriter)">
1028 <summary>
1029 Set the log writer to use.
1030 </summary>
1031 <param name="writer">logwriter to use.</param>
1032 </member>
1033 <member name="M:HttpServer.HttpModules.HttpModule.Write(HttpServer.LogPrio,System.String)">
1034 <summary>
1035 Log something.
1036 </summary>
1037 <param name="prio">importance of log message</param>
1038 <param name="message">message</param>
1039 </member>
1040 <member name="P:HttpServer.HttpModules.HttpModule.AllowSecondaryProcessing">
1041 <summary>
1042 If true specifies that the module doesn't consume the processing of a request so that subsequent modules
1043 can continue processing afterwards. Default is false.
1044 </summary>
1045 </member>
1046 <member name="T:HttpServer.Helpers.WebHelper">
1047 <summary>
1048 Webhelper provides helpers for common tasks in HTML.
1049 </summary>
1050 </member>
1051 <member name="F:HttpServer.Helpers.WebHelper.JSImplementation">
1052 <summary>
1053 Used to let the website use different javascript libraries.
1054 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/>
1055 </summary>
1056 </member>
1057 <member name="M:HttpServer.Helpers.WebHelper.AjaxRequest(System.String,System.String,System.String[])">
1058 <summary>
1059 Creates a link that invokes through ajax.
1060 </summary>
1061 <param name="url">url to fetch</param>
1062 <param name="title">link title</param>
1063 <param name="options">
1064 optional options in format "key, value, key, value".
1065 Javascript options starts with ':'.
1066 </param>
1067 <returns>a link tag</returns>
1068 <example>
1069 WebHelper.AjaxRequest("/users/add/", "Add user", "method:", "post", "onclick", "validate('this');");
1070 </example>
1071 </member>
1072 <member name="M:HttpServer.Helpers.WebHelper.AjaxUpdater(System.String,System.String,System.String,System.String[])">
1073 <summary>
1074 Builds a link that updates an element with the fetched ajax content.
1075 </summary>
1076 <param name="url">Url to fetch content from</param>
1077 <param name="title">link title</param>
1078 <param name="targetId">html element to update with the results of the ajax request.</param>
1079 <param name="options">optional options in format "key, value, key, value"</param>
1080 <returns>A link tag.</returns>
1081 </member>
1082 <member name="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])">
1083 <summary>
1084 A link that pop ups a Dialog (overlay div)
1085 </summary>
1086 <param name="url">url to contents of dialog</param>
1087 <param name="title">link title</param>
1088 <param name="htmlAttributes">name/value of html attributes.</param>
1089 <returns>A "a"-tag that popups a dialog when clicked</returns>
1090 <example>
1091 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
1092 </example>
1093 </member>
1094 <member name="M:HttpServer.Helpers.WebHelper.CreateDialog(System.String,System.String,System.String[])">
1095 <summary>
1096 Create/Open a dialog box using ajax
1097 </summary>
1098 <param name="url"></param>
1099 <param name="title"></param>
1100 <param name="parameters"></param>
1101 <returns></returns>
1102 </member>
1103 <member name="M:HttpServer.Helpers.WebHelper.CloseDialog">
1104 <summary>
1105 Close a javascript dialog window/div.
1106 </summary>
1107 <returns>javascript for closing a dialog.</returns>
1108 <see cref="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])"/>
1109 </member>
1110 <member name="M:HttpServer.Helpers.WebHelper.FormStart(System.String,System.String,System.Boolean)">
1111 <summary>
1112 Create a &lt;form&gt; tag.
1113 </summary>
1114 <param name="name">name of form</param>
1115 <param name="action">action to invoke on submit</param>
1116 <param name="isAjax">form should be posted as ajax</param>
1117 <returns>html code</returns>
1118 <example>
1119 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
1120 </example>
1121 </member>
1122 <member name="M:HttpServer.Helpers.WebHelper.Link(System.String,System.String,System.String[])">
1123 <summary>
1124 Create a link tag.
1125 </summary>
1126 <param name="url">url to go to</param>
1127 <param name="title">link title (text that is displayed)</param>
1128 <param name="htmlAttributes">html attributes, name, value, name, value</param>
1129 <returns>html code</returns>
1130 <example>
1131 WebHelper.Link("/user/show/1", "Show user", "id", "showUser", "onclick", "return confirm('Are you shure?');");
1132 </example>
1133 </member>
1134 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[])">
1135 <summary>
1136 Build a link
1137 </summary>
1138 <param name="url">url to go to.</param>
1139 <param name="title">title of link (displayed text)</param>
1140 <param name="htmlAttributes">extra html attributes.</param>
1141 <returns>a complete link</returns>
1142 </member>
1143 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[],System.String[])">
1144 <summary>
1145 Build a link
1146 </summary>
1147 <param name="url">url to go to.</param>
1148 <param name="title">title of link (displayed text)</param>
1149 <param name="htmlAttributes">extra html attributes.</param>
1150 <returns>a complete link</returns>
1151 <param name="options">more options</param>
1152 </member>
1153 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
1154 <summary>
1155 Obsolete
1156 </summary>
1157 <param name="name">Obsolete</param>
1158 <param name="collection">Obsolete</param>
1159 <param name="getIdTitle">Obsolete</param>
1160 <param name="selectedValue">Obsolete</param>
1161 <param name="firstEmpty">Obsolete</param>
1162 <returns>Obsolete</returns>
1163 </member>
1164 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
1165 <summary>
1166 Obsolete
1167 </summary>
1168 <param name="name">Obsolete</param>
1169 <param name="id">Obsolete</param>
1170 <param name="collection">Obsolete</param>
1171 <param name="getIdTitle">Obsolete</param>
1172 <param name="selectedValue">Obsolete</param>
1173 <param name="firstEmpty">Obsolete</param>
1174 <returns>Obsolete</returns>
1175 </member>
1176 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Generic.IEnumerable{System.Object},System.String)">
1177 <summary>
1178 Render errors into a UL with class "errors"
1179 </summary>
1180 <param name="className">class used by UL-tag.</param>
1181 <param name="theList">items to list</param>
1182 <returns>an unordered html list.</returns>
1183 </member>
1184 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Specialized.NameValueCollection,System.String)">
1185 <summary>
1186 Render errors into a UL with class "errors"
1187 </summary>
1188 <param name="className">class used by UL-tag.</param>
1189 <param name="theList">items to list</param>
1190 <returns>an unordered html list.</returns>
1191 </member>
1192 <member name="M:HttpServer.Helpers.WebHelper.Errors(System.Collections.Specialized.NameValueCollection)">
1193 <summary>
1194 Render errors into a UL with class "errors"
1195 </summary>
1196 <param name="errors"></param>
1197 <returns></returns>
1198 </member>
1199 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[],System.String[])">
1200 <summary>
1201 Generates a list with html attributes.
1202 </summary>
1203 <param name="sb">StringBuilder that the options should be added to.</param>
1204 <param name="firstOptions">attributes set by user.</param>
1205 <param name="secondOptions">attributes set by any of the helper classes.</param>
1206 </member>
1207 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[])">
1208 <summary>
1209 Generates a list with html attributes.
1210 </summary>
1211 <param name="sb">StringBuilder that the options should be added to.</param>
1212 <param name="options"></param>
1213 </member>
1214 <member name="T:HttpServer.Helpers.JavascriptHelperImplementation">
1215 <summary>
1216 Purpose of this class is to create a javascript toolkit independent javascript helper.
1217 </summary>
1218 </member>
1219 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.GenerateOptions(System.Text.StringBuilder,System.String[],System.Boolean)">
1220 <summary>
1221 Generates a list with JS options.
1222 </summary>
1223 <param name="sb">StringBuilder that the options should be added to.</param>
1224 <param name="options">the javascript options. name, value pairs. each string value should be escaped by YOU!</param>
1225 <param name="startWithComma">true if we should start with a comma.</param>
1226 </member>
1227 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.RemoveJavascriptOptions(System.String[])">
1228 <summary>
1229 Removes any javascript parameters from an array of parameters
1230 </summary>
1231 <param name="options">The array of parameters to remove javascript params from</param>
1232 <returns>An array of html parameters</returns>
1233 </member>
1234 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxFormOnSubmit(System.String[])">
1235 <summary>
1236 javascript action that should be added to the "onsubmit" event in the form tag.
1237 </summary>
1238 <returns></returns>
1239 <remarks>All javascript option names should end with colon.</remarks>
1240 <example>
1241 <code>
1242 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
1243 </code>
1244 </example>
1245 </member>
1246 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxRequest(System.String,System.String[])">
1247 <summary>
1248 Requests a url through ajax
1249 </summary>
1250 <param name="url">url to fetch</param>
1251 <param name="options">optional options in format "key, value, key, value", used in JS request object.</param>
1252 <returns>a link tag</returns>
1253 <remarks>All javascript option names should end with colon.</remarks>
1254 <example>
1255 <code>
1256 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
1257 </code>
1258 </example>
1259 </member>
1260 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxUpdater(System.String,System.String,System.String[])">
1261 <summary>
1262 Ajax requests that updates an element with
1263 the fetched content
1264 </summary>
1265 <param name="url">Url to fetch content from</param>
1266 <param name="targetId">element to update</param>
1267 <param name="options">optional options in format "key, value, key, value", used in JS updater object.</param>
1268 <returns>A link tag.</returns>
1269 <remarks>All javascript option names should end with colon.</remarks>
1270 <example>
1271 <code>
1272 JSHelper.AjaxUpdater("/user/show/1", "userInfo", "onsuccess:", "alert('Successful!');");
1273 </code>
1274 </example>
1275 </member>
1276 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])">
1277 <summary>
1278 A link that pop ups a Dialog (overlay div)
1279 </summary>
1280 <param name="url">url to contents of dialog</param>
1281 <param name="title">link title</param>
1282 <returns>A "a"-tag that popups a dialog when clicked</returns>
1283 <param name="htmlAttributes">name/value of html attributes</param>
1284 <example>
1285 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
1286 </example>
1287 </member>
1288 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CloseDialog">
1289 <summary>
1290 Close a javascript dialog window/div.
1291 </summary>
1292 <returns>javascript for closing a dialog.</returns>
1293 <see cref="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])"/>
1294 </member>
1295 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CreateDialog(System.String,System.String,System.String[])">
1296 <summary>
1297 Creates a new modal dialog window
1298 </summary>
1299 <param name="url">url to open in window.</param>
1300 <param name="title">window title (may not be supported by all js implementations)</param>
1301 <param name="options"></param>
1302 <returns></returns>
1303 </member>
1304 <member name="T:HttpServer.IHttpContextHandler">
1305 <summary>
1306 Class that receives Requests from a <see cref="T:HttpServer.IHttpClientContext"/>.
1307 </summary>
1308 </member>
1309 <member name="M:HttpServer.IHttpContextHandler.ClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)">
1310 <summary>
1311 Client have been disconnected.
1312 </summary>
1313 <param name="client">Client that was disconnected.</param>
1314 <param name="error">Reason</param>
1315 <see cref="T:HttpServer.IHttpClientContext"/>
1316 </member>
1317 <member name="M:HttpServer.IHttpContextHandler.RequestReceived(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
1318 <summary>
1319 Invoked when a client context have received a new HTTP request
1320 </summary>
1321 <param name="client">Client that received the request.</param>
1322 <param name="request">Request that was received.</param>
1323 <see cref="T:HttpServer.IHttpClientContext"/>
1324 </member>
1325 <member name="T:HttpServer.HttpHelper">
1326 <summary>
1327 Generic helper functions for HTTP
1328 </summary>
1329 </member>
1330 <member name="F:HttpServer.HttpHelper.HTTP10">
1331 <summary>
1332 Version string for HTTP v1.0
1333 </summary>
1334 </member>
1335 <member name="F:HttpServer.HttpHelper.HTTP11">
1336 <summary>
1337 Version string for HTTP v1.1
1338 </summary>
1339 </member>
1340 <member name="F:HttpServer.HttpHelper.EmptyUri">
1341 <summary>
1342 An empty URI
1343 </summary>
1344 </member>
1345 <member name="M:HttpServer.HttpHelper.ParseQueryString(System.String)">
1346 <summary>
1347 Parses a query string.
1348 </summary>
1349 <param name="queryString">Query string (URI encoded)</param>
1350 <returns>A <see cref="T:HttpServer.HttpInput"/> object if successful; otherwise <see cref="F:HttpServer.HttpInput.Empty"/></returns>
1351 <exception cref="T:System.ArgumentNullException"><c>queryString</c> is null.</exception>
1352 <exception cref="T:System.FormatException">If string cannot be parsed.</exception>
1353 </member>
1354 <member name="T:HttpServer.FormDecoders.FormDecoderProvider">
1355 <summary>
1356 This provider is used to let us implement any type of form decoding we want without
1357 having to rewrite anything else in the server.
1358 </summary>
1359 </member>
1360 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Decode(System.String,System.IO.Stream,System.Text.Encoding)">
1361 <summary>
1362
1363 </summary>
1364 <param name="contentType">Should contain boundary and type, as in: multipart/form-data; boundary=---------------------------230051238959</param>
1365 <param name="stream">Stream containing form data.</param>
1366 <param name="encoding">Encoding used when decoding the stream</param>
1367 <returns><see cref="F:HttpServer.HttpInput.Empty"/> if no parser was found.</returns>
1368 <exception cref="T:System.ArgumentException">If stream is null or not readable.</exception>
1369 <exception cref="T:System.IO.InvalidDataException">If stream contents cannot be decoded properly.</exception>
1370 </member>
1371 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Add(HttpServer.FormDecoders.IFormDecoder)">
1372 <summary>
1373 Add a decoder.
1374 </summary>
1375 <param name="decoder"></param>
1376 <exception cref="T:System.ArgumentNullException"></exception>
1377 </member>
1378 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Count">
1379 <summary>
1380 Number of added decoders.
1381 </summary>
1382 </member>
1383 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Decoders">
1384 <summary>
1385 Use with care.
1386 </summary>
1387 </member>
1388 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.DefaultDecoder">
1389 <summary>
1390 Decoder used for unknown content types.
1391 </summary>
1392 </member>
1393 <member name="T:HttpServer.Sessions.MemorySession">
1394 <summary>
1395 A session stored in memory.
1000 </summary> 1396 </summary>
1001 </member> 1397 </member>
1002 <member name="M:HttpServer.Sessions.MemorySession.#ctor(System.String)"> 1398 <member name="M:HttpServer.Sessions.MemorySession.#ctor(System.String)">
@@ -1064,113 +1460,624 @@
1064 Event triggered upon clearing the session 1460 Event triggered upon clearing the session
1065 </summary> 1461 </summary>
1066 </member> 1462 </member>
1067 <member name="T:HttpServer.Rules.RedirectRule"> 1463 <member name="T:HttpServer.FormDecoders.XmlDecoder">
1068 <summary> 1464 <summary>
1069 redirects from one URL to another. 1465 This decoder converts XML documents to form items.
1466 Each element becomes a subitem in the form, and each attribute becomes an item.
1070 </summary> 1467 </summary>
1468 <example>
1469 // xml: <hello id="1">something<world id="2">data</world></hello>
1470 // result:
1471 // form["hello"].Value = "something"
1472 // form["hello"]["id"].Value = 1
1473 // form["hello"]["world]["id"].Value = 1
1474 // form["hello"]["world"].Value = "data"
1475 </example>
1476 <remarks>
1477 The original xml document is stored in form["__xml__"].Value.
1478 </remarks>
1071 </member> 1479 </member>
1072 <member name="T:HttpServer.Rules.IRule"> 1480 <member name="M:HttpServer.FormDecoders.XmlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
1073 <summary> 1481 <summary>
1074 Rules are used to perform operations before a request is being handled. 1482
1075 Rules can be used to create routing etc.
1076 </summary> 1483 </summary>
1484 <param name="stream">Stream containing the content</param>
1485 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
1486 <param name="encoding">Stream encoding</param>
1487 Note: contentType and encoding are not used?
1488 <returns>A http form, or null if content could not be parsed.</returns>
1489 <exception cref="T:System.IO.InvalidDataException"></exception>
1077 </member> 1490 </member>
1078 <member name="M:HttpServer.Rules.IRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)"> 1491 <member name="M:HttpServer.FormDecoders.XmlDecoder.TraverseNode(HttpServer.IHttpInput,System.Xml.XmlNode)">
1079 <summary> 1492 <summary>
1080 Process the incoming request. 1493 Recursive function that will go through an xml element and store it's content
1494 to the form item.
1081 </summary> 1495 </summary>
1082 <param name="request">incoming HTTP request</param> 1496 <param name="item">(parent) Item in form that content should be added to.</param>
1083 <param name="response">outgoing HTTP response</param> 1497 <param name="node">Node that should be parsed.</param>
1084 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
1085 <remarks>
1086 returning true means that no modules will get the request. Returning true is typically being done
1087 for redirects.
1088 </remarks>
1089 <exception cref="T:System.ArgumentNullException">If request or response is null.</exception>
1090 </member> 1498 </member>
1091 <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String)"> 1499 <member name="M:HttpServer.FormDecoders.XmlDecoder.CanParse(System.String)">
1092 <summary> 1500 <summary>
1093 Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class. 1501 Checks if the decoder can handle the mime type
1094 </summary> 1502 </summary>
1095 <param name="fromUrl">Absolute path (no server name)</param> 1503 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
1096 <param name="toUrl">Absolute path (no server name)</param> 1504 <returns>True if the decoder can parse the specified content type</returns>
1097 <example>
1098 server.Add(new RedirectRule("/", "/user/index"));
1099 </example>
1100 </member> 1505 </member>
1101 <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String,System.Boolean)"> 1506 <member name="M:HttpServer.FormDecoders.HttpMultipart.ReadLine">
1102 <summary> 1507 <summary>
1103 Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class. 1508
1104 </summary> 1509 </summary>
1105 <param name="fromUrl">Absolute path (no server name)</param> 1510 <returns></returns>
1106 <param name="toUrl">Absolute path (no server name)</param> 1511 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
1107 <param name="shouldRedirect">true if request should be redirected, false if the request URI should be replaced.</param> 1512 <exception cref="T:System.ObjectDisposedException"></exception>
1513 </member>
1514 <member name="T:HttpServer.FormDecoders.HttpMultipart.Element">
1515 <summary>Represents a field in a multipart form</summary>
1516 </member>
1517 <member name="T:HttpServer.Exceptions.InternalServerException">
1518 <summary>
1519 The server encountered an unexpected condition which prevented it from fulfilling the request.
1520 </summary>
1521 </member>
1522 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor">
1523 <summary>
1524 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class.
1525 </summary>
1526 </member>
1527 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor(System.String)">
1528 <summary>
1529 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class.
1530 </summary>
1531 <param name="message">error message.</param>
1532 </member>
1533 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor(System.String,System.Exception)">
1534 <summary>
1535 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class.
1536 </summary>
1537 <param name="message">error message.</param>
1538 <param name="inner">inner exception.</param>
1539 </member>
1540 <member name="T:HttpServer.RequestParserState">
1541 <summary>
1542 Current state in the parsing.
1543 </summary>
1544 </member>
1545 <member name="F:HttpServer.RequestParserState.FirstLine">
1546 <summary>
1547 Should parse the request line
1548 </summary>
1549 </member>
1550 <member name="F:HttpServer.RequestParserState.HeaderName">
1551 <summary>
1552 Searching for a complete header name
1553 </summary>
1554 </member>
1555 <member name="F:HttpServer.RequestParserState.AfterName">
1556 <summary>
1557 Searching for colon after header name (ignoring white spaces)
1558 </summary>
1559 </member>
1560 <member name="F:HttpServer.RequestParserState.Between">
1561 <summary>
1562 Searching for start of header value (ignoring white spaces)
1563 </summary>
1564 </member>
1565 <member name="F:HttpServer.RequestParserState.HeaderValue">
1566 <summary>
1567 Searching for a complete header value (can span over multiple lines, as long as they are prefixed with one/more whitespaces)
1568 </summary>
1569 </member>
1570 <member name="F:HttpServer.RequestParserState.Body">
1571 <summary>
1572 Adding bytes to body
1573 </summary>
1574 </member>
1575 <member name="T:HttpServer.HttpModules.ReverseProxyModule">
1576 <summary>
1577 A reverse proxy are used to act as a bridge between local (protected/hidden) websites
1578 and public clients.
1579
1580 A typical usage is to allow web servers on non standard ports to still be available
1581 to the public clients, or allow web servers on private ips to be available.
1582 </summary>
1583 </member>
1584 <member name="M:HttpServer.HttpModules.ReverseProxyModule.#ctor(System.String,System.String)">
1585 <summary>
1586
1587 </summary>
1588 <param name="source">Base url requested from browser</param>
1589 <param name="destination">Base url on private web server</param>
1108 <example> 1590 <example>
1109 server.Add(new RedirectRule("/", "/user/index")); 1591 // this will return contents from http://192.168.1.128/view/jonas when client requests http://www.gauffin.com/user/view/jonas
1592 _server.Add(new ReverseProxyModule("http://www.gauffin.com/user/", "http://192.168.1.128/");
1110 </example> 1593 </example>
1111 </member> 1594 </member>
1112 <member name="M:HttpServer.Rules.RedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)"> 1595 <member name="M:HttpServer.HttpModules.ReverseProxyModule.CanHandle(System.Uri)">
1113 <summary> 1596 <summary>
1114 Process the incoming request. 1597 Method that determines if an url should be handled or not by the module
1598 </summary>
1599 <param name="uri">Url requested by the client.</param>
1600 <returns>true if module should handle the url.</returns>
1601 </member>
1602 <member name="M:HttpServer.HttpModules.ReverseProxyModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
1603 <summary>
1604 Method that process the url
1605 </summary>
1606 <param name="request">Information sent by the browser about the request</param>
1607 <param name="response">Information that is being sent back to the client.</param>
1608 <param name="session">Session used to </param>
1609 </member>
1610 <member name="T:HttpServer.Method">
1611 <summary>
1612 Contains all HTTP Methods (according to the HTTP 1.1 specification)
1613 <para>
1614 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
1615 </para>
1616 </summary>
1617 </member>
1618 <member name="F:HttpServer.Method.Delete">
1619 <summary>
1620 The DELETE method requests that the origin server delete the resource identified by the Request-URI.
1115 </summary> 1621 </summary>
1116 <param name="request">incoming HTTP request</param>
1117 <param name="response">outgoing HTTP response</param>
1118 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
1119 <remarks> 1622 <remarks>
1120 returning true means that no modules will get the request. Returning true is typically being done 1623 <para>
1121 for redirects. 1624 This method MAY be overridden by human intervention (or other means) on the origin server.
1625 The client cannot be guaranteed that the operation has been carried out, even if the status code
1626 returned from the origin server indicates that the action has been completed successfully.
1627 </para>
1628 <para>
1629 However, the server SHOULD NOT indicate success unless, at the time the response is given,
1630 it intends to delete the resource or move it to an inaccessible location.
1631 </para>
1632 <para>
1633 A successful response SHOULD be 200 (OK) if the response includes an entity describing the status,
1634 202 (Accepted) if the action has not yet been enacted,
1635 or 204 (No Content) if the action has been enacted but the response does not include an entity.
1636 </para>
1637 <para>
1638 If the request passes through a cache and the Request-URI identifies one or more currently cached entities,
1639 those entries SHOULD be treated as stale. Responses to this method are not cacheable.
1640 </para>
1122 </remarks> 1641 </remarks>
1123 </member> 1642 </member>
1124 <member name="P:HttpServer.Rules.RedirectRule.FromUrl"> 1643 <member name="F:HttpServer.Method.Get">
1125 <summary> 1644 <summary>
1126 Gets string to match request URI with. 1645 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.
1127 </summary> 1646 </summary>
1128 <remarks>Is compared to request.Uri.AbsolutePath</remarks> 1647 <remarks>
1648 <para>
1649 If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the
1650 entity in the response and not the source text of the process, unless that text happens to be the output of the process.
1651 </para>
1652 <para>
1653 The semantics of the GET method change to a "conditional GET" if the request message includes an
1654 If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field.
1655 A conditional GET method requests that the entity be transferred only under the circumstances described
1656 by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network
1657 usage by allowing cached entities to be refreshed without requiring multiple requests or transferring
1658 data already held by the client.
1659 </para>
1660 </remarks>
1129 </member> 1661 </member>
1130 <member name="P:HttpServer.Rules.RedirectRule.ToUrl"> 1662 <member name="F:HttpServer.Method.Header">
1131 <summary> 1663 <summary>
1132 Gets where to redirect. 1664 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.
1133 </summary> 1665 </summary>
1666 <remarks>
1667 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
1668 information sent in response to a GET request. This method can be used for obtaining meta information about
1669 the entity implied by the request without transferring the entity-body itself.
1670
1671 This method is often used for testing hypertext links for validity, accessibility, and recent modification.
1672 </remarks>
1134 </member> 1673 </member>
1135 <member name="P:HttpServer.Rules.RedirectRule.ShouldRedirect"> 1674 <member name="F:HttpServer.Method.Options">
1136 <summary> 1675 <summary>
1137 Gets whether server should redirect client. 1676 <para>The OPTIONS method represents a request for information about the communication options available on the request/response chain identified by the Request-URI.</para>
1138 </summary> 1677 </summary>
1139 <remarks> 1678 <remarks>
1140 <c>false</c> means that the rule will replace 1679 <para>This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval.</para>
1141 the current request URI with the new one from this class.
1142 <c>true</c> means that a redirect response is sent to the client.
1143 </remarks> 1680 </remarks>
1144 </member> 1681 </member>
1145 <member name="T:HttpServer.RequestCookie"> 1682 <member name="F:HttpServer.Method.Post">
1146 <summary> 1683 <summary>
1147 cookie sent by the client/browser 1684 The POST method is used to request that the origin server accept the entity enclosed
1685 in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
1148 </summary> 1686 </summary>
1149 <seealso cref="T:HttpServer.ResponseCookie"/> 1687 <remarks>
1688 POST is designed to allow a uniform method to cover the following functions:
1689 <list type="bullet">
1690 <item>
1691 Annotation of existing resources;
1692 </item><item>
1693 Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
1694 </item><item>
1695 Providing a block of data, such as the result of submitting a form, to a data-handling process;
1696 </item><item>
1697 Extending a database through an append operation.
1698 </item>
1699 </list>
1700 <para>
1701 If a resource has been created on the origin server, the response SHOULD be 201 (Created) and
1702 contain an entity which describes the status of the request and refers to the new resource, and a
1703 Location header (see section 14.30).
1704 </para>
1705 <para>
1706 The action performed by the POST method might not result in a resource that can be identified by a URI.
1707 In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on
1708 whether or not the response includes an entity that describes the result.
1709 </para><para>
1710 Responses to this method are not cacheable, unless the response includes appropriate Cache-Control
1711 or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent
1712 to retrieve a cacheable resource.
1713 </para>
1714 </remarks>
1150 </member> 1715 </member>
1151 <member name="M:HttpServer.RequestCookie.#ctor(System.String,System.String)"> 1716 <member name="F:HttpServer.Method.Put">
1152 <summary> 1717 <summary>
1153 Constructor. 1718 The PUT method requests that the enclosed entity be stored under the supplied Request-URI.
1154 </summary> 1719 </summary>
1155 <param name="id">cookie identifier</param> 1720 <remarks>
1156 <param name="content">cookie content</param> 1721 <list type="bullet">
1157 <exception cref="T:System.ArgumentNullException">id or content is null</exception> 1722 <item>
1158 <exception cref="T:System.ArgumentException">id is empty</exception> 1723 If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a
1724 modified version of the one residing on the origin server.
1725 </item><item>
1726 If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new
1727 resource by the requesting user agent, the origin server can create the resource with that URI.
1728 </item><item>
1729 If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
1730 </item><item>
1731 If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to
1732 indicate successful completion of the request.
1733 </item><item>
1734 If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be
1735 given that reflects the nature of the problem.
1736 </item>
1737 </list>
1738 <para>
1739 The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not
1740 understand or implement and MUST return a 501 (Not Implemented) response in such cases.
1741 </para>
1742 </remarks>
1159 </member> 1743 </member>
1160 <member name="M:HttpServer.RequestCookie.ToString"> 1744 <member name="F:HttpServer.Method.Trace">
1161 <summary> 1745 <summary>
1162 Gets the cookie HTML representation. 1746 The TRACE method is used to invoke a remote, application-layer loop- back of the request message.
1163 </summary> 1747 </summary>
1164 <returns>cookie string</returns>
1165 </member> 1748 </member>
1166 <member name="P:HttpServer.RequestCookie.Name"> 1749 <member name="T:HttpServer.Methods">
1167 <summary> 1750 <summary>
1168 Gets the cookie identifier. 1751 Contains all HTTP Methods (according to the HTTP 1.1 specification)
1752 <para>
1753 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
1754 </para>
1169 </summary> 1755 </summary>
1170 </member> 1756 </member>
1171 <member name="P:HttpServer.RequestCookie.Value"> 1757 <member name="F:HttpServer.Methods.Delete">
1172 <summary> 1758 <summary>
1173 Cookie value. Set to null to remove cookie. 1759 The DELETE method requests that the origin server delete the resource identified by the Request-URI.
1760 </summary>
1761 <remarks>
1762 <para>
1763 This method MAY be overridden by human intervention (or other means) on the origin server.
1764 The client cannot be guaranteed that the operation has been carried out, even if the status code
1765 returned from the origin server indicates that the action has been completed successfully.
1766 </para>
1767 <para>
1768 However, the server SHOULD NOT indicate success unless, at the time the response is given,
1769 it intends to delete the resource or move it to an inaccessible location.
1770 </para>
1771 <para>
1772 A successful response SHOULD be 200 (OK) if the response includes an entity describing the status,
1773 202 (Accepted) if the action has not yet been enacted,
1774 or 204 (No Content) if the action has been enacted but the response does not include an entity.
1775 </para>
1776 <para>
1777 If the request passes through a cache and the Request-URI identifies one or more currently cached entities,
1778 those entries SHOULD be treated as stale. Responses to this method are not cacheable.
1779 </para>
1780 </remarks>
1781 </member>
1782 <member name="F:HttpServer.Methods.Get">
1783 <summary>
1784 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.
1785 </summary>
1786 <remarks>
1787 <para>
1788 If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the
1789 entity in the response and not the source text of the process, unless that text happens to be the output of the process.
1790 </para>
1791 <para>
1792 The semantics of the GET method change to a "conditional GET" if the request message includes an
1793 If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field.
1794 A conditional GET method requests that the entity be transferred only under the circumstances described
1795 by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network
1796 usage by allowing cached entities to be refreshed without requiring multiple requests or transferring
1797 data already held by the client.
1798 </para>
1799 </remarks>
1800 </member>
1801 <member name="F:HttpServer.Methods.Header">
1802 <summary>
1803 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.
1804 </summary>
1805 <remarks>
1806 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
1807 information sent in response to a GET request. This method can be used for obtaining meta information about
1808 the entity implied by the request without transferring the entity-body itself.
1809
1810 This method is often used for testing hypertext links for validity, accessibility, and recent modification.
1811 </remarks>
1812 </member>
1813 <member name="F:HttpServer.Methods.Options">
1814 <summary>
1815 <para>The OPTIONS method represents a request for information about the communication options available on the request/response chain identified by the Request-URI.</para>
1816 </summary>
1817 <remarks>
1818 <para>This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval.</para>
1819 </remarks>
1820 </member>
1821 <member name="F:HttpServer.Methods.Post">
1822 <summary>
1823 The POST method is used to request that the origin server accept the entity enclosed
1824 in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
1825 </summary>
1826 <remarks>
1827 POST is designed to allow a uniform method to cover the following functions:
1828 <list type="bullet">
1829 <item>
1830 Annotation of existing resources;
1831 </item><item>
1832 Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
1833 </item><item>
1834 Providing a block of data, such as the result of submitting a form, to a data-handling process;
1835 </item><item>
1836 Extending a database through an append operation.
1837 </item>
1838 </list>
1839 <para>
1840 If a resource has been created on the origin server, the response SHOULD be 201 (Created) and
1841 contain an entity which describes the status of the request and refers to the new resource, and a
1842 Location header (see section 14.30).
1843 </para>
1844 <para>
1845 The action performed by the POST method might not result in a resource that can be identified by a URI.
1846 In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on
1847 whether or not the response includes an entity that describes the result.
1848 </para><para>
1849 Responses to this method are not cacheable, unless the response includes appropriate Cache-Control
1850 or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent
1851 to retrieve a cacheable resource.
1852 </para>
1853 </remarks>
1854 </member>
1855 <member name="F:HttpServer.Methods.Put">
1856 <summary>
1857 The PUT method requests that the enclosed entity be stored under the supplied Request-URI.
1858 </summary>
1859 <remarks>
1860 <list type="bullet">
1861 <item>
1862 If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a
1863 modified version of the one residing on the origin server.
1864 </item><item>
1865 If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new
1866 resource by the requesting user agent, the origin server can create the resource with that URI.
1867 </item><item>
1868 If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
1869 </item><item>
1870 If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to
1871 indicate successful completion of the request.
1872 </item><item>
1873 If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be
1874 given that reflects the nature of the problem.
1875 </item>
1876 </list>
1877 <para>
1878 The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not
1879 understand or implement and MUST return a 501 (Not Implemented) response in such cases.
1880 </para>
1881 </remarks>
1882 </member>
1883 <member name="F:HttpServer.Methods.Trace">
1884 <summary>
1885 The TRACE method is used to invoke a remote, application-layer loop- back of the request message.
1886 </summary>
1887 </member>
1888 <member name="T:HttpServer.HttpListener">
1889 <summary>
1890 New implementation of the HTTP listener.
1891 </summary>
1892 <remarks>
1893 Use the <c>Create</c> methods to create a default listener.
1894 </remarks>
1895 </member>
1896 <member name="T:HttpServer.HttpListenerBase">
1897 <summary>
1898 Contains a listener that doesn't do anything with the connections.
1899 </summary>
1900 </member>
1901 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)">
1902 <summary>
1903 Listen for regular HTTP connections
1904 </summary>
1905 <param name="address">IP Address to accept connections on</param>
1906 <param name="port">TCP Port to listen on, default HTTP port is 80.</param>
1907 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
1908 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
1909 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
1910 </member>
1911 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)">
1912 <summary>
1913 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class.
1914 </summary>
1915 <param name="address">IP Address to accept connections on</param>
1916 <param name="port">TCP Port to listen on, default HTTPS port is 443</param>
1917 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
1918 <param name="certificate">Certificate to use</param>
1919 </member>
1920 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
1921 <summary>
1922 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class.
1923 </summary>
1924 <param name="address">IP Address to accept connections on</param>
1925 <param name="port">TCP Port to listen on, default HTTPS port is 443</param>
1926 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
1927 <param name="certificate">Certificate to use</param>
1928 <param name="protocol">which HTTPS protocol to use, default is TLS.</param>
1929 </member>
1930 <member name="M:HttpServer.HttpListenerBase.OnAccept(System.IAsyncResult)">
1931 <exception cref="T:System.Exception"><c>Exception</c>.</exception>
1932 </member>
1933 <member name="M:HttpServer.HttpListenerBase.RetryBeginAccept">
1934 <summary>
1935 Will try to accept connections one more time.
1936 </summary>
1937 <exception cref="T:System.Exception">If any exceptions is thrown.</exception>
1938 </member>
1939 <member name="M:HttpServer.HttpListenerBase.OnAcceptingSocket(System.Net.Sockets.Socket)">
1940 <summary>
1941 Can be used to create filtering of new connections.
1942 </summary>
1943 <param name="socket">Accepted socket</param>
1944 <returns>true if connection can be accepted; otherwise false.</returns>
1945 </member>
1946 <member name="M:HttpServer.HttpListenerBase.Start(System.Int32)">
1947 <summary>
1948 Start listen for new connections
1949 </summary>
1950 <param name="backlog">Number of connections that can stand in a queue to be accepted.</param>
1951 <exception cref="T:System.InvalidOperationException">Listener have already been started.</exception>
1952 </member>
1953 <member name="M:HttpServer.HttpListenerBase.Stop">
1954 <summary>
1955 Stop the listener
1956 </summary>
1957 <exception cref="T:System.Net.Sockets.SocketException"></exception>
1958 </member>
1959 <member name="P:HttpServer.HttpListenerBase.LogWriter">
1960 <summary>
1961 Gives you a change to receive log entries for all internals of the HTTP library.
1962 </summary>
1963 <remarks>
1964 You may not switch log writer after starting the listener.
1965 </remarks>
1966 </member>
1967 <member name="P:HttpServer.HttpListenerBase.UseTraceLogs">
1968 <summary>
1969 True if we should turn on trace logs.
1970 </summary>
1971 </member>
1972 <member name="E:HttpServer.HttpListenerBase.ExceptionThrown">
1973 <summary>
1974 Catch exceptions not handled by the listener.
1975 </summary>
1976 <remarks>
1977 Exceptions will be thrown during debug mode if this event is not used,
1978 exceptions will be printed to console and suppressed during release mode.
1979 </remarks>
1980 </member>
1981 <member name="E:HttpServer.HttpListenerBase.RequestReceived">
1982 <summary>
1983 A request have been received from a <see cref="T:HttpServer.IHttpClientContext"/>.
1984 </summary>
1985 </member>
1986 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)">
1987 <summary>
1988 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class.
1989 </summary>
1990 <param name="address">IP Address to accept connections on</param>
1991 <param name="port">TCP Port to listen on, default HTTP port is 80.</param>
1992 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
1993 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
1994 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
1995 </member>
1996 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)">
1997 <summary>
1998 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class.
1999 </summary>
2000 <param name="address">The address.</param>
2001 <param name="port">The port.</param>
2002 <param name="factory">The factory.</param>
2003 <param name="certificate">The certificate.</param>
2004 </member>
2005 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
2006 <summary>
2007 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class.
2008 </summary>
2009 <param name="address">The address.</param>
2010 <param name="port">The port.</param>
2011 <param name="factory">The factory.</param>
2012 <param name="certificate">The certificate.</param>
2013 <param name="protocol">The protocol.</param>
2014 </member>
2015 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32)">
2016 <summary>
2017 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories.
2018 </summary>
2019 <param name="address">Address that the listener should accept connections on.</param>
2020 <param name="port">Port that listener should accept connections on.</param>
2021 <returns>Created HTTP listener.</returns>
2022 </member>
2023 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)">
2024 <summary>
2025 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories.
2026 </summary>
2027 <param name="address">Address that the listener should accept connections on.</param>
2028 <param name="port">Port that listener should accept connections on.</param>
2029 <param name="certificate">Certificate to use</param>
2030 <returns>Created HTTP listener.</returns>
2031 </member>
2032 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
2033 <summary>
2034 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories.
2035 </summary>
2036 <param name="address">Address that the listener should accept connections on.</param>
2037 <param name="port">Port that listener should accept connections on.</param>
2038 <param name="certificate">Certificate to use</param>
2039 <param name="protocol">which HTTPS protocol to use, default is TLS.</param>
2040 <returns>Created HTTP listener.</returns>
2041 </member>
2042 <member name="M:HttpServer.HttpListener.OnAcceptingSocket(System.Net.Sockets.Socket)">
2043 <summary>
2044 Can be used to create filtering of new connections.
2045 </summary>
2046 <param name="socket">Accepted socket</param>
2047 <returns>
2048 true if connection can be accepted; otherwise false.
2049 </returns>
2050 </member>
2051 <member name="E:HttpServer.HttpListener.Accepted">
2052 <summary>
2053 A client have been accepted, but not handled, by the listener.
2054 </summary>
2055 </member>
2056 <member name="T:HttpServer.Parser.HeaderEventArgs">
2057 <summary>
2058 Event arguments used when a new header have been parsed.
2059 </summary>
2060 </member>
2061 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor(System.String,System.String)">
2062 <summary>
2063 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class.
2064 </summary>
2065 <param name="name">Name of header.</param>
2066 <param name="value">Header value.</param>
2067 </member>
2068 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor">
2069 <summary>
2070 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class.
2071 </summary>
2072 </member>
2073 <member name="P:HttpServer.Parser.HeaderEventArgs.Name">
2074 <summary>
2075 Gets or sets header name.
2076 </summary>
2077 </member>
2078 <member name="P:HttpServer.Parser.HeaderEventArgs.Value">
2079 <summary>
2080 Gets or sets header value.
1174 </summary> 2081 </summary>
1175 </member> 2082 </member>
1176 <member name="T:HttpServer.LogPrio"> 2083 <member name="T:HttpServer.LogPrio">
@@ -1268,27 +2175,6 @@
1268 <param name="prio">Importance of the log message</param> 2175 <param name="prio">Importance of the log message</param>
1269 <param name="message">The message.</param> 2176 <param name="message">The message.</param>
1270 </member> 2177 </member>
1271 <member name="T:HttpServer.IHttpContextHandler">
1272 <summary>
1273 Class that receives Requests from a <see cref="T:HttpServer.IHttpClientContext"/>.
1274 </summary>
1275 </member>
1276 <member name="M:HttpServer.IHttpContextHandler.ClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)">
1277 <summary>
1278 Client have been disconnected.
1279 </summary>
1280 <param name="client">Client that was disconnected.</param>
1281 <param name="error">Reason</param>
1282 <see cref="T:HttpServer.IHttpClientContext"/>
1283 </member>
1284 <member name="M:HttpServer.IHttpContextHandler.RequestReceived(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
1285 <summary>
1286 Invoked when a client context have received a new HTTP request
1287 </summary>
1288 <param name="client">Client that received the request.</param>
1289 <param name="request">Request that was received.</param>
1290 <see cref="T:HttpServer.IHttpClientContext"/>
1291 </member>
1292 <member name="T:HttpServer.Helpers.JSHelper"> 2178 <member name="T:HttpServer.Helpers.JSHelper">
1293 <summary> 2179 <summary>
1294 Will contain helper functions for javascript. 2180 Will contain helper functions for javascript.
@@ -1342,65 +2228,14 @@
1342 <returns>javascript for closing a dialog.</returns> 2228 <returns>javascript for closing a dialog.</returns>
1343 <see cref="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])"/> 2229 <see cref="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])"/>
1344 </member> 2230 </member>
1345 <member name="T:HttpServer.Helpers.FormHelper"> 2231 <member name="T:HttpServer.Helpers.GetIdTitle">
1346 <summary>
1347 Helpers making it easier to work with forms.
1348 </summary>
1349 <seealso cref="T:HttpServer.Helpers.ObjectForm"/>
1350 </member>
1351 <member name="F:HttpServer.Helpers.FormHelper.JSImplementation">
1352 <summary>
1353 Used to let the website use different JavaScript libraries.
1354 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/>
1355 </summary>
1356 </member>
1357 <member name="M:HttpServer.Helpers.FormHelper.Start(System.String,System.String,System.Boolean,System.String[])">
1358 <summary>
1359 Create a &lt;form&gt; tag.
1360 </summary>
1361 <param name="id">name of form</param>
1362 <param name="action">action to invoke on submit</param>
1363 <param name="isAjax">form should be posted as Ajax</param>
1364 <returns>HTML code</returns>
1365 <example>
1366 <code>
1367 // without options
1368 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
1369
1370 // with options
1371 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax, "style", "display:inline", "class", "greenForm");
1372 </code>
1373 </example>
1374 <param name="options">HTML attributes or JavaScript options.</param>
1375 <remarks>Method will ALWAYS be POST.</remarks>
1376 <exception cref="T:System.ArgumentException">options must consist of name, value, name, value</exception>
1377 </member>
1378 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
1379 <summary>
1380 Creates a select list with the values in a collection.
1381 </summary>
1382 <param name="name">Name of the SELECT-tag</param>
1383 <param name="collection">collection used to generate options.</param>
1384 <param name="getIdTitle">delegate used to return id and title from objects.</param>
1385 <param name="selectedValue">value that should be marked as selected.</param>
1386 <param name="firstEmpty">First row should contain an empty value.</param>
1387 <returns>string containing a SELECT-tag.</returns>
1388 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
1389 </member>
1390 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
1391 <summary> 2232 <summary>
1392 Creates a select list with the values in a collection. 2233 Delegate used by <see cref="M:HttpServer.Helpers.FormHelper.Select(System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"/> to populate select options.
1393 </summary> 2234 </summary>
1394 <param name="name">Name of the SELECT-tag</param> 2235 <param name="obj">current object (for instance a User).</param>
1395 <param name="id">Id of the SELECT-tag</param> 2236 <param name="id">Text that should be displayed in the value part of a &lt;optiongt;-tag.</param>
1396 <param name="collection">collection used to generate options.</param> 2237 <param name="title">Text shown in the select list.</param>
1397 <param name="getIdTitle">delegate used to return id and title from objects.</param>
1398 <param name="selectedValue">value that should be marked as selected.</param>
1399 <param name="firstEmpty">First row should contain an empty value.</param>
1400 <returns>string containing a SELECT-tag.</returns>
1401 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
1402 <example> 2238 <example>
1403 <code>
1404 // Class that is going to be used in a SELECT-tag. 2239 // Class that is going to be used in a SELECT-tag.
1405 public class User 2240 public class User
1406 { 2241 {
@@ -1453,239 +2288,40 @@
1453 User user = (User)o; 2288 User user = (User)o;
1454 id = user.Id; 2289 id = user.Id;
1455 value = user.RealName; 2290 value = user.RealName;
1456 } 2291 } /// </example>
1457 </code>
1458 </example>
1459 <exception cref="T:System.ArgumentNullException"><c>name</c>, <c>id</c>, <c>collection</c> or <c>getIdTitle</c> is null.</exception>
1460 </member>
1461 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean,System.String[])">
1462 <summary>
1463 Creates a select list with the values in a collection.
1464 </summary>
1465 <param name="name">Name of the SELECT-tag</param>
1466 <param name="id">Id of the SELECT-tag</param>
1467 <param name="collection">collection used to generate options.</param>
1468 <param name="getIdTitle">delegate used to return id and title from objects.</param>
1469 <param name="selectedValue">value that should be marked as selected.</param>
1470 <param name="firstEmpty">First row should contain an empty value.</param>
1471 <param name="htmlAttributes">name, value collection of extra HTML attributes.</param>
1472 <returns>string containing a SELECT-tag.</returns>
1473 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
1474 <exception cref="T:System.ArgumentNullException"><c>name</c>, <c>id</c>, <c>collection</c> or <c>getIdTitle</c> is null.</exception>
1475 <exception cref="T:System.ArgumentException">Invalid HTML attribute list.</exception>
1476 </member>
1477 <member name="M:HttpServer.Helpers.FormHelper.Options(System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
1478 <summary>
1479 Generate a list of HTML options
1480 </summary>
1481 <param name="collection">collection used to generate options.</param>
1482 <param name="getIdTitle">delegate used to return id and title from objects.</param>
1483 <param name="selectedValue">value that should be marked as selected.</param>
1484 <param name="firstEmpty">First row should contain an empty value.</param>
1485 <returns></returns>
1486 <exception cref="T:System.ArgumentNullException"><c>collection</c> or <c>getIdTitle</c> is null.</exception>
1487 </member>
1488 <member name="M:HttpServer.Helpers.FormHelper.Options(System.Text.StringBuilder,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
1489 <exception cref="T:System.ArgumentNullException"><c>sb</c> is null.</exception>
1490 </member>
1491 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.Object,System.Object,System.String[])">
1492 <summary>
1493 Creates a check box.
1494 </summary>
1495 <param name="name">element name</param>
1496 <param name="value">element value</param>
1497 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the
1498 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
1499 the box is checked or not. </param>
1500 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
1501 <returns>a generated radio button</returns>
1502 </member>
1503 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.String,System.Object,System.Object,System.String[])">
1504 <summary>
1505 Creates a check box.
1506 </summary>
1507 <param name="name">element name</param>
1508 <param name="id">element id</param>
1509 <param name="value">element value</param>
1510 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the
1511 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
1512 the box is checked or not. </param>
1513 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
1514 <returns>a generated radio button</returns>
1515 <remarks>
1516 value in your business object. (check box will be selected if it matches the element value)
1517 </remarks>
1518 </member>
1519 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.String,System.Object,System.String[])">
1520 <summary>
1521 Creates a check box.
1522 </summary>
1523 <param name="name">element name</param>
1524 <param name="id">element id</param>
1525 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the
1526 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
1527 the box is checked or not. </param>
1528 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
1529 <returns>a generated radio button</returns>
1530 <remarks>will set value to "1".</remarks>
1531 </member>
1532 <member name="M:HttpServer.Helpers.FormHelper.RadioButton(System.String,System.Object,System.Object,System.String[])">
1533 <summary>
1534 Creates a RadioButton.
1535 </summary>
1536 <param name="name">element name</param>
1537 <param name="value">element value</param>
1538 <param name="isSelected">determines if the radio button is selected or not. This is done differently depending on the
1539 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
1540 the box is checked or not. </param>
1541 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
1542 <returns>a generated radio button</returns>
1543 </member>
1544 <member name="M:HttpServer.Helpers.FormHelper.RadioButton(System.String,System.String,System.Object,System.Object,System.String[])">
1545 <summary>
1546 Creates a RadioButton.
1547 </summary>
1548 <param name="name">element name</param>
1549 <param name="id">element id</param>
1550 <param name="value">element value</param>
1551 <param name="isSelected">determines if the radio button is selected or not. This is done differently depending on the
1552 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
1553 the box is checked or not. </param>
1554 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
1555 <returns>a generated radio button</returns>
1556 </member>
1557 <member name="M:HttpServer.Helpers.FormHelper.End">
1558 <summary>
1559 form close tag
1560 </summary>
1561 <returns></returns>
1562 </member>
1563 <member name="T:HttpServer.Sessions.HttpSessionClearedArgs">
1564 <summary>
1565 Arguments sent when a <see cref="T:HttpServer.Sessions.IHttpSession"/> is cleared
1566 </summary>
1567 </member>
1568 <member name="M:HttpServer.Sessions.HttpSessionClearedArgs.#ctor(System.Boolean)">
1569 <summary>
1570 Instantiates the arguments for the event
1571 </summary>
1572 <param name="expired">True if the session is cleared due to expiration</param>
1573 </member>
1574 <member name="P:HttpServer.Sessions.HttpSessionClearedArgs.Expired">
1575 <summary>
1576 Returns true if the session is cleared due to expiration
1577 </summary>
1578 </member>
1579 <member name="T:HttpServer.Sessions.HttpSessionClearedHandler">
1580 <summary>
1581 Delegate for when a IHttpSession is cleared
1582 </summary>
1583 <param name="session"><see cref="T:HttpServer.Sessions.IHttpSession"/> this is being cleared.</param>
1584 <param name="args">Arguments for the clearing</param>
1585 </member>
1586 <member name="T:HttpServer.RequestQueue">
1587 <summary>
1588 Used to queue incoming requests.
1589 </summary>
1590 </member>
1591 <member name="M:HttpServer.RequestQueue.#ctor(HttpServer.ProcessRequestHandler)">
1592 <summary>
1593 Initializes a new instance of the <see cref="T:HttpServer.RequestQueue"/> class.
1594 </summary>
1595 <param name="handler">Called when a request should be processed.</param>
1596 </member>
1597 <member name="M:HttpServer.RequestQueue.QueueThread">
1598 <summary>
1599 Used to process queued requests.
1600 </summary>
1601 </member>
1602 <member name="P:HttpServer.RequestQueue.MaxRequestCount">
1603 <summary>
1604 Gets or sets maximum number of allowed simultaneous requests.
1605 </summary>
1606 </member>
1607 <member name="P:HttpServer.RequestQueue.MaxQueueSize">
1608 <summary>
1609 Gets or sets maximum number of requests queuing to be handled.
1610 </summary>
1611 </member>
1612 <member name="P:HttpServer.RequestQueue.CurrentRequestCount">
1613 <summary>
1614 Specifies how many requests the HTTP server is currently processing.
1615 </summary>
1616 </member> 2292 </member>
1617 <member name="T:HttpServer.RequestQueue.QueueItem"> 2293 <member name="T:HttpServer.Parser.BodyEventArgs">
1618 <summary> 2294 <summary>
1619 Used two queue incoming requests to avoid 2295 Arguments used when more body bytes have come.
1620 thread starvation.
1621 </summary> 2296 </summary>
1622 </member> 2297 </member>
1623 <member name="T:HttpServer.ProcessRequestHandler"> 2298 <member name="M:HttpServer.Parser.BodyEventArgs.#ctor(System.Byte[],System.Int32,System.Int32)">
1624 <summary> 2299 <summary>
1625 Method used to process a queued request 2300 Initializes a new instance of the <see cref="T:HttpServer.Parser.BodyEventArgs"/> class.
1626 </summary> 2301 </summary>
1627 <param name="context">Context that the request was received from.</param> 2302 <param name="buffer">buffer that contains the received bytes.</param>
1628 <param name="request">Request to process.</param> 2303 <param name="offset">offset in buffer where to start processing.</param>
2304 <param name="count">number of bytes from <paramref name="offset"/> that should be parsed.</param>
1629 </member> 2305 </member>
1630 <member name="T:HttpServer.RequestParserFactory"> 2306 <member name="M:HttpServer.Parser.BodyEventArgs.#ctor">
1631 <summary> 2307 <summary>
1632 Creates request parsers when needed. 2308 Initializes a new instance of the <see cref="T:HttpServer.Parser.BodyEventArgs"/> class.
1633 </summary> 2309 </summary>
1634 </member> 2310 </member>
1635 <member name="T:HttpServer.IRequestParserFactory"> 2311 <member name="P:HttpServer.Parser.BodyEventArgs.Buffer">
1636 <summary> 2312 <summary>
1637 Creates request parsers when needed. 2313 Gets or sets buffer that contains the received bytes.
1638 </summary> 2314 </summary>
1639 </member> 2315 </member>
1640 <member name="M:HttpServer.IRequestParserFactory.CreateParser(HttpServer.ILogWriter)"> 2316 <member name="P:HttpServer.Parser.BodyEventArgs.Count">
1641 <summary>
1642 Create a new request parser.
1643 </summary>
1644 <param name="logWriter">Used when logging should be enabled.</param>
1645 <returns>A new request parser.</returns>
1646 </member>
1647 <member name="M:HttpServer.RequestParserFactory.CreateParser(HttpServer.ILogWriter)">
1648 <summary> 2317 <summary>
1649 Create a new request parser. 2318 Gets or sets number of bytes from <see cref="P:HttpServer.Parser.BodyEventArgs.Offset"/> that should be parsed.
1650 </summary> 2319 </summary>
1651 <param name="logWriter">Used when logging should be enabled.</param>
1652 <returns>A new request parser.</returns>
1653 </member> 2320 </member>
1654 <member name="T:HttpServer.HttpResponse"> 2321 <member name="P:HttpServer.Parser.BodyEventArgs.Offset">
1655 <summary> 2322 <summary>
1656 Response that is sent back to the web browser / client. 2323 Gets or sets offset in buffer where to start processing.
1657 </summary> 2324 </summary>
1658 <remarks>
1659 <para>
1660 A response can be sent if different ways. The easiest one is
1661 to just fill the Body stream with content, everything else
1662 will then be taken care of by the framework. The default content-type
1663 is text/html, you should change it if you send anything else.
1664 </para><para>
1665 The second and slightly more complex way is to send the response
1666 as parts. Start with sending the header using the SendHeaders method and
1667 then you can send the body using SendBody method, but do not forget
1668 to set <see cref="P:HttpServer.HttpResponse.ContentType"/> and <see cref="P:HttpServer.HttpResponse.ContentLength"/> before doing so.
1669 </para>
1670 </remarks>
1671 <example>
1672 <code>
1673 // Example using response body.
1674 class MyModule : HttpModule
1675 {
1676 public override bool Process(IHttpRequest request, IHttpResponse response, IHttpSession session)
1677 {
1678 StreamWriter writer = new StreamWriter(response.Body);
1679 writer.WriteLine("Hello dear World!");
1680 writer.Flush();
1681
1682 // return true to tell webserver that we've handled the url
1683 return true;
1684 }
1685 }
1686 </code>
1687 </example>
1688 todo: add two examples, using SendHeaders/SendBody and just the Body stream.
1689 </member> 2325 </member>
1690 <member name="T:HttpServer.IHttpResponse"> 2326 <member name="T:HttpServer.IHttpResponse">
1691 <summary> 2327 <summary>
@@ -1856,587 +2492,503 @@
1856 Cookies that should be created/changed. 2492 Cookies that should be created/changed.
1857 </summary> 2493 </summary>
1858 </member> 2494 </member>
1859 <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)"> 2495 <member name="T:HttpServer.ConnectionType">
1860 <summary> 2496 <summary>
1861 Initializes a new instance of the <see cref="T:HttpServer.IHttpResponse"/> class. 2497 Type of HTTP connection
1862 </summary> 2498 </summary>
1863 <param name="context">Client that send the <see cref="T:HttpServer.IHttpRequest"/>.</param>
1864 <param name="request">Contains information of what the client want to receive.</param>
1865 <exception cref="T:System.ArgumentException"><see cref="P:HttpServer.IHttpRequest.HttpVersion"/> cannot be empty.</exception>
1866 </member> 2499 </member>
1867 <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,System.String,HttpServer.ConnectionType)"> 2500 <member name="F:HttpServer.ConnectionType.Close">
1868 <summary> 2501 <summary>
1869 Initializes a new instance of the <see cref="T:HttpServer.IHttpResponse"/> class. 2502 Connection is closed after each request-response
1870 </summary> 2503 </summary>
1871 <param name="context">Client that send the <see cref="T:HttpServer.IHttpRequest"/>.</param>
1872 <param name="httpVersion">Version of HTTP protocol that the client uses.</param>
1873 <param name="connectionType">Type of HTTP connection used.</param>
1874 </member> 2504 </member>
1875 <member name="M:HttpServer.HttpResponse.AddHeader(System.String,System.String)"> 2505 <member name="F:HttpServer.ConnectionType.KeepAlive">
1876 <summary> 2506 <summary>
1877 Add another header to the document. 2507 Connection is kept alive for X seconds (unless another request have been made)
1878 </summary> 2508 </summary>
1879 <param name="name">Name of the header, case sensitive, use lower cases.</param>
1880 <param name="value">Header values can span over multiple lines as long as each line starts with a white space. New line chars should be \r\n</param>
1881 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
1882 <exception cref="T:System.ArgumentException">If value conditions have not been met.</exception>
1883 <remarks>Adding any header will override the default ones and those specified by properties.</remarks>
1884 </member> 2509 </member>
1885 <member name="M:HttpServer.HttpResponse.Send"> 2510 <member name="T:HttpServer.IHttpRequest">
1886 <summary> 2511 <summary>
1887 Send headers and body to the browser. 2512 Contains server side HTTP request information.
1888 </summary> 2513 </summary>
1889 <exception cref="T:System.InvalidOperationException">If content have already been sent.</exception>
1890 </member> 2514 </member>
1891 <member name="M:HttpServer.HttpResponse.SendBody(System.Byte[],System.Int32,System.Int32)"> 2515 <member name="M:HttpServer.IHttpRequest.AddHeader(System.String,System.String)">
1892 <summary> 2516 <summary>
1893 Make sure that you have specified <see cref="P:HttpServer.HttpResponse.ContentLength"/> and sent the headers first. 2517 Called during parsing of a <see cref="T:HttpServer.IHttpRequest"/>.
1894 </summary> 2518 </summary>
1895 <param name="buffer"></param> 2519 <param name="name">Name of the header, should not be URL encoded</param>
1896 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception> 2520 <param name="value">Value of the header, should not be URL encoded</param>
1897 <see cref="M:HttpServer.HttpResponse.SendHeaders"/> 2521 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception>
1898 <param name="offset">offset of first byte to send</param>
1899 <param name="count">number of bytes to send.</param>
1900 <seealso cref="M:HttpServer.HttpResponse.Send"/>
1901 <seealso cref="M:HttpServer.HttpResponse.SendHeaders"/>
1902 <remarks>This method can be used if you want to send body contents without caching them first. This
1903 is recommended for larger files to keep the memory usage low.</remarks>
1904 </member> 2522 </member>
1905 <member name="M:HttpServer.HttpResponse.SendBody(System.Byte[])"> 2523 <member name="M:HttpServer.IHttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)">
1906 <summary> 2524 <summary>
1907 Make sure that you have specified <see cref="P:HttpServer.HttpResponse.ContentLength"/> and sent the headers first. 2525 Add bytes to the body
1908 </summary> 2526 </summary>
1909 <param name="buffer"></param> 2527 <param name="bytes">buffer to read bytes from</param>
1910 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception> 2528 <param name="offset">where to start read</param>
1911 <see cref="M:HttpServer.HttpResponse.SendHeaders"/> 2529 <param name="length">number of bytes to read</param>
1912 <seealso cref="M:HttpServer.HttpResponse.Send"/> 2530 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns>
1913 <seealso cref="M:HttpServer.HttpResponse.SendHeaders"/> 2531 <exception cref="T:System.InvalidOperationException">If body is not writable</exception>
1914 <remarks>This method can be used if you want to send body contents without caching them first. This 2532 <exception cref="T:System.ArgumentNullException"><c>bytes</c> is null.</exception>
1915 is recommended for larger files to keep the memory usage low.</remarks> 2533 <exception cref="T:System.ArgumentOutOfRangeException"><c>offset</c> is out of range.</exception>
1916 </member> 2534 </member>
1917 <member name="M:HttpServer.HttpResponse.SendHeaders"> 2535 <member name="M:HttpServer.IHttpRequest.Clear">
1918 <summary> 2536 <summary>
1919 Send headers to the client. 2537 Clear everything in the request
1920 </summary> 2538 </summary>
1921 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
1922 <seealso cref="M:HttpServer.HttpResponse.AddHeader(System.String,System.String)"/>
1923 <seealso cref="M:HttpServer.HttpResponse.Send"/>
1924 <seealso cref="M:HttpServer.HttpResponse.SendBody(System.Byte[])"/>
1925 </member> 2539 </member>
1926 <member name="M:HttpServer.HttpResponse.Redirect(System.Uri)"> 2540 <member name="M:HttpServer.IHttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)">
1927 <summary> 2541 <summary>
1928 Redirect client to somewhere else using the 302 status code. 2542 Decode body into a form.
1929 </summary> 2543 </summary>
1930 <param name="uri">Destination of the redirect</param> 2544 <param name="providers">A list with form decoders.</param>
1931 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception> 2545 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception>
1932 <remarks>You can not do anything more with the request when a redirect have been done. This should be your last 2546 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception>
1933 action.</remarks>
1934 </member> 2547 </member>
1935 <member name="M:HttpServer.HttpResponse.Redirect(System.String)"> 2548 <member name="M:HttpServer.IHttpRequest.SetCookies(HttpServer.RequestCookies)">
1936 <summary> 2549 <summary>
1937 redirect to somewhere 2550 Sets the cookies.
1938 </summary> 2551 </summary>
1939 <param name="url">where the redirect should go</param> 2552 <param name="cookies">The cookies.</param>
1940 <remarks>
1941 No body are allowed when doing redirects.
1942 </remarks>
1943 </member> 2553 </member>
1944 <member name="P:HttpServer.HttpResponse.Body"> 2554 <member name="M:HttpServer.IHttpRequest.CreateResponse(HttpServer.IHttpClientContext)">
1945 <summary> 2555 <summary>
1946 The body stream is used to cache the body contents 2556 Create a response object.
1947 before sending everything to the client. It's the simplest
1948 way to serve documents.
1949 </summary> 2557 </summary>
2558 <param name="context">Context for the connected client.</param>
2559 <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns>
1950 </member> 2560 </member>
1951 <member name="P:HttpServer.HttpResponse.Chunked"> 2561 <member name="P:HttpServer.IHttpRequest.AcceptTypes">
1952 <summary> 2562 <summary>
1953 The chunked encoding modifies the body of a message in order to 2563 Gets kind of types accepted by the client.
1954 transfer it as a series of chunks, each with its own size indicator,
1955 followed by an OPTIONAL trailer containing entity-header fields. This
1956 allows dynamically produced content to be transferred along with the
1957 information necessary for the recipient to verify that it has
1958 received the full message.
1959 </summary> 2564 </summary>
1960 </member> 2565 </member>
1961 <member name="P:HttpServer.HttpResponse.ProtocolVersion"> 2566 <member name="P:HttpServer.IHttpRequest.Body">
1962 <summary> 2567 <summary>
1963 Defines the version of the HTTP Response for applications where it's required 2568 Gets or sets body stream.
1964 for this to be forced.
1965 </summary> 2569 </summary>
1966 </member> 2570 </member>
1967 <member name="P:HttpServer.HttpResponse.Connection"> 2571 <member name="P:HttpServer.IHttpRequest.BodyIsComplete">
1968 <summary> 2572 <summary>
1969 Kind of connection 2573 Gets whether the body is complete.
1970 </summary> 2574 </summary>
1971 </member> 2575 </member>
1972 <member name="P:HttpServer.HttpResponse.Encoding"> 2576 <member name="P:HttpServer.IHttpRequest.Connection">
1973 <summary> 2577 <summary>
1974 Encoding to use when sending stuff to the client. 2578 Gets or sets kind of connection used for the session.
1975 </summary> 2579 </summary>
1976 <remarks>Default is UTF8</remarks>
1977 </member> 2580 </member>
1978 <member name="P:HttpServer.HttpResponse.KeepAlive"> 2581 <member name="P:HttpServer.IHttpRequest.ContentLength">
1979 <summary> 2582 <summary>
1980 Number of seconds to keep connection alive 2583 Gets or sets number of bytes in the body.
1981 </summary> 2584 </summary>
1982 <remarks>Only used if Connection property is set to <see cref="F:HttpServer.ConnectionType.KeepAlive"/>.</remarks>
1983 </member> 2585 </member>
1984 <member name="P:HttpServer.HttpResponse.Status"> 2586 <member name="P:HttpServer.IHttpRequest.Cookies">
1985 <summary> 2587 <summary>
1986 Status code that is sent to the client. 2588 Gets cookies that was sent with the request.
1987 </summary> 2589 </summary>
1988 <remarks>Default is <see cref="F:System.Net.HttpStatusCode.OK"/></remarks>
1989 </member> 2590 </member>
1990 <member name="P:HttpServer.HttpResponse.Reason"> 2591 <member name="P:HttpServer.IHttpRequest.Form">
1991 <summary> 2592 <summary>
1992 Information about why a specific status code was used. 2593 Gets form parameters.
1993 </summary> 2594 </summary>
1994 </member> 2595 </member>
1995 <member name="P:HttpServer.HttpResponse.ContentLength"> 2596 <member name="P:HttpServer.IHttpRequest.Headers">
1996 <summary> 2597 <summary>
1997 Size of the body. MUST be specified before sending the header, 2598 Gets headers sent by the client.
1998 unless property Chunked is set to true.
1999 </summary> 2599 </summary>
2000 </member> 2600 </member>
2001 <member name="P:HttpServer.HttpResponse.ContentType"> 2601 <member name="P:HttpServer.IHttpRequest.HttpVersion">
2002 <summary> 2602 <summary>
2003 Kind of content in the body 2603 Gets or sets version of HTTP protocol that's used.
2004 </summary> 2604 </summary>
2005 <remarks>Default type is "text/html"</remarks> 2605 <remarks>
2606 Probably <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/>.
2607 </remarks>
2608 <seealso cref="T:HttpServer.HttpHelper"/>
2006 </member> 2609 </member>
2007 <member name="P:HttpServer.HttpResponse.HeadersSent"> 2610 <member name="P:HttpServer.IHttpRequest.IsAjax">
2008 <summary> 2611 <summary>
2009 Headers have been sent to the client- 2612 Gets whether the request was made by Ajax (Asynchronous JavaScript)
2010 </summary> 2613 </summary>
2011 <remarks>You can not send any additional headers if they have already been sent.</remarks>
2012 </member> 2614 </member>
2013 <member name="P:HttpServer.HttpResponse.Sent"> 2615 <member name="P:HttpServer.IHttpRequest.Method">
2014 <summary> 2616 <summary>
2015 The whole response have been sent. 2617 Gets or sets requested method.
2016 </summary> 2618 </summary>
2619 <remarks>
2620 Will always be in upper case.
2621 </remarks>
2622 <see cref="P:HttpServer.IHttpRequest.Method"/>
2017 </member> 2623 </member>
2018 <member name="P:HttpServer.HttpResponse.Cookies"> 2624 <member name="P:HttpServer.IHttpRequest.Param">
2019 <summary> 2625 <summary>
2020 Cookies that should be created/changed. 2626 Gets parameter from <see cref="P:HttpServer.IHttpRequest.QueryString"/> or <see cref="P:HttpServer.IHttpRequest.Form"/>.
2021 </summary> 2627 </summary>
2022 </member> 2628 </member>
2023 <member name="T:HttpServer.HttpContextFactory"> 2629 <member name="P:HttpServer.IHttpRequest.QueryString">
2024 <summary> 2630 <summary>
2025 Used to create and reuse contexts. 2631 Gets variables sent in the query string
2026 </summary> 2632 </summary>
2027 </member> 2633 </member>
2028 <member name="T:HttpServer.IHttpContextFactory"> 2634 <member name="P:HttpServer.IHttpRequest.Uri">
2029 <summary> 2635 <summary>
2030 Used to create <see cref="T:HttpServer.IHttpClientContext"/>es. 2636 Gets or sets requested URI.
2031 </summary> 2637 </summary>
2032 </member> 2638 </member>
2033 <member name="M:HttpServer.IHttpContextFactory.CreateContext(System.Net.Sockets.Socket)"> 2639 <member name="P:HttpServer.IHttpRequest.UriParts">
2034 <summary> 2640 <summary>
2035 Creates a <see cref="T:HttpServer.IHttpClientContext"/> that handles a connected client. 2641 Gets URI absolute path divided into parts.
2036 </summary> 2642 </summary>
2037 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param> 2643 <example>
2038 <returns>A creates <see cref="T:HttpServer.IHttpClientContext"/>.</returns> 2644 // URI is: http://gauffin.com/code/tiny/
2645 Console.WriteLine(request.UriParts[0]); // result: code
2646 Console.WriteLine(request.UriParts[1]); // result: tiny
2647 </example>
2648 <remarks>
2649 If you're using controllers than the first part is controller name,
2650 the second part is method name and the third part is Id property.
2651 </remarks>
2652 <seealso cref="P:HttpServer.IHttpRequest.Uri"/>
2039 </member> 2653 </member>
2040 <member name="M:HttpServer.IHttpContextFactory.CreateSecureContext(System.Net.Sockets.Socket,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)"> 2654 <member name="P:HttpServer.IHttpRequest.UriPath">
2041 <summary> 2655 <summary>
2042 Create a secure <see cref="T:HttpServer.IHttpClientContext"/>. 2656 Gets or sets path and query.
2043 </summary> 2657 </summary>
2044 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param> 2658 <see cref="P:HttpServer.IHttpRequest.Uri"/>
2045 <param name="certificate">HTTPS certificate to use.</param> 2659 <remarks>
2046 <param name="protocol">Kind of HTTPS protocol. Usually TLS or SSL.</param> 2660 Are only used during request parsing. Cannot be set after "Host" header have been
2047 <returns>A created <see cref="T:HttpServer.IHttpClientContext"/>.</returns> 2661 added.
2662 </remarks>
2048 </member> 2663 </member>
2049 <member name="E:HttpServer.IHttpContextFactory.RequestReceived"> 2664 <member name="T:HttpServer.IHttpClientContext">
2050 <summary> 2665 <summary>
2051 A request have been received from one of the contexts. 2666 Contains a connection to a browser/client.
2052 </summary> 2667 </summary>
2053 </member> 2668 </member>
2054 <member name="M:HttpServer.HttpContextFactory.#ctor(HttpServer.ILogWriter,System.Int32,HttpServer.IRequestParserFactory)"> 2669 <member name="M:HttpServer.IHttpClientContext.Disconnect(System.Net.Sockets.SocketError)">
2055 <summary> 2670 <summary>
2056 Initializes a new instance of the <see cref="T:HttpServer.HttpContextFactory"/> class. 2671 Disconnect from client
2057 </summary> 2672 </summary>
2058 <param name="writer">The writer.</param> 2673 <param name="error">error to report in the <see cref="E:HttpServer.IHttpClientContext.Disconnected"/> event.</param>
2059 <param name="bufferSize">Amount of bytes to read from the incoming socket stream.</param>
2060 <param name="factory">Used to create a request parser.</param>
2061 </member> 2674 </member>
2062 <member name="M:HttpServer.HttpContextFactory.CreateContext(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,System.Net.Sockets.Socket)"> 2675 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)">
2063 <summary> 2676 <summary>
2064 Create a new context. 2677 Send a response.
2065 </summary> 2678 </summary>
2066 <param name="isSecured">true if socket is running HTTPS.</param> 2679 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
2067 <param name="endPoint">Client that connected</param> 2680 <param name="statusCode">HTTP status code</param>
2068 <param name="stream">Network/SSL stream.</param> 2681 <param name="reason">reason for the status code.</param>
2069 <returns>A context.</returns> 2682 <param name="body">HTML body contents, can be null or empty.</param>
2683 <param name="contentType">A content type to return the body as, i.e. 'text/html' or 'text/plain', defaults to 'text/html' if null or empty</param>
2684 <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception>
2070 </member> 2685 </member>
2071 <member name="M:HttpServer.HttpContextFactory.CreateNewContext(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,System.Net.Sockets.Socket)"> 2686 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)">
2072 <summary> 2687 <summary>
2073 Create a new context. 2688 Send a response.
2074 </summary> 2689 </summary>
2075 <param name="isSecured">true if HTTPS is used.</param> 2690 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
2076 <param name="endPoint">Remote client</param> 2691 <param name="statusCode">HTTP status code</param>
2077 <param name="stream">Network stream, <see cref="T:HttpServer.HttpClientContext"/> uses <see cref="T:HttpServer.ReusableSocketNetworkStream"/>.</param> 2692 <param name="reason">reason for the status code.</param>
2078 <returns>A new context (always).</returns>
2079 </member> 2693 </member>
2080 <member name="M:HttpServer.HttpContextFactory.CreateSecureContext(System.Net.Sockets.Socket,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)"> 2694 <member name="M:HttpServer.IHttpClientContext.Respond(System.String)">
2081 <summary> 2695 <summary>
2082 Create a secure <see cref="T:HttpServer.IHttpClientContext"/>. 2696 Send a response.
2083 </summary> 2697 </summary>
2084 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param> 2698 <exception cref="T:System.ArgumentNullException"></exception>
2085 <param name="certificate">HTTPS certificate to use.</param>
2086 <param name="protocol">Kind of HTTPS protocol. Usually TLS or SSL.</param>
2087 <returns>
2088 A created <see cref="T:HttpServer.IHttpClientContext"/>.
2089 </returns>
2090 </member> 2699 </member>
2091 <member name="M:HttpServer.HttpContextFactory.CreateContext(System.Net.Sockets.Socket)"> 2700 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[])">
2092 <summary> 2701 <summary>
2093 Creates a <see cref="T:HttpServer.IHttpClientContext"/> that handles a connected client. 2702 send a whole buffer
2094 </summary> 2703 </summary>
2095 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param> 2704 <param name="buffer">buffer to send</param>
2096 <returns> 2705 <exception cref="T:System.ArgumentNullException"></exception>
2097 A creates <see cref="T:HttpServer.IHttpClientContext"/>.
2098 </returns>
2099 </member> 2706 </member>
2100 <member name="P:HttpServer.HttpContextFactory.UseTraceLogs"> 2707 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[],System.Int32,System.Int32)">
2101 <summary> 2708 <summary>
2102 True if detailed trace logs should be written. 2709 Send data using the stream
2103 </summary> 2710 </summary>
2711 <param name="buffer">Contains data to send</param>
2712 <param name="offset">Start position in buffer</param>
2713 <param name="size">number of bytes to send</param>
2714 <exception cref="T:System.ArgumentNullException"></exception>
2715 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
2104 </member> 2716 </member>
2105 <member name="E:HttpServer.HttpContextFactory.RequestReceived"> 2717 <member name="M:HttpServer.IHttpClientContext.Close">
2106 <summary> 2718 <summary>
2107 A request have been received from one of the contexts. 2719 Closes the streams and disposes of the unmanaged resources
2108 </summary> 2720 </summary>
2109 </member> 2721 </member>
2110 <member name="T:HttpServer.ReusableSocketNetworkStream"> 2722 <member name="P:HttpServer.IHttpClientContext.Secured">
2111 <summary> 2723 <summary>
2112 Custom network stream to mark sockets as reusable when disposing the stream. 2724 Using SSL or other encryption method.
2113 </summary> 2725 </summary>
2114 </member> 2726 </member>
2115 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket)"> 2727 <member name="P:HttpServer.IHttpClientContext.IsSecured">
2116 <summary> 2728 <summary>
2117 Creates a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" />. 2729 Using SSL or other encryption method.
2118 </summary> 2730 </summary>
2119 <param name="socket">
2120 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
2121 </param>
2122 <exception cref="T:System.ArgumentNullException">
2123 The <paramref name="socket" /> parameter is null.
2124 </exception>
2125 <exception cref="T:System.IO.IOException">
2126 The <paramref name="socket" /> parameter is not connected.
2127 -or-
2128 The <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.
2129 -or-
2130 The <paramref name="socket" /> parameter is in a nonblocking state.
2131 </exception>
2132 </member> 2731 </member>
2133 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.Boolean)"> 2732 <member name="E:HttpServer.IHttpClientContext.Disconnected">
2134 <summary> 2733 <summary>
2135 Initializes a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" /> with the specified <see cref="T:System.Net.Sockets.Socket" /> ownership. 2734 The context have been disconnected.
2136 </summary> 2735 </summary>
2137 <param name="socket"> 2736 <remarks>
2138 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data. 2737 Event can be used to clean up a context, or to reuse it.
2139 </param> 2738 </remarks>
2140 <param name="ownsSocket">
2141 Set to true to indicate that the <see cref="T:System.Net.Sockets.NetworkStream" /> will take ownership of the <see cref="T:System.Net.Sockets.Socket" />; otherwise, false.
2142 </param>
2143 <exception cref="T:System.ArgumentNullException">
2144 The <paramref name="socket" /> parameter is null.
2145 </exception>
2146 <exception cref="T:System.IO.IOException">
2147 The <paramref name="socket" /> parameter is not connected.
2148 -or-
2149 the value of the <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.
2150 -or-
2151 the <paramref name="socket" /> parameter is in a nonblocking state.
2152 </exception>
2153 </member> 2739 </member>
2154 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.IO.FileAccess)"> 2740 <member name="E:HttpServer.IHttpClientContext.RequestReceived">
2155 <summary> 2741 <summary>
2156 Creates a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" /> with the specified access rights. 2742 A request have been received in the context.
2157 </summary> 2743 </summary>
2158 <param name="socket">
2159 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
2160 </param>
2161 <param name="access">
2162 A bitwise combination of the <see cref="T:System.IO.FileAccess" /> values that specify the type of access given to the <see cref="T:System.Net.Sockets.NetworkStream" /> over the provided <see cref="T:System.Net.Sockets.Socket" />.
2163 </param>
2164 <exception cref="T:System.ArgumentNullException">
2165 The <paramref name="socket" /> parameter is null.
2166 </exception>
2167 <exception cref="T:System.IO.IOException">
2168 The <paramref name="socket" /> parameter is not connected.
2169 -or-
2170 the <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.
2171 -or-
2172 the <paramref name="socket" /> parameter is in a nonblocking state.
2173 </exception>
2174 </member> 2744 </member>
2175 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.IO.FileAccess,System.Boolean)"> 2745 <member name="T:HttpServer.DisconnectedEventArgs">
2176 <summary> 2746 <summary>
2177 Creates a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" /> with the specified access rights and the specified <see cref="T:System.Net.Sockets.Socket" /> ownership. 2747 A <see cref="T:HttpServer.IHttpClientContext"/> have been disconnected.
2178 </summary> 2748 </summary>
2179 <param name="socket">
2180 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
2181 </param>
2182 <param name="access">
2183 A bitwise combination of the <see cref="T:System.IO.FileAccess" /> values that specifies the type of access given to the <see cref="T:System.Net.Sockets.NetworkStream" /> over the provided <see cref="T:System.Net.Sockets.Socket" />.
2184 </param>
2185 <param name="ownsSocket">
2186 Set to true to indicate that the <see cref="T:System.Net.Sockets.NetworkStream" /> will take ownership of the <see cref="T:System.Net.Sockets.Socket" />; otherwise, false.
2187 </param>
2188 <exception cref="T:System.ArgumentNullException">
2189 The <paramref name="socket" /> parameter is null.
2190 </exception>
2191 <exception cref="T:System.IO.IOException">
2192 The <paramref name="socket" /> parameter is not connected.
2193 -or-
2194 The <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.
2195 -or-
2196 The <paramref name="socket" /> parameter is in a nonblocking state.
2197 </exception>
2198 </member> 2749 </member>
2199 <member name="M:HttpServer.ReusableSocketNetworkStream.Close"> 2750 <member name="M:HttpServer.DisconnectedEventArgs.#ctor(System.Net.Sockets.SocketError)">
2200 <summary> 2751 <summary>
2201 Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream. 2752 Initializes a new instance of the <see cref="T:HttpServer.DisconnectedEventArgs"/> class.
2202 </summary> 2753 </summary>
2754 <param name="error">Reason to disconnection.</param>
2203 </member> 2755 </member>
2204 <member name="M:HttpServer.ReusableSocketNetworkStream.Dispose(System.Boolean)"> 2756 <member name="P:HttpServer.DisconnectedEventArgs.Error">
2205 <summary> 2757 <summary>
2206 Releases the unmanaged resources used by the <see cref="T:System.Net.Sockets.NetworkStream"/> and optionally releases the managed resources. 2758 Gets reason to why client disconnected.
2207 </summary> 2759 </summary>
2208 <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
2209 </member> 2760 </member>
2210 <member name="T:HttpServer.Authentication.BasicAuthentication"> 2761 <member name="T:HttpServer.RequestEventArgs">
2211 <summary> 2762 <summary>
2212 The "basic" authentication scheme is based on the model that the 2763
2213 client must authenticate itself with a user-ID and a password for
2214 each realm. The realm value should be considered an opaque string
2215 which can only be compared for equality with other realms on that
2216 server. The server will service the request only if it can validate
2217 the user-ID and password for the protection space of the Request-URI.
2218 There are no optional authentication parameters.
2219 </summary> 2764 </summary>
2220 </member> 2765 </member>
2221 <member name="T:HttpServer.Authentication.AuthenticationModule"> 2766 <member name="M:HttpServer.RequestEventArgs.#ctor(HttpServer.IHttpRequest)">
2222 <summary> 2767 <summary>
2223 Authentication modules are used to implement different 2768 Initializes a new instance of the <see cref="T:HttpServer.RequestEventArgs"/> class.
2224 kind of HTTP authentication.
2225 </summary> 2769 </summary>
2770 <param name="request">The request.</param>
2226 </member> 2771 </member>
2227 <member name="F:HttpServer.Authentication.AuthenticationModule.AuthenticationTag"> 2772 <member name="P:HttpServer.RequestEventArgs.Request">
2228 <summary> 2773 <summary>
2229 Tag used for authentication. 2774 Gets received request.
2230 </summary> 2775 </summary>
2231 </member> 2776 </member>
2232 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)"> 2777 <member name="T:HttpServer.HttpModules.WebSiteModule">
2233 <summary> 2778 <summary>
2234 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class. 2779 The website module let's you handle multiple websites in the same server.
2780 It uses the "Host" header to check which site you want.
2235 </summary> 2781 </summary>
2236 <param name="authenticator">Delegate used to provide information used during authentication.</param> 2782 <remarks>It's recommended that you do not
2237 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param> 2783 add any other modules to HttpServer if you are using the website module. Instead,
2784 add all wanted modules to each website.</remarks>
2238 </member> 2785 </member>
2239 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler)"> 2786 <member name="M:HttpServer.HttpModules.WebSiteModule.#ctor(System.String,System.String)">
2240 <summary> 2787 <summary>
2241 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class. 2788
2242 </summary> 2789 </summary>
2243 <param name="authenticator">Delegate used to provide information used during authentication.</param> 2790 <param name="host">domain name that should be handled.</param>
2791 <param name="name"></param>
2244 </member> 2792 </member>
2245 <member name="M:HttpServer.Authentication.AuthenticationModule.CreateResponse(System.String,System.Object[])"> 2793 <member name="M:HttpServer.HttpModules.WebSiteModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
2246 <summary> 2794 <summary>
2247 Create a response that can be sent in the WWW-Authenticate header. 2795 Method that process the url
2248 </summary> 2796 </summary>
2249 <param name="realm">Realm that the user should authenticate in</param> 2797 <param name="request">Information sent by the browser about the request</param>
2250 <param name="options">Array with optional options.</param> 2798 <param name="response">Information that is being sent back to the client.</param>
2251 <returns>A correct authentication request.</returns> 2799 <param name="session">Session used to </param>
2252 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
2253 </member> 2800 </member>
2254 <member name="M:HttpServer.Authentication.AuthenticationModule.Authenticate(System.String,System.String,System.String,System.Object[])"> 2801 <member name="P:HttpServer.HttpModules.WebSiteModule.SiteName">
2255 <summary> 2802 <summary>
2256 An authentication response have been received from the web browser. 2803 Name of site.
2257 Check if it's correct
2258 </summary> 2804 </summary>
2259 <param name="authenticationHeader">Contents from the Authorization header</param>
2260 <param name="realm">Realm that should be authenticated</param>
2261 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
2262 <param name="options">options to specific implementations</param>
2263 <returns>Authentication object that is stored for the request. A user class or something like that.</returns>
2264 <exception cref="T:System.ArgumentException">if <paramref name="authenticationHeader"/> is invalid</exception>
2265 <exception cref="T:System.ArgumentNullException">If any of the parameters is empty or null.</exception>
2266 </member> 2805 </member>
2267 <member name="M:HttpServer.Authentication.AuthenticationModule.CheckAuthentication(System.String,System.String,System.String@,System.Object@)"> 2806 <member name="T:HttpServer.HttpInputItem">
2268 <summary> 2807 <summary>
2269 Used to invoke the authentication delegate that is used to lookup the user name/realm. 2808 represents a HTTP input item. Each item can have multiple sub items, a sub item
2809 is made in a HTML form by using square brackets
2270 </summary> 2810 </summary>
2271 <param name="realm">Realm (domain) that user want to authenticate in</param> 2811 <example>
2272 <param name="userName">User name</param> 2812 // <input type="text" name="user[FirstName]" value="jonas" /> becomes:
2273 <param name="password">Password used for validation. Some implementations got password in clear text, they are then sent to client.</param> 2813 Console.WriteLine("Value: {0}", form["user"]["FirstName"].Value);
2274 <param name="login">object that will be stored in the request to help you identify the user if authentication was successful.</param> 2814 </example>
2275 <returns>true if authentication was successful</returns> 2815 <remarks>
2816 All names in a form SHOULD be in lowercase.
2817 </remarks>
2276 </member> 2818 </member>
2277 <member name="M:HttpServer.Authentication.AuthenticationModule.AuthenticationRequired(HttpServer.IHttpRequest)"> 2819 <member name="F:HttpServer.HttpInputItem.Empty">
2820 <summary> Representation of a non-initialized <see cref="T:HttpServer.HttpInputItem"/>.</summary>
2821 </member>
2822 <member name="M:HttpServer.HttpInputItem.#ctor(System.String,System.String)">
2278 <summary> 2823 <summary>
2279 Determines if authentication is required. 2824 Initializes an input item setting its name/identifier and value
2280 </summary> 2825 </summary>
2281 <param name="request">HTTP request from browser</param> 2826 <param name="name">Parameter name/id</param>
2282 <returns>true if user should be authenticated.</returns> 2827 <param name="value">Parameter value</param>
2283 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> from your delegate if no more attempts are allowed.</remarks>
2284 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
2285 </member> 2828 </member>
2286 <member name="P:HttpServer.Authentication.AuthenticationModule.Name"> 2829 <member name="M:HttpServer.HttpInputItem.#ctor(HttpServer.HttpInputItem)">
2830 <summary>Creates a deep copy of the item specified</summary>
2831 <param name="item">The item to copy</param>
2832 <remarks>The function makes a deep copy of quite a lot which can be slow</remarks>
2833 </member>
2834 <member name="M:HttpServer.HttpInputItem.Add(System.String)">
2287 <summary> 2835 <summary>
2288 name used in HTTP request. 2836 Add another value to this item
2289 </summary> 2837 </summary>
2838 <param name="value">Value to add.</param>
2839 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception>
2290 </member> 2840 </member>
2291 <member name="M:HttpServer.Authentication.BasicAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)"> 2841 <member name="M:HttpServer.HttpInputItem.Contains(System.String)">
2292 <summary> 2842 <summary>
2293 Initializes a new instance of the <see cref="T:HttpServer.Authentication.BasicAuthentication"/> class. 2843 checks if a sub-item exists (and has a value).
2294 </summary> 2844 </summary>
2295 <param name="authenticator">Delegate used to provide information used during authentication.</param> 2845 <param name="name">name in lower case</param>
2296 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param> 2846 <returns>true if the sub-item exists and has a value; otherwise false.</returns>
2297 </member> 2847 </member>
2298 <member name="M:HttpServer.Authentication.BasicAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)"> 2848 <member name="M:HttpServer.HttpInputItem.ToString">
2849 <summary> Returns a formatted representation of the instance with the values of all contained parameters </summary>
2850 </member>
2851 <member name="M:HttpServer.HttpInputItem.ToString(System.String,System.Boolean)">
2299 <summary> 2852 <summary>
2300 Initializes a new instance of the <see cref="T:HttpServer.Authentication.BasicAuthentication"/> class. 2853 Outputs the string in a formatted manner
2301 </summary> 2854 </summary>
2302 <param name="authenticator">Delegate used to provide information used during authentication.</param> 2855 <param name="prefix">A prefix to append, used internally</param>
2856 <param name="asQuerySting">produce a query string</param>
2303 </member> 2857 </member>
2304 <member name="M:HttpServer.Authentication.BasicAuthentication.CreateResponse(System.String,System.Object[])"> 2858 <member name="M:HttpServer.HttpInputItem.Add(System.String,System.String)">
2305 <summary> 2859 <summary>
2306 Create a response that can be sent in the WWW-Authenticate header. 2860 Add a sub item.
2307 </summary> 2861 </summary>
2308 <param name="realm">Realm that the user should authenticate in</param> 2862 <param name="name">Can contain array formatting, the item is then parsed and added in multiple levels</param>
2309 <param name="options">Not used in basic auth</param> 2863 <param name="value">Value to add.</param>
2310 <returns>A correct auth request.</returns> 2864 <exception cref="T:System.ArgumentNullException">Argument is null.</exception>
2865 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception>
2311 </member> 2866 </member>
2312 <member name="M:HttpServer.Authentication.BasicAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])"> 2867 <member name="M:HttpServer.HttpInputItem.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator">
2313 <summary> 2868 <summary>
2314 An authentication response have been received from the web browser. 2869 Returns an enumerator that iterates through the collection.
2315 Check if it's correct
2316 </summary> 2870 </summary>
2317 <param name="authenticationHeader">Contents from the Authorization header</param> 2871
2318 <param name="realm">Realm that should be authenticated</param> 2872 <returns>
2319 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param> 2873 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
2320 <param name="options">Not used in basic auth</param> 2874 </returns>
2321 <returns>Authentication object that is stored for the request. A user class or something like that.</returns> 2875 <filterpriority>1</filterpriority>
2322 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception>
2323 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception>
2324 </member> 2876 </member>
2325 <member name="P:HttpServer.Authentication.BasicAuthentication.Name"> 2877 <member name="M:HttpServer.HttpInputItem.GetEnumerator">
2326 <summary> 2878 <summary>
2327 name used in http request. 2879 Returns an enumerator that iterates through a collection.
2328 </summary> 2880 </summary>
2881
2882 <returns>
2883 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
2884 </returns>
2885 <filterpriority>2</filterpriority>
2329 </member> 2886 </member>
2330 <member name="T:HttpServer.HttpModules.HttpModuleExceptionEventArgs"> 2887 <member name="M:HttpServer.HttpInputItem.ToString(System.String)">
2331 <summary> 2888 <summary>
2332 Used to inform http server that 2889 Outputs the string in a formatted manner
2333 </summary> 2890 </summary>
2891 <param name="prefix">A prefix to append, used internally</param>
2892 <returns></returns>
2334 </member> 2893 </member>
2335 <member name="M:HttpServer.HttpModules.HttpModuleExceptionEventArgs.#ctor(System.Exception)"> 2894 <member name="P:HttpServer.HttpInputItem.Count">
2336 <summary> 2895 <summary>
2337 Eventarguments used when an exception is thrown by a module 2896 Number of values
2338 </summary> 2897 </summary>
2339 <param name="e">the exception</param>
2340 </member> 2898 </member>
2341 <member name="P:HttpServer.HttpModules.HttpModuleExceptionEventArgs.Exception"> 2899 <member name="P:HttpServer.HttpInputItem.Item(System.String)">
2342 <summary> 2900 <summary>
2343 Exception thrown in a module 2901 Get a sub item
2344 </summary> 2902 </summary>
2903 <param name="name">name in lower case.</param>
2904 <returns><see cref="F:HttpServer.HttpInputItem.Empty"/> if no item was found.</returns>
2345 </member> 2905 </member>
2346 <member name="T:HttpServer.Helpers.Implementations.PrototypeImp"> 2906 <member name="P:HttpServer.HttpInputItem.Name">
2347 <summary> 2907 <summary>
2348 PrototypeJS implementation of the javascript functions. 2908 Name of item (in lower case).
2349 </summary> 2909 </summary>
2350 </member> 2910 </member>
2351 <member name="T:HttpServer.Helpers.JavascriptHelperImplementation"> 2911 <member name="P:HttpServer.HttpInputItem.Value">
2352 <summary> 2912 <summary>
2353 Purpose of this class is to create a javascript toolkit independent javascript helper. 2913 Returns the first value, or null if no value exist.
2354 </summary> 2914 </summary>
2355 </member> 2915 </member>
2356 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.GenerateOptions(System.Text.StringBuilder,System.String[],System.Boolean)"> 2916 <member name="P:HttpServer.HttpInputItem.LastValue">
2357 <summary> 2917 <summary>
2358 Generates a list with JS options. 2918 Returns the last value, or null if no value exist.
2359 </summary> 2919 </summary>
2360 <param name="sb">StringBuilder that the options should be added to.</param>
2361 <param name="options">the javascript options. name, value pairs. each string value should be escaped by YOU!</param>
2362 <param name="startWithComma">true if we should start with a comma.</param>
2363 </member> 2920 </member>
2364 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.RemoveJavascriptOptions(System.String[])"> 2921 <member name="P:HttpServer.HttpInputItem.Values">
2365 <summary> 2922 <summary>
2366 Removes any javascript parameters from an array of parameters 2923 Returns the list with values.
2367 </summary> 2924 </summary>
2368 <param name="options">The array of parameters to remove javascript params from</param>
2369 <returns>An array of html parameters</returns>
2370 </member> 2925 </member>
2371 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxFormOnSubmit(System.String[])"> 2926 <member name="P:HttpServer.HttpInputItem.HttpServer#IHttpInput#Item(System.String)">
2372 <summary> 2927 <summary>
2373 javascript action that should be added to the "onsubmit" event in the form tag. 2928
2374 </summary> 2929 </summary>
2930 <param name="name">name in lower case</param>
2375 <returns></returns> 2931 <returns></returns>
2376 <remarks>All javascript option names should end with colon.</remarks>
2377 <example>
2378 <code>
2379 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
2380 </code>
2381 </example>
2382 </member> 2932 </member>
2383 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxRequest(System.String,System.String[])"> 2933 <member name="T:HttpServer.HttpFile">
2384 <summary> 2934 <summary>
2385 Requests a url through ajax 2935 Container class for posted files
2386 </summary> 2936 </summary>
2387 <param name="url">url to fetch</param>
2388 <param name="options">optional options in format "key, value, key, value", used in JS request object.</param>
2389 <returns>a link tag</returns>
2390 <remarks>All javascript option names should end with colon.</remarks>
2391 <example>
2392 <code>
2393 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
2394 </code>
2395 </example>
2396 </member> 2937 </member>
2397 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxUpdater(System.String,System.String,System.String[])"> 2938 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)">
2398 <summary> 2939 <summary>
2399 Ajax requests that updates an element with 2940 Creates a container for a posted file
2400 the fetched content
2401 </summary> 2941 </summary>
2402 <param name="url">Url to fetch content from</param> 2942 <param name="name">The identifier of the post field</param>
2403 <param name="targetId">element to update</param> 2943 <param name="filename">The file path</param>
2404 <param name="options">optional options in format "key, value, key, value", used in JS updater object.</param> 2944 <param name="contentType">The content type of the file</param>
2405 <returns>A link tag.</returns> 2945 <param name="uploadFilename">The name of the file uploaded</param>
2406 <remarks>All javascript option names should end with colon.</remarks> 2946 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception>
2407 <example>
2408 <code>
2409 JSHelper.AjaxUpdater("/user/show/1", "userInfo", "onsuccess:", "alert('Successful!');");
2410 </code>
2411 </example>
2412 </member> 2947 </member>
2413 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])"> 2948 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String)">
2414 <summary> 2949 <summary>
2415 A link that pop ups a Dialog (overlay div) 2950 Creates a container for a posted file <see cref="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)"/>
2416 </summary> 2951 </summary>
2417 <param name="url">url to contents of dialog</param> 2952 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception>
2418 <param name="title">link title</param>
2419 <returns>A "a"-tag that popups a dialog when clicked</returns>
2420 <param name="htmlAttributes">name/value of html attributes</param>
2421 <example>
2422 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
2423 </example>
2424 </member> 2953 </member>
2425 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CloseDialog"> 2954 <member name="M:HttpServer.HttpFile.Finalize">
2955 <summary>Destructor disposing the file</summary>
2956 </member>
2957 <member name="M:HttpServer.HttpFile.Dispose(System.Boolean)">
2426 <summary> 2958 <summary>
2427 Close a javascript dialog window/div. 2959 Deletes the temporary file
2428 </summary> 2960 </summary>
2429 <returns>javascript for closing a dialog.</returns> 2961 <param name="disposing">True if manual dispose</param>
2430 <see cref="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])"/>
2431 </member> 2962 </member>
2432 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CreateDialog(System.String,System.String,System.String[])"> 2963 <member name="M:HttpServer.HttpFile.Dispose">
2433 <summary> 2964 <summary>
2434 Creates a new modal dialog window 2965 Disposing interface, cleans up managed resources (the temporary file) and suppresses finalization
2966 </summary>
2967 </member>
2968 <member name="P:HttpServer.HttpFile.Name">
2969 <summary>
2970 The name/id of the file
2971 </summary>
2972 </member>
2973 <member name="P:HttpServer.HttpFile.Filename">
2974 <summary>
2975 The full file path
2976 </summary>
2977 </member>
2978 <member name="P:HttpServer.HttpFile.UploadFilename">
2979 <summary>
2980 The name of the uploaded file
2981 </summary>
2982 </member>
2983 <member name="P:HttpServer.HttpFile.ContentType">
2984 <summary>
2985 The type of file
2986 </summary>
2987 </member>
2988 <member name="T:HttpServer.Helpers.Implementations.PrototypeImp">
2989 <summary>
2990 PrototypeJS implementation of the javascript functions.
2435 </summary> 2991 </summary>
2436 <param name="url">url to open in window.</param>
2437 <param name="title">window title (may not be supported by all js implementations)</param>
2438 <param name="options"></param>
2439 <returns></returns>
2440 </member> 2992 </member>
2441 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxRequest(System.String,System.String[])"> 2993 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxRequest(System.String,System.String[])">
2442 <summary> 2994 <summary>
@@ -2533,907 +3085,587 @@
2533 </code> 3085 </code>
2534 </example> 3086 </example>
2535 </member> 3087 </member>
2536 <member name="T:HttpServer.ContentType"> 3088 <member name="T:HttpServer.Exceptions.UnauthorizedException">
2537 <summary>
2538 Lists content type mime types.
2539 </summary>
2540 </member>
2541 <member name="F:HttpServer.ContentType.Text">
2542 <summary>
2543 text/plain
2544 </summary>
2545 </member>
2546 <member name="F:HttpServer.ContentType.Html">
2547 <summary>
2548 text/haml
2549 </summary>
2550 </member>
2551 <member name="F:HttpServer.ContentType.Javascript">
2552 <summary>
2553 content type for javascript documents = application/javascript
2554 </summary>
2555 <remarks>
2556 <para>
2557 RFC 4329 states that text/javascript have been superseeded by
2558 application/javascript. You might still want to check browser versions
2559 since older ones do not support application/javascript.
2560 </para>
2561 <para>Browser support: http://krijnhoetmer.nl/stuff/javascript/mime-types/</para>
2562 </remarks>
2563 </member>
2564 <member name="F:HttpServer.ContentType.Xml">
2565 <summary>
2566 text/xml
2567 </summary>
2568 </member>
2569 <member name="T:HttpServer.ContentTypes">
2570 <summary>
2571 A list of content types
2572 </summary>
2573 </member>
2574 <member name="M:HttpServer.ContentTypes.#ctor(System.String)">
2575 <summary> 3089 <summary>
3090 The request requires user authentication. The response MUST include a
3091 WWW-Authenticate header field (section 14.47) containing a challenge
3092 applicable to the requested resource.
2576 3093
2577 </summary> 3094 The client MAY repeat the request with a suitable Authorization header
2578 <param name="types">Semicolon separated content types.</param> 3095 field (section 14.8). If the request already included Authorization
2579 </member> 3096 credentials, then the 401 response indicates that authorization has been
2580 <member name="M:HttpServer.ContentTypes.GetEnumerator"> 3097 refused for those credentials. If the 401 response contains the same challenge
2581 <summary> 3098 as the prior response, and the user agent has already attempted authentication
2582 Returns an enumerator that iterates through a collection. 3099 at least once, then the user SHOULD be presented the entity that was given in the response,
2583 </summary> 3100 since that entity might include relevant diagnostic information.
2584 <returns>
2585 An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
2586 </returns>
2587 </member>
2588 <member name="M:HttpServer.ContentTypes.Contains(System.String)">
2589 <summary>
2590 Searches for the specified type
2591 </summary>
2592 <param name="type">Can also be a part of a type (searching for "xml" would return true for "application/xml").</param>
2593 <returns>true if type was found.</returns>
2594 </member>
2595 <member name="P:HttpServer.ContentTypes.First">
2596 <summary>
2597 Get this first content type.
2598 </summary>
2599 </member>
2600 <member name="P:HttpServer.ContentTypes.Item(System.String)">
2601 <summary>
2602 Fetch a content type
2603 </summary>
2604 <param name="type">Part of type ("xml" would return "application/xml")</param>
2605 <returns></returns>
2606 <remarks>All content types are in lower case.</remarks>
2607 </member>
2608 <member name="T:HttpServer.Parser.HeaderEventArgs">
2609 <summary>
2610 Event arguments used when a new header have been parsed.
2611 </summary>
2612 </member>
2613 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor(System.String,System.String)">
2614 <summary>
2615 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class.
2616 </summary>
2617 <param name="name">Name of header.</param>
2618 <param name="value">Header value.</param>
2619 </member>
2620 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor">
2621 <summary>
2622 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class.
2623 </summary>
2624 </member>
2625 <member name="P:HttpServer.Parser.HeaderEventArgs.Name">
2626 <summary>
2627 Gets or sets header name.
2628 </summary>
2629 </member>
2630 <member name="P:HttpServer.Parser.HeaderEventArgs.Value">
2631 <summary>
2632 Gets or sets header value.
2633 </summary>
2634 </member>
2635 <member name="T:HttpServer.HttpModules.ReverseProxyModule">
2636 <summary>
2637 A reverse proxy are used to act as a bridge between local (protected/hidden) websites
2638 and public clients.
2639 3101
2640 A typical usage is to allow web servers on non standard ports to still be available 3102 HTTP access authentication is explained in rfc2617:
2641 to the public clients, or allow web servers on private ips to be available. 3103 http://www.ietf.org/rfc/rfc2617.txt
2642 </summary>
2643 </member>
2644 <member name="M:HttpServer.HttpModules.ReverseProxyModule.#ctor(System.String,System.String)">
2645 <summary>
2646 3104
3105 (description is taken from
3106 http://www.submissionchamber.com/help-guides/error-codes.php#sec10.4.2)
2647 </summary> 3107 </summary>
2648 <param name="source">Base url requested from browser</param>
2649 <param name="destination">Base url on private web server</param>
2650 <example>
2651 // this will return contents from http://192.168.1.128/view/jonas when client requests http://www.gauffin.com/user/view/jonas
2652 _server.Add(new ReverseProxyModule("http://www.gauffin.com/user/", "http://192.168.1.128/");
2653 </example>
2654 </member> 3108 </member>
2655 <member name="M:HttpServer.HttpModules.ReverseProxyModule.CanHandle(System.Uri)"> 3109 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor">
2656 <summary> 3110 <summary>
2657 Method that determines if an url should be handled or not by the module 3111 Create a new unauhtorized exception.
2658 </summary> 3112 </summary>
2659 <param name="uri">Url requested by the client.</param> 3113 <seealso cref="T:HttpServer.Exceptions.UnauthorizedException"/>
2660 <returns>true if module should handle the url.</returns>
2661 </member> 3114 </member>
2662 <member name="M:HttpServer.HttpModules.ReverseProxyModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 3115 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor(System.String,System.Exception)">
2663 <summary> 3116 <summary>
2664 Method that process the url 3117 Create a new unauhtorized exception.
2665 </summary> 3118 </summary>
2666 <param name="request">Information sent by the browser about the request</param> 3119 <param name="message">reason to why the request was unauthorized.</param>
2667 <param name="response">Information that is being sent back to the client.</param> 3120 <param name="inner">inner exception</param>
2668 <param name="session">Session used to </param>
2669 </member> 3121 </member>
2670 <member name="T:HttpServer.HttpClientContext"> 3122 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor(System.String)">
2671 <summary> 3123 <summary>
2672 Contains a connection to a browser/client. 3124 Create a new unauhtorized exception.
2673 </summary> 3125 </summary>
2674 <remarks> 3126 <param name="message">reason to why the request was unauthorized.</param>
2675 Remember to <see cref="M:HttpServer.HttpClientContext.Start"/> after you have hooked the <see cref="E:HttpServer.HttpClientContext.RequestReceived"/> event.
2676 </remarks>
2677 TODO: Maybe this class should be broken up into HttpClientChannel and HttpClientContext?
2678 </member> 3127 </member>
2679 <member name="T:HttpServer.IHttpClientContext"> 3128 <member name="T:HttpServer.Exceptions.ForbiddenException">
2680 <summary> 3129 <summary>
2681 Contains a connection to a browser/client. 3130 The server understood the request, but is refusing to fulfill it.
3131 Authorization will not help and the request SHOULD NOT be repeated.
3132 If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled,
3133 it SHOULD describe the reason for the refusal in the entity. If the server does not wish to make this information
3134 available to the client, the status code 404 (Not Found) can be used instead.
3135
3136 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
2682 </summary> 3137 </summary>
2683 </member> 3138 </member>
2684 <member name="M:HttpServer.IHttpClientContext.Disconnect(System.Net.Sockets.SocketError)"> 3139 <member name="M:HttpServer.Exceptions.ForbiddenException.#ctor(System.String)">
2685 <summary> 3140 <summary>
2686 Disconnect from client 3141 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.ForbiddenException"/> class.
2687 </summary> 3142 </summary>
2688 <param name="error">error to report in the <see cref="E:HttpServer.IHttpClientContext.Disconnected"/> event.</param> 3143 <param name="errorMsg">error message</param>
2689 </member> 3144 </member>
2690 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)"> 3145 <member name="T:HttpServer.Authentication.BasicAuthentication">
2691 <summary> 3146 <summary>
2692 Send a response. 3147 The "basic" authentication scheme is based on the model that the
3148 client must authenticate itself with a user-ID and a password for
3149 each realm. The realm value should be considered an opaque string
3150 which can only be compared for equality with other realms on that
3151 server. The server will service the request only if it can validate
3152 the user-ID and password for the protection space of the Request-URI.
3153 There are no optional authentication parameters.
2693 </summary> 3154 </summary>
2694 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
2695 <param name="statusCode">HTTP status code</param>
2696 <param name="reason">reason for the status code.</param>
2697 <param name="body">HTML body contents, can be null or empty.</param>
2698 <param name="contentType">A content type to return the body as, i.e. 'text/html' or 'text/plain', defaults to 'text/html' if null or empty</param>
2699 <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception>
2700 </member> 3155 </member>
2701 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)"> 3156 <member name="M:HttpServer.Authentication.BasicAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
2702 <summary> 3157 <summary>
2703 Send a response. 3158 Initializes a new instance of the <see cref="T:HttpServer.Authentication.BasicAuthentication"/> class.
2704 </summary> 3159 </summary>
2705 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param> 3160 <param name="authenticator">Delegate used to provide information used during authentication.</param>
2706 <param name="statusCode">HTTP status code</param> 3161 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
2707 <param name="reason">reason for the status code.</param>
2708 </member> 3162 </member>
2709 <member name="M:HttpServer.IHttpClientContext.Respond(System.String)"> 3163 <member name="M:HttpServer.Authentication.BasicAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)">
2710 <summary> 3164 <summary>
2711 Send a response. 3165 Initializes a new instance of the <see cref="T:HttpServer.Authentication.BasicAuthentication"/> class.
2712 </summary> 3166 </summary>
2713 <exception cref="T:System.ArgumentNullException"></exception> 3167 <param name="authenticator">Delegate used to provide information used during authentication.</param>
2714 </member> 3168 </member>
2715 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[])"> 3169 <member name="M:HttpServer.Authentication.BasicAuthentication.CreateResponse(System.String,System.Object[])">
2716 <summary> 3170 <summary>
2717 send a whole buffer 3171 Create a response that can be sent in the WWW-Authenticate header.
2718 </summary> 3172 </summary>
2719 <param name="buffer">buffer to send</param> 3173 <param name="realm">Realm that the user should authenticate in</param>
2720 <exception cref="T:System.ArgumentNullException"></exception> 3174 <param name="options">Not used in basic auth</param>
3175 <returns>A correct auth request.</returns>
2721 </member> 3176 </member>
2722 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[],System.Int32,System.Int32)"> 3177 <member name="M:HttpServer.Authentication.BasicAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])">
2723 <summary> 3178 <summary>
2724 Send data using the stream 3179 An authentication response have been received from the web browser.
3180 Check if it's correct
2725 </summary> 3181 </summary>
2726 <param name="buffer">Contains data to send</param> 3182 <param name="authenticationHeader">Contents from the Authorization header</param>
2727 <param name="offset">Start position in buffer</param> 3183 <param name="realm">Realm that should be authenticated</param>
2728 <param name="size">number of bytes to send</param> 3184 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
2729 <exception cref="T:System.ArgumentNullException"></exception> 3185 <param name="options">Not used in basic auth</param>
2730 <exception cref="T:System.ArgumentOutOfRangeException"></exception> 3186 <returns>Authentication object that is stored for the request. A user class or something like that.</returns>
3187 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception>
3188 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception>
2731 </member> 3189 </member>
2732 <member name="M:HttpServer.IHttpClientContext.Close"> 3190 <member name="P:HttpServer.Authentication.BasicAuthentication.Name">
2733 <summary> 3191 <summary>
2734 Closes the streams and disposes of the unmanaged resources 3192 name used in http request.
2735 </summary> 3193 </summary>
2736 </member> 3194 </member>
2737 <member name="P:HttpServer.IHttpClientContext.Secured"> 3195 <member name="T:HttpServer.Sessions.IHttpSessionStore">
2738 <summary> 3196 <summary>
2739 Using SSL or other encryption method. 3197 A session store is used to store and load sessions on a media.
3198 The default implementation (<see cref="T:HttpServer.Sessions.MemorySessionStore"/>) saves/retrieves sessions from memory.
2740 </summary> 3199 </summary>
2741 </member> 3200 </member>
2742 <member name="P:HttpServer.IHttpClientContext.IsSecured"> 3201 <member name="M:HttpServer.Sessions.IHttpSessionStore.Create">
2743 <summary> 3202 <summary>
2744 Using SSL or other encryption method. 3203 Creates a new http session with a generated id.
2745 </summary> 3204 </summary>
3205 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object</returns>
2746 </member> 3206 </member>
2747 <member name="E:HttpServer.IHttpClientContext.Disconnected"> 3207 <member name="M:HttpServer.Sessions.IHttpSessionStore.Create(System.String)">
2748 <summary> 3208 <summary>
2749 The context have been disconnected. 3209 Creates a new http session with a specific id
2750 </summary> 3210 </summary>
3211 <param name="id">Id used to identify the new cookie..</param>
3212 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns>
2751 <remarks> 3213 <remarks>
2752 Event can be used to clean up a context, or to reuse it. 3214 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>.
2753 </remarks> 3215 </remarks>
2754 </member> 3216 </member>
2755 <member name="E:HttpServer.IHttpClientContext.RequestReceived"> 3217 <member name="M:HttpServer.Sessions.IHttpSessionStore.Load(System.String)">
2756 <summary>
2757 A request have been received in the context.
2758 </summary>
2759 </member>
2760 <member name="M:HttpServer.HttpClientContext.#ctor(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,HttpServer.IRequestParserFactory,System.Int32,System.Net.Sockets.Socket)">
2761 <summary>
2762 Initializes a new instance of the <see cref="T:HttpServer.HttpClientContext"/> class.
2763 </summary>
2764 <param name="secured">true if the connection is secured (SSL/TLS)</param>
2765 <param name="remoteEndPoint">client that connected.</param>
2766 <param name="stream">Stream used for communication</param>
2767 <param name="parserFactory">Used to create a <see cref="T:HttpServer.IHttpRequestParser"/>.</param>
2768 <param name="bufferSize">Size of buffer to use when reading data. Must be at least 4096 bytes.</param>
2769 <exception cref="T:System.Net.Sockets.SocketException">If <see cref="M:System.Net.Sockets.Socket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)"/> fails</exception>
2770 <exception cref="T:System.ArgumentException">Stream must be writable and readable.</exception>
2771 </member>
2772 <member name="M:HttpServer.HttpClientContext.OnBodyBytesReceived(System.Object,HttpServer.Parser.BodyEventArgs)">
2773 <summary>
2774 Process incoming body bytes.
2775 </summary>
2776 <param name="sender"><see cref="T:HttpServer.IHttpRequestParser"/></param>
2777 <param name="e">Bytes</param>
2778 </member>
2779 <member name="M:HttpServer.HttpClientContext.OnHeaderReceived(System.Object,HttpServer.Parser.HeaderEventArgs)">
2780 <summary> 3218 <summary>
2781 3219 Load an existing session.
2782 </summary> 3220 </summary>
2783 <param name="sender"></param> 3221 <param name="sessionId">Session id (usually retrieved from a client side cookie).</param>
2784 <param name="e"></param> 3222 <returns>A session if found; otherwise null.</returns>
2785 </member> 3223 </member>
2786 <member name="M:HttpServer.HttpClientContext.Start"> 3224 <member name="M:HttpServer.Sessions.IHttpSessionStore.Save(HttpServer.Sessions.IHttpSession)">
2787 <summary> 3225 <summary>
2788 Start reading content. 3226 Save an updated session to the store.
2789 </summary> 3227 </summary>
2790 <remarks> 3228 <param name="session">Session id (usually retrieved from a client side cookie).</param>
2791 Make sure to call base.Start() if you override this method. 3229 <exception cref="T:System.ArgumentException">If Id property have not been specified.</exception>
2792 </remarks>
2793 </member> 3230 </member>
2794 <member name="M:HttpServer.HttpClientContext.Cleanup"> 3231 <member name="M:HttpServer.Sessions.IHttpSessionStore.AddUnused(HttpServer.Sessions.IHttpSession)">
2795 <summary> 3232 <summary>
2796 Clean up context. 3233 We use the flyweight pattern which reuses small objects
3234 instead of creating new each time.
2797 </summary> 3235 </summary>
2798 <remarks> 3236 <param name="session">Unused session that should be reused next time Create is called.</param>
2799 Make sure to call base.Cleanup() if you override the method.
2800 </remarks>
2801 </member> 3237 </member>
2802 <member name="M:HttpServer.HttpClientContext.Disconnect(System.Net.Sockets.SocketError)"> 3238 <member name="M:HttpServer.Sessions.IHttpSessionStore.Cleanup">
2803 <summary> 3239 <summary>
2804 Disconnect from client 3240 Remove expired sessions
2805 </summary> 3241 </summary>
2806 <param name="error">error to report in the <see cref="E:HttpServer.HttpClientContext.Disconnected"/> event.</param>
2807 </member>
2808 <member name="M:HttpServer.HttpClientContext.OnReceive(System.IAsyncResult)">
2809 <exception cref="T:HttpServer.Exceptions.BadRequestException"><c>BadRequestException</c>.</exception>
2810 </member> 3242 </member>
2811 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)"> 3243 <member name="M:HttpServer.Sessions.IHttpSessionStore.Remove(System.String)">
2812 <summary> 3244 <summary>
2813 Send a response. 3245 Remove a session
2814 </summary> 3246 </summary>
2815 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param> 3247 <param name="sessionId">id of the session.</param>
2816 <param name="statusCode">HTTP status code</param>
2817 <param name="reason">reason for the status code.</param>
2818 <param name="body">HTML body contents, can be null or empty.</param>
2819 <param name="contentType">A content type to return the body as, i.e. 'text/html' or 'text/plain', defaults to 'text/html' if null or empty</param>
2820 <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception>
2821 </member> 3248 </member>
2822 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)"> 3249 <member name="P:HttpServer.Sessions.IHttpSessionStore.Item(System.String)">
2823 <summary> 3250 <summary>
2824 Send a response. 3251 Load a session from the store
2825 </summary> 3252 </summary>
2826 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param> 3253 <param name="sessionId"></param>
2827 <param name="statusCode">HTTP status code</param> 3254 <returns>null if session is not found.</returns>
2828 <param name="reason">reason for the status code.</param>
2829 </member> 3255 </member>
2830 <member name="M:HttpServer.HttpClientContext.Respond(System.String)"> 3256 <member name="P:HttpServer.Sessions.IHttpSessionStore.ExpireTime">
2831 <summary> 3257 <summary>
2832 Send a response. 3258 Number of minutes before a session expires.
2833 </summary> 3259 </summary>
2834 <exception cref="T:System.ArgumentNullException"></exception> 3260 <value>Default time is 20 minutes.</value>
2835 </member> 3261 </member>
2836 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[])"> 3262 <member name="T:HttpServer.RequestCookies">
2837 <summary> 3263 <summary>
2838 send a whole buffer 3264 This class is created as a wrapper, since there are two different cookie types in .Net (Cookie and HttpCookie).
3265 The framework might switch class in the future and we dont want to have to replace all instances
2839 </summary> 3266 </summary>
2840 <param name="buffer">buffer to send</param>
2841 <exception cref="T:System.ArgumentNullException"></exception>
2842 </member> 3267 </member>
2843 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[],System.Int32,System.Int32)"> 3268 <member name="M:HttpServer.RequestCookies.#ctor(System.String)">
2844 <summary> 3269 <summary>
2845 Send data using the stream 3270 Let's copy all the cookies.
2846 </summary> 3271 </summary>
2847 <param name="buffer">Contains data to send</param> 3272 <param name="cookies">value from cookie header.</param>
2848 <param name="offset">Start position in buffer</param>
2849 <param name="size">number of bytes to send</param>
2850 <exception cref="T:System.ArgumentNullException"></exception>
2851 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
2852 </member> 3273 </member>
2853 <member name="E:HttpServer.HttpClientContext.Cleaned"> 3274 <member name="M:HttpServer.RequestCookies.Add(HttpServer.RequestCookie)">
2854 <summary> 3275 <summary>
2855 This context have been cleaned, which means that it can be reused. 3276 Adds a cookie in the collection.
2856 </summary> 3277 </summary>
3278 <param name="cookie">cookie to add</param>
3279 <exception cref="T:System.ArgumentNullException">cookie is null</exception>
2857 </member> 3280 </member>
2858 <member name="E:HttpServer.HttpClientContext.Started"> 3281 <member name="M:HttpServer.RequestCookies.GetEnumerator">
2859 <summary> 3282 <summary>
2860 Context have been started (a new client have connected) 3283 Gets a collection enumerator on the cookie list.
2861 </summary> 3284 </summary>
3285 <returns>collection enumerator</returns>
2862 </member> 3286 </member>
2863 <member name="P:HttpServer.HttpClientContext.CurrentRequest"> 3287 <member name="M:HttpServer.RequestCookies.Clear">
2864 <summary> 3288 <summary>
2865 Overload to specify own type. 3289 Remove all cookies.
2866 </summary> 3290 </summary>
2867 <remarks>
2868 Must be specified before the context is being used.
2869 </remarks>
2870 </member> 3291 </member>
2871 <member name="P:HttpServer.HttpClientContext.Secured"> 3292 <member name="M:HttpServer.RequestCookies.System#Collections#Generic#IEnumerable{HttpServer#RequestCookie}#GetEnumerator">
2872 <summary> 3293 <summary>
2873 Using SSL or other encryption method. 3294 Returns an enumerator that iterates through the collection.
2874 </summary> 3295 </summary>
3296
3297 <returns>
3298 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
3299 </returns>
3300 <filterpriority>1</filterpriority>
2875 </member> 3301 </member>
2876 <member name="P:HttpServer.HttpClientContext.IsSecured"> 3302 <member name="M:HttpServer.RequestCookies.Remove(System.String)">
2877 <summary> 3303 <summary>
2878 Using SSL or other encryption method. 3304 Remove a cookie from the collection.
2879 </summary> 3305 </summary>
3306 <param name="cookieName">Name of cookie.</param>
2880 </member> 3307 </member>
2881 <member name="P:HttpServer.HttpClientContext.LogWriter"> 3308 <member name="P:HttpServer.RequestCookies.Count">
2882 <summary> 3309 <summary>
2883 Specify which logger to use. 3310 Gets the count of cookies in the collection.
2884 </summary> 3311 </summary>
2885 </member> 3312 </member>
2886 <member name="P:HttpServer.HttpClientContext.Stream"> 3313 <member name="P:HttpServer.RequestCookies.Item(System.String)">
2887 <summary> 3314 <summary>
2888 Gets or sets the network stream. 3315 Gets the cookie of a given identifier (null if not existing).
2889 </summary> 3316 </summary>
2890 </member> 3317 </member>
2891 <member name="P:HttpServer.HttpClientContext.RemoteAddress"> 3318 <member name="T:HttpServer.IComponentProvider">
2892 <summary> 3319 <summary>
2893 Gets or sets IP address that the client connected from. 3320 Inversion of control interface.
2894 </summary> 3321 </summary>
2895 </member> 3322 </member>
2896 <member name="P:HttpServer.HttpClientContext.RemotePort"> 3323 <member name="M:HttpServer.IComponentProvider.AddInstance``1(System.Object)">
2897 <summary> 3324 <summary>
2898 Gets or sets port that the client connected from. 3325 Add a component instance
2899 </summary> 3326 </summary>
3327 <typeparam name="T">Interface type</typeparam>
3328 <param name="instance">Instance to add</param>
2900 </member> 3329 </member>
2901 <member name="E:HttpServer.HttpClientContext.Disconnected"> 3330 <member name="M:HttpServer.IComponentProvider.Get``1">
2902 <summary> 3331 <summary>
2903 The context have been disconnected. 3332 Get a component.
2904 </summary> 3333 </summary>
3334 <typeparam name="T">Interface type</typeparam>
3335 <returns>Component if registered, otherwise null.</returns>
2905 <remarks> 3336 <remarks>
2906 Event can be used to clean up a context, or to reuse it. 3337 Component will get created if needed.
2907 </remarks> 3338 </remarks>
2908 </member> 3339 </member>
2909 <member name="E:HttpServer.HttpClientContext.RequestReceived"> 3340 <member name="M:HttpServer.IComponentProvider.Contains(System.Type)">
2910 <summary> 3341 <summary>
2911 A request have been received in the context. 3342 Checks if the specified component interface have been added.
2912 </summary> 3343 </summary>
3344 <param name="interfaceType"></param>
3345 <returns>true if found; otherwise false.</returns>
2913 </member> 3346 </member>
2914 <member name="T:HttpServer.Helpers.XmlHelper"> 3347 <member name="M:HttpServer.IComponentProvider.Add``2">
2915 <summary> 3348 <summary>
2916 Helpers to make XML handling easier 3349 Add a component.
2917 </summary> 3350 </summary>
3351 <typeparam name="InterfaceType">Type being requested.</typeparam>
3352 <typeparam name="InstanceType">Type being created.</typeparam>
2918 </member> 3353 </member>
2919 <member name="M:HttpServer.Helpers.XmlHelper.Serialize(System.Object)"> 3354 <member name="T:HttpServer.HttpRequest">
2920 <summary> 3355 <summary>
2921 Serializes object to XML. 3356 Contains server side HTTP request information.
2922 </summary> 3357 </summary>
2923 <param name="value">object to serialize.</param>
2924 <returns>XML</returns>
2925 <remarks>
2926 Removes name spaces and adds indentation
2927 </remarks>
2928 </member> 3358 </member>
2929 <member name="M:HttpServer.Helpers.XmlHelper.Deserialize``1(System.String)"> 3359 <member name="F:HttpServer.HttpRequest.UriSplitters">
2930 <summary> 3360 <summary>
2931 Create an object from a XML string 3361 Chars used to split an URL path into multiple parts.
2932 </summary> 3362 </summary>
2933 <typeparam name="T">Type of object</typeparam>
2934 <param name="xml">XML string</param>
2935 <returns>object</returns>
2936 </member> 3363 </member>
2937 <member name="T:HttpServer.FormDecoders.UrlDecoder"> 3364 <member name="M:HttpServer.HttpRequest.AssignForm(HttpServer.HttpForm)">
2938 <summary> 3365 <summary>
2939 Can handle application/x-www-form-urlencoded 3366 Assign a form.
2940 </summary> 3367 </summary>
3368 <param name="form"></param>
2941 </member> 3369 </member>
2942 <member name="M:HttpServer.FormDecoders.UrlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)"> 3370 <member name="M:HttpServer.HttpRequest.Clone">
2943 <summary> 3371 <summary>
3372 Creates a new object that is a copy of the current instance.
2944 </summary> 3373 </summary>
2945 <param name="stream">Stream containing the content</param> 3374
2946 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
2947 <param name="encoding">Stream encoding</param>
2948 <returns> 3375 <returns>
2949 A HTTP form, or null if content could not be parsed. 3376 A new object that is a copy of this instance.
2950 </returns> 3377 </returns>
2951 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception> 3378 <filterpriority>2</filterpriority>
2952 </member>
2953 <member name="M:HttpServer.FormDecoders.UrlDecoder.CanParse(System.String)">
2954 <summary>
2955 Checks if the decoder can handle the mime type
2956 </summary>
2957 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
2958 <returns>True if the decoder can parse the specified content type</returns>
2959 </member>
2960 <member name="T:HttpServer.Exceptions.ForbiddenException">
2961 <summary>
2962 The server understood the request, but is refusing to fulfill it.
2963 Authorization will not help and the request SHOULD NOT be repeated.
2964 If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled,
2965 it SHOULD describe the reason for the refusal in the entity. If the server does not wish to make this information
2966 available to the client, the status code 404 (Not Found) can be used instead.
2967
2968 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
2969 </summary>
2970 </member>
2971 <member name="M:HttpServer.Exceptions.ForbiddenException.#ctor(System.String)">
2972 <summary>
2973 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.ForbiddenException"/> class.
2974 </summary>
2975 <param name="errorMsg">error message</param>
2976 </member>
2977 <member name="T:HttpServer.ClientAcceptedEventArgs">
2978 <summary>
2979 Invoked when a client have been accepted by the <see cref="T:HttpServer.HttpListener"/>
2980 </summary>
2981 <remarks>
2982 Can be used to revoke incoming connections
2983 </remarks>
2984 </member>
2985 <member name="M:HttpServer.ClientAcceptedEventArgs.#ctor(System.Net.Sockets.Socket)">
2986 <summary>
2987 Initializes a new instance of the <see cref="T:HttpServer.ClientAcceptedEventArgs"/> class.
2988 </summary>
2989 <param name="socket">The socket.</param>
2990 </member>
2991 <member name="M:HttpServer.ClientAcceptedEventArgs.Revoke">
2992 <summary>
2993 Client may not be handled.
2994 </summary>
2995 </member>
2996 <member name="P:HttpServer.ClientAcceptedEventArgs.Socket">
2997 <summary>
2998 Accepted socket.
2999 </summary>
3000 </member>
3001 <member name="P:HttpServer.ClientAcceptedEventArgs.Revoked">
3002 <summary>
3003 Client should be revoked.
3004 </summary>
3005 </member>
3006 <member name="T:HttpServer.Helpers.ResourceManager">
3007 <summary>Class to handle loading of resource files</summary>
3008 </member> 3379 </member>
3009 <member name="M:HttpServer.Helpers.ResourceManager.#ctor"> 3380 <member name="M:HttpServer.HttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)">
3010 <summary> 3381 <summary>
3011 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class. 3382 Decode body into a form.
3012 </summary> 3383 </summary>
3384 <param name="providers">A list with form decoders.</param>
3385 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception>
3386 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception>
3013 </member> 3387 </member>
3014 <member name="M:HttpServer.Helpers.ResourceManager.#ctor(HttpServer.ILogWriter)"> 3388 <member name="M:HttpServer.HttpRequest.SetCookies(HttpServer.RequestCookies)">
3015 <summary> 3389 <summary>
3016 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class. 3390 Cookies
3017 </summary> 3391 </summary>
3018 <param name="writer">logger.</param> 3392 <param name="cookies">the cookies</param>
3019 </member> 3393 </member>
3020 <member name="M:HttpServer.Helpers.ResourceManager.LoadResources(System.String,System.Reflection.Assembly,System.String)"> 3394 <member name="M:HttpServer.HttpRequest.CreateResponse(HttpServer.IHttpClientContext)">
3021 <summary> 3395 <summary>
3022 Loads resources from a namespace in the given assembly to an URI 3396 Create a response object.
3023 </summary> 3397 </summary>
3024 <param name="toUri">The URI to map the resources to</param> 3398 <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns>
3025 <param name="fromAssembly">The assembly in which the resources reside</param>
3026 <param name="fromNamespace">The namespace from which to load the resources</param>
3027 <usage>
3028 <code>
3029 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
3030 </code>
3031 Will make the resource MyLib.Models.User.Views.list.Haml accessible via /user/list.haml or /user/list/
3032 </usage>
3033 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns>
3034 <exception cref="T:System.InvalidOperationException">If a resource has already been mapped to an uri</exception>
3035 </member> 3399 </member>
3036 <member name="M:HttpServer.Helpers.ResourceManager.GetResourceStream(System.String)"> 3400 <member name="M:HttpServer.HttpRequest.AddHeader(System.String,System.String)">
3037 <summary> 3401 <summary>
3038 Retrieves a stream for the specified resource path if loaded otherwise null 3402 Called during parsing of a <see cref="T:HttpServer.IHttpRequest"/>.
3039 </summary> 3403 </summary>
3040 <param name="path">Path to the resource to retrieve a stream for</param> 3404 <param name="name">Name of the header, should not be URL encoded</param>
3041 <returns>A stream or null if the resource couldn't be found</returns> 3405 <param name="value">Value of the header, should not be URL encoded</param>
3406 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception>
3042 </member> 3407 </member>
3043 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String)"> 3408 <member name="M:HttpServer.HttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)">
3044 <summary> 3409 <summary>
3045 Fetch all files from the resource that matches the specified arguments. 3410 Add bytes to the body
3046 </summary> 3411 </summary>
3047 <param name="path">The path to the resource to extract</param> 3412 <param name="bytes">buffer to read bytes from</param>
3048 <returns> 3413 <param name="offset">where to start read</param>
3049 a list of files if found; or an empty array if no files are found. 3414 <param name="length">number of bytes to read</param>
3050 </returns> 3415 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns>
3051 <exception cref="T:System.ArgumentException">Search path must end with an asterisk for finding arbitrary files</exception> 3416 <exception cref="T:System.InvalidOperationException">If body is not writable</exception>
3417 <exception cref="T:System.ArgumentNullException"><c>bytes</c> is null.</exception>
3418 <exception cref="T:System.ArgumentOutOfRangeException"><c>offset</c> is out of range.</exception>
3052 </member> 3419 </member>
3053 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String,System.String)"> 3420 <member name="M:HttpServer.HttpRequest.Clear">
3054 <summary> 3421 <summary>
3055 Fetch all files from the resource that matches the specified arguments. 3422 Clear everything in the request
3056 </summary> 3423 </summary>
3057 <param name="path">Where the file should reside.</param>
3058 <param name="filename">Files to check</param>
3059 <returns>
3060 a list of files if found; or an empty array if no files are found.
3061 </returns>
3062 </member> 3424 </member>
3063 <member name="M:HttpServer.Helpers.ResourceManager.ContainsResource(System.String)"> 3425 <member name="P:HttpServer.HttpRequest.Secure">
3064 <summary> 3426 <summary>
3065 Returns whether or not the loader has an instance of the file requested 3427 Gets or sets a value indicating whether this <see cref="T:HttpServer.HttpRequest"/> is secure.
3066 </summary> 3428 </summary>
3067 <param name="filename">The name of the template/file</param>
3068 <returns>True if the loader can provide the file</returns>
3069 </member> 3429 </member>
3070 <member name="M:HttpServer.FormDecoders.HttpMultipart.ReadLine"> 3430 <member name="P:HttpServer.HttpRequest.UriPath">
3071 <summary> 3431 <summary>
3072 3432 Path and query (will be merged with the host header) and put in Uri
3073 </summary> 3433 </summary>
3074 <returns></returns> 3434 <see cref="P:HttpServer.HttpRequest.Uri"/>
3075 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
3076 <exception cref="T:System.ObjectDisposedException"></exception>
3077 </member>
3078 <member name="T:HttpServer.FormDecoders.HttpMultipart.Element">
3079 <summary>Represents a field in a multipart form</summary>
3080 </member> 3435 </member>
3081 <member name="T:HttpServer.FormDecoders.FormDecoderProvider"> 3436 <member name="P:HttpServer.HttpRequest.BodyIsComplete">
3082 <summary> 3437 <summary>
3083 This provider is used to let us implement any type of form decoding we want without 3438 Gets whether the body is complete.
3084 having to rewrite anything else in the server.
3085 </summary> 3439 </summary>
3086 </member> 3440 </member>
3087 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Decode(System.String,System.IO.Stream,System.Text.Encoding)"> 3441 <member name="P:HttpServer.HttpRequest.AcceptTypes">
3088 <summary> 3442 <summary>
3089 3443 Gets kind of types accepted by the client.
3090 </summary> 3444 </summary>
3091 <param name="contentType">Should contain boundary and type, as in: multipart/form-data; boundary=---------------------------230051238959</param>
3092 <param name="stream">Stream containing form data.</param>
3093 <param name="encoding">Encoding used when decoding the stream</param>
3094 <returns><see cref="F:HttpServer.HttpInput.Empty"/> if no parser was found.</returns>
3095 <exception cref="T:System.ArgumentException">If stream is null or not readable.</exception>
3096 <exception cref="T:System.IO.InvalidDataException">If stream contents cannot be decoded properly.</exception>
3097 </member> 3445 </member>
3098 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Add(HttpServer.FormDecoders.IFormDecoder)"> 3446 <member name="P:HttpServer.HttpRequest.Body">
3099 <summary> 3447 <summary>
3100 Add a decoder. 3448 Gets or sets body stream.
3101 </summary> 3449 </summary>
3102 <param name="decoder"></param>
3103 <exception cref="T:System.ArgumentNullException"></exception>
3104 </member> 3450 </member>
3105 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Count"> 3451 <member name="P:HttpServer.HttpRequest.Connection">
3106 <summary> 3452 <summary>
3107 Number of added decoders. 3453 Gets or sets kind of connection used for the session.
3108 </summary> 3454 </summary>
3109 </member> 3455 </member>
3110 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Decoders"> 3456 <member name="P:HttpServer.HttpRequest.ContentLength">
3111 <summary> 3457 <summary>
3112 Use with care. 3458 Gets or sets number of bytes in the body.
3113 </summary> 3459 </summary>
3114 </member> 3460 </member>
3115 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.DefaultDecoder"> 3461 <member name="P:HttpServer.HttpRequest.Headers">
3116 <summary> 3462 <summary>
3117 Decoder used for unknown content types. 3463 Gets headers sent by the client.
3118 </summary> 3464 </summary>
3119 </member> 3465 </member>
3120 <member name="T:HttpServer.RealmHandler"> 3466 <member name="P:HttpServer.HttpRequest.HttpVersion">
3121 <summary> 3467 <summary>
3122 Delegate used to find a realm/domain. 3468 Gets or sets version of HTTP protocol that's used.
3123 </summary> 3469 </summary>
3124 <param name="domain"></param>
3125 <returns></returns>
3126 <remarks> 3470 <remarks>
3127 Realms are used during HTTP Authentication 3471 Probably <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/>.
3128 </remarks> 3472 </remarks>
3129 <seealso cref="T:HttpServer.Authentication.AuthenticationModule"/> 3473 <seealso cref="T:HttpServer.HttpHelper"/>
3130 <seealso cref="T:HttpServer.Authentication.AuthenticationHandler"/>
3131 </member>
3132 <member name="T:HttpServer.HttpServer">
3133 <summary>
3134 A complete HTTP server, you need to add a module to it to be able to handle incoming requests.
3135 </summary>
3136 <example>
3137 <code>
3138 // this small example will add two web site modules, thus handling
3139 // two different sites. In reality you should add Controller modules or something
3140 // two the website modules to be able to handle different requests.
3141 HttpServer server = new HttpServer();
3142 server.Add(new WebSiteModule("www.gauffin.com", "Gauffin Telecom AB"));
3143 server.Add(new WebSiteModule("www.vapadi.se", "Remote PBX"));
3144
3145 // start regular http
3146 server.Start(IPAddress.Any, 80);
3147
3148 // start https
3149 server.Start(IPAddress.Any, 443, myCertificate);
3150 </code>
3151 </example>
3152 <seealso cref="T:HttpServer.HttpModules.HttpModule"/>
3153 <seealso cref="T:HttpServer.HttpModules.FileModule"/>
3154 <seealso cref="T:HttpServer.HttpListener"/>
3155 </member>
3156 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.IComponentProvider)">
3157 <summary>
3158 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
3159 </summary>
3160 <param name="provider">Used to get all components used in the server..</param>
3161 </member>
3162 <member name="M:HttpServer.HttpServer.#ctor">
3163 <summary>
3164 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
3165 </summary>
3166 </member>
3167 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider)">
3168 <summary>
3169 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
3170 </summary>
3171 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
3172 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
3173 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
3174 </member>
3175 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.Sessions.IHttpSessionStore)">
3176 <summary>
3177 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
3178 </summary>
3179 <param name="sessionStore">A session store is used to save and retrieve sessions</param>
3180 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/>
3181 </member>
3182 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.ILogWriter)">
3183 <summary>
3184 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
3185 </summary>
3186 <param name="logWriter">The log writer.</param>
3187 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
3188 </member>
3189 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.ILogWriter)">
3190 <summary>
3191 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
3192 </summary>
3193 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
3194 <param name="logWriter">The log writer.</param>
3195 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
3196 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
3197 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
3198 </member>
3199 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.Sessions.IHttpSessionStore,HttpServer.ILogWriter)">
3200 <summary>
3201 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
3202 </summary>
3203 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
3204 <param name="sessionStore">A session store is used to save and retrieve sessions</param>
3205 <param name="logWriter">The log writer.</param>
3206 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
3207 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
3208 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
3209 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/>
3210 </member>
3211 <member name="M:HttpServer.HttpServer.Add(HttpServer.Rules.IRule)">
3212 <summary>
3213 Adds the specified rule.
3214 </summary>
3215 <param name="rule">The rule.</param>
3216 </member>
3217 <member name="M:HttpServer.HttpServer.Add(HttpServer.HttpModules.HttpModule)">
3218 <summary>
3219 Add a <see cref="T:HttpServer.HttpModules.HttpModule"/> to the server.
3220 </summary>
3221 <param name="module">mode to add</param>
3222 </member> 3474 </member>
3223 <member name="M:HttpServer.HttpServer.DecodeBody(HttpServer.IHttpRequest)"> 3475 <member name="P:HttpServer.HttpRequest.Method">
3224 <summary> 3476 <summary>
3225 Decodes the request body. 3477 Gets or sets requested method.
3226 </summary> 3478 </summary>
3227 <param name="request">The request.</param> 3479 <value></value>
3228 <exception cref="T:HttpServer.Exceptions.InternalServerException">Failed to decode form data.</exception> 3480 <remarks>
3481 Will always be in upper case.
3482 </remarks>
3483 <see cref="!:HttpServer.Method"/>
3229 </member> 3484 </member>
3230 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,System.Net.HttpStatusCode,System.String)"> 3485 <member name="P:HttpServer.HttpRequest.QueryString">
3231 <summary> 3486 <summary>
3232 Generate a HTTP error page (that will be added to the response body). 3487 Gets variables sent in the query string
3233 response status code is also set.
3234 </summary> 3488 </summary>
3235 <param name="response">Response that the page will be generated in.</param>
3236 <param name="error"><see cref="T:System.Net.HttpStatusCode"/>.</param>
3237 <param name="body">response body contents.</param>
3238 </member> 3489 </member>
3239 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,HttpServer.Exceptions.HttpException)"> 3490 <member name="P:HttpServer.HttpRequest.Uri">
3240 <summary> 3491 <summary>
3241 Generate a HTTP error page (that will be added to the response body). 3492 Gets or sets requested URI.
3242 response status code is also set.
3243 </summary> 3493 </summary>
3244 <param name="response">Response that the page will be generated in.</param>
3245 <param name="err">exception.</param>
3246 </member> 3494 </member>
3247 <member name="M:HttpServer.HttpServer.GetRealm(HttpServer.IHttpRequest)"> 3495 <member name="P:HttpServer.HttpRequest.UriParts">
3248 <summary> 3496 <summary>
3249 Realms are used by the <see cref="T:HttpServer.Authentication.AuthenticationModule"/>s. 3497 Uri absolute path splitted into parts.
3250 </summary> 3498 </summary>
3251 <param name="request">HTTP request</param> 3499 <example>
3252 <returns>domain/realm.</returns> 3500 // uri is: http://gauffin.com/code/tiny/
3501 Console.WriteLine(request.UriParts[0]); // result: code
3502 Console.WriteLine(request.UriParts[1]); // result: tiny
3503 </example>
3504 <remarks>
3505 If you're using controllers than the first part is controller name,
3506 the second part is method name and the third part is Id property.
3507 </remarks>
3508 <seealso cref="P:HttpServer.HttpRequest.Uri"/>
3253 </member> 3509 </member>
3254 <member name="M:HttpServer.HttpServer.HandleRequest(HttpServer.IHttpClientContext,HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 3510 <member name="P:HttpServer.HttpRequest.Param">
3255 <summary> 3511 <summary>
3256 Process an incoming request. 3512 Gets parameter from <see cref="P:HttpServer.HttpRequest.QueryString"/> or <see cref="P:HttpServer.HttpRequest.Form"/>.
3257 </summary> 3513 </summary>
3258 <param name="context">connection to client</param>
3259 <param name="request">request information</param>
3260 <param name="response">response that should be filled</param>
3261 <param name="session">session information</param>
3262 </member> 3514 </member>
3263 <member name="M:HttpServer.HttpServer.OnClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)"> 3515 <member name="P:HttpServer.HttpRequest.Form">
3264 <summary> 3516 <summary>
3265 Can be overloaded to implement stuff when a client have been connected. 3517 Gets form parameters.
3266 </summary> 3518 </summary>
3267 <remarks>
3268 Default implementation does nothing.
3269 </remarks>
3270 <param name="client">client that disconnected</param>
3271 <param name="error">disconnect reason</param>
3272 </member> 3519 </member>
3273 <member name="M:HttpServer.HttpServer.ProcessAuthentication(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 3520 <member name="P:HttpServer.HttpRequest.IsAjax">
3274 <summary> 3521 <summary>
3275 Handle authentication 3522 Gets whether the request was made by Ajax (Asynchronous JavaScript)
3276 </summary> 3523 </summary>
3277 <param name="request"></param>
3278 <param name="response"></param>
3279 <param name="session"></param>
3280 <returns>true if request can be handled; false if not.</returns>
3281 <exception cref="T:HttpServer.Exceptions.BadRequestException">Invalid authorization header</exception>
3282 </member> 3524 </member>
3283 <member name="M:HttpServer.HttpServer.RequestAuthentication(HttpServer.Authentication.AuthenticationModule,HttpServer.IHttpRequest,HttpServer.IHttpResponse)"> 3525 <member name="P:HttpServer.HttpRequest.Cookies">
3284 <summary> 3526 <summary>
3285 Will request authentication. 3527 Gets cookies that was sent with the request.
3286 </summary> 3528 </summary>
3287 <remarks>
3288 Sends respond to client, nothing else can be done with the response after this.
3289 </remarks>
3290 <param name="mod"></param>
3291 <param name="request"></param>
3292 <param name="response"></param>
3293 </member> 3529 </member>
3294 <member name="M:HttpServer.HttpServer.OnRequest(System.Object,HttpServer.RequestEventArgs)"> 3530 <member name="T:HttpServer.Helpers.ObjectForm">
3295 <summary> 3531 <summary>
3296 Received from a <see cref="T:HttpServer.IHttpClientContext"/> when a request have been parsed successfully. 3532 The object form class takes an object and creates form items for it.
3297 </summary> 3533 </summary>
3298 <param name="source"><see cref="T:HttpServer.IHttpClientContext"/> that received the request.</param>
3299 <param name="args">The request.</param>
3300 </member> 3534 </member>
3301 <member name="M:HttpServer.HttpServer.ProcessRequestWrapper(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)"> 3535 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object,System.String)">
3302 <summary> 3536 <summary>
3303 To be able to track request count. 3537 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
3304 </summary> 3538 </summary>
3305 <param name="context"></param> 3539 <param name="method"></param>
3306 <param name="request"></param> 3540 <param name="name">form name *and* id.</param>
3541 <param name="action">action to do when form is posted.</param>
3542 <param name="obj"></param>
3307 </member> 3543 </member>
3308 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32)"> 3544 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object)">
3309 <summary> 3545 <summary>
3310 Start the web server using regular HTTP. 3546 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
3311 </summary> 3547 </summary>
3312 <param name="address">IP Address to listen on, use <c>IpAddress.Any </c>to accept connections on all IP addresses/network cards.</param> 3548 <param name="name">form name *and* id.</param>
3313 <param name="port">Port to listen on. 80 can be a good idea =)</param> 3549 <param name="action">action to do when form is posted.</param>
3314 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception> 3550 <param name="obj">object to get values from</param>
3315 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
3316 </member> 3551 </member>
3317 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)"> 3552 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.Object)">
3318 <summary> 3553 <summary>
3319 Accept secure connections. 3554 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
3320 </summary> 3555 </summary>
3321 <param name="address">IP Address to listen on, use <see cref="F:System.Net.IPAddress.Any"/> to accept connections on all IP Addresses / network cards.</param> 3556 <param name="action">form action.</param>
3322 <param name="port">Port to listen on. 80 can be a good idea =)</param> 3557 <param name="obj">object to get values from.</param>
3323 <param name="certificate">Certificate to use</param>
3324 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
3325 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
3326 </member> 3558 </member>
3327 <member name="M:HttpServer.HttpServer.Stop"> 3559 <member name="M:HttpServer.Helpers.ObjectForm.Begin">
3328 <summary> 3560 <summary>
3329 shut down the server and listeners 3561 write out the FORM-tag.
3330 </summary> 3562 </summary>
3563 <returns>generated html code</returns>
3331 </member> 3564 </member>
3332 <member name="M:HttpServer.HttpServer.WriteLog(HttpServer.LogPrio,System.String)"> 3565 <member name="M:HttpServer.Helpers.ObjectForm.Begin(System.Boolean)">
3333 <summary> 3566 <summary>
3334 write an entry to the log file 3567 Writeout the form tag
3335 </summary> 3568 </summary>
3336 <param name="prio">importance of the message</param> 3569 <param name="isAjax">form should be posted through ajax.</param>
3337 <param name="message">log message</param> 3570 <returns>generated html code</returns>
3338 </member> 3571 </member>
3339 <member name="M:HttpServer.HttpServer.WriteLog(System.Object,HttpServer.LogPrio,System.String)"> 3572 <member name="M:HttpServer.Helpers.ObjectForm.Tb(System.String,System.Object[])">
3340 <summary> 3573 <summary>
3341 write an entry to the log file 3574 Generates a text box.
3342 </summary> 3575 </summary>
3343 <param name="source">object that wrote the message</param> 3576 <param name="propertyName"></param>
3344 <param name="prio">importance of the message</param> 3577 <param name="options"></param>
3345 <param name="message">log message</param> 3578 <returns>generated html code</returns>
3346 </member> 3579 </member>
3347 <member name="P:HttpServer.HttpServer.Current"> 3580 <member name="M:HttpServer.Helpers.ObjectForm.Pb(System.String,System.Object[])">
3348 <summary> 3581 <summary>
3349 Server that is handling the current request. 3582 password box
3350 </summary> 3583 </summary>
3351 <remarks> 3584 <param name="propertyName"></param>
3352 Will be set as soon as a request arrives to the <see cref="T:HttpServer.HttpServer"/> object. 3585 <param name="options"></param>
3353 </remarks> 3586 <returns>generated html code</returns>
3354 </member> 3587 </member>
3355 <member name="P:HttpServer.HttpServer.AuthenticationModules"> 3588 <member name="M:HttpServer.Helpers.ObjectForm.Hidden(System.String,System.Object[])">
3356 <summary> 3589 <summary>
3357 Modules used for authentication. The module that is is added first is used as 3590 Hiddens the specified property name.
3358 the default authentication module.
3359 </summary> 3591 </summary>
3360 <remarks>Use the corresponding property 3592 <param name="propertyName">Name of the property.</param>
3361 in the <see cref="T:HttpServer.HttpModules.WebSiteModule"/> if you are using multiple websites.</remarks> 3593 <param name="options">The options.</param>
3594 <returns>generated html code</returns>
3362 </member> 3595 </member>
3363 <member name="P:HttpServer.HttpServer.FormDecoderProviders"> 3596 <member name="M:HttpServer.Helpers.ObjectForm.Label(System.String,System.String)">
3364 <summary> 3597 <summary>
3365 Form decoder providers are used to decode request body (which normally contains form data). 3598 Labels the specified property name.
3366 </summary> 3599 </summary>
3600 <param name="propertyName">property in object.</param>
3601 <param name="label">caption</param>
3602 <returns>generated html code</returns>
3367 </member> 3603 </member>
3368 <member name="P:HttpServer.HttpServer.ServerName"> 3604 <member name="M:HttpServer.Helpers.ObjectForm.Cb(System.String,System.String,System.Object[])">
3369 <summary> 3605 <summary>
3370 Server name sent in HTTP responses. 3606 Generate a checkbox
3371 </summary> 3607 </summary>
3372 <remarks> 3608 <param name="propertyName">property in object</param>
3373 Do NOT include version in name, since it makes it 3609 <param name="value">checkbox value</param>
3374 easier for hackers. 3610 <param name="options">additional html attributes.</param>
3375 </remarks> 3611 <returns>generated html code</returns>
3376 </member> 3612 </member>
3377 <member name="P:HttpServer.HttpServer.SessionCookieName"> 3613 <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.String,System.String,System.Object[])">
3378 <summary> 3614 <summary>
3379 Name of cookie where session id is stored. 3615 Write a html select tag
3380 </summary> 3616 </summary>
3617 <param name="propertyName">object property.</param>
3618 <param name="idColumn">id column</param>
3619 <param name="titleColumn">The title column.</param>
3620 <param name="options">The options.</param>
3621 <returns></returns>
3381 </member> 3622 </member>
3382 <member name="P:HttpServer.HttpServer.LogWriter"> 3623 <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.Collections.IEnumerable,System.String,System.String,System.Object[])">
3383 <summary> 3624 <summary>
3384 Specified where logging should go. 3625 Selects the specified property name.
3385 </summary> 3626 </summary>
3386 <seealso cref="T:HttpServer.NullLogWriter"/> 3627 <param name="propertyName">Name of the property.</param>
3387 <seealso cref="T:HttpServer.ConsoleLogWriter"/> 3628 <param name="items">The items.</param>
3388 <seealso cref="P:HttpServer.HttpServer.LogWriter"/> 3629 <param name="idColumn">The id column.</param>
3630 <param name="titleColumn">The title column.</param>
3631 <param name="options">The options.</param>
3632 <returns></returns>
3389 </member> 3633 </member>
3390 <member name="P:HttpServer.HttpServer.BackLog"> 3634 <member name="M:HttpServer.Helpers.ObjectForm.Submit(System.String)">
3391 <summary> 3635 <summary>
3392 Number of connections that can wait to be accepted by the server. 3636 Write a submit tag.
3393 </summary> 3637 </summary>
3394 <remarks>Default is 10.</remarks> 3638 <param name="value">button caption</param>
3639 <returns>html submit tag</returns>
3395 </member> 3640 </member>
3396 <member name="P:HttpServer.HttpServer.MaxRequestCount"> 3641 <member name="M:HttpServer.Helpers.ObjectForm.End">
3397 <summary> 3642 <summary>
3398 Gets or sets maximum number of allowed simultaneous requests. 3643 html end form tag
3399 </summary> 3644 </summary>
3400 <remarks> 3645 <returns>html</returns>
3401 <para>
3402 This property is useful in busy systems. The HTTP server
3403 will start queuing new requests if this limit is hit, instead
3404 of trying to process all incoming requests directly.
3405 </para>
3406 <para>
3407 The default number if allowed simultaneous requests are 10.
3408 </para>
3409 </remarks>
3410 </member> 3646 </member>
3411 <member name="P:HttpServer.HttpServer.MaxQueueSize"> 3647 <member name="T:HttpServer.FormDecoders.UrlDecoder">
3412 <summary> 3648 <summary>
3413 Gets or sets maximum number of requests queuing to be handled. 3649 Can handle application/x-www-form-urlencoded
3414 </summary> 3650 </summary>
3415 <remarks>
3416 <para>
3417 The WebServer will start turning requests away if response code
3418 <see cref="F:System.Net.HttpStatusCode.ServiceUnavailable"/> to indicate that the server
3419 is too busy to be able to handle the request.
3420 </para>
3421 </remarks>
3422 </member> 3651 </member>
3423 <member name="E:HttpServer.HttpServer.RealmWanted"> 3652 <member name="M:HttpServer.FormDecoders.UrlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
3424 <summary> 3653 <summary>
3425 Realms are used during HTTP authentication.
3426 Default realm is same as server name.
3427 </summary> 3654 </summary>
3655 <param name="stream">Stream containing the content</param>
3656 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
3657 <param name="encoding">Stream encoding</param>
3658 <returns>
3659 A HTTP form, or null if content could not be parsed.
3660 </returns>
3661 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
3428 </member> 3662 </member>
3429 <member name="E:HttpServer.HttpServer.ExceptionThrown"> 3663 <member name="M:HttpServer.FormDecoders.UrlDecoder.CanParse(System.String)">
3430 <summary> 3664 <summary>
3431 Let's to receive unhandled exceptions from the threads. 3665 Checks if the decoder can handle the mime type
3432 </summary> 3666 </summary>
3433 <remarks> 3667 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
3434 Exceptions will be thrown during debug mode if this event is not used, 3668 <returns>True if the decoder can parse the specified content type</returns>
3435 exceptions will be printed to console and suppressed during release mode.
3436 </remarks>
3437 </member> 3669 </member>
3438 <member name="T:HttpServer.FormDecoders.MultipartDecoder"> 3670 <member name="T:HttpServer.FormDecoders.MultipartDecoder">
3439 <summary> 3671 <summary>
@@ -3471,40 +3703,34 @@
3471 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param> 3703 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
3472 <returns>True if the decoder can parse the specified content type</returns> 3704 <returns>True if the decoder can parse the specified content type</returns>
3473 </member> 3705 </member>
3474 <member name="M:HttpServer.ComponentProvider.AddInstance``1(System.Object)"> 3706 <member name="T:HttpServer.ClientAcceptedEventArgs">
3475 <summary> 3707 <summary>
3476 Add a component instance 3708 Invoked when a client have been accepted by the <see cref="T:HttpServer.HttpListener"/>
3477 </summary> 3709 </summary>
3478 <typeparam name="T">Interface type</typeparam> 3710 <remarks>
3479 <param name="instance">Instance to add</param> 3711 Can be used to revoke incoming connections
3712 </remarks>
3480 </member> 3713 </member>
3481 <member name="M:HttpServer.ComponentProvider.Get``1"> 3714 <member name="M:HttpServer.ClientAcceptedEventArgs.#ctor(System.Net.Sockets.Socket)">
3482 <summary> 3715 <summary>
3483 Get a component. 3716 Initializes a new instance of the <see cref="T:HttpServer.ClientAcceptedEventArgs"/> class.
3484 </summary> 3717 </summary>
3485 <typeparam name="T">Interface type</typeparam> 3718 <param name="socket">The socket.</param>
3486 <returns>Component if registered, otherwise null.</returns>
3487 <remarks>
3488 Component will get created if needed.
3489 </remarks>
3490 </member> 3719 </member>
3491 <member name="M:HttpServer.ComponentProvider.Create(HttpServer.ComponentProvider.TypeInformation)"> 3720 <member name="M:HttpServer.ClientAcceptedEventArgs.Revoke">
3492 <exception cref="T:System.InvalidOperationException">If instance cannot be created.</exception> 3721 <summary>
3722 Client may not be handled.
3723 </summary>
3493 </member> 3724 </member>
3494 <member name="M:HttpServer.ComponentProvider.Contains(System.Type)"> 3725 <member name="P:HttpServer.ClientAcceptedEventArgs.Socket">
3495 <summary> 3726 <summary>
3496 Checks if the specified component interface have been added. 3727 Accepted socket.
3497 </summary> 3728 </summary>
3498 <param name="interfaceType"></param>
3499 <returns>true if found; otherwise false.</returns>
3500 </member> 3729 </member>
3501 <member name="M:HttpServer.ComponentProvider.Add``2"> 3730 <member name="P:HttpServer.ClientAcceptedEventArgs.Revoked">
3502 <summary> 3731 <summary>
3503 Add a component. 3732 Client should be revoked.
3504 </summary> 3733 </summary>
3505 <typeparam name="InterfaceType">Type being requested.</typeparam>
3506 <typeparam name="InstanceType">Type being created.</typeparam>
3507 <exception cref="T:System.InvalidOperationException">Type have already been mapped.</exception>
3508 </member> 3734 </member>
3509 <member name="T:HttpServer.HttpModules.FileModule"> 3735 <member name="T:HttpServer.HttpModules.FileModule">
3510 <summary> 3736 <summary>
@@ -3581,1013 +3807,951 @@
3581 fileMod.ForbiddenChars = new string[]{ "\\", "..", ":" }; 3807 fileMod.ForbiddenChars = new string[]{ "\\", "..", ":" };
3582 </example> 3808 </example>
3583 </member> 3809 </member>
3584 <member name="T:HttpServer.HttpListenerBase"> 3810 <member name="T:HttpServer.Helpers.XmlHelper">
3585 <summary>
3586 Contains a listener that doesn't do anything with the connections.
3587 </summary>
3588 </member>
3589 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)">
3590 <summary>
3591 Listen for regular HTTP connections
3592 </summary>
3593 <param name="address">IP Address to accept connections on</param>
3594 <param name="port">TCP Port to listen on, default HTTP port is 80.</param>
3595 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
3596 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
3597 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
3598 </member>
3599 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)">
3600 <summary> 3811 <summary>
3601 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class. 3812 Helpers to make XML handling easier
3602 </summary> 3813 </summary>
3603 <param name="address">IP Address to accept connections on</param>
3604 <param name="port">TCP Port to listen on, default HTTPS port is 443</param>
3605 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
3606 <param name="certificate">Certificate to use</param>
3607 </member> 3814 </member>
3608 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)"> 3815 <member name="M:HttpServer.Helpers.XmlHelper.Serialize(System.Object)">
3609 <summary>
3610 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class.
3611 </summary>
3612 <param name="address">IP Address to accept connections on</param>
3613 <param name="port">TCP Port to listen on, default HTTPS port is 443</param>
3614 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
3615 <param name="certificate">Certificate to use</param>
3616 <param name="protocol">which HTTPS protocol to use, default is TLS.</param>
3617 </member>
3618 <member name="M:HttpServer.HttpListenerBase.OnAccept(System.IAsyncResult)">
3619 <exception cref="T:System.Exception"><c>Exception</c>.</exception>
3620 </member>
3621 <member name="M:HttpServer.HttpListenerBase.RetryBeginAccept">
3622 <summary> 3816 <summary>
3623 Will try to accept connections one more time. 3817 Serializes object to XML.
3624 </summary> 3818 </summary>
3625 <exception cref="T:System.Exception">If any exceptions is thrown.</exception> 3819 <param name="value">object to serialize.</param>
3820 <returns>XML</returns>
3821 <remarks>
3822 Removes name spaces and adds indentation
3823 </remarks>
3626 </member> 3824 </member>
3627 <member name="M:HttpServer.HttpListenerBase.OnAcceptingSocket(System.Net.Sockets.Socket)"> 3825 <member name="M:HttpServer.Helpers.XmlHelper.Deserialize``1(System.String)">
3628 <summary> 3826 <summary>
3629 Can be used to create filtering of new connections. 3827 Create an object from a XML string
3630 </summary> 3828 </summary>
3631 <param name="socket">Accepted socket</param> 3829 <typeparam name="T">Type of object</typeparam>
3632 <returns>true if connection can be accepted; otherwise false.</returns> 3830 <param name="xml">XML string</param>
3831 <returns>object</returns>
3633 </member> 3832 </member>
3634 <member name="M:HttpServer.HttpListenerBase.Start(System.Int32)"> 3833 <member name="T:HttpServer.Exceptions.NotFoundException">
3635 <summary> 3834 <summary>
3636 Start listen for new connections 3835 The requested resource was not found in the web server.
3637 </summary> 3836 </summary>
3638 <param name="backlog">Number of connections that can stand in a queue to be accepted.</param>
3639 <exception cref="T:System.InvalidOperationException">Listener have already been started.</exception>
3640 </member> 3837 </member>
3641 <member name="M:HttpServer.HttpListenerBase.Stop"> 3838 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String,System.Exception)">
3642 <summary> 3839 <summary>
3643 Stop the listener 3840 Create a new exception
3644 </summary> 3841 </summary>
3645 <exception cref="T:System.Net.Sockets.SocketException"></exception> 3842 <param name="message">message describing the error</param>
3843 <param name="inner">inner exception</param>
3646 </member> 3844 </member>
3647 <member name="P:HttpServer.HttpListenerBase.LogWriter"> 3845 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String)">
3648 <summary> 3846 <summary>
3649 Gives you a change to receive log entries for all internals of the HTTP library. 3847 Create a new exception
3650 </summary> 3848 </summary>
3651 <remarks> 3849 <param name="message">message describing the error</param>
3652 You may not switch log writer after starting the listener.
3653 </remarks>
3654 </member> 3850 </member>
3655 <member name="P:HttpServer.HttpListenerBase.UseTraceLogs"> 3851 <member name="T:HttpServer.RequestCookie">
3656 <summary> 3852 <summary>
3657 True if we should turn on trace logs. 3853 cookie sent by the client/browser
3658 </summary> 3854 </summary>
3855 <seealso cref="T:HttpServer.ResponseCookie"/>
3659 </member> 3856 </member>
3660 <member name="E:HttpServer.HttpListenerBase.ExceptionThrown"> 3857 <member name="M:HttpServer.RequestCookie.#ctor(System.String,System.String)">
3661 <summary> 3858 <summary>
3662 Catch exceptions not handled by the listener. 3859 Constructor.
3663 </summary> 3860 </summary>
3664 <remarks> 3861 <param name="id">cookie identifier</param>
3665 Exceptions will be thrown during debug mode if this event is not used, 3862 <param name="content">cookie content</param>
3666 exceptions will be printed to console and suppressed during release mode. 3863 <exception cref="T:System.ArgumentNullException">id or content is null</exception>
3667 </remarks> 3864 <exception cref="T:System.ArgumentException">id is empty</exception>
3668 </member> 3865 </member>
3669 <member name="E:HttpServer.HttpListenerBase.RequestReceived"> 3866 <member name="M:HttpServer.RequestCookie.ToString">
3670 <summary> 3867 <summary>
3671 A request have been received from a <see cref="T:HttpServer.IHttpClientContext"/>. 3868 Gets the cookie HTML representation.
3672 </summary> 3869 </summary>
3870 <returns>cookie string</returns>
3673 </member> 3871 </member>
3674 <member name="T:HttpServer.HttpFile"> 3872 <member name="P:HttpServer.RequestCookie.Name">
3675 <summary> 3873 <summary>
3676 Container class for posted files 3874 Gets the cookie identifier.
3677 </summary> 3875 </summary>
3678 </member> 3876 </member>
3679 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)"> 3877 <member name="P:HttpServer.RequestCookie.Value">
3680 <summary> 3878 <summary>
3681 Creates a container for a posted file 3879 Cookie value. Set to null to remove cookie.
3682 </summary> 3880 </summary>
3683 <param name="name">The identifier of the post field</param>
3684 <param name="filename">The file path</param>
3685 <param name="contentType">The content type of the file</param>
3686 <param name="uploadFilename">The name of the file uploaded</param>
3687 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception>
3688 </member> 3881 </member>
3689 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String)"> 3882 <member name="T:HttpServer.HttpParam">
3690 <summary> 3883 <summary>
3691 Creates a container for a posted file <see cref="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)"/> 3884 Returns item either from a form or a query string (checks them in that order)
3692 </summary> 3885 </summary>
3693 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception>
3694 </member> 3886 </member>
3695 <member name="M:HttpServer.HttpFile.Finalize"> 3887 <member name="F:HttpServer.HttpParam.Empty">
3696 <summary>Destructor disposing the file</summary> 3888 <summary> Representation of a non-initialized HttpParam </summary>
3697 </member> 3889 </member>
3698 <member name="M:HttpServer.HttpFile.Dispose(System.Boolean)"> 3890 <member name="M:HttpServer.HttpParam.#ctor(HttpServer.IHttpInput,HttpServer.IHttpInput)">
3699 <summary> 3891 <summary>Initialises the class to hold a value either from a post request or a querystring request</summary>
3700 Deletes the temporary file
3701 </summary>
3702 <param name="disposing">True if manual dispose</param>
3703 </member> 3892 </member>
3704 <member name="M:HttpServer.HttpFile.Dispose"> 3893 <member name="M:HttpServer.HttpParam.Add(System.String,System.String)">
3705 <summary> 3894 <summary>
3706 Disposing interface, cleans up managed resources (the temporary file) and suppresses finalization 3895 The add method is not availible for HttpParam
3896 since HttpParam checks both Request.Form and Request.QueryString
3707 </summary> 3897 </summary>
3898 <param name="name">name identifying the value</param>
3899 <param name="value">value to add</param>
3900 <exception cref="T:System.NotImplementedException"></exception>
3708 </member> 3901 </member>
3709 <member name="P:HttpServer.HttpFile.Name"> 3902 <member name="M:HttpServer.HttpParam.Contains(System.String)">
3710 <summary> 3903 <summary>
3711 The name/id of the file 3904 Checks whether the form or querystring has the specified value
3712 </summary> 3905 </summary>
3906 <param name="name">Name, case sensitive</param>
3907 <returns>true if found; otherwise false.</returns>
3713 </member> 3908 </member>
3714 <member name="P:HttpServer.HttpFile.Filename"> 3909 <member name="M:HttpServer.HttpParam.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator">
3715 <summary> 3910 <summary>
3716 The full file path 3911 Returns an enumerator that iterates through the collection.
3717 </summary> 3912 </summary>
3913
3914 <returns>
3915 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
3916 </returns>
3917 <filterpriority>1</filterpriority>
3718 </member> 3918 </member>
3719 <member name="P:HttpServer.HttpFile.UploadFilename"> 3919 <member name="M:HttpServer.HttpParam.GetEnumerator">
3720 <summary> 3920 <summary>
3721 The name of the uploaded file 3921 Returns an enumerator that iterates through a collection.
3722 </summary> 3922 </summary>
3923
3924 <returns>
3925 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
3926 </returns>
3927 <filterpriority>2</filterpriority>
3723 </member> 3928 </member>
3724 <member name="P:HttpServer.HttpFile.ContentType"> 3929 <member name="P:HttpServer.HttpParam.Item(System.String)">
3725 <summary> 3930 <summary>
3726 The type of file 3931 Fetch an item from the form or querystring (in that order).
3727 </summary> 3932 </summary>
3933 <param name="name"></param>
3934 <returns>Item if found; otherwise HttpInputItem.EmptyLanguageNode</returns>
3728 </member> 3935 </member>
3729 <member name="T:HttpServer.Authentication.DigestAuthentication"> 3936 <member name="T:HttpServer.HttpClientContext">
3730 <summary> 3937 <summary>
3731 Implements HTTP Digest authentication. It's more secure than Basic auth since password is 3938 Contains a connection to a browser/client.
3732 encrypted with a "key" from the server.
3733 </summary> 3939 </summary>
3734 <remarks> 3940 <remarks>
3735 Keep in mind that the password is encrypted with MD5. Use a combination of SSL and digest auth to be secure. 3941 Remember to <see cref="M:HttpServer.HttpClientContext.Start"/> after you have hooked the <see cref="E:HttpServer.HttpClientContext.RequestReceived"/> event.
3736 </remarks> 3942 </remarks>
3943 TODO: Maybe this class should be broken up into HttpClientChannel and HttpClientContext?
3737 </member> 3944 </member>
3738 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)"> 3945 <member name="M:HttpServer.HttpClientContext.#ctor(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,HttpServer.IRequestParserFactory,System.Int32,System.Net.Sockets.Socket)">
3739 <summary>
3740 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class.
3741 </summary>
3742 <param name="authenticator">Delegate used to provide information used during authentication.</param>
3743 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
3744 </member>
3745 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)">
3746 <summary>
3747 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class.
3748 </summary>
3749 <param name="authenticator">Delegate used to provide information used during authentication.</param>
3750 </member>
3751 <member name="F:HttpServer.Authentication.DigestAuthentication.DisableNonceCheck">
3752 <summary>
3753 Used by test classes to be able to use hardcoded values
3754 </summary>
3755 </member>
3756 <member name="M:HttpServer.Authentication.DigestAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])">
3757 <summary> 3946 <summary>
3758 An authentication response have been received from the web browser. 3947 Initializes a new instance of the <see cref="T:HttpServer.HttpClientContext"/> class.
3759 Check if it's correct
3760 </summary> 3948 </summary>
3761 <param name="authenticationHeader">Contents from the Authorization header</param> 3949 <param name="secured">true if the connection is secured (SSL/TLS)</param>
3762 <param name="realm">Realm that should be authenticated</param> 3950 <param name="remoteEndPoint">client that connected.</param>
3763 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param> 3951 <param name="stream">Stream used for communication</param>
3764 <param name="options">First option: true if username/password is correct but not cnonce</param> 3952 <param name="parserFactory">Used to create a <see cref="T:HttpServer.IHttpRequestParser"/>.</param>
3765 <returns> 3953 <param name="bufferSize">Size of buffer to use when reading data. Must be at least 4096 bytes.</param>
3766 Authentication object that is stored for the request. A user class or something like that. 3954 <exception cref="T:System.Net.Sockets.SocketException">If <see cref="M:System.Net.Sockets.Socket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)"/> fails</exception>
3767 </returns> 3955 <exception cref="T:System.ArgumentException">Stream must be writable and readable.</exception>
3768 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception>
3769 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception>
3770 </member> 3956 </member>
3771 <member name="M:HttpServer.Authentication.DigestAuthentication.Encrypt(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)"> 3957 <member name="M:HttpServer.HttpClientContext.OnBodyBytesReceived(System.Object,HttpServer.Parser.BodyEventArgs)">
3772 <summary> 3958 <summary>
3773 Encrypts parameters into a Digest string 3959 Process incoming body bytes.
3774 </summary> 3960 </summary>
3775 <param name="realm">Realm that the user want to log into.</param> 3961 <param name="sender"><see cref="T:HttpServer.IHttpRequestParser"/></param>
3776 <param name="userName">User logging in</param> 3962 <param name="e">Bytes</param>
3777 <param name="password">Users password.</param>
3778 <param name="method">HTTP method.</param>
3779 <param name="uri">Uri/domain that generated the login prompt.</param>
3780 <param name="qop">Quality of Protection.</param>
3781 <param name="nonce">"Number used ONCE"</param>
3782 <param name="nc">Hexadecimal request counter.</param>
3783 <param name="cnonce">"Client Number used ONCE"</param>
3784 <returns>Digest encrypted string</returns>
3785 </member> 3963 </member>
3786 <member name="M:HttpServer.Authentication.DigestAuthentication.Encrypt(System.String,System.String,System.String,System.String,System.String,System.String)"> 3964 <member name="M:HttpServer.HttpClientContext.OnHeaderReceived(System.Object,HttpServer.Parser.HeaderEventArgs)">
3787 <summary> 3965 <summary>
3788 3966
3789 </summary> 3967 </summary>
3790 <param name="ha1">Md5 hex encoded "userName:realm:password", without the quotes.</param> 3968 <param name="sender"></param>
3791 <param name="ha2">Md5 hex encoded "method:uri", without the quotes</param> 3969 <param name="e"></param>
3792 <param name="qop">Quality of Protection</param>
3793 <param name="nonce">"Number used ONCE"</param>
3794 <param name="nc">Hexadecimal request counter.</param>
3795 <param name="cnonce">Client number used once</param>
3796 <returns></returns>
3797 </member> 3970 </member>
3798 <member name="M:HttpServer.Authentication.DigestAuthentication.CreateResponse(System.String,System.Object[])"> 3971 <member name="M:HttpServer.HttpClientContext.Start">
3799 <summary> 3972 <summary>
3800 Create a response that can be sent in the WWW-Authenticate header. 3973 Start reading content.
3801 </summary> 3974 </summary>
3802 <param name="realm">Realm that the user should authenticate in</param> 3975 <remarks>
3803 <param name="options">First options specifies if true if username/password is correct but not cnonce.</param> 3976 Make sure to call base.Start() if you override this method.
3804 <returns>A correct auth request.</returns> 3977 </remarks>
3805 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
3806 </member> 3978 </member>
3807 <member name="M:HttpServer.Authentication.DigestAuthentication.Decode(System.String,System.Text.Encoding)"> 3979 <member name="M:HttpServer.HttpClientContext.Cleanup">
3808 <summary> 3980 <summary>
3809 Decodes authorization header value 3981 Clean up context.
3810 </summary> 3982 </summary>
3811 <param name="buffer">header value</param> 3983 <remarks>
3812 <param name="encoding">Encoding that the buffer is in</param> 3984 Make sure to call base.Cleanup() if you override the method.
3813 <returns>All headers and their values if successful; otherwise null</returns> 3985 </remarks>
3814 <example>
3815 NameValueCollection header = DigestAuthentication.Decode("response=\"6629fae49393a05397450978507c4ef1\",\r\nc=00001", Encoding.ASCII);
3816 </example>
3817 <remarks>Can handle lots of whitespaces and new lines without failing.</remarks>
3818 </member> 3986 </member>
3819 <member name="M:HttpServer.Authentication.DigestAuthentication.GetCurrentNonce"> 3987 <member name="M:HttpServer.HttpClientContext.Disconnect(System.Net.Sockets.SocketError)">
3820 <summary> 3988 <summary>
3821 Gets the current nonce. 3989 Disconnect from client
3822 </summary> 3990 </summary>
3823 <returns></returns> 3991 <param name="error">error to report in the <see cref="E:HttpServer.HttpClientContext.Disconnected"/> event.</param>
3824 </member> 3992 </member>
3825 <member name="M:HttpServer.Authentication.DigestAuthentication.GetMD5HashBinHex2(System.String)"> 3993 <member name="M:HttpServer.HttpClientContext.OnReceive(System.IAsyncResult)">
3826 <summary> 3994 <exception cref="T:HttpServer.Exceptions.BadRequestException"><c>BadRequestException</c>.</exception>
3827 Gets the Md5 hash bin hex2.
3828 </summary>
3829 <param name="toBeHashed">To be hashed.</param>
3830 <returns></returns>
3831 </member> 3995 </member>
3832 <member name="M:HttpServer.Authentication.DigestAuthentication.IsValidNonce(System.String)"> 3996 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)">
3833 <summary> 3997 <summary>
3834 determines if the nonce is valid or has expired. 3998 Send a response.
3835 </summary> 3999 </summary>
3836 <param name="nonce">nonce value (check wikipedia for info)</param> 4000 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
3837 <returns>true if the nonce has not expired.</returns> 4001 <param name="statusCode">HTTP status code</param>
4002 <param name="reason">reason for the status code.</param>
4003 <param name="body">HTML body contents, can be null or empty.</param>
4004 <param name="contentType">A content type to return the body as, i.e. 'text/html' or 'text/plain', defaults to 'text/html' if null or empty</param>
4005 <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception>
3838 </member> 4006 </member>
3839 <member name="P:HttpServer.Authentication.DigestAuthentication.Name"> 4007 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)">
3840 <summary> 4008 <summary>
3841 name used in http request. 4009 Send a response.
3842 </summary> 4010 </summary>
4011 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
4012 <param name="statusCode">HTTP status code</param>
4013 <param name="reason">reason for the status code.</param>
3843 </member> 4014 </member>
3844 <member name="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1"> 4015 <member name="M:HttpServer.HttpClientContext.Respond(System.String)">
3845 <summary> 4016 <summary>
3846 Gets or sets whether the token supplied in <see cref="T:HttpServer.Authentication.AuthenticationHandler"/> is a 4017 Send a response.
3847 HA1 generated string.
3848 </summary> 4018 </summary>
4019 <exception cref="T:System.ArgumentNullException"></exception>
3849 </member> 4020 </member>
3850 <member name="T:HttpServer.RequestParserState"> 4021 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[])">
3851 <summary> 4022 <summary>
3852 Current state in the parsing. 4023 send a whole buffer
3853 </summary> 4024 </summary>
4025 <param name="buffer">buffer to send</param>
4026 <exception cref="T:System.ArgumentNullException"></exception>
3854 </member> 4027 </member>
3855 <member name="F:HttpServer.RequestParserState.FirstLine"> 4028 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[],System.Int32,System.Int32)">
3856 <summary> 4029 <summary>
3857 Should parse the request line 4030 Send data using the stream
3858 </summary> 4031 </summary>
4032 <param name="buffer">Contains data to send</param>
4033 <param name="offset">Start position in buffer</param>
4034 <param name="size">number of bytes to send</param>
4035 <exception cref="T:System.ArgumentNullException"></exception>
4036 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
3859 </member> 4037 </member>
3860 <member name="F:HttpServer.RequestParserState.HeaderName"> 4038 <member name="E:HttpServer.HttpClientContext.Cleaned">
3861 <summary> 4039 <summary>
3862 Searching for a complete header name 4040 This context have been cleaned, which means that it can be reused.
3863 </summary> 4041 </summary>
3864 </member> 4042 </member>
3865 <member name="F:HttpServer.RequestParserState.AfterName"> 4043 <member name="E:HttpServer.HttpClientContext.Started">
3866 <summary> 4044 <summary>
3867 Searching for colon after header name (ignoring white spaces) 4045 Context have been started (a new client have connected)
3868 </summary> 4046 </summary>
3869 </member> 4047 </member>
3870 <member name="F:HttpServer.RequestParserState.Between"> 4048 <member name="P:HttpServer.HttpClientContext.CurrentRequest">
3871 <summary> 4049 <summary>
3872 Searching for start of header value (ignoring white spaces) 4050 Overload to specify own type.
3873 </summary> 4051 </summary>
4052 <remarks>
4053 Must be specified before the context is being used.
4054 </remarks>
3874 </member> 4055 </member>
3875 <member name="F:HttpServer.RequestParserState.HeaderValue"> 4056 <member name="P:HttpServer.HttpClientContext.Secured">
3876 <summary> 4057 <summary>
3877 Searching for a complete header value (can span over multiple lines, as long as they are prefixed with one/more whitespaces) 4058 Using SSL or other encryption method.
3878 </summary> 4059 </summary>
3879 </member> 4060 </member>
3880 <member name="F:HttpServer.RequestParserState.Body"> 4061 <member name="P:HttpServer.HttpClientContext.IsSecured">
3881 <summary> 4062 <summary>
3882 Adding bytes to body 4063 Using SSL or other encryption method.
3883 </summary> 4064 </summary>
3884 </member> 4065 </member>
3885 <member name="T:HttpServer.Rules.RegexRedirectRule"> 4066 <member name="P:HttpServer.HttpClientContext.LogWriter">
3886 <summary> 4067 <summary>
3887 Class to make dynamic binding of redirects. Instead of having to specify a number of similar redirect rules 4068 Specify which logger to use.
3888 a regular expression can be used to identify redirect URLs and their targets.
3889 </summary> 4069 </summary>
3890 <example>
3891 <![CDATA[
3892 new RegexRedirectRule("/(?<target>[a-z0-9]+)", "/users/${target}?find=true", RegexOptions.IgnoreCase)
3893 ]]>
3894 </example>
3895 </member> 4070 </member>
3896 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String)"> 4071 <member name="P:HttpServer.HttpClientContext.Stream">
3897 <summary> 4072 <summary>
3898 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class. 4073 Gets or sets the network stream.
3899 </summary> 4074 </summary>
3900 <param name="fromUrlExpression">Expression to match URL</param>
3901 <param name="toUrlExpression">Expression to generate URL</param>
3902 <example>
3903 <![CDATA[
3904 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/${first}"));
3905 Result of ie. /employee1 will then be /user/employee1
3906 ]]>
3907 </example>
3908 </member> 4075 </member>
3909 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String,System.Text.RegularExpressions.RegexOptions)"> 4076 <member name="P:HttpServer.HttpClientContext.RemoteAddress">
3910 <summary> 4077 <summary>
3911 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class. 4078 Gets or sets IP address that the client connected from.
3912 </summary> 4079 </summary>
3913 <param name="fromUrlExpression">Expression to match URL</param>
3914 <param name="toUrlExpression">Expression to generate URL</param>
3915 <param name="options">Regular expression options to use, can be null</param>
3916 <example>
3917 <![CDATA[
3918 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/{first}", RegexOptions.IgnoreCase));
3919 Result of ie. /employee1 will then be /user/employee1
3920 ]]>
3921 </example>
3922 </member> 4080 </member>
3923 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String,System.Text.RegularExpressions.RegexOptions,System.Boolean)"> 4081 <member name="P:HttpServer.HttpClientContext.RemotePort">
3924 <summary> 4082 <summary>
3925 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class. 4083 Gets or sets port that the client connected from.
3926 </summary> 4084 </summary>
3927 <param name="fromUrlExpression">Expression to match URL</param>
3928 <param name="toUrlExpression">Expression to generate URL</param>
3929 <param name="options">Regular expression options to apply</param>
3930 <param name="shouldRedirect"><c>true</c> if request should be redirected, <c>false</c> if the request URI should be replaced.</param>
3931 <example>
3932 <![CDATA[
3933 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/${first}", RegexOptions.None));
3934 Result of ie. /employee1 will then be /user/employee1
3935 ]]>
3936 </example>
3937 <exception cref="T:System.ArgumentNullException">Argument is null.</exception>
3938 <seealso cref="P:HttpServer.Rules.RedirectRule.ShouldRedirect"/>
3939 </member> 4085 </member>
3940 <member name="M:HttpServer.Rules.RegexRedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)"> 4086 <member name="E:HttpServer.HttpClientContext.Disconnected">
3941 <summary> 4087 <summary>
3942 Process the incoming request. 4088 The context have been disconnected.
3943 </summary> 4089 </summary>
3944 <param name="request">incoming HTTP request</param>
3945 <param name="response">outgoing HTTP response</param>
3946 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
3947 <remarks> 4090 <remarks>
3948 returning true means that no modules will get the request. Returning true is typically being done 4091 Event can be used to clean up a context, or to reuse it.
3949 for redirects.
3950 </remarks> 4092 </remarks>
3951 <exception cref="T:System.ArgumentNullException">If request or response is null</exception>
3952 </member> 4093 </member>
3953 <member name="T:HttpServer.RequestCookies"> 4094 <member name="E:HttpServer.HttpClientContext.RequestReceived">
3954 <summary> 4095 <summary>
3955 This class is created as a wrapper, since there are two different cookie types in .Net (Cookie and HttpCookie). 4096 A request have been received in the context.
3956 The framework might switch class in the future and we dont want to have to replace all instances
3957 </summary> 4097 </summary>
3958 </member> 4098 </member>
3959 <member name="M:HttpServer.RequestCookies.#ctor(System.String)"> 4099 <member name="T:HttpServer.Helpers.ResourceManager">
4100 <summary>Class to handle loading of resource files</summary>
4101 </member>
4102 <member name="M:HttpServer.Helpers.ResourceManager.#ctor">
3960 <summary> 4103 <summary>
3961 Let's copy all the cookies. 4104 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class.
3962 </summary> 4105 </summary>
3963 <param name="cookies">value from cookie header.</param>
3964 </member> 4106 </member>
3965 <member name="M:HttpServer.RequestCookies.Add(HttpServer.RequestCookie)"> 4107 <member name="M:HttpServer.Helpers.ResourceManager.#ctor(HttpServer.ILogWriter)">
3966 <summary> 4108 <summary>
3967 Adds a cookie in the collection. 4109 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class.
3968 </summary> 4110 </summary>
3969 <param name="cookie">cookie to add</param> 4111 <param name="writer">logger.</param>
3970 <exception cref="T:System.ArgumentNullException">cookie is null</exception>
3971 </member> 4112 </member>
3972 <member name="M:HttpServer.RequestCookies.GetEnumerator"> 4113 <member name="M:HttpServer.Helpers.ResourceManager.LoadResources(System.String,System.Reflection.Assembly,System.String)">
3973 <summary> 4114 <summary>
3974 Gets a collection enumerator on the cookie list. 4115 Loads resources from a namespace in the given assembly to an URI
3975 </summary> 4116 </summary>
3976 <returns>collection enumerator</returns> 4117 <param name="toUri">The URI to map the resources to</param>
4118 <param name="fromAssembly">The assembly in which the resources reside</param>
4119 <param name="fromNamespace">The namespace from which to load the resources</param>
4120 <usage>
4121 <code>
4122 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
4123 </code>
4124 Will make the resource MyLib.Models.User.Views.list.Haml accessible via /user/list.haml or /user/list/
4125 </usage>
4126 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns>
4127 <exception cref="T:System.InvalidOperationException">If a resource has already been mapped to an uri</exception>
3977 </member> 4128 </member>
3978 <member name="M:HttpServer.RequestCookies.Clear"> 4129 <member name="M:HttpServer.Helpers.ResourceManager.GetResourceStream(System.String)">
3979 <summary> 4130 <summary>
3980 Remove all cookies. 4131 Retrieves a stream for the specified resource path if loaded otherwise null
3981 </summary> 4132 </summary>
4133 <param name="path">Path to the resource to retrieve a stream for</param>
4134 <returns>A stream or null if the resource couldn't be found</returns>
3982 </member> 4135 </member>
3983 <member name="M:HttpServer.RequestCookies.System#Collections#Generic#IEnumerable{HttpServer#RequestCookie}#GetEnumerator"> 4136 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String)">
3984 <summary> 4137 <summary>
3985 Returns an enumerator that iterates through the collection. 4138 Fetch all files from the resource that matches the specified arguments.
3986 </summary> 4139 </summary>
3987 4140 <param name="path">The path to the resource to extract</param>
3988 <returns> 4141 <returns>
3989 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection. 4142 a list of files if found; or an empty array if no files are found.
3990 </returns> 4143 </returns>
3991 <filterpriority>1</filterpriority> 4144 <exception cref="T:System.ArgumentException">Search path must end with an asterisk for finding arbitrary files</exception>
3992 </member> 4145 </member>
3993 <member name="M:HttpServer.RequestCookies.Remove(System.String)"> 4146 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String,System.String)">
3994 <summary> 4147 <summary>
3995 Remove a cookie from the collection. 4148 Fetch all files from the resource that matches the specified arguments.
3996 </summary> 4149 </summary>
3997 <param name="cookieName">Name of cookie.</param> 4150 <param name="path">Where the file should reside.</param>
4151 <param name="filename">Files to check</param>
4152 <returns>
4153 a list of files if found; or an empty array if no files are found.
4154 </returns>
3998 </member> 4155 </member>
3999 <member name="P:HttpServer.RequestCookies.Count"> 4156 <member name="M:HttpServer.Helpers.ResourceManager.ContainsResource(System.String)">
4000 <summary> 4157 <summary>
4001 Gets the count of cookies in the collection. 4158 Returns whether or not the loader has an instance of the file requested
4002 </summary> 4159 </summary>
4160 <param name="filename">The name of the template/file</param>
4161 <returns>True if the loader can provide the file</returns>
4003 </member> 4162 </member>
4004 <member name="P:HttpServer.RequestCookies.Item(System.String)"> 4163 <member name="T:HttpServer.Check">
4005 <summary> 4164 <summary>
4006 Gets the cookie of a given identifier (null if not existing). 4165 Small design by contract implementation.
4007 </summary> 4166 </summary>
4008 </member> 4167 </member>
4009 <member name="T:HttpServer.Parser.BodyEventArgs"> 4168 <member name="M:HttpServer.Check.NotEmpty(System.String,System.String)">
4010 <summary> 4169 <summary>
4011 Arguments used when more body bytes have come. 4170 Check whether a parameter is empty.
4012 </summary> 4171 </summary>
4172 <param name="value">Parameter value</param>
4173 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
4174 <exception cref="T:System.ArgumentException">value is empty.</exception>
4013 </member> 4175 </member>
4014 <member name="M:HttpServer.Parser.BodyEventArgs.#ctor(System.Byte[],System.Int32,System.Int32)"> 4176 <member name="M:HttpServer.Check.Require(System.Object,System.String)">
4015 <summary> 4177 <summary>
4016 Initializes a new instance of the <see cref="T:HttpServer.Parser.BodyEventArgs"/> class. 4178 Checks whether a parameter is null.
4017 </summary> 4179 </summary>
4018 <param name="buffer">buffer that contains the received bytes.</param> 4180 <param name="value">Parameter value</param>
4019 <param name="offset">offset in buffer where to start processing.</param> 4181 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
4020 <param name="count">number of bytes from <paramref name="offset"/> that should be parsed.</param> 4182 <exception cref="T:System.ArgumentNullException">value is null.</exception>
4021 </member> 4183 </member>
4022 <member name="M:HttpServer.Parser.BodyEventArgs.#ctor"> 4184 <member name="M:HttpServer.Check.Min(System.Int32,System.Object,System.String)">
4023 <summary> 4185 <summary>
4024 Initializes a new instance of the <see cref="T:HttpServer.Parser.BodyEventArgs"/> class. 4186 Checks whether a parameter is null.
4025 </summary> 4187 </summary>
4188 <param name="minValue"></param>
4189 <param name="value">Parameter value</param>
4190 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
4191 <exception cref="T:System.ArgumentException">value is null.</exception>
4026 </member> 4192 </member>
4027 <member name="P:HttpServer.Parser.BodyEventArgs.Buffer"> 4193 <member name="T:HttpServer.ResponseCookie">
4028 <summary> 4194 <summary>
4029 Gets or sets buffer that contains the received bytes. 4195 cookie being sent back to the browser.
4030 </summary> 4196 </summary>
4197 <seealso cref="T:HttpServer.ResponseCookie"/>
4031 </member> 4198 </member>
4032 <member name="P:HttpServer.Parser.BodyEventArgs.Count"> 4199 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime)">
4033 <summary> 4200 <summary>
4034 Gets or sets number of bytes from <see cref="P:HttpServer.Parser.BodyEventArgs.Offset"/> that should be parsed. 4201 Constructor.
4035 </summary> 4202 </summary>
4203 <param name="id">cookie identifier</param>
4204 <param name="content">cookie content</param>
4205 <param name="expiresAt">cookie expiration date. Use DateTime.MinValue for session cookie.</param>
4206 <exception cref="T:System.ArgumentNullException">id or content is null</exception>
4207 <exception cref="T:System.ArgumentException">id is empty</exception>
4036 </member> 4208 </member>
4037 <member name="P:HttpServer.Parser.BodyEventArgs.Offset"> 4209 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime,System.String,System.String)">
4038 <summary> 4210 <summary>
4039 Gets or sets offset in buffer where to start processing. 4211 Create a new cookie
4040 </summary> 4212 </summary>
4213 <param name="name">name identifying the cookie</param>
4214 <param name="value">cookie value</param>
4215 <param name="expires">when the cookie expires. Setting DateTime.MinValue will delete the cookie when the session is closed.</param>
4216 <param name="path">Path to where the cookie is valid</param>
4217 <param name="domain">Domain that the cookie is valid for.</param>
4041 </member> 4218 </member>
4042 <member name="T:HttpServer.HttpParam"> 4219 <member name="M:HttpServer.ResponseCookie.#ctor(HttpServer.RequestCookie,System.DateTime)">
4043 <summary> 4220 <summary>
4044 Returns item either from a form or a query string (checks them in that order) 4221 Create a new cookie
4045 </summary> 4222 </summary>
4223 <param name="cookie">Name and value will be used</param>
4224 <param name="expires">when the cookie expires.</param>
4046 </member> 4225 </member>
4047 <member name="F:HttpServer.HttpParam.Empty"> 4226 <member name="M:HttpServer.ResponseCookie.ToString">
4048 <summary> Representation of a non-initialized HttpParam </summary> 4227 <summary>
4049 </member> 4228 Gets the cookie HTML representation.
4050 <member name="M:HttpServer.HttpParam.#ctor(HttpServer.IHttpInput,HttpServer.IHttpInput)"> 4229 </summary>
4051 <summary>Initialises the class to hold a value either from a post request or a querystring request</summary> 4230 <returns>cookie string</returns>
4052 </member> 4231 </member>
4053 <member name="M:HttpServer.HttpParam.Add(System.String,System.String)"> 4232 <member name="P:HttpServer.ResponseCookie.Expires">
4054 <summary> 4233 <summary>
4055 The add method is not availible for HttpParam 4234 When the cookie expires.
4056 since HttpParam checks both Request.Form and Request.QueryString 4235 DateTime.MinValue means that the cookie expires when the session do so.
4057 </summary> 4236 </summary>
4058 <param name="name">name identifying the value</param>
4059 <param name="value">value to add</param>
4060 <exception cref="T:System.NotImplementedException"></exception>
4061 </member> 4237 </member>
4062 <member name="M:HttpServer.HttpParam.Contains(System.String)"> 4238 <member name="P:HttpServer.ResponseCookie.Path">
4063 <summary> 4239 <summary>
4064 Checks whether the form or querystring has the specified value 4240 Cookie is only valid under this path.
4065 </summary> 4241 </summary>
4066 <param name="name">Name, case sensitive</param>
4067 <returns>true if found; otherwise false.</returns>
4068 </member> 4242 </member>
4069 <member name="M:HttpServer.HttpParam.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator"> 4243 <member name="T:HttpServer.Parser.RequestLineEventArgs">
4070 <summary> 4244 <summary>
4071 Returns an enumerator that iterates through the collection. 4245 Used when the request line have been successfully parsed.
4072 </summary> 4246 </summary>
4073
4074 <returns>
4075 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
4076 </returns>
4077 <filterpriority>1</filterpriority>
4078 </member> 4247 </member>
4079 <member name="M:HttpServer.HttpParam.GetEnumerator"> 4248 <member name="M:HttpServer.Parser.RequestLineEventArgs.#ctor(System.String,System.String,System.String)">
4080 <summary> 4249 <summary>
4081 Returns an enumerator that iterates through a collection. 4250 Initializes a new instance of the <see cref="T:HttpServer.Parser.RequestLineEventArgs"/> class.
4082 </summary> 4251 </summary>
4083 4252 <param name="httpMethod">The HTTP method.</param>
4084 <returns> 4253 <param name="uriPath">The URI path.</param>
4085 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection. 4254 <param name="httpVersion">The HTTP version.</param>
4086 </returns>
4087 <filterpriority>2</filterpriority>
4088 </member> 4255 </member>
4089 <member name="P:HttpServer.HttpParam.Item(System.String)"> 4256 <member name="M:HttpServer.Parser.RequestLineEventArgs.#ctor">
4090 <summary> 4257 <summary>
4091 Fetch an item from the form or querystring (in that order). 4258 Initializes a new instance of the <see cref="T:HttpServer.Parser.RequestLineEventArgs"/> class.
4092 </summary> 4259 </summary>
4093 <param name="name"></param>
4094 <returns>Item if found; otherwise HttpInputItem.EmptyLanguageNode</returns>
4095 </member> 4260 </member>
4096 <member name="T:HttpServer.ExceptionHandler"> 4261 <member name="P:HttpServer.Parser.RequestLineEventArgs.HttpMethod">
4097 <summary> 4262 <summary>
4098 We dont want to let the server to die due to exceptions thrown in worker threads. 4263 Gets or sets http method.
4099 therefore we use this delegate to give you a change to handle uncaught exceptions.
4100 </summary> 4264 </summary>
4101 <param name="source">Class that the exception was thrown in.</param>
4102 <param name="exception">Exception</param>
4103 <remarks> 4265 <remarks>
4104 Server will throw a InternalServerException in release version if you dont 4266 Should be one of the methods declared in <see cref="T:HttpServer.Method"/>.
4105 handle this delegate.
4106 </remarks> 4267 </remarks>
4107 </member> 4268 </member>
4108 <member name="T:HttpServer.Authentication.AuthenticationHandler"> 4269 <member name="P:HttpServer.Parser.RequestLineEventArgs.HttpVersion">
4109 <summary> 4270 <summary>
4110 Delegate used to let authentication modules authenticate the user name and password. 4271 Gets or sets the version of the HTTP protocol that the client want to use.
4111 </summary> 4272 </summary>
4112 <param name="realm">Realm that the user want to authenticate in</param>
4113 <param name="userName">User name specified by client</param>
4114 <param name="token">Can either be user password or implementation specific token.</param>
4115 <param name="login">object that will be stored in a session variable called <see cref="F:HttpServer.Authentication.AuthenticationModule.AuthenticationTag"/> if authentication was successful.</param>
4116 <exception cref="T:HttpServer.Exceptions.ForbiddenException">throw forbidden exception if too many attempts have been made.</exception>
4117 <remarks>
4118 <para>
4119 Use <see cref="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1"/> to specify that the token is a HA1 token. (MD5 generated
4120 string from realm, user name and password); Md5String(userName + ":" + realm + ":" + password);
4121 </para>
4122 </remarks>
4123 </member> 4273 </member>
4124 <member name="T:HttpServer.Authentication.AuthenticationRequiredHandler"> 4274 <member name="P:HttpServer.Parser.RequestLineEventArgs.UriPath">
4125 <summary> 4275 <summary>
4126 Let's you decide on a system level if authentication is required. 4276 Gets or sets requested URI path.
4127 </summary> 4277 </summary>
4128 <param name="request">HTTP request from client</param>
4129 <returns>true if user should be authenticated.</returns>
4130 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> if no more attempts are allowed.</remarks>
4131 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
4132 </member> 4278 </member>
4133 <member name="T:HttpServer.HttpListener"> 4279 <member name="T:HttpServer.RealmHandler">
4134 <summary> 4280 <summary>
4135 New implementation of the HTTP listener. 4281 Delegate used to find a realm/domain.
4136 </summary> 4282 </summary>
4283 <param name="domain"></param>
4284 <returns></returns>
4137 <remarks> 4285 <remarks>
4138 Use the <c>Create</c> methods to create a default listener. 4286 Realms are used during HTTP Authentication
4139 </remarks> 4287 </remarks>
4288 <seealso cref="T:HttpServer.Authentication.AuthenticationModule"/>
4289 <seealso cref="T:HttpServer.Authentication.AuthenticationHandler"/>
4140 </member> 4290 </member>
4141 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)"> 4291 <member name="T:HttpServer.HttpServer">
4142 <summary> 4292 <summary>
4143 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class. 4293 A complete HTTP server, you need to add a module to it to be able to handle incoming requests.
4144 </summary> 4294 </summary>
4145 <param name="address">IP Address to accept connections on</param> 4295 <example>
4146 <param name="port">TCP Port to listen on, default HTTP port is 80.</param> 4296 <code>
4147 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param> 4297 // this small example will add two web site modules, thus handling
4148 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception> 4298 // two different sites. In reality you should add Controller modules or something
4149 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception> 4299 // two the website modules to be able to handle different requests.
4300 HttpServer server = new HttpServer();
4301 server.Add(new WebSiteModule("www.gauffin.com", "Gauffin Telecom AB"));
4302 server.Add(new WebSiteModule("www.vapadi.se", "Remote PBX"));
4303
4304 // start regular http
4305 server.Start(IPAddress.Any, 80);
4306
4307 // start https
4308 server.Start(IPAddress.Any, 443, myCertificate);
4309 </code>
4310 </example>
4311 <seealso cref="T:HttpServer.HttpModules.HttpModule"/>
4312 <seealso cref="T:HttpServer.HttpModules.FileModule"/>
4313 <seealso cref="T:HttpServer.HttpListener"/>
4150 </member> 4314 </member>
4151 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)"> 4315 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.IComponentProvider)">
4152 <summary> 4316 <summary>
4153 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class. 4317 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
4154 </summary> 4318 </summary>
4155 <param name="address">The address.</param> 4319 <param name="provider">Used to get all components used in the server..</param>
4156 <param name="port">The port.</param>
4157 <param name="factory">The factory.</param>
4158 <param name="certificate">The certificate.</param>
4159 </member> 4320 </member>
4160 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)"> 4321 <member name="M:HttpServer.HttpServer.#ctor">
4161 <summary> 4322 <summary>
4162 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class. 4323 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
4163 </summary> 4324 </summary>
4164 <param name="address">The address.</param>
4165 <param name="port">The port.</param>
4166 <param name="factory">The factory.</param>
4167 <param name="certificate">The certificate.</param>
4168 <param name="protocol">The protocol.</param>
4169 </member> 4325 </member>
4170 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32)"> 4326 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider)">
4171 <summary> 4327 <summary>
4172 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories. 4328 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
4173 </summary> 4329 </summary>
4174 <param name="address">Address that the listener should accept connections on.</param> 4330 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
4175 <param name="port">Port that listener should accept connections on.</param> 4331 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
4176 <returns>Created HTTP listener.</returns> 4332 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
4177 </member> 4333 </member>
4178 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)"> 4334 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.Sessions.IHttpSessionStore)">
4179 <summary> 4335 <summary>
4180 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories. 4336 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
4181 </summary> 4337 </summary>
4182 <param name="address">Address that the listener should accept connections on.</param> 4338 <param name="sessionStore">A session store is used to save and retrieve sessions</param>
4183 <param name="port">Port that listener should accept connections on.</param> 4339 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/>
4184 <param name="certificate">Certificate to use</param>
4185 <returns>Created HTTP listener.</returns>
4186 </member> 4340 </member>
4187 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)"> 4341 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.ILogWriter)">
4188 <summary> 4342 <summary>
4189 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories. 4343 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
4190 </summary> 4344 </summary>
4191 <param name="address">Address that the listener should accept connections on.</param> 4345 <param name="logWriter">The log writer.</param>
4192 <param name="port">Port that listener should accept connections on.</param> 4346 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
4193 <param name="certificate">Certificate to use</param>
4194 <param name="protocol">which HTTPS protocol to use, default is TLS.</param>
4195 <returns>Created HTTP listener.</returns>
4196 </member> 4347 </member>
4197 <member name="M:HttpServer.HttpListener.OnAcceptingSocket(System.Net.Sockets.Socket)"> 4348 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.ILogWriter)">
4198 <summary> 4349 <summary>
4199 Can be used to create filtering of new connections. 4350 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
4200 </summary> 4351 </summary>
4201 <param name="socket">Accepted socket</param> 4352 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
4202 <returns> 4353 <param name="logWriter">The log writer.</param>
4203 true if connection can be accepted; otherwise false. 4354 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
4204 </returns> 4355 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
4356 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
4205 </member> 4357 </member>
4206 <member name="E:HttpServer.HttpListener.Accepted"> 4358 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.Sessions.IHttpSessionStore,HttpServer.ILogWriter)">
4207 <summary> 4359 <summary>
4208 A client have been accepted, but not handled, by the listener. 4360 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
4209 </summary> 4361 </summary>
4362 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
4363 <param name="sessionStore">A session store is used to save and retrieve sessions</param>
4364 <param name="logWriter">The log writer.</param>
4365 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
4366 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
4367 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
4368 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/>
4210 </member> 4369 </member>
4211 <member name="T:HttpServer.Helpers.WebHelper"> 4370 <member name="M:HttpServer.HttpServer.Add(HttpServer.Rules.IRule)">
4212 <summary> 4371 <summary>
4213 Webhelper provides helpers for common tasks in HTML. 4372 Adds the specified rule.
4214 </summary> 4373 </summary>
4374 <param name="rule">The rule.</param>
4215 </member> 4375 </member>
4216 <member name="F:HttpServer.Helpers.WebHelper.JSImplementation"> 4376 <member name="M:HttpServer.HttpServer.Add(HttpServer.HttpModules.HttpModule)">
4217 <summary> 4377 <summary>
4218 Used to let the website use different javascript libraries. 4378 Add a <see cref="T:HttpServer.HttpModules.HttpModule"/> to the server.
4219 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/>
4220 </summary> 4379 </summary>
4380 <param name="module">mode to add</param>
4221 </member> 4381 </member>
4222 <member name="M:HttpServer.Helpers.WebHelper.AjaxRequest(System.String,System.String,System.String[])"> 4382 <member name="M:HttpServer.HttpServer.DecodeBody(HttpServer.IHttpRequest)">
4223 <summary> 4383 <summary>
4224 Creates a link that invokes through ajax. 4384 Decodes the request body.
4225 </summary> 4385 </summary>
4226 <param name="url">url to fetch</param> 4386 <param name="request">The request.</param>
4227 <param name="title">link title</param> 4387 <exception cref="T:HttpServer.Exceptions.InternalServerException">Failed to decode form data.</exception>
4228 <param name="options">
4229 optional options in format "key, value, key, value".
4230 Javascript options starts with ':'.
4231 </param>
4232 <returns>a link tag</returns>
4233 <example>
4234 WebHelper.AjaxRequest("/users/add/", "Add user", "method:", "post", "onclick", "validate('this');");
4235 </example>
4236 </member> 4388 </member>
4237 <member name="M:HttpServer.Helpers.WebHelper.AjaxUpdater(System.String,System.String,System.String,System.String[])"> 4389 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,System.Net.HttpStatusCode,System.String)">
4238 <summary> 4390 <summary>
4239 Builds a link that updates an element with the fetched ajax content. 4391 Generate a HTTP error page (that will be added to the response body).
4392 response status code is also set.
4240 </summary> 4393 </summary>
4241 <param name="url">Url to fetch content from</param> 4394 <param name="response">Response that the page will be generated in.</param>
4242 <param name="title">link title</param> 4395 <param name="error"><see cref="T:System.Net.HttpStatusCode"/>.</param>
4243 <param name="targetId">html element to update with the results of the ajax request.</param> 4396 <param name="body">response body contents.</param>
4244 <param name="options">optional options in format "key, value, key, value"</param>
4245 <returns>A link tag.</returns>
4246 </member> 4397 </member>
4247 <member name="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])"> 4398 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,HttpServer.Exceptions.HttpException)">
4248 <summary> 4399 <summary>
4249 A link that pop ups a Dialog (overlay div) 4400 Generate a HTTP error page (that will be added to the response body).
4401 response status code is also set.
4250 </summary> 4402 </summary>
4251 <param name="url">url to contents of dialog</param> 4403 <param name="response">Response that the page will be generated in.</param>
4252 <param name="title">link title</param> 4404 <param name="err">exception.</param>
4253 <param name="htmlAttributes">name/value of html attributes.</param>
4254 <returns>A "a"-tag that popups a dialog when clicked</returns>
4255 <example>
4256 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
4257 </example>
4258 </member> 4405 </member>
4259 <member name="M:HttpServer.Helpers.WebHelper.CreateDialog(System.String,System.String,System.String[])"> 4406 <member name="M:HttpServer.HttpServer.GetRealm(HttpServer.IHttpRequest)">
4260 <summary> 4407 <summary>
4261 Create/Open a dialog box using ajax 4408 Realms are used by the <see cref="T:HttpServer.Authentication.AuthenticationModule"/>s.
4262 </summary> 4409 </summary>
4263 <param name="url"></param> 4410 <param name="request">HTTP request</param>
4264 <param name="title"></param> 4411 <returns>domain/realm.</returns>
4265 <param name="parameters"></param>
4266 <returns></returns>
4267 </member> 4412 </member>
4268 <member name="M:HttpServer.Helpers.WebHelper.CloseDialog"> 4413 <member name="M:HttpServer.HttpServer.HandleRequest(HttpServer.IHttpClientContext,HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
4269 <summary> 4414 <summary>
4270 Close a javascript dialog window/div. 4415 Process an incoming request.
4271 </summary> 4416 </summary>
4272 <returns>javascript for closing a dialog.</returns> 4417 <param name="context">connection to client</param>
4273 <see cref="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])"/> 4418 <param name="request">request information</param>
4419 <param name="response">response that should be filled</param>
4420 <param name="session">session information</param>
4274 </member> 4421 </member>
4275 <member name="M:HttpServer.Helpers.WebHelper.FormStart(System.String,System.String,System.Boolean)"> 4422 <member name="M:HttpServer.HttpServer.OnClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)">
4276 <summary> 4423 <summary>
4277 Create a &lt;form&gt; tag. 4424 Can be overloaded to implement stuff when a client have been connected.
4278 </summary> 4425 </summary>
4279 <param name="name">name of form</param> 4426 <remarks>
4280 <param name="action">action to invoke on submit</param> 4427 Default implementation does nothing.
4281 <param name="isAjax">form should be posted as ajax</param> 4428 </remarks>
4282 <returns>html code</returns> 4429 <param name="client">client that disconnected</param>
4283 <example> 4430 <param name="error">disconnect reason</param>
4284 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
4285 </example>
4286 </member> 4431 </member>
4287 <member name="M:HttpServer.Helpers.WebHelper.Link(System.String,System.String,System.String[])"> 4432 <member name="M:HttpServer.HttpServer.ProcessAuthentication(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
4288 <summary> 4433 <summary>
4289 Create a link tag. 4434 Handle authentication
4290 </summary> 4435 </summary>
4291 <param name="url">url to go to</param> 4436 <param name="request"></param>
4292 <param name="title">link title (text that is displayed)</param> 4437 <param name="response"></param>
4293 <param name="htmlAttributes">html attributes, name, value, name, value</param> 4438 <param name="session"></param>
4294 <returns>html code</returns> 4439 <returns>true if request can be handled; false if not.</returns>
4295 <example> 4440 <exception cref="T:HttpServer.Exceptions.BadRequestException">Invalid authorization header</exception>
4296 WebHelper.Link("/user/show/1", "Show user", "id", "showUser", "onclick", "return confirm('Are you shure?');");
4297 </example>
4298 </member> 4441 </member>
4299 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[])"> 4442 <member name="M:HttpServer.HttpServer.RequestAuthentication(HttpServer.Authentication.AuthenticationModule,HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
4300 <summary> 4443 <summary>
4301 Build a link 4444 Will request authentication.
4302 </summary> 4445 </summary>
4303 <param name="url">url to go to.</param> 4446 <remarks>
4304 <param name="title">title of link (displayed text)</param> 4447 Sends respond to client, nothing else can be done with the response after this.
4305 <param name="htmlAttributes">extra html attributes.</param> 4448 </remarks>
4306 <returns>a complete link</returns> 4449 <param name="mod"></param>
4450 <param name="request"></param>
4451 <param name="response"></param>
4307 </member> 4452 </member>
4308 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[],System.String[])"> 4453 <member name="M:HttpServer.HttpServer.OnRequest(System.Object,HttpServer.RequestEventArgs)">
4309 <summary> 4454 <summary>
4310 Build a link 4455 Received from a <see cref="T:HttpServer.IHttpClientContext"/> when a request have been parsed successfully.
4311 </summary> 4456 </summary>
4312 <param name="url">url to go to.</param> 4457 <param name="source"><see cref="T:HttpServer.IHttpClientContext"/> that received the request.</param>
4313 <param name="title">title of link (displayed text)</param> 4458 <param name="args">The request.</param>
4314 <param name="htmlAttributes">extra html attributes.</param>
4315 <returns>a complete link</returns>
4316 <param name="options">more options</param>
4317 </member> 4459 </member>
4318 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"> 4460 <member name="M:HttpServer.HttpServer.ProcessRequestWrapper(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
4319 <summary> 4461 <summary>
4320 Obsolete 4462 To be able to track request count.
4321 </summary> 4463 </summary>
4322 <param name="name">Obsolete</param> 4464 <param name="context"></param>
4323 <param name="collection">Obsolete</param> 4465 <param name="request"></param>
4324 <param name="getIdTitle">Obsolete</param>
4325 <param name="selectedValue">Obsolete</param>
4326 <param name="firstEmpty">Obsolete</param>
4327 <returns>Obsolete</returns>
4328 </member> 4466 </member>
4329 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"> 4467 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32)">
4330 <summary> 4468 <summary>
4331 Obsolete 4469 Start the web server using regular HTTP.
4332 </summary> 4470 </summary>
4333 <param name="name">Obsolete</param> 4471 <param name="address">IP Address to listen on, use <c>IpAddress.Any </c>to accept connections on all IP addresses/network cards.</param>
4334 <param name="id">Obsolete</param> 4472 <param name="port">Port to listen on. 80 can be a good idea =)</param>
4335 <param name="collection">Obsolete</param> 4473 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
4336 <param name="getIdTitle">Obsolete</param> 4474 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
4337 <param name="selectedValue">Obsolete</param>
4338 <param name="firstEmpty">Obsolete</param>
4339 <returns>Obsolete</returns>
4340 </member> 4475 </member>
4341 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Generic.IEnumerable{System.Object},System.String)"> 4476 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)">
4342 <summary> 4477 <summary>
4343 Render errors into a UL with class "errors" 4478 Accept secure connections.
4344 </summary> 4479 </summary>
4345 <param name="className">class used by UL-tag.</param> 4480 <param name="address">IP Address to listen on, use <see cref="F:System.Net.IPAddress.Any"/> to accept connections on all IP Addresses / network cards.</param>
4346 <param name="theList">items to list</param> 4481 <param name="port">Port to listen on. 80 can be a good idea =)</param>
4347 <returns>an unordered html list.</returns> 4482 <param name="certificate">Certificate to use</param>
4483 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
4484 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
4348 </member> 4485 </member>
4349 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Specialized.NameValueCollection,System.String)"> 4486 <member name="M:HttpServer.HttpServer.Stop">
4350 <summary> 4487 <summary>
4351 Render errors into a UL with class "errors" 4488 shut down the server and listeners
4352 </summary> 4489 </summary>
4353 <param name="className">class used by UL-tag.</param>
4354 <param name="theList">items to list</param>
4355 <returns>an unordered html list.</returns>
4356 </member> 4490 </member>
4357 <member name="M:HttpServer.Helpers.WebHelper.Errors(System.Collections.Specialized.NameValueCollection)"> 4491 <member name="M:HttpServer.HttpServer.WriteLog(HttpServer.LogPrio,System.String)">
4358 <summary> 4492 <summary>
4359 Render errors into a UL with class "errors" 4493 write an entry to the log file
4360 </summary> 4494 </summary>
4361 <param name="errors"></param> 4495 <param name="prio">importance of the message</param>
4362 <returns></returns> 4496 <param name="message">log message</param>
4363 </member> 4497 </member>
4364 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[],System.String[])"> 4498 <member name="M:HttpServer.HttpServer.WriteLog(System.Object,HttpServer.LogPrio,System.String)">
4365 <summary> 4499 <summary>
4366 Generates a list with html attributes. 4500 write an entry to the log file
4367 </summary> 4501 </summary>
4368 <param name="sb">StringBuilder that the options should be added to.</param> 4502 <param name="source">object that wrote the message</param>
4369 <param name="firstOptions">attributes set by user.</param> 4503 <param name="prio">importance of the message</param>
4370 <param name="secondOptions">attributes set by any of the helper classes.</param> 4504 <param name="message">log message</param>
4371 </member> 4505 </member>
4372 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[])"> 4506 <member name="P:HttpServer.HttpServer.Current">
4373 <summary> 4507 <summary>
4374 Generates a list with html attributes. 4508 Server that is handling the current request.
4375 </summary> 4509 </summary>
4376 <param name="sb">StringBuilder that the options should be added to.</param> 4510 <remarks>
4377 <param name="options"></param> 4511 Will be set as soon as a request arrives to the <see cref="T:HttpServer.HttpServer"/> object.
4512 </remarks>
4378 </member> 4513 </member>
4379 <member name="T:HttpServer.ResponseCookie"> 4514 <member name="P:HttpServer.HttpServer.AuthenticationModules">
4380 <summary> 4515 <summary>
4381 cookie being sent back to the browser. 4516 Modules used for authentication. The module that is is added first is used as
4517 the default authentication module.
4382 </summary> 4518 </summary>
4383 <seealso cref="T:HttpServer.ResponseCookie"/> 4519 <remarks>Use the corresponding property
4520 in the <see cref="T:HttpServer.HttpModules.WebSiteModule"/> if you are using multiple websites.</remarks>
4384 </member> 4521 </member>
4385 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime)"> 4522 <member name="P:HttpServer.HttpServer.FormDecoderProviders">
4386 <summary> 4523 <summary>
4387 Constructor. 4524 Form decoder providers are used to decode request body (which normally contains form data).
4388 </summary> 4525 </summary>
4389 <param name="id">cookie identifier</param>
4390 <param name="content">cookie content</param>
4391 <param name="expiresAt">cookie expiration date. Use DateTime.MinValue for session cookie.</param>
4392 <exception cref="T:System.ArgumentNullException">id or content is null</exception>
4393 <exception cref="T:System.ArgumentException">id is empty</exception>
4394 </member> 4526 </member>
4395 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime,System.String,System.String)"> 4527 <member name="P:HttpServer.HttpServer.ServerName">
4396 <summary> 4528 <summary>
4397 Create a new cookie 4529 Server name sent in HTTP responses.
4398 </summary> 4530 </summary>
4399 <param name="name">name identifying the cookie</param> 4531 <remarks>
4400 <param name="value">cookie value</param> 4532 Do NOT include version in name, since it makes it
4401 <param name="expires">when the cookie expires. Setting DateTime.MinValue will delete the cookie when the session is closed.</param> 4533 easier for hackers.
4402 <param name="path">Path to where the cookie is valid</param> 4534 </remarks>
4403 <param name="domain">Domain that the cookie is valid for.</param>
4404 </member> 4535 </member>
4405 <member name="M:HttpServer.ResponseCookie.#ctor(HttpServer.RequestCookie,System.DateTime)"> 4536 <member name="P:HttpServer.HttpServer.SessionCookieName">
4406 <summary> 4537 <summary>
4407 Create a new cookie 4538 Name of cookie where session id is stored.
4408 </summary> 4539 </summary>
4409 <param name="cookie">Name and value will be used</param>
4410 <param name="expires">when the cookie expires.</param>
4411 </member> 4540 </member>
4412 <member name="M:HttpServer.ResponseCookie.ToString"> 4541 <member name="P:HttpServer.HttpServer.LogWriter">
4413 <summary> 4542 <summary>
4414 Gets the cookie HTML representation. 4543 Specified where logging should go.
4415 </summary> 4544 </summary>
4416 <returns>cookie string</returns> 4545 <seealso cref="T:HttpServer.NullLogWriter"/>
4546 <seealso cref="T:HttpServer.ConsoleLogWriter"/>
4547 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
4417 </member> 4548 </member>
4418 <member name="P:HttpServer.ResponseCookie.Expires"> 4549 <member name="P:HttpServer.HttpServer.BackLog">
4419 <summary> 4550 <summary>
4420 When the cookie expires. 4551 Number of connections that can wait to be accepted by the server.
4421 DateTime.MinValue means that the cookie expires when the session do so.
4422 </summary> 4552 </summary>
4553 <remarks>Default is 10.</remarks>
4423 </member> 4554 </member>
4424 <member name="P:HttpServer.ResponseCookie.Path"> 4555 <member name="P:HttpServer.HttpServer.MaxRequestCount">
4425 <summary> 4556 <summary>
4426 Cookie is only valid under this path. 4557 Gets or sets maximum number of allowed simultaneous requests.
4427 </summary> 4558 </summary>
4559 <remarks>
4560 <para>
4561 This property is useful in busy systems. The HTTP server
4562 will start queuing new requests if this limit is hit, instead
4563 of trying to process all incoming requests directly.
4564 </para>
4565 <para>
4566 The default number if allowed simultaneous requests are 10.
4567 </para>
4568 </remarks>
4428 </member> 4569 </member>
4429 <member name="T:HttpServer.IHttpRequest"> 4570 <member name="P:HttpServer.HttpServer.MaxQueueSize">
4430 <summary> 4571 <summary>
4431 Contains server side HTTP request information. 4572 Gets or sets maximum number of requests queuing to be handled.
4432 </summary> 4573 </summary>
4574 <remarks>
4575 <para>
4576 The WebServer will start turning requests away if response code
4577 <see cref="F:System.Net.HttpStatusCode.ServiceUnavailable"/> to indicate that the server
4578 is too busy to be able to handle the request.
4579 </para>
4580 </remarks>
4433 </member> 4581 </member>
4434 <member name="M:HttpServer.IHttpRequest.AddHeader(System.String,System.String)"> 4582 <member name="E:HttpServer.HttpServer.RealmWanted">
4435 <summary> 4583 <summary>
4436 Called during parsing of a <see cref="T:HttpServer.IHttpRequest"/>. 4584 Realms are used during HTTP authentication.
4585 Default realm is same as server name.
4437 </summary> 4586 </summary>
4438 <param name="name">Name of the header, should not be URL encoded</param>
4439 <param name="value">Value of the header, should not be URL encoded</param>
4440 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception>
4441 </member> 4587 </member>
4442 <member name="M:HttpServer.IHttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)"> 4588 <member name="E:HttpServer.HttpServer.ExceptionThrown">
4443 <summary> 4589 <summary>
4444 Add bytes to the body 4590 Let's to receive unhandled exceptions from the threads.
4445 </summary> 4591 </summary>
4446 <param name="bytes">buffer to read bytes from</param> 4592 <remarks>
4447 <param name="offset">where to start read</param> 4593 Exceptions will be thrown during debug mode if this event is not used,
4448 <param name="length">number of bytes to read</param> 4594 exceptions will be printed to console and suppressed during release mode.
4449 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns> 4595 </remarks>
4450 <exception cref="T:System.InvalidOperationException">If body is not writable</exception>
4451 <exception cref="T:System.ArgumentNullException"><c>bytes</c> is null.</exception>
4452 <exception cref="T:System.ArgumentOutOfRangeException"><c>offset</c> is out of range.</exception>
4453 </member> 4596 </member>
4454 <member name="M:HttpServer.IHttpRequest.Clear"> 4597 <member name="T:HttpServer.HttpModules.ResourceFileModule">
4455 <summary> 4598 <summary>
4456 Clear everything in the request 4599 Serves files that are stored in embedded resources.
4457 </summary> 4600 </summary>
4458 </member> 4601 </member>
4459 <member name="M:HttpServer.IHttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)"> 4602 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor">
4460 <summary> 4603 <summary>
4461 Decode body into a form. 4604 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class.
4605 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later
4606 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired.
4462 </summary> 4607 </summary>
4463 <param name="providers">A list with form decoders.</param>
4464 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception>
4465 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception>
4466 </member> 4608 </member>
4467 <member name="M:HttpServer.IHttpRequest.SetCookies(HttpServer.RequestCookies)"> 4609 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor(HttpServer.ILogWriter)">
4468 <summary> 4610 <summary>
4469 Sets the cookies. 4611 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class.
4612 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later
4613 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired.
4470 </summary> 4614 </summary>
4471 <param name="cookies">The cookies.</param> 4615 <param name="logWriter">The log writer to use when logging events</param>
4472 </member> 4616 </member>
4473 <member name="M:HttpServer.IHttpRequest.CreateResponse(HttpServer.IHttpClientContext)"> 4617 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes">
4474 <summary> 4618 <summary>
4475 Create a response object. 4619 Mimtypes that this class can handle per default
4476 </summary> 4620 </summary>
4477 <param name="context">Context for the connected client.</param>
4478 <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns>
4479 </member> 4621 </member>
4480 <member name="P:HttpServer.IHttpRequest.AcceptTypes"> 4622 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddResources(System.String,System.Reflection.Assembly,System.String)">
4481 <summary> 4623 <summary>
4482 Gets kind of types accepted by the client. 4624 Loads resources from a namespace in the given assembly to an uri
4483 </summary> 4625 </summary>
4626 <param name="toUri">The uri to map the resources to</param>
4627 <param name="fromAssembly">The assembly in which the resources reside</param>
4628 <param name="fromNamespace">The namespace from which to load the resources</param>
4629 <usage>
4630 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
4631
4632 will make ie the resource MyLib.Models.User.Views.stylesheet.css accessible via /user/stylesheet.css
4633 </usage>
4634 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns>
4484 </member> 4635 </member>
4485 <member name="P:HttpServer.IHttpRequest.Body"> 4636 <member name="M:HttpServer.HttpModules.ResourceFileModule.CanHandle(HttpServer.IHttpRequest)">
4486 <summary> 4637 <summary>
4487 Gets or sets body stream. 4638 Returns true if the module can handle the request
4488 </summary> 4639 </summary>
4489 </member> 4640 </member>
4490 <member name="P:HttpServer.IHttpRequest.BodyIsComplete"> 4641 <member name="M:HttpServer.HttpModules.ResourceFileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
4491 <summary> 4642 <summary>
4492 Gets whether the body is complete. 4643 Method that process the url
4493 </summary> 4644 </summary>
4645 <param name="request">Information sent by the browser about the request</param>
4646 <param name="response">Information that is being sent back to the client.</param>
4647 <param name="session">Session used to </param>
4648 <returns>true if this module handled the request.</returns>
4494 </member> 4649 </member>
4495 <member name="P:HttpServer.IHttpRequest.Connection"> 4650 <member name="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes">
4496 <summary> 4651 <summary>
4497 Gets or sets kind of connection used for the session. 4652 List with all mime-type that are allowed.
4498 </summary> 4653 </summary>
4654 <remarks>All other mime types will result in a Forbidden http status code.</remarks>
4499 </member> 4655 </member>
4500 <member name="P:HttpServer.IHttpRequest.ContentLength"> 4656 <member name="T:HttpServer.Helpers.ResourceInfo">
4501 <summary> 4657 <summary>
4502 Gets or sets number of bytes in the body. 4658 Container to bind resource names to assemblies
4503 </summary> 4659 </summary>
4504 </member> 4660 </member>
4505 <member name="P:HttpServer.IHttpRequest.Cookies"> 4661 <member name="M:HttpServer.Helpers.ResourceInfo.#ctor(System.String,System.String,System.Reflection.Assembly)">
4506 <summary> 4662 <summary>
4507 Gets cookies that was sent with the request. 4663 Instantiates an instance of <see cref="T:HttpServer.Helpers.ResourceInfo"/>
4508 </summary> 4664 </summary>
4665 <param name="uri">The dot seperated uri the resource maps to</param>
4666 <param name="resourceName">The full resource name</param>
4667 <param name="assembly">The assembly the resource exists in</param>
4509 </member> 4668 </member>
4510 <member name="P:HttpServer.IHttpRequest.Form"> 4669 <member name="M:HttpServer.Helpers.ResourceInfo.GetStream">
4511 <summary> 4670 <summary>
4512 Gets form parameters. 4671 Retrieves a stream to the resource
4513 </summary> 4672 </summary>
4673 <returns>Null if the resource couldn't be located somehow</returns>
4514 </member> 4674 </member>
4515 <member name="P:HttpServer.IHttpRequest.Headers"> 4675 <member name="P:HttpServer.Helpers.ResourceInfo.Assembly">
4516 <summary> 4676 <summary>
4517 Gets headers sent by the client. 4677 Retrieves the assembly the resource resides in
4518 </summary> 4678 </summary>
4519 </member> 4679 </member>
4520 <member name="P:HttpServer.IHttpRequest.HttpVersion"> 4680 <member name="P:HttpServer.Helpers.ResourceInfo.Uri">
4521 <summary> 4681 <summary>
4522 Gets or sets version of HTTP protocol that's used. 4682 Retrieves the full name/path of the assembly
4523 </summary> 4683 </summary>
4524 <remarks>
4525 Probably <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/>.
4526 </remarks>
4527 <seealso cref="T:HttpServer.HttpHelper"/>
4528 </member> 4684 </member>
4529 <member name="P:HttpServer.IHttpRequest.IsAjax"> 4685 <member name="P:HttpServer.Helpers.ResourceInfo.Extension">
4530 <summary> 4686 <summary>
4531 Gets whether the request was made by Ajax (Asynchronous JavaScript) 4687 Retrieves the extension of the resource
4532 </summary> 4688 </summary>
4533 </member> 4689 </member>
4534 <member name="P:HttpServer.IHttpRequest.Method"> 4690 <member name="P:HttpServer.Helpers.ResourceInfo.ExtensionLessUri">
4535 <summary> 4691 <summary>Returns the Uri without extension</summary>
4536 Gets or sets requested method.
4537 </summary>
4538 <remarks>
4539 Will always be in upper case.
4540 </remarks>
4541 <see cref="P:HttpServer.IHttpRequest.Method"/>
4542 </member> 4692 </member>
4543 <member name="P:HttpServer.IHttpRequest.Param"> 4693 <member name="P:HttpServer.Helpers.ResourceInfo.ResourceName">
4544 <summary> 4694 <summary>Retrieves the full path name to the resource file</summary>
4545 Gets parameter from <see cref="P:HttpServer.IHttpRequest.QueryString"/> or <see cref="P:HttpServer.IHttpRequest.Form"/>.
4546 </summary>
4547 </member> 4695 </member>
4548 <member name="P:HttpServer.IHttpRequest.QueryString"> 4696 <member name="T:HttpServer.Helpers.FormHelper">
4549 <summary> 4697 <summary>
4550 Gets variables sent in the query string 4698 Helpers making it easier to work with forms.
4551 </summary> 4699 </summary>
4700 <seealso cref="T:HttpServer.Helpers.ObjectForm"/>
4552 </member> 4701 </member>
4553 <member name="P:HttpServer.IHttpRequest.Uri"> 4702 <member name="F:HttpServer.Helpers.FormHelper.JSImplementation">
4554 <summary> 4703 <summary>
4555 Gets or sets requested URI. 4704 Used to let the website use different JavaScript libraries.
4705 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/>
4556 </summary> 4706 </summary>
4557 </member> 4707 </member>
4558 <member name="P:HttpServer.IHttpRequest.UriParts"> 4708 <member name="M:HttpServer.Helpers.FormHelper.Start(System.String,System.String,System.Boolean,System.String[])">
4559 <summary> 4709 <summary>
4560 Gets URI absolute path divided into parts. 4710 Create a &lt;form&gt; tag.
4561 </summary> 4711 </summary>
4712 <param name="id">name of form</param>
4713 <param name="action">action to invoke on submit</param>
4714 <param name="isAjax">form should be posted as Ajax</param>
4715 <returns>HTML code</returns>
4562 <example> 4716 <example>
4563 // URI is: http://gauffin.com/code/tiny/ 4717 <code>
4564 Console.WriteLine(request.UriParts[0]); // result: code 4718 // without options
4565 Console.WriteLine(request.UriParts[1]); // result: tiny 4719 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
4720
4721 // with options
4722 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax, "style", "display:inline", "class", "greenForm");
4723 </code>
4566 </example> 4724 </example>
4567 <remarks> 4725 <param name="options">HTML attributes or JavaScript options.</param>
4568 If you're using controllers than the first part is controller name, 4726 <remarks>Method will ALWAYS be POST.</remarks>
4569 the second part is method name and the third part is Id property. 4727 <exception cref="T:System.ArgumentException">options must consist of name, value, name, value</exception>
4570 </remarks>
4571 <seealso cref="P:HttpServer.IHttpRequest.Uri"/>
4572 </member> 4728 </member>
4573 <member name="P:HttpServer.IHttpRequest.UriPath"> 4729 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
4574 <summary> 4730 <summary>
4575 Gets or sets path and query. 4731 Creates a select list with the values in a collection.
4576 </summary> 4732 </summary>
4577 <see cref="P:HttpServer.IHttpRequest.Uri"/> 4733 <param name="name">Name of the SELECT-tag</param>
4578 <remarks> 4734 <param name="collection">collection used to generate options.</param>
4579 Are only used during request parsing. Cannot be set after "Host" header have been 4735 <param name="getIdTitle">delegate used to return id and title from objects.</param>
4580 added. 4736 <param name="selectedValue">value that should be marked as selected.</param>
4581 </remarks> 4737 <param name="firstEmpty">First row should contain an empty value.</param>
4738 <returns>string containing a SELECT-tag.</returns>
4739 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
4582 </member> 4740 </member>
4583 <member name="T:HttpServer.Helpers.GetIdTitle"> 4741 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
4584 <summary> 4742 <summary>
4585 Delegate used by <see cref="M:HttpServer.Helpers.FormHelper.Select(System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"/> to populate select options. 4743 Creates a select list with the values in a collection.
4586 </summary> 4744 </summary>
4587 <param name="obj">current object (for instance a User).</param> 4745 <param name="name">Name of the SELECT-tag</param>
4588 <param name="id">Text that should be displayed in the value part of a &lt;optiongt;-tag.</param> 4746 <param name="id">Id of the SELECT-tag</param>
4589 <param name="title">Text shown in the select list.</param> 4747 <param name="collection">collection used to generate options.</param>
4748 <param name="getIdTitle">delegate used to return id and title from objects.</param>
4749 <param name="selectedValue">value that should be marked as selected.</param>
4750 <param name="firstEmpty">First row should contain an empty value.</param>
4751 <returns>string containing a SELECT-tag.</returns>
4752 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
4590 <example> 4753 <example>
4754 <code>
4591 // Class that is going to be used in a SELECT-tag. 4755 // Class that is going to be used in a SELECT-tag.
4592 public class User 4756 public class User
4593 { 4757 {
@@ -4640,817 +4804,653 @@
4640 User user = (User)o; 4804 User user = (User)o;
4641 id = user.Id; 4805 id = user.Id;
4642 value = user.RealName; 4806 value = user.RealName;
4643 } /// </example> 4807 }
4644 </member> 4808 </code>
4645 <member name="T:HttpServer.Exceptions.UnauthorizedException"> 4809 </example>
4646 <summary> 4810 <exception cref="T:System.ArgumentNullException"><c>name</c>, <c>id</c>, <c>collection</c> or <c>getIdTitle</c> is null.</exception>
4647 The request requires user authentication. The response MUST include a
4648 WWW-Authenticate header field (section 14.47) containing a challenge
4649 applicable to the requested resource.
4650
4651 The client MAY repeat the request with a suitable Authorization header
4652 field (section 14.8). If the request already included Authorization
4653 credentials, then the 401 response indicates that authorization has been
4654 refused for those credentials. If the 401 response contains the same challenge
4655 as the prior response, and the user agent has already attempted authentication
4656 at least once, then the user SHOULD be presented the entity that was given in the response,
4657 since that entity might include relevant diagnostic information.
4658
4659 HTTP access authentication is explained in rfc2617:
4660 http://www.ietf.org/rfc/rfc2617.txt
4661
4662 (description is taken from
4663 http://www.submissionchamber.com/help-guides/error-codes.php#sec10.4.2)
4664 </summary>
4665 </member>
4666 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor">
4667 <summary>
4668 Create a new unauhtorized exception.
4669 </summary>
4670 <seealso cref="T:HttpServer.Exceptions.UnauthorizedException"/>
4671 </member>
4672 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor(System.String,System.Exception)">
4673 <summary>
4674 Create a new unauhtorized exception.
4675 </summary>
4676 <param name="message">reason to why the request was unauthorized.</param>
4677 <param name="inner">inner exception</param>
4678 </member>
4679 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor(System.String)">
4680 <summary>
4681 Create a new unauhtorized exception.
4682 </summary>
4683 <param name="message">reason to why the request was unauthorized.</param>
4684 </member> 4811 </member>
4685 <member name="T:HttpServer.Exceptions.NotFoundException"> 4812 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean,System.String[])">
4686 <summary> 4813 <summary>
4687 The requested resource was not found in the web server. 4814 Creates a select list with the values in a collection.
4688 </summary> 4815 </summary>
4816 <param name="name">Name of the SELECT-tag</param>
4817 <param name="id">Id of the SELECT-tag</param>
4818 <param name="collection">collection used to generate options.</param>
4819 <param name="getIdTitle">delegate used to return id and title from objects.</param>
4820 <param name="selectedValue">value that should be marked as selected.</param>
4821 <param name="firstEmpty">First row should contain an empty value.</param>
4822 <param name="htmlAttributes">name, value collection of extra HTML attributes.</param>
4823 <returns>string containing a SELECT-tag.</returns>
4824 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
4825 <exception cref="T:System.ArgumentNullException"><c>name</c>, <c>id</c>, <c>collection</c> or <c>getIdTitle</c> is null.</exception>
4826 <exception cref="T:System.ArgumentException">Invalid HTML attribute list.</exception>
4689 </member> 4827 </member>
4690 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String,System.Exception)"> 4828 <member name="M:HttpServer.Helpers.FormHelper.Options(System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
4691 <summary> 4829 <summary>
4692 Create a new exception 4830 Generate a list of HTML options
4693 </summary> 4831 </summary>
4694 <param name="message">message describing the error</param> 4832 <param name="collection">collection used to generate options.</param>
4695 <param name="inner">inner exception</param> 4833 <param name="getIdTitle">delegate used to return id and title from objects.</param>
4834 <param name="selectedValue">value that should be marked as selected.</param>
4835 <param name="firstEmpty">First row should contain an empty value.</param>
4836 <returns></returns>
4837 <exception cref="T:System.ArgumentNullException"><c>collection</c> or <c>getIdTitle</c> is null.</exception>
4696 </member> 4838 </member>
4697 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String)"> 4839 <member name="M:HttpServer.Helpers.FormHelper.Options(System.Text.StringBuilder,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
4698 <summary> 4840 <exception cref="T:System.ArgumentNullException"><c>sb</c> is null.</exception>
4699 Create a new exception
4700 </summary>
4701 <param name="message">message describing the error</param>
4702 </member> 4841 </member>
4703 <member name="T:HttpServer.ConnectionType"> 4842 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.Object,System.Object,System.String[])">
4704 <summary> 4843 <summary>
4705 Type of HTTP connection 4844 Creates a check box.
4706 </summary> 4845 </summary>
4846 <param name="name">element name</param>
4847 <param name="value">element value</param>
4848 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the
4849 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
4850 the box is checked or not. </param>
4851 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
4852 <returns>a generated radio button</returns>
4707 </member> 4853 </member>
4708 <member name="F:HttpServer.ConnectionType.Close"> 4854 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.String,System.Object,System.Object,System.String[])">
4709 <summary> 4855 <summary>
4710 Connection is closed after each request-response 4856 Creates a check box.
4711 </summary> 4857 </summary>
4858 <param name="name">element name</param>
4859 <param name="id">element id</param>
4860 <param name="value">element value</param>
4861 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the
4862 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
4863 the box is checked or not. </param>
4864 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
4865 <returns>a generated radio button</returns>
4866 <remarks>
4867 value in your business object. (check box will be selected if it matches the element value)
4868 </remarks>
4712 </member> 4869 </member>
4713 <member name="F:HttpServer.ConnectionType.KeepAlive"> 4870 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.String,System.Object,System.String[])">
4714 <summary> 4871 <summary>
4715 Connection is kept alive for X seconds (unless another request have been made) 4872 Creates a check box.
4716 </summary> 4873 </summary>
4874 <param name="name">element name</param>
4875 <param name="id">element id</param>
4876 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the
4877 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
4878 the box is checked or not. </param>
4879 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
4880 <returns>a generated radio button</returns>
4881 <remarks>will set value to "1".</remarks>
4717 </member> 4882 </member>
4718 <member name="T:HttpServer.DisconnectedEventArgs"> 4883 <member name="M:HttpServer.Helpers.FormHelper.RadioButton(System.String,System.Object,System.Object,System.String[])">
4719 <summary> 4884 <summary>
4720 A <see cref="T:HttpServer.IHttpClientContext"/> have been disconnected. 4885 Creates a RadioButton.
4721 </summary> 4886 </summary>
4887 <param name="name">element name</param>
4888 <param name="value">element value</param>
4889 <param name="isSelected">determines if the radio button is selected or not. This is done differently depending on the
4890 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
4891 the box is checked or not. </param>
4892 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
4893 <returns>a generated radio button</returns>
4722 </member> 4894 </member>
4723 <member name="M:HttpServer.DisconnectedEventArgs.#ctor(System.Net.Sockets.SocketError)"> 4895 <member name="M:HttpServer.Helpers.FormHelper.RadioButton(System.String,System.String,System.Object,System.Object,System.String[])">
4724 <summary> 4896 <summary>
4725 Initializes a new instance of the <see cref="T:HttpServer.DisconnectedEventArgs"/> class. 4897 Creates a RadioButton.
4726 </summary> 4898 </summary>
4727 <param name="error">Reason to disconnection.</param> 4899 <param name="name">element name</param>
4900 <param name="id">element id</param>
4901 <param name="value">element value</param>
4902 <param name="isSelected">determines if the radio button is selected or not. This is done differently depending on the
4903 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
4904 the box is checked or not. </param>
4905 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
4906 <returns>a generated radio button</returns>
4728 </member> 4907 </member>
4729 <member name="P:HttpServer.DisconnectedEventArgs.Error"> 4908 <member name="M:HttpServer.Helpers.FormHelper.End">
4730 <summary> 4909 <summary>
4731 Gets reason to why client disconnected. 4910 form close tag
4732 </summary> 4911 </summary>
4912 <returns></returns>
4733 </member> 4913 </member>
4734 <member name="T:HttpServer.RequestEventArgs"> 4914 <member name="M:HttpServer.ComponentProvider.AddInstance``1(System.Object)">
4735 <summary> 4915 <summary>
4736 4916 Add a component instance
4737 </summary> 4917 </summary>
4918 <typeparam name="T">Interface type</typeparam>
4919 <param name="instance">Instance to add</param>
4738 </member> 4920 </member>
4739 <member name="M:HttpServer.RequestEventArgs.#ctor(HttpServer.IHttpRequest)"> 4921 <member name="M:HttpServer.ComponentProvider.Get``1">
4740 <summary> 4922 <summary>
4741 Initializes a new instance of the <see cref="T:HttpServer.RequestEventArgs"/> class. 4923 Get a component.
4742 </summary> 4924 </summary>
4743 <param name="request">The request.</param> 4925 <typeparam name="T">Interface type</typeparam>
4926 <returns>Component if registered, otherwise null.</returns>
4927 <remarks>
4928 Component will get created if needed.
4929 </remarks>
4744 </member> 4930 </member>
4745 <member name="P:HttpServer.RequestEventArgs.Request"> 4931 <member name="M:HttpServer.ComponentProvider.Create(HttpServer.ComponentProvider.TypeInformation)">
4746 <summary> 4932 <exception cref="T:System.InvalidOperationException">If instance cannot be created.</exception>
4747 Gets received request.
4748 </summary>
4749 </member> 4933 </member>
4750 <member name="T:HttpServer.HttpRequest"> 4934 <member name="M:HttpServer.ComponentProvider.Contains(System.Type)">
4751 <summary> 4935 <summary>
4752 Contains server side HTTP request information. 4936 Checks if the specified component interface have been added.
4753 </summary> 4937 </summary>
4938 <param name="interfaceType"></param>
4939 <returns>true if found; otherwise false.</returns>
4754 </member> 4940 </member>
4755 <member name="F:HttpServer.HttpRequest.UriSplitters"> 4941 <member name="M:HttpServer.ComponentProvider.Add``2">
4756 <summary> 4942 <summary>
4757 Chars used to split an URL path into multiple parts. 4943 Add a component.
4758 </summary> 4944 </summary>
4945 <typeparam name="InterfaceType">Type being requested.</typeparam>
4946 <typeparam name="InstanceType">Type being created.</typeparam>
4947 <exception cref="T:System.InvalidOperationException">Type have already been mapped.</exception>
4759 </member> 4948 </member>
4760 <member name="M:HttpServer.HttpRequest.AssignForm(HttpServer.HttpForm)"> 4949 <member name="T:HttpServer.Sessions.MemorySessionStore">
4761 <summary> 4950 <summary>
4762 Assign a form. 4951 Session store using memory for each session.
4763 </summary> 4952 </summary>
4764 <param name="form"></param>
4765 </member> 4953 </member>
4766 <member name="M:HttpServer.HttpRequest.Clone"> 4954 <member name="M:HttpServer.Sessions.MemorySessionStore.#ctor">
4767 <summary> 4955 <summary>
4768 Creates a new object that is a copy of the current instance. 4956 Initializes the class setting the expirationtimer to clean the session every minute
4769 </summary> 4957 </summary>
4770
4771 <returns>
4772 A new object that is a copy of this instance.
4773 </returns>
4774 <filterpriority>2</filterpriority>
4775 </member> 4958 </member>
4776 <member name="M:HttpServer.HttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)"> 4959 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup(System.Object)">
4777 <summary> 4960 <summary>
4778 Decode body into a form. 4961 Delegate for the cleanup timer
4779 </summary> 4962 </summary>
4780 <param name="providers">A list with form decoders.</param>
4781 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception>
4782 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception>
4783 </member> 4963 </member>
4784 <member name="M:HttpServer.HttpRequest.SetCookies(HttpServer.RequestCookies)"> 4964 <member name="M:HttpServer.Sessions.MemorySessionStore.Create">
4785 <summary> 4965 <summary>
4786 Cookies 4966 Creates a new http session
4787 </summary> 4967 </summary>
4788 <param name="cookies">the cookies</param> 4968 <returns></returns>
4789 </member> 4969 </member>
4790 <member name="M:HttpServer.HttpRequest.CreateResponse(HttpServer.IHttpClientContext)"> 4970 <member name="M:HttpServer.Sessions.MemorySessionStore.Create(System.String)">
4791 <summary> 4971 <summary>
4792 Create a response object. 4972 Creates a new http session with a specific id
4793 </summary> 4973 </summary>
4794 <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns> 4974 <param name="id">Id used to identify the new cookie..</param>
4975 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns>
4976 <remarks>
4977 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>.
4978 </remarks>
4795 </member> 4979 </member>
4796 <member name="M:HttpServer.HttpRequest.AddHeader(System.String,System.String)"> 4980 <member name="M:HttpServer.Sessions.MemorySessionStore.Load(System.String)">
4797 <summary> 4981 <summary>
4798 Called during parsing of a <see cref="T:HttpServer.IHttpRequest"/>. 4982 Load an existing session.
4799 </summary> 4983 </summary>
4800 <param name="name">Name of the header, should not be URL encoded</param> 4984 <param name="sessionId"></param>
4801 <param name="value">Value of the header, should not be URL encoded</param> 4985 <returns></returns>
4802 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception>
4803 </member> 4986 </member>
4804 <member name="M:HttpServer.HttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)"> 4987 <member name="M:HttpServer.Sessions.MemorySessionStore.Save(HttpServer.Sessions.IHttpSession)">
4805 <summary> 4988 <summary>
4806 Add bytes to the body 4989 Save an updated session to the store.
4807 </summary> 4990 </summary>
4808 <param name="bytes">buffer to read bytes from</param> 4991 <param name="session"></param>
4809 <param name="offset">where to start read</param>
4810 <param name="length">number of bytes to read</param>
4811 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns>
4812 <exception cref="T:System.InvalidOperationException">If body is not writable</exception>
4813 <exception cref="T:System.ArgumentNullException"><c>bytes</c> is null.</exception>
4814 <exception cref="T:System.ArgumentOutOfRangeException"><c>offset</c> is out of range.</exception>
4815 </member> 4992 </member>
4816 <member name="M:HttpServer.HttpRequest.Clear"> 4993 <member name="M:HttpServer.Sessions.MemorySessionStore.AddUnused(HttpServer.Sessions.IHttpSession)">
4817 <summary> 4994 <summary>
4818 Clear everything in the request 4995 We use the flyweight pattern which reuses small objects
4996 instead of creating new each time.
4819 </summary> 4997 </summary>
4998 <param name="session">EmptyLanguageNode (unused) session that should be reused next time Create is called.</param>
4820 </member> 4999 </member>
4821 <member name="P:HttpServer.HttpRequest.Secure"> 5000 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup">
4822 <summary> 5001 <summary>
4823 Gets or sets a value indicating whether this <see cref="T:HttpServer.HttpRequest"/> is secure. 5002 Remove expired sessions
4824 </summary> 5003 </summary>
4825 </member> 5004 </member>
4826 <member name="P:HttpServer.HttpRequest.UriPath"> 5005 <member name="M:HttpServer.Sessions.MemorySessionStore.Remove(System.String)">
4827 <summary> 5006 <summary>
4828 Path and query (will be merged with the host header) and put in Uri 5007 Remove a session
4829 </summary> 5008 </summary>
4830 <see cref="P:HttpServer.HttpRequest.Uri"/> 5009 <param name="sessionId">id of the session.</param>
4831 </member> 5010 </member>
4832 <member name="P:HttpServer.HttpRequest.BodyIsComplete"> 5011 <member name="P:HttpServer.Sessions.MemorySessionStore.Item(System.String)">
4833 <summary> 5012 <summary>
4834 Gets whether the body is complete. 5013 Load a session from the store
4835 </summary> 5014 </summary>
5015 <param name="sessionId"></param>
5016 <returns>null if session is not found.</returns>
4836 </member> 5017 </member>
4837 <member name="P:HttpServer.HttpRequest.AcceptTypes"> 5018 <member name="P:HttpServer.Sessions.MemorySessionStore.ExpireTime">
4838 <summary> 5019 <summary>
4839 Gets kind of types accepted by the client. 5020 Number of minutes before a session expires.
5021 Default is 20 minutes.
4840 </summary> 5022 </summary>
4841 </member> 5023 </member>
4842 <member name="P:HttpServer.HttpRequest.Body"> 5024 <member name="T:HttpServer.RequestQueue">
4843 <summary> 5025 <summary>
4844 Gets or sets body stream. 5026 Used to queue incoming requests.
4845 </summary> 5027 </summary>
4846 </member> 5028 </member>
4847 <member name="P:HttpServer.HttpRequest.Connection"> 5029 <member name="M:HttpServer.RequestQueue.#ctor(HttpServer.ProcessRequestHandler)">
4848 <summary> 5030 <summary>
4849 Gets or sets kind of connection used for the session. 5031 Initializes a new instance of the <see cref="T:HttpServer.RequestQueue"/> class.
4850 </summary> 5032 </summary>
5033 <param name="handler">Called when a request should be processed.</param>
4851 </member> 5034 </member>
4852 <member name="P:HttpServer.HttpRequest.ContentLength"> 5035 <member name="M:HttpServer.RequestQueue.QueueThread">
4853 <summary> 5036 <summary>
4854 Gets or sets number of bytes in the body. 5037 Used to process queued requests.
4855 </summary> 5038 </summary>
4856 </member> 5039 </member>
4857 <member name="P:HttpServer.HttpRequest.Headers"> 5040 <member name="P:HttpServer.RequestQueue.MaxRequestCount">
4858 <summary> 5041 <summary>
4859 Gets headers sent by the client. 5042 Gets or sets maximum number of allowed simultaneous requests.
4860 </summary> 5043 </summary>
4861 </member> 5044 </member>
4862 <member name="P:HttpServer.HttpRequest.HttpVersion"> 5045 <member name="P:HttpServer.RequestQueue.MaxQueueSize">
4863 <summary> 5046 <summary>
4864 Gets or sets version of HTTP protocol that's used. 5047 Gets or sets maximum number of requests queuing to be handled.
4865 </summary> 5048 </summary>
4866 <remarks>
4867 Probably <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/>.
4868 </remarks>
4869 <seealso cref="T:HttpServer.HttpHelper"/>
4870 </member> 5049 </member>
4871 <member name="P:HttpServer.HttpRequest.Method"> 5050 <member name="P:HttpServer.RequestQueue.CurrentRequestCount">
4872 <summary> 5051 <summary>
4873 Gets or sets requested method. 5052 Specifies how many requests the HTTP server is currently processing.
4874 </summary> 5053 </summary>
4875 <value></value>
4876 <remarks>
4877 Will always be in upper case.
4878 </remarks>
4879 <see cref="!:HttpServer.Method"/>
4880 </member> 5054 </member>
4881 <member name="P:HttpServer.HttpRequest.QueryString"> 5055 <member name="T:HttpServer.RequestQueue.QueueItem">
4882 <summary> 5056 <summary>
4883 Gets variables sent in the query string 5057 Used two queue incoming requests to avoid
5058 thread starvation.
4884 </summary> 5059 </summary>
4885 </member> 5060 </member>
4886 <member name="P:HttpServer.HttpRequest.Uri"> 5061 <member name="T:HttpServer.ProcessRequestHandler">
4887 <summary> 5062 <summary>
4888 Gets or sets requested URI. 5063 Method used to process a queued request
4889 </summary> 5064 </summary>
5065 <param name="context">Context that the request was received from.</param>
5066 <param name="request">Request to process.</param>
4890 </member> 5067 </member>
4891 <member name="P:HttpServer.HttpRequest.UriParts"> 5068 <member name="T:HttpServer.HttpResponse">
4892 <summary> 5069 <summary>
4893 Uri absolute path splitted into parts. 5070 Response that is sent back to the web browser / client.
4894 </summary> 5071 </summary>
4895 <example>
4896 // uri is: http://gauffin.com/code/tiny/
4897 Console.WriteLine(request.UriParts[0]); // result: code
4898 Console.WriteLine(request.UriParts[1]); // result: tiny
4899 </example>
4900 <remarks> 5072 <remarks>
4901 If you're using controllers than the first part is controller name, 5073 <para>
4902 the second part is method name and the third part is Id property. 5074 A response can be sent if different ways. The easiest one is
5075 to just fill the Body stream with content, everything else
5076 will then be taken care of by the framework. The default content-type
5077 is text/html, you should change it if you send anything else.
5078 </para><para>
5079 The second and slightly more complex way is to send the response
5080 as parts. Start with sending the header using the SendHeaders method and
5081 then you can send the body using SendBody method, but do not forget
5082 to set <see cref="P:HttpServer.HttpResponse.ContentType"/> and <see cref="P:HttpServer.HttpResponse.ContentLength"/> before doing so.
5083 </para>
4903 </remarks> 5084 </remarks>
4904 <seealso cref="P:HttpServer.HttpRequest.Uri"/>
4905 </member>
4906 <member name="P:HttpServer.HttpRequest.Param">
4907 <summary>
4908 Gets parameter from <see cref="P:HttpServer.HttpRequest.QueryString"/> or <see cref="P:HttpServer.HttpRequest.Form"/>.
4909 </summary>
4910 </member>
4911 <member name="P:HttpServer.HttpRequest.Form">
4912 <summary>
4913 Gets form parameters.
4914 </summary>
4915 </member>
4916 <member name="P:HttpServer.HttpRequest.IsAjax">
4917 <summary>
4918 Gets whether the request was made by Ajax (Asynchronous JavaScript)
4919 </summary>
4920 </member>
4921 <member name="P:HttpServer.HttpRequest.Cookies">
4922 <summary>
4923 Gets cookies that was sent with the request.
4924 </summary>
4925 </member>
4926 <member name="T:HttpServer.HttpInputItem">
4927 <summary>
4928 represents a HTTP input item. Each item can have multiple sub items, a sub item
4929 is made in a HTML form by using square brackets
4930 </summary>
4931 <example> 5085 <example>
4932 // <input type="text" name="user[FirstName]" value="jonas" /> becomes: 5086 <code>
4933 Console.WriteLine("Value: {0}", form["user"]["FirstName"].Value); 5087 // Example using response body.
4934 </example> 5088 class MyModule : HttpModule
4935 <remarks> 5089 {
4936 All names in a form SHOULD be in lowercase. 5090 public override bool Process(IHttpRequest request, IHttpResponse response, IHttpSession session)
4937 </remarks> 5091 {
4938 </member> 5092 StreamWriter writer = new StreamWriter(response.Body);
4939 <member name="F:HttpServer.HttpInputItem.Empty"> 5093 writer.WriteLine("Hello dear World!");
4940 <summary> Representation of a non-initialized <see cref="T:HttpServer.HttpInputItem"/>.</summary> 5094 writer.Flush();
4941 </member>
4942 <member name="M:HttpServer.HttpInputItem.#ctor(System.String,System.String)">
4943 <summary>
4944 Initializes an input item setting its name/identifier and value
4945 </summary>
4946 <param name="name">Parameter name/id</param>
4947 <param name="value">Parameter value</param>
4948 </member>
4949 <member name="M:HttpServer.HttpInputItem.#ctor(HttpServer.HttpInputItem)">
4950 <summary>Creates a deep copy of the item specified</summary>
4951 <param name="item">The item to copy</param>
4952 <remarks>The function makes a deep copy of quite a lot which can be slow</remarks>
4953 </member>
4954 <member name="M:HttpServer.HttpInputItem.Add(System.String)">
4955 <summary>
4956 Add another value to this item
4957 </summary>
4958 <param name="value">Value to add.</param>
4959 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception>
4960 </member>
4961 <member name="M:HttpServer.HttpInputItem.Contains(System.String)">
4962 <summary>
4963 checks if a sub-item exists (and has a value).
4964 </summary>
4965 <param name="name">name in lower case</param>
4966 <returns>true if the sub-item exists and has a value; otherwise false.</returns>
4967 </member>
4968 <member name="M:HttpServer.HttpInputItem.ToString">
4969 <summary> Returns a formatted representation of the instance with the values of all contained parameters </summary>
4970 </member>
4971 <member name="M:HttpServer.HttpInputItem.ToString(System.String,System.Boolean)">
4972 <summary>
4973 Outputs the string in a formatted manner
4974 </summary>
4975 <param name="prefix">A prefix to append, used internally</param>
4976 <param name="asQuerySting">produce a query string</param>
4977 </member>
4978 <member name="M:HttpServer.HttpInputItem.Add(System.String,System.String)">
4979 <summary>
4980 Add a sub item.
4981 </summary>
4982 <param name="name">Can contain array formatting, the item is then parsed and added in multiple levels</param>
4983 <param name="value">Value to add.</param>
4984 <exception cref="T:System.ArgumentNullException">Argument is null.</exception>
4985 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception>
4986 </member>
4987 <member name="M:HttpServer.HttpInputItem.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator">
4988 <summary>
4989 Returns an enumerator that iterates through the collection.
4990 </summary>
4991
4992 <returns>
4993 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
4994 </returns>
4995 <filterpriority>1</filterpriority>
4996 </member>
4997 <member name="M:HttpServer.HttpInputItem.GetEnumerator">
4998 <summary>
4999 Returns an enumerator that iterates through a collection.
5000 </summary>
5001 5095
5002 <returns> 5096 // return true to tell webserver that we've handled the url
5003 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection. 5097 return true;
5004 </returns> 5098 }
5005 <filterpriority>2</filterpriority> 5099 }
5006 </member> 5100 </code>
5007 <member name="M:HttpServer.HttpInputItem.ToString(System.String)"> 5101 </example>
5008 <summary> 5102 todo: add two examples, using SendHeaders/SendBody and just the Body stream.
5009 Outputs the string in a formatted manner
5010 </summary>
5011 <param name="prefix">A prefix to append, used internally</param>
5012 <returns></returns>
5013 </member>
5014 <member name="P:HttpServer.HttpInputItem.Count">
5015 <summary>
5016 Number of values
5017 </summary>
5018 </member> 5103 </member>
5019 <member name="P:HttpServer.HttpInputItem.Item(System.String)"> 5104 <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
5020 <summary> 5105 <summary>
5021 Get a sub item 5106 Initializes a new instance of the <see cref="T:HttpServer.IHttpResponse"/> class.
5022 </summary> 5107 </summary>
5023 <param name="name">name in lower case.</param> 5108 <param name="context">Client that send the <see cref="T:HttpServer.IHttpRequest"/>.</param>
5024 <returns><see cref="F:HttpServer.HttpInputItem.Empty"/> if no item was found.</returns> 5109 <param name="request">Contains information of what the client want to receive.</param>
5110 <exception cref="T:System.ArgumentException"><see cref="P:HttpServer.IHttpRequest.HttpVersion"/> cannot be empty.</exception>
5025 </member> 5111 </member>
5026 <member name="P:HttpServer.HttpInputItem.Name"> 5112 <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,System.String,HttpServer.ConnectionType)">
5027 <summary> 5113 <summary>
5028 Name of item (in lower case). 5114 Initializes a new instance of the <see cref="T:HttpServer.IHttpResponse"/> class.
5029 </summary> 5115 </summary>
5116 <param name="context">Client that send the <see cref="T:HttpServer.IHttpRequest"/>.</param>
5117 <param name="httpVersion">Version of HTTP protocol that the client uses.</param>
5118 <param name="connectionType">Type of HTTP connection used.</param>
5030 </member> 5119 </member>
5031 <member name="P:HttpServer.HttpInputItem.Value"> 5120 <member name="M:HttpServer.HttpResponse.AddHeader(System.String,System.String)">
5032 <summary> 5121 <summary>
5033 Returns the first value, or null if no value exist. 5122 Add another header to the document.
5034 </summary> 5123 </summary>
5124 <param name="name">Name of the header, case sensitive, use lower cases.</param>
5125 <param name="value">Header values can span over multiple lines as long as each line starts with a white space. New line chars should be \r\n</param>
5126 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
5127 <exception cref="T:System.ArgumentException">If value conditions have not been met.</exception>
5128 <remarks>Adding any header will override the default ones and those specified by properties.</remarks>
5035 </member> 5129 </member>
5036 <member name="P:HttpServer.HttpInputItem.LastValue"> 5130 <member name="M:HttpServer.HttpResponse.Send">
5037 <summary> 5131 <summary>
5038 Returns the last value, or null if no value exist. 5132 Send headers and body to the browser.
5039 </summary> 5133 </summary>
5134 <exception cref="T:System.InvalidOperationException">If content have already been sent.</exception>
5040 </member> 5135 </member>
5041 <member name="P:HttpServer.HttpInputItem.Values"> 5136 <member name="M:HttpServer.HttpResponse.SendBody(System.Byte[],System.Int32,System.Int32)">
5042 <summary> 5137 <summary>
5043 Returns the list with values. 5138 Make sure that you have specified <see cref="P:HttpServer.HttpResponse.ContentLength"/> and sent the headers first.
5044 </summary> 5139 </summary>
5140 <param name="buffer"></param>
5141 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
5142 <see cref="M:HttpServer.HttpResponse.SendHeaders"/>
5143 <param name="offset">offset of first byte to send</param>
5144 <param name="count">number of bytes to send.</param>
5145 <seealso cref="M:HttpServer.HttpResponse.Send"/>
5146 <seealso cref="M:HttpServer.HttpResponse.SendHeaders"/>
5147 <remarks>This method can be used if you want to send body contents without caching them first. This
5148 is recommended for larger files to keep the memory usage low.</remarks>
5045 </member> 5149 </member>
5046 <member name="P:HttpServer.HttpInputItem.HttpServer#IHttpInput#Item(System.String)"> 5150 <member name="M:HttpServer.HttpResponse.SendBody(System.Byte[])">
5047 <summary> 5151 <summary>
5048 5152 Make sure that you have specified <see cref="P:HttpServer.HttpResponse.ContentLength"/> and sent the headers first.
5049 </summary> 5153 </summary>
5050 <param name="name">name in lower case</param> 5154 <param name="buffer"></param>
5051 <returns></returns> 5155 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
5156 <see cref="M:HttpServer.HttpResponse.SendHeaders"/>
5157 <seealso cref="M:HttpServer.HttpResponse.Send"/>
5158 <seealso cref="M:HttpServer.HttpResponse.SendHeaders"/>
5159 <remarks>This method can be used if you want to send body contents without caching them first. This
5160 is recommended for larger files to keep the memory usage low.</remarks>
5052 </member> 5161 </member>
5053 <member name="T:HttpServer.HttpHelper"> 5162 <member name="M:HttpServer.HttpResponse.SendHeaders">
5054 <summary> 5163 <summary>
5055 Generic helper functions for HTTP 5164 Send headers to the client.
5056 </summary> 5165 </summary>
5166 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
5167 <seealso cref="M:HttpServer.HttpResponse.AddHeader(System.String,System.String)"/>
5168 <seealso cref="M:HttpServer.HttpResponse.Send"/>
5169 <seealso cref="M:HttpServer.HttpResponse.SendBody(System.Byte[])"/>
5057 </member> 5170 </member>
5058 <member name="F:HttpServer.HttpHelper.HTTP10"> 5171 <member name="M:HttpServer.HttpResponse.Redirect(System.Uri)">
5059 <summary> 5172 <summary>
5060 Version string for HTTP v1.0 5173 Redirect client to somewhere else using the 302 status code.
5061 </summary> 5174 </summary>
5175 <param name="uri">Destination of the redirect</param>
5176 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
5177 <remarks>You can not do anything more with the request when a redirect have been done. This should be your last
5178 action.</remarks>
5062 </member> 5179 </member>
5063 <member name="F:HttpServer.HttpHelper.HTTP11"> 5180 <member name="M:HttpServer.HttpResponse.Redirect(System.String)">
5064 <summary> 5181 <summary>
5065 Version string for HTTP v1.1 5182 redirect to somewhere
5066 </summary> 5183 </summary>
5184 <param name="url">where the redirect should go</param>
5185 <remarks>
5186 No body are allowed when doing redirects.
5187 </remarks>
5067 </member> 5188 </member>
5068 <member name="F:HttpServer.HttpHelper.EmptyUri"> 5189 <member name="P:HttpServer.HttpResponse.Body">
5069 <summary> 5190 <summary>
5070 An empty URI 5191 The body stream is used to cache the body contents
5192 before sending everything to the client. It's the simplest
5193 way to serve documents.
5071 </summary> 5194 </summary>
5072 </member> 5195 </member>
5073 <member name="M:HttpServer.HttpHelper.ParseQueryString(System.String)"> 5196 <member name="P:HttpServer.HttpResponse.Chunked">
5074 <summary> 5197 <summary>
5075 Parses a query string. 5198 The chunked encoding modifies the body of a message in order to
5199 transfer it as a series of chunks, each with its own size indicator,
5200 followed by an OPTIONAL trailer containing entity-header fields. This
5201 allows dynamically produced content to be transferred along with the
5202 information necessary for the recipient to verify that it has
5203 received the full message.
5076 </summary> 5204 </summary>
5077 <param name="queryString">Query string (URI encoded)</param>
5078 <returns>A <see cref="T:HttpServer.HttpInput"/> object if successful; otherwise <see cref="F:HttpServer.HttpInput.Empty"/></returns>
5079 <exception cref="T:System.ArgumentNullException"><c>queryString</c> is null.</exception>
5080 <exception cref="T:System.FormatException">If string cannot be parsed.</exception>
5081 </member> 5205 </member>
5082 <member name="T:HttpServer.Parser.RequestLineEventArgs"> 5206 <member name="P:HttpServer.HttpResponse.ProtocolVersion">
5083 <summary> 5207 <summary>
5084 Used when the request line have been successfully parsed. 5208 Defines the version of the HTTP Response for applications where it's required
5209 for this to be forced.
5085 </summary> 5210 </summary>
5086 </member> 5211 </member>
5087 <member name="M:HttpServer.Parser.RequestLineEventArgs.#ctor(System.String,System.String,System.String)"> 5212 <member name="P:HttpServer.HttpResponse.Connection">
5088 <summary> 5213 <summary>
5089 Initializes a new instance of the <see cref="T:HttpServer.Parser.RequestLineEventArgs"/> class. 5214 Kind of connection
5090 </summary> 5215 </summary>
5091 <param name="httpMethod">The HTTP method.</param>
5092 <param name="uriPath">The URI path.</param>
5093 <param name="httpVersion">The HTTP version.</param>
5094 </member> 5216 </member>
5095 <member name="M:HttpServer.Parser.RequestLineEventArgs.#ctor"> 5217 <member name="P:HttpServer.HttpResponse.Encoding">
5096 <summary> 5218 <summary>
5097 Initializes a new instance of the <see cref="T:HttpServer.Parser.RequestLineEventArgs"/> class. 5219 Encoding to use when sending stuff to the client.
5098 </summary> 5220 </summary>
5221 <remarks>Default is UTF8</remarks>
5099 </member> 5222 </member>
5100 <member name="P:HttpServer.Parser.RequestLineEventArgs.HttpMethod"> 5223 <member name="P:HttpServer.HttpResponse.KeepAlive">
5101 <summary> 5224 <summary>
5102 Gets or sets http method. 5225 Number of seconds to keep connection alive
5103 </summary> 5226 </summary>
5104 <remarks> 5227 <remarks>Only used if Connection property is set to <see cref="F:HttpServer.ConnectionType.KeepAlive"/>.</remarks>
5105 Should be one of the methods declared in <see cref="T:HttpServer.Method"/>.
5106 </remarks>
5107 </member> 5228 </member>
5108 <member name="P:HttpServer.Parser.RequestLineEventArgs.HttpVersion"> 5229 <member name="P:HttpServer.HttpResponse.Status">
5109 <summary> 5230 <summary>
5110 Gets or sets the version of the HTTP protocol that the client want to use. 5231 Status code that is sent to the client.
5111 </summary> 5232 </summary>
5233 <remarks>Default is <see cref="F:System.Net.HttpStatusCode.OK"/></remarks>
5112 </member> 5234 </member>
5113 <member name="P:HttpServer.Parser.RequestLineEventArgs.UriPath"> 5235 <member name="P:HttpServer.HttpResponse.Reason">
5114 <summary> 5236 <summary>
5115 Gets or sets requested URI path. 5237 Information about why a specific status code was used.
5116 </summary> 5238 </summary>
5117 </member> 5239 </member>
5118 <member name="T:HttpServer.Method"> 5240 <member name="P:HttpServer.HttpResponse.ContentLength">
5119 <summary> 5241 <summary>
5120 Contains all HTTP Methods (according to the HTTP 1.1 specification) 5242 Size of the body. MUST be specified before sending the header,
5121 <para> 5243 unless property Chunked is set to true.
5122 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
5123 </para>
5124 </summary> 5244 </summary>
5125 </member> 5245 </member>
5126 <member name="F:HttpServer.Method.Delete"> 5246 <member name="P:HttpServer.HttpResponse.ContentType">
5127 <summary> 5247 <summary>
5128 The DELETE method requests that the origin server delete the resource identified by the Request-URI. 5248 Kind of content in the body
5129 </summary> 5249 </summary>
5130 <remarks> 5250 <remarks>Default type is "text/html"</remarks>
5131 <para>
5132 This method MAY be overridden by human intervention (or other means) on the origin server.
5133 The client cannot be guaranteed that the operation has been carried out, even if the status code
5134 returned from the origin server indicates that the action has been completed successfully.
5135 </para>
5136 <para>
5137 However, the server SHOULD NOT indicate success unless, at the time the response is given,
5138 it intends to delete the resource or move it to an inaccessible location.
5139 </para>
5140 <para>
5141 A successful response SHOULD be 200 (OK) if the response includes an entity describing the status,
5142 202 (Accepted) if the action has not yet been enacted,
5143 or 204 (No Content) if the action has been enacted but the response does not include an entity.
5144 </para>
5145 <para>
5146 If the request passes through a cache and the Request-URI identifies one or more currently cached entities,
5147 those entries SHOULD be treated as stale. Responses to this method are not cacheable.
5148 </para>
5149 </remarks>
5150 </member> 5251 </member>
5151 <member name="F:HttpServer.Method.Get"> 5252 <member name="P:HttpServer.HttpResponse.HeadersSent">
5152 <summary> 5253 <summary>
5153 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI. 5254 Headers have been sent to the client-
5154 </summary> 5255 </summary>
5155 <remarks> 5256 <remarks>You can not send any additional headers if they have already been sent.</remarks>
5156 <para>
5157 If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the
5158 entity in the response and not the source text of the process, unless that text happens to be the output of the process.
5159 </para>
5160 <para>
5161 The semantics of the GET method change to a "conditional GET" if the request message includes an
5162 If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field.
5163 A conditional GET method requests that the entity be transferred only under the circumstances described
5164 by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network
5165 usage by allowing cached entities to be refreshed without requiring multiple requests or transferring
5166 data already held by the client.
5167 </para>
5168 </remarks>
5169 </member> 5257 </member>
5170 <member name="F:HttpServer.Method.Header"> 5258 <member name="P:HttpServer.HttpResponse.Sent">
5171 <summary> 5259 <summary>
5172 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. 5260 The whole response have been sent.
5173 </summary> 5261 </summary>
5174 <remarks>
5175 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
5176 information sent in response to a GET request. This method can be used for obtaining meta information about
5177 the entity implied by the request without transferring the entity-body itself.
5178
5179 This method is often used for testing hypertext links for validity, accessibility, and recent modification.
5180 </remarks>
5181 </member> 5262 </member>
5182 <member name="F:HttpServer.Method.Options"> 5263 <member name="P:HttpServer.HttpResponse.Cookies">
5183 <summary> 5264 <summary>
5184 <para>The OPTIONS method represents a request for information about the communication options available on the request/response chain identified by the Request-URI.</para> 5265 Cookies that should be created/changed.
5185 </summary> 5266 </summary>
5186 <remarks>
5187 <para>This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval.</para>
5188 </remarks>
5189 </member> 5267 </member>
5190 <member name="F:HttpServer.Method.Post"> 5268 <member name="T:HttpServer.HttpContextFactory">
5191 <summary> 5269 <summary>
5192 The POST method is used to request that the origin server accept the entity enclosed 5270 Used to create and reuse contexts.
5193 in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
5194 </summary> 5271 </summary>
5195 <remarks>
5196 POST is designed to allow a uniform method to cover the following functions:
5197 <list type="bullet">
5198 <item>
5199 Annotation of existing resources;
5200 </item><item>
5201 Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
5202 </item><item>
5203 Providing a block of data, such as the result of submitting a form, to a data-handling process;
5204 </item><item>
5205 Extending a database through an append operation.
5206 </item>
5207 </list>
5208 <para>
5209 If a resource has been created on the origin server, the response SHOULD be 201 (Created) and
5210 contain an entity which describes the status of the request and refers to the new resource, and a
5211 Location header (see section 14.30).
5212 </para>
5213 <para>
5214 The action performed by the POST method might not result in a resource that can be identified by a URI.
5215 In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on
5216 whether or not the response includes an entity that describes the result.
5217 </para><para>
5218 Responses to this method are not cacheable, unless the response includes appropriate Cache-Control
5219 or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent
5220 to retrieve a cacheable resource.
5221 </para>
5222 </remarks>
5223 </member> 5272 </member>
5224 <member name="F:HttpServer.Method.Put"> 5273 <member name="T:HttpServer.IHttpContextFactory">
5225 <summary> 5274 <summary>
5226 The PUT method requests that the enclosed entity be stored under the supplied Request-URI. 5275 Used to create <see cref="T:HttpServer.IHttpClientContext"/>es.
5227 </summary> 5276 </summary>
5228 <remarks>
5229 <list type="bullet">
5230 <item>
5231 If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a
5232 modified version of the one residing on the origin server.
5233 </item><item>
5234 If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new
5235 resource by the requesting user agent, the origin server can create the resource with that URI.
5236 </item><item>
5237 If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
5238 </item><item>
5239 If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to
5240 indicate successful completion of the request.
5241 </item><item>
5242 If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be
5243 given that reflects the nature of the problem.
5244 </item>
5245 </list>
5246 <para>
5247 The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not
5248 understand or implement and MUST return a 501 (Not Implemented) response in such cases.
5249 </para>
5250 </remarks>
5251 </member> 5277 </member>
5252 <member name="F:HttpServer.Method.Trace"> 5278 <member name="M:HttpServer.IHttpContextFactory.CreateContext(System.Net.Sockets.Socket)">
5253 <summary> 5279 <summary>
5254 The TRACE method is used to invoke a remote, application-layer loop- back of the request message. 5280 Creates a <see cref="T:HttpServer.IHttpClientContext"/> that handles a connected client.
5255 </summary> 5281 </summary>
5282 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
5283 <returns>A creates <see cref="T:HttpServer.IHttpClientContext"/>.</returns>
5256 </member> 5284 </member>
5257 <member name="T:HttpServer.Methods"> 5285 <member name="M:HttpServer.IHttpContextFactory.CreateSecureContext(System.Net.Sockets.Socket,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
5258 <summary> 5286 <summary>
5259 Contains all HTTP Methods (according to the HTTP 1.1 specification) 5287 Create a secure <see cref="T:HttpServer.IHttpClientContext"/>.
5260 <para>
5261 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
5262 </para>
5263 </summary> 5288 </summary>
5289 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
5290 <param name="certificate">HTTPS certificate to use.</param>
5291 <param name="protocol">Kind of HTTPS protocol. Usually TLS or SSL.</param>
5292 <returns>A created <see cref="T:HttpServer.IHttpClientContext"/>.</returns>
5264 </member> 5293 </member>
5265 <member name="F:HttpServer.Methods.Delete"> 5294 <member name="E:HttpServer.IHttpContextFactory.RequestReceived">
5266 <summary> 5295 <summary>
5267 The DELETE method requests that the origin server delete the resource identified by the Request-URI. 5296 A request have been received from one of the contexts.
5268 </summary> 5297 </summary>
5269 <remarks>
5270 <para>
5271 This method MAY be overridden by human intervention (or other means) on the origin server.
5272 The client cannot be guaranteed that the operation has been carried out, even if the status code
5273 returned from the origin server indicates that the action has been completed successfully.
5274 </para>
5275 <para>
5276 However, the server SHOULD NOT indicate success unless, at the time the response is given,
5277 it intends to delete the resource or move it to an inaccessible location.
5278 </para>
5279 <para>
5280 A successful response SHOULD be 200 (OK) if the response includes an entity describing the status,
5281 202 (Accepted) if the action has not yet been enacted,
5282 or 204 (No Content) if the action has been enacted but the response does not include an entity.
5283 </para>
5284 <para>
5285 If the request passes through a cache and the Request-URI identifies one or more currently cached entities,
5286 those entries SHOULD be treated as stale. Responses to this method are not cacheable.
5287 </para>
5288 </remarks>
5289 </member> 5298 </member>
5290 <member name="F:HttpServer.Methods.Get"> 5299 <member name="M:HttpServer.HttpContextFactory.#ctor(HttpServer.ILogWriter,System.Int32,HttpServer.IRequestParserFactory)">
5291 <summary> 5300 <summary>
5292 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI. 5301 Initializes a new instance of the <see cref="T:HttpServer.HttpContextFactory"/> class.
5293 </summary> 5302 </summary>
5294 <remarks> 5303 <param name="writer">The writer.</param>
5295 <para> 5304 <param name="bufferSize">Amount of bytes to read from the incoming socket stream.</param>
5296 If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the 5305 <param name="factory">Used to create a request parser.</param>
5297 entity in the response and not the source text of the process, unless that text happens to be the output of the process.
5298 </para>
5299 <para>
5300 The semantics of the GET method change to a "conditional GET" if the request message includes an
5301 If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field.
5302 A conditional GET method requests that the entity be transferred only under the circumstances described
5303 by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network
5304 usage by allowing cached entities to be refreshed without requiring multiple requests or transferring
5305 data already held by the client.
5306 </para>
5307 </remarks>
5308 </member> 5306 </member>
5309 <member name="F:HttpServer.Methods.Header"> 5307 <member name="M:HttpServer.HttpContextFactory.CreateContext(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,System.Net.Sockets.Socket)">
5310 <summary> 5308 <summary>
5311 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. 5309 Create a new context.
5312 </summary> 5310 </summary>
5313 <remarks> 5311 <param name="isSecured">true if socket is running HTTPS.</param>
5314 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the 5312 <param name="endPoint">Client that connected</param>
5315 information sent in response to a GET request. This method can be used for obtaining meta information about 5313 <param name="stream">Network/SSL stream.</param>
5316 the entity implied by the request without transferring the entity-body itself. 5314 <returns>A context.</returns>
5317
5318 This method is often used for testing hypertext links for validity, accessibility, and recent modification.
5319 </remarks>
5320 </member> 5315 </member>
5321 <member name="F:HttpServer.Methods.Options"> 5316 <member name="M:HttpServer.HttpContextFactory.CreateNewContext(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,System.Net.Sockets.Socket)">
5322 <summary> 5317 <summary>
5323 <para>The OPTIONS method represents a request for information about the communication options available on the request/response chain identified by the Request-URI.</para> 5318 Create a new context.
5324 </summary> 5319 </summary>
5325 <remarks> 5320 <param name="isSecured">true if HTTPS is used.</param>
5326 <para>This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval.</para> 5321 <param name="endPoint">Remote client</param>
5327 </remarks> 5322 <param name="stream">Network stream, <see cref="T:HttpServer.HttpClientContext"/> uses <see cref="T:HttpServer.ReusableSocketNetworkStream"/>.</param>
5323 <returns>A new context (always).</returns>
5328 </member> 5324 </member>
5329 <member name="F:HttpServer.Methods.Post"> 5325 <member name="M:HttpServer.HttpContextFactory.CreateSecureContext(System.Net.Sockets.Socket,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
5330 <summary> 5326 <summary>
5331 The POST method is used to request that the origin server accept the entity enclosed 5327 Create a secure <see cref="T:HttpServer.IHttpClientContext"/>.
5332 in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
5333 </summary> 5328 </summary>
5334 <remarks> 5329 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
5335 POST is designed to allow a uniform method to cover the following functions: 5330 <param name="certificate">HTTPS certificate to use.</param>
5336 <list type="bullet"> 5331 <param name="protocol">Kind of HTTPS protocol. Usually TLS or SSL.</param>
5337 <item> 5332 <returns>
5338 Annotation of existing resources; 5333 A created <see cref="T:HttpServer.IHttpClientContext"/>.
5339 </item><item> 5334 </returns>
5340 Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
5341 </item><item>
5342 Providing a block of data, such as the result of submitting a form, to a data-handling process;
5343 </item><item>
5344 Extending a database through an append operation.
5345 </item>
5346 </list>
5347 <para>
5348 If a resource has been created on the origin server, the response SHOULD be 201 (Created) and
5349 contain an entity which describes the status of the request and refers to the new resource, and a
5350 Location header (see section 14.30).
5351 </para>
5352 <para>
5353 The action performed by the POST method might not result in a resource that can be identified by a URI.
5354 In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on
5355 whether or not the response includes an entity that describes the result.
5356 </para><para>
5357 Responses to this method are not cacheable, unless the response includes appropriate Cache-Control
5358 or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent
5359 to retrieve a cacheable resource.
5360 </para>
5361 </remarks>
5362 </member> 5335 </member>
5363 <member name="F:HttpServer.Methods.Put"> 5336 <member name="M:HttpServer.HttpContextFactory.CreateContext(System.Net.Sockets.Socket)">
5364 <summary> 5337 <summary>
5365 The PUT method requests that the enclosed entity be stored under the supplied Request-URI. 5338 Creates a <see cref="T:HttpServer.IHttpClientContext"/> that handles a connected client.
5366 </summary> 5339 </summary>
5367 <remarks> 5340 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
5368 <list type="bullet"> 5341 <returns>
5369 <item> 5342 A creates <see cref="T:HttpServer.IHttpClientContext"/>.
5370 If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a 5343 </returns>
5371 modified version of the one residing on the origin server.
5372 </item><item>
5373 If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new
5374 resource by the requesting user agent, the origin server can create the resource with that URI.
5375 </item><item>
5376 If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
5377 </item><item>
5378 If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to
5379 indicate successful completion of the request.
5380 </item><item>
5381 If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be
5382 given that reflects the nature of the problem.
5383 </item>
5384 </list>
5385 <para>
5386 The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not
5387 understand or implement and MUST return a 501 (Not Implemented) response in such cases.
5388 </para>
5389 </remarks>
5390 </member> 5344 </member>
5391 <member name="F:HttpServer.Methods.Trace"> 5345 <member name="P:HttpServer.HttpContextFactory.UseTraceLogs">
5392 <summary> 5346 <summary>
5393 The TRACE method is used to invoke a remote, application-layer loop- back of the request message. 5347 True if detailed trace logs should be written.
5394 </summary> 5348 </summary>
5395 </member> 5349 </member>
5396 <member name="T:HttpServer.HttpModules.ResourceFileModule"> 5350 <member name="E:HttpServer.HttpContextFactory.RequestReceived">
5397 <summary> 5351 <summary>
5398 Serves files that are stored in embedded resources. 5352 A request have been received from one of the contexts.
5399 </summary> 5353 </summary>
5400 </member> 5354 </member>
5401 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor"> 5355 <member name="T:HttpServer.ReusableSocketNetworkStream">
5402 <summary> 5356 <summary>
5403 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class. 5357 Custom network stream to mark sockets as reusable when disposing the stream.
5404 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later
5405 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired.
5406 </summary> 5358 </summary>
5407 </member> 5359 </member>
5408 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor(HttpServer.ILogWriter)"> 5360 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket)">
5409 <summary> 5361 <summary>
5410 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class. 5362 Creates a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" />.
5411 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later
5412 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired.
5413 </summary> 5363 </summary>
5414 <param name="logWriter">The log writer to use when logging events</param> 5364 <param name="socket">
5365 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
5366 </param>
5367 <exception cref="T:System.ArgumentNullException">
5368 The <paramref name="socket" /> parameter is null.
5369 </exception>
5370 <exception cref="T:System.IO.IOException">
5371 The <paramref name="socket" /> parameter is not connected.
5372 -or-
5373 The <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.
5374 -or-
5375 The <paramref name="socket" /> parameter is in a nonblocking state.
5376 </exception>
5415 </member> 5377 </member>
5416 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"> 5378 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.Boolean)">
5417 <summary> 5379 <summary>
5418 Mimtypes that this class can handle per default 5380 Initializes a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" /> with the specified <see cref="T:System.Net.Sockets.Socket" /> ownership.
5419 </summary> 5381 </summary>
5382 <param name="socket">
5383 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
5384 </param>
5385 <param name="ownsSocket">
5386 Set to true to indicate that the <see cref="T:System.Net.Sockets.NetworkStream" /> will take ownership of the <see cref="T:System.Net.Sockets.Socket" />; otherwise, false.
5387 </param>
5388 <exception cref="T:System.ArgumentNullException">
5389 The <paramref name="socket" /> parameter is null.
5390 </exception>
5391 <exception cref="T:System.IO.IOException">
5392 The <paramref name="socket" /> parameter is not connected.
5393 -or-
5394 the value of the <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.
5395 -or-
5396 the <paramref name="socket" /> parameter is in a nonblocking state.
5397 </exception>
5420 </member> 5398 </member>
5421 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddResources(System.String,System.Reflection.Assembly,System.String)"> 5399 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.IO.FileAccess)">
5422 <summary> 5400 <summary>
5423 Loads resources from a namespace in the given assembly to an uri 5401 Creates a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" /> with the specified access rights.
5424 </summary> 5402 </summary>
5425 <param name="toUri">The uri to map the resources to</param> 5403 <param name="socket">
5426 <param name="fromAssembly">The assembly in which the resources reside</param> 5404 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
5427 <param name="fromNamespace">The namespace from which to load the resources</param> 5405 </param>
5428 <usage> 5406 <param name="access">
5429 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views"); 5407 A bitwise combination of the <see cref="T:System.IO.FileAccess" /> values that specify the type of access given to the <see cref="T:System.Net.Sockets.NetworkStream" /> over the provided <see cref="T:System.Net.Sockets.Socket" />.
5430 5408 </param>
5431 will make ie the resource MyLib.Models.User.Views.stylesheet.css accessible via /user/stylesheet.css 5409 <exception cref="T:System.ArgumentNullException">
5432 </usage> 5410 The <paramref name="socket" /> parameter is null.
5433 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns> 5411 </exception>
5412 <exception cref="T:System.IO.IOException">
5413 The <paramref name="socket" /> parameter is not connected.
5414 -or-
5415 the <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.
5416 -or-
5417 the <paramref name="socket" /> parameter is in a nonblocking state.
5418 </exception>
5434 </member> 5419 </member>
5435 <member name="M:HttpServer.HttpModules.ResourceFileModule.CanHandle(HttpServer.IHttpRequest)"> 5420 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.IO.FileAccess,System.Boolean)">
5436 <summary> 5421 <summary>
5437 Returns true if the module can handle the request 5422 Creates a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" /> with the specified access rights and the specified <see cref="T:System.Net.Sockets.Socket" /> ownership.
5438 </summary> 5423 </summary>
5424 <param name="socket">
5425 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.
5426 </param>
5427 <param name="access">
5428 A bitwise combination of the <see cref="T:System.IO.FileAccess" /> values that specifies the type of access given to the <see cref="T:System.Net.Sockets.NetworkStream" /> over the provided <see cref="T:System.Net.Sockets.Socket" />.
5429 </param>
5430 <param name="ownsSocket">
5431 Set to true to indicate that the <see cref="T:System.Net.Sockets.NetworkStream" /> will take ownership of the <see cref="T:System.Net.Sockets.Socket" />; otherwise, false.
5432 </param>
5433 <exception cref="T:System.ArgumentNullException">
5434 The <paramref name="socket" /> parameter is null.
5435 </exception>
5436 <exception cref="T:System.IO.IOException">
5437 The <paramref name="socket" /> parameter is not connected.
5438 -or-
5439 The <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.
5440 -or-
5441 The <paramref name="socket" /> parameter is in a nonblocking state.
5442 </exception>
5439 </member> 5443 </member>
5440 <member name="M:HttpServer.HttpModules.ResourceFileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 5444 <member name="M:HttpServer.ReusableSocketNetworkStream.Close">
5441 <summary> 5445 <summary>
5442 Method that process the url 5446 Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream.
5443 </summary> 5447 </summary>
5444 <param name="request">Information sent by the browser about the request</param>
5445 <param name="response">Information that is being sent back to the client.</param>
5446 <param name="session">Session used to </param>
5447 <returns>true if this module handled the request.</returns>
5448 </member> 5448 </member>
5449 <member name="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"> 5449 <member name="M:HttpServer.ReusableSocketNetworkStream.Dispose(System.Boolean)">
5450 <summary> 5450 <summary>
5451 List with all mime-type that are allowed. 5451 Releases the unmanaged resources used by the <see cref="T:System.Net.Sockets.NetworkStream"/> and optionally releases the managed resources.
5452 </summary> 5452 </summary>
5453 <remarks>All other mime types will result in a Forbidden http status code.</remarks> 5453 <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
5454 </member> 5454 </member>
5455 </members> 5455 </members>
5456</doc> 5456</doc>