aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorTeravus Ovares (Dan Olivares)2009-08-18 01:19:01 -0400
committerTeravus Ovares (Dan Olivares)2009-08-18 01:19:01 -0400
commitcd3b7bcb03cf1fa8c5303926c79cebe77dd8af8e (patch)
tree4dd28e91d0cbd8f25610e1598e7bfb517cfca568
parentCommented 2 tests in ScenePresenceTests, one because things were being done i... (diff)
downloadopensim-SC_OLD-cd3b7bcb03cf1fa8c5303926c79cebe77dd8af8e.zip
opensim-SC_OLD-cd3b7bcb03cf1fa8c5303926c79cebe77dd8af8e.tar.gz
opensim-SC_OLD-cd3b7bcb03cf1fa8c5303926c79cebe77dd8af8e.tar.bz2
opensim-SC_OLD-cd3b7bcb03cf1fa8c5303926c79cebe77dd8af8e.tar.xz
* Update HTTP Server with jhurliman's longheader fix. Changes 1024 with 4096.
-rw-r--r--bin/HttpServer_OpenSim.dllbin113664 -> 113664 bytes
-rw-r--r--bin/HttpServer_OpenSim.pdbbin304640 -> 382464 bytes
-rw-r--r--bin/HttpServer_OpenSim.xml6472
3 files changed, 3236 insertions, 3236 deletions
diff --git a/bin/HttpServer_OpenSim.dll b/bin/HttpServer_OpenSim.dll
index 287321c..5414276 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 41a152a..7c00e66 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 c549ebc..9c3df78 100644
--- a/bin/HttpServer_OpenSim.xml
+++ b/bin/HttpServer_OpenSim.xml
@@ -4,227 +4,79 @@
4 <name>HttpServer_OpenSim</name> 4 <name>HttpServer_OpenSim</name>
5 </assembly> 5 </assembly>
6 <members> 6 <members>
7 <member name="T:HttpServer.Sessions.IHttpSession"> 7 <member name="T:HttpServer.IComponentProvider">
8 <summary>
9 Interface for sessions
10 </summary>
11 </member>
12 <member name="M:HttpServer.Sessions.IHttpSession.Clear">
13 <summary>
14 Remove everything from the session
15 </summary>
16 </member>
17 <member name="M:HttpServer.Sessions.IHttpSession.Clear(System.Boolean)">
18 <summary>
19 Remove everything from the session
20 </summary>
21 <param name="expires">True if the session is cleared due to expiration</param>
22 </member>
23 <member name="P:HttpServer.Sessions.IHttpSession.Id">
24 <summary>
25 Session id
26 </summary>
27 </member>
28 <member name="P:HttpServer.Sessions.IHttpSession.Item(System.String)">
29 <summary>
30 Should
31 </summary>
32 <param name="name">Name of the session variable</param>
33 <returns>null if it's not set</returns>
34 <exception cref="T:System.Runtime.Serialization.SerializationException">If the object cant be serialized.</exception>
35 </member>
36 <member name="P:HttpServer.Sessions.IHttpSession.Accessed">
37 <summary>
38 When the session was last accessed.
39 This property is touched by the http server each time the
40 session is requested.
41 </summary>
42 </member>
43 <member name="P:HttpServer.Sessions.IHttpSession.Count">
44 <summary>
45 Number of session variables.
46 </summary>
47 </member>
48 <member name="E:HttpServer.Sessions.IHttpSession.BeforeClear">
49 <summary>
50 Event triggered upon clearing the session
51 </summary>
52 </member>
53 <member name="T:HttpServer.Sessions.HttpSessionClearedArgs">
54 <summary>
55 Arguments sent when a <see cref="T:HttpServer.Sessions.IHttpSession"/> is cleared
56 </summary>
57 </member>
58 <member name="M:HttpServer.Sessions.HttpSessionClearedArgs.#ctor(System.Boolean)">
59 <summary>
60 Instantiates the arguments for the event
61 </summary>
62 <param name="expired">True if the session is cleared due to expiration</param>
63 </member>
64 <member name="P:HttpServer.Sessions.HttpSessionClearedArgs.Expired">
65 <summary>
66 Returns true if the session is cleared due to expiration
67 </summary>
68 </member>
69 <member name="T:HttpServer.Sessions.HttpSessionClearedHandler">
70 <summary>
71 Delegate for when a IHttpSession is cleared
72 </summary>
73 <param name="session"><see cref="T:HttpServer.Sessions.IHttpSession"/> this is being cleared.</param>
74 <param name="args">Arguments for the clearing</param>
75 </member>
76 <member name="T:HttpServer.HttpListenerBase">
77 <summary>
78 Contains a listener that doesn't do anything with the connections.
79 </summary>
80 </member>
81 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)">
82 <summary>
83 Listen for regular HTTP connections
84 </summary>
85 <param name="address">IP Address to accept connections on</param>
86 <param name="port">TCP Port to listen on, default HTTP port is 80.</param>
87 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
88 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
89 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
90 </member>
91 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)">
92 <summary>
93 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class.
94 </summary>
95 <param name="address">IP Address to accept connections on</param>
96 <param name="port">TCP Port to listen on, default HTTPS port is 443</param>
97 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
98 <param name="certificate">Certificate to use</param>
99 </member>
100 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
101 <summary>
102 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class.
103 </summary>
104 <param name="address">IP Address to accept connections on</param>
105 <param name="port">TCP Port to listen on, default HTTPS port is 443</param>
106 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
107 <param name="certificate">Certificate to use</param>
108 <param name="protocol">which HTTPS protocol to use, default is TLS.</param>
109 </member>
110 <member name="M:HttpServer.HttpListenerBase.OnAccept(System.IAsyncResult)">
111 <exception cref="T:System.Exception"><c>Exception</c>.</exception>
112 </member>
113 <member name="M:HttpServer.HttpListenerBase.RetryBeginAccept">
114 <summary>
115 Will try to accept connections one more time.
116 </summary>
117 <exception cref="T:System.Exception">If any exceptions is thrown.</exception>
118 </member>
119 <member name="M:HttpServer.HttpListenerBase.OnAcceptingSocket(System.Net.Sockets.Socket)">
120 <summary>
121 Can be used to create filtering of new connections.
122 </summary>
123 <param name="socket">Accepted socket</param>
124 <returns>true if connection can be accepted; otherwise false.</returns>
125 </member>
126 <member name="M:HttpServer.HttpListenerBase.Start(System.Int32)">
127 <summary>
128 Start listen for new connections
129 </summary>
130 <param name="backlog">Number of connections that can stand in a queue to be accepted.</param>
131 <exception cref="T:System.InvalidOperationException">Listener have already been started.</exception>
132 </member>
133 <member name="M:HttpServer.HttpListenerBase.Stop">
134 <summary>
135 Stop the listener
136 </summary>
137 <exception cref="T:System.Net.Sockets.SocketException"></exception>
138 </member>
139 <member name="P:HttpServer.HttpListenerBase.LogWriter">
140 <summary> 8 <summary>
141 Gives you a change to receive log entries for all internals of the HTTP library. 9 Inversion of control interface.
142 </summary> 10 </summary>
143 <remarks>
144 You may not switch log writer after starting the listener.
145 </remarks>
146 </member> 11 </member>
147 <member name="P:HttpServer.HttpListenerBase.UseTraceLogs"> 12 <member name="M:HttpServer.IComponentProvider.AddInstance``1(System.Object)">
148 <summary> 13 <summary>
149 True if we should turn on trace logs. 14 Add a component instance
150 </summary> 15 </summary>
16 <typeparam name="T">Interface type</typeparam>
17 <param name="instance">Instance to add</param>
151 </member> 18 </member>
152 <member name="E:HttpServer.HttpListenerBase.ExceptionThrown"> 19 <member name="M:HttpServer.IComponentProvider.Get``1">
153 <summary> 20 <summary>
154 Catch exceptions not handled by the listener. 21 Get a component.
155 </summary> 22 </summary>
23 <typeparam name="T">Interface type</typeparam>
24 <returns>Component if registered, otherwise null.</returns>
156 <remarks> 25 <remarks>
157 Exceptions will be thrown during debug mode if this event is not used, 26 Component will get created if needed.
158 exceptions will be printed to console and suppressed during release mode.
159 </remarks> 27 </remarks>
160 </member> 28 </member>
161 <member name="E:HttpServer.HttpListenerBase.RequestReceived"> 29 <member name="M:HttpServer.IComponentProvider.Contains(System.Type)">
162 <summary>
163 A request have been received from a <see cref="T:HttpServer.IHttpClientContext"/>.
164 </summary>
165 </member>
166 <member name="T:HttpServer.Exceptions.InternalServerException">
167 <summary>
168 The server encountered an unexpected condition which prevented it from fulfilling the request.
169 </summary>
170 </member>
171 <member name="T:HttpServer.Exceptions.HttpException">
172 <summary>
173 All HTTP based exceptions will derive this class.
174 </summary>
175 </member>
176 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String)">
177 <summary>
178 Create a new HttpException
179 </summary>
180 <param name="code">http status code (sent in the response)</param>
181 <param name="message">error description</param>
182 </member>
183 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String,System.Exception)">
184 <summary>
185 Create a new HttpException
186 </summary>
187 <param name="code">http status code (sent in the response)</param>
188 <param name="message">error description</param>
189 <param name="inner">inner exception</param>
190 </member>
191 <member name="P:HttpServer.Exceptions.HttpException.HttpStatusCode">
192 <summary> 30 <summary>
193 status code to use in the response. 31 Checks if the specified component interface have been added.
194 </summary> 32 </summary>
33 <param name="interfaceType"></param>
34 <returns>true if found; otherwise false.</returns>
195 </member> 35 </member>
196 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor"> 36 <member name="M:HttpServer.IComponentProvider.Add``2">
197 <summary> 37 <summary>
198 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class. 38 Add a component.
199 </summary> 39 </summary>
40 <typeparam name="InterfaceType">Type being requested.</typeparam>
41 <typeparam name="InstanceType">Type being created.</typeparam>
200 </member> 42 </member>
201 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor(System.String)"> 43 <member name="T:HttpServer.HttpModules.HttpModule">
202 <summary> 44 <summary>
203 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class. 45 A HttpModule can be used to serve Uri's. The module itself
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.
204 </summary> 49 </summary>
205 <param name="message">error message.</param> 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>
206 </member> 53 </member>
207 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor(System.String,System.Exception)"> 54 <member name="M:HttpServer.HttpModules.HttpModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
208 <summary> 55 <summary>
209 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class. 56 Method that process the url
210 </summary> 57 </summary>
211 <param name="message">error message.</param> 58 <param name="request">Information sent by the browser about the request</param>
212 <param name="inner">inner exception.</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>
213 </member> 62 </member>
214 <member name="T:HttpServer.HttpModules.HttpModuleExceptionEventArgs"> 63 <member name="M:HttpServer.HttpModules.HttpModule.SetLogWriter(HttpServer.ILogWriter)">
215 <summary> 64 <summary>
216 Used to inform http server that 65 Set the log writer to use.
217 </summary> 66 </summary>
67 <param name="writer">logwriter to use.</param>
218 </member> 68 </member>
219 <member name="M:HttpServer.HttpModules.HttpModuleExceptionEventArgs.#ctor(System.Exception)"> 69 <member name="M:HttpServer.HttpModules.HttpModule.Write(HttpServer.LogPrio,System.String)">
220 <summary> 70 <summary>
221 Eventarguments used when an exception is thrown by a module 71 Log something.
222 </summary> 72 </summary>
223 <param name="e">the exception</param> 73 <param name="prio">importance of log message</param>
74 <param name="message">message</param>
224 </member> 75 </member>
225 <member name="P:HttpServer.HttpModules.HttpModuleExceptionEventArgs.Exception"> 76 <member name="P:HttpServer.HttpModules.HttpModule.AllowSecondaryProcessing">
226 <summary> 77 <summary>
227 Exception thrown in a module 78 If true specifies that the module doesn't consume the processing of a request so that subsequent modules
79 can continue processing afterwards. Default is false.
228 </summary> 80 </summary>
229 </member> 81 </member>
230 <member name="T:HttpServer.Helpers.ResourceInfo"> 82 <member name="T:HttpServer.Helpers.ResourceInfo">
@@ -267,121 +119,122 @@
267 <member name="P:HttpServer.Helpers.ResourceInfo.ResourceName"> 119 <member name="P:HttpServer.Helpers.ResourceInfo.ResourceName">
268 <summary>Retrieves the full path name to the resource file</summary> 120 <summary>Retrieves the full path name to the resource file</summary>
269 </member> 121 </member>
270 <member name="M:HttpServer.FormDecoders.HttpMultipart.ReadLine"> 122 <member name="T:HttpServer.Helpers.ObjectForm">
271 <summary> 123 <summary>
272 124 The object form class takes an object and creates form items for it.
273 </summary> 125 </summary>
274 <returns></returns>
275 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
276 <exception cref="T:System.ObjectDisposedException"></exception>
277 </member> 126 </member>
278 <member name="T:HttpServer.FormDecoders.HttpMultipart.Element"> 127 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object,System.String)">
279 <summary>Represents a field in a multipart form</summary>
280 </member>
281 <member name="T:HttpServer.Parser.HeaderEventArgs">
282 <summary> 128 <summary>
283 Event arguments used when a new header have been parsed. 129 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
284 </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>
285 </member> 135 </member>
286 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor(System.String,System.String)"> 136 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object)">
287 <summary> 137 <summary>
288 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class. 138 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
289 </summary> 139 </summary>
290 <param name="name">Name of header.</param> 140 <param name="name">form name *and* id.</param>
291 <param name="value">Header value.</param> 141 <param name="action">action to do when form is posted.</param>
142 <param name="obj">object to get values from</param>
292 </member> 143 </member>
293 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor"> 144 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.Object)">
294 <summary> 145 <summary>
295 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class. 146 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
296 </summary> 147 </summary>
148 <param name="action">form action.</param>
149 <param name="obj">object to get values from.</param>
297 </member> 150 </member>
298 <member name="P:HttpServer.Parser.HeaderEventArgs.Name"> 151 <member name="M:HttpServer.Helpers.ObjectForm.Begin">
299 <summary> 152 <summary>
300 Gets or sets header name. 153 write out the FORM-tag.
301 </summary> 154 </summary>
155 <returns>generated html code</returns>
302 </member> 156 </member>
303 <member name="P:HttpServer.Parser.HeaderEventArgs.Value"> 157 <member name="M:HttpServer.Helpers.ObjectForm.Begin(System.Boolean)">
304 <summary> 158 <summary>
305 Gets or sets header value. 159 Writeout the form tag
306 </summary> 160 </summary>
161 <param name="isAjax">form should be posted through ajax.</param>
162 <returns>generated html code</returns>
307 </member> 163 </member>
308 <member name="T:HttpServer.HttpListener"> 164 <member name="M:HttpServer.Helpers.ObjectForm.Tb(System.String,System.Object[])">
309 <summary> 165 <summary>
310 New implementation of the HTTP listener. 166 Generates a text box.
311 </summary> 167 </summary>
312 <remarks> 168 <param name="propertyName"></param>
313 Use the <c>Create</c> methods to create a default listener. 169 <param name="options"></param>
314 </remarks> 170 <returns>generated html code</returns>
315 </member> 171 </member>
316 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)"> 172 <member name="M:HttpServer.Helpers.ObjectForm.Pb(System.String,System.Object[])">
317 <summary> 173 <summary>
318 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class. 174 password box
319 </summary> 175 </summary>
320 <param name="address">IP Address to accept connections on</param> 176 <param name="propertyName"></param>
321 <param name="port">TCP Port to listen on, default HTTP port is 80.</param> 177 <param name="options"></param>
322 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param> 178 <returns>generated html code</returns>
323 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
324 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
325 </member> 179 </member>
326 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)"> 180 <member name="M:HttpServer.Helpers.ObjectForm.Hidden(System.String,System.Object[])">
327 <summary> 181 <summary>
328 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class. 182 Hiddens the specified property name.
329 </summary> 183 </summary>
330 <param name="address">The address.</param> 184 <param name="propertyName">Name of the property.</param>
331 <param name="port">The port.</param> 185 <param name="options">The options.</param>
332 <param name="factory">The factory.</param> 186 <returns>generated html code</returns>
333 <param name="certificate">The certificate.</param>
334 </member> 187 </member>
335 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)"> 188 <member name="M:HttpServer.Helpers.ObjectForm.Label(System.String,System.String)">
336 <summary> 189 <summary>
337 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class. 190 Labels the specified property name.
338 </summary> 191 </summary>
339 <param name="address">The address.</param> 192 <param name="propertyName">property in object.</param>
340 <param name="port">The port.</param> 193 <param name="label">caption</param>
341 <param name="factory">The factory.</param> 194 <returns>generated html code</returns>
342 <param name="certificate">The certificate.</param>
343 <param name="protocol">The protocol.</param>
344 </member> 195 </member>
345 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32)"> 196 <member name="M:HttpServer.Helpers.ObjectForm.Cb(System.String,System.String,System.Object[])">
346 <summary> 197 <summary>
347 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories. 198 Generate a checkbox
348 </summary> 199 </summary>
349 <param name="address">Address that the listener should accept connections on.</param> 200 <param name="propertyName">property in object</param>
350 <param name="port">Port that listener should accept connections on.</param> 201 <param name="value">checkbox value</param>
351 <returns>Created HTTP listener.</returns> 202 <param name="options">additional html attributes.</param>
203 <returns>generated html code</returns>
352 </member> 204 </member>
353 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)"> 205 <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.String,System.String,System.Object[])">
354 <summary> 206 <summary>
355 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories. 207 Write a html select tag
356 </summary> 208 </summary>
357 <param name="address">Address that the listener should accept connections on.</param> 209 <param name="propertyName">object property.</param>
358 <param name="port">Port that listener should accept connections on.</param> 210 <param name="idColumn">id column</param>
359 <param name="certificate">Certificate to use</param> 211 <param name="titleColumn">The title column.</param>
360 <returns>Created HTTP listener.</returns> 212 <param name="options">The options.</param>
213 <returns></returns>
361 </member> 214 </member>
362 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)"> 215 <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.Collections.IEnumerable,System.String,System.String,System.Object[])">
363 <summary> 216 <summary>
364 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories. 217 Selects the specified property name.
365 </summary> 218 </summary>
366 <param name="address">Address that the listener should accept connections on.</param> 219 <param name="propertyName">Name of the property.</param>
367 <param name="port">Port that listener should accept connections on.</param> 220 <param name="items">The items.</param>
368 <param name="certificate">Certificate to use</param> 221 <param name="idColumn">The id column.</param>
369 <param name="protocol">which HTTPS protocol to use, default is TLS.</param> 222 <param name="titleColumn">The title column.</param>
370 <returns>Created HTTP listener.</returns> 223 <param name="options">The options.</param>
224 <returns></returns>
371 </member> 225 </member>
372 <member name="M:HttpServer.HttpListener.OnAcceptingSocket(System.Net.Sockets.Socket)"> 226 <member name="M:HttpServer.Helpers.ObjectForm.Submit(System.String)">
373 <summary> 227 <summary>
374 Can be used to create filtering of new connections. 228 Write a submit tag.
375 </summary> 229 </summary>
376 <param name="socket">Accepted socket</param> 230 <param name="value">button caption</param>
377 <returns> 231 <returns>html submit tag</returns>
378 true if connection can be accepted; otherwise false.
379 </returns>
380 </member> 232 </member>
381 <member name="E:HttpServer.HttpListener.Accepted"> 233 <member name="M:HttpServer.Helpers.ObjectForm.End">
382 <summary> 234 <summary>
383 A client have been accepted, but not handled, by the listener. 235 html end form tag
384 </summary> 236 </summary>
237 <returns>html</returns>
385 </member> 238 </member>
386 <member name="T:HttpServer.FormDecoders.XmlDecoder"> 239 <member name="T:HttpServer.FormDecoders.XmlDecoder">
387 <summary> 240 <summary>
@@ -448,905 +301,280 @@
448 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param> 301 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
449 <returns>True if the decoder can parse the specified content type</returns> 302 <returns>True if the decoder can parse the specified content type</returns>
450 </member> 303 </member>
451 <member name="T:HttpServer.ExceptionHandler"> 304 <member name="T:HttpServer.Exceptions.InternalServerException">
452 <summary>
453 We dont want to let the server to die due to exceptions thrown in worker threads.
454 therefore we use this delegate to give you a change to handle uncaught exceptions.
455 </summary>
456 <param name="source">Class that the exception was thrown in.</param>
457 <param name="exception">Exception</param>
458 <remarks>
459 Server will throw a InternalServerException in release version if you dont
460 handle this delegate.
461 </remarks>
462 </member>
463 <member name="T:HttpServer.Authentication.DigestAuthentication">
464 <summary>
465 Implements HTTP Digest authentication. It's more secure than Basic auth since password is
466 encrypted with a "key" from the server.
467 </summary>
468 <remarks>
469 Keep in mind that the password is encrypted with MD5. Use a combination of SSL and digest auth to be secure.
470 </remarks>
471 </member>
472 <member name="T:HttpServer.Authentication.AuthenticationModule">
473 <summary>
474 Authentication modules are used to implement different
475 kind of HTTP authentication.
476 </summary>
477 </member>
478 <member name="F:HttpServer.Authentication.AuthenticationModule.AuthenticationTag">
479 <summary>
480 Tag used for authentication.
481 </summary>
482 </member>
483 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
484 <summary>
485 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class.
486 </summary>
487 <param name="authenticator">Delegate used to provide information used during authentication.</param>
488 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
489 </member>
490 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler)">
491 <summary>
492 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class.
493 </summary>
494 <param name="authenticator">Delegate used to provide information used during authentication.</param>
495 </member>
496 <member name="M:HttpServer.Authentication.AuthenticationModule.CreateResponse(System.String,System.Object[])">
497 <summary>
498 Create a response that can be sent in the WWW-Authenticate header.
499 </summary>
500 <param name="realm">Realm that the user should authenticate in</param>
501 <param name="options">Array with optional options.</param>
502 <returns>A correct authentication request.</returns>
503 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
504 </member>
505 <member name="M:HttpServer.Authentication.AuthenticationModule.Authenticate(System.String,System.String,System.String,System.Object[])">
506 <summary>
507 An authentication response have been received from the web browser.
508 Check if it's correct
509 </summary>
510 <param name="authenticationHeader">Contents from the Authorization header</param>
511 <param name="realm">Realm that should be authenticated</param>
512 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
513 <param name="options">options to specific implementations</param>
514 <returns>Authentication object that is stored for the request. A user class or something like that.</returns>
515 <exception cref="T:System.ArgumentException">if <paramref name="authenticationHeader"/> is invalid</exception>
516 <exception cref="T:System.ArgumentNullException">If any of the parameters is empty or null.</exception>
517 </member>
518 <member name="M:HttpServer.Authentication.AuthenticationModule.CheckAuthentication(System.String,System.String,System.String@,System.Object@)">
519 <summary>
520 Used to invoke the authentication delegate that is used to lookup the user name/realm.
521 </summary>
522 <param name="realm">Realm (domain) that user want to authenticate in</param>
523 <param name="userName">User name</param>
524 <param name="password">Password used for validation. Some implementations got password in clear text, they are then sent to client.</param>
525 <param name="login">object that will be stored in the request to help you identify the user if authentication was successful.</param>
526 <returns>true if authentication was successful</returns>
527 </member>
528 <member name="M:HttpServer.Authentication.AuthenticationModule.AuthenticationRequired(HttpServer.IHttpRequest)">
529 <summary>
530 Determines if authentication is required.
531 </summary>
532 <param name="request">HTTP request from browser</param>
533 <returns>true if user should be authenticated.</returns>
534 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> from your delegate if no more attempts are allowed.</remarks>
535 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
536 </member>
537 <member name="P:HttpServer.Authentication.AuthenticationModule.Name">
538 <summary>
539 name used in HTTP request.
540 </summary>
541 </member>
542 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
543 <summary>
544 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class.
545 </summary>
546 <param name="authenticator">Delegate used to provide information used during authentication.</param>
547 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
548 </member>
549 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)">
550 <summary>
551 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class.
552 </summary>
553 <param name="authenticator">Delegate used to provide information used during authentication.</param>
554 </member>
555 <member name="F:HttpServer.Authentication.DigestAuthentication.DisableNonceCheck">
556 <summary>
557 Used by test classes to be able to use hardcoded values
558 </summary>
559 </member>
560 <member name="M:HttpServer.Authentication.DigestAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])">
561 <summary>
562 An authentication response have been received from the web browser.
563 Check if it's correct
564 </summary>
565 <param name="authenticationHeader">Contents from the Authorization header</param>
566 <param name="realm">Realm that should be authenticated</param>
567 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
568 <param name="options">First option: true if username/password is correct but not cnonce</param>
569 <returns>
570 Authentication object that is stored for the request. A user class or something like that.
571 </returns>
572 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception>
573 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception>
574 </member>
575 <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)">
576 <summary>
577 Encrypts parameters into a Digest string
578 </summary>
579 <param name="realm">Realm that the user want to log into.</param>
580 <param name="userName">User logging in</param>
581 <param name="password">Users password.</param>
582 <param name="method">HTTP method.</param>
583 <param name="uri">Uri/domain that generated the login prompt.</param>
584 <param name="qop">Quality of Protection.</param>
585 <param name="nonce">"Number used ONCE"</param>
586 <param name="nc">Hexadecimal request counter.</param>
587 <param name="cnonce">"Client Number used ONCE"</param>
588 <returns>Digest encrypted string</returns>
589 </member>
590 <member name="M:HttpServer.Authentication.DigestAuthentication.Encrypt(System.String,System.String,System.String,System.String,System.String,System.String)">
591 <summary>
592
593 </summary>
594 <param name="ha1">Md5 hex encoded "userName:realm:password", without the quotes.</param>
595 <param name="ha2">Md5 hex encoded "method:uri", without the quotes</param>
596 <param name="qop">Quality of Protection</param>
597 <param name="nonce">"Number used ONCE"</param>
598 <param name="nc">Hexadecimal request counter.</param>
599 <param name="cnonce">Client number used once</param>
600 <returns></returns>
601 </member>
602 <member name="M:HttpServer.Authentication.DigestAuthentication.CreateResponse(System.String,System.Object[])">
603 <summary>
604 Create a response that can be sent in the WWW-Authenticate header.
605 </summary>
606 <param name="realm">Realm that the user should authenticate in</param>
607 <param name="options">First options specifies if true if username/password is correct but not cnonce.</param>
608 <returns>A correct auth request.</returns>
609 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
610 </member>
611 <member name="M:HttpServer.Authentication.DigestAuthentication.Decode(System.String,System.Text.Encoding)">
612 <summary>
613 Decodes authorization header value
614 </summary>
615 <param name="buffer">header value</param>
616 <param name="encoding">Encoding that the buffer is in</param>
617 <returns>All headers and their values if successful; otherwise null</returns>
618 <example>
619 NameValueCollection header = DigestAuthentication.Decode("response=\"6629fae49393a05397450978507c4ef1\",\r\nc=00001", Encoding.ASCII);
620 </example>
621 <remarks>Can handle lots of whitespaces and new lines without failing.</remarks>
622 </member>
623 <member name="M:HttpServer.Authentication.DigestAuthentication.GetCurrentNonce">
624 <summary>
625 Gets the current nonce.
626 </summary>
627 <returns></returns>
628 </member>
629 <member name="M:HttpServer.Authentication.DigestAuthentication.GetMD5HashBinHex2(System.String)">
630 <summary>
631 Gets the Md5 hash bin hex2.
632 </summary>
633 <param name="toBeHashed">To be hashed.</param>
634 <returns></returns>
635 </member>
636 <member name="M:HttpServer.Authentication.DigestAuthentication.IsValidNonce(System.String)">
637 <summary>
638 determines if the nonce is valid or has expired.
639 </summary>
640 <param name="nonce">nonce value (check wikipedia for info)</param>
641 <returns>true if the nonce has not expired.</returns>
642 </member>
643 <member name="P:HttpServer.Authentication.DigestAuthentication.Name">
644 <summary>
645 name used in http request.
646 </summary>
647 </member>
648 <member name="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1">
649 <summary>
650 Gets or sets whether the token supplied in <see cref="T:HttpServer.Authentication.AuthenticationHandler"/> is a
651 HA1 generated string.
652 </summary>
653 </member>
654 <member name="T:HttpServer.IHttpContextHandler">
655 <summary>
656 Class that receives Requests from a <see cref="T:HttpServer.IHttpClientContext"/>.
657 </summary>
658 </member>
659 <member name="M:HttpServer.IHttpContextHandler.ClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)">
660 <summary>
661 Client have been disconnected.
662 </summary>
663 <param name="client">Client that was disconnected.</param>
664 <param name="error">Reason</param>
665 <see cref="T:HttpServer.IHttpClientContext"/>
666 </member>
667 <member name="M:HttpServer.IHttpContextHandler.RequestReceived(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
668 <summary>
669 Invoked when a client context have received a new HTTP request
670 </summary>
671 <param name="client">Client that received the request.</param>
672 <param name="request">Request that was received.</param>
673 <see cref="T:HttpServer.IHttpClientContext"/>
674 </member>
675 <member name="T:HttpServer.RealmHandler">
676 <summary>
677 Delegate used to find a realm/domain.
678 </summary>
679 <param name="domain"></param>
680 <returns></returns>
681 <remarks>
682 Realms are used during HTTP Authentication
683 </remarks>
684 <seealso cref="T:HttpServer.Authentication.AuthenticationModule"/>
685 <seealso cref="T:HttpServer.Authentication.AuthenticationHandler"/>
686 </member>
687 <member name="T:HttpServer.HttpServer">
688 <summary>
689 A complete HTTP server, you need to add a module to it to be able to handle incoming requests.
690 </summary>
691 <example>
692 <code>
693 // this small example will add two web site modules, thus handling
694 // two different sites. In reality you should add Controller modules or something
695 // two the website modules to be able to handle different requests.
696 HttpServer server = new HttpServer();
697 server.Add(new WebSiteModule("www.gauffin.com", "Gauffin Telecom AB"));
698 server.Add(new WebSiteModule("www.vapadi.se", "Remote PBX"));
699
700 // start regular http
701 server.Start(IPAddress.Any, 80);
702
703 // start https
704 server.Start(IPAddress.Any, 443, myCertificate);
705 </code>
706 </example>
707 <seealso cref="T:HttpServer.HttpModules.HttpModule"/>
708 <seealso cref="T:HttpServer.HttpModules.FileModule"/>
709 <seealso cref="T:HttpServer.HttpListener"/>
710 </member>
711 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.IComponentProvider)">
712 <summary>
713 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
714 </summary>
715 <param name="provider">Used to get all components used in the server..</param>
716 </member>
717 <member name="M:HttpServer.HttpServer.#ctor">
718 <summary>
719 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
720 </summary>
721 </member>
722 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider)">
723 <summary>
724 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
725 </summary>
726 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
727 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
728 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
729 </member>
730 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.Sessions.IHttpSessionStore)">
731 <summary>
732 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
733 </summary>
734 <param name="sessionStore">A session store is used to save and retrieve sessions</param>
735 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/>
736 </member>
737 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.ILogWriter)">
738 <summary>
739 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
740 </summary>
741 <param name="logWriter">The log writer.</param>
742 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
743 </member>
744 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.ILogWriter)">
745 <summary> 305 <summary>
746 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class. 306 The server encountered an unexpected condition which prevented it from fulfilling the request.
747 </summary> 307 </summary>
748 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
749 <param name="logWriter">The log writer.</param>
750 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
751 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
752 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
753 </member> 308 </member>
754 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.Sessions.IHttpSessionStore,HttpServer.ILogWriter)"> 309 <member name="T:HttpServer.Exceptions.HttpException">
755 <summary> 310 <summary>
756 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class. 311 All HTTP based exceptions will derive this class.
757 </summary> 312 </summary>
758 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
759 <param name="sessionStore">A session store is used to save and retrieve sessions</param>
760 <param name="logWriter">The log writer.</param>
761 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
762 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
763 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
764 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/>
765 </member> 313 </member>
766 <member name="M:HttpServer.HttpServer.Add(HttpServer.Rules.IRule)"> 314 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String)">
767 <summary> 315 <summary>
768 Adds the specified rule. 316 Create a new HttpException
769 </summary> 317 </summary>
770 <param name="rule">The rule.</param> 318 <param name="code">http status code (sent in the response)</param>
319 <param name="message">error description</param>
771 </member> 320 </member>
772 <member name="M:HttpServer.HttpServer.Add(HttpServer.HttpModules.HttpModule)"> 321 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String,System.Exception)">
773 <summary> 322 <summary>
774 Add a <see cref="T:HttpServer.HttpModules.HttpModule"/> to the server. 323 Create a new HttpException
775 </summary> 324 </summary>
776 <param name="module">mode to add</param> 325 <param name="code">http status code (sent in the response)</param>
326 <param name="message">error description</param>
327 <param name="inner">inner exception</param>
777 </member> 328 </member>
778 <member name="M:HttpServer.HttpServer.DecodeBody(HttpServer.IHttpRequest)"> 329 <member name="P:HttpServer.Exceptions.HttpException.HttpStatusCode">
779 <summary> 330 <summary>
780 Decodes the request body. 331 status code to use in the response.
781 </summary> 332 </summary>
782 <param name="request">The request.</param>
783 <exception cref="T:HttpServer.Exceptions.InternalServerException">Failed to decode form data.</exception>
784 </member> 333 </member>
785 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,System.Net.HttpStatusCode,System.String)"> 334 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor">
786 <summary> 335 <summary>
787 Generate a HTTP error page (that will be added to the response body). 336 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class.
788 response status code is also set.
789 </summary> 337 </summary>
790 <param name="response">Response that the page will be generated in.</param>
791 <param name="error"><see cref="T:System.Net.HttpStatusCode"/>.</param>
792 <param name="body">response body contents.</param>
793 </member> 338 </member>
794 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,HttpServer.Exceptions.HttpException)"> 339 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor(System.String)">
795 <summary> 340 <summary>
796 Generate a HTTP error page (that will be added to the response body). 341 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class.
797 response status code is also set.
798 </summary> 342 </summary>
799 <param name="response">Response that the page will be generated in.</param> 343 <param name="message">error message.</param>
800 <param name="err">exception.</param>
801 </member> 344 </member>
802 <member name="M:HttpServer.HttpServer.GetRealm(HttpServer.IHttpRequest)"> 345 <member name="M:HttpServer.Exceptions.InternalServerException.#ctor(System.String,System.Exception)">
803 <summary> 346 <summary>
804 Realms are used by the <see cref="T:HttpServer.Authentication.AuthenticationModule"/>s. 347 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.InternalServerException"/> class.
805 </summary> 348 </summary>
806 <param name="request">HTTP request</param> 349 <param name="message">error message.</param>
807 <returns>domain/realm.</returns> 350 <param name="inner">inner exception.</param>
808 </member> 351 </member>
809 <member name="M:HttpServer.HttpServer.HandleRequest(HttpServer.IHttpClientContext,HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 352 <member name="T:HttpServer.Sessions.MemorySessionStore">
810 <summary> 353 <summary>
811 Process an incoming request. 354 Session store using memory for each session.
812 </summary> 355 </summary>
813 <param name="context">connection to client</param>
814 <param name="request">request information</param>
815 <param name="response">response that should be filled</param>
816 <param name="session">session information</param>
817 </member> 356 </member>
818 <member name="M:HttpServer.HttpServer.OnClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)"> 357 <member name="T:HttpServer.Sessions.IHttpSessionStore">
819 <summary> 358 <summary>
820 Can be overloaded to implement stuff when a client have been connected. 359 A session store is used to store and load sessions on a media.
360 The default implementation (<see cref="T:HttpServer.Sessions.MemorySessionStore"/>) saves/retrieves sessions from memory.
821 </summary> 361 </summary>
822 <remarks>
823 Default implementation does nothing.
824 </remarks>
825 <param name="client">client that disconnected</param>
826 <param name="error">disconnect reason</param>
827 </member> 362 </member>
828 <member name="M:HttpServer.HttpServer.ProcessAuthentication(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 363 <member name="M:HttpServer.Sessions.IHttpSessionStore.Create">
829 <summary> 364 <summary>
830 Handle authentication 365 Creates a new http session with a generated id.
831 </summary> 366 </summary>
832 <param name="request"></param> 367 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object</returns>
833 <param name="response"></param>
834 <param name="session"></param>
835 <returns>true if request can be handled; false if not.</returns>
836 <exception cref="T:HttpServer.Exceptions.BadRequestException">Invalid authorization header</exception>
837 </member> 368 </member>
838 <member name="M:HttpServer.HttpServer.RequestAuthentication(HttpServer.Authentication.AuthenticationModule,HttpServer.IHttpRequest,HttpServer.IHttpResponse)"> 369 <member name="M:HttpServer.Sessions.IHttpSessionStore.Create(System.String)">
839 <summary> 370 <summary>
840 Will request authentication. 371 Creates a new http session with a specific id
841 </summary> 372 </summary>
373 <param name="id">Id used to identify the new cookie..</param>
374 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns>
842 <remarks> 375 <remarks>
843 Sends respond to client, nothing else can be done with the response after this. 376 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>.
844 </remarks> 377 </remarks>
845 <param name="mod"></param>
846 <param name="request"></param>
847 <param name="response"></param>
848 </member>
849 <member name="M:HttpServer.HttpServer.OnRequest(System.Object,HttpServer.RequestEventArgs)">
850 <summary>
851 Received from a <see cref="T:HttpServer.IHttpClientContext"/> when a request have been parsed successfully.
852 </summary>
853 <param name="source"><see cref="T:HttpServer.IHttpClientContext"/> that received the request.</param>
854 <param name="args">The request.</param>
855 </member>
856 <member name="M:HttpServer.HttpServer.ProcessRequestWrapper(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
857 <summary>
858 To be able to track request count.
859 </summary>
860 <param name="context"></param>
861 <param name="request"></param>
862 </member>
863 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32)">
864 <summary>
865 Start the web server using regular HTTP.
866 </summary>
867 <param name="address">IP Address to listen on, use <c>IpAddress.Any </c>to accept connections on all IP addresses/network cards.</param>
868 <param name="port">Port to listen on. 80 can be a good idea =)</param>
869 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
870 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
871 </member>
872 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)">
873 <summary>
874 Accept secure connections.
875 </summary>
876 <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>
877 <param name="port">Port to listen on. 80 can be a good idea =)</param>
878 <param name="certificate">Certificate to use</param>
879 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
880 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
881 </member>
882 <member name="M:HttpServer.HttpServer.Stop">
883 <summary>
884 shut down the server and listeners
885 </summary>
886 </member>
887 <member name="M:HttpServer.HttpServer.WriteLog(HttpServer.LogPrio,System.String)">
888 <summary>
889 write an entry to the log file
890 </summary>
891 <param name="prio">importance of the message</param>
892 <param name="message">log message</param>
893 </member>
894 <member name="M:HttpServer.HttpServer.WriteLog(System.Object,HttpServer.LogPrio,System.String)">
895 <summary>
896 write an entry to the log file
897 </summary>
898 <param name="source">object that wrote the message</param>
899 <param name="prio">importance of the message</param>
900 <param name="message">log message</param>
901 </member> 378 </member>
902 <member name="P:HttpServer.HttpServer.Current"> 379 <member name="M:HttpServer.Sessions.IHttpSessionStore.Load(System.String)">
903 <summary> 380 <summary>
904 Server that is handling the current request. 381 Load an existing session.
905 </summary> 382 </summary>
906 <remarks> 383 <param name="sessionId">Session id (usually retrieved from a client side cookie).</param>
907 Will be set as soon as a request arrives to the <see cref="T:HttpServer.HttpServer"/> object. 384 <returns>A session if found; otherwise null.</returns>
908 </remarks>
909 </member> 385 </member>
910 <member name="P:HttpServer.HttpServer.AuthenticationModules"> 386 <member name="M:HttpServer.Sessions.IHttpSessionStore.Save(HttpServer.Sessions.IHttpSession)">
911 <summary> 387 <summary>
912 Modules used for authentication. The module that is is added first is used as 388 Save an updated session to the store.
913 the default authentication module.
914 </summary> 389 </summary>
915 <remarks>Use the corresponding property 390 <param name="session">Session id (usually retrieved from a client side cookie).</param>
916 in the <see cref="T:HttpServer.HttpModules.WebSiteModule"/> if you are using multiple websites.</remarks> 391 <exception cref="T:System.ArgumentException">If Id property have not been specified.</exception>
917 </member> 392 </member>
918 <member name="P:HttpServer.HttpServer.FormDecoderProviders"> 393 <member name="M:HttpServer.Sessions.IHttpSessionStore.AddUnused(HttpServer.Sessions.IHttpSession)">
919 <summary> 394 <summary>
920 Form decoder providers are used to decode request body (which normally contains form data). 395 We use the flyweight pattern which reuses small objects
396 instead of creating new each time.
921 </summary> 397 </summary>
398 <param name="session">Unused session that should be reused next time Create is called.</param>
922 </member> 399 </member>
923 <member name="P:HttpServer.HttpServer.ServerName"> 400 <member name="M:HttpServer.Sessions.IHttpSessionStore.Cleanup">
924 <summary> 401 <summary>
925 Server name sent in HTTP responses. 402 Remove expired sessions
926 </summary> 403 </summary>
927 <remarks>
928 Do NOT include version in name, since it makes it
929 easier for hackers.
930 </remarks>
931 </member> 404 </member>
932 <member name="P:HttpServer.HttpServer.SessionCookieName"> 405 <member name="M:HttpServer.Sessions.IHttpSessionStore.Remove(System.String)">
933 <summary> 406 <summary>
934 Name of cookie where session id is stored. 407 Remove a session
935 </summary> 408 </summary>
409 <param name="sessionId">id of the session.</param>
936 </member> 410 </member>
937 <member name="P:HttpServer.HttpServer.LogWriter"> 411 <member name="P:HttpServer.Sessions.IHttpSessionStore.Item(System.String)">
938 <summary> 412 <summary>
939 Specified where logging should go. 413 Load a session from the store
940 </summary> 414 </summary>
941 <seealso cref="T:HttpServer.NullLogWriter"/> 415 <param name="sessionId"></param>
942 <seealso cref="T:HttpServer.ConsoleLogWriter"/> 416 <returns>null if session is not found.</returns>
943 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
944 </member> 417 </member>
945 <member name="P:HttpServer.HttpServer.BackLog"> 418 <member name="P:HttpServer.Sessions.IHttpSessionStore.ExpireTime">
946 <summary> 419 <summary>
947 Number of connections that can wait to be accepted by the server. 420 Number of minutes before a session expires.
948 </summary> 421 </summary>
949 <remarks>Default is 10.</remarks> 422 <value>Default time is 20 minutes.</value>
950 </member> 423 </member>
951 <member name="P:HttpServer.HttpServer.MaxRequestCount"> 424 <member name="M:HttpServer.Sessions.MemorySessionStore.#ctor">
952 <summary> 425 <summary>
953 Gets or sets maximum number of allowed simultaneous requests. 426 Initializes the class setting the expirationtimer to clean the session every minute
954 </summary> 427 </summary>
955 <remarks>
956 <para>
957 This property is useful in busy systems. The HTTP server
958 will start queuing new requests if this limit is hit, instead
959 of trying to process all incoming requests directly.
960 </para>
961 <para>
962 The default number if allowed simultaneous requests are 10.
963 </para>
964 </remarks>
965 </member> 428 </member>
966 <member name="P:HttpServer.HttpServer.MaxQueueSize"> 429 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup(System.Object)">
967 <summary> 430 <summary>
968 Gets or sets maximum number of requests queuing to be handled. 431 Delegate for the cleanup timer
969 </summary> 432 </summary>
970 <remarks>
971 <para>
972 The WebServer will start turning requests away if response code
973 <see cref="F:System.Net.HttpStatusCode.ServiceUnavailable"/> to indicate that the server
974 is too busy to be able to handle the request.
975 </para>
976 </remarks>
977 </member> 433 </member>
978 <member name="E:HttpServer.HttpServer.RealmWanted"> 434 <member name="M:HttpServer.Sessions.MemorySessionStore.Create">
979 <summary> 435 <summary>
980 Realms are used during HTTP authentication. 436 Creates a new http session
981 Default realm is same as server name.
982 </summary> 437 </summary>
438 <returns></returns>
983 </member> 439 </member>
984 <member name="E:HttpServer.HttpServer.ExceptionThrown"> 440 <member name="M:HttpServer.Sessions.MemorySessionStore.Create(System.String)">
985 <summary> 441 <summary>
986 Let's to receive unhandled exceptions from the threads. 442 Creates a new http session with a specific id
987 </summary> 443 </summary>
444 <param name="id">Id used to identify the new cookie..</param>
445 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns>
988 <remarks> 446 <remarks>
989 Exceptions will be thrown during debug mode if this event is not used, 447 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>.
990 exceptions will be printed to console and suppressed during release mode.
991 </remarks> 448 </remarks>
992 </member> 449 </member>
993 <member name="T:HttpServer.Helpers.WebHelper"> 450 <member name="M:HttpServer.Sessions.MemorySessionStore.Load(System.String)">
994 <summary>
995 Webhelper provides helpers for common tasks in HTML.
996 </summary>
997 </member>
998 <member name="F:HttpServer.Helpers.WebHelper.JSImplementation">
999 <summary>
1000 Used to let the website use different javascript libraries.
1001 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/>
1002 </summary>
1003 </member>
1004 <member name="M:HttpServer.Helpers.WebHelper.AjaxRequest(System.String,System.String,System.String[])">
1005 <summary>
1006 Creates a link that invokes through ajax.
1007 </summary>
1008 <param name="url">url to fetch</param>
1009 <param name="title">link title</param>
1010 <param name="options">
1011 optional options in format "key, value, key, value".
1012 Javascript options starts with ':'.
1013 </param>
1014 <returns>a link tag</returns>
1015 <example>
1016 WebHelper.AjaxRequest("/users/add/", "Add user", "method:", "post", "onclick", "validate('this');");
1017 </example>
1018 </member>
1019 <member name="M:HttpServer.Helpers.WebHelper.AjaxUpdater(System.String,System.String,System.String,System.String[])">
1020 <summary>
1021 Builds a link that updates an element with the fetched ajax content.
1022 </summary>
1023 <param name="url">Url to fetch content from</param>
1024 <param name="title">link title</param>
1025 <param name="targetId">html element to update with the results of the ajax request.</param>
1026 <param name="options">optional options in format "key, value, key, value"</param>
1027 <returns>A link tag.</returns>
1028 </member>
1029 <member name="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])">
1030 <summary>
1031 A link that pop ups a Dialog (overlay div)
1032 </summary>
1033 <param name="url">url to contents of dialog</param>
1034 <param name="title">link title</param>
1035 <param name="htmlAttributes">name/value of html attributes.</param>
1036 <returns>A "a"-tag that popups a dialog when clicked</returns>
1037 <example>
1038 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
1039 </example>
1040 </member>
1041 <member name="M:HttpServer.Helpers.WebHelper.CreateDialog(System.String,System.String,System.String[])">
1042 <summary>
1043 Create/Open a dialog box using ajax
1044 </summary>
1045 <param name="url"></param>
1046 <param name="title"></param>
1047 <param name="parameters"></param>
1048 <returns></returns>
1049 </member>
1050 <member name="M:HttpServer.Helpers.WebHelper.CloseDialog">
1051 <summary>
1052 Close a javascript dialog window/div.
1053 </summary>
1054 <returns>javascript for closing a dialog.</returns>
1055 <see cref="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])"/>
1056 </member>
1057 <member name="M:HttpServer.Helpers.WebHelper.FormStart(System.String,System.String,System.Boolean)">
1058 <summary>
1059 Create a &lt;form&gt; tag.
1060 </summary>
1061 <param name="name">name of form</param>
1062 <param name="action">action to invoke on submit</param>
1063 <param name="isAjax">form should be posted as ajax</param>
1064 <returns>html code</returns>
1065 <example>
1066 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
1067 </example>
1068 </member>
1069 <member name="M:HttpServer.Helpers.WebHelper.Link(System.String,System.String,System.String[])">
1070 <summary>
1071 Create a link tag.
1072 </summary>
1073 <param name="url">url to go to</param>
1074 <param name="title">link title (text that is displayed)</param>
1075 <param name="htmlAttributes">html attributes, name, value, name, value</param>
1076 <returns>html code</returns>
1077 <example>
1078 WebHelper.Link("/user/show/1", "Show user", "id", "showUser", "onclick", "return confirm('Are you shure?');");
1079 </example>
1080 </member>
1081 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[])">
1082 <summary>
1083 Build a link
1084 </summary>
1085 <param name="url">url to go to.</param>
1086 <param name="title">title of link (displayed text)</param>
1087 <param name="htmlAttributes">extra html attributes.</param>
1088 <returns>a complete link</returns>
1089 </member>
1090 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[],System.String[])">
1091 <summary>
1092 Build a link
1093 </summary>
1094 <param name="url">url to go to.</param>
1095 <param name="title">title of link (displayed text)</param>
1096 <param name="htmlAttributes">extra html attributes.</param>
1097 <returns>a complete link</returns>
1098 <param name="options">more options</param>
1099 </member>
1100 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
1101 <summary>
1102 Obsolete
1103 </summary>
1104 <param name="name">Obsolete</param>
1105 <param name="collection">Obsolete</param>
1106 <param name="getIdTitle">Obsolete</param>
1107 <param name="selectedValue">Obsolete</param>
1108 <param name="firstEmpty">Obsolete</param>
1109 <returns>Obsolete</returns>
1110 </member>
1111 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
1112 <summary>
1113 Obsolete
1114 </summary>
1115 <param name="name">Obsolete</param>
1116 <param name="id">Obsolete</param>
1117 <param name="collection">Obsolete</param>
1118 <param name="getIdTitle">Obsolete</param>
1119 <param name="selectedValue">Obsolete</param>
1120 <param name="firstEmpty">Obsolete</param>
1121 <returns>Obsolete</returns>
1122 </member>
1123 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Generic.IEnumerable{System.Object},System.String)">
1124 <summary>
1125 Render errors into a UL with class "errors"
1126 </summary>
1127 <param name="className">class used by UL-tag.</param>
1128 <param name="theList">items to list</param>
1129 <returns>an unordered html list.</returns>
1130 </member>
1131 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Specialized.NameValueCollection,System.String)">
1132 <summary>
1133 Render errors into a UL with class "errors"
1134 </summary>
1135 <param name="className">class used by UL-tag.</param>
1136 <param name="theList">items to list</param>
1137 <returns>an unordered html list.</returns>
1138 </member>
1139 <member name="M:HttpServer.Helpers.WebHelper.Errors(System.Collections.Specialized.NameValueCollection)">
1140 <summary> 451 <summary>
1141 Render errors into a UL with class "errors" 452 Load an existing session.
1142 </summary> 453 </summary>
1143 <param name="errors"></param> 454 <param name="sessionId"></param>
1144 <returns></returns> 455 <returns></returns>
1145 </member> 456 </member>
1146 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[],System.String[])"> 457 <member name="M:HttpServer.Sessions.MemorySessionStore.Save(HttpServer.Sessions.IHttpSession)">
1147 <summary> 458 <summary>
1148 Generates a list with html attributes. 459 Save an updated session to the store.
1149 </summary> 460 </summary>
1150 <param name="sb">StringBuilder that the options should be added to.</param> 461 <param name="session"></param>
1151 <param name="firstOptions">attributes set by user.</param>
1152 <param name="secondOptions">attributes set by any of the helper classes.</param>
1153 </member> 462 </member>
1154 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[])"> 463 <member name="M:HttpServer.Sessions.MemorySessionStore.AddUnused(HttpServer.Sessions.IHttpSession)">
1155 <summary> 464 <summary>
1156 Generates a list with html attributes. 465 We use the flyweight pattern which reuses small objects
466 instead of creating new each time.
1157 </summary> 467 </summary>
1158 <param name="sb">StringBuilder that the options should be added to.</param> 468 <param name="session">EmptyLanguageNode (unused) session that should be reused next time Create is called.</param>
1159 <param name="options"></param>
1160 </member> 469 </member>
1161 <member name="T:HttpServer.Helpers.JavascriptHelperImplementation"> 470 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup">
1162 <summary> 471 <summary>
1163 Purpose of this class is to create a javascript toolkit independent javascript helper. 472 Remove expired sessions
1164 </summary> 473 </summary>
1165 </member> 474 </member>
1166 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.GenerateOptions(System.Text.StringBuilder,System.String[],System.Boolean)"> 475 <member name="M:HttpServer.Sessions.MemorySessionStore.Remove(System.String)">
1167 <summary> 476 <summary>
1168 Generates a list with JS options. 477 Remove a session
1169 </summary> 478 </summary>
1170 <param name="sb">StringBuilder that the options should be added to.</param> 479 <param name="sessionId">id of the session.</param>
1171 <param name="options">the javascript options. name, value pairs. each string value should be escaped by YOU!</param>
1172 <param name="startWithComma">true if we should start with a comma.</param>
1173 </member> 480 </member>
1174 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.RemoveJavascriptOptions(System.String[])"> 481 <member name="P:HttpServer.Sessions.MemorySessionStore.Item(System.String)">
1175 <summary> 482 <summary>
1176 Removes any javascript parameters from an array of parameters 483 Load a session from the store
1177 </summary> 484 </summary>
1178 <param name="options">The array of parameters to remove javascript params from</param> 485 <param name="sessionId"></param>
1179 <returns>An array of html parameters</returns> 486 <returns>null if session is not found.</returns>
1180 </member> 487 </member>
1181 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxFormOnSubmit(System.String[])"> 488 <member name="P:HttpServer.Sessions.MemorySessionStore.ExpireTime">
1182 <summary> 489 <summary>
1183 javascript action that should be added to the "onsubmit" event in the form tag. 490 Number of minutes before a session expires.
491 Default is 20 minutes.
1184 </summary> 492 </summary>
1185 <returns></returns>
1186 <remarks>All javascript option names should end with colon.</remarks>
1187 <example>
1188 <code>
1189 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
1190 </code>
1191 </example>
1192 </member> 493 </member>
1193 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxRequest(System.String,System.String[])"> 494 <member name="T:HttpServer.ResponseCookies">
1194 <summary> 495 <summary>
1195 Requests a url through ajax 496 Cookies that should be set.
1196 </summary> 497 </summary>
1197 <param name="url">url to fetch</param>
1198 <param name="options">optional options in format "key, value, key, value", used in JS request object.</param>
1199 <returns>a link tag</returns>
1200 <remarks>All javascript option names should end with colon.</remarks>
1201 <example>
1202 <code>
1203 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
1204 </code>
1205 </example>
1206 </member> 498 </member>
1207 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxUpdater(System.String,System.String,System.String[])"> 499 <member name="M:HttpServer.ResponseCookies.Add(HttpServer.ResponseCookie)">
1208 <summary> 500 <summary>
1209 Ajax requests that updates an element with 501 Adds a cookie in the collection.
1210 the fetched content
1211 </summary> 502 </summary>
1212 <param name="url">Url to fetch content from</param> 503 <param name="cookie">cookie to add</param>
1213 <param name="targetId">element to update</param> 504 <exception cref="T:System.ArgumentNullException">cookie is null</exception>
1214 <param name="options">optional options in format "key, value, key, value", used in JS updater object.</param>
1215 <returns>A link tag.</returns>
1216 <remarks>All javascript option names should end with colon.</remarks>
1217 <example>
1218 <code>
1219 JSHelper.AjaxUpdater("/user/show/1", "userInfo", "onsuccess:", "alert('Successful!');");
1220 </code>
1221 </example>
1222 </member> 505 </member>
1223 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])"> 506 <member name="M:HttpServer.ResponseCookies.Add(HttpServer.RequestCookie,System.DateTime)">
1224 <summary> 507 <summary>
1225 A link that pop ups a Dialog (overlay div) 508 Copy a request cookie
1226 </summary> 509 </summary>
1227 <param name="url">url to contents of dialog</param> 510 <param name="cookie"></param>
1228 <param name="title">link title</param> 511 <param name="expires">When the cookie should expire</param>
1229 <returns>A "a"-tag that popups a dialog when clicked</returns>
1230 <param name="htmlAttributes">name/value of html attributes</param>
1231 <example>
1232 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
1233 </example>
1234 </member> 512 </member>
1235 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CloseDialog"> 513 <member name="M:HttpServer.ResponseCookies.GetEnumerator">
1236 <summary> 514 <summary>
1237 Close a javascript dialog window/div. 515 Gets a collection enumerator on the cookie list.
1238 </summary> 516 </summary>
1239 <returns>javascript for closing a dialog.</returns> 517 <returns>collection enumerator</returns>
1240 <see cref="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])"/>
1241 </member> 518 </member>
1242 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CreateDialog(System.String,System.String,System.String[])"> 519 <member name="M:HttpServer.ResponseCookies.Clear">
1243 <summary> 520 <summary>
1244 Creates a new modal dialog window 521 Remove all cookies
1245 </summary> 522 </summary>
1246 <param name="url">url to open in window.</param>
1247 <param name="title">window title (may not be supported by all js implementations)</param>
1248 <param name="options"></param>
1249 <returns></returns>
1250 </member> 523 </member>
1251 <member name="T:HttpServer.Helpers.Implementations.PrototypeImp"> 524 <member name="M:HttpServer.ResponseCookies.System#Collections#Generic#IEnumerable{HttpServer#ResponseCookie}#GetEnumerator">
1252 <summary> 525 <summary>
1253 PrototypeJS implementation of the javascript functions. 526 Returns an enumerator that iterates through the collection.
1254 </summary> 527 </summary>
528
529 <returns>
530 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
531 </returns>
532 <filterpriority>1</filterpriority>
1255 </member> 533 </member>
1256 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxRequest(System.String,System.String[])"> 534 <member name="P:HttpServer.ResponseCookies.Count">
1257 <summary> 535 <summary>
1258 Requests a url through ajax 536 Gets the count of cookies in the collection.
1259 </summary> 537 </summary>
1260 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
1261 <param name="options">optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.</param>
1262 <returns>a link tag</returns>
1263 <remarks>onclick attribute is used by this method.</remarks>
1264 <example>
1265 <code>
1266 // plain text
1267 JSHelper.AjaxRequest("'/user/show/1'");
1268
1269 // ajax request using this.href
1270 string link = "&lt;a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/&lt;call user&lt;/a&gt;";
1271 </code>
1272 </example>
1273 </member> 538 </member>
1274 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.Contains(System.Collections.Generic.IEnumerable{System.String},System.String)"> 539 <member name="P:HttpServer.ResponseCookies.Item(System.String)">
1275 <summary> 540 <summary>
1276 Determins if a list of strings contains a specific value 541 Gets the cookie of a given identifier (null if not existing).
1277 </summary> 542 </summary>
1278 <param name="options">options to check in</param>
1279 <param name="value">value to find</param>
1280 <returns>true if value was found</returns>
1281 <remarks>case insensitive</remarks>
1282 </member> 543 </member>
1283 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxUpdater(System.String,System.String,System.String[])"> 544 <member name="T:HttpServer.Check">
1284 <summary> 545 <summary>
1285 Ajax requests that updates an element with 546 Small design by contract implementation.
1286 the fetched content
1287 </summary> 547 </summary>
1288 <param name="url">URL to fetch. URL is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
1289 <param name="targetId">element to update</param>
1290 <param name="options">options in format "key, value, key, value". All keys should end with colon.</param>
1291 <returns>A link tag.</returns>
1292 <example>
1293 <code>
1294 JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true");
1295 </code>
1296 </example>
1297 </member> 548 </member>
1298 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.DialogLink(System.String,System.String,System.String[])"> 549 <member name="M:HttpServer.Check.NotEmpty(System.String,System.String)">
1299 <summary> 550 <summary>
1300 A link that pop ups a Dialog (overlay div) 551 Check whether a parameter is empty.
1301 </summary> 552 </summary>
1302 <param name="url">URL to contents of dialog</param> 553 <param name="value">Parameter value</param>
1303 <param name="title">link title</param> 554 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
1304 <param name="htmlAttributes">name, value, name, value</param> 555 <exception cref="T:System.ArgumentException">value is empty.</exception>
1305 <returns>
1306 A "a"-tag that popups a dialog when clicked
1307 </returns>
1308 <remarks><para>Requires Control.Modal found here: http://livepipe.net/projects/control_modal/</para>
1309 And the following JavaScript (load it in application.js):
1310 <code>
1311 Event.observe(window, 'load',
1312 function() {
1313 document.getElementsByClassName('modal').each(function(link){ new Control.Modal(link); });
1314 }
1315 );
1316 </code>
1317 </remarks>
1318 <example>
1319 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
1320 </example>
1321 </member> 556 </member>
1322 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.CreateDialog(System.String,System.String,System.String[])"> 557 <member name="M:HttpServer.Check.Require(System.Object,System.String)">
1323 <summary> 558 <summary>
1324 create a modal dialog (usually using DIVs) 559 Checks whether a parameter is null.
1325 </summary> 560 </summary>
1326 <param name="url">url to fetch</param> 561 <param name="value">Parameter value</param>
1327 <param name="title">dialog title</param> 562 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
1328 <param name="options">javascript/html attributes. javascript options ends with colon ':'.</param> 563 <exception cref="T:System.ArgumentNullException">value is null.</exception>
1329 <returns></returns>
1330 </member> 564 </member>
1331 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.CloseDialog"> 565 <member name="M:HttpServer.Check.Min(System.Int32,System.Object,System.String)">
1332 <summary> 566 <summary>
1333 Close a javascript dialog window/div. 567 Checks whether a parameter is null.
1334 </summary> 568 </summary>
1335 <returns>javascript for closing a dialog.</returns> 569 <param name="minValue"></param>
1336 <see cref="M:HttpServer.Helpers.Implementations.PrototypeImp.DialogLink(System.String,System.String,System.String[])"/> 570 <param name="value">Parameter value</param>
571 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
572 <exception cref="T:System.ArgumentException">value is null.</exception>
1337 </member> 573 </member>
1338 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxFormOnSubmit(System.String[])"> 574 <member name="T:HttpServer.Parser.HttpRequestParser">
1339 <summary> 575 <summary>
1340 javascript action that should be added to the "onsubmit" event in the form tag. 576 Parses a HTTP request directly from a stream
1341 </summary> 577 </summary>
1342 <param name="options">remember to encapsulate strings in ''</param>
1343 <returns></returns>
1344 <remarks>All javascript option names should end with colon.</remarks>
1345 <example>
1346 <code>
1347 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
1348 </code>
1349 </example>
1350 </member> 578 </member>
1351 <member name="T:HttpServer.IHttpRequestParser"> 579 <member name="T:HttpServer.IHttpRequestParser">
1352 <summary> 580 <summary>
@@ -1403,392 +631,110 @@
1403 Gets or sets the log writer. 631 Gets or sets the log writer.
1404 </summary> 632 </summary>
1405 </member> 633 </member>
1406 <member name="T:HttpServer.RequestParserState"> 634 <member name="M:HttpServer.Parser.HttpRequestParser.#ctor(HttpServer.ILogWriter)">
1407 <summary>
1408 Current state in the parsing.
1409 </summary>
1410 </member>
1411 <member name="F:HttpServer.RequestParserState.FirstLine">
1412 <summary>
1413 Should parse the request line
1414 </summary>
1415 </member>
1416 <member name="F:HttpServer.RequestParserState.HeaderName">
1417 <summary>
1418 Searching for a complete header name
1419 </summary>
1420 </member>
1421 <member name="F:HttpServer.RequestParserState.AfterName">
1422 <summary>
1423 Searching for colon after header name (ignoring white spaces)
1424 </summary>
1425 </member>
1426 <member name="F:HttpServer.RequestParserState.Between">
1427 <summary>
1428 Searching for start of header value (ignoring white spaces)
1429 </summary>
1430 </member>
1431 <member name="F:HttpServer.RequestParserState.HeaderValue">
1432 <summary>
1433 Searching for a complete header value (can span over multiple lines, as long as they are prefixed with one/more whitespaces)
1434 </summary>
1435 </member>
1436 <member name="F:HttpServer.RequestParserState.Body">
1437 <summary>
1438 Adding bytes to body
1439 </summary>
1440 </member>
1441 <member name="T:HttpServer.IHttpRequest">
1442 <summary>
1443 Contains server side HTTP request information.
1444 </summary>
1445 </member>
1446 <member name="M:HttpServer.IHttpRequest.AddHeader(System.String,System.String)">
1447 <summary>
1448 Called during parsing of a <see cref="T:HttpServer.IHttpRequest"/>.
1449 </summary>
1450 <param name="name">Name of the header, should not be URL encoded</param>
1451 <param name="value">Value of the header, should not be URL encoded</param>
1452 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception>
1453 </member>
1454 <member name="M:HttpServer.IHttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)">
1455 <summary>
1456 Add bytes to the body
1457 </summary>
1458 <param name="bytes">buffer to read bytes from</param>
1459 <param name="offset">where to start read</param>
1460 <param name="length">number of bytes to read</param>
1461 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns>
1462 <exception cref="T:System.InvalidOperationException">If body is not writable</exception>
1463 <exception cref="T:System.ArgumentNullException"><c>bytes</c> is null.</exception>
1464 <exception cref="T:System.ArgumentOutOfRangeException"><c>offset</c> is out of range.</exception>
1465 </member>
1466 <member name="M:HttpServer.IHttpRequest.Clear">
1467 <summary>
1468 Clear everything in the request
1469 </summary>
1470 </member>
1471 <member name="M:HttpServer.IHttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)">
1472 <summary>
1473 Decode body into a form.
1474 </summary>
1475 <param name="providers">A list with form decoders.</param>
1476 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception>
1477 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception>
1478 </member>
1479 <member name="M:HttpServer.IHttpRequest.SetCookies(HttpServer.RequestCookies)">
1480 <summary>
1481 Sets the cookies.
1482 </summary>
1483 <param name="cookies">The cookies.</param>
1484 </member>
1485 <member name="M:HttpServer.IHttpRequest.CreateResponse(HttpServer.IHttpClientContext)">
1486 <summary>
1487 Create a response object.
1488 </summary>
1489 <param name="context">Context for the connected client.</param>
1490 <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns>
1491 </member>
1492 <member name="P:HttpServer.IHttpRequest.AcceptTypes">
1493 <summary>
1494 Gets kind of types accepted by the client.
1495 </summary>
1496 </member>
1497 <member name="P:HttpServer.IHttpRequest.Body">
1498 <summary>
1499 Gets or sets body stream.
1500 </summary>
1501 </member>
1502 <member name="P:HttpServer.IHttpRequest.BodyIsComplete">
1503 <summary>
1504 Gets whether the body is complete.
1505 </summary>
1506 </member>
1507 <member name="P:HttpServer.IHttpRequest.Connection">
1508 <summary>
1509 Gets or sets kind of connection used for the session.
1510 </summary>
1511 </member>
1512 <member name="P:HttpServer.IHttpRequest.ContentLength">
1513 <summary>
1514 Gets or sets number of bytes in the body.
1515 </summary>
1516 </member>
1517 <member name="P:HttpServer.IHttpRequest.Cookies">
1518 <summary>
1519 Gets cookies that was sent with the request.
1520 </summary>
1521 </member>
1522 <member name="P:HttpServer.IHttpRequest.Form">
1523 <summary>
1524 Gets form parameters.
1525 </summary>
1526 </member>
1527 <member name="P:HttpServer.IHttpRequest.Headers">
1528 <summary>
1529 Gets headers sent by the client.
1530 </summary>
1531 </member>
1532 <member name="P:HttpServer.IHttpRequest.HttpVersion">
1533 <summary>
1534 Gets or sets version of HTTP protocol that's used.
1535 </summary>
1536 <remarks>
1537 Probably <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/>.
1538 </remarks>
1539 <seealso cref="T:HttpServer.HttpHelper"/>
1540 </member>
1541 <member name="P:HttpServer.IHttpRequest.IsAjax">
1542 <summary>
1543 Gets whether the request was made by Ajax (Asynchronous JavaScript)
1544 </summary>
1545 </member>
1546 <member name="P:HttpServer.IHttpRequest.Method">
1547 <summary>
1548 Gets or sets requested method.
1549 </summary>
1550 <remarks>
1551 Will always be in upper case.
1552 </remarks>
1553 <see cref="P:HttpServer.IHttpRequest.Method"/>
1554 </member>
1555 <member name="P:HttpServer.IHttpRequest.Param">
1556 <summary>
1557 Gets parameter from <see cref="P:HttpServer.IHttpRequest.QueryString"/> or <see cref="P:HttpServer.IHttpRequest.Form"/>.
1558 </summary>
1559 </member>
1560 <member name="P:HttpServer.IHttpRequest.QueryString">
1561 <summary>
1562 Gets variables sent in the query string
1563 </summary>
1564 </member>
1565 <member name="P:HttpServer.IHttpRequest.Uri">
1566 <summary>
1567 Gets or sets requested URI.
1568 </summary>
1569 </member>
1570 <member name="P:HttpServer.IHttpRequest.UriParts">
1571 <summary> 635 <summary>
1572 Gets URI absolute path divided into parts. 636 Create a new request parser
1573 </summary> 637 </summary>
1574 <example> 638 <param name="logWriter">delegate receiving log entries.</param>
1575 // URI is: http://gauffin.com/code/tiny/
1576 Console.WriteLine(request.UriParts[0]); // result: code
1577 Console.WriteLine(request.UriParts[1]); // result: tiny
1578 </example>
1579 <remarks>
1580 If you're using controllers than the first part is controller name,
1581 the second part is method name and the third part is Id property.
1582 </remarks>
1583 <seealso cref="P:HttpServer.IHttpRequest.Uri"/>
1584 </member> 639 </member>
1585 <member name="P:HttpServer.IHttpRequest.UriPath"> 640 <member name="M:HttpServer.Parser.HttpRequestParser.AddToBody(System.Byte[],System.Int32,System.Int32)">
1586 <summary> 641 <summary>
1587 Gets or sets path and query. 642 Add a number of bytes to the body
1588 </summary> 643 </summary>
1589 <see cref="P:HttpServer.IHttpRequest.Uri"/> 644 <param name="buffer">buffer containing more body bytes.</param>
1590 <remarks> 645 <param name="offset">starting offset in buffer</param>
1591 Are only used during request parsing. Cannot be set after "Host" header have been 646 <param name="count">number of bytes, from offset, to read.</param>
1592 added. 647 <returns>offset to continue from.</returns>
1593 </remarks>
1594 </member> 648 </member>
1595 <member name="T:HttpServer.Authentication.AuthenticationHandler"> 649 <member name="M:HttpServer.Parser.HttpRequestParser.Clear">
1596 <summary> 650 <summary>
1597 Delegate used to let authentication modules authenticate the user name and password. 651 Remove all state information for the request.
1598 </summary> 652 </summary>
1599 <param name="realm">Realm that the user want to authenticate in</param>
1600 <param name="userName">User name specified by client</param>
1601 <param name="token">Can either be user password or implementation specific token.</param>
1602 <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>
1603 <exception cref="T:HttpServer.Exceptions.ForbiddenException">throw forbidden exception if too many attempts have been made.</exception>
1604 <remarks>
1605 <para>
1606 Use <see cref="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1"/> to specify that the token is a HA1 token. (MD5 generated
1607 string from realm, user name and password); Md5String(userName + ":" + realm + ":" + password);
1608 </para>
1609 </remarks>
1610 </member> 653 </member>
1611 <member name="T:HttpServer.Authentication.AuthenticationRequiredHandler"> 654 <member name="M:HttpServer.Parser.HttpRequestParser.OnFirstLine(System.String)">
1612 <summary> 655 <summary>
1613 Let's you decide on a system level if authentication is required. 656 Parse request line
1614 </summary> 657 </summary>
1615 <param name="request">HTTP request from client</param> 658 <param name="value"></param>
1616 <returns>true if user should be authenticated.</returns> 659 <exception cref="T:HttpServer.Exceptions.BadRequestException">If line is incorrect</exception>
1617 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> if no more attempts are allowed.</remarks> 660 <remarks>Expects the following format: "Method SP Request-URI SP HTTP-Version CRLF"</remarks>
1618 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
1619 </member> 661 </member>
1620 <member name="T:HttpServer.HttpModules.ResourceFileModule"> 662 <member name="M:HttpServer.Parser.HttpRequestParser.OnHeader(System.String,System.String)">
1621 <summary> 663 <summary>
1622 Serves files that are stored in embedded resources. 664 We've parsed a new header.
1623 </summary> 665 </summary>
666 <param name="name">Name in lower case</param>
667 <param name="value">Value, unmodified.</param>
668 <exception cref="T:HttpServer.Exceptions.BadRequestException">If content length cannot be parsed.</exception>
1624 </member> 669 </member>
1625 <member name="T:HttpServer.HttpModules.HttpModule"> 670 <member name="M:HttpServer.Parser.HttpRequestParser.Parse(System.Byte[],System.Int32,System.Int32)">
1626 <summary> 671 <summary>
1627 A HttpModule can be used to serve Uri's. The module itself 672 Parse a message
1628 decides if it should serve a Uri or not. In this way, you can
1629 get a very flexible http application since you can let multiple modules
1630 serve almost similar urls.
1631 </summary> 673 </summary>
1632 <remarks> 674 <param name="buffer">bytes to parse.</param>
1633 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. 675 <param name="offset">where in buffer that parsing should start</param>
1634 </remarks> 676 <param name="count">number of bytes to parse, starting on <paramref name="offset"/>.</param>
677 <returns>offset (where to start parsing next).</returns>
678 <exception cref="T:HttpServer.Exceptions.BadRequestException"><c>BadRequestException</c>.</exception>
1635 </member> 679 </member>
1636 <member name="M:HttpServer.HttpModules.HttpModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 680 <member name="P:HttpServer.Parser.HttpRequestParser.LogWriter">
1637 <summary> 681 <summary>
1638 Method that process the url 682 Gets or sets the log writer.
1639 </summary> 683 </summary>
1640 <param name="request">Information sent by the browser about the request</param>
1641 <param name="response">Information that is being sent back to the client.</param>
1642 <param name="session">Session used to </param>
1643 <returns>true if this module handled the request.</returns>
1644 </member> 684 </member>
1645 <member name="M:HttpServer.HttpModules.HttpModule.SetLogWriter(HttpServer.ILogWriter)"> 685 <member name="P:HttpServer.Parser.HttpRequestParser.CurrentState">
1646 <summary> 686 <summary>
1647 Set the log writer to use. 687 Current state in parser.
1648 </summary> 688 </summary>
1649 <param name="writer">logwriter to use.</param>
1650 </member> 689 </member>
1651 <member name="M:HttpServer.HttpModules.HttpModule.Write(HttpServer.LogPrio,System.String)"> 690 <member name="E:HttpServer.Parser.HttpRequestParser.RequestCompleted">
1652 <summary> 691 <summary>
1653 Log something. 692 A request have been successfully parsed.
1654 </summary> 693 </summary>
1655 <param name="prio">importance of log message</param>
1656 <param name="message">message</param>
1657 </member> 694 </member>
1658 <member name="P:HttpServer.HttpModules.HttpModule.AllowSecondaryProcessing"> 695 <member name="E:HttpServer.Parser.HttpRequestParser.BodyBytesReceived">
1659 <summary> 696 <summary>
1660 If true specifies that the module doesn't consume the processing of a request so that subsequent modules 697 More body bytes have been received.
1661 can continue processing afterwards. Default is false.
1662 </summary> 698 </summary>
1663 </member> 699 </member>
1664 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor"> 700 <member name="E:HttpServer.Parser.HttpRequestParser.RequestLineReceived">
1665 <summary> 701 <summary>
1666 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class. 702 Request line have been received.
1667 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later
1668 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired.
1669 </summary> 703 </summary>
1670 </member> 704 </member>
1671 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor(HttpServer.ILogWriter)"> 705 <member name="E:HttpServer.Parser.HttpRequestParser.HeaderReceived">
1672 <summary> 706 <summary>
1673 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class. 707 A header have been received.
1674 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later
1675 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired.
1676 </summary> 708 </summary>
1677 <param name="logWriter">The log writer to use when logging events</param>
1678 </member> 709 </member>
1679 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"> 710 <member name="T:HttpServer.HttpModules.WebSiteModule">
1680 <summary> 711 <summary>
1681 Mimtypes that this class can handle per default 712 The website module let's you handle multiple websites in the same server.
713 It uses the "Host" header to check which site you want.
1682 </summary> 714 </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>
1683 </member> 718 </member>
1684 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddResources(System.String,System.Reflection.Assembly,System.String)"> 719 <member name="M:HttpServer.HttpModules.WebSiteModule.#ctor(System.String,System.String)">
1685 <summary> 720 <summary>
1686 Loads resources from a namespace in the given assembly to an uri
1687 </summary>
1688 <param name="toUri">The uri to map the resources to</param>
1689 <param name="fromAssembly">The assembly in which the resources reside</param>
1690 <param name="fromNamespace">The namespace from which to load the resources</param>
1691 <usage>
1692 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
1693 721
1694 will make ie the resource MyLib.Models.User.Views.stylesheet.css accessible via /user/stylesheet.css
1695 </usage>
1696 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns>
1697 </member>
1698 <member name="M:HttpServer.HttpModules.ResourceFileModule.CanHandle(HttpServer.IHttpRequest)">
1699 <summary>
1700 Returns true if the module can handle the request
1701 </summary> 722 </summary>
723 <param name="host">domain name that should be handled.</param>
724 <param name="name"></param>
1702 </member> 725 </member>
1703 <member name="M:HttpServer.HttpModules.ResourceFileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 726 <member name="M:HttpServer.HttpModules.WebSiteModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
1704 <summary> 727 <summary>
1705 Method that process the url 728 Method that process the url
1706 </summary> 729 </summary>
1707 <param name="request">Information sent by the browser about the request</param> 730 <param name="request">Information sent by the browser about the request</param>
1708 <param name="response">Information that is being sent back to the client.</param> 731 <param name="response">Information that is being sent back to the client.</param>
1709 <param name="session">Session used to </param> 732 <param name="session">Session used to </param>
1710 <returns>true if this module handled the request.</returns>
1711 </member>
1712 <member name="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes">
1713 <summary>
1714 List with all mime-type that are allowed.
1715 </summary>
1716 <remarks>All other mime types will result in a Forbidden http status code.</remarks>
1717 </member> 733 </member>
1718 <member name="T:HttpServer.HttpModules.FileModule"> 734 <member name="P:HttpServer.HttpModules.WebSiteModule.SiteName">
1719 <summary>
1720 The purpose of this module is to serve files.
1721 </summary>
1722 </member>
1723 <member name="M:HttpServer.HttpModules.FileModule.#ctor(System.String,System.String,System.Boolean)">
1724 <summary>
1725 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.FileModule"/> class.
1726 </summary>
1727 <param name="baseUri">Uri to serve, for instance "/files/"</param>
1728 <param name="basePath">Path on hard drive where we should start looking for files</param>
1729 <param name="useLastModifiedHeader">If true a Last-Modifed header will be sent upon requests urging web browser to cache files</param>
1730 </member>
1731 <member name="M:HttpServer.HttpModules.FileModule.#ctor(System.String,System.String)">
1732 <summary>
1733 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.FileModule"/> class.
1734 </summary>
1735 <param name="baseUri">Uri to serve, for instance "/files/"</param>
1736 <param name="basePath">Path on hard drive where we should start looking for files</param>
1737 </member>
1738 <member name="M:HttpServer.HttpModules.FileModule.AddDefaultMimeTypes">
1739 <summary>
1740 Mimtypes that this class can handle per default
1741 </summary>
1742 </member>
1743 <member name="M:HttpServer.HttpModules.FileModule.CanHandle(System.Uri)">
1744 <summary>
1745 Determines if the request should be handled by this module.
1746 Invoked by the <see cref="T:HttpServer.HttpServer"/>
1747 </summary>
1748 <param name="uri"></param>
1749 <returns>true if this module should handle it.</returns>
1750 </member>
1751 <member name="M:HttpServer.HttpModules.FileModule.GetPath(System.Uri)">
1752 <exception cref="T:HttpServer.Exceptions.BadRequestException">Illegal path</exception>
1753 </member>
1754 <member name="M:HttpServer.HttpModules.FileModule.Contains(System.String,System.Collections.Generic.IEnumerable{System.String})">
1755 <summary>
1756 check if source contains any of the chars.
1757 </summary>
1758 <param name="source"></param>
1759 <param name="chars"></param>
1760 <returns></returns>
1761 </member>
1762 <member name="M:HttpServer.HttpModules.FileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
1763 <summary>
1764 Method that process the Uri.
1765 </summary>
1766 <param name="request">Information sent by the browser about the request</param>
1767 <param name="response">Information that is being sent back to the client.</param>
1768 <param name="session">Session used to </param>
1769 <exception cref="T:HttpServer.Exceptions.InternalServerException">Failed to find file extension</exception>
1770 <exception cref="T:HttpServer.Exceptions.ForbiddenException">File type is forbidden.</exception>
1771 </member>
1772 <member name="M:HttpServer.HttpModules.FileModule.GetFileExtension(System.String)">
1773 <summary>
1774 return a file extension from an absolute Uri path (or plain filename)
1775 </summary>
1776 <param name="uri"></param>
1777 <returns></returns>
1778 </member>
1779 <member name="P:HttpServer.HttpModules.FileModule.MimeTypes">
1780 <summary>
1781 List with all mime-type that are allowed.
1782 </summary>
1783 <remarks>All other mime types will result in a Forbidden http status code.</remarks>
1784 </member>
1785 <member name="P:HttpServer.HttpModules.FileModule.ForbiddenChars">
1786 <summary> 735 <summary>
1787 characters that may not exist in a path. 736 Name of site.
1788 </summary> 737 </summary>
1789 <example>
1790 fileMod.ForbiddenChars = new string[]{ "\\", "..", ":" };
1791 </example>
1792 </member> 738 </member>
1793 <member name="T:HttpServer.HttpForm"> 739 <member name="T:HttpServer.HttpForm">
1794 <summary>Container for posted form data</summary> 740 <summary>Container for posted form data</summary>
@@ -1981,223 +927,6 @@
1981 </summary> 927 </summary>
1982 <returns>0 if no files are added</returns> 928 <returns>0 if no files are added</returns>
1983 </member> 929 </member>
1984 <member name="T:HttpServer.Check">
1985 <summary>
1986 Small design by contract implementation.
1987 </summary>
1988 </member>
1989 <member name="M:HttpServer.Check.NotEmpty(System.String,System.String)">
1990 <summary>
1991 Check whether a parameter is empty.
1992 </summary>
1993 <param name="value">Parameter value</param>
1994 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
1995 <exception cref="T:System.ArgumentException">value is empty.</exception>
1996 </member>
1997 <member name="M:HttpServer.Check.Require(System.Object,System.String)">
1998 <summary>
1999 Checks whether a parameter is null.
2000 </summary>
2001 <param name="value">Parameter value</param>
2002 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
2003 <exception cref="T:System.ArgumentNullException">value is null.</exception>
2004 </member>
2005 <member name="M:HttpServer.Check.Min(System.Int32,System.Object,System.String)">
2006 <summary>
2007 Checks whether a parameter is null.
2008 </summary>
2009 <param name="minValue"></param>
2010 <param name="value">Parameter value</param>
2011 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
2012 <exception cref="T:System.ArgumentException">value is null.</exception>
2013 </member>
2014 <member name="T:HttpServer.Authentication.BasicAuthentication">
2015 <summary>
2016 The "basic" authentication scheme is based on the model that the
2017 client must authenticate itself with a user-ID and a password for
2018 each realm. The realm value should be considered an opaque string
2019 which can only be compared for equality with other realms on that
2020 server. The server will service the request only if it can validate
2021 the user-ID and password for the protection space of the Request-URI.
2022 There are no optional authentication parameters.
2023 </summary>
2024 </member>
2025 <member name="M:HttpServer.Authentication.BasicAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
2026 <summary>
2027 Initializes a new instance of the <see cref="T:HttpServer.Authentication.BasicAuthentication"/> class.
2028 </summary>
2029 <param name="authenticator">Delegate used to provide information used during authentication.</param>
2030 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
2031 </member>
2032 <member name="M:HttpServer.Authentication.BasicAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)">
2033 <summary>
2034 Initializes a new instance of the <see cref="T:HttpServer.Authentication.BasicAuthentication"/> class.
2035 </summary>
2036 <param name="authenticator">Delegate used to provide information used during authentication.</param>
2037 </member>
2038 <member name="M:HttpServer.Authentication.BasicAuthentication.CreateResponse(System.String,System.Object[])">
2039 <summary>
2040 Create a response that can be sent in the WWW-Authenticate header.
2041 </summary>
2042 <param name="realm">Realm that the user should authenticate in</param>
2043 <param name="options">Not used in basic auth</param>
2044 <returns>A correct auth request.</returns>
2045 </member>
2046 <member name="M:HttpServer.Authentication.BasicAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])">
2047 <summary>
2048 An authentication response have been received from the web browser.
2049 Check if it's correct
2050 </summary>
2051 <param name="authenticationHeader">Contents from the Authorization header</param>
2052 <param name="realm">Realm that should be authenticated</param>
2053 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
2054 <param name="options">Not used in basic auth</param>
2055 <returns>Authentication object that is stored for the request. A user class or something like that.</returns>
2056 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception>
2057 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception>
2058 </member>
2059 <member name="P:HttpServer.Authentication.BasicAuthentication.Name">
2060 <summary>
2061 name used in http request.
2062 </summary>
2063 </member>
2064 <member name="T:HttpServer.Rules.IRule">
2065 <summary>
2066 Rules are used to perform operations before a request is being handled.
2067 Rules can be used to create routing etc.
2068 </summary>
2069 </member>
2070 <member name="M:HttpServer.Rules.IRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
2071 <summary>
2072 Process the incoming request.
2073 </summary>
2074 <param name="request">incoming HTTP request</param>
2075 <param name="response">outgoing HTTP response</param>
2076 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
2077 <remarks>
2078 returning true means that no modules will get the request. Returning true is typically being done
2079 for redirects.
2080 </remarks>
2081 <exception cref="T:System.ArgumentNullException">If request or response is null.</exception>
2082 </member>
2083 <member name="T:HttpServer.Helpers.GetIdTitle">
2084 <summary>
2085 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.
2086 </summary>
2087 <param name="obj">current object (for instance a User).</param>
2088 <param name="id">Text that should be displayed in the value part of a &lt;optiongt;-tag.</param>
2089 <param name="title">Text shown in the select list.</param>
2090 <example>
2091 // Class that is going to be used in a SELECT-tag.
2092 public class User
2093 {
2094 private readonly string _realName;
2095 private readonly int _id;
2096 public User(int id, string realName)
2097 {
2098 _id = id;
2099 _realName = realName;
2100 }
2101 public string RealName
2102 {
2103 get { return _realName; }
2104 }
2105
2106 public int Id
2107 {
2108 get { return _id; }
2109 }
2110 }
2111
2112 // Using an inline delegate to generate the select list
2113 public void UserInlineDelegate()
2114 {
2115 List&lt;User&gt; items = new List&lt;User&gt;();
2116 items.Add(new User(1, "adam"));
2117 items.Add(new User(2, "bertial"));
2118 items.Add(new User(3, "david"));
2119 string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value)
2120 {
2121 User user = (User)o;
2122 id = user.Id;
2123 value = user.RealName;
2124 }, 2, true);
2125 }
2126
2127 // Using an method as delegate to generate the select list.
2128 public void UseExternalDelegate()
2129 {
2130 List&lt;User&gt; items = new List&lt;User&gt;();
2131 items.Add(new User(1, "adam"));
2132 items.Add(new User(2, "bertial"));
2133 items.Add(new User(3, "david"));
2134 string htmlSelect = Select("users", "users", items, UserOptions, 1, true);
2135 }
2136
2137 // delegate returning id and title
2138 public static void UserOptions(object o, out object id, out object title)
2139 {
2140 User user = (User)o;
2141 id = user.Id;
2142 value = user.RealName;
2143 } /// </example>
2144 </member>
2145 <member name="T:HttpServer.RequestCookies">
2146 <summary>
2147 This class is created as a wrapper, since there are two different cookie types in .Net (Cookie and HttpCookie).
2148 The framework might switch class in the future and we dont want to have to replace all instances
2149 </summary>
2150 </member>
2151 <member name="M:HttpServer.RequestCookies.#ctor(System.String)">
2152 <summary>
2153 Let's copy all the cookies.
2154 </summary>
2155 <param name="cookies">value from cookie header.</param>
2156 </member>
2157 <member name="M:HttpServer.RequestCookies.Add(HttpServer.RequestCookie)">
2158 <summary>
2159 Adds a cookie in the collection.
2160 </summary>
2161 <param name="cookie">cookie to add</param>
2162 <exception cref="T:System.ArgumentNullException">cookie is null</exception>
2163 </member>
2164 <member name="M:HttpServer.RequestCookies.GetEnumerator">
2165 <summary>
2166 Gets a collection enumerator on the cookie list.
2167 </summary>
2168 <returns>collection enumerator</returns>
2169 </member>
2170 <member name="M:HttpServer.RequestCookies.Clear">
2171 <summary>
2172 Remove all cookies.
2173 </summary>
2174 </member>
2175 <member name="M:HttpServer.RequestCookies.System#Collections#Generic#IEnumerable{HttpServer#RequestCookie}#GetEnumerator">
2176 <summary>
2177 Returns an enumerator that iterates through the collection.
2178 </summary>
2179
2180 <returns>
2181 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
2182 </returns>
2183 <filterpriority>1</filterpriority>
2184 </member>
2185 <member name="M:HttpServer.RequestCookies.Remove(System.String)">
2186 <summary>
2187 Remove a cookie from the collection.
2188 </summary>
2189 <param name="cookieName">Name of cookie.</param>
2190 </member>
2191 <member name="P:HttpServer.RequestCookies.Count">
2192 <summary>
2193 Gets the count of cookies in the collection.
2194 </summary>
2195 </member>
2196 <member name="P:HttpServer.RequestCookies.Item(System.String)">
2197 <summary>
2198 Gets the cookie of a given identifier (null if not existing).
2199 </summary>
2200 </member>
2201 <member name="T:HttpServer.Exceptions.BadRequestException"> 930 <member name="T:HttpServer.Exceptions.BadRequestException">
2202 <summary> 931 <summary>
2203 The request could not be understood by the server due to malformed syntax. 932 The request could not be understood by the server due to malformed syntax.
@@ -2219,191 +948,199 @@
2219 <param name="errMsg">reason to why the request was bad.</param> 948 <param name="errMsg">reason to why the request was bad.</param>
2220 <param name="inner">inner exception</param> 949 <param name="inner">inner exception</param>
2221 </member> 950 </member>
2222 <member name="T:HttpServer.Sessions.IHttpSessionStore"> 951 <member name="T:HttpServer.Sessions.MemorySession">
2223 <summary> 952 <summary>
2224 A session store is used to store and load sessions on a media. 953 A session stored in memory.
2225 The default implementation (<see cref="T:HttpServer.Sessions.MemorySessionStore"/>) saves/retrieves sessions from memory.
2226 </summary> 954 </summary>
2227 </member> 955 </member>
2228 <member name="M:HttpServer.Sessions.IHttpSessionStore.Create"> 956 <member name="T:HttpServer.Sessions.IHttpSession">
2229 <summary> 957 <summary>
2230 Creates a new http session with a generated id. 958 Interface for sessions
2231 </summary> 959 </summary>
2232 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object</returns>
2233 </member> 960 </member>
2234 <member name="M:HttpServer.Sessions.IHttpSessionStore.Create(System.String)"> 961 <member name="M:HttpServer.Sessions.IHttpSession.Clear">
2235 <summary> 962 <summary>
2236 Creates a new http session with a specific id 963 Remove everything from the session
2237 </summary> 964 </summary>
2238 <param name="id">Id used to identify the new cookie..</param>
2239 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns>
2240 <remarks>
2241 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>.
2242 </remarks>
2243 </member> 965 </member>
2244 <member name="M:HttpServer.Sessions.IHttpSessionStore.Load(System.String)"> 966 <member name="M:HttpServer.Sessions.IHttpSession.Clear(System.Boolean)">
2245 <summary> 967 <summary>
2246 Load an existing session. 968 Remove everything from the session
2247 </summary> 969 </summary>
2248 <param name="sessionId">Session id (usually retrieved from a client side cookie).</param> 970 <param name="expires">True if the session is cleared due to expiration</param>
2249 <returns>A session if found; otherwise null.</returns>
2250 </member> 971 </member>
2251 <member name="M:HttpServer.Sessions.IHttpSessionStore.Save(HttpServer.Sessions.IHttpSession)"> 972 <member name="P:HttpServer.Sessions.IHttpSession.Id">
2252 <summary> 973 <summary>
2253 Save an updated session to the store. 974 Session id
2254 </summary> 975 </summary>
2255 <param name="session">Session id (usually retrieved from a client side cookie).</param>
2256 <exception cref="T:System.ArgumentException">If Id property have not been specified.</exception>
2257 </member> 976 </member>
2258 <member name="M:HttpServer.Sessions.IHttpSessionStore.AddUnused(HttpServer.Sessions.IHttpSession)"> 977 <member name="P:HttpServer.Sessions.IHttpSession.Item(System.String)">
2259 <summary> 978 <summary>
2260 We use the flyweight pattern which reuses small objects 979 Should
2261 instead of creating new each time.
2262 </summary> 980 </summary>
2263 <param name="session">Unused session that should be reused next time Create is called.</param> 981 <param name="name">Name of the session variable</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>
2264 </member> 984 </member>
2265 <member name="M:HttpServer.Sessions.IHttpSessionStore.Cleanup"> 985 <member name="P:HttpServer.Sessions.IHttpSession.Accessed">
2266 <summary> 986 <summary>
2267 Remove expired sessions 987 When the session was last accessed.
988 This property is touched by the http server each time the
989 session is requested.
2268 </summary> 990 </summary>
2269 </member> 991 </member>
2270 <member name="M:HttpServer.Sessions.IHttpSessionStore.Remove(System.String)"> 992 <member name="P:HttpServer.Sessions.IHttpSession.Count">
2271 <summary> 993 <summary>
2272 Remove a session 994 Number of session variables.
2273 </summary> 995 </summary>
2274 <param name="sessionId">id of the session.</param>
2275 </member> 996 </member>
2276 <member name="P:HttpServer.Sessions.IHttpSessionStore.Item(System.String)"> 997 <member name="E:HttpServer.Sessions.IHttpSession.BeforeClear">
2277 <summary> 998 <summary>
2278 Load a session from the store 999 Event triggered upon clearing the session
2279 </summary> 1000 </summary>
2280 <param name="sessionId"></param>
2281 <returns>null if session is not found.</returns>
2282 </member> 1001 </member>
2283 <member name="P:HttpServer.Sessions.IHttpSessionStore.ExpireTime"> 1002 <member name="M:HttpServer.Sessions.MemorySession.#ctor(System.String)">
2284 <summary> 1003 <summary>
2285 Number of minutes before a session expires. 1004
2286 </summary> 1005 </summary>
2287 <value>Default time is 20 minutes.</value> 1006 <param name="id">A unique id used by the sessions store to identify the session</param>
2288 </member> 1007 </member>
2289 <member name="T:HttpServer.IHttpClientContext"> 1008 <member name="M:HttpServer.Sessions.MemorySession.SetId(System.String)">
2290 <summary> 1009 <summary>
2291 Contains a connection to a browser/client. 1010 Id
2292 </summary> 1011 </summary>
1012 <param name="id"></param>
2293 </member> 1013 </member>
2294 <member name="M:HttpServer.IHttpClientContext.Disconnect(System.Net.Sockets.SocketError)"> 1014 <member name="M:HttpServer.Sessions.MemorySession.Clear">
2295 <summary> 1015 <summary>
2296 Disconnect from client 1016 Remove everything from the session
2297 </summary> 1017 </summary>
2298 <param name="error">error to report in the <see cref="E:HttpServer.IHttpClientContext.Disconnected"/> event.</param>
2299 </member> 1018 </member>
2300 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)"> 1019 <member name="M:HttpServer.Sessions.MemorySession.Clear(System.Boolean)">
2301 <summary> 1020 <summary>
2302 Send a response. 1021 Clears the specified expire.
2303 </summary> 1022 </summary>
2304 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param> 1023 <param name="expires">True if the session is cleared due to expiration</param>
2305 <param name="statusCode">HTTP status code</param>
2306 <param name="reason">reason for the status code.</param>
2307 <param name="body">HTML body contents, can be null or empty.</param>
2308 <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>
2309 <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception>
2310 </member> 1024 </member>
2311 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)"> 1025 <member name="M:HttpServer.Sessions.MemorySession.Dispose">
2312 <summary> 1026 <summary>
2313 Send a response. 1027 Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
2314 </summary> 1028 </summary>
2315 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param> 1029 <filterpriority>2</filterpriority>
2316 <param name="statusCode">HTTP status code</param>
2317 <param name="reason">reason for the status code.</param>
2318 </member> 1030 </member>
2319 <member name="M:HttpServer.IHttpClientContext.Respond(System.String)"> 1031 <member name="P:HttpServer.Sessions.MemorySession.Id">
2320 <summary> 1032 <summary>
2321 Send a response. 1033 Session id
2322 </summary> 1034 </summary>
2323 <exception cref="T:System.ArgumentNullException"></exception>
2324 </member> 1035 </member>
2325 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[])"> 1036 <member name="P:HttpServer.Sessions.MemorySession.Item(System.String)">
2326 <summary> 1037 <summary>
2327 send a whole buffer 1038 Should
2328 </summary> 1039 </summary>
2329 <param name="buffer">buffer to send</param> 1040 <param name="name">Name of the session variable</param>
2330 <exception cref="T:System.ArgumentNullException"></exception> 1041 <returns>null if it's not set</returns>
2331 </member> 1042 </member>
2332 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[],System.Int32,System.Int32)"> 1043 <member name="P:HttpServer.Sessions.MemorySession.Accessed">
2333 <summary> 1044 <summary>
2334 Send data using the stream 1045 when the session was last accessed.
2335 </summary> 1046 </summary>
2336 <param name="buffer">Contains data to send</param> 1047 <remarks>
2337 <param name="offset">Start position in buffer</param> 1048 Used to determine when the session should be removed.
2338 <param name="size">number of bytes to send</param> 1049 </remarks>
2339 <exception cref="T:System.ArgumentNullException"></exception>
2340 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
2341 </member> 1050 </member>
2342 <member name="M:HttpServer.IHttpClientContext.Close"> 1051 <member name="P:HttpServer.Sessions.MemorySession.Count">
2343 <summary> 1052 <summary>
2344 Closes the streams and disposes of the unmanaged resources 1053 Number of values in the session
2345 </summary> 1054 </summary>
2346 </member> 1055 </member>
2347 <member name="P:HttpServer.IHttpClientContext.Secured"> 1056 <member name="P:HttpServer.Sessions.MemorySession.Changed">
2348 <summary> 1057 <summary>
2349 Using SSL or other encryption method. 1058 Flag to indicate that the session have been changed
1059 and should be saved into the session store.
2350 </summary> 1060 </summary>
2351 </member> 1061 </member>
2352 <member name="P:HttpServer.IHttpClientContext.IsSecured"> 1062 <member name="E:HttpServer.Sessions.MemorySession.BeforeClear">
2353 <summary> 1063 <summary>
2354 Using SSL or other encryption method. 1064 Event triggered upon clearing the session
2355 </summary> 1065 </summary>
2356 </member> 1066 </member>
2357 <member name="E:HttpServer.IHttpClientContext.Disconnected"> 1067 <member name="T:HttpServer.Rules.RedirectRule">
2358 <summary> 1068 <summary>
2359 The context have been disconnected. 1069 redirects from one URL to another.
2360 </summary> 1070 </summary>
2361 <remarks>
2362 Event can be used to clean up a context, or to reuse it.
2363 </remarks>
2364 </member> 1071 </member>
2365 <member name="E:HttpServer.IHttpClientContext.RequestReceived"> 1072 <member name="T:HttpServer.Rules.IRule">
2366 <summary> 1073 <summary>
2367 A request have been received in the context. 1074 Rules are used to perform operations before a request is being handled.
1075 Rules can be used to create routing etc.
2368 </summary> 1076 </summary>
2369 </member> 1077 </member>
2370 <member name="T:HttpServer.DisconnectedEventArgs"> 1078 <member name="M:HttpServer.Rules.IRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
2371 <summary> 1079 <summary>
2372 A <see cref="T:HttpServer.IHttpClientContext"/> have been disconnected. 1080 Process the incoming request.
2373 </summary> 1081 </summary>
1082 <param name="request">incoming HTTP request</param>
1083 <param name="response">outgoing HTTP response</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>
2374 </member> 1090 </member>
2375 <member name="M:HttpServer.DisconnectedEventArgs.#ctor(System.Net.Sockets.SocketError)"> 1091 <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String)">
2376 <summary> 1092 <summary>
2377 Initializes a new instance of the <see cref="T:HttpServer.DisconnectedEventArgs"/> class. 1093 Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class.
2378 </summary> 1094 </summary>
2379 <param name="error">Reason to disconnection.</param> 1095 <param name="fromUrl">Absolute path (no server name)</param>
1096 <param name="toUrl">Absolute path (no server name)</param>
1097 <example>
1098 server.Add(new RedirectRule("/", "/user/index"));
1099 </example>
2380 </member> 1100 </member>
2381 <member name="P:HttpServer.DisconnectedEventArgs.Error"> 1101 <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String,System.Boolean)">
2382 <summary> 1102 <summary>
2383 Gets reason to why client disconnected. 1103 Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class.
2384 </summary> 1104 </summary>
1105 <param name="fromUrl">Absolute path (no server name)</param>
1106 <param name="toUrl">Absolute path (no server name)</param>
1107 <param name="shouldRedirect">true if request should be redirected, false if the request URI should be replaced.</param>
1108 <example>
1109 server.Add(new RedirectRule("/", "/user/index"));
1110 </example>
2385 </member> 1111 </member>
2386 <member name="T:HttpServer.RequestEventArgs"> 1112 <member name="M:HttpServer.Rules.RedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
2387 <summary> 1113 <summary>
2388 1114 Process the incoming request.
2389 </summary> 1115 </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>
1120 returning true means that no modules will get the request. Returning true is typically being done
1121 for redirects.
1122 </remarks>
2390 </member> 1123 </member>
2391 <member name="M:HttpServer.RequestEventArgs.#ctor(HttpServer.IHttpRequest)"> 1124 <member name="P:HttpServer.Rules.RedirectRule.FromUrl">
2392 <summary> 1125 <summary>
2393 Initializes a new instance of the <see cref="T:HttpServer.RequestEventArgs"/> class. 1126 Gets string to match request URI with.
2394 </summary> 1127 </summary>
2395 <param name="request">The request.</param> 1128 <remarks>Is compared to request.Uri.AbsolutePath</remarks>
2396 </member> 1129 </member>
2397 <member name="P:HttpServer.RequestEventArgs.Request"> 1130 <member name="P:HttpServer.Rules.RedirectRule.ToUrl">
2398 <summary> 1131 <summary>
2399 Gets received request. 1132 Gets where to redirect.
2400 </summary> 1133 </summary>
2401 </member> 1134 </member>
2402 <member name="T:HttpServer.ResponseCookie"> 1135 <member name="P:HttpServer.Rules.RedirectRule.ShouldRedirect">
2403 <summary> 1136 <summary>
2404 cookie being sent back to the browser. 1137 Gets whether server should redirect client.
2405 </summary> 1138 </summary>
2406 <seealso cref="T:HttpServer.ResponseCookie"/> 1139 <remarks>
1140 <c>false</c> means that the rule will replace
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>
2407 </member> 1144 </member>
2408 <member name="T:HttpServer.RequestCookie"> 1145 <member name="T:HttpServer.RequestCookie">
2409 <summary> 1146 <summary>
@@ -2436,543 +1173,415 @@
2436 Cookie value. Set to null to remove cookie. 1173 Cookie value. Set to null to remove cookie.
2437 </summary> 1174 </summary>
2438 </member> 1175 </member>
2439 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime)"> 1176 <member name="T:HttpServer.LogPrio">
2440 <summary>
2441 Constructor.
2442 </summary>
2443 <param name="id">cookie identifier</param>
2444 <param name="content">cookie content</param>
2445 <param name="expiresAt">cookie expiration date. Use DateTime.MinValue for session cookie.</param>
2446 <exception cref="T:System.ArgumentNullException">id or content is null</exception>
2447 <exception cref="T:System.ArgumentException">id is empty</exception>
2448 </member>
2449 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime,System.String,System.String)">
2450 <summary>
2451 Create a new cookie
2452 </summary>
2453 <param name="name">name identifying the cookie</param>
2454 <param name="value">cookie value</param>
2455 <param name="expires">when the cookie expires. Setting DateTime.MinValue will delete the cookie when the session is closed.</param>
2456 <param name="path">Path to where the cookie is valid</param>
2457 <param name="domain">Domain that the cookie is valid for.</param>
2458 </member>
2459 <member name="M:HttpServer.ResponseCookie.#ctor(HttpServer.RequestCookie,System.DateTime)">
2460 <summary>
2461 Create a new cookie
2462 </summary>
2463 <param name="cookie">Name and value will be used</param>
2464 <param name="expires">when the cookie expires.</param>
2465 </member>
2466 <member name="M:HttpServer.ResponseCookie.ToString">
2467 <summary>
2468 Gets the cookie HTML representation.
2469 </summary>
2470 <returns>cookie string</returns>
2471 </member>
2472 <member name="P:HttpServer.ResponseCookie.Expires">
2473 <summary>
2474 When the cookie expires.
2475 DateTime.MinValue means that the cookie expires when the session do so.
2476 </summary>
2477 </member>
2478 <member name="P:HttpServer.ResponseCookie.Path">
2479 <summary>
2480 Cookie is only valid under this path.
2481 </summary>
2482 </member>
2483 <member name="T:HttpServer.Method">
2484 <summary>
2485 Contains all HTTP Methods (according to the HTTP 1.1 specification)
2486 <para>
2487 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
2488 </para>
2489 </summary>
2490 </member>
2491 <member name="F:HttpServer.Method.Delete">
2492 <summary>
2493 The DELETE method requests that the origin server delete the resource identified by the Request-URI.
2494 </summary>
2495 <remarks>
2496 <para>
2497 This method MAY be overridden by human intervention (or other means) on the origin server.
2498 The client cannot be guaranteed that the operation has been carried out, even if the status code
2499 returned from the origin server indicates that the action has been completed successfully.
2500 </para>
2501 <para>
2502 However, the server SHOULD NOT indicate success unless, at the time the response is given,
2503 it intends to delete the resource or move it to an inaccessible location.
2504 </para>
2505 <para>
2506 A successful response SHOULD be 200 (OK) if the response includes an entity describing the status,
2507 202 (Accepted) if the action has not yet been enacted,
2508 or 204 (No Content) if the action has been enacted but the response does not include an entity.
2509 </para>
2510 <para>
2511 If the request passes through a cache and the Request-URI identifies one or more currently cached entities,
2512 those entries SHOULD be treated as stale. Responses to this method are not cacheable.
2513 </para>
2514 </remarks>
2515 </member>
2516 <member name="F:HttpServer.Method.Get">
2517 <summary>
2518 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.
2519 </summary>
2520 <remarks>
2521 <para>
2522 If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the
2523 entity in the response and not the source text of the process, unless that text happens to be the output of the process.
2524 </para>
2525 <para>
2526 The semantics of the GET method change to a "conditional GET" if the request message includes an
2527 If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field.
2528 A conditional GET method requests that the entity be transferred only under the circumstances described
2529 by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network
2530 usage by allowing cached entities to be refreshed without requiring multiple requests or transferring
2531 data already held by the client.
2532 </para>
2533 </remarks>
2534 </member>
2535 <member name="F:HttpServer.Method.Header">
2536 <summary> 1177 <summary>
2537 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. 1178 Priority for log entries
2538 </summary> 1179 </summary>
2539 <remarks> 1180 <seealso cref="T:HttpServer.ILogWriter"/>
2540 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
2541 information sent in response to a GET request. This method can be used for obtaining meta information about
2542 the entity implied by the request without transferring the entity-body itself.
2543
2544 This method is often used for testing hypertext links for validity, accessibility, and recent modification.
2545 </remarks>
2546 </member> 1181 </member>
2547 <member name="F:HttpServer.Method.Options"> 1182 <member name="F:HttpServer.LogPrio.Trace">
2548 <summary> 1183 <summary>
2549 <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> 1184 Very detailed logs to be able to follow the flow of the program.
2550 </summary> 1185 </summary>
2551 <remarks>
2552 <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>
2553 </remarks>
2554 </member> 1186 </member>
2555 <member name="F:HttpServer.Method.Post"> 1187 <member name="F:HttpServer.LogPrio.Debug">
2556 <summary> 1188 <summary>
2557 The POST method is used to request that the origin server accept the entity enclosed 1189 Logs to help debug errors in the application
2558 in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
2559 </summary> 1190 </summary>
2560 <remarks>
2561 POST is designed to allow a uniform method to cover the following functions:
2562 <list type="bullet">
2563 <item>
2564 Annotation of existing resources;
2565 </item><item>
2566 Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
2567 </item><item>
2568 Providing a block of data, such as the result of submitting a form, to a data-handling process;
2569 </item><item>
2570 Extending a database through an append operation.
2571 </item>
2572 </list>
2573 <para>
2574 If a resource has been created on the origin server, the response SHOULD be 201 (Created) and
2575 contain an entity which describes the status of the request and refers to the new resource, and a
2576 Location header (see section 14.30).
2577 </para>
2578 <para>
2579 The action performed by the POST method might not result in a resource that can be identified by a URI.
2580 In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on
2581 whether or not the response includes an entity that describes the result.
2582 </para><para>
2583 Responses to this method are not cacheable, unless the response includes appropriate Cache-Control
2584 or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent
2585 to retrieve a cacheable resource.
2586 </para>
2587 </remarks>
2588 </member> 1191 </member>
2589 <member name="F:HttpServer.Method.Put"> 1192 <member name="F:HttpServer.LogPrio.Info">
2590 <summary> 1193 <summary>
2591 The PUT method requests that the enclosed entity be stored under the supplied Request-URI. 1194 Information to be able to keep track of state changes etc.
2592 </summary> 1195 </summary>
2593 <remarks>
2594 <list type="bullet">
2595 <item>
2596 If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a
2597 modified version of the one residing on the origin server.
2598 </item><item>
2599 If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new
2600 resource by the requesting user agent, the origin server can create the resource with that URI.
2601 </item><item>
2602 If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
2603 </item><item>
2604 If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to
2605 indicate successful completion of the request.
2606 </item><item>
2607 If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be
2608 given that reflects the nature of the problem.
2609 </item>
2610 </list>
2611 <para>
2612 The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not
2613 understand or implement and MUST return a 501 (Not Implemented) response in such cases.
2614 </para>
2615 </remarks>
2616 </member> 1196 </member>
2617 <member name="F:HttpServer.Method.Trace"> 1197 <member name="F:HttpServer.LogPrio.Warning">
2618 <summary> 1198 <summary>
2619 The TRACE method is used to invoke a remote, application-layer loop- back of the request message. 1199 Something did not go as we expected, but it's no problem.
2620 </summary> 1200 </summary>
2621 </member> 1201 </member>
2622 <member name="T:HttpServer.Methods"> 1202 <member name="F:HttpServer.LogPrio.Error">
2623 <summary> 1203 <summary>
2624 Contains all HTTP Methods (according to the HTTP 1.1 specification) 1204 Something that should not fail failed, but we can still keep
2625 <para> 1205 on going.
2626 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
2627 </para>
2628 </summary> 1206 </summary>
2629 </member> 1207 </member>
2630 <member name="F:HttpServer.Methods.Delete"> 1208 <member name="F:HttpServer.LogPrio.Fatal">
2631 <summary> 1209 <summary>
2632 The DELETE method requests that the origin server delete the resource identified by the Request-URI. 1210 Something failed, and we cannot handle it properly.
2633 </summary> 1211 </summary>
2634 <remarks>
2635 <para>
2636 This method MAY be overridden by human intervention (or other means) on the origin server.
2637 The client cannot be guaranteed that the operation has been carried out, even if the status code
2638 returned from the origin server indicates that the action has been completed successfully.
2639 </para>
2640 <para>
2641 However, the server SHOULD NOT indicate success unless, at the time the response is given,
2642 it intends to delete the resource or move it to an inaccessible location.
2643 </para>
2644 <para>
2645 A successful response SHOULD be 200 (OK) if the response includes an entity describing the status,
2646 202 (Accepted) if the action has not yet been enacted,
2647 or 204 (No Content) if the action has been enacted but the response does not include an entity.
2648 </para>
2649 <para>
2650 If the request passes through a cache and the Request-URI identifies one or more currently cached entities,
2651 those entries SHOULD be treated as stale. Responses to this method are not cacheable.
2652 </para>
2653 </remarks>
2654 </member> 1212 </member>
2655 <member name="F:HttpServer.Methods.Get"> 1213 <member name="T:HttpServer.ILogWriter">
2656 <summary> 1214 <summary>
2657 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI. 1215 Interface used to write to log files.
2658 </summary> 1216 </summary>
2659 <remarks>
2660 <para>
2661 If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the
2662 entity in the response and not the source text of the process, unless that text happens to be the output of the process.
2663 </para>
2664 <para>
2665 The semantics of the GET method change to a "conditional GET" if the request message includes an
2666 If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field.
2667 A conditional GET method requests that the entity be transferred only under the circumstances described
2668 by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network
2669 usage by allowing cached entities to be refreshed without requiring multiple requests or transferring
2670 data already held by the client.
2671 </para>
2672 </remarks>
2673 </member> 1217 </member>
2674 <member name="F:HttpServer.Methods.Header"> 1218 <member name="M:HttpServer.ILogWriter.Write(System.Object,HttpServer.LogPrio,System.String)">
2675 <summary> 1219 <summary>
2676 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. 1220 Write an entry to the log file.
2677 </summary> 1221 </summary>
2678 <remarks> 1222 <param name="source">object that is writing to the log</param>
2679 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the 1223 <param name="priority">importance of the log message</param>
2680 information sent in response to a GET request. This method can be used for obtaining meta information about 1224 <param name="message">the message</param>
2681 the entity implied by the request without transferring the entity-body itself.
2682
2683 This method is often used for testing hypertext links for validity, accessibility, and recent modification.
2684 </remarks>
2685 </member> 1225 </member>
2686 <member name="F:HttpServer.Methods.Options"> 1226 <member name="T:HttpServer.ConsoleLogWriter">
2687 <summary> 1227 <summary>
2688 <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> 1228 This class writes to the console. It colors the output depending on the logprio and includes a 3-level stacktrace (in debug mode)
2689 </summary> 1229 </summary>
2690 <remarks> 1230 <seealso cref="T:HttpServer.ILogWriter"/>
2691 <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>
2692 </remarks>
2693 </member> 1231 </member>
2694 <member name="F:HttpServer.Methods.Post"> 1232 <member name="F:HttpServer.ConsoleLogWriter.Instance">
2695 <summary> 1233 <summary>
2696 The POST method is used to request that the origin server accept the entity enclosed 1234 The actual instance of this class.
2697 in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
2698 </summary> 1235 </summary>
2699 <remarks>
2700 POST is designed to allow a uniform method to cover the following functions:
2701 <list type="bullet">
2702 <item>
2703 Annotation of existing resources;
2704 </item><item>
2705 Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
2706 </item><item>
2707 Providing a block of data, such as the result of submitting a form, to a data-handling process;
2708 </item><item>
2709 Extending a database through an append operation.
2710 </item>
2711 </list>
2712 <para>
2713 If a resource has been created on the origin server, the response SHOULD be 201 (Created) and
2714 contain an entity which describes the status of the request and refers to the new resource, and a
2715 Location header (see section 14.30).
2716 </para>
2717 <para>
2718 The action performed by the POST method might not result in a resource that can be identified by a URI.
2719 In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on
2720 whether or not the response includes an entity that describes the result.
2721 </para><para>
2722 Responses to this method are not cacheable, unless the response includes appropriate Cache-Control
2723 or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent
2724 to retrieve a cacheable resource.
2725 </para>
2726 </remarks>
2727 </member> 1236 </member>
2728 <member name="F:HttpServer.Methods.Put"> 1237 <member name="M:HttpServer.ConsoleLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)">
2729 <summary> 1238 <summary>
2730 The PUT method requests that the enclosed entity be stored under the supplied Request-URI. 1239 Logwriters the specified source.
2731 </summary> 1240 </summary>
2732 <remarks> 1241 <param name="source">object that wrote the logentry.</param>
2733 <list type="bullet"> 1242 <param name="prio">Importance of the log message</param>
2734 <item> 1243 <param name="message">The message.</param>
2735 If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a
2736 modified version of the one residing on the origin server.
2737 </item><item>
2738 If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new
2739 resource by the requesting user agent, the origin server can create the resource with that URI.
2740 </item><item>
2741 If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
2742 </item><item>
2743 If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to
2744 indicate successful completion of the request.
2745 </item><item>
2746 If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be
2747 given that reflects the nature of the problem.
2748 </item>
2749 </list>
2750 <para>
2751 The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not
2752 understand or implement and MUST return a 501 (Not Implemented) response in such cases.
2753 </para>
2754 </remarks>
2755 </member> 1244 </member>
2756 <member name="F:HttpServer.Methods.Trace"> 1245 <member name="M:HttpServer.ConsoleLogWriter.GetColor(HttpServer.LogPrio)">
2757 <summary> 1246 <summary>
2758 The TRACE method is used to invoke a remote, application-layer loop- back of the request message. 1247 Get color for the specified logprio
2759 </summary> 1248 </summary>
1249 <param name="prio">prio for the log entry</param>
1250 <returns>A <see cref="T:System.ConsoleColor"/> for the prio</returns>
2760 </member> 1251 </member>
2761 <member name="T:HttpServer.HttpHelper"> 1252 <member name="T:HttpServer.NullLogWriter">
2762 <summary> 1253 <summary>
2763 Generic helper functions for HTTP 1254 Default log writer, writes everything to null (nowhere).
2764 </summary> 1255 </summary>
1256 <seealso cref="T:HttpServer.ILogWriter"/>
2765 </member> 1257 </member>
2766 <member name="F:HttpServer.HttpHelper.HTTP10"> 1258 <member name="F:HttpServer.NullLogWriter.Instance">
2767 <summary> 1259 <summary>
2768 Version string for HTTP v1.0 1260 The logging instance.
2769 </summary> 1261 </summary>
2770 </member> 1262 </member>
2771 <member name="F:HttpServer.HttpHelper.HTTP11"> 1263 <member name="M:HttpServer.NullLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)">
2772 <summary> 1264 <summary>
2773 Version string for HTTP v1.1 1265 Writes everything to null
2774 </summary> 1266 </summary>
1267 <param name="source">object that wrote the log entry.</param>
1268 <param name="prio">Importance of the log message</param>
1269 <param name="message">The message.</param>
2775 </member> 1270 </member>
2776 <member name="F:HttpServer.HttpHelper.EmptyUri"> 1271 <member name="T:HttpServer.IHttpContextHandler">
2777 <summary> 1272 <summary>
2778 An empty URI 1273 Class that receives Requests from a <see cref="T:HttpServer.IHttpClientContext"/>.
2779 </summary> 1274 </summary>
2780 </member> 1275 </member>
2781 <member name="M:HttpServer.HttpHelper.ParseQueryString(System.String)"> 1276 <member name="M:HttpServer.IHttpContextHandler.ClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)">
2782 <summary> 1277 <summary>
2783 Parses a query string. 1278 Client have been disconnected.
2784 </summary> 1279 </summary>
2785 <param name="queryString">Query string (URI encoded)</param> 1280 <param name="client">Client that was disconnected.</param>
2786 <returns>A <see cref="T:HttpServer.HttpInput"/> object if successful; otherwise <see cref="F:HttpServer.HttpInput.Empty"/></returns> 1281 <param name="error">Reason</param>
2787 <exception cref="T:System.ArgumentNullException"><c>queryString</c> is null.</exception> 1282 <see cref="T:HttpServer.IHttpClientContext"/>
2788 <exception cref="T:System.FormatException">If string cannot be parsed.</exception>
2789 </member> 1283 </member>
2790 <member name="T:HttpServer.Helpers.ObjectForm"> 1284 <member name="M:HttpServer.IHttpContextHandler.RequestReceived(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
2791 <summary> 1285 <summary>
2792 The object form class takes an object and creates form items for it. 1286 Invoked when a client context have received a new HTTP request
2793 </summary> 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"/>
2794 </member> 1291 </member>
2795 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object,System.String)"> 1292 <member name="T:HttpServer.Helpers.JSHelper">
2796 <summary> 1293 <summary>
2797 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class. 1294 Will contain helper functions for javascript.
2798 </summary> 1295 </summary>
2799 <param name="method"></param>
2800 <param name="name">form name *and* id.</param>
2801 <param name="action">action to do when form is posted.</param>
2802 <param name="obj"></param>
2803 </member> 1296 </member>
2804 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object)"> 1297 <member name="M:HttpServer.Helpers.JSHelper.AjaxRequest(System.String,System.String[])">
2805 <summary> 1298 <summary>
2806 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class. 1299 Requests a url through ajax
2807 </summary> 1300 </summary>
2808 <param name="name">form name *and* id.</param> 1301 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
2809 <param name="action">action to do when form is posted.</param> 1302 <param name="options">optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.</param>
2810 <param name="obj">object to get values from</param> 1303 <returns>a link tag</returns>
1304 <remarks>onclick attribute is used by this method.</remarks>
1305 <example>
1306 <code>
1307 // plain text
1308 JSHelper.AjaxRequest("'/user/show/1'");
1309
1310 // ajax request using this.href
1311 string link = "&lt;a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/&lt;call user&lt;/a&gt;";
1312 </code>
1313 </example>
2811 </member> 1314 </member>
2812 <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.Object)"> 1315 <member name="M:HttpServer.Helpers.JSHelper.AjaxUpdater(System.String,System.String,System.String[])">
2813 <summary> 1316 <summary>
2814 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class. 1317 Ajax requests that updates an element with
1318 the fetched content
2815 </summary> 1319 </summary>
2816 <param name="action">form action.</param> 1320 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
2817 <param name="obj">object to get values from.</param> 1321 <param name="targetId">element to update</param>
1322 <param name="options">options in format "key, value, key, value". All keys should end with colon.</param>
1323 <returns>A link tag.</returns>
1324 <example>
1325 <code>
1326 JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true");
1327 </code>
1328 </example>
2818 </member> 1329 </member>
2819 <member name="M:HttpServer.Helpers.ObjectForm.Begin"> 1330 <member name="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])">
2820 <summary> 1331 <summary>
2821 write out the FORM-tag. 1332 Opens contents in a dialog window.
2822 </summary> 1333 </summary>
2823 <returns>generated html code</returns> 1334 <param name="url">url to contents of dialog</param>
1335 <param name="title">link title</param>
1336 <param name="options">name, value, name, value, all parameter names should end with colon.</param>
2824 </member> 1337 </member>
2825 <member name="M:HttpServer.Helpers.ObjectForm.Begin(System.Boolean)"> 1338 <member name="M:HttpServer.Helpers.JSHelper.CloseDialog">
2826 <summary> 1339 <summary>
2827 Writeout the form tag 1340 Close a javascript dialog window/div.
2828 </summary> 1341 </summary>
2829 <param name="isAjax">form should be posted through ajax.</param> 1342 <returns>javascript for closing a dialog.</returns>
2830 <returns>generated html code</returns> 1343 <see cref="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])"/>
2831 </member> 1344 </member>
2832 <member name="M:HttpServer.Helpers.ObjectForm.Tb(System.String,System.Object[])"> 1345 <member name="T:HttpServer.Helpers.FormHelper">
2833 <summary> 1346 <summary>
2834 Generates a text box. 1347 Helpers making it easier to work with forms.
2835 </summary> 1348 </summary>
2836 <param name="propertyName"></param> 1349 <seealso cref="T:HttpServer.Helpers.ObjectForm"/>
2837 <param name="options"></param>
2838 <returns>generated html code</returns>
2839 </member> 1350 </member>
2840 <member name="M:HttpServer.Helpers.ObjectForm.Pb(System.String,System.Object[])"> 1351 <member name="F:HttpServer.Helpers.FormHelper.JSImplementation">
2841 <summary> 1352 <summary>
2842 password box 1353 Used to let the website use different JavaScript libraries.
1354 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/>
2843 </summary> 1355 </summary>
2844 <param name="propertyName"></param>
2845 <param name="options"></param>
2846 <returns>generated html code</returns>
2847 </member> 1356 </member>
2848 <member name="M:HttpServer.Helpers.ObjectForm.Hidden(System.String,System.Object[])"> 1357 <member name="M:HttpServer.Helpers.FormHelper.Start(System.String,System.String,System.Boolean,System.String[])">
2849 <summary> 1358 <summary>
2850 Hiddens the specified property name. 1359 Create a &lt;form&gt; tag.
2851 </summary> 1360 </summary>
2852 <param name="propertyName">Name of the property.</param> 1361 <param name="id">name of form</param>
2853 <param name="options">The options.</param> 1362 <param name="action">action to invoke on submit</param>
2854 <returns>generated html code</returns> 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>
2855 </member> 1377 </member>
2856 <member name="M:HttpServer.Helpers.ObjectForm.Label(System.String,System.String)"> 1378 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
2857 <summary> 1379 <summary>
2858 Labels the specified property name. 1380 Creates a select list with the values in a collection.
2859 </summary> 1381 </summary>
2860 <param name="propertyName">property in object.</param> 1382 <param name="name">Name of the SELECT-tag</param>
2861 <param name="label">caption</param> 1383 <param name="collection">collection used to generate options.</param>
2862 <returns>generated html code</returns> 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"/>
2863 </member> 1389 </member>
2864 <member name="M:HttpServer.Helpers.ObjectForm.Cb(System.String,System.String,System.Object[])"> 1390 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
2865 <summary> 1391 <summary>
2866 Generate a checkbox 1392 Creates a select list with the values in a collection.
2867 </summary> 1393 </summary>
2868 <param name="propertyName">property in object</param> 1394 <param name="name">Name of the SELECT-tag</param>
2869 <param name="value">checkbox value</param> 1395 <param name="id">Id of the SELECT-tag</param>
2870 <param name="options">additional html attributes.</param> 1396 <param name="collection">collection used to generate options.</param>
2871 <returns>generated html code</returns> 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>
1403 <code>
1404 // Class that is going to be used in a SELECT-tag.
1405 public class User
1406 {
1407 private readonly string _realName;
1408 private readonly int _id;
1409 public User(int id, string realName)
1410 {
1411 _id = id;
1412 _realName = realName;
1413 }
1414 public string RealName
1415 {
1416 get { return _realName; }
1417 }
1418
1419 public int Id
1420 {
1421 get { return _id; }
1422 }
1423 }
1424
1425 // Using an inline delegate to generate the select list
1426 public void UserInlineDelegate()
1427 {
1428 List&lt;User&gt; items = new List&lt;User&gt;();
1429 items.Add(new User(1, "adam"));
1430 items.Add(new User(2, "bertial"));
1431 items.Add(new User(3, "david"));
1432 string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value)
1433 {
1434 User user = (User)o;
1435 id = user.Id;
1436 value = user.RealName;
1437 }, 2, true);
1438 }
1439
1440 // Using an method as delegate to generate the select list.
1441 public void UseExternalDelegate()
1442 {
1443 List&lt;User&gt; items = new List&lt;User&gt;();
1444 items.Add(new User(1, "adam"));
1445 items.Add(new User(2, "bertial"));
1446 items.Add(new User(3, "david"));
1447 string htmlSelect = Select("users", "users", items, UserOptions, 1, true);
1448 }
1449
1450 // delegate returning id and title
1451 public static void UserOptions(object o, out object id, out object title)
1452 {
1453 User user = (User)o;
1454 id = user.Id;
1455 value = user.RealName;
1456 }
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>
2872 </member> 1460 </member>
2873 <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.String,System.String,System.Object[])"> 1461 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean,System.String[])">
2874 <summary> 1462 <summary>
2875 Write a html select tag 1463 Creates a select list with the values in a collection.
2876 </summary> 1464 </summary>
2877 <param name="propertyName">object property.</param> 1465 <param name="name">Name of the SELECT-tag</param>
2878 <param name="idColumn">id column</param> 1466 <param name="id">Id of the SELECT-tag</param>
2879 <param name="titleColumn">The title column.</param> 1467 <param name="collection">collection used to generate options.</param>
2880 <param name="options">The options.</param> 1468 <param name="getIdTitle">delegate used to return id and title from objects.</param>
2881 <returns></returns> 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>
2882 </member> 1476 </member>
2883 <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.Collections.IEnumerable,System.String,System.String,System.Object[])"> 1477 <member name="M:HttpServer.Helpers.FormHelper.Options(System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
2884 <summary> 1478 <summary>
2885 Selects the specified property name. 1479 Generate a list of HTML options
2886 </summary> 1480 </summary>
2887 <param name="propertyName">Name of the property.</param> 1481 <param name="collection">collection used to generate options.</param>
2888 <param name="items">The items.</param> 1482 <param name="getIdTitle">delegate used to return id and title from objects.</param>
2889 <param name="idColumn">The id column.</param> 1483 <param name="selectedValue">value that should be marked as selected.</param>
2890 <param name="titleColumn">The title column.</param> 1484 <param name="firstEmpty">First row should contain an empty value.</param>
2891 <param name="options">The options.</param>
2892 <returns></returns> 1485 <returns></returns>
1486 <exception cref="T:System.ArgumentNullException"><c>collection</c> or <c>getIdTitle</c> is null.</exception>
2893 </member> 1487 </member>
2894 <member name="M:HttpServer.Helpers.ObjectForm.Submit(System.String)"> 1488 <member name="M:HttpServer.Helpers.FormHelper.Options(System.Text.StringBuilder,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
2895 <summary> 1489 <exception cref="T:System.ArgumentNullException"><c>sb</c> is null.</exception>
2896 Write a submit tag.
2897 </summary>
2898 <param name="value">button caption</param>
2899 <returns>html submit tag</returns>
2900 </member>
2901 <member name="M:HttpServer.Helpers.ObjectForm.End">
2902 <summary>
2903 html end form tag
2904 </summary>
2905 <returns>html</returns>
2906 </member>
2907 <member name="T:HttpServer.FormDecoders.UrlDecoder">
2908 <summary>
2909 Can handle application/x-www-form-urlencoded
2910 </summary>
2911 </member> 1490 </member>
2912 <member name="M:HttpServer.FormDecoders.UrlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)"> 1491 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.Object,System.Object,System.String[])">
2913 <summary> 1492 <summary>
1493 Creates a check box.
2914 </summary> 1494 </summary>
2915 <param name="stream">Stream containing the content</param> 1495 <param name="name">element name</param>
2916 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param> 1496 <param name="value">element value</param>
2917 <param name="encoding">Stream encoding</param> 1497 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the
2918 <returns> 1498 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
2919 A HTTP form, or null if content could not be parsed. 1499 the box is checked or not. </param>
2920 </returns> 1500 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
2921 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception> 1501 <returns>a generated radio button</returns>
2922 </member> 1502 </member>
2923 <member name="M:HttpServer.FormDecoders.UrlDecoder.CanParse(System.String)"> 1503 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.String,System.Object,System.Object,System.String[])">
2924 <summary> 1504 <summary>
2925 Checks if the decoder can handle the mime type 1505 Creates a check box.
2926 </summary> 1506 </summary>
2927 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param> 1507 <param name="name">element name</param>
2928 <returns>True if the decoder can parse the specified content type</returns> 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>
2929 </member> 1518 </member>
2930 <member name="T:HttpServer.Exceptions.NotFoundException"> 1519 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.String,System.Object,System.String[])">
2931 <summary> 1520 <summary>
2932 The requested resource was not found in the web server. 1521 Creates a check box.
2933 </summary> 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>
2934 </member> 1531 </member>
2935 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String,System.Exception)"> 1532 <member name="M:HttpServer.Helpers.FormHelper.RadioButton(System.String,System.Object,System.Object,System.String[])">
2936 <summary> 1533 <summary>
2937 Create a new exception 1534 Creates a RadioButton.
2938 </summary> 1535 </summary>
2939 <param name="message">message describing the error</param> 1536 <param name="name">element name</param>
2940 <param name="inner">inner exception</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>
2941 </member> 1543 </member>
2942 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String)"> 1544 <member name="M:HttpServer.Helpers.FormHelper.RadioButton(System.String,System.String,System.Object,System.Object,System.String[])">
2943 <summary> 1545 <summary>
2944 Create a new exception 1546 Creates a RadioButton.
2945 </summary> 1547 </summary>
2946 <param name="message">message describing the error</param> 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>
2947 </member> 1556 </member>
2948 <member name="T:HttpServer.ClientAcceptedEventArgs"> 1557 <member name="M:HttpServer.Helpers.FormHelper.End">
2949 <summary> 1558 <summary>
2950 Invoked when a client have been accepted by the <see cref="T:HttpServer.HttpListener"/> 1559 form close tag
2951 </summary> 1560 </summary>
2952 <remarks> 1561 <returns></returns>
2953 Can be used to revoke incoming connections
2954 </remarks>
2955 </member> 1562 </member>
2956 <member name="M:HttpServer.ClientAcceptedEventArgs.#ctor(System.Net.Sockets.Socket)"> 1563 <member name="T:HttpServer.Sessions.HttpSessionClearedArgs">
2957 <summary> 1564 <summary>
2958 Initializes a new instance of the <see cref="T:HttpServer.ClientAcceptedEventArgs"/> class. 1565 Arguments sent when a <see cref="T:HttpServer.Sessions.IHttpSession"/> is cleared
2959 </summary> 1566 </summary>
2960 <param name="socket">The socket.</param>
2961 </member> 1567 </member>
2962 <member name="M:HttpServer.ClientAcceptedEventArgs.Revoke"> 1568 <member name="M:HttpServer.Sessions.HttpSessionClearedArgs.#ctor(System.Boolean)">
2963 <summary> 1569 <summary>
2964 Client may not be handled. 1570 Instantiates the arguments for the event
2965 </summary> 1571 </summary>
1572 <param name="expired">True if the session is cleared due to expiration</param>
2966 </member> 1573 </member>
2967 <member name="P:HttpServer.ClientAcceptedEventArgs.Socket"> 1574 <member name="P:HttpServer.Sessions.HttpSessionClearedArgs.Expired">
2968 <summary> 1575 <summary>
2969 Accepted socket. 1576 Returns true if the session is cleared due to expiration
2970 </summary> 1577 </summary>
2971 </member> 1578 </member>
2972 <member name="P:HttpServer.ClientAcceptedEventArgs.Revoked"> 1579 <member name="T:HttpServer.Sessions.HttpSessionClearedHandler">
2973 <summary> 1580 <summary>
2974 Client should be revoked. 1581 Delegate for when a IHttpSession is cleared
2975 </summary> 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>
2976 </member> 1585 </member>
2977 <member name="T:HttpServer.RequestQueue"> 1586 <member name="T:HttpServer.RequestQueue">
2978 <summary> 1587 <summary>
@@ -3018,77 +1627,29 @@
3018 <param name="context">Context that the request was received from.</param> 1627 <param name="context">Context that the request was received from.</param>
3019 <param name="request">Request to process.</param> 1628 <param name="request">Request to process.</param>
3020 </member> 1629 </member>
3021 <member name="T:HttpServer.Parser.RequestLineEventArgs"> 1630 <member name="T:HttpServer.RequestParserFactory">
3022 <summary>
3023 Used when the request line have been successfully parsed.
3024 </summary>
3025 </member>
3026 <member name="M:HttpServer.Parser.RequestLineEventArgs.#ctor(System.String,System.String,System.String)">
3027 <summary>
3028 Initializes a new instance of the <see cref="T:HttpServer.Parser.RequestLineEventArgs"/> class.
3029 </summary>
3030 <param name="httpMethod">The HTTP method.</param>
3031 <param name="uriPath">The URI path.</param>
3032 <param name="httpVersion">The HTTP version.</param>
3033 </member>
3034 <member name="M:HttpServer.Parser.RequestLineEventArgs.#ctor">
3035 <summary>
3036 Initializes a new instance of the <see cref="T:HttpServer.Parser.RequestLineEventArgs"/> class.
3037 </summary>
3038 </member>
3039 <member name="P:HttpServer.Parser.RequestLineEventArgs.HttpMethod">
3040 <summary>
3041 Gets or sets http method.
3042 </summary>
3043 <remarks>
3044 Should be one of the methods declared in <see cref="T:HttpServer.Method"/>.
3045 </remarks>
3046 </member>
3047 <member name="P:HttpServer.Parser.RequestLineEventArgs.HttpVersion">
3048 <summary>
3049 Gets or sets the version of the HTTP protocol that the client want to use.
3050 </summary>
3051 </member>
3052 <member name="P:HttpServer.Parser.RequestLineEventArgs.UriPath">
3053 <summary>
3054 Gets or sets requested URI path.
3055 </summary>
3056 </member>
3057 <member name="T:HttpServer.IComponentProvider">
3058 <summary>
3059 Inversion of control interface.
3060 </summary>
3061 </member>
3062 <member name="M:HttpServer.IComponentProvider.AddInstance``1(System.Object)">
3063 <summary> 1631 <summary>
3064 Add a component instance 1632 Creates request parsers when needed.
3065 </summary> 1633 </summary>
3066 <typeparam name="T">Interface type</typeparam>
3067 <param name="instance">Instance to add</param>
3068 </member> 1634 </member>
3069 <member name="M:HttpServer.IComponentProvider.Get``1"> 1635 <member name="T:HttpServer.IRequestParserFactory">
3070 <summary> 1636 <summary>
3071 Get a component. 1637 Creates request parsers when needed.
3072 </summary> 1638 </summary>
3073 <typeparam name="T">Interface type</typeparam>
3074 <returns>Component if registered, otherwise null.</returns>
3075 <remarks>
3076 Component will get created if needed.
3077 </remarks>
3078 </member> 1639 </member>
3079 <member name="M:HttpServer.IComponentProvider.Contains(System.Type)"> 1640 <member name="M:HttpServer.IRequestParserFactory.CreateParser(HttpServer.ILogWriter)">
3080 <summary> 1641 <summary>
3081 Checks if the specified component interface have been added. 1642 Create a new request parser.
3082 </summary> 1643 </summary>
3083 <param name="interfaceType"></param> 1644 <param name="logWriter">Used when logging should be enabled.</param>
3084 <returns>true if found; otherwise false.</returns> 1645 <returns>A new request parser.</returns>
3085 </member> 1646 </member>
3086 <member name="M:HttpServer.IComponentProvider.Add``2"> 1647 <member name="M:HttpServer.RequestParserFactory.CreateParser(HttpServer.ILogWriter)">
3087 <summary> 1648 <summary>
3088 Add a component. 1649 Create a new request parser.
3089 </summary> 1650 </summary>
3090 <typeparam name="InterfaceType">Type being requested.</typeparam> 1651 <param name="logWriter">Used when logging should be enabled.</param>
3091 <typeparam name="InstanceType">Type being created.</typeparam> 1652 <returns>A new request parser.</returns>
3092 </member> 1653 </member>
3093 <member name="T:HttpServer.HttpResponse"> 1654 <member name="T:HttpServer.HttpResponse">
3094 <summary> 1655 <summary>
@@ -3459,252 +2020,425 @@
3459 Cookies that should be created/changed. 2020 Cookies that should be created/changed.
3460 </summary> 2021 </summary>
3461 </member> 2022 </member>
3462 <member name="T:HttpServer.HttpRequest"> 2023 <member name="T:HttpServer.HttpContextFactory">
3463 <summary> 2024 <summary>
3464 Contains server side HTTP request information. 2025 Used to create and reuse contexts.
3465 </summary> 2026 </summary>
3466 </member> 2027 </member>
3467 <member name="F:HttpServer.HttpRequest.UriSplitters"> 2028 <member name="T:HttpServer.IHttpContextFactory">
3468 <summary> 2029 <summary>
3469 Chars used to split an URL path into multiple parts. 2030 Used to create <see cref="T:HttpServer.IHttpClientContext"/>es.
3470 </summary> 2031 </summary>
3471 </member> 2032 </member>
3472 <member name="M:HttpServer.HttpRequest.AssignForm(HttpServer.HttpForm)"> 2033 <member name="M:HttpServer.IHttpContextFactory.CreateContext(System.Net.Sockets.Socket)">
3473 <summary> 2034 <summary>
3474 Assign a form. 2035 Creates a <see cref="T:HttpServer.IHttpClientContext"/> that handles a connected client.
3475 </summary> 2036 </summary>
3476 <param name="form"></param> 2037 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
2038 <returns>A creates <see cref="T:HttpServer.IHttpClientContext"/>.</returns>
3477 </member> 2039 </member>
3478 <member name="M:HttpServer.HttpRequest.Clone"> 2040 <member name="M:HttpServer.IHttpContextFactory.CreateSecureContext(System.Net.Sockets.Socket,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
3479 <summary> 2041 <summary>
3480 Creates a new object that is a copy of the current instance. 2042 Create a secure <see cref="T:HttpServer.IHttpClientContext"/>.
3481 </summary> 2043 </summary>
3482 2044 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
2045 <param name="certificate">HTTPS certificate to use.</param>
2046 <param name="protocol">Kind of HTTPS protocol. Usually TLS or SSL.</param>
2047 <returns>A created <see cref="T:HttpServer.IHttpClientContext"/>.</returns>
2048 </member>
2049 <member name="E:HttpServer.IHttpContextFactory.RequestReceived">
2050 <summary>
2051 A request have been received from one of the contexts.
2052 </summary>
2053 </member>
2054 <member name="M:HttpServer.HttpContextFactory.#ctor(HttpServer.ILogWriter,System.Int32,HttpServer.IRequestParserFactory)">
2055 <summary>
2056 Initializes a new instance of the <see cref="T:HttpServer.HttpContextFactory"/> class.
2057 </summary>
2058 <param name="writer">The writer.</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>
2062 <member name="M:HttpServer.HttpContextFactory.CreateContext(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,System.Net.Sockets.Socket)">
2063 <summary>
2064 Create a new context.
2065 </summary>
2066 <param name="isSecured">true if socket is running HTTPS.</param>
2067 <param name="endPoint">Client that connected</param>
2068 <param name="stream">Network/SSL stream.</param>
2069 <returns>A context.</returns>
2070 </member>
2071 <member name="M:HttpServer.HttpContextFactory.CreateNewContext(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,System.Net.Sockets.Socket)">
2072 <summary>
2073 Create a new context.
2074 </summary>
2075 <param name="isSecured">true if HTTPS is used.</param>
2076 <param name="endPoint">Remote client</param>
2077 <param name="stream">Network stream, <see cref="T:HttpServer.HttpClientContext"/> uses <see cref="T:HttpServer.ReusableSocketNetworkStream"/>.</param>
2078 <returns>A new context (always).</returns>
2079 </member>
2080 <member name="M:HttpServer.HttpContextFactory.CreateSecureContext(System.Net.Sockets.Socket,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
2081 <summary>
2082 Create a secure <see cref="T:HttpServer.IHttpClientContext"/>.
2083 </summary>
2084 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
2085 <param name="certificate">HTTPS certificate to use.</param>
2086 <param name="protocol">Kind of HTTPS protocol. Usually TLS or SSL.</param>
3483 <returns> 2087 <returns>
3484 A new object that is a copy of this instance. 2088 A created <see cref="T:HttpServer.IHttpClientContext"/>.
3485 </returns> 2089 </returns>
3486 <filterpriority>2</filterpriority>
3487 </member> 2090 </member>
3488 <member name="M:HttpServer.HttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)"> 2091 <member name="M:HttpServer.HttpContextFactory.CreateContext(System.Net.Sockets.Socket)">
3489 <summary> 2092 <summary>
3490 Decode body into a form. 2093 Creates a <see cref="T:HttpServer.IHttpClientContext"/> that handles a connected client.
3491 </summary> 2094 </summary>
3492 <param name="providers">A list with form decoders.</param> 2095 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
3493 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception> 2096 <returns>
3494 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception> 2097 A creates <see cref="T:HttpServer.IHttpClientContext"/>.
2098 </returns>
3495 </member> 2099 </member>
3496 <member name="M:HttpServer.HttpRequest.SetCookies(HttpServer.RequestCookies)"> 2100 <member name="P:HttpServer.HttpContextFactory.UseTraceLogs">
3497 <summary> 2101 <summary>
3498 Cookies 2102 True if detailed trace logs should be written.
3499 </summary> 2103 </summary>
3500 <param name="cookies">the cookies</param>
3501 </member> 2104 </member>
3502 <member name="M:HttpServer.HttpRequest.CreateResponse(HttpServer.IHttpClientContext)"> 2105 <member name="E:HttpServer.HttpContextFactory.RequestReceived">
3503 <summary> 2106 <summary>
3504 Create a response object. 2107 A request have been received from one of the contexts.
3505 </summary> 2108 </summary>
3506 <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns>
3507 </member> 2109 </member>
3508 <member name="M:HttpServer.HttpRequest.AddHeader(System.String,System.String)"> 2110 <member name="T:HttpServer.ReusableSocketNetworkStream">
3509 <summary> 2111 <summary>
3510 Called during parsing of a <see cref="T:HttpServer.IHttpRequest"/>. 2112 Custom network stream to mark sockets as reusable when disposing the stream.
3511 </summary> 2113 </summary>
3512 <param name="name">Name of the header, should not be URL encoded</param>
3513 <param name="value">Value of the header, should not be URL encoded</param>
3514 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception>
3515 </member> 2114 </member>
3516 <member name="M:HttpServer.HttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)"> 2115 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket)">
3517 <summary> 2116 <summary>
3518 Add bytes to the body 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" />.
3519 </summary> 2118 </summary>
3520 <param name="bytes">buffer to read bytes from</param> 2119 <param name="socket">
3521 <param name="offset">where to start read</param> 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.
3522 <param name="length">number of bytes to read</param> 2121 </param>
3523 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns> 2122 <exception cref="T:System.ArgumentNullException">
3524 <exception cref="T:System.InvalidOperationException">If body is not writable</exception> 2123 The <paramref name="socket" /> parameter is null.
3525 <exception cref="T:System.ArgumentNullException"><c>bytes</c> is null.</exception> 2124 </exception>
3526 <exception cref="T:System.ArgumentOutOfRangeException"><c>offset</c> is out of range.</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>
3527 </member> 2132 </member>
3528 <member name="M:HttpServer.HttpRequest.Clear"> 2133 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.Boolean)">
3529 <summary> 2134 <summary>
3530 Clear everything in the request 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.
3531 </summary> 2136 </summary>
2137 <param name="socket">
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.
2139 </param>
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>
3532 </member> 2153 </member>
3533 <member name="P:HttpServer.HttpRequest.Secure"> 2154 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.IO.FileAccess)">
3534 <summary> 2155 <summary>
3535 Gets or sets a value indicating whether this <see cref="T:HttpServer.HttpRequest"/> is secure. 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.
3536 </summary> 2157 </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>
3537 </member> 2174 </member>
3538 <member name="P:HttpServer.HttpRequest.UriPath"> 2175 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.IO.FileAccess,System.Boolean)">
3539 <summary> 2176 <summary>
3540 Path and query (will be merged with the host header) and put in Uri 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.
3541 </summary> 2178 </summary>
3542 <see cref="P:HttpServer.HttpRequest.Uri"/> 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>
3543 </member> 2198 </member>
3544 <member name="P:HttpServer.HttpRequest.BodyIsComplete"> 2199 <member name="M:HttpServer.ReusableSocketNetworkStream.Close">
3545 <summary> 2200 <summary>
3546 Gets whether the body is complete. 2201 Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream.
3547 </summary> 2202 </summary>
3548 </member> 2203 </member>
3549 <member name="P:HttpServer.HttpRequest.AcceptTypes"> 2204 <member name="M:HttpServer.ReusableSocketNetworkStream.Dispose(System.Boolean)">
3550 <summary> 2205 <summary>
3551 Gets kind of types accepted by the client. 2206 Releases the unmanaged resources used by the <see cref="T:System.Net.Sockets.NetworkStream"/> and optionally releases the managed resources.
3552 </summary> 2207 </summary>
2208 <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
3553 </member> 2209 </member>
3554 <member name="P:HttpServer.HttpRequest.Body"> 2210 <member name="T:HttpServer.Authentication.BasicAuthentication">
3555 <summary> 2211 <summary>
3556 Gets or sets body stream. 2212 The "basic" authentication scheme is based on the model that the
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.
3557 </summary> 2219 </summary>
3558 </member> 2220 </member>
3559 <member name="P:HttpServer.HttpRequest.Connection"> 2221 <member name="T:HttpServer.Authentication.AuthenticationModule">
3560 <summary> 2222 <summary>
3561 Gets or sets kind of connection used for the session. 2223 Authentication modules are used to implement different
2224 kind of HTTP authentication.
3562 </summary> 2225 </summary>
3563 </member> 2226 </member>
3564 <member name="P:HttpServer.HttpRequest.ContentLength"> 2227 <member name="F:HttpServer.Authentication.AuthenticationModule.AuthenticationTag">
3565 <summary> 2228 <summary>
3566 Gets or sets number of bytes in the body. 2229 Tag used for authentication.
3567 </summary> 2230 </summary>
3568 </member> 2231 </member>
3569 <member name="P:HttpServer.HttpRequest.Headers"> 2232 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
3570 <summary> 2233 <summary>
3571 Gets headers sent by the client. 2234 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class.
3572 </summary> 2235 </summary>
2236 <param name="authenticator">Delegate used to provide information used during authentication.</param>
2237 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
3573 </member> 2238 </member>
3574 <member name="P:HttpServer.HttpRequest.HttpVersion"> 2239 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler)">
3575 <summary> 2240 <summary>
3576 Gets or sets version of HTTP protocol that's used. 2241 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class.
3577 </summary> 2242 </summary>
3578 <remarks> 2243 <param name="authenticator">Delegate used to provide information used during authentication.</param>
3579 Probably <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/>.
3580 </remarks>
3581 <seealso cref="T:HttpServer.HttpHelper"/>
3582 </member> 2244 </member>
3583 <member name="P:HttpServer.HttpRequest.Method"> 2245 <member name="M:HttpServer.Authentication.AuthenticationModule.CreateResponse(System.String,System.Object[])">
3584 <summary> 2246 <summary>
3585 Gets or sets requested method. 2247 Create a response that can be sent in the WWW-Authenticate header.
3586 </summary> 2248 </summary>
3587 <value></value> 2249 <param name="realm">Realm that the user should authenticate in</param>
3588 <remarks> 2250 <param name="options">Array with optional options.</param>
3589 Will always be in upper case. 2251 <returns>A correct authentication request.</returns>
3590 </remarks> 2252 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
3591 <see cref="!:HttpServer.Method"/>
3592 </member> 2253 </member>
3593 <member name="P:HttpServer.HttpRequest.QueryString"> 2254 <member name="M:HttpServer.Authentication.AuthenticationModule.Authenticate(System.String,System.String,System.String,System.Object[])">
3594 <summary> 2255 <summary>
3595 Gets variables sent in the query string 2256 An authentication response have been received from the web browser.
2257 Check if it's correct
3596 </summary> 2258 </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>
3597 </member> 2266 </member>
3598 <member name="P:HttpServer.HttpRequest.Uri"> 2267 <member name="M:HttpServer.Authentication.AuthenticationModule.CheckAuthentication(System.String,System.String,System.String@,System.Object@)">
3599 <summary> 2268 <summary>
3600 Gets or sets requested URI. 2269 Used to invoke the authentication delegate that is used to lookup the user name/realm.
3601 </summary> 2270 </summary>
2271 <param name="realm">Realm (domain) that user want to authenticate in</param>
2272 <param name="userName">User name</param>
2273 <param name="password">Password used for validation. Some implementations got password in clear text, they are then sent to client.</param>
2274 <param name="login">object that will be stored in the request to help you identify the user if authentication was successful.</param>
2275 <returns>true if authentication was successful</returns>
3602 </member> 2276 </member>
3603 <member name="P:HttpServer.HttpRequest.UriParts"> 2277 <member name="M:HttpServer.Authentication.AuthenticationModule.AuthenticationRequired(HttpServer.IHttpRequest)">
3604 <summary> 2278 <summary>
3605 Uri absolute path splitted into parts. 2279 Determines if authentication is required.
3606 </summary> 2280 </summary>
3607 <example> 2281 <param name="request">HTTP request from browser</param>
3608 // uri is: http://gauffin.com/code/tiny/ 2282 <returns>true if user should be authenticated.</returns>
3609 Console.WriteLine(request.UriParts[0]); // result: code 2283 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> from your delegate if no more attempts are allowed.</remarks>
3610 Console.WriteLine(request.UriParts[1]); // result: tiny 2284 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
3611 </example>
3612 <remarks>
3613 If you're using controllers than the first part is controller name,
3614 the second part is method name and the third part is Id property.
3615 </remarks>
3616 <seealso cref="P:HttpServer.HttpRequest.Uri"/>
3617 </member> 2285 </member>
3618 <member name="P:HttpServer.HttpRequest.Param"> 2286 <member name="P:HttpServer.Authentication.AuthenticationModule.Name">
3619 <summary> 2287 <summary>
3620 Gets parameter from <see cref="P:HttpServer.HttpRequest.QueryString"/> or <see cref="P:HttpServer.HttpRequest.Form"/>. 2288 name used in HTTP request.
3621 </summary> 2289 </summary>
3622 </member> 2290 </member>
3623 <member name="P:HttpServer.HttpRequest.Form"> 2291 <member name="M:HttpServer.Authentication.BasicAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
3624 <summary> 2292 <summary>
3625 Gets form parameters. 2293 Initializes a new instance of the <see cref="T:HttpServer.Authentication.BasicAuthentication"/> class.
3626 </summary> 2294 </summary>
2295 <param name="authenticator">Delegate used to provide information used during authentication.</param>
2296 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
3627 </member> 2297 </member>
3628 <member name="P:HttpServer.HttpRequest.IsAjax"> 2298 <member name="M:HttpServer.Authentication.BasicAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)">
3629 <summary> 2299 <summary>
3630 Gets whether the request was made by Ajax (Asynchronous JavaScript) 2300 Initializes a new instance of the <see cref="T:HttpServer.Authentication.BasicAuthentication"/> class.
3631 </summary> 2301 </summary>
2302 <param name="authenticator">Delegate used to provide information used during authentication.</param>
3632 </member> 2303 </member>
3633 <member name="P:HttpServer.HttpRequest.Cookies"> 2304 <member name="M:HttpServer.Authentication.BasicAuthentication.CreateResponse(System.String,System.Object[])">
3634 <summary> 2305 <summary>
3635 Gets cookies that was sent with the request. 2306 Create a response that can be sent in the WWW-Authenticate header.
3636 </summary> 2307 </summary>
2308 <param name="realm">Realm that the user should authenticate in</param>
2309 <param name="options">Not used in basic auth</param>
2310 <returns>A correct auth request.</returns>
3637 </member> 2311 </member>
3638 <member name="T:HttpServer.Helpers.ResourceManager"> 2312 <member name="M:HttpServer.Authentication.BasicAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])">
3639 <summary>Class to handle loading of resource files</summary> 2313 <summary>
2314 An authentication response have been received from the web browser.
2315 Check if it's correct
2316 </summary>
2317 <param name="authenticationHeader">Contents from the Authorization header</param>
2318 <param name="realm">Realm that should be authenticated</param>
2319 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
2320 <param name="options">Not used in basic auth</param>
2321 <returns>Authentication object that is stored for the request. A user class or something like that.</returns>
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>
3640 </member> 2324 </member>
3641 <member name="M:HttpServer.Helpers.ResourceManager.#ctor"> 2325 <member name="P:HttpServer.Authentication.BasicAuthentication.Name">
3642 <summary> 2326 <summary>
3643 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class. 2327 name used in http request.
3644 </summary> 2328 </summary>
3645 </member> 2329 </member>
3646 <member name="M:HttpServer.Helpers.ResourceManager.#ctor(HttpServer.ILogWriter)"> 2330 <member name="T:HttpServer.HttpModules.HttpModuleExceptionEventArgs">
3647 <summary> 2331 <summary>
3648 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class. 2332 Used to inform http server that
3649 </summary> 2333 </summary>
3650 <param name="writer">logger.</param>
3651 </member> 2334 </member>
3652 <member name="M:HttpServer.Helpers.ResourceManager.LoadResources(System.String,System.Reflection.Assembly,System.String)"> 2335 <member name="M:HttpServer.HttpModules.HttpModuleExceptionEventArgs.#ctor(System.Exception)">
3653 <summary> 2336 <summary>
3654 Loads resources from a namespace in the given assembly to an URI 2337 Eventarguments used when an exception is thrown by a module
3655 </summary> 2338 </summary>
3656 <param name="toUri">The URI to map the resources to</param> 2339 <param name="e">the exception</param>
3657 <param name="fromAssembly">The assembly in which the resources reside</param> 2340 </member>
3658 <param name="fromNamespace">The namespace from which to load the resources</param> 2341 <member name="P:HttpServer.HttpModules.HttpModuleExceptionEventArgs.Exception">
3659 <usage> 2342 <summary>
2343 Exception thrown in a module
2344 </summary>
2345 </member>
2346 <member name="T:HttpServer.Helpers.Implementations.PrototypeImp">
2347 <summary>
2348 PrototypeJS implementation of the javascript functions.
2349 </summary>
2350 </member>
2351 <member name="T:HttpServer.Helpers.JavascriptHelperImplementation">
2352 <summary>
2353 Purpose of this class is to create a javascript toolkit independent javascript helper.
2354 </summary>
2355 </member>
2356 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.GenerateOptions(System.Text.StringBuilder,System.String[],System.Boolean)">
2357 <summary>
2358 Generates a list with JS options.
2359 </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>
2364 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.RemoveJavascriptOptions(System.String[])">
2365 <summary>
2366 Removes any javascript parameters from an array of parameters
2367 </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>
2371 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxFormOnSubmit(System.String[])">
2372 <summary>
2373 javascript action that should be added to the "onsubmit" event in the form tag.
2374 </summary>
2375 <returns></returns>
2376 <remarks>All javascript option names should end with colon.</remarks>
2377 <example>
3660 <code> 2378 <code>
3661 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views"); 2379 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
3662 </code> 2380 </code>
3663 Will make the resource MyLib.Models.User.Views.list.Haml accessible via /user/list.haml or /user/list/ 2381 </example>
3664 </usage>
3665 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns>
3666 <exception cref="T:System.InvalidOperationException">If a resource has already been mapped to an uri</exception>
3667 </member> 2382 </member>
3668 <member name="M:HttpServer.Helpers.ResourceManager.GetResourceStream(System.String)"> 2383 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxRequest(System.String,System.String[])">
3669 <summary> 2384 <summary>
3670 Retrieves a stream for the specified resource path if loaded otherwise null 2385 Requests a url through ajax
3671 </summary> 2386 </summary>
3672 <param name="path">Path to the resource to retrieve a stream for</param> 2387 <param name="url">url to fetch</param>
3673 <returns>A stream or null if the resource couldn't be found</returns> 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>
3674 </member> 2396 </member>
3675 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String)"> 2397 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxUpdater(System.String,System.String,System.String[])">
3676 <summary> 2398 <summary>
3677 Fetch all files from the resource that matches the specified arguments. 2399 Ajax requests that updates an element with
2400 the fetched content
3678 </summary> 2401 </summary>
3679 <param name="path">The path to the resource to extract</param> 2402 <param name="url">Url to fetch content from</param>
3680 <returns> 2403 <param name="targetId">element to update</param>
3681 a list of files if found; or an empty array if no files are found. 2404 <param name="options">optional options in format "key, value, key, value", used in JS updater object.</param>
3682 </returns> 2405 <returns>A link tag.</returns>
3683 <exception cref="T:System.ArgumentException">Search path must end with an asterisk for finding arbitrary files</exception> 2406 <remarks>All javascript option names should end with colon.</remarks>
2407 <example>
2408 <code>
2409 JSHelper.AjaxUpdater("/user/show/1", "userInfo", "onsuccess:", "alert('Successful!');");
2410 </code>
2411 </example>
3684 </member> 2412 </member>
3685 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String,System.String)"> 2413 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])">
3686 <summary> 2414 <summary>
3687 Fetch all files from the resource that matches the specified arguments. 2415 A link that pop ups a Dialog (overlay div)
3688 </summary> 2416 </summary>
3689 <param name="path">Where the file should reside.</param> 2417 <param name="url">url to contents of dialog</param>
3690 <param name="filename">Files to check</param> 2418 <param name="title">link title</param>
3691 <returns> 2419 <returns>A "a"-tag that popups a dialog when clicked</returns>
3692 a list of files if found; or an empty array if no files are found. 2420 <param name="htmlAttributes">name/value of html attributes</param>
3693 </returns> 2421 <example>
2422 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
2423 </example>
3694 </member> 2424 </member>
3695 <member name="M:HttpServer.Helpers.ResourceManager.ContainsResource(System.String)"> 2425 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CloseDialog">
3696 <summary> 2426 <summary>
3697 Returns whether or not the loader has an instance of the file requested 2427 Close a javascript dialog window/div.
3698 </summary> 2428 </summary>
3699 <param name="filename">The name of the template/file</param> 2429 <returns>javascript for closing a dialog.</returns>
3700 <returns>True if the loader can provide the file</returns> 2430 <see cref="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])"/>
3701 </member> 2431 </member>
3702 <member name="T:HttpServer.Helpers.JSHelper"> 2432 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CreateDialog(System.String,System.String,System.String[])">
3703 <summary> 2433 <summary>
3704 Will contain helper functions for javascript. 2434 Creates a new modal dialog window
3705 </summary> 2435 </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>
3706 </member> 2440 </member>
3707 <member name="M:HttpServer.Helpers.JSHelper.AjaxRequest(System.String,System.String[])"> 2441 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxRequest(System.String,System.String[])">
3708 <summary> 2442 <summary>
3709 Requests a url through ajax 2443 Requests a url through ajax
3710 </summary> 2444 </summary>
@@ -3722,12 +2456,21 @@
3722 </code> 2456 </code>
3723 </example> 2457 </example>
3724 </member> 2458 </member>
3725 <member name="M:HttpServer.Helpers.JSHelper.AjaxUpdater(System.String,System.String,System.String[])"> 2459 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.Contains(System.Collections.Generic.IEnumerable{System.String},System.String)">
2460 <summary>
2461 Determins if a list of strings contains a specific value
2462 </summary>
2463 <param name="options">options to check in</param>
2464 <param name="value">value to find</param>
2465 <returns>true if value was found</returns>
2466 <remarks>case insensitive</remarks>
2467 </member>
2468 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxUpdater(System.String,System.String,System.String[])">
3726 <summary> 2469 <summary>
3727 Ajax requests that updates an element with 2470 Ajax requests that updates an element with
3728 the fetched content 2471 the fetched content
3729 </summary> 2472 </summary>
3730 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param> 2473 <param name="url">URL to fetch. URL is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
3731 <param name="targetId">element to update</param> 2474 <param name="targetId">element to update</param>
3732 <param name="options">options in format "key, value, key, value". All keys should end with colon.</param> 2475 <param name="options">options in format "key, value, key, value". All keys should end with colon.</param>
3733 <returns>A link tag.</returns> 2476 <returns>A link tag.</returns>
@@ -3737,925 +2480,1407 @@
3737 </code> 2480 </code>
3738 </example> 2481 </example>
3739 </member> 2482 </member>
3740 <member name="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])"> 2483 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.DialogLink(System.String,System.String,System.String[])">
3741 <summary> 2484 <summary>
3742 Opens contents in a dialog window. 2485 A link that pop ups a Dialog (overlay div)
3743 </summary> 2486 </summary>
3744 <param name="url">url to contents of dialog</param> 2487 <param name="url">URL to contents of dialog</param>
3745 <param name="title">link title</param> 2488 <param name="title">link title</param>
3746 <param name="options">name, value, name, value, all parameter names should end with colon.</param> 2489 <param name="htmlAttributes">name, value, name, value</param>
2490 <returns>
2491 A "a"-tag that popups a dialog when clicked
2492 </returns>
2493 <remarks><para>Requires Control.Modal found here: http://livepipe.net/projects/control_modal/</para>
2494 And the following JavaScript (load it in application.js):
2495 <code>
2496 Event.observe(window, 'load',
2497 function() {
2498 document.getElementsByClassName('modal').each(function(link){ new Control.Modal(link); });
2499 }
2500 );
2501 </code>
2502 </remarks>
2503 <example>
2504 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
2505 </example>
3747 </member> 2506 </member>
3748 <member name="M:HttpServer.Helpers.JSHelper.CloseDialog"> 2507 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.CreateDialog(System.String,System.String,System.String[])">
2508 <summary>
2509 create a modal dialog (usually using DIVs)
2510 </summary>
2511 <param name="url">url to fetch</param>
2512 <param name="title">dialog title</param>
2513 <param name="options">javascript/html attributes. javascript options ends with colon ':'.</param>
2514 <returns></returns>
2515 </member>
2516 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.CloseDialog">
3749 <summary> 2517 <summary>
3750 Close a javascript dialog window/div. 2518 Close a javascript dialog window/div.
3751 </summary> 2519 </summary>
3752 <returns>javascript for closing a dialog.</returns> 2520 <returns>javascript for closing a dialog.</returns>
3753 <see cref="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])"/> 2521 <see cref="M:HttpServer.Helpers.Implementations.PrototypeImp.DialogLink(System.String,System.String,System.String[])"/>
3754 </member> 2522 </member>
3755 <member name="T:HttpServer.FormDecoders.FormDecoderProvider"> 2523 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxFormOnSubmit(System.String[])">
3756 <summary> 2524 <summary>
3757 This provider is used to let us implement any type of form decoding we want without 2525 javascript action that should be added to the "onsubmit" event in the form tag.
3758 having to rewrite anything else in the server.
3759 </summary> 2526 </summary>
2527 <param name="options">remember to encapsulate strings in ''</param>
2528 <returns></returns>
2529 <remarks>All javascript option names should end with colon.</remarks>
2530 <example>
2531 <code>
2532 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
2533 </code>
2534 </example>
3760 </member> 2535 </member>
3761 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Decode(System.String,System.IO.Stream,System.Text.Encoding)"> 2536 <member name="T:HttpServer.ContentType">
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)">
3762 <summary> 2575 <summary>
3763 2576
3764 </summary> 2577 </summary>
3765 <param name="contentType">Should contain boundary and type, as in: multipart/form-data; boundary=---------------------------230051238959</param> 2578 <param name="types">Semicolon separated content types.</param>
3766 <param name="stream">Stream containing form data.</param>
3767 <param name="encoding">Encoding used when decoding the stream</param>
3768 <returns><see cref="F:HttpServer.HttpInput.Empty"/> if no parser was found.</returns>
3769 <exception cref="T:System.ArgumentException">If stream is null or not readable.</exception>
3770 <exception cref="T:System.IO.InvalidDataException">If stream contents cannot be decoded properly.</exception>
3771 </member> 2579 </member>
3772 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Add(HttpServer.FormDecoders.IFormDecoder)"> 2580 <member name="M:HttpServer.ContentTypes.GetEnumerator">
3773 <summary> 2581 <summary>
3774 Add a decoder. 2582 Returns an enumerator that iterates through a collection.
3775 </summary> 2583 </summary>
3776 <param name="decoder"></param> 2584 <returns>
3777 <exception cref="T:System.ArgumentNullException"></exception> 2585 An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
2586 </returns>
3778 </member> 2587 </member>
3779 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Count"> 2588 <member name="M:HttpServer.ContentTypes.Contains(System.String)">
3780 <summary> 2589 <summary>
3781 Number of added decoders. 2590 Searches for the specified type
3782 </summary> 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>
3783 </member> 2594 </member>
3784 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Decoders"> 2595 <member name="P:HttpServer.ContentTypes.First">
3785 <summary> 2596 <summary>
3786 Use with care. 2597 Get this first content type.
3787 </summary> 2598 </summary>
3788 </member> 2599 </member>
3789 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.DefaultDecoder"> 2600 <member name="P:HttpServer.ContentTypes.Item(System.String)">
3790 <summary> 2601 <summary>
3791 Decoder used for unknown content types. 2602 Fetch a content type
3792 </summary> 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>
3793 </member> 2607 </member>
3794 <member name="T:HttpServer.ConnectionType"> 2608 <member name="T:HttpServer.Parser.HeaderEventArgs">
3795 <summary> 2609 <summary>
3796 Type of HTTP connection 2610 Event arguments used when a new header have been parsed.
3797 </summary> 2611 </summary>
3798 </member> 2612 </member>
3799 <member name="F:HttpServer.ConnectionType.Close"> 2613 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor(System.String,System.String)">
3800 <summary> 2614 <summary>
3801 Connection is closed after each request-response 2615 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class.
3802 </summary> 2616 </summary>
2617 <param name="name">Name of header.</param>
2618 <param name="value">Header value.</param>
3803 </member> 2619 </member>
3804 <member name="F:HttpServer.ConnectionType.KeepAlive"> 2620 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor">
3805 <summary> 2621 <summary>
3806 Connection is kept alive for X seconds (unless another request have been made) 2622 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class.
3807 </summary> 2623 </summary>
3808 </member> 2624 </member>
3809 <member name="T:HttpServer.HttpInputItem"> 2625 <member name="P:HttpServer.Parser.HeaderEventArgs.Name">
3810 <summary> 2626 <summary>
3811 represents a HTTP input item. Each item can have multiple sub items, a sub item 2627 Gets or sets header name.
3812 is made in a HTML form by using square brackets
3813 </summary> 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
2640 A typical usage is to allow web servers on non standard ports to still be available
2641 to the public clients, or allow web servers on private ips to be available.
2642 </summary>
2643 </member>
2644 <member name="M:HttpServer.HttpModules.ReverseProxyModule.#ctor(System.String,System.String)">
2645 <summary>
2646
2647 </summary>
2648 <param name="source">Base url requested from browser</param>
2649 <param name="destination">Base url on private web server</param>
3814 <example> 2650 <example>
3815 // <input type="text" name="user[FirstName]" value="jonas" /> becomes: 2651 // this will return contents from http://192.168.1.128/view/jonas when client requests http://www.gauffin.com/user/view/jonas
3816 Console.WriteLine("Value: {0}", form["user"]["FirstName"].Value); 2652 _server.Add(new ReverseProxyModule("http://www.gauffin.com/user/", "http://192.168.1.128/");
3817 </example> 2653 </example>
3818 <remarks>
3819 All names in a form SHOULD be in lowercase.
3820 </remarks>
3821 </member> 2654 </member>
3822 <member name="F:HttpServer.HttpInputItem.Empty"> 2655 <member name="M:HttpServer.HttpModules.ReverseProxyModule.CanHandle(System.Uri)">
3823 <summary> Representation of a non-initialized <see cref="T:HttpServer.HttpInputItem"/>.</summary> 2656 <summary>
2657 Method that determines if an url should be handled or not by the module
2658 </summary>
2659 <param name="uri">Url requested by the client.</param>
2660 <returns>true if module should handle the url.</returns>
3824 </member> 2661 </member>
3825 <member name="M:HttpServer.HttpInputItem.#ctor(System.String,System.String)"> 2662 <member name="M:HttpServer.HttpModules.ReverseProxyModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
3826 <summary> 2663 <summary>
3827 Initializes an input item setting its name/identifier and value 2664 Method that process the url
3828 </summary> 2665 </summary>
3829 <param name="name">Parameter name/id</param> 2666 <param name="request">Information sent by the browser about the request</param>
3830 <param name="value">Parameter value</param> 2667 <param name="response">Information that is being sent back to the client.</param>
2668 <param name="session">Session used to </param>
3831 </member> 2669 </member>
3832 <member name="M:HttpServer.HttpInputItem.#ctor(HttpServer.HttpInputItem)"> 2670 <member name="T:HttpServer.HttpClientContext">
3833 <summary>Creates a deep copy of the item specified</summary> 2671 <summary>
3834 <param name="item">The item to copy</param> 2672 Contains a connection to a browser/client.
3835 <remarks>The function makes a deep copy of quite a lot which can be slow</remarks> 2673 </summary>
2674 <remarks>
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?
3836 </member> 2678 </member>
3837 <member name="M:HttpServer.HttpInputItem.Add(System.String)"> 2679 <member name="T:HttpServer.IHttpClientContext">
3838 <summary> 2680 <summary>
3839 Add another value to this item 2681 Contains a connection to a browser/client.
3840 </summary> 2682 </summary>
3841 <param name="value">Value to add.</param>
3842 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception>
3843 </member> 2683 </member>
3844 <member name="M:HttpServer.HttpInputItem.Contains(System.String)"> 2684 <member name="M:HttpServer.IHttpClientContext.Disconnect(System.Net.Sockets.SocketError)">
3845 <summary> 2685 <summary>
3846 checks if a sub-item exists (and has a value). 2686 Disconnect from client
3847 </summary> 2687 </summary>
3848 <param name="name">name in lower case</param> 2688 <param name="error">error to report in the <see cref="E:HttpServer.IHttpClientContext.Disconnected"/> event.</param>
3849 <returns>true if the sub-item exists and has a value; otherwise false.</returns>
3850 </member> 2689 </member>
3851 <member name="M:HttpServer.HttpInputItem.ToString"> 2690 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)">
3852 <summary> Returns a formatted representation of the instance with the values of all contained parameters </summary> 2691 <summary>
2692 Send a response.
2693 </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>
3853 </member> 2700 </member>
3854 <member name="M:HttpServer.HttpInputItem.ToString(System.String,System.Boolean)"> 2701 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)">
3855 <summary> 2702 <summary>
3856 Outputs the string in a formatted manner 2703 Send a response.
3857 </summary> 2704 </summary>
3858 <param name="prefix">A prefix to append, used internally</param> 2705 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
3859 <param name="asQuerySting">produce a query string</param> 2706 <param name="statusCode">HTTP status code</param>
2707 <param name="reason">reason for the status code.</param>
3860 </member> 2708 </member>
3861 <member name="M:HttpServer.HttpInputItem.Add(System.String,System.String)"> 2709 <member name="M:HttpServer.IHttpClientContext.Respond(System.String)">
3862 <summary> 2710 <summary>
3863 Add a sub item. 2711 Send a response.
3864 </summary> 2712 </summary>
3865 <param name="name">Can contain array formatting, the item is then parsed and added in multiple levels</param> 2713 <exception cref="T:System.ArgumentNullException"></exception>
3866 <param name="value">Value to add.</param>
3867 <exception cref="T:System.ArgumentNullException">Argument is null.</exception>
3868 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception>
3869 </member> 2714 </member>
3870 <member name="M:HttpServer.HttpInputItem.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator"> 2715 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[])">
3871 <summary> 2716 <summary>
3872 Returns an enumerator that iterates through the collection. 2717 send a whole buffer
3873 </summary> 2718 </summary>
3874 2719 <param name="buffer">buffer to send</param>
3875 <returns> 2720 <exception cref="T:System.ArgumentNullException"></exception>
3876 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
3877 </returns>
3878 <filterpriority>1</filterpriority>
3879 </member> 2721 </member>
3880 <member name="M:HttpServer.HttpInputItem.GetEnumerator"> 2722 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[],System.Int32,System.Int32)">
3881 <summary> 2723 <summary>
3882 Returns an enumerator that iterates through a collection. 2724 Send data using the stream
3883 </summary> 2725 </summary>
3884 2726 <param name="buffer">Contains data to send</param>
3885 <returns> 2727 <param name="offset">Start position in buffer</param>
3886 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection. 2728 <param name="size">number of bytes to send</param>
3887 </returns> 2729 <exception cref="T:System.ArgumentNullException"></exception>
3888 <filterpriority>2</filterpriority> 2730 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
3889 </member> 2731 </member>
3890 <member name="M:HttpServer.HttpInputItem.ToString(System.String)"> 2732 <member name="M:HttpServer.IHttpClientContext.Close">
3891 <summary> 2733 <summary>
3892 Outputs the string in a formatted manner 2734 Closes the streams and disposes of the unmanaged resources
3893 </summary> 2735 </summary>
3894 <param name="prefix">A prefix to append, used internally</param>
3895 <returns></returns>
3896 </member> 2736 </member>
3897 <member name="P:HttpServer.HttpInputItem.Count"> 2737 <member name="P:HttpServer.IHttpClientContext.Secured">
3898 <summary> 2738 <summary>
3899 Number of values 2739 Using SSL or other encryption method.
3900 </summary> 2740 </summary>
3901 </member> 2741 </member>
3902 <member name="P:HttpServer.HttpInputItem.Item(System.String)"> 2742 <member name="P:HttpServer.IHttpClientContext.IsSecured">
3903 <summary> 2743 <summary>
3904 Get a sub item 2744 Using SSL or other encryption method.
3905 </summary> 2745 </summary>
3906 <param name="name">name in lower case.</param>
3907 <returns><see cref="F:HttpServer.HttpInputItem.Empty"/> if no item was found.</returns>
3908 </member> 2746 </member>
3909 <member name="P:HttpServer.HttpInputItem.Name"> 2747 <member name="E:HttpServer.IHttpClientContext.Disconnected">
3910 <summary> 2748 <summary>
3911 Name of item (in lower case). 2749 The context have been disconnected.
3912 </summary> 2750 </summary>
2751 <remarks>
2752 Event can be used to clean up a context, or to reuse it.
2753 </remarks>
3913 </member> 2754 </member>
3914 <member name="P:HttpServer.HttpInputItem.Value"> 2755 <member name="E:HttpServer.IHttpClientContext.RequestReceived">
3915 <summary> 2756 <summary>
3916 Returns the first value, or null if no value exist. 2757 A request have been received in the context.
3917 </summary> 2758 </summary>
3918 </member> 2759 </member>
3919 <member name="P:HttpServer.HttpInputItem.LastValue"> 2760 <member name="M:HttpServer.HttpClientContext.#ctor(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,HttpServer.IRequestParserFactory,System.Int32,System.Net.Sockets.Socket)">
3920 <summary> 2761 <summary>
3921 Returns the last value, or null if no value exist. 2762 Initializes a new instance of the <see cref="T:HttpServer.HttpClientContext"/> class.
3922 </summary> 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>
3923 </member> 2771 </member>
3924 <member name="P:HttpServer.HttpInputItem.Values"> 2772 <member name="M:HttpServer.HttpClientContext.OnBodyBytesReceived(System.Object,HttpServer.Parser.BodyEventArgs)">
3925 <summary> 2773 <summary>
3926 Returns the list with values. 2774 Process incoming body bytes.
3927 </summary> 2775 </summary>
2776 <param name="sender"><see cref="T:HttpServer.IHttpRequestParser"/></param>
2777 <param name="e">Bytes</param>
3928 </member> 2778 </member>
3929 <member name="P:HttpServer.HttpInputItem.HttpServer#IHttpInput#Item(System.String)"> 2779 <member name="M:HttpServer.HttpClientContext.OnHeaderReceived(System.Object,HttpServer.Parser.HeaderEventArgs)">
3930 <summary> 2780 <summary>
3931 2781
3932 </summary> 2782 </summary>
3933 <param name="name">name in lower case</param> 2783 <param name="sender"></param>
3934 <returns></returns> 2784 <param name="e"></param>
3935 </member> 2785 </member>
3936 <member name="T:HttpServer.Sessions.MemorySessionStore"> 2786 <member name="M:HttpServer.HttpClientContext.Start">
3937 <summary> 2787 <summary>
3938 Session store using memory for each session. 2788 Start reading content.
3939 </summary> 2789 </summary>
2790 <remarks>
2791 Make sure to call base.Start() if you override this method.
2792 </remarks>
3940 </member> 2793 </member>
3941 <member name="M:HttpServer.Sessions.MemorySessionStore.#ctor"> 2794 <member name="M:HttpServer.HttpClientContext.Cleanup">
3942 <summary> 2795 <summary>
3943 Initializes the class setting the expirationtimer to clean the session every minute 2796 Clean up context.
3944 </summary> 2797 </summary>
2798 <remarks>
2799 Make sure to call base.Cleanup() if you override the method.
2800 </remarks>
3945 </member> 2801 </member>
3946 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup(System.Object)"> 2802 <member name="M:HttpServer.HttpClientContext.Disconnect(System.Net.Sockets.SocketError)">
3947 <summary> 2803 <summary>
3948 Delegate for the cleanup timer 2804 Disconnect from client
3949 </summary> 2805 </summary>
2806 <param name="error">error to report in the <see cref="E:HttpServer.HttpClientContext.Disconnected"/> event.</param>
3950 </member> 2807 </member>
3951 <member name="M:HttpServer.Sessions.MemorySessionStore.Create"> 2808 <member name="M:HttpServer.HttpClientContext.OnReceive(System.IAsyncResult)">
2809 <exception cref="T:HttpServer.Exceptions.BadRequestException"><c>BadRequestException</c>.</exception>
2810 </member>
2811 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)">
3952 <summary> 2812 <summary>
3953 Creates a new http session 2813 Send a response.
3954 </summary> 2814 </summary>
3955 <returns></returns> 2815 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></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>
3956 </member> 2821 </member>
3957 <member name="M:HttpServer.Sessions.MemorySessionStore.Create(System.String)"> 2822 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)">
3958 <summary> 2823 <summary>
3959 Creates a new http session with a specific id 2824 Send a response.
3960 </summary> 2825 </summary>
3961 <param name="id">Id used to identify the new cookie..</param> 2826 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
3962 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns> 2827 <param name="statusCode">HTTP status code</param>
3963 <remarks> 2828 <param name="reason">reason for the status code.</param>
3964 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>.
3965 </remarks>
3966 </member> 2829 </member>
3967 <member name="M:HttpServer.Sessions.MemorySessionStore.Load(System.String)"> 2830 <member name="M:HttpServer.HttpClientContext.Respond(System.String)">
3968 <summary> 2831 <summary>
3969 Load an existing session. 2832 Send a response.
3970 </summary> 2833 </summary>
3971 <param name="sessionId"></param> 2834 <exception cref="T:System.ArgumentNullException"></exception>
3972 <returns></returns>
3973 </member> 2835 </member>
3974 <member name="M:HttpServer.Sessions.MemorySessionStore.Save(HttpServer.Sessions.IHttpSession)"> 2836 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[])">
3975 <summary> 2837 <summary>
3976 Save an updated session to the store. 2838 send a whole buffer
3977 </summary> 2839 </summary>
3978 <param name="session"></param> 2840 <param name="buffer">buffer to send</param>
2841 <exception cref="T:System.ArgumentNullException"></exception>
3979 </member> 2842 </member>
3980 <member name="M:HttpServer.Sessions.MemorySessionStore.AddUnused(HttpServer.Sessions.IHttpSession)"> 2843 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[],System.Int32,System.Int32)">
3981 <summary> 2844 <summary>
3982 We use the flyweight pattern which reuses small objects 2845 Send data using the stream
3983 instead of creating new each time.
3984 </summary> 2846 </summary>
3985 <param name="session">EmptyLanguageNode (unused) session that should be reused next time Create is called.</param> 2847 <param name="buffer">Contains data to send</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>
3986 </member> 2852 </member>
3987 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup"> 2853 <member name="E:HttpServer.HttpClientContext.Cleaned">
3988 <summary> 2854 <summary>
3989 Remove expired sessions 2855 This context have been cleaned, which means that it can be reused.
3990 </summary> 2856 </summary>
3991 </member> 2857 </member>
3992 <member name="M:HttpServer.Sessions.MemorySessionStore.Remove(System.String)"> 2858 <member name="E:HttpServer.HttpClientContext.Started">
3993 <summary> 2859 <summary>
3994 Remove a session 2860 Context have been started (a new client have connected)
3995 </summary> 2861 </summary>
3996 <param name="sessionId">id of the session.</param>
3997 </member> 2862 </member>
3998 <member name="P:HttpServer.Sessions.MemorySessionStore.Item(System.String)"> 2863 <member name="P:HttpServer.HttpClientContext.CurrentRequest">
3999 <summary> 2864 <summary>
4000 Load a session from the store 2865 Overload to specify own type.
4001 </summary> 2866 </summary>
4002 <param name="sessionId"></param> 2867 <remarks>
4003 <returns>null if session is not found.</returns> 2868 Must be specified before the context is being used.
2869 </remarks>
4004 </member> 2870 </member>
4005 <member name="P:HttpServer.Sessions.MemorySessionStore.ExpireTime"> 2871 <member name="P:HttpServer.HttpClientContext.Secured">
4006 <summary> 2872 <summary>
4007 Number of minutes before a session expires. 2873 Using SSL or other encryption method.
4008 Default is 20 minutes.
4009 </summary> 2874 </summary>
4010 </member> 2875 </member>
4011 <member name="T:HttpServer.Rules.RedirectRule"> 2876 <member name="P:HttpServer.HttpClientContext.IsSecured">
4012 <summary> 2877 <summary>
4013 redirects from one URL to another. 2878 Using SSL or other encryption method.
4014 </summary> 2879 </summary>
4015 </member> 2880 </member>
4016 <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String)"> 2881 <member name="P:HttpServer.HttpClientContext.LogWriter">
4017 <summary> 2882 <summary>
4018 Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class. 2883 Specify which logger to use.
4019 </summary> 2884 </summary>
4020 <param name="fromUrl">Absolute path (no server name)</param>
4021 <param name="toUrl">Absolute path (no server name)</param>
4022 <example>
4023 server.Add(new RedirectRule("/", "/user/index"));
4024 </example>
4025 </member> 2885 </member>
4026 <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String,System.Boolean)"> 2886 <member name="P:HttpServer.HttpClientContext.Stream">
4027 <summary> 2887 <summary>
4028 Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class. 2888 Gets or sets the network stream.
4029 </summary> 2889 </summary>
4030 <param name="fromUrl">Absolute path (no server name)</param>
4031 <param name="toUrl">Absolute path (no server name)</param>
4032 <param name="shouldRedirect">true if request should be redirected, false if the request URI should be replaced.</param>
4033 <example>
4034 server.Add(new RedirectRule("/", "/user/index"));
4035 </example>
4036 </member> 2890 </member>
4037 <member name="M:HttpServer.Rules.RedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)"> 2891 <member name="P:HttpServer.HttpClientContext.RemoteAddress">
4038 <summary> 2892 <summary>
4039 Process the incoming request. 2893 Gets or sets IP address that the client connected from.
2894 </summary>
2895 </member>
2896 <member name="P:HttpServer.HttpClientContext.RemotePort">
2897 <summary>
2898 Gets or sets port that the client connected from.
2899 </summary>
2900 </member>
2901 <member name="E:HttpServer.HttpClientContext.Disconnected">
2902 <summary>
2903 The context have been disconnected.
4040 </summary> 2904 </summary>
4041 <param name="request">incoming HTTP request</param>
4042 <param name="response">outgoing HTTP response</param>
4043 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
4044 <remarks> 2905 <remarks>
4045 returning true means that no modules will get the request. Returning true is typically being done 2906 Event can be used to clean up a context, or to reuse it.
4046 for redirects.
4047 </remarks> 2907 </remarks>
4048 </member> 2908 </member>
4049 <member name="P:HttpServer.Rules.RedirectRule.FromUrl"> 2909 <member name="E:HttpServer.HttpClientContext.RequestReceived">
4050 <summary> 2910 <summary>
4051 Gets string to match request URI with. 2911 A request have been received in the context.
4052 </summary> 2912 </summary>
4053 <remarks>Is compared to request.Uri.AbsolutePath</remarks>
4054 </member> 2913 </member>
4055 <member name="P:HttpServer.Rules.RedirectRule.ToUrl"> 2914 <member name="T:HttpServer.Helpers.XmlHelper">
4056 <summary> 2915 <summary>
4057 Gets where to redirect. 2916 Helpers to make XML handling easier
4058 </summary> 2917 </summary>
4059 </member> 2918 </member>
4060 <member name="P:HttpServer.Rules.RedirectRule.ShouldRedirect"> 2919 <member name="M:HttpServer.Helpers.XmlHelper.Serialize(System.Object)">
4061 <summary> 2920 <summary>
4062 Gets whether server should redirect client. 2921 Serializes object to XML.
4063 </summary> 2922 </summary>
2923 <param name="value">object to serialize.</param>
2924 <returns>XML</returns>
4064 <remarks> 2925 <remarks>
4065 <c>false</c> means that the rule will replace 2926 Removes name spaces and adds indentation
4066 the current request URI with the new one from this class.
4067 <c>true</c> means that a redirect response is sent to the client.
4068 </remarks> 2927 </remarks>
4069 </member> 2928 </member>
4070 <member name="T:HttpServer.Parser.BodyEventArgs"> 2929 <member name="M:HttpServer.Helpers.XmlHelper.Deserialize``1(System.String)">
4071 <summary> 2930 <summary>
4072 Arguments used when more body bytes have come. 2931 Create an object from a XML string
4073 </summary> 2932 </summary>
2933 <typeparam name="T">Type of object</typeparam>
2934 <param name="xml">XML string</param>
2935 <returns>object</returns>
4074 </member> 2936 </member>
4075 <member name="M:HttpServer.Parser.BodyEventArgs.#ctor(System.Byte[],System.Int32,System.Int32)"> 2937 <member name="T:HttpServer.FormDecoders.UrlDecoder">
4076 <summary> 2938 <summary>
4077 Initializes a new instance of the <see cref="T:HttpServer.Parser.BodyEventArgs"/> class. 2939 Can handle application/x-www-form-urlencoded
4078 </summary> 2940 </summary>
4079 <param name="buffer">buffer that contains the received bytes.</param>
4080 <param name="offset">offset in buffer where to start processing.</param>
4081 <param name="count">number of bytes from <paramref name="offset"/> that should be parsed.</param>
4082 </member> 2941 </member>
4083 <member name="M:HttpServer.Parser.BodyEventArgs.#ctor"> 2942 <member name="M:HttpServer.FormDecoders.UrlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
4084 <summary> 2943 <summary>
4085 Initializes a new instance of the <see cref="T:HttpServer.Parser.BodyEventArgs"/> class.
4086 </summary> 2944 </summary>
2945 <param name="stream">Stream containing the content</param>
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>
2949 A HTTP form, or null if content could not be parsed.
2950 </returns>
2951 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
4087 </member> 2952 </member>
4088 <member name="P:HttpServer.Parser.BodyEventArgs.Buffer"> 2953 <member name="M:HttpServer.FormDecoders.UrlDecoder.CanParse(System.String)">
4089 <summary> 2954 <summary>
4090 Gets or sets buffer that contains the received bytes. 2955 Checks if the decoder can handle the mime type
4091 </summary> 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>
4092 </member> 2959 </member>
4093 <member name="P:HttpServer.Parser.BodyEventArgs.Count"> 2960 <member name="T:HttpServer.Exceptions.ForbiddenException">
4094 <summary> 2961 <summary>
4095 Gets or sets number of bytes from <see cref="P:HttpServer.Parser.BodyEventArgs.Offset"/> that should be parsed. 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
4096 </summary> 2969 </summary>
4097 </member> 2970 </member>
4098 <member name="P:HttpServer.Parser.BodyEventArgs.Offset"> 2971 <member name="M:HttpServer.Exceptions.ForbiddenException.#ctor(System.String)">
4099 <summary> 2972 <summary>
4100 Gets or sets offset in buffer where to start processing. 2973 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.ForbiddenException"/> class.
4101 </summary> 2974 </summary>
2975 <param name="errorMsg">error message</param>
4102 </member> 2976 </member>
4103 <member name="T:HttpServer.HttpModules.WebSiteModule"> 2977 <member name="T:HttpServer.ClientAcceptedEventArgs">
4104 <summary> 2978 <summary>
4105 The website module let's you handle multiple websites in the same server. 2979 Invoked when a client have been accepted by the <see cref="T:HttpServer.HttpListener"/>
4106 It uses the "Host" header to check which site you want.
4107 </summary> 2980 </summary>
4108 <remarks>It's recommended that you do not 2981 <remarks>
4109 add any other modules to HttpServer if you are using the website module. Instead, 2982 Can be used to revoke incoming connections
4110 add all wanted modules to each website.</remarks> 2983 </remarks>
4111 </member> 2984 </member>
4112 <member name="M:HttpServer.HttpModules.WebSiteModule.#ctor(System.String,System.String)"> 2985 <member name="M:HttpServer.ClientAcceptedEventArgs.#ctor(System.Net.Sockets.Socket)">
4113 <summary> 2986 <summary>
4114 2987 Initializes a new instance of the <see cref="T:HttpServer.ClientAcceptedEventArgs"/> class.
4115 </summary> 2988 </summary>
4116 <param name="host">domain name that should be handled.</param> 2989 <param name="socket">The socket.</param>
4117 <param name="name"></param>
4118 </member> 2990 </member>
4119 <member name="M:HttpServer.HttpModules.WebSiteModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 2991 <member name="M:HttpServer.ClientAcceptedEventArgs.Revoke">
4120 <summary> 2992 <summary>
4121 Method that process the url 2993 Client may not be handled.
4122 </summary> 2994 </summary>
4123 <param name="request">Information sent by the browser about the request</param>
4124 <param name="response">Information that is being sent back to the client.</param>
4125 <param name="session">Session used to </param>
4126 </member> 2995 </member>
4127 <member name="P:HttpServer.HttpModules.WebSiteModule.SiteName"> 2996 <member name="P:HttpServer.ClientAcceptedEventArgs.Socket">
4128 <summary> 2997 <summary>
4129 Name of site. 2998 Accepted socket.
4130 </summary> 2999 </summary>
4131 </member> 3000 </member>
4132 <member name="T:HttpServer.Helpers.FormHelper"> 3001 <member name="P:HttpServer.ClientAcceptedEventArgs.Revoked">
4133 <summary> 3002 <summary>
4134 Helpers making it easier to work with forms. 3003 Client should be revoked.
4135 </summary> 3004 </summary>
4136 <seealso cref="T:HttpServer.Helpers.ObjectForm"/>
4137 </member> 3005 </member>
4138 <member name="F:HttpServer.Helpers.FormHelper.JSImplementation"> 3006 <member name="T:HttpServer.Helpers.ResourceManager">
3007 <summary>Class to handle loading of resource files</summary>
3008 </member>
3009 <member name="M:HttpServer.Helpers.ResourceManager.#ctor">
4139 <summary> 3010 <summary>
4140 Used to let the website use different JavaScript libraries. 3011 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class.
4141 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/>
4142 </summary> 3012 </summary>
4143 </member> 3013 </member>
4144 <member name="M:HttpServer.Helpers.FormHelper.Start(System.String,System.String,System.Boolean,System.String[])"> 3014 <member name="M:HttpServer.Helpers.ResourceManager.#ctor(HttpServer.ILogWriter)">
4145 <summary> 3015 <summary>
4146 Create a &lt;form&gt; tag. 3016 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class.
4147 </summary> 3017 </summary>
4148 <param name="id">name of form</param> 3018 <param name="writer">logger.</param>
4149 <param name="action">action to invoke on submit</param> 3019 </member>
4150 <param name="isAjax">form should be posted as Ajax</param> 3020 <member name="M:HttpServer.Helpers.ResourceManager.LoadResources(System.String,System.Reflection.Assembly,System.String)">
4151 <returns>HTML code</returns> 3021 <summary>
4152 <example> 3022 Loads resources from a namespace in the given assembly to an URI
3023 </summary>
3024 <param name="toUri">The URI to map the resources to</param>
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>
4153 <code> 3028 <code>
4154 // without options 3029 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
4155 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
4156
4157 // with options
4158 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax, "style", "display:inline", "class", "greenForm");
4159 </code> 3030 </code>
4160 </example> 3031 Will make the resource MyLib.Models.User.Views.list.Haml accessible via /user/list.haml or /user/list/
4161 <param name="options">HTML attributes or JavaScript options.</param> 3032 </usage>
4162 <remarks>Method will ALWAYS be POST.</remarks> 3033 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns>
4163 <exception cref="T:System.ArgumentException">options must consist of name, value, name, value</exception> 3034 <exception cref="T:System.InvalidOperationException">If a resource has already been mapped to an uri</exception>
4164 </member> 3035 </member>
4165 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"> 3036 <member name="M:HttpServer.Helpers.ResourceManager.GetResourceStream(System.String)">
4166 <summary> 3037 <summary>
4167 Creates a select list with the values in a collection. 3038 Retrieves a stream for the specified resource path if loaded otherwise null
4168 </summary> 3039 </summary>
4169 <param name="name">Name of the SELECT-tag</param> 3040 <param name="path">Path to the resource to retrieve a stream for</param>
4170 <param name="collection">collection used to generate options.</param> 3041 <returns>A stream or null if the resource couldn't be found</returns>
4171 <param name="getIdTitle">delegate used to return id and title from objects.</param>
4172 <param name="selectedValue">value that should be marked as selected.</param>
4173 <param name="firstEmpty">First row should contain an empty value.</param>
4174 <returns>string containing a SELECT-tag.</returns>
4175 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
4176 </member> 3042 </member>
4177 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"> 3043 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String)">
4178 <summary> 3044 <summary>
4179 Creates a select list with the values in a collection. 3045 Fetch all files from the resource that matches the specified arguments.
4180 </summary> 3046 </summary>
4181 <param name="name">Name of the SELECT-tag</param> 3047 <param name="path">The path to the resource to extract</param>
4182 <param name="id">Id of the SELECT-tag</param> 3048 <returns>
4183 <param name="collection">collection used to generate options.</param> 3049 a list of files if found; or an empty array if no files are found.
4184 <param name="getIdTitle">delegate used to return id and title from objects.</param> 3050 </returns>
4185 <param name="selectedValue">value that should be marked as selected.</param> 3051 <exception cref="T:System.ArgumentException">Search path must end with an asterisk for finding arbitrary files</exception>
4186 <param name="firstEmpty">First row should contain an empty value.</param> 3052 </member>
4187 <returns>string containing a SELECT-tag.</returns> 3053 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String,System.String)">
4188 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/> 3054 <summary>
4189 <example> 3055 Fetch all files from the resource that matches the specified arguments.
4190 <code> 3056 </summary>
4191 // Class that is going to be used in a SELECT-tag. 3057 <param name="path">Where the file should reside.</param>
4192 public class User 3058 <param name="filename">Files to check</param>
4193 { 3059 <returns>
4194 private readonly string _realName; 3060 a list of files if found; or an empty array if no files are found.
4195 private readonly int _id; 3061 </returns>
4196 public User(int id, string realName) 3062 </member>
4197 { 3063 <member name="M:HttpServer.Helpers.ResourceManager.ContainsResource(System.String)">
4198 _id = id; 3064 <summary>
4199 _realName = realName; 3065 Returns whether or not the loader has an instance of the file requested
4200 } 3066 </summary>
4201 public string RealName 3067 <param name="filename">The name of the template/file</param>
4202 { 3068 <returns>True if the loader can provide the file</returns>
4203 get { return _realName; } 3069 </member>
4204 } 3070 <member name="M:HttpServer.FormDecoders.HttpMultipart.ReadLine">
3071 <summary>
4205 3072
4206 public int Id 3073 </summary>
4207 { 3074 <returns></returns>
4208 get { return _id; } 3075 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
4209 } 3076 <exception cref="T:System.ObjectDisposedException"></exception>
4210 } 3077 </member>
3078 <member name="T:HttpServer.FormDecoders.HttpMultipart.Element">
3079 <summary>Represents a field in a multipart form</summary>
3080 </member>
3081 <member name="T:HttpServer.FormDecoders.FormDecoderProvider">
3082 <summary>
3083 This provider is used to let us implement any type of form decoding we want without
3084 having to rewrite anything else in the server.
3085 </summary>
3086 </member>
3087 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Decode(System.String,System.IO.Stream,System.Text.Encoding)">
3088 <summary>
4211 3089
4212 // Using an inline delegate to generate the select list 3090 </summary>
4213 public void UserInlineDelegate() 3091 <param name="contentType">Should contain boundary and type, as in: multipart/form-data; boundary=---------------------------230051238959</param>
4214 { 3092 <param name="stream">Stream containing form data.</param>
4215 List&lt;User&gt; items = new List&lt;User&gt;(); 3093 <param name="encoding">Encoding used when decoding the stream</param>
4216 items.Add(new User(1, "adam")); 3094 <returns><see cref="F:HttpServer.HttpInput.Empty"/> if no parser was found.</returns>
4217 items.Add(new User(2, "bertial")); 3095 <exception cref="T:System.ArgumentException">If stream is null or not readable.</exception>
4218 items.Add(new User(3, "david")); 3096 <exception cref="T:System.IO.InvalidDataException">If stream contents cannot be decoded properly.</exception>
4219 string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value) 3097 </member>
4220 { 3098 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Add(HttpServer.FormDecoders.IFormDecoder)">
4221 User user = (User)o; 3099 <summary>
4222 id = user.Id; 3100 Add a decoder.
4223 value = user.RealName; 3101 </summary>
4224 }, 2, true); 3102 <param name="decoder"></param>
4225 } 3103 <exception cref="T:System.ArgumentNullException"></exception>
3104 </member>
3105 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Count">
3106 <summary>
3107 Number of added decoders.
3108 </summary>
3109 </member>
3110 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Decoders">
3111 <summary>
3112 Use with care.
3113 </summary>
3114 </member>
3115 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.DefaultDecoder">
3116 <summary>
3117 Decoder used for unknown content types.
3118 </summary>
3119 </member>
3120 <member name="T:HttpServer.RealmHandler">
3121 <summary>
3122 Delegate used to find a realm/domain.
3123 </summary>
3124 <param name="domain"></param>
3125 <returns></returns>
3126 <remarks>
3127 Realms are used during HTTP Authentication
3128 </remarks>
3129 <seealso cref="T:HttpServer.Authentication.AuthenticationModule"/>
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"));
4226 3144
4227 // Using an method as delegate to generate the select list. 3145 // start regular http
4228 public void UseExternalDelegate() 3146 server.Start(IPAddress.Any, 80);
4229 {
4230 List&lt;User&gt; items = new List&lt;User&gt;();
4231 items.Add(new User(1, "adam"));
4232 items.Add(new User(2, "bertial"));
4233 items.Add(new User(3, "david"));
4234 string htmlSelect = Select("users", "users", items, UserOptions, 1, true);
4235 }
4236 3147
4237 // delegate returning id and title 3148 // start https
4238 public static void UserOptions(object o, out object id, out object title) 3149 server.Start(IPAddress.Any, 443, myCertificate);
4239 {
4240 User user = (User)o;
4241 id = user.Id;
4242 value = user.RealName;
4243 }
4244 </code> 3150 </code>
4245 </example> 3151 </example>
4246 <exception cref="T:System.ArgumentNullException"><c>name</c>, <c>id</c>, <c>collection</c> or <c>getIdTitle</c> is null.</exception> 3152 <seealso cref="T:HttpServer.HttpModules.HttpModule"/>
3153 <seealso cref="T:HttpServer.HttpModules.FileModule"/>
3154 <seealso cref="T:HttpServer.HttpListener"/>
4247 </member> 3155 </member>
4248 <member name="M:HttpServer.Helpers.FormHelper.Select(System.String,System.String,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean,System.String[])"> 3156 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.IComponentProvider)">
4249 <summary> 3157 <summary>
4250 Creates a select list with the values in a collection. 3158 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
4251 </summary> 3159 </summary>
4252 <param name="name">Name of the SELECT-tag</param> 3160 <param name="provider">Used to get all components used in the server..</param>
4253 <param name="id">Id of the SELECT-tag</param>
4254 <param name="collection">collection used to generate options.</param>
4255 <param name="getIdTitle">delegate used to return id and title from objects.</param>
4256 <param name="selectedValue">value that should be marked as selected.</param>
4257 <param name="firstEmpty">First row should contain an empty value.</param>
4258 <param name="htmlAttributes">name, value collection of extra HTML attributes.</param>
4259 <returns>string containing a SELECT-tag.</returns>
4260 <seealso cref="T:HttpServer.Helpers.GetIdTitle"/>
4261 <exception cref="T:System.ArgumentNullException"><c>name</c>, <c>id</c>, <c>collection</c> or <c>getIdTitle</c> is null.</exception>
4262 <exception cref="T:System.ArgumentException">Invalid HTML attribute list.</exception>
4263 </member> 3161 </member>
4264 <member name="M:HttpServer.Helpers.FormHelper.Options(System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"> 3162 <member name="M:HttpServer.HttpServer.#ctor">
4265 <summary> 3163 <summary>
4266 Generate a list of HTML options 3164 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
4267 </summary> 3165 </summary>
4268 <param name="collection">collection used to generate options.</param>
4269 <param name="getIdTitle">delegate used to return id and title from objects.</param>
4270 <param name="selectedValue">value that should be marked as selected.</param>
4271 <param name="firstEmpty">First row should contain an empty value.</param>
4272 <returns></returns>
4273 <exception cref="T:System.ArgumentNullException"><c>collection</c> or <c>getIdTitle</c> is null.</exception>
4274 </member> 3166 </member>
4275 <member name="M:HttpServer.Helpers.FormHelper.Options(System.Text.StringBuilder,System.Collections.IEnumerable,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"> 3167 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider)">
4276 <exception cref="T:System.ArgumentNullException"><c>sb</c> is null.</exception> 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"/>
4277 </member> 3174 </member>
4278 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.Object,System.Object,System.String[])"> 3175 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.Sessions.IHttpSessionStore)">
4279 <summary> 3176 <summary>
4280 Creates a check box. 3177 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
4281 </summary> 3178 </summary>
4282 <param name="name">element name</param> 3179 <param name="sessionStore">A session store is used to save and retrieve sessions</param>
4283 <param name="value">element value</param> 3180 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/>
4284 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the
4285 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
4286 the box is checked or not. </param>
4287 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
4288 <returns>a generated radio button</returns>
4289 </member> 3181 </member>
4290 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.String,System.Object,System.Object,System.String[])"> 3182 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.ILogWriter)">
4291 <summary> 3183 <summary>
4292 Creates a check box. 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>
3223 <member name="M:HttpServer.HttpServer.DecodeBody(HttpServer.IHttpRequest)">
3224 <summary>
3225 Decodes the request body.
3226 </summary>
3227 <param name="request">The request.</param>
3228 <exception cref="T:HttpServer.Exceptions.InternalServerException">Failed to decode form data.</exception>
3229 </member>
3230 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,System.Net.HttpStatusCode,System.String)">
3231 <summary>
3232 Generate a HTTP error page (that will be added to the response body).
3233 response status code is also set.
3234 </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>
3239 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,HttpServer.Exceptions.HttpException)">
3240 <summary>
3241 Generate a HTTP error page (that will be added to the response body).
3242 response status code is also set.
3243 </summary>
3244 <param name="response">Response that the page will be generated in.</param>
3245 <param name="err">exception.</param>
3246 </member>
3247 <member name="M:HttpServer.HttpServer.GetRealm(HttpServer.IHttpRequest)">
3248 <summary>
3249 Realms are used by the <see cref="T:HttpServer.Authentication.AuthenticationModule"/>s.
3250 </summary>
3251 <param name="request">HTTP request</param>
3252 <returns>domain/realm.</returns>
3253 </member>
3254 <member name="M:HttpServer.HttpServer.HandleRequest(HttpServer.IHttpClientContext,HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
3255 <summary>
3256 Process an incoming request.
3257 </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>
3263 <member name="M:HttpServer.HttpServer.OnClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)">
3264 <summary>
3265 Can be overloaded to implement stuff when a client have been connected.
4293 </summary> 3266 </summary>
4294 <param name="name">element name</param>
4295 <param name="id">element id</param>
4296 <param name="value">element value</param>
4297 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the
4298 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
4299 the box is checked or not. </param>
4300 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
4301 <returns>a generated radio button</returns>
4302 <remarks> 3267 <remarks>
4303 value in your business object. (check box will be selected if it matches the element value) 3268 Default implementation does nothing.
4304 </remarks> 3269 </remarks>
3270 <param name="client">client that disconnected</param>
3271 <param name="error">disconnect reason</param>
4305 </member> 3272 </member>
4306 <member name="M:HttpServer.Helpers.FormHelper.CheckBox(System.String,System.String,System.Object,System.String[])"> 3273 <member name="M:HttpServer.HttpServer.ProcessAuthentication(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
4307 <summary> 3274 <summary>
4308 Creates a check box. 3275 Handle authentication
4309 </summary> 3276 </summary>
4310 <param name="name">element name</param> 3277 <param name="request"></param>
4311 <param name="id">element id</param> 3278 <param name="response"></param>
4312 <param name="isChecked">determines if the check box is selected or not. This is done differently depending on the 3279 <param name="session"></param>
4313 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if 3280 <returns>true if request can be handled; false if not.</returns>
4314 the box is checked or not. </param> 3281 <exception cref="T:HttpServer.Exceptions.BadRequestException">Invalid authorization header</exception>
4315 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
4316 <returns>a generated radio button</returns>
4317 <remarks>will set value to "1".</remarks>
4318 </member> 3282 </member>
4319 <member name="M:HttpServer.Helpers.FormHelper.RadioButton(System.String,System.Object,System.Object,System.String[])"> 3283 <member name="M:HttpServer.HttpServer.RequestAuthentication(HttpServer.Authentication.AuthenticationModule,HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
4320 <summary> 3284 <summary>
4321 Creates a RadioButton. 3285 Will request authentication.
4322 </summary> 3286 </summary>
4323 <param name="name">element name</param> 3287 <remarks>
4324 <param name="value">element value</param> 3288 Sends respond to client, nothing else can be done with the response after this.
4325 <param name="isSelected">determines if the radio button is selected or not. This is done differently depending on the 3289 </remarks>
4326 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if 3290 <param name="mod"></param>
4327 the box is checked or not. </param> 3291 <param name="request"></param>
4328 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param> 3292 <param name="response"></param>
4329 <returns>a generated radio button</returns>
4330 </member> 3293 </member>
4331 <member name="M:HttpServer.Helpers.FormHelper.RadioButton(System.String,System.String,System.Object,System.Object,System.String[])"> 3294 <member name="M:HttpServer.HttpServer.OnRequest(System.Object,HttpServer.RequestEventArgs)">
4332 <summary> 3295 <summary>
4333 Creates a RadioButton. 3296 Received from a <see cref="T:HttpServer.IHttpClientContext"/> when a request have been parsed successfully.
4334 </summary> 3297 </summary>
4335 <param name="name">element name</param> 3298 <param name="source"><see cref="T:HttpServer.IHttpClientContext"/> that received the request.</param>
4336 <param name="id">element id</param> 3299 <param name="args">The request.</param>
4337 <param name="value">element value</param>
4338 <param name="isSelected">determines if the radio button is selected or not. This is done differently depending on the
4339 type of variable. A boolean simply triggers checked or not, all other types are compared with "value" to determine if
4340 the box is checked or not. </param>
4341 <param name="htmlAttributes">a list with additional attributes (name, value, name, value).</param>
4342 <returns>a generated radio button</returns>
4343 </member> 3300 </member>
4344 <member name="M:HttpServer.Helpers.FormHelper.End"> 3301 <member name="M:HttpServer.HttpServer.ProcessRequestWrapper(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
4345 <summary> 3302 <summary>
4346 form close tag 3303 To be able to track request count.
4347 </summary> 3304 </summary>
4348 <returns></returns> 3305 <param name="context"></param>
3306 <param name="request"></param>
4349 </member> 3307 </member>
4350 <member name="T:HttpServer.Exceptions.ForbiddenException"> 3308 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32)">
4351 <summary> 3309 <summary>
4352 The server understood the request, but is refusing to fulfill it. 3310 Start the web server using regular HTTP.
4353 Authorization will not help and the request SHOULD NOT be repeated.
4354 If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled,
4355 it SHOULD describe the reason for the refusal in the entity. If the server does not wish to make this information
4356 available to the client, the status code 404 (Not Found) can be used instead.
4357
4358 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
4359 </summary> 3311 </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>
3313 <param name="port">Port to listen on. 80 can be a good idea =)</param>
3314 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
3315 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
4360 </member> 3316 </member>
4361 <member name="M:HttpServer.Exceptions.ForbiddenException.#ctor(System.String)"> 3317 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)">
4362 <summary> 3318 <summary>
4363 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.ForbiddenException"/> class. 3319 Accept secure connections.
4364 </summary> 3320 </summary>
4365 <param name="errorMsg">error message</param> 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>
3322 <param name="port">Port to listen on. 80 can be a good idea =)</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>
4366 </member> 3326 </member>
4367 <member name="T:HttpServer.ContentType"> 3327 <member name="M:HttpServer.HttpServer.Stop">
4368 <summary> 3328 <summary>
4369 Lists content type mime types. 3329 shut down the server and listeners
4370 </summary> 3330 </summary>
4371 </member> 3331 </member>
4372 <member name="F:HttpServer.ContentType.Text"> 3332 <member name="M:HttpServer.HttpServer.WriteLog(HttpServer.LogPrio,System.String)">
4373 <summary> 3333 <summary>
4374 text/plain 3334 write an entry to the log file
4375 </summary> 3335 </summary>
3336 <param name="prio">importance of the message</param>
3337 <param name="message">log message</param>
4376 </member> 3338 </member>
4377 <member name="F:HttpServer.ContentType.Html"> 3339 <member name="M:HttpServer.HttpServer.WriteLog(System.Object,HttpServer.LogPrio,System.String)">
4378 <summary> 3340 <summary>
4379 text/haml 3341 write an entry to the log file
4380 </summary> 3342 </summary>
3343 <param name="source">object that wrote the message</param>
3344 <param name="prio">importance of the message</param>
3345 <param name="message">log message</param>
4381 </member> 3346 </member>
4382 <member name="F:HttpServer.ContentType.Javascript"> 3347 <member name="P:HttpServer.HttpServer.Current">
4383 <summary> 3348 <summary>
4384 content type for javascript documents = application/javascript 3349 Server that is handling the current request.
3350 </summary>
3351 <remarks>
3352 Will be set as soon as a request arrives to the <see cref="T:HttpServer.HttpServer"/> object.
3353 </remarks>
3354 </member>
3355 <member name="P:HttpServer.HttpServer.AuthenticationModules">
3356 <summary>
3357 Modules used for authentication. The module that is is added first is used as
3358 the default authentication module.
3359 </summary>
3360 <remarks>Use the corresponding property
3361 in the <see cref="T:HttpServer.HttpModules.WebSiteModule"/> if you are using multiple websites.</remarks>
3362 </member>
3363 <member name="P:HttpServer.HttpServer.FormDecoderProviders">
3364 <summary>
3365 Form decoder providers are used to decode request body (which normally contains form data).
3366 </summary>
3367 </member>
3368 <member name="P:HttpServer.HttpServer.ServerName">
3369 <summary>
3370 Server name sent in HTTP responses.
3371 </summary>
3372 <remarks>
3373 Do NOT include version in name, since it makes it
3374 easier for hackers.
3375 </remarks>
3376 </member>
3377 <member name="P:HttpServer.HttpServer.SessionCookieName">
3378 <summary>
3379 Name of cookie where session id is stored.
3380 </summary>
3381 </member>
3382 <member name="P:HttpServer.HttpServer.LogWriter">
3383 <summary>
3384 Specified where logging should go.
3385 </summary>
3386 <seealso cref="T:HttpServer.NullLogWriter"/>
3387 <seealso cref="T:HttpServer.ConsoleLogWriter"/>
3388 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
3389 </member>
3390 <member name="P:HttpServer.HttpServer.BackLog">
3391 <summary>
3392 Number of connections that can wait to be accepted by the server.
3393 </summary>
3394 <remarks>Default is 10.</remarks>
3395 </member>
3396 <member name="P:HttpServer.HttpServer.MaxRequestCount">
3397 <summary>
3398 Gets or sets maximum number of allowed simultaneous requests.
4385 </summary> 3399 </summary>
4386 <remarks> 3400 <remarks>
4387 <para> 3401 <para>
4388 RFC 4329 states that text/javascript have been superseeded by 3402 This property is useful in busy systems. The HTTP server
4389 application/javascript. You might still want to check browser versions 3403 will start queuing new requests if this limit is hit, instead
4390 since older ones do not support application/javascript. 3404 of trying to process all incoming requests directly.
3405 </para>
3406 <para>
3407 The default number if allowed simultaneous requests are 10.
4391 </para> 3408 </para>
4392 <para>Browser support: http://krijnhoetmer.nl/stuff/javascript/mime-types/</para>
4393 </remarks> 3409 </remarks>
4394 </member> 3410 </member>
4395 <member name="F:HttpServer.ContentType.Xml"> 3411 <member name="P:HttpServer.HttpServer.MaxQueueSize">
4396 <summary> 3412 <summary>
4397 text/xml 3413 Gets or sets maximum number of requests queuing to be handled.
4398 </summary> 3414 </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>
4399 </member> 3422 </member>
4400 <member name="T:HttpServer.ContentTypes"> 3423 <member name="E:HttpServer.HttpServer.RealmWanted">
4401 <summary> 3424 <summary>
4402 A list of content types 3425 Realms are used during HTTP authentication.
3426 Default realm is same as server name.
4403 </summary> 3427 </summary>
4404 </member> 3428 </member>
4405 <member name="M:HttpServer.ContentTypes.#ctor(System.String)"> 3429 <member name="E:HttpServer.HttpServer.ExceptionThrown">
3430 <summary>
3431 Let's to receive unhandled exceptions from the threads.
3432 </summary>
3433 <remarks>
3434 Exceptions will be thrown during debug mode if this event is not used,
3435 exceptions will be printed to console and suppressed during release mode.
3436 </remarks>
3437 </member>
3438 <member name="T:HttpServer.FormDecoders.MultipartDecoder">
4406 <summary> 3439 <summary>
4407 3440
4408 </summary> 3441 </summary>
4409 <param name="types">Semicolon separated content types.</param> 3442 <remarks>
3443 http://www.faqs.org/rfcs/rfc1867.html
3444 </remarks>
4410 </member> 3445 </member>
4411 <member name="M:HttpServer.ContentTypes.GetEnumerator"> 3446 <member name="F:HttpServer.FormDecoders.MultipartDecoder.MimeType">
4412 <summary> 3447 <summary>
4413 Returns an enumerator that iterates through a collection. 3448 multipart/form-data
4414 </summary> 3449 </summary>
4415 <returns>
4416 An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
4417 </returns>
4418 </member> 3450 </member>
4419 <member name="M:HttpServer.ContentTypes.Contains(System.String)"> 3451 <member name="F:HttpServer.FormDecoders.MultipartDecoder.FormData">
4420 <summary> 3452 <summary>
4421 Searches for the specified type 3453 form-data
4422 </summary> 3454 </summary>
4423 <param name="type">Can also be a part of a type (searching for "xml" would return true for "application/xml").</param>
4424 <returns>true if type was found.</returns>
4425 </member> 3455 </member>
4426 <member name="P:HttpServer.ContentTypes.First"> 3456 <member name="M:HttpServer.FormDecoders.MultipartDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
4427 <summary> 3457 <summary>
4428 Get this first content type. 3458
4429 </summary> 3459 </summary>
3460 <param name="stream">Stream containing the content</param>
3461 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
3462 <param name="encoding">Stream enconding</param>
3463 <returns>A http form, or null if content could not be parsed.</returns>
3464 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
3465 <exception cref="T:System.ArgumentNullException">If any parameter is null</exception>
4430 </member> 3466 </member>
4431 <member name="P:HttpServer.ContentTypes.Item(System.String)"> 3467 <member name="M:HttpServer.FormDecoders.MultipartDecoder.CanParse(System.String)">
4432 <summary> 3468 <summary>
4433 Fetch a content type 3469 Checks if the decoder can handle the mime type
4434 </summary> 3470 </summary>
4435 <param name="type">Part of type ("xml" would return "application/xml")</param> 3471 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
4436 <returns></returns> 3472 <returns>True if the decoder can parse the specified content type</returns>
4437 <remarks>All content types are in lower case.</remarks>
4438 </member> 3473 </member>
4439 <member name="T:HttpServer.HttpModules.ReverseProxyModule"> 3474 <member name="M:HttpServer.ComponentProvider.AddInstance``1(System.Object)">
4440 <summary> 3475 <summary>
4441 A reverse proxy are used to act as a bridge between local (protected/hidden) websites 3476 Add a component instance
4442 and public clients.
4443
4444 A typical usage is to allow web servers on non standard ports to still be available
4445 to the public clients, or allow web servers on private ips to be available.
4446 </summary> 3477 </summary>
3478 <typeparam name="T">Interface type</typeparam>
3479 <param name="instance">Instance to add</param>
4447 </member> 3480 </member>
4448 <member name="M:HttpServer.HttpModules.ReverseProxyModule.#ctor(System.String,System.String)"> 3481 <member name="M:HttpServer.ComponentProvider.Get``1">
4449 <summary> 3482 <summary>
4450 3483 Get a component.
4451 </summary> 3484 </summary>
4452 <param name="source">Base url requested from browser</param> 3485 <typeparam name="T">Interface type</typeparam>
4453 <param name="destination">Base url on private web server</param> 3486 <returns>Component if registered, otherwise null.</returns>
4454 <example> 3487 <remarks>
4455 // this will return contents from http://192.168.1.128/view/jonas when client requests http://www.gauffin.com/user/view/jonas 3488 Component will get created if needed.
4456 _server.Add(new ReverseProxyModule("http://www.gauffin.com/user/", "http://192.168.1.128/"); 3489 </remarks>
4457 </example>
4458 </member> 3490 </member>
4459 <member name="M:HttpServer.HttpModules.ReverseProxyModule.CanHandle(System.Uri)"> 3491 <member name="M:HttpServer.ComponentProvider.Create(HttpServer.ComponentProvider.TypeInformation)">
3492 <exception cref="T:System.InvalidOperationException">If instance cannot be created.</exception>
3493 </member>
3494 <member name="M:HttpServer.ComponentProvider.Contains(System.Type)">
4460 <summary> 3495 <summary>
4461 Method that determines if an url should be handled or not by the module 3496 Checks if the specified component interface have been added.
4462 </summary> 3497 </summary>
4463 <param name="uri">Url requested by the client.</param> 3498 <param name="interfaceType"></param>
4464 <returns>true if module should handle the url.</returns> 3499 <returns>true if found; otherwise false.</returns>
4465 </member> 3500 </member>
4466 <member name="M:HttpServer.HttpModules.ReverseProxyModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 3501 <member name="M:HttpServer.ComponentProvider.Add``2">
4467 <summary> 3502 <summary>
4468 Method that process the url 3503 Add a component.
3504 </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>
3509 <member name="T:HttpServer.HttpModules.FileModule">
3510 <summary>
3511 The purpose of this module is to serve files.
3512 </summary>
3513 </member>
3514 <member name="M:HttpServer.HttpModules.FileModule.#ctor(System.String,System.String,System.Boolean)">
3515 <summary>
3516 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.FileModule"/> class.
3517 </summary>
3518 <param name="baseUri">Uri to serve, for instance "/files/"</param>
3519 <param name="basePath">Path on hard drive where we should start looking for files</param>
3520 <param name="useLastModifiedHeader">If true a Last-Modifed header will be sent upon requests urging web browser to cache files</param>
3521 </member>
3522 <member name="M:HttpServer.HttpModules.FileModule.#ctor(System.String,System.String)">
3523 <summary>
3524 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.FileModule"/> class.
3525 </summary>
3526 <param name="baseUri">Uri to serve, for instance "/files/"</param>
3527 <param name="basePath">Path on hard drive where we should start looking for files</param>
3528 </member>
3529 <member name="M:HttpServer.HttpModules.FileModule.AddDefaultMimeTypes">
3530 <summary>
3531 Mimtypes that this class can handle per default
3532 </summary>
3533 </member>
3534 <member name="M:HttpServer.HttpModules.FileModule.CanHandle(System.Uri)">
3535 <summary>
3536 Determines if the request should be handled by this module.
3537 Invoked by the <see cref="T:HttpServer.HttpServer"/>
3538 </summary>
3539 <param name="uri"></param>
3540 <returns>true if this module should handle it.</returns>
3541 </member>
3542 <member name="M:HttpServer.HttpModules.FileModule.GetPath(System.Uri)">
3543 <exception cref="T:HttpServer.Exceptions.BadRequestException">Illegal path</exception>
3544 </member>
3545 <member name="M:HttpServer.HttpModules.FileModule.Contains(System.String,System.Collections.Generic.IEnumerable{System.String})">
3546 <summary>
3547 check if source contains any of the chars.
3548 </summary>
3549 <param name="source"></param>
3550 <param name="chars"></param>
3551 <returns></returns>
3552 </member>
3553 <member name="M:HttpServer.HttpModules.FileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
3554 <summary>
3555 Method that process the Uri.
4469 </summary> 3556 </summary>
4470 <param name="request">Information sent by the browser about the request</param> 3557 <param name="request">Information sent by the browser about the request</param>
4471 <param name="response">Information that is being sent back to the client.</param> 3558 <param name="response">Information that is being sent back to the client.</param>
4472 <param name="session">Session used to </param> 3559 <param name="session">Session used to </param>
3560 <exception cref="T:HttpServer.Exceptions.InternalServerException">Failed to find file extension</exception>
3561 <exception cref="T:HttpServer.Exceptions.ForbiddenException">File type is forbidden.</exception>
4473 </member> 3562 </member>
4474 <member name="T:HttpServer.HttpClientContext"> 3563 <member name="M:HttpServer.HttpModules.FileModule.GetFileExtension(System.String)">
4475 <summary> 3564 <summary>
4476 Contains a connection to a browser/client. 3565 return a file extension from an absolute Uri path (or plain filename)
4477 </summary> 3566 </summary>
4478 <remarks> 3567 <param name="uri"></param>
4479 Remember to <see cref="M:HttpServer.HttpClientContext.Start"/> after you have hooked the <see cref="E:HttpServer.HttpClientContext.RequestReceived"/> event. 3568 <returns></returns>
4480 </remarks>
4481 TODO: Maybe this class should be broken up into HttpClientChannel and HttpClientContext?
4482 </member> 3569 </member>
4483 <member name="M:HttpServer.HttpClientContext.#ctor(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,HttpServer.IRequestParserFactory,System.Int32,System.Net.Sockets.Socket)"> 3570 <member name="P:HttpServer.HttpModules.FileModule.MimeTypes">
4484 <summary> 3571 <summary>
4485 Initializes a new instance of the <see cref="T:HttpServer.HttpClientContext"/> class. 3572 List with all mime-type that are allowed.
4486 </summary> 3573 </summary>
4487 <param name="secured">true if the connection is secured (SSL/TLS)</param> 3574 <remarks>All other mime types will result in a Forbidden http status code.</remarks>
4488 <param name="remoteEndPoint">client that connected.</param>
4489 <param name="stream">Stream used for communication</param>
4490 <param name="parserFactory">Used to create a <see cref="T:HttpServer.IHttpRequestParser"/>.</param>
4491 <param name="bufferSize">Size of buffer to use when reading data. Must be at least 1024 bytes.</param>
4492 <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>
4493 <exception cref="T:System.ArgumentException">Stream must be writable and readable.</exception>
4494 </member> 3575 </member>
4495 <member name="M:HttpServer.HttpClientContext.OnBodyBytesReceived(System.Object,HttpServer.Parser.BodyEventArgs)"> 3576 <member name="P:HttpServer.HttpModules.FileModule.ForbiddenChars">
4496 <summary> 3577 <summary>
4497 Process incoming body bytes. 3578 characters that may not exist in a path.
4498 </summary> 3579 </summary>
4499 <param name="sender"><see cref="T:HttpServer.IHttpRequestParser"/></param> 3580 <example>
4500 <param name="e">Bytes</param> 3581 fileMod.ForbiddenChars = new string[]{ "\\", "..", ":" };
3582 </example>
4501 </member> 3583 </member>
4502 <member name="M:HttpServer.HttpClientContext.OnHeaderReceived(System.Object,HttpServer.Parser.HeaderEventArgs)"> 3584 <member name="T:HttpServer.HttpListenerBase">
4503 <summary> 3585 <summary>
4504 3586 Contains a listener that doesn't do anything with the connections.
4505 </summary> 3587 </summary>
4506 <param name="sender"></param>
4507 <param name="e"></param>
4508 </member> 3588 </member>
4509 <member name="M:HttpServer.HttpClientContext.Start"> 3589 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)">
4510 <summary> 3590 <summary>
4511 Start reading content. 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>
3601 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class.
3602 </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>
3608 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
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>
3623 Will try to accept connections one more time.
3624 </summary>
3625 <exception cref="T:System.Exception">If any exceptions is thrown.</exception>
3626 </member>
3627 <member name="M:HttpServer.HttpListenerBase.OnAcceptingSocket(System.Net.Sockets.Socket)">
3628 <summary>
3629 Can be used to create filtering of new connections.
3630 </summary>
3631 <param name="socket">Accepted socket</param>
3632 <returns>true if connection can be accepted; otherwise false.</returns>
3633 </member>
3634 <member name="M:HttpServer.HttpListenerBase.Start(System.Int32)">
3635 <summary>
3636 Start listen for new connections
3637 </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>
3641 <member name="M:HttpServer.HttpListenerBase.Stop">
3642 <summary>
3643 Stop the listener
3644 </summary>
3645 <exception cref="T:System.Net.Sockets.SocketException"></exception>
3646 </member>
3647 <member name="P:HttpServer.HttpListenerBase.LogWriter">
3648 <summary>
3649 Gives you a change to receive log entries for all internals of the HTTP library.
4512 </summary> 3650 </summary>
4513 <remarks> 3651 <remarks>
4514 Make sure to call base.Start() if you override this method. 3652 You may not switch log writer after starting the listener.
4515 </remarks> 3653 </remarks>
4516 </member> 3654 </member>
4517 <member name="M:HttpServer.HttpClientContext.Cleanup"> 3655 <member name="P:HttpServer.HttpListenerBase.UseTraceLogs">
4518 <summary> 3656 <summary>
4519 Clean up context. 3657 True if we should turn on trace logs.
3658 </summary>
3659 </member>
3660 <member name="E:HttpServer.HttpListenerBase.ExceptionThrown">
3661 <summary>
3662 Catch exceptions not handled by the listener.
4520 </summary> 3663 </summary>
4521 <remarks> 3664 <remarks>
4522 Make sure to call base.Cleanup() if you override the method. 3665 Exceptions will be thrown during debug mode if this event is not used,
3666 exceptions will be printed to console and suppressed during release mode.
4523 </remarks> 3667 </remarks>
4524 </member> 3668 </member>
4525 <member name="M:HttpServer.HttpClientContext.Disconnect(System.Net.Sockets.SocketError)"> 3669 <member name="E:HttpServer.HttpListenerBase.RequestReceived">
4526 <summary> 3670 <summary>
4527 Disconnect from client 3671 A request have been received from a <see cref="T:HttpServer.IHttpClientContext"/>.
4528 </summary> 3672 </summary>
4529 <param name="error">error to report in the <see cref="E:HttpServer.HttpClientContext.Disconnected"/> event.</param>
4530 </member> 3673 </member>
4531 <member name="M:HttpServer.HttpClientContext.OnReceive(System.IAsyncResult)"> 3674 <member name="T:HttpServer.HttpFile">
4532 <exception cref="T:HttpServer.Exceptions.BadRequestException"><c>BadRequestException</c>.</exception> 3675 <summary>
3676 Container class for posted files
3677 </summary>
4533 </member> 3678 </member>
4534 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)"> 3679 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)">
4535 <summary> 3680 <summary>
4536 Send a response. 3681 Creates a container for a posted file
4537 </summary> 3682 </summary>
4538 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param> 3683 <param name="name">The identifier of the post field</param>
4539 <param name="statusCode">HTTP status code</param> 3684 <param name="filename">The file path</param>
4540 <param name="reason">reason for the status code.</param> 3685 <param name="contentType">The content type of the file</param>
4541 <param name="body">HTML body contents, can be null or empty.</param> 3686 <param name="uploadFilename">The name of the file uploaded</param>
4542 <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> 3687 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception>
4543 <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception>
4544 </member> 3688 </member>
4545 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)"> 3689 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String)">
4546 <summary> 3690 <summary>
4547 Send a response. 3691 Creates a container for a posted file <see cref="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)"/>
4548 </summary> 3692 </summary>
4549 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param> 3693 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception>
4550 <param name="statusCode">HTTP status code</param>
4551 <param name="reason">reason for the status code.</param>
4552 </member> 3694 </member>
4553 <member name="M:HttpServer.HttpClientContext.Respond(System.String)"> 3695 <member name="M:HttpServer.HttpFile.Finalize">
3696 <summary>Destructor disposing the file</summary>
3697 </member>
3698 <member name="M:HttpServer.HttpFile.Dispose(System.Boolean)">
4554 <summary> 3699 <summary>
4555 Send a response. 3700 Deletes the temporary file
4556 </summary> 3701 </summary>
4557 <exception cref="T:System.ArgumentNullException"></exception> 3702 <param name="disposing">True if manual dispose</param>
4558 </member> 3703 </member>
4559 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[])"> 3704 <member name="M:HttpServer.HttpFile.Dispose">
4560 <summary> 3705 <summary>
4561 send a whole buffer 3706 Disposing interface, cleans up managed resources (the temporary file) and suppresses finalization
4562 </summary> 3707 </summary>
4563 <param name="buffer">buffer to send</param>
4564 <exception cref="T:System.ArgumentNullException"></exception>
4565 </member> 3708 </member>
4566 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[],System.Int32,System.Int32)"> 3709 <member name="P:HttpServer.HttpFile.Name">
4567 <summary> 3710 <summary>
4568 Send data using the stream 3711 The name/id of the file
4569 </summary> 3712 </summary>
4570 <param name="buffer">Contains data to send</param>
4571 <param name="offset">Start position in buffer</param>
4572 <param name="size">number of bytes to send</param>
4573 <exception cref="T:System.ArgumentNullException"></exception>
4574 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
4575 </member> 3713 </member>
4576 <member name="E:HttpServer.HttpClientContext.Cleaned"> 3714 <member name="P:HttpServer.HttpFile.Filename">
4577 <summary> 3715 <summary>
4578 This context have been cleaned, which means that it can be reused. 3716 The full file path
4579 </summary> 3717 </summary>
4580 </member> 3718 </member>
4581 <member name="E:HttpServer.HttpClientContext.Started"> 3719 <member name="P:HttpServer.HttpFile.UploadFilename">
4582 <summary> 3720 <summary>
4583 Context have been started (a new client have connected) 3721 The name of the uploaded file
4584 </summary> 3722 </summary>
4585 </member> 3723 </member>
4586 <member name="P:HttpServer.HttpClientContext.CurrentRequest"> 3724 <member name="P:HttpServer.HttpFile.ContentType">
4587 <summary> 3725 <summary>
4588 Overload to specify own type. 3726 The type of file
3727 </summary>
3728 </member>
3729 <member name="T:HttpServer.Authentication.DigestAuthentication">
3730 <summary>
3731 Implements HTTP Digest authentication. It's more secure than Basic auth since password is
3732 encrypted with a "key" from the server.
4589 </summary> 3733 </summary>
4590 <remarks> 3734 <remarks>
4591 Must be specified before the context is being used. 3735 Keep in mind that the password is encrypted with MD5. Use a combination of SSL and digest auth to be secure.
4592 </remarks> 3736 </remarks>
4593 </member> 3737 </member>
4594 <member name="P:HttpServer.HttpClientContext.Secured"> 3738 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
4595 <summary> 3739 <summary>
4596 Using SSL or other encryption method. 3740 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class.
4597 </summary> 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>
4598 </member> 3744 </member>
4599 <member name="P:HttpServer.HttpClientContext.IsSecured"> 3745 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)">
4600 <summary> 3746 <summary>
4601 Using SSL or other encryption method. 3747 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class.
4602 </summary> 3748 </summary>
3749 <param name="authenticator">Delegate used to provide information used during authentication.</param>
4603 </member> 3750 </member>
4604 <member name="P:HttpServer.HttpClientContext.LogWriter"> 3751 <member name="F:HttpServer.Authentication.DigestAuthentication.DisableNonceCheck">
4605 <summary> 3752 <summary>
4606 Specify which logger to use. 3753 Used by test classes to be able to use hardcoded values
4607 </summary> 3754 </summary>
4608 </member> 3755 </member>
4609 <member name="P:HttpServer.HttpClientContext.Stream"> 3756 <member name="M:HttpServer.Authentication.DigestAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])">
4610 <summary> 3757 <summary>
4611 Gets or sets the network stream. 3758 An authentication response have been received from the web browser.
3759 Check if it's correct
4612 </summary> 3760 </summary>
3761 <param name="authenticationHeader">Contents from the Authorization header</param>
3762 <param name="realm">Realm that should be authenticated</param>
3763 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
3764 <param name="options">First option: true if username/password is correct but not cnonce</param>
3765 <returns>
3766 Authentication object that is stored for the request. A user class or something like that.
3767 </returns>
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>
4613 </member> 3770 </member>
4614 <member name="P:HttpServer.HttpClientContext.RemoteAddress"> 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)">
4615 <summary> 3772 <summary>
4616 Gets or sets IP address that the client connected from. 3773 Encrypts parameters into a Digest string
4617 </summary> 3774 </summary>
3775 <param name="realm">Realm that the user want to log into.</param>
3776 <param name="userName">User logging in</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>
4618 </member> 3785 </member>
4619 <member name="P:HttpServer.HttpClientContext.RemotePort"> 3786 <member name="M:HttpServer.Authentication.DigestAuthentication.Encrypt(System.String,System.String,System.String,System.String,System.String,System.String)">
4620 <summary> 3787 <summary>
4621 Gets or sets port that the client connected from. 3788
4622 </summary> 3789 </summary>
3790 <param name="ha1">Md5 hex encoded "userName:realm:password", without the quotes.</param>
3791 <param name="ha2">Md5 hex encoded "method:uri", without the quotes</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>
4623 </member> 3797 </member>
4624 <member name="E:HttpServer.HttpClientContext.Disconnected"> 3798 <member name="M:HttpServer.Authentication.DigestAuthentication.CreateResponse(System.String,System.Object[])">
4625 <summary> 3799 <summary>
4626 The context have been disconnected. 3800 Create a response that can be sent in the WWW-Authenticate header.
4627 </summary> 3801 </summary>
4628 <remarks> 3802 <param name="realm">Realm that the user should authenticate in</param>
4629 Event can be used to clean up a context, or to reuse it. 3803 <param name="options">First options specifies if true if username/password is correct but not cnonce.</param>
4630 </remarks> 3804 <returns>A correct auth request.</returns>
3805 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
4631 </member> 3806 </member>
4632 <member name="E:HttpServer.HttpClientContext.RequestReceived"> 3807 <member name="M:HttpServer.Authentication.DigestAuthentication.Decode(System.String,System.Text.Encoding)">
4633 <summary> 3808 <summary>
4634 A request have been received in the context. 3809 Decodes authorization header value
4635 </summary> 3810 </summary>
3811 <param name="buffer">header value</param>
3812 <param name="encoding">Encoding that the buffer is in</param>
3813 <returns>All headers and their values if successful; otherwise null</returns>
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>
4636 </member> 3818 </member>
4637 <member name="T:HttpServer.Helpers.XmlHelper"> 3819 <member name="M:HttpServer.Authentication.DigestAuthentication.GetCurrentNonce">
4638 <summary> 3820 <summary>
4639 Helpers to make XML handling easier 3821 Gets the current nonce.
4640 </summary> 3822 </summary>
3823 <returns></returns>
4641 </member> 3824 </member>
4642 <member name="M:HttpServer.Helpers.XmlHelper.Serialize(System.Object)"> 3825 <member name="M:HttpServer.Authentication.DigestAuthentication.GetMD5HashBinHex2(System.String)">
4643 <summary> 3826 <summary>
4644 Serializes object to XML. 3827 Gets the Md5 hash bin hex2.
4645 </summary> 3828 </summary>
4646 <param name="value">object to serialize.</param> 3829 <param name="toBeHashed">To be hashed.</param>
4647 <returns>XML</returns> 3830 <returns></returns>
4648 <remarks>
4649 Removes name spaces and adds indentation
4650 </remarks>
4651 </member> 3831 </member>
4652 <member name="M:HttpServer.Helpers.XmlHelper.Deserialize``1(System.String)"> 3832 <member name="M:HttpServer.Authentication.DigestAuthentication.IsValidNonce(System.String)">
4653 <summary> 3833 <summary>
4654 Create an object from a XML string 3834 determines if the nonce is valid or has expired.
3835 </summary>
3836 <param name="nonce">nonce value (check wikipedia for info)</param>
3837 <returns>true if the nonce has not expired.</returns>
3838 </member>
3839 <member name="P:HttpServer.Authentication.DigestAuthentication.Name">
3840 <summary>
3841 name used in http request.
3842 </summary>
3843 </member>
3844 <member name="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1">
3845 <summary>
3846 Gets or sets whether the token supplied in <see cref="T:HttpServer.Authentication.AuthenticationHandler"/> is a
3847 HA1 generated string.
3848 </summary>
3849 </member>
3850 <member name="T:HttpServer.RequestParserState">
3851 <summary>
3852 Current state in the parsing.
3853 </summary>
3854 </member>
3855 <member name="F:HttpServer.RequestParserState.FirstLine">
3856 <summary>
3857 Should parse the request line
3858 </summary>
3859 </member>
3860 <member name="F:HttpServer.RequestParserState.HeaderName">
3861 <summary>
3862 Searching for a complete header name
3863 </summary>
3864 </member>
3865 <member name="F:HttpServer.RequestParserState.AfterName">
3866 <summary>
3867 Searching for colon after header name (ignoring white spaces)
3868 </summary>
3869 </member>
3870 <member name="F:HttpServer.RequestParserState.Between">
3871 <summary>
3872 Searching for start of header value (ignoring white spaces)
3873 </summary>
3874 </member>
3875 <member name="F:HttpServer.RequestParserState.HeaderValue">
3876 <summary>
3877 Searching for a complete header value (can span over multiple lines, as long as they are prefixed with one/more whitespaces)
3878 </summary>
3879 </member>
3880 <member name="F:HttpServer.RequestParserState.Body">
3881 <summary>
3882 Adding bytes to body
4655 </summary> 3883 </summary>
4656 <typeparam name="T">Type of object</typeparam>
4657 <param name="xml">XML string</param>
4658 <returns>object</returns>
4659 </member> 3884 </member>
4660 <member name="T:HttpServer.Rules.RegexRedirectRule"> 3885 <member name="T:HttpServer.Rules.RegexRedirectRule">
4661 <summary> 3886 <summary>
@@ -4725,181 +3950,94 @@
4725 </remarks> 3950 </remarks>
4726 <exception cref="T:System.ArgumentNullException">If request or response is null</exception> 3951 <exception cref="T:System.ArgumentNullException">If request or response is null</exception>
4727 </member> 3952 </member>
4728 <member name="T:HttpServer.Parser.HttpRequestParser"> 3953 <member name="T:HttpServer.RequestCookies">
4729 <summary>
4730 Parses a HTTP request directly from a stream
4731 </summary>
4732 </member>
4733 <member name="M:HttpServer.Parser.HttpRequestParser.#ctor(HttpServer.ILogWriter)">
4734 <summary>
4735 Create a new request parser
4736 </summary>
4737 <param name="logWriter">delegate receiving log entries.</param>
4738 </member>
4739 <member name="M:HttpServer.Parser.HttpRequestParser.AddToBody(System.Byte[],System.Int32,System.Int32)">
4740 <summary>
4741 Add a number of bytes to the body
4742 </summary>
4743 <param name="buffer">buffer containing more body bytes.</param>
4744 <param name="offset">starting offset in buffer</param>
4745 <param name="count">number of bytes, from offset, to read.</param>
4746 <returns>offset to continue from.</returns>
4747 </member>
4748 <member name="M:HttpServer.Parser.HttpRequestParser.Clear">
4749 <summary>
4750 Remove all state information for the request.
4751 </summary>
4752 </member>
4753 <member name="M:HttpServer.Parser.HttpRequestParser.OnFirstLine(System.String)">
4754 <summary>
4755 Parse request line
4756 </summary>
4757 <param name="value"></param>
4758 <exception cref="T:HttpServer.Exceptions.BadRequestException">If line is incorrect</exception>
4759 <remarks>Expects the following format: "Method SP Request-URI SP HTTP-Version CRLF"</remarks>
4760 </member>
4761 <member name="M:HttpServer.Parser.HttpRequestParser.OnHeader(System.String,System.String)">
4762 <summary>
4763 We've parsed a new header.
4764 </summary>
4765 <param name="name">Name in lower case</param>
4766 <param name="value">Value, unmodified.</param>
4767 <exception cref="T:HttpServer.Exceptions.BadRequestException">If content length cannot be parsed.</exception>
4768 </member>
4769 <member name="M:HttpServer.Parser.HttpRequestParser.Parse(System.Byte[],System.Int32,System.Int32)">
4770 <summary>
4771 Parse a message
4772 </summary>
4773 <param name="buffer">bytes to parse.</param>
4774 <param name="offset">where in buffer that parsing should start</param>
4775 <param name="count">number of bytes to parse, starting on <paramref name="offset"/>.</param>
4776 <returns>offset (where to start parsing next).</returns>
4777 <exception cref="T:HttpServer.Exceptions.BadRequestException"><c>BadRequestException</c>.</exception>
4778 </member>
4779 <member name="P:HttpServer.Parser.HttpRequestParser.LogWriter">
4780 <summary>
4781 Gets or sets the log writer.
4782 </summary>
4783 </member>
4784 <member name="P:HttpServer.Parser.HttpRequestParser.CurrentState">
4785 <summary>
4786 Current state in parser.
4787 </summary>
4788 </member>
4789 <member name="E:HttpServer.Parser.HttpRequestParser.RequestCompleted">
4790 <summary>
4791 A request have been successfully parsed.
4792 </summary>
4793 </member>
4794 <member name="E:HttpServer.Parser.HttpRequestParser.BodyBytesReceived">
4795 <summary>
4796 More body bytes have been received.
4797 </summary>
4798 </member>
4799 <member name="E:HttpServer.Parser.HttpRequestParser.RequestLineReceived">
4800 <summary>
4801 Request line have been received.
4802 </summary>
4803 </member>
4804 <member name="E:HttpServer.Parser.HttpRequestParser.HeaderReceived">
4805 <summary>
4806 A header have been received.
4807 </summary>
4808 </member>
4809 <member name="T:HttpServer.LogPrio">
4810 <summary>
4811 Priority for log entries
4812 </summary>
4813 <seealso cref="T:HttpServer.ILogWriter"/>
4814 </member>
4815 <member name="F:HttpServer.LogPrio.Trace">
4816 <summary> 3954 <summary>
4817 Very detailed logs to be able to follow the flow of the program. 3955 This class is created as a wrapper, since there are two different cookie types in .Net (Cookie and HttpCookie).
3956 The framework might switch class in the future and we dont want to have to replace all instances
4818 </summary> 3957 </summary>
4819 </member> 3958 </member>
4820 <member name="F:HttpServer.LogPrio.Debug"> 3959 <member name="M:HttpServer.RequestCookies.#ctor(System.String)">
4821 <summary> 3960 <summary>
4822 Logs to help debug errors in the application 3961 Let's copy all the cookies.
4823 </summary> 3962 </summary>
3963 <param name="cookies">value from cookie header.</param>
4824 </member> 3964 </member>
4825 <member name="F:HttpServer.LogPrio.Info"> 3965 <member name="M:HttpServer.RequestCookies.Add(HttpServer.RequestCookie)">
4826 <summary> 3966 <summary>
4827 Information to be able to keep track of state changes etc. 3967 Adds a cookie in the collection.
4828 </summary> 3968 </summary>
3969 <param name="cookie">cookie to add</param>
3970 <exception cref="T:System.ArgumentNullException">cookie is null</exception>
4829 </member> 3971 </member>
4830 <member name="F:HttpServer.LogPrio.Warning"> 3972 <member name="M:HttpServer.RequestCookies.GetEnumerator">
4831 <summary> 3973 <summary>
4832 Something did not go as we expected, but it's no problem. 3974 Gets a collection enumerator on the cookie list.
4833 </summary> 3975 </summary>
3976 <returns>collection enumerator</returns>
4834 </member> 3977 </member>
4835 <member name="F:HttpServer.LogPrio.Error"> 3978 <member name="M:HttpServer.RequestCookies.Clear">
4836 <summary> 3979 <summary>
4837 Something that should not fail failed, but we can still keep 3980 Remove all cookies.
4838 on going.
4839 </summary> 3981 </summary>
4840 </member> 3982 </member>
4841 <member name="F:HttpServer.LogPrio.Fatal"> 3983 <member name="M:HttpServer.RequestCookies.System#Collections#Generic#IEnumerable{HttpServer#RequestCookie}#GetEnumerator">
4842 <summary> 3984 <summary>
4843 Something failed, and we cannot handle it properly. 3985 Returns an enumerator that iterates through the collection.
4844 </summary> 3986 </summary>
3987
3988 <returns>
3989 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
3990 </returns>
3991 <filterpriority>1</filterpriority>
4845 </member> 3992 </member>
4846 <member name="T:HttpServer.ILogWriter"> 3993 <member name="M:HttpServer.RequestCookies.Remove(System.String)">
4847 <summary> 3994 <summary>
4848 Interface used to write to log files. 3995 Remove a cookie from the collection.
4849 </summary> 3996 </summary>
3997 <param name="cookieName">Name of cookie.</param>
4850 </member> 3998 </member>
4851 <member name="M:HttpServer.ILogWriter.Write(System.Object,HttpServer.LogPrio,System.String)"> 3999 <member name="P:HttpServer.RequestCookies.Count">
4852 <summary> 4000 <summary>
4853 Write an entry to the log file. 4001 Gets the count of cookies in the collection.
4854 </summary> 4002 </summary>
4855 <param name="source">object that is writing to the log</param>
4856 <param name="priority">importance of the log message</param>
4857 <param name="message">the message</param>
4858 </member> 4003 </member>
4859 <member name="T:HttpServer.ConsoleLogWriter"> 4004 <member name="P:HttpServer.RequestCookies.Item(System.String)">
4860 <summary> 4005 <summary>
4861 This class writes to the console. It colors the output depending on the logprio and includes a 3-level stacktrace (in debug mode) 4006 Gets the cookie of a given identifier (null if not existing).
4862 </summary> 4007 </summary>
4863 <seealso cref="T:HttpServer.ILogWriter"/>
4864 </member> 4008 </member>
4865 <member name="F:HttpServer.ConsoleLogWriter.Instance"> 4009 <member name="T:HttpServer.Parser.BodyEventArgs">
4866 <summary> 4010 <summary>
4867 The actual instance of this class. 4011 Arguments used when more body bytes have come.
4868 </summary> 4012 </summary>
4869 </member> 4013 </member>
4870 <member name="M:HttpServer.ConsoleLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)"> 4014 <member name="M:HttpServer.Parser.BodyEventArgs.#ctor(System.Byte[],System.Int32,System.Int32)">
4871 <summary> 4015 <summary>
4872 Logwriters the specified source. 4016 Initializes a new instance of the <see cref="T:HttpServer.Parser.BodyEventArgs"/> class.
4873 </summary> 4017 </summary>
4874 <param name="source">object that wrote the logentry.</param> 4018 <param name="buffer">buffer that contains the received bytes.</param>
4875 <param name="prio">Importance of the log message</param> 4019 <param name="offset">offset in buffer where to start processing.</param>
4876 <param name="message">The message.</param> 4020 <param name="count">number of bytes from <paramref name="offset"/> that should be parsed.</param>
4877 </member> 4021 </member>
4878 <member name="M:HttpServer.ConsoleLogWriter.GetColor(HttpServer.LogPrio)"> 4022 <member name="M:HttpServer.Parser.BodyEventArgs.#ctor">
4879 <summary> 4023 <summary>
4880 Get color for the specified logprio 4024 Initializes a new instance of the <see cref="T:HttpServer.Parser.BodyEventArgs"/> class.
4881 </summary> 4025 </summary>
4882 <param name="prio">prio for the log entry</param>
4883 <returns>A <see cref="T:System.ConsoleColor"/> for the prio</returns>
4884 </member> 4026 </member>
4885 <member name="T:HttpServer.NullLogWriter"> 4027 <member name="P:HttpServer.Parser.BodyEventArgs.Buffer">
4886 <summary> 4028 <summary>
4887 Default log writer, writes everything to null (nowhere). 4029 Gets or sets buffer that contains the received bytes.
4888 </summary> 4030 </summary>
4889 <seealso cref="T:HttpServer.ILogWriter"/>
4890 </member> 4031 </member>
4891 <member name="F:HttpServer.NullLogWriter.Instance"> 4032 <member name="P:HttpServer.Parser.BodyEventArgs.Count">
4892 <summary> 4033 <summary>
4893 The logging instance. 4034 Gets or sets number of bytes from <see cref="P:HttpServer.Parser.BodyEventArgs.Offset"/> that should be parsed.
4894 </summary> 4035 </summary>
4895 </member> 4036 </member>
4896 <member name="M:HttpServer.NullLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)"> 4037 <member name="P:HttpServer.Parser.BodyEventArgs.Offset">
4897 <summary> 4038 <summary>
4898 Writes everything to null 4039 Gets or sets offset in buffer where to start processing.
4899 </summary> 4040 </summary>
4900 <param name="source">object that wrote the log entry.</param>
4901 <param name="prio">Importance of the log message</param>
4902 <param name="message">The message.</param>
4903 </member> 4041 </member>
4904 <member name="T:HttpServer.HttpParam"> 4042 <member name="T:HttpServer.HttpParam">
4905 <summary> 4043 <summary>
@@ -4955,462 +4093,554 @@
4955 <param name="name"></param> 4093 <param name="name"></param>
4956 <returns>Item if found; otherwise HttpInputItem.EmptyLanguageNode</returns> 4094 <returns>Item if found; otherwise HttpInputItem.EmptyLanguageNode</returns>
4957 </member> 4095 </member>
4958 <member name="T:HttpServer.HttpFile"> 4096 <member name="T:HttpServer.ExceptionHandler">
4959 <summary> 4097 <summary>
4960 Container class for posted files 4098 We dont want to let the server to die due to exceptions thrown in worker threads.
4099 therefore we use this delegate to give you a change to handle uncaught exceptions.
4961 </summary> 4100 </summary>
4101 <param name="source">Class that the exception was thrown in.</param>
4102 <param name="exception">Exception</param>
4103 <remarks>
4104 Server will throw a InternalServerException in release version if you dont
4105 handle this delegate.
4106 </remarks>
4962 </member> 4107 </member>
4963 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)"> 4108 <member name="T:HttpServer.Authentication.AuthenticationHandler">
4964 <summary> 4109 <summary>
4965 Creates a container for a posted file 4110 Delegate used to let authentication modules authenticate the user name and password.
4966 </summary> 4111 </summary>
4967 <param name="name">The identifier of the post field</param> 4112 <param name="realm">Realm that the user want to authenticate in</param>
4968 <param name="filename">The file path</param> 4113 <param name="userName">User name specified by client</param>
4969 <param name="contentType">The content type of the file</param> 4114 <param name="token">Can either be user password or implementation specific token.</param>
4970 <param name="uploadFilename">The name of the file uploaded</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>
4971 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception> 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>
4972 </member> 4123 </member>
4973 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String)"> 4124 <member name="T:HttpServer.Authentication.AuthenticationRequiredHandler">
4974 <summary> 4125 <summary>
4975 Creates a container for a posted file <see cref="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)"/> 4126 Let's you decide on a system level if authentication is required.
4976 </summary> 4127 </summary>
4977 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception> 4128 <param name="request">HTTP request from client</param>
4978 </member> 4129 <returns>true if user should be authenticated.</returns>
4979 <member name="M:HttpServer.HttpFile.Finalize"> 4130 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> if no more attempts are allowed.</remarks>
4980 <summary>Destructor disposing the file</summary> 4131 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
4981 </member> 4132 </member>
4982 <member name="M:HttpServer.HttpFile.Dispose(System.Boolean)"> 4133 <member name="T:HttpServer.HttpListener">
4983 <summary> 4134 <summary>
4984 Deletes the temporary file 4135 New implementation of the HTTP listener.
4985 </summary> 4136 </summary>
4986 <param name="disposing">True if manual dispose</param> 4137 <remarks>
4138 Use the <c>Create</c> methods to create a default listener.
4139 </remarks>
4987 </member> 4140 </member>
4988 <member name="M:HttpServer.HttpFile.Dispose"> 4141 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)">
4989 <summary> 4142 <summary>
4990 Disposing interface, cleans up managed resources (the temporary file) and suppresses finalization 4143 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class.
4991 </summary> 4144 </summary>
4145 <param name="address">IP Address to accept connections on</param>
4146 <param name="port">TCP Port to listen on, default HTTP port is 80.</param>
4147 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
4148 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
4149 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
4992 </member> 4150 </member>
4993 <member name="P:HttpServer.HttpFile.Name"> 4151 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)">
4994 <summary> 4152 <summary>
4995 The name/id of the file 4153 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class.
4996 </summary> 4154 </summary>
4155 <param name="address">The address.</param>
4156 <param name="port">The port.</param>
4157 <param name="factory">The factory.</param>
4158 <param name="certificate">The certificate.</param>
4997 </member> 4159 </member>
4998 <member name="P:HttpServer.HttpFile.Filename"> 4160 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
4999 <summary> 4161 <summary>
5000 The full file path 4162 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class.
5001 </summary> 4163 </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>
5002 </member> 4169 </member>
5003 <member name="P:HttpServer.HttpFile.UploadFilename"> 4170 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32)">
5004 <summary> 4171 <summary>
5005 The name of the uploaded file 4172 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories.
5006 </summary> 4173 </summary>
4174 <param name="address">Address that the listener should accept connections on.</param>
4175 <param name="port">Port that listener should accept connections on.</param>
4176 <returns>Created HTTP listener.</returns>
5007 </member> 4177 </member>
5008 <member name="P:HttpServer.HttpFile.ContentType"> 4178 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)">
5009 <summary> 4179 <summary>
5010 The type of file 4180 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories.
5011 </summary> 4181 </summary>
4182 <param name="address">Address that the listener should accept connections on.</param>
4183 <param name="port">Port that listener should accept connections on.</param>
4184 <param name="certificate">Certificate to use</param>
4185 <returns>Created HTTP listener.</returns>
5012 </member> 4186 </member>
5013 <member name="T:HttpServer.HttpContextFactory"> 4187 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
5014 <summary> 4188 <summary>
5015 Used to create and reuse contexts. 4189 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories.
5016 </summary> 4190 </summary>
4191 <param name="address">Address that the listener should accept connections on.</param>
4192 <param name="port">Port that listener should accept connections on.</param>
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>
5017 </member> 4196 </member>
5018 <member name="T:HttpServer.IHttpContextFactory"> 4197 <member name="M:HttpServer.HttpListener.OnAcceptingSocket(System.Net.Sockets.Socket)">
5019 <summary> 4198 <summary>
5020 Used to create <see cref="T:HttpServer.IHttpClientContext"/>es. 4199 Can be used to create filtering of new connections.
5021 </summary> 4200 </summary>
4201 <param name="socket">Accepted socket</param>
4202 <returns>
4203 true if connection can be accepted; otherwise false.
4204 </returns>
5022 </member> 4205 </member>
5023 <member name="M:HttpServer.IHttpContextFactory.CreateContext(System.Net.Sockets.Socket)"> 4206 <member name="E:HttpServer.HttpListener.Accepted">
5024 <summary> 4207 <summary>
5025 Creates a <see cref="T:HttpServer.IHttpClientContext"/> that handles a connected client. 4208 A client have been accepted, but not handled, by the listener.
5026 </summary> 4209 </summary>
5027 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
5028 <returns>A creates <see cref="T:HttpServer.IHttpClientContext"/>.</returns>
5029 </member> 4210 </member>
5030 <member name="M:HttpServer.IHttpContextFactory.CreateSecureContext(System.Net.Sockets.Socket,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)"> 4211 <member name="T:HttpServer.Helpers.WebHelper">
5031 <summary> 4212 <summary>
5032 Create a secure <see cref="T:HttpServer.IHttpClientContext"/>. 4213 Webhelper provides helpers for common tasks in HTML.
5033 </summary> 4214 </summary>
5034 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param>
5035 <param name="certificate">HTTPS certificate to use.</param>
5036 <param name="protocol">Kind of HTTPS protocol. Usually TLS or SSL.</param>
5037 <returns>A created <see cref="T:HttpServer.IHttpClientContext"/>.</returns>
5038 </member> 4215 </member>
5039 <member name="E:HttpServer.IHttpContextFactory.RequestReceived"> 4216 <member name="F:HttpServer.Helpers.WebHelper.JSImplementation">
5040 <summary> 4217 <summary>
5041 A request have been received from one of the contexts. 4218 Used to let the website use different javascript libraries.
4219 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/>
5042 </summary> 4220 </summary>
5043 </member> 4221 </member>
5044 <member name="M:HttpServer.HttpContextFactory.#ctor(HttpServer.ILogWriter,System.Int32,HttpServer.IRequestParserFactory)"> 4222 <member name="M:HttpServer.Helpers.WebHelper.AjaxRequest(System.String,System.String,System.String[])">
5045 <summary> 4223 <summary>
5046 Initializes a new instance of the <see cref="T:HttpServer.HttpContextFactory"/> class. 4224 Creates a link that invokes through ajax.
5047 </summary> 4225 </summary>
5048 <param name="writer">The writer.</param> 4226 <param name="url">url to fetch</param>
5049 <param name="bufferSize">Amount of bytes to read from the incoming socket stream.</param> 4227 <param name="title">link title</param>
5050 <param name="factory">Used to create a request parser.</param> 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>
5051 </member> 4236 </member>
5052 <member name="M:HttpServer.HttpContextFactory.CreateContext(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,System.Net.Sockets.Socket)"> 4237 <member name="M:HttpServer.Helpers.WebHelper.AjaxUpdater(System.String,System.String,System.String,System.String[])">
5053 <summary> 4238 <summary>
5054 Create a new context. 4239 Builds a link that updates an element with the fetched ajax content.
5055 </summary> 4240 </summary>
5056 <param name="isSecured">true if socket is running HTTPS.</param> 4241 <param name="url">Url to fetch content from</param>
5057 <param name="endPoint">Client that connected</param> 4242 <param name="title">link title</param>
5058 <param name="stream">Network/SSL stream.</param> 4243 <param name="targetId">html element to update with the results of the ajax request.</param>
5059 <returns>A context.</returns> 4244 <param name="options">optional options in format "key, value, key, value"</param>
4245 <returns>A link tag.</returns>
5060 </member> 4246 </member>
5061 <member name="M:HttpServer.HttpContextFactory.CreateNewContext(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,System.Net.Sockets.Socket)"> 4247 <member name="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])">
5062 <summary> 4248 <summary>
5063 Create a new context. 4249 A link that pop ups a Dialog (overlay div)
5064 </summary> 4250 </summary>
5065 <param name="isSecured">true if HTTPS is used.</param> 4251 <param name="url">url to contents of dialog</param>
5066 <param name="endPoint">Remote client</param> 4252 <param name="title">link title</param>
5067 <param name="stream">Network stream, <see cref="T:HttpServer.HttpClientContext"/> uses <see cref="T:HttpServer.ReusableSocketNetworkStream"/>.</param> 4253 <param name="htmlAttributes">name/value of html attributes.</param>
5068 <returns>A new context (always).</returns> 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>
5069 </member> 4258 </member>
5070 <member name="M:HttpServer.HttpContextFactory.CreateSecureContext(System.Net.Sockets.Socket,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)"> 4259 <member name="M:HttpServer.Helpers.WebHelper.CreateDialog(System.String,System.String,System.String[])">
5071 <summary> 4260 <summary>
5072 Create a secure <see cref="T:HttpServer.IHttpClientContext"/>. 4261 Create/Open a dialog box using ajax
5073 </summary> 4262 </summary>
5074 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param> 4263 <param name="url"></param>
5075 <param name="certificate">HTTPS certificate to use.</param> 4264 <param name="title"></param>
5076 <param name="protocol">Kind of HTTPS protocol. Usually TLS or SSL.</param> 4265 <param name="parameters"></param>
5077 <returns> 4266 <returns></returns>
5078 A created <see cref="T:HttpServer.IHttpClientContext"/>.
5079 </returns>
5080 </member> 4267 </member>
5081 <member name="M:HttpServer.HttpContextFactory.CreateContext(System.Net.Sockets.Socket)"> 4268 <member name="M:HttpServer.Helpers.WebHelper.CloseDialog">
5082 <summary> 4269 <summary>
5083 Creates a <see cref="T:HttpServer.IHttpClientContext"/> that handles a connected client. 4270 Close a javascript dialog window/div.
5084 </summary> 4271 </summary>
5085 <param name="socket">Client socket (accepted by the <see cref="T:HttpServer.HttpListener"/>).</param> 4272 <returns>javascript for closing a dialog.</returns>
5086 <returns> 4273 <see cref="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])"/>
5087 A creates <see cref="T:HttpServer.IHttpClientContext"/>.
5088 </returns>
5089 </member> 4274 </member>
5090 <member name="P:HttpServer.HttpContextFactory.UseTraceLogs"> 4275 <member name="M:HttpServer.Helpers.WebHelper.FormStart(System.String,System.String,System.Boolean)">
5091 <summary> 4276 <summary>
5092 True if detailed trace logs should be written. 4277 Create a &lt;form&gt; tag.
5093 </summary> 4278 </summary>
4279 <param name="name">name of form</param>
4280 <param name="action">action to invoke on submit</param>
4281 <param name="isAjax">form should be posted as ajax</param>
4282 <returns>html code</returns>
4283 <example>
4284 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
4285 </example>
5094 </member> 4286 </member>
5095 <member name="E:HttpServer.HttpContextFactory.RequestReceived"> 4287 <member name="M:HttpServer.Helpers.WebHelper.Link(System.String,System.String,System.String[])">
5096 <summary> 4288 <summary>
5097 A request have been received from one of the contexts. 4289 Create a link tag.
5098 </summary> 4290 </summary>
4291 <param name="url">url to go to</param>
4292 <param name="title">link title (text that is displayed)</param>
4293 <param name="htmlAttributes">html attributes, name, value, name, value</param>
4294 <returns>html code</returns>
4295 <example>
4296 WebHelper.Link("/user/show/1", "Show user", "id", "showUser", "onclick", "return confirm('Are you shure?');");
4297 </example>
5099 </member> 4298 </member>
5100 <member name="T:HttpServer.ReusableSocketNetworkStream"> 4299 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[])">
5101 <summary> 4300 <summary>
5102 Custom network stream to mark sockets as reusable when disposing the stream. 4301 Build a link
5103 </summary> 4302 </summary>
4303 <param name="url">url to go to.</param>
4304 <param name="title">title of link (displayed text)</param>
4305 <param name="htmlAttributes">extra html attributes.</param>
4306 <returns>a complete link</returns>
5104 </member> 4307 </member>
5105 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket)"> 4308 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[],System.String[])">
5106 <summary> 4309 <summary>
5107 Creates a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" />. 4310 Build a link
5108 </summary> 4311 </summary>
5109 <param name="socket"> 4312 <param name="url">url to go to.</param>
5110 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data. 4313 <param name="title">title of link (displayed text)</param>
5111 </param> 4314 <param name="htmlAttributes">extra html attributes.</param>
5112 <exception cref="T:System.ArgumentNullException"> 4315 <returns>a complete link</returns>
5113 The <paramref name="socket" /> parameter is null. 4316 <param name="options">more options</param>
5114 </exception>
5115 <exception cref="T:System.IO.IOException">
5116 The <paramref name="socket" /> parameter is not connected.
5117 -or-
5118 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" />.
5119 -or-
5120 The <paramref name="socket" /> parameter is in a nonblocking state.
5121 </exception>
5122 </member> 4317 </member>
5123 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.Boolean)"> 4318 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
5124 <summary> 4319 <summary>
5125 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. 4320 Obsolete
5126 </summary> 4321 </summary>
5127 <param name="socket"> 4322 <param name="name">Obsolete</param>
5128 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data. 4323 <param name="collection">Obsolete</param>
5129 </param> 4324 <param name="getIdTitle">Obsolete</param>
5130 <param name="ownsSocket"> 4325 <param name="selectedValue">Obsolete</param>
5131 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. 4326 <param name="firstEmpty">Obsolete</param>
5132 </param> 4327 <returns>Obsolete</returns>
5133 <exception cref="T:System.ArgumentNullException">
5134 The <paramref name="socket" /> parameter is null.
5135 </exception>
5136 <exception cref="T:System.IO.IOException">
5137 The <paramref name="socket" /> parameter is not connected.
5138 -or-
5139 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" />.
5140 -or-
5141 the <paramref name="socket" /> parameter is in a nonblocking state.
5142 </exception>
5143 </member> 4328 </member>
5144 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.IO.FileAccess)"> 4329 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
5145 <summary> 4330 <summary>
5146 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. 4331 Obsolete
5147 </summary> 4332 </summary>
5148 <param name="socket"> 4333 <param name="name">Obsolete</param>
5149 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data. 4334 <param name="id">Obsolete</param>
5150 </param> 4335 <param name="collection">Obsolete</param>
5151 <param name="access"> 4336 <param name="getIdTitle">Obsolete</param>
5152 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" />. 4337 <param name="selectedValue">Obsolete</param>
5153 </param> 4338 <param name="firstEmpty">Obsolete</param>
5154 <exception cref="T:System.ArgumentNullException"> 4339 <returns>Obsolete</returns>
5155 The <paramref name="socket" /> parameter is null.
5156 </exception>
5157 <exception cref="T:System.IO.IOException">
5158 The <paramref name="socket" /> parameter is not connected.
5159 -or-
5160 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" />.
5161 -or-
5162 the <paramref name="socket" /> parameter is in a nonblocking state.
5163 </exception>
5164 </member> 4340 </member>
5165 <member name="M:HttpServer.ReusableSocketNetworkStream.#ctor(System.Net.Sockets.Socket,System.IO.FileAccess,System.Boolean)"> 4341 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Generic.IEnumerable{System.Object},System.String)">
5166 <summary> 4342 <summary>
5167 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. 4343 Render errors into a UL with class "errors"
5168 </summary> 4344 </summary>
5169 <param name="socket"> 4345 <param name="className">class used by UL-tag.</param>
5170 The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data. 4346 <param name="theList">items to list</param>
5171 </param> 4347 <returns>an unordered html list.</returns>
5172 <param name="access">
5173 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" />.
5174 </param>
5175 <param name="ownsSocket">
5176 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.
5177 </param>
5178 <exception cref="T:System.ArgumentNullException">
5179 The <paramref name="socket" /> parameter is null.
5180 </exception>
5181 <exception cref="T:System.IO.IOException">
5182 The <paramref name="socket" /> parameter is not connected.
5183 -or-
5184 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" />.
5185 -or-
5186 The <paramref name="socket" /> parameter is in a nonblocking state.
5187 </exception>
5188 </member> 4348 </member>
5189 <member name="M:HttpServer.ReusableSocketNetworkStream.Close"> 4349 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Specialized.NameValueCollection,System.String)">
5190 <summary> 4350 <summary>
5191 Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream. 4351 Render errors into a UL with class "errors"
5192 </summary> 4352 </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>
5193 </member> 4356 </member>
5194 <member name="M:HttpServer.ReusableSocketNetworkStream.Dispose(System.Boolean)"> 4357 <member name="M:HttpServer.Helpers.WebHelper.Errors(System.Collections.Specialized.NameValueCollection)">
5195 <summary> 4358 <summary>
5196 Releases the unmanaged resources used by the <see cref="T:System.Net.Sockets.NetworkStream"/> and optionally releases the managed resources. 4359 Render errors into a UL with class "errors"
5197 </summary> 4360 </summary>
5198 <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param> 4361 <param name="errors"></param>
4362 <returns></returns>
5199 </member> 4363 </member>
5200 <member name="T:HttpServer.FormDecoders.MultipartDecoder"> 4364 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[],System.String[])">
5201 <summary> 4365 <summary>
5202 4366 Generates a list with html attributes.
5203 </summary> 4367 </summary>
5204 <remarks> 4368 <param name="sb">StringBuilder that the options should be added to.</param>
5205 http://www.faqs.org/rfcs/rfc1867.html 4369 <param name="firstOptions">attributes set by user.</param>
5206 </remarks> 4370 <param name="secondOptions">attributes set by any of the helper classes.</param>
5207 </member> 4371 </member>
5208 <member name="F:HttpServer.FormDecoders.MultipartDecoder.MimeType"> 4372 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[])">
5209 <summary> 4373 <summary>
5210 multipart/form-data 4374 Generates a list with html attributes.
5211 </summary> 4375 </summary>
4376 <param name="sb">StringBuilder that the options should be added to.</param>
4377 <param name="options"></param>
5212 </member> 4378 </member>
5213 <member name="F:HttpServer.FormDecoders.MultipartDecoder.FormData"> 4379 <member name="T:HttpServer.ResponseCookie">
5214 <summary> 4380 <summary>
5215 form-data 4381 cookie being sent back to the browser.
5216 </summary> 4382 </summary>
4383 <seealso cref="T:HttpServer.ResponseCookie"/>
5217 </member> 4384 </member>
5218 <member name="M:HttpServer.FormDecoders.MultipartDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)"> 4385 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime)">
5219 <summary> 4386 <summary>
5220 4387 Constructor.
5221 </summary> 4388 </summary>
5222 <param name="stream">Stream containing the content</param> 4389 <param name="id">cookie identifier</param>
5223 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param> 4390 <param name="content">cookie content</param>
5224 <param name="encoding">Stream enconding</param> 4391 <param name="expiresAt">cookie expiration date. Use DateTime.MinValue for session cookie.</param>
5225 <returns>A http form, or null if content could not be parsed.</returns> 4392 <exception cref="T:System.ArgumentNullException">id or content is null</exception>
5226 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception> 4393 <exception cref="T:System.ArgumentException">id is empty</exception>
5227 <exception cref="T:System.ArgumentNullException">If any parameter is null</exception>
5228 </member> 4394 </member>
5229 <member name="M:HttpServer.FormDecoders.MultipartDecoder.CanParse(System.String)"> 4395 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime,System.String,System.String)">
5230 <summary> 4396 <summary>
5231 Checks if the decoder can handle the mime type 4397 Create a new cookie
5232 </summary> 4398 </summary>
5233 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param> 4399 <param name="name">name identifying the cookie</param>
5234 <returns>True if the decoder can parse the specified content type</returns> 4400 <param name="value">cookie value</param>
4401 <param name="expires">when the cookie expires. Setting DateTime.MinValue will delete the cookie when the session is closed.</param>
4402 <param name="path">Path to where the cookie is valid</param>
4403 <param name="domain">Domain that the cookie is valid for.</param>
5235 </member> 4404 </member>
5236 <member name="T:HttpServer.Sessions.MemorySession"> 4405 <member name="M:HttpServer.ResponseCookie.#ctor(HttpServer.RequestCookie,System.DateTime)">
5237 <summary> 4406 <summary>
5238 A session stored in memory. 4407 Create a new cookie
5239 </summary> 4408 </summary>
4409 <param name="cookie">Name and value will be used</param>
4410 <param name="expires">when the cookie expires.</param>
5240 </member> 4411 </member>
5241 <member name="M:HttpServer.Sessions.MemorySession.#ctor(System.String)"> 4412 <member name="M:HttpServer.ResponseCookie.ToString">
5242 <summary> 4413 <summary>
5243 4414 Gets the cookie HTML representation.
5244 </summary> 4415 </summary>
5245 <param name="id">A unique id used by the sessions store to identify the session</param> 4416 <returns>cookie string</returns>
5246 </member> 4417 </member>
5247 <member name="M:HttpServer.Sessions.MemorySession.SetId(System.String)"> 4418 <member name="P:HttpServer.ResponseCookie.Expires">
5248 <summary> 4419 <summary>
5249 Id 4420 When the cookie expires.
4421 DateTime.MinValue means that the cookie expires when the session do so.
5250 </summary> 4422 </summary>
5251 <param name="id"></param>
5252 </member> 4423 </member>
5253 <member name="M:HttpServer.Sessions.MemorySession.Clear"> 4424 <member name="P:HttpServer.ResponseCookie.Path">
5254 <summary> 4425 <summary>
5255 Remove everything from the session 4426 Cookie is only valid under this path.
5256 </summary> 4427 </summary>
5257 </member> 4428 </member>
5258 <member name="M:HttpServer.Sessions.MemorySession.Clear(System.Boolean)"> 4429 <member name="T:HttpServer.IHttpRequest">
5259 <summary> 4430 <summary>
5260 Clears the specified expire. 4431 Contains server side HTTP request information.
5261 </summary> 4432 </summary>
5262 <param name="expires">True if the session is cleared due to expiration</param>
5263 </member> 4433 </member>
5264 <member name="M:HttpServer.Sessions.MemorySession.Dispose"> 4434 <member name="M:HttpServer.IHttpRequest.AddHeader(System.String,System.String)">
5265 <summary> 4435 <summary>
5266 Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. 4436 Called during parsing of a <see cref="T:HttpServer.IHttpRequest"/>.
5267 </summary> 4437 </summary>
5268 <filterpriority>2</filterpriority> 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>
5269 </member> 4441 </member>
5270 <member name="P:HttpServer.Sessions.MemorySession.Id"> 4442 <member name="M:HttpServer.IHttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)">
5271 <summary> 4443 <summary>
5272 Session id 4444 Add bytes to the body
5273 </summary> 4445 </summary>
4446 <param name="bytes">buffer to read bytes from</param>
4447 <param name="offset">where to start read</param>
4448 <param name="length">number of bytes to read</param>
4449 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns>
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>
5274 </member> 4453 </member>
5275 <member name="P:HttpServer.Sessions.MemorySession.Item(System.String)"> 4454 <member name="M:HttpServer.IHttpRequest.Clear">
5276 <summary> 4455 <summary>
5277 Should 4456 Clear everything in the request
5278 </summary> 4457 </summary>
5279 <param name="name">Name of the session variable</param>
5280 <returns>null if it's not set</returns>
5281 </member> 4458 </member>
5282 <member name="P:HttpServer.Sessions.MemorySession.Accessed"> 4459 <member name="M:HttpServer.IHttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)">
5283 <summary> 4460 <summary>
5284 when the session was last accessed. 4461 Decode body into a form.
5285 </summary> 4462 </summary>
5286 <remarks> 4463 <param name="providers">A list with form decoders.</param>
5287 Used to determine when the session should be removed. 4464 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception>
5288 </remarks> 4465 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception>
5289 </member> 4466 </member>
5290 <member name="P:HttpServer.Sessions.MemorySession.Count"> 4467 <member name="M:HttpServer.IHttpRequest.SetCookies(HttpServer.RequestCookies)">
5291 <summary> 4468 <summary>
5292 Number of values in the session 4469 Sets the cookies.
5293 </summary> 4470 </summary>
4471 <param name="cookies">The cookies.</param>
5294 </member> 4472 </member>
5295 <member name="P:HttpServer.Sessions.MemorySession.Changed"> 4473 <member name="M:HttpServer.IHttpRequest.CreateResponse(HttpServer.IHttpClientContext)">
5296 <summary> 4474 <summary>
5297 Flag to indicate that the session have been changed 4475 Create a response object.
5298 and should be saved into the session store.
5299 </summary> 4476 </summary>
4477 <param name="context">Context for the connected client.</param>
4478 <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns>
5300 </member> 4479 </member>
5301 <member name="E:HttpServer.Sessions.MemorySession.BeforeClear"> 4480 <member name="P:HttpServer.IHttpRequest.AcceptTypes">
5302 <summary> 4481 <summary>
5303 Event triggered upon clearing the session 4482 Gets kind of types accepted by the client.
5304 </summary> 4483 </summary>
5305 </member> 4484 </member>
5306 <member name="T:HttpServer.ResponseCookies"> 4485 <member name="P:HttpServer.IHttpRequest.Body">
5307 <summary> 4486 <summary>
5308 Cookies that should be set. 4487 Gets or sets body stream.
5309 </summary> 4488 </summary>
5310 </member> 4489 </member>
5311 <member name="M:HttpServer.ResponseCookies.Add(HttpServer.ResponseCookie)"> 4490 <member name="P:HttpServer.IHttpRequest.BodyIsComplete">
5312 <summary> 4491 <summary>
5313 Adds a cookie in the collection. 4492 Gets whether the body is complete.
5314 </summary> 4493 </summary>
5315 <param name="cookie">cookie to add</param>
5316 <exception cref="T:System.ArgumentNullException">cookie is null</exception>
5317 </member> 4494 </member>
5318 <member name="M:HttpServer.ResponseCookies.Add(HttpServer.RequestCookie,System.DateTime)"> 4495 <member name="P:HttpServer.IHttpRequest.Connection">
5319 <summary> 4496 <summary>
5320 Copy a request cookie 4497 Gets or sets kind of connection used for the session.
5321 </summary> 4498 </summary>
5322 <param name="cookie"></param>
5323 <param name="expires">When the cookie should expire</param>
5324 </member> 4499 </member>
5325 <member name="M:HttpServer.ResponseCookies.GetEnumerator"> 4500 <member name="P:HttpServer.IHttpRequest.ContentLength">
5326 <summary> 4501 <summary>
5327 Gets a collection enumerator on the cookie list. 4502 Gets or sets number of bytes in the body.
5328 </summary> 4503 </summary>
5329 <returns>collection enumerator</returns>
5330 </member> 4504 </member>
5331 <member name="M:HttpServer.ResponseCookies.Clear"> 4505 <member name="P:HttpServer.IHttpRequest.Cookies">
5332 <summary> 4506 <summary>
5333 Remove all cookies 4507 Gets cookies that was sent with the request.
5334 </summary> 4508 </summary>
5335 </member> 4509 </member>
5336 <member name="M:HttpServer.ResponseCookies.System#Collections#Generic#IEnumerable{HttpServer#ResponseCookie}#GetEnumerator"> 4510 <member name="P:HttpServer.IHttpRequest.Form">
5337 <summary> 4511 <summary>
5338 Returns an enumerator that iterates through the collection. 4512 Gets form parameters.
5339 </summary> 4513 </summary>
5340
5341 <returns>
5342 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
5343 </returns>
5344 <filterpriority>1</filterpriority>
5345 </member> 4514 </member>
5346 <member name="P:HttpServer.ResponseCookies.Count"> 4515 <member name="P:HttpServer.IHttpRequest.Headers">
5347 <summary> 4516 <summary>
5348 Gets the count of cookies in the collection. 4517 Gets headers sent by the client.
5349 </summary> 4518 </summary>
5350 </member> 4519 </member>
5351 <member name="P:HttpServer.ResponseCookies.Item(System.String)"> 4520 <member name="P:HttpServer.IHttpRequest.HttpVersion">
5352 <summary> 4521 <summary>
5353 Gets the cookie of a given identifier (null if not existing). 4522 Gets or sets version of HTTP protocol that's used.
5354 </summary> 4523 </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"/>
5355 </member> 4528 </member>
5356 <member name="T:HttpServer.RequestParserFactory"> 4529 <member name="P:HttpServer.IHttpRequest.IsAjax">
5357 <summary> 4530 <summary>
5358 Creates request parsers when needed. 4531 Gets whether the request was made by Ajax (Asynchronous JavaScript)
5359 </summary> 4532 </summary>
5360 </member> 4533 </member>
5361 <member name="T:HttpServer.IRequestParserFactory"> 4534 <member name="P:HttpServer.IHttpRequest.Method">
5362 <summary> 4535 <summary>
5363 Creates request parsers when needed. 4536 Gets or sets requested method.
5364 </summary> 4537 </summary>
4538 <remarks>
4539 Will always be in upper case.
4540 </remarks>
4541 <see cref="P:HttpServer.IHttpRequest.Method"/>
5365 </member> 4542 </member>
5366 <member name="M:HttpServer.IRequestParserFactory.CreateParser(HttpServer.ILogWriter)"> 4543 <member name="P:HttpServer.IHttpRequest.Param">
5367 <summary> 4544 <summary>
5368 Create a new request parser. 4545 Gets parameter from <see cref="P:HttpServer.IHttpRequest.QueryString"/> or <see cref="P:HttpServer.IHttpRequest.Form"/>.
5369 </summary> 4546 </summary>
5370 <param name="logWriter">Used when logging should be enabled.</param>
5371 <returns>A new request parser.</returns>
5372 </member> 4547 </member>
5373 <member name="M:HttpServer.RequestParserFactory.CreateParser(HttpServer.ILogWriter)"> 4548 <member name="P:HttpServer.IHttpRequest.QueryString">
5374 <summary> 4549 <summary>
5375 Create a new request parser. 4550 Gets variables sent in the query string
5376 </summary> 4551 </summary>
5377 <param name="logWriter">Used when logging should be enabled.</param>
5378 <returns>A new request parser.</returns>
5379 </member> 4552 </member>
5380 <member name="M:HttpServer.ComponentProvider.AddInstance``1(System.Object)"> 4553 <member name="P:HttpServer.IHttpRequest.Uri">
5381 <summary> 4554 <summary>
5382 Add a component instance 4555 Gets or sets requested URI.
5383 </summary> 4556 </summary>
5384 <typeparam name="T">Interface type</typeparam>
5385 <param name="instance">Instance to add</param>
5386 </member> 4557 </member>
5387 <member name="M:HttpServer.ComponentProvider.Get``1"> 4558 <member name="P:HttpServer.IHttpRequest.UriParts">
5388 <summary> 4559 <summary>
5389 Get a component. 4560 Gets URI absolute path divided into parts.
5390 </summary> 4561 </summary>
5391 <typeparam name="T">Interface type</typeparam> 4562 <example>
5392 <returns>Component if registered, otherwise null.</returns> 4563 // URI is: http://gauffin.com/code/tiny/
4564 Console.WriteLine(request.UriParts[0]); // result: code
4565 Console.WriteLine(request.UriParts[1]); // result: tiny
4566 </example>
5393 <remarks> 4567 <remarks>
5394 Component will get created if needed. 4568 If you're using controllers than the first part is controller name,
4569 the second part is method name and the third part is Id property.
5395 </remarks> 4570 </remarks>
4571 <seealso cref="P:HttpServer.IHttpRequest.Uri"/>
5396 </member> 4572 </member>
5397 <member name="M:HttpServer.ComponentProvider.Create(HttpServer.ComponentProvider.TypeInformation)"> 4573 <member name="P:HttpServer.IHttpRequest.UriPath">
5398 <exception cref="T:System.InvalidOperationException">If instance cannot be created.</exception>
5399 </member>
5400 <member name="M:HttpServer.ComponentProvider.Contains(System.Type)">
5401 <summary> 4574 <summary>
5402 Checks if the specified component interface have been added. 4575 Gets or sets path and query.
5403 </summary> 4576 </summary>
5404 <param name="interfaceType"></param> 4577 <see cref="P:HttpServer.IHttpRequest.Uri"/>
5405 <returns>true if found; otherwise false.</returns> 4578 <remarks>
4579 Are only used during request parsing. Cannot be set after "Host" header have been
4580 added.
4581 </remarks>
5406 </member> 4582 </member>
5407 <member name="M:HttpServer.ComponentProvider.Add``2"> 4583 <member name="T:HttpServer.Helpers.GetIdTitle">
5408 <summary> 4584 <summary>
5409 Add a component. 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.
5410 </summary> 4586 </summary>
5411 <typeparam name="InterfaceType">Type being requested.</typeparam> 4587 <param name="obj">current object (for instance a User).</param>
5412 <typeparam name="InstanceType">Type being created.</typeparam> 4588 <param name="id">Text that should be displayed in the value part of a &lt;optiongt;-tag.</param>
5413 <exception cref="T:System.InvalidOperationException">Type have already been mapped.</exception> 4589 <param name="title">Text shown in the select list.</param>
4590 <example>
4591 // Class that is going to be used in a SELECT-tag.
4592 public class User
4593 {
4594 private readonly string _realName;
4595 private readonly int _id;
4596 public User(int id, string realName)
4597 {
4598 _id = id;
4599 _realName = realName;
4600 }
4601 public string RealName
4602 {
4603 get { return _realName; }
4604 }
4605
4606 public int Id
4607 {
4608 get { return _id; }
4609 }
4610 }
4611
4612 // Using an inline delegate to generate the select list
4613 public void UserInlineDelegate()
4614 {
4615 List&lt;User&gt; items = new List&lt;User&gt;();
4616 items.Add(new User(1, "adam"));
4617 items.Add(new User(2, "bertial"));
4618 items.Add(new User(3, "david"));
4619 string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value)
4620 {
4621 User user = (User)o;
4622 id = user.Id;
4623 value = user.RealName;
4624 }, 2, true);
4625 }
4626
4627 // Using an method as delegate to generate the select list.
4628 public void UseExternalDelegate()
4629 {
4630 List&lt;User&gt; items = new List&lt;User&gt;();
4631 items.Add(new User(1, "adam"));
4632 items.Add(new User(2, "bertial"));
4633 items.Add(new User(3, "david"));
4634 string htmlSelect = Select("users", "users", items, UserOptions, 1, true);
4635 }
4636
4637 // delegate returning id and title
4638 public static void UserOptions(object o, out object id, out object title)
4639 {
4640 User user = (User)o;
4641 id = user.Id;
4642 value = user.RealName;
4643 } /// </example>
5414 </member> 4644 </member>
5415 <member name="T:HttpServer.Exceptions.UnauthorizedException"> 4645 <member name="T:HttpServer.Exceptions.UnauthorizedException">
5416 <summary> 4646 <summary>
@@ -5452,5 +4682,775 @@
5452 </summary> 4682 </summary>
5453 <param name="message">reason to why the request was unauthorized.</param> 4683 <param name="message">reason to why the request was unauthorized.</param>
5454 </member> 4684 </member>
4685 <member name="T:HttpServer.Exceptions.NotFoundException">
4686 <summary>
4687 The requested resource was not found in the web server.
4688 </summary>
4689 </member>
4690 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String,System.Exception)">
4691 <summary>
4692 Create a new exception
4693 </summary>
4694 <param name="message">message describing the error</param>
4695 <param name="inner">inner exception</param>
4696 </member>
4697 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String)">
4698 <summary>
4699 Create a new exception
4700 </summary>
4701 <param name="message">message describing the error</param>
4702 </member>
4703 <member name="T:HttpServer.ConnectionType">
4704 <summary>
4705 Type of HTTP connection
4706 </summary>
4707 </member>
4708 <member name="F:HttpServer.ConnectionType.Close">
4709 <summary>
4710 Connection is closed after each request-response
4711 </summary>
4712 </member>
4713 <member name="F:HttpServer.ConnectionType.KeepAlive">
4714 <summary>
4715 Connection is kept alive for X seconds (unless another request have been made)
4716 </summary>
4717 </member>
4718 <member name="T:HttpServer.DisconnectedEventArgs">
4719 <summary>
4720 A <see cref="T:HttpServer.IHttpClientContext"/> have been disconnected.
4721 </summary>
4722 </member>
4723 <member name="M:HttpServer.DisconnectedEventArgs.#ctor(System.Net.Sockets.SocketError)">
4724 <summary>
4725 Initializes a new instance of the <see cref="T:HttpServer.DisconnectedEventArgs"/> class.
4726 </summary>
4727 <param name="error">Reason to disconnection.</param>
4728 </member>
4729 <member name="P:HttpServer.DisconnectedEventArgs.Error">
4730 <summary>
4731 Gets reason to why client disconnected.
4732 </summary>
4733 </member>
4734 <member name="T:HttpServer.RequestEventArgs">
4735 <summary>
4736
4737 </summary>
4738 </member>
4739 <member name="M:HttpServer.RequestEventArgs.#ctor(HttpServer.IHttpRequest)">
4740 <summary>
4741 Initializes a new instance of the <see cref="T:HttpServer.RequestEventArgs"/> class.
4742 </summary>
4743 <param name="request">The request.</param>
4744 </member>
4745 <member name="P:HttpServer.RequestEventArgs.Request">
4746 <summary>
4747 Gets received request.
4748 </summary>
4749 </member>
4750 <member name="T:HttpServer.HttpRequest">
4751 <summary>
4752 Contains server side HTTP request information.
4753 </summary>
4754 </member>
4755 <member name="F:HttpServer.HttpRequest.UriSplitters">
4756 <summary>
4757 Chars used to split an URL path into multiple parts.
4758 </summary>
4759 </member>
4760 <member name="M:HttpServer.HttpRequest.AssignForm(HttpServer.HttpForm)">
4761 <summary>
4762 Assign a form.
4763 </summary>
4764 <param name="form"></param>
4765 </member>
4766 <member name="M:HttpServer.HttpRequest.Clone">
4767 <summary>
4768 Creates a new object that is a copy of the current instance.
4769 </summary>
4770
4771 <returns>
4772 A new object that is a copy of this instance.
4773 </returns>
4774 <filterpriority>2</filterpriority>
4775 </member>
4776 <member name="M:HttpServer.HttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)">
4777 <summary>
4778 Decode body into a form.
4779 </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>
4784 <member name="M:HttpServer.HttpRequest.SetCookies(HttpServer.RequestCookies)">
4785 <summary>
4786 Cookies
4787 </summary>
4788 <param name="cookies">the cookies</param>
4789 </member>
4790 <member name="M:HttpServer.HttpRequest.CreateResponse(HttpServer.IHttpClientContext)">
4791 <summary>
4792 Create a response object.
4793 </summary>
4794 <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns>
4795 </member>
4796 <member name="M:HttpServer.HttpRequest.AddHeader(System.String,System.String)">
4797 <summary>
4798 Called during parsing of a <see cref="T:HttpServer.IHttpRequest"/>.
4799 </summary>
4800 <param name="name">Name of the header, should not be URL encoded</param>
4801 <param name="value">Value of the header, should not be URL encoded</param>
4802 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception>
4803 </member>
4804 <member name="M:HttpServer.HttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)">
4805 <summary>
4806 Add bytes to the body
4807 </summary>
4808 <param name="bytes">buffer to read bytes from</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>
4816 <member name="M:HttpServer.HttpRequest.Clear">
4817 <summary>
4818 Clear everything in the request
4819 </summary>
4820 </member>
4821 <member name="P:HttpServer.HttpRequest.Secure">
4822 <summary>
4823 Gets or sets a value indicating whether this <see cref="T:HttpServer.HttpRequest"/> is secure.
4824 </summary>
4825 </member>
4826 <member name="P:HttpServer.HttpRequest.UriPath">
4827 <summary>
4828 Path and query (will be merged with the host header) and put in Uri
4829 </summary>
4830 <see cref="P:HttpServer.HttpRequest.Uri"/>
4831 </member>
4832 <member name="P:HttpServer.HttpRequest.BodyIsComplete">
4833 <summary>
4834 Gets whether the body is complete.
4835 </summary>
4836 </member>
4837 <member name="P:HttpServer.HttpRequest.AcceptTypes">
4838 <summary>
4839 Gets kind of types accepted by the client.
4840 </summary>
4841 </member>
4842 <member name="P:HttpServer.HttpRequest.Body">
4843 <summary>
4844 Gets or sets body stream.
4845 </summary>
4846 </member>
4847 <member name="P:HttpServer.HttpRequest.Connection">
4848 <summary>
4849 Gets or sets kind of connection used for the session.
4850 </summary>
4851 </member>
4852 <member name="P:HttpServer.HttpRequest.ContentLength">
4853 <summary>
4854 Gets or sets number of bytes in the body.
4855 </summary>
4856 </member>
4857 <member name="P:HttpServer.HttpRequest.Headers">
4858 <summary>
4859 Gets headers sent by the client.
4860 </summary>
4861 </member>
4862 <member name="P:HttpServer.HttpRequest.HttpVersion">
4863 <summary>
4864 Gets or sets version of HTTP protocol that's used.
4865 </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>
4871 <member name="P:HttpServer.HttpRequest.Method">
4872 <summary>
4873 Gets or sets requested method.
4874 </summary>
4875 <value></value>
4876 <remarks>
4877 Will always be in upper case.
4878 </remarks>
4879 <see cref="!:HttpServer.Method"/>
4880 </member>
4881 <member name="P:HttpServer.HttpRequest.QueryString">
4882 <summary>
4883 Gets variables sent in the query string
4884 </summary>
4885 </member>
4886 <member name="P:HttpServer.HttpRequest.Uri">
4887 <summary>
4888 Gets or sets requested URI.
4889 </summary>
4890 </member>
4891 <member name="P:HttpServer.HttpRequest.UriParts">
4892 <summary>
4893 Uri absolute path splitted into parts.
4894 </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>
4901 If you're using controllers than the first part is controller name,
4902 the second part is method name and the third part is Id property.
4903 </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>
4932 // <input type="text" name="user[FirstName]" value="jonas" /> becomes:
4933 Console.WriteLine("Value: {0}", form["user"]["FirstName"].Value);
4934 </example>
4935 <remarks>
4936 All names in a form SHOULD be in lowercase.
4937 </remarks>
4938 </member>
4939 <member name="F:HttpServer.HttpInputItem.Empty">
4940 <summary> Representation of a non-initialized <see cref="T:HttpServer.HttpInputItem"/>.</summary>
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
5002 <returns>
5003 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
5004 </returns>
5005 <filterpriority>2</filterpriority>
5006 </member>
5007 <member name="M:HttpServer.HttpInputItem.ToString(System.String)">
5008 <summary>
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>
5019 <member name="P:HttpServer.HttpInputItem.Item(System.String)">
5020 <summary>
5021 Get a sub item
5022 </summary>
5023 <param name="name">name in lower case.</param>
5024 <returns><see cref="F:HttpServer.HttpInputItem.Empty"/> if no item was found.</returns>
5025 </member>
5026 <member name="P:HttpServer.HttpInputItem.Name">
5027 <summary>
5028 Name of item (in lower case).
5029 </summary>
5030 </member>
5031 <member name="P:HttpServer.HttpInputItem.Value">
5032 <summary>
5033 Returns the first value, or null if no value exist.
5034 </summary>
5035 </member>
5036 <member name="P:HttpServer.HttpInputItem.LastValue">
5037 <summary>
5038 Returns the last value, or null if no value exist.
5039 </summary>
5040 </member>
5041 <member name="P:HttpServer.HttpInputItem.Values">
5042 <summary>
5043 Returns the list with values.
5044 </summary>
5045 </member>
5046 <member name="P:HttpServer.HttpInputItem.HttpServer#IHttpInput#Item(System.String)">
5047 <summary>
5048
5049 </summary>
5050 <param name="name">name in lower case</param>
5051 <returns></returns>
5052 </member>
5053 <member name="T:HttpServer.HttpHelper">
5054 <summary>
5055 Generic helper functions for HTTP
5056 </summary>
5057 </member>
5058 <member name="F:HttpServer.HttpHelper.HTTP10">
5059 <summary>
5060 Version string for HTTP v1.0
5061 </summary>
5062 </member>
5063 <member name="F:HttpServer.HttpHelper.HTTP11">
5064 <summary>
5065 Version string for HTTP v1.1
5066 </summary>
5067 </member>
5068 <member name="F:HttpServer.HttpHelper.EmptyUri">
5069 <summary>
5070 An empty URI
5071 </summary>
5072 </member>
5073 <member name="M:HttpServer.HttpHelper.ParseQueryString(System.String)">
5074 <summary>
5075 Parses a query string.
5076 </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>
5082 <member name="T:HttpServer.Parser.RequestLineEventArgs">
5083 <summary>
5084 Used when the request line have been successfully parsed.
5085 </summary>
5086 </member>
5087 <member name="M:HttpServer.Parser.RequestLineEventArgs.#ctor(System.String,System.String,System.String)">
5088 <summary>
5089 Initializes a new instance of the <see cref="T:HttpServer.Parser.RequestLineEventArgs"/> class.
5090 </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>
5095 <member name="M:HttpServer.Parser.RequestLineEventArgs.#ctor">
5096 <summary>
5097 Initializes a new instance of the <see cref="T:HttpServer.Parser.RequestLineEventArgs"/> class.
5098 </summary>
5099 </member>
5100 <member name="P:HttpServer.Parser.RequestLineEventArgs.HttpMethod">
5101 <summary>
5102 Gets or sets http method.
5103 </summary>
5104 <remarks>
5105 Should be one of the methods declared in <see cref="T:HttpServer.Method"/>.
5106 </remarks>
5107 </member>
5108 <member name="P:HttpServer.Parser.RequestLineEventArgs.HttpVersion">
5109 <summary>
5110 Gets or sets the version of the HTTP protocol that the client want to use.
5111 </summary>
5112 </member>
5113 <member name="P:HttpServer.Parser.RequestLineEventArgs.UriPath">
5114 <summary>
5115 Gets or sets requested URI path.
5116 </summary>
5117 </member>
5118 <member name="T:HttpServer.Method">
5119 <summary>
5120 Contains all HTTP Methods (according to the HTTP 1.1 specification)
5121 <para>
5122 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
5123 </para>
5124 </summary>
5125 </member>
5126 <member name="F:HttpServer.Method.Delete">
5127 <summary>
5128 The DELETE method requests that the origin server delete the resource identified by the Request-URI.
5129 </summary>
5130 <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>
5151 <member name="F:HttpServer.Method.Get">
5152 <summary>
5153 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.
5154 </summary>
5155 <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>
5170 <member name="F:HttpServer.Method.Header">
5171 <summary>
5172 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.
5173 </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>
5182 <member name="F:HttpServer.Method.Options">
5183 <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>
5185 </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>
5190 <member name="F:HttpServer.Method.Post">
5191 <summary>
5192 The POST method is used to request that the origin server accept the entity enclosed
5193 in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
5194 </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>
5224 <member name="F:HttpServer.Method.Put">
5225 <summary>
5226 The PUT method requests that the enclosed entity be stored under the supplied Request-URI.
5227 </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>
5252 <member name="F:HttpServer.Method.Trace">
5253 <summary>
5254 The TRACE method is used to invoke a remote, application-layer loop- back of the request message.
5255 </summary>
5256 </member>
5257 <member name="T:HttpServer.Methods">
5258 <summary>
5259 Contains all HTTP Methods (according to the HTTP 1.1 specification)
5260 <para>
5261 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
5262 </para>
5263 </summary>
5264 </member>
5265 <member name="F:HttpServer.Methods.Delete">
5266 <summary>
5267 The DELETE method requests that the origin server delete the resource identified by the Request-URI.
5268 </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>
5290 <member name="F:HttpServer.Methods.Get">
5291 <summary>
5292 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.
5293 </summary>
5294 <remarks>
5295 <para>
5296 If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the
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>
5309 <member name="F:HttpServer.Methods.Header">
5310 <summary>
5311 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.
5312 </summary>
5313 <remarks>
5314 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
5315 information sent in response to a GET request. This method can be used for obtaining meta information about
5316 the entity implied by the request without transferring the entity-body itself.
5317
5318 This method is often used for testing hypertext links for validity, accessibility, and recent modification.
5319 </remarks>
5320 </member>
5321 <member name="F:HttpServer.Methods.Options">
5322 <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>
5324 </summary>
5325 <remarks>
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>
5327 </remarks>
5328 </member>
5329 <member name="F:HttpServer.Methods.Post">
5330 <summary>
5331 The POST method is used to request that the origin server accept the entity enclosed
5332 in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
5333 </summary>
5334 <remarks>
5335 POST is designed to allow a uniform method to cover the following functions:
5336 <list type="bullet">
5337 <item>
5338 Annotation of existing resources;
5339 </item><item>
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>
5363 <member name="F:HttpServer.Methods.Put">
5364 <summary>
5365 The PUT method requests that the enclosed entity be stored under the supplied Request-URI.
5366 </summary>
5367 <remarks>
5368 <list type="bullet">
5369 <item>
5370 If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a
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>
5391 <member name="F:HttpServer.Methods.Trace">
5392 <summary>
5393 The TRACE method is used to invoke a remote, application-layer loop- back of the request message.
5394 </summary>
5395 </member>
5396 <member name="T:HttpServer.HttpModules.ResourceFileModule">
5397 <summary>
5398 Serves files that are stored in embedded resources.
5399 </summary>
5400 </member>
5401 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor">
5402 <summary>
5403 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class.
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>
5407 </member>
5408 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor(HttpServer.ILogWriter)">
5409 <summary>
5410 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class.
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>
5414 <param name="logWriter">The log writer to use when logging events</param>
5415 </member>
5416 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes">
5417 <summary>
5418 Mimtypes that this class can handle per default
5419 </summary>
5420 </member>
5421 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddResources(System.String,System.Reflection.Assembly,System.String)">
5422 <summary>
5423 Loads resources from a namespace in the given assembly to an uri
5424 </summary>
5425 <param name="toUri">The uri to map the resources to</param>
5426 <param name="fromAssembly">The assembly in which the resources reside</param>
5427 <param name="fromNamespace">The namespace from which to load the resources</param>
5428 <usage>
5429 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
5430
5431 will make ie the resource MyLib.Models.User.Views.stylesheet.css accessible via /user/stylesheet.css
5432 </usage>
5433 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns>
5434 </member>
5435 <member name="M:HttpServer.HttpModules.ResourceFileModule.CanHandle(HttpServer.IHttpRequest)">
5436 <summary>
5437 Returns true if the module can handle the request
5438 </summary>
5439 </member>
5440 <member name="M:HttpServer.HttpModules.ResourceFileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
5441 <summary>
5442 Method that process the url
5443 </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>
5449 <member name="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes">
5450 <summary>
5451 List with all mime-type that are allowed.
5452 </summary>
5453 <remarks>All other mime types will result in a Forbidden http status code.</remarks>
5454 </member>
5455 </members> 5455 </members>
5456</doc> 5456</doc>