aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/bin
diff options
context:
space:
mode:
authorubit2013-04-28 20:40:11 +0200
committerubit2013-04-28 20:40:11 +0200
commit61ea7ee5a94e5e3d33fc77c1c316318850309c42 (patch)
tree1e589fc3b448b580d1cc25b52215ef5ce2d7ae78 /bin
parentMerge branch 'ubitwork' of ssh://3dhosting.de/var/git/careminster into ubitwork (diff)
parentController module for dynamic floaters (WIP) (diff)
downloadopensim-SC_OLD-61ea7ee5a94e5e3d33fc77c1c316318850309c42.zip
opensim-SC_OLD-61ea7ee5a94e5e3d33fc77c1c316318850309c42.tar.gz
opensim-SC_OLD-61ea7ee5a94e5e3d33fc77c1c316318850309c42.tar.bz2
opensim-SC_OLD-61ea7ee5a94e5e3d33fc77c1c316318850309c42.tar.xz
Merge branch 'ubitwork' of ssh://3dhosting.de/var/git/careminster into ubitwork
Conflicts: bin/Regions/Regions.ini.example
Diffstat (limited to '')
-rw-r--r--bin/BulletXNA.dllbin0 -> 610304 bytes
-rw-r--r--bin/BulletXNA.pdbbin0 -> 1963520 bytes
-rwxr-xr-xbin/HttpServer_OpenSim.dllbin120832 -> 119808 bytes
-rw-r--r--bin/HttpServer_OpenSim.pdbbin413184 -> 355840 bytes
-rw-r--r--bin/HttpServer_OpenSim.xml5867
-rwxr-xr-xbin/Ionic.Zip.dllbin462336 -> 491520 bytes
-rwxr-xr-xbin/Mono.Addins.CecilReflector.dllbin364032 -> 290816 bytes
-rwxr-xr-xbin/Mono.Addins.Setup.dllbin103424 -> 135168 bytes
-rwxr-xr-xbin/Mono.Addins.dllbin202752 -> 233472 bytes
-rwxr-xr-xbin/OpenMetaverse.StructuredData.dllbin102400 -> 114688 bytes
-rwxr-xr-xbin/OpenMetaverse.dllbin1765376 -> 1925120 bytes
-rw-r--r--bin/OpenMetaverse.dll.config2
-rwxr-xr-xbin/OpenMetaverseTypes.dllbin114688 -> 122880 bytes
-rwxr-xr-xbin/OpenSim.exe.config6
-rw-r--r--bin/OpenSim.ini.example266
-rw-r--r--bin/OpenSimDefaults.ini260
-rw-r--r--bin/Regions/Regions.ini.example52
-rw-r--r--bin/Robust.HG.ini.example81
-rw-r--r--bin/Robust.ini.example33
-rw-r--r--bin/config-include/GridCommon.ini.example25
-rw-r--r--bin/config-include/StandaloneCommon.ini.example51
-rw-r--r--bin/data/LICENSE-README-IMPORTANT.txt2
-rw-r--r--bin/data/sim.css85
-rw-r--r--bin/data/sim.html291
-rw-r--r--bin/enter_uuid.xml7
-rwxr-xr-xbin/lib32/BulletSim.dllbin551424 -> 570368 bytes
-rwxr-xr-xbin/lib32/libBulletSim.sobin1707321 -> 1751260 bytes
-rwxr-xr-xbin/lib64/BulletSim.dllbin699904 -> 720896 bytes
-rwxr-xr-xbin/lib64/libBulletSim.sobin1844228 -> 1908442 bytes
-rw-r--r--bin/set_object_owner.xml8
30 files changed, 3907 insertions, 3129 deletions
diff --git a/bin/BulletXNA.dll b/bin/BulletXNA.dll
new file mode 100644
index 0000000..bfaac4f
--- /dev/null
+++ b/bin/BulletXNA.dll
Binary files differ
diff --git a/bin/BulletXNA.pdb b/bin/BulletXNA.pdb
new file mode 100644
index 0000000..ecab22f
--- /dev/null
+++ b/bin/BulletXNA.pdb
Binary files differ
diff --git a/bin/HttpServer_OpenSim.dll b/bin/HttpServer_OpenSim.dll
index 2512b85..e15493d 100755
--- 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 b9161e1..cfff9a7 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 d31bcca..61c3ad8 100644
--- a/bin/HttpServer_OpenSim.xml
+++ b/bin/HttpServer_OpenSim.xml
@@ -4,922 +4,421 @@
4 <name>HttpServer_OpenSim</name> 4 <name>HttpServer_OpenSim</name>
5 </assembly> 5 </assembly>
6 <members> 6 <members>
7 <member name="T:HttpServer.Sessions.IHttpSessionStore"> 7 <member name="T:HttpServer.RealmHandler">
8 <summary>
9 A session store is used to store and load sessions on a media.
10 The default implementation (<see cref="T:HttpServer.Sessions.MemorySessionStore"/>) saves/retrieves sessions from memory.
11 </summary>
12 </member>
13 <member name="M:HttpServer.Sessions.IHttpSessionStore.Create">
14 <summary>
15 Creates a new http session with a generated id.
16 </summary>
17 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object</returns>
18 </member>
19 <member name="M:HttpServer.Sessions.IHttpSessionStore.Create(System.String)">
20 <summary> 8 <summary>
21 Creates a new http session with a specific id 9 Delegate used to find a realm/domain.
22 </summary> 10 </summary>
23 <param name="id">Id used to identify the new cookie..</param> 11 <param name="domain"></param>
24 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns> 12 <returns></returns>
25 <remarks> 13 <remarks>
26 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>. 14 Realms are used during HTTP Authentication
27 </remarks> 15 </remarks>
16 <seealso cref="T:HttpServer.Authentication.AuthenticationModule"/>
17 <seealso cref="T:HttpServer.Authentication.AuthenticationHandler"/>
28 </member> 18 </member>
29 <member name="M:HttpServer.Sessions.IHttpSessionStore.Load(System.String)"> 19 <member name="T:HttpServer.HttpServer">
30 <summary>
31 Load an existing session.
32 </summary>
33 <param name="sessionId">Session id (usually retrieved from a client side cookie).</param>
34 <returns>A session if found; otherwise null.</returns>
35 </member>
36 <member name="M:HttpServer.Sessions.IHttpSessionStore.Save(HttpServer.Sessions.IHttpSession)">
37 <summary>
38 Save an updated session to the store.
39 </summary>
40 <param name="session">Session id (usually retrieved from a client side cookie).</param>
41 <exception cref="T:System.ArgumentException">If Id property have not been specified.</exception>
42 </member>
43 <member name="M:HttpServer.Sessions.IHttpSessionStore.AddUnused(HttpServer.Sessions.IHttpSession)">
44 <summary>
45 We use the flyweight pattern which reuses small objects
46 instead of creating new each time.
47 </summary>
48 <param name="session">Unused session that should be reused next time Create is called.</param>
49 </member>
50 <member name="M:HttpServer.Sessions.IHttpSessionStore.Cleanup">
51 <summary>
52 Remove expired sessions
53 </summary>
54 </member>
55 <member name="M:HttpServer.Sessions.IHttpSessionStore.Remove(System.String)">
56 <summary>
57 Remove a session
58 </summary>
59 <param name="sessionId">id of the session.</param>
60 </member>
61 <member name="P:HttpServer.Sessions.IHttpSessionStore.Item(System.String)">
62 <summary>
63 Load a session from the store
64 </summary>
65 <param name="sessionId"></param>
66 <returns>null if session is not found.</returns>
67 </member>
68 <member name="P:HttpServer.Sessions.IHttpSessionStore.ExpireTime">
69 <summary>
70 Number of minutes before a session expires.
71 </summary>
72 <value>Default time is 20 minutes.</value>
73 </member>
74 <member name="T:HttpServer.IHttpRequest">
75 <summary>
76 Contains server side HTTP request information.
77 </summary>
78 </member>
79 <member name="M:HttpServer.IHttpRequest.AddHeader(System.String,System.String)">
80 <summary>
81 Called during parsing of a <see cref="T:HttpServer.IHttpRequest"/>.
82 </summary>
83 <param name="name">Name of the header, should not be URL encoded</param>
84 <param name="value">Value of the header, should not be URL encoded</param>
85 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception>
86 </member>
87 <member name="M:HttpServer.IHttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)">
88 <summary> 20 <summary>
89 Add bytes to the body 21 A complete HTTP server, you need to add a module to it to be able to handle incoming requests.
90 </summary> 22 </summary>
91 <param name="bytes">buffer to read bytes from</param> 23 <example>
92 <param name="offset">where to start read</param> 24 <code>
93 <param name="length">number of bytes to read</param> 25 // this small example will add two web site modules, thus handling
94 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns> 26 // two different sites. In reality you should add Controller modules or something
95 <exception cref="T:System.InvalidOperationException">If body is not writable</exception> 27 // two the website modules to be able to handle different requests.
96 <exception cref="T:System.ArgumentNullException"><c>bytes</c> is null.</exception> 28 HttpServer server = new HttpServer();
97 <exception cref="T:System.ArgumentOutOfRangeException"><c>offset</c> is out of range.</exception> 29 server.Add(new WebSiteModule("www.gauffin.com", "Gauffin Telecom AB"));
30 server.Add(new WebSiteModule("www.vapadi.se", "Remote PBX"));
31
32 // start regular http
33 server.Start(IPAddress.Any, 80);
34
35 // start https
36 server.Start(IPAddress.Any, 443, myCertificate);
37 </code>
38 </example>
39 <seealso cref="T:HttpServer.HttpModules.HttpModule"/>
40 <seealso cref="T:HttpServer.HttpModules.FileModule"/>
41 <seealso cref="T:HttpServer.HttpListener"/>
98 </member> 42 </member>
99 <member name="M:HttpServer.IHttpRequest.Clear"> 43 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.IComponentProvider)">
100 <summary> 44 <summary>
101 Clear everything in the request 45 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
102 </summary> 46 </summary>
47 <param name="provider">Used to get all components used in the server..</param>
103 </member> 48 </member>
104 <member name="M:HttpServer.IHttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)"> 49 <member name="M:HttpServer.HttpServer.#ctor">
105 <summary> 50 <summary>
106 Decode body into a form. 51 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
107 </summary> 52 </summary>
108 <param name="providers">A list with form decoders.</param>
109 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception>
110 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception>
111 </member> 53 </member>
112 <member name="M:HttpServer.IHttpRequest.SetCookies(HttpServer.RequestCookies)"> 54 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider)">
113 <summary> 55 <summary>
114 Sets the cookies. 56 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
115 </summary> 57 </summary>
116 <param name="cookies">The cookies.</param> 58 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
59 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
60 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
117 </member> 61 </member>
118 <member name="M:HttpServer.IHttpRequest.CreateResponse(HttpServer.IHttpClientContext)"> 62 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.Sessions.IHttpSessionStore)">
119 <summary> 63 <summary>
120 Create a response object. 64 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
121 </summary> 65 </summary>
122 <param name="context">Context for the connected client.</param> 66 <param name="sessionStore">A session store is used to save and retrieve sessions</param>
123 <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns> 67 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/>
124 </member> 68 </member>
125 <member name="P:HttpServer.IHttpRequest.AcceptTypes"> 69 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.ILogWriter)">
126 <summary> 70 <summary>
127 Gets kind of types accepted by the client. 71 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
128 </summary> 72 </summary>
73 <param name="logWriter">The log writer.</param>
74 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
129 </member> 75 </member>
130 <member name="P:HttpServer.IHttpRequest.Body"> 76 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.ILogWriter)">
131 <summary> 77 <summary>
132 Gets or sets body stream. 78 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
133 </summary> 79 </summary>
80 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
81 <param name="logWriter">The log writer.</param>
82 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
83 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
84 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
134 </member> 85 </member>
135 <member name="P:HttpServer.IHttpRequest.BodyIsComplete"> 86 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.Sessions.IHttpSessionStore,HttpServer.ILogWriter)">
136 <summary> 87 <summary>
137 Gets whether the body is complete. 88 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class.
138 </summary> 89 </summary>
90 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param>
91 <param name="sessionStore">A session store is used to save and retrieve sessions</param>
92 <param name="logWriter">The log writer.</param>
93 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
94 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
95 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
96 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/>
139 </member> 97 </member>
140 <member name="P:HttpServer.IHttpRequest.Connection"> 98 <member name="M:HttpServer.HttpServer.Add(HttpServer.Rules.IRule)">
141 <summary> 99 <summary>
142 Gets or sets kind of connection used for the session. 100 Adds the specified rule.
143 </summary> 101 </summary>
102 <param name="rule">The rule.</param>
144 </member> 103 </member>
145 <member name="P:HttpServer.IHttpRequest.ContentLength"> 104 <member name="M:HttpServer.HttpServer.Add(HttpServer.HttpModules.HttpModule)">
146 <summary> 105 <summary>
147 Gets or sets number of bytes in the body. 106 Add a <see cref="T:HttpServer.HttpModules.HttpModule"/> to the server.
148 </summary> 107 </summary>
108 <param name="module">mode to add</param>
149 </member> 109 </member>
150 <member name="P:HttpServer.IHttpRequest.Cookies"> 110 <member name="M:HttpServer.HttpServer.DecodeBody(HttpServer.IHttpRequest)">
151 <summary> 111 <summary>
152 Gets cookies that was sent with the request. 112 Decodes the request body.
153 </summary> 113 </summary>
114 <param name="request">The request.</param>
115 <exception cref="T:HttpServer.Exceptions.InternalServerException">Failed to decode form data.</exception>
154 </member> 116 </member>
155 <member name="P:HttpServer.IHttpRequest.Form"> 117 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,System.Net.HttpStatusCode,System.String)">
156 <summary> 118 <summary>
157 Gets form parameters. 119 Generate a HTTP error page (that will be added to the response body).
120 response status code is also set.
158 </summary> 121 </summary>
122 <param name="response">Response that the page will be generated in.</param>
123 <param name="error"><see cref="T:System.Net.HttpStatusCode"/>.</param>
124 <param name="body">response body contents.</param>
159 </member> 125 </member>
160 <member name="P:HttpServer.IHttpRequest.Headers"> 126 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,HttpServer.Exceptions.HttpException)">
161 <summary> 127 <summary>
162 Gets headers sent by the client. 128 Generate a HTTP error page (that will be added to the response body).
129 response status code is also set.
163 </summary> 130 </summary>
131 <param name="response">Response that the page will be generated in.</param>
132 <param name="err">exception.</param>
164 </member> 133 </member>
165 <member name="P:HttpServer.IHttpRequest.HttpVersion"> 134 <member name="M:HttpServer.HttpServer.GetRealm(HttpServer.IHttpRequest)">
166 <summary> 135 <summary>
167 Gets or sets version of HTTP protocol that's used. 136 Realms are used by the <see cref="T:HttpServer.Authentication.AuthenticationModule"/>s.
168 </summary> 137 </summary>
169 <remarks> 138 <param name="request">HTTP request</param>
170 Probably <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/>. 139 <returns>domain/realm.</returns>
171 </remarks>
172 <seealso cref="T:HttpServer.HttpHelper"/>
173 </member> 140 </member>
174 <member name="P:HttpServer.IHttpRequest.IsAjax"> 141 <member name="M:HttpServer.HttpServer.HandleRequest(HttpServer.IHttpClientContext,HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
175 <summary> 142 <summary>
176 Gets whether the request was made by Ajax (Asynchronous JavaScript) 143 Process an incoming request.
177 </summary> 144 </summary>
145 <param name="context">connection to client</param>
146 <param name="request">request information</param>
147 <param name="response">response that should be filled</param>
148 <param name="session">session information</param>
178 </member> 149 </member>
179 <member name="P:HttpServer.IHttpRequest.Method"> 150 <member name="M:HttpServer.HttpServer.OnClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)">
180 <summary> 151 <summary>
181 Gets or sets requested method. 152 Can be overloaded to implement stuff when a client have been connected.
182 </summary> 153 </summary>
183 <remarks> 154 <remarks>
184 Will always be in upper case. 155 Default implementation does nothing.
185 </remarks> 156 </remarks>
186 <see cref="P:HttpServer.IHttpRequest.Method"/> 157 <param name="client">client that disconnected</param>
187 </member> 158 <param name="error">disconnect reason</param>
188 <member name="P:HttpServer.IHttpRequest.Param">
189 <summary>
190 Gets parameter from <see cref="P:HttpServer.IHttpRequest.QueryString"/> or <see cref="P:HttpServer.IHttpRequest.Form"/>.
191 </summary>
192 </member>
193 <member name="P:HttpServer.IHttpRequest.QueryString">
194 <summary>
195 Gets variables sent in the query string
196 </summary>
197 </member>
198 <member name="P:HttpServer.IHttpRequest.Uri">
199 <summary>
200 Gets or sets requested URI.
201 </summary>
202 </member> 159 </member>
203 <member name="P:HttpServer.IHttpRequest.UriParts"> 160 <member name="M:HttpServer.HttpServer.ProcessAuthentication(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
204 <summary> 161 <summary>
205 Gets URI absolute path divided into parts. 162 Handle authentication
206 </summary> 163 </summary>
207 <example> 164 <param name="request"></param>
208 // URI is: http://gauffin.com/code/tiny/ 165 <param name="response"></param>
209 Console.WriteLine(request.UriParts[0]); // result: code 166 <param name="session"></param>
210 Console.WriteLine(request.UriParts[1]); // result: tiny 167 <returns>true if request can be handled; false if not.</returns>
211 </example> 168 <exception cref="T:HttpServer.Exceptions.BadRequestException">Invalid authorization header</exception>
212 <remarks>
213 If you're using controllers than the first part is controller name,
214 the second part is method name and the third part is Id property.
215 </remarks>
216 <seealso cref="P:HttpServer.IHttpRequest.Uri"/>
217 </member> 169 </member>
218 <member name="P:HttpServer.IHttpRequest.UriPath"> 170 <member name="M:HttpServer.HttpServer.RequestAuthentication(HttpServer.Authentication.AuthenticationModule,HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
219 <summary> 171 <summary>
220 Gets or sets path and query. 172 Will request authentication.
221 </summary> 173 </summary>
222 <see cref="P:HttpServer.IHttpRequest.Uri"/>
223 <remarks> 174 <remarks>
224 Are only used during request parsing. Cannot be set after "Host" header have been 175 Sends respond to client, nothing else can be done with the response after this.
225 added.
226 </remarks> 176 </remarks>
177 <param name="mod"></param>
178 <param name="request"></param>
179 <param name="response"></param>
227 </member> 180 </member>
228 <member name="T:HttpServer.IHttpContextHandler"> 181 <member name="M:HttpServer.HttpServer.OnRequest(System.Object,HttpServer.RequestEventArgs)">
229 <summary>
230 Class that receives Requests from a <see cref="T:HttpServer.IHttpClientContext"/>.
231 </summary>
232 </member>
233 <member name="M:HttpServer.IHttpContextHandler.ClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)">
234 <summary>
235 Client have been disconnected.
236 </summary>
237 <param name="client">Client that was disconnected.</param>
238 <param name="error">Reason</param>
239 <see cref="T:HttpServer.IHttpClientContext"/>
240 </member>
241 <member name="M:HttpServer.IHttpContextHandler.RequestReceived(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
242 <summary>
243 Invoked when a client context have received a new HTTP request
244 </summary>
245 <param name="client">Client that received the request.</param>
246 <param name="request">Request that was received.</param>
247 <see cref="T:HttpServer.IHttpClientContext"/>
248 </member>
249 <member name="T:HttpServer.Helpers.GetIdTitle">
250 <summary>
251 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.
252 </summary>
253 <param name="obj">current object (for instance a User).</param>
254 <param name="id">Text that should be displayed in the value part of a &lt;optiongt;-tag.</param>
255 <param name="title">Text shown in the select list.</param>
256 <example>
257 // Class that is going to be used in a SELECT-tag.
258 public class User
259 {
260 private readonly string _realName;
261 private readonly int _id;
262 public User(int id, string realName)
263 {
264 _id = id;
265 _realName = realName;
266 }
267 public string RealName
268 {
269 get { return _realName; }
270 }
271
272 public int Id
273 {
274 get { return _id; }
275 }
276 }
277
278 // Using an inline delegate to generate the select list
279 public void UserInlineDelegate()
280 {
281 List&lt;User&gt; items = new List&lt;User&gt;();
282 items.Add(new User(1, "adam"));
283 items.Add(new User(2, "bertial"));
284 items.Add(new User(3, "david"));
285 string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value)
286 {
287 User user = (User)o;
288 id = user.Id;
289 value = user.RealName;
290 }, 2, true);
291 }
292
293 // Using an method as delegate to generate the select list.
294 public void UseExternalDelegate()
295 {
296 List&lt;User&gt; items = new List&lt;User&gt;();
297 items.Add(new User(1, "adam"));
298 items.Add(new User(2, "bertial"));
299 items.Add(new User(3, "david"));
300 string htmlSelect = Select("users", "users", items, UserOptions, 1, true);
301 }
302
303 // delegate returning id and title
304 public static void UserOptions(object o, out object id, out object title)
305 {
306 User user = (User)o;
307 id = user.Id;
308 value = user.RealName;
309 } /// </example>
310 </member>
311 <member name="T:HttpServer.Exceptions.ForbiddenException">
312 <summary>
313 The server understood the request, but is refusing to fulfill it.
314 Authorization will not help and the request SHOULD NOT be repeated.
315 If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled,
316 it SHOULD describe the reason for the refusal in the entity. If the server does not wish to make this information
317 available to the client, the status code 404 (Not Found) can be used instead.
318
319 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
320 </summary>
321 </member>
322 <member name="T:HttpServer.Exceptions.HttpException">
323 <summary>
324 All HTTP based exceptions will derive this class.
325 </summary>
326 </member>
327 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String)">
328 <summary>
329 Create a new HttpException
330 </summary>
331 <param name="code">http status code (sent in the response)</param>
332 <param name="message">error description</param>
333 </member>
334 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String,System.Exception)">
335 <summary>
336 Create a new HttpException
337 </summary>
338 <param name="code">http status code (sent in the response)</param>
339 <param name="message">error description</param>
340 <param name="inner">inner exception</param>
341 </member>
342 <member name="P:HttpServer.Exceptions.HttpException.HttpStatusCode">
343 <summary>
344 status code to use in the response.
345 </summary>
346 </member>
347 <member name="M:HttpServer.Exceptions.ForbiddenException.#ctor(System.String)">
348 <summary>
349 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.ForbiddenException"/> class.
350 </summary>
351 <param name="errorMsg">error message</param>
352 </member>
353 <member name="T:HttpServer.Sessions.MemorySession">
354 <summary>
355 A session stored in memory.
356 </summary>
357 </member>
358 <member name="T:HttpServer.Sessions.IHttpSession">
359 <summary>
360 Interface for sessions
361 </summary>
362 </member>
363 <member name="M:HttpServer.Sessions.IHttpSession.Clear">
364 <summary>
365 Remove everything from the session
366 </summary>
367 </member>
368 <member name="M:HttpServer.Sessions.IHttpSession.Clear(System.Boolean)">
369 <summary>
370 Remove everything from the session
371 </summary>
372 <param name="expires">True if the session is cleared due to expiration</param>
373 </member>
374 <member name="P:HttpServer.Sessions.IHttpSession.Id">
375 <summary>
376 Session id
377 </summary>
378 </member>
379 <member name="P:HttpServer.Sessions.IHttpSession.Item(System.String)">
380 <summary>
381 Should
382 </summary>
383 <param name="name">Name of the session variable</param>
384 <returns>null if it's not set</returns>
385 <exception cref="T:System.Runtime.Serialization.SerializationException">If the object cant be serialized.</exception>
386 </member>
387 <member name="P:HttpServer.Sessions.IHttpSession.Accessed">
388 <summary>
389 When the session was last accessed.
390 This property is touched by the http server each time the
391 session is requested.
392 </summary>
393 </member>
394 <member name="P:HttpServer.Sessions.IHttpSession.Count">
395 <summary>
396 Number of session variables.
397 </summary>
398 </member>
399 <member name="E:HttpServer.Sessions.IHttpSession.BeforeClear">
400 <summary>
401 Event triggered upon clearing the session
402 </summary>
403 </member>
404 <member name="M:HttpServer.Sessions.MemorySession.#ctor(System.String)">
405 <summary> 182 <summary>
406 183 Received from a <see cref="T:HttpServer.IHttpClientContext"/> when a request have been parsed successfully.
407 </summary> 184 </summary>
408 <param name="id">A unique id used by the sessions store to identify the session</param> 185 <param name="source"><see cref="T:HttpServer.IHttpClientContext"/> that received the request.</param>
186 <param name="args">The request.</param>
409 </member> 187 </member>
410 <member name="M:HttpServer.Sessions.MemorySession.SetId(System.String)"> 188 <member name="M:HttpServer.HttpServer.ProcessRequestWrapper(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
411 <summary> 189 <summary>
412 Id 190 To be able to track request count.
413 </summary> 191 </summary>
414 <param name="id"></param> 192 <param name="context"></param>
193 <param name="request"></param>
415 </member> 194 </member>
416 <member name="M:HttpServer.Sessions.MemorySession.Clear"> 195 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32)">
417 <summary> 196 <summary>
418 Remove everything from the session 197 Start the web server using regular HTTP.
419 </summary> 198 </summary>
199 <param name="address">IP Address to listen on, use <c>IpAddress.Any </c>to accept connections on all IP addresses/network cards.</param>
200 <param name="port">Port to listen on. 80 can be a good idea =)</param>
201 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
202 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
420 </member> 203 </member>
421 <member name="M:HttpServer.Sessions.MemorySession.Clear(System.Boolean)"> 204 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)">
422 <summary> 205 <summary>
423 Clears the specified expire. 206 Accept secure connections.
424 </summary> 207 </summary>
425 <param name="expires">True if the session is cleared due to expiration</param> 208 <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>
209 <param name="port">Port to listen on. 80 can be a good idea =)</param>
210 <param name="certificate">Certificate to use</param>
211 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
212 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
426 </member> 213 </member>
427 <member name="M:HttpServer.Sessions.MemorySession.Dispose"> 214 <member name="M:HttpServer.HttpServer.Stop">
428 <summary> 215 <summary>
429 Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. 216 shut down the server and listeners
430 </summary> 217 </summary>
431 <filterpriority>2</filterpriority>
432 </member> 218 </member>
433 <member name="P:HttpServer.Sessions.MemorySession.Id"> 219 <member name="M:HttpServer.HttpServer.WriteLog(HttpServer.LogPrio,System.String)">
434 <summary> 220 <summary>
435 Session id 221 write an entry to the log file
436 </summary> 222 </summary>
223 <param name="prio">importance of the message</param>
224 <param name="message">log message</param>
437 </member> 225 </member>
438 <member name="P:HttpServer.Sessions.MemorySession.Item(System.String)"> 226 <member name="M:HttpServer.HttpServer.WriteLog(System.Object,HttpServer.LogPrio,System.String)">
439 <summary> 227 <summary>
440 Should 228 write an entry to the log file
441 </summary> 229 </summary>
442 <param name="name">Name of the session variable</param> 230 <param name="source">object that wrote the message</param>
443 <returns>null if it's not set</returns> 231 <param name="prio">importance of the message</param>
232 <param name="message">log message</param>
444 </member> 233 </member>
445 <member name="P:HttpServer.Sessions.MemorySession.Accessed"> 234 <member name="P:HttpServer.HttpServer.Current">
446 <summary> 235 <summary>
447 when the session was last accessed. 236 Server that is handling the current request.
448 </summary> 237 </summary>
449 <remarks> 238 <remarks>
450 Used to determine when the session should be removed. 239 Will be set as soon as a request arrives to the <see cref="T:HttpServer.HttpServer"/> object.
451 </remarks> 240 </remarks>
452 </member> 241 </member>
453 <member name="P:HttpServer.Sessions.MemorySession.Count"> 242 <member name="P:HttpServer.HttpServer.AuthenticationModules">
454 <summary>
455 Number of values in the session
456 </summary>
457 </member>
458 <member name="P:HttpServer.Sessions.MemorySession.Changed">
459 <summary>
460 Flag to indicate that the session have been changed
461 and should be saved into the session store.
462 </summary>
463 </member>
464 <member name="E:HttpServer.Sessions.MemorySession.BeforeClear">
465 <summary>
466 Event triggered upon clearing the session
467 </summary>
468 </member>
469 <member name="T:HttpServer.ResponseCookie">
470 <summary>
471 cookie being sent back to the browser.
472 </summary>
473 <seealso cref="T:HttpServer.ResponseCookie"/>
474 </member>
475 <member name="T:HttpServer.RequestCookie">
476 <summary>
477 cookie sent by the client/browser
478 </summary>
479 <seealso cref="T:HttpServer.ResponseCookie"/>
480 </member>
481 <member name="M:HttpServer.RequestCookie.#ctor(System.String,System.String)">
482 <summary>
483 Constructor.
484 </summary>
485 <param name="id">cookie identifier</param>
486 <param name="content">cookie content</param>
487 <exception cref="T:System.ArgumentNullException">id or content is null</exception>
488 <exception cref="T:System.ArgumentException">id is empty</exception>
489 </member>
490 <member name="M:HttpServer.RequestCookie.ToString">
491 <summary>
492 Gets the cookie HTML representation.
493 </summary>
494 <returns>cookie string</returns>
495 </member>
496 <member name="P:HttpServer.RequestCookie.Name">
497 <summary>
498 Gets the cookie identifier.
499 </summary>
500 </member>
501 <member name="P:HttpServer.RequestCookie.Value">
502 <summary>
503 Cookie value. Set to null to remove cookie.
504 </summary>
505 </member>
506 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime)">
507 <summary>
508 Constructor.
509 </summary>
510 <param name="id">cookie identifier</param>
511 <param name="content">cookie content</param>
512 <param name="expiresAt">cookie expiration date. Use DateTime.MinValue for session cookie.</param>
513 <exception cref="T:System.ArgumentNullException">id or content is null</exception>
514 <exception cref="T:System.ArgumentException">id is empty</exception>
515 </member>
516 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime,System.String,System.String)">
517 <summary>
518 Create a new cookie
519 </summary>
520 <param name="name">name identifying the cookie</param>
521 <param name="value">cookie value</param>
522 <param name="expires">when the cookie expires. Setting DateTime.MinValue will delete the cookie when the session is closed.</param>
523 <param name="path">Path to where the cookie is valid</param>
524 <param name="domain">Domain that the cookie is valid for.</param>
525 </member>
526 <member name="M:HttpServer.ResponseCookie.#ctor(HttpServer.RequestCookie,System.DateTime)">
527 <summary>
528 Create a new cookie
529 </summary>
530 <param name="cookie">Name and value will be used</param>
531 <param name="expires">when the cookie expires.</param>
532 </member>
533 <member name="M:HttpServer.ResponseCookie.ToString">
534 <summary>
535 Gets the cookie HTML representation.
536 </summary>
537 <returns>cookie string</returns>
538 </member>
539 <member name="P:HttpServer.ResponseCookie.Expires">
540 <summary>
541 When the cookie expires.
542 DateTime.MinValue means that the cookie expires when the session do so.
543 </summary>
544 </member>
545 <member name="P:HttpServer.ResponseCookie.Path">
546 <summary>
547 Cookie is only valid under this path.
548 </summary>
549 </member>
550 <member name="T:HttpServer.IHttpClientContext">
551 <summary>
552 Contains a connection to a browser/client.
553 </summary>
554 </member>
555 <member name="M:HttpServer.IHttpClientContext.Disconnect(System.Net.Sockets.SocketError)">
556 <summary>
557 Disconnect from client
558 </summary>
559 <param name="error">error to report in the <see cref="E:HttpServer.IHttpClientContext.Disconnected"/> event.</param>
560 </member>
561 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)">
562 <summary>
563 Send a response.
564 </summary>
565 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
566 <param name="statusCode">HTTP status code</param>
567 <param name="reason">reason for the status code.</param>
568 <param name="body">HTML body contents, can be null or empty.</param>
569 <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>
570 <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception>
571 </member>
572 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)">
573 <summary>
574 Send a response.
575 </summary>
576 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
577 <param name="statusCode">HTTP status code</param>
578 <param name="reason">reason for the status code.</param>
579 </member>
580 <member name="M:HttpServer.IHttpClientContext.Respond(System.String)">
581 <summary>
582 Send a response.
583 </summary>
584 <exception cref="T:System.ArgumentNullException"></exception>
585 </member>
586 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[])">
587 <summary>
588 send a whole buffer
589 </summary>
590 <param name="buffer">buffer to send</param>
591 <exception cref="T:System.ArgumentNullException"></exception>
592 </member>
593 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[],System.Int32,System.Int32)">
594 <summary>
595 Send data using the stream
596 </summary>
597 <param name="buffer">Contains data to send</param>
598 <param name="offset">Start position in buffer</param>
599 <param name="size">number of bytes to send</param>
600 <exception cref="T:System.ArgumentNullException"></exception>
601 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
602 </member>
603 <member name="M:HttpServer.IHttpClientContext.Close">
604 <summary>
605 Closes the streams and disposes of the unmanaged resources
606 </summary>
607 </member>
608 <member name="P:HttpServer.IHttpClientContext.Secured">
609 <summary> 243 <summary>
610 Using SSL or other encryption method. 244 Modules used for authentication. The module that is is added first is used as
245 the default authentication module.
611 </summary> 246 </summary>
247 <remarks>Use the corresponding property
248 in the <see cref="T:HttpServer.HttpModules.WebSiteModule"/> if you are using multiple websites.</remarks>
612 </member> 249 </member>
613 <member name="P:HttpServer.IHttpClientContext.IsSecured"> 250 <member name="P:HttpServer.HttpServer.FormDecoderProviders">
614 <summary> 251 <summary>
615 Using SSL or other encryption method. 252 Form decoder providers are used to decode request body (which normally contains form data).
616 </summary> 253 </summary>
617 </member> 254 </member>
618 <member name="E:HttpServer.IHttpClientContext.Disconnected"> 255 <member name="P:HttpServer.HttpServer.ServerName">
619 <summary> 256 <summary>
620 The context have been disconnected. 257 Server name sent in HTTP responses.
621 </summary> 258 </summary>
622 <remarks> 259 <remarks>
623 Event can be used to clean up a context, or to reuse it. 260 Do NOT include version in name, since it makes it
261 easier for hackers.
624 </remarks> 262 </remarks>
625 </member> 263 </member>
626 <member name="E:HttpServer.IHttpClientContext.RequestReceived"> 264 <member name="P:HttpServer.HttpServer.SessionCookieName">
627 <summary>
628 A request have been received in the context.
629 </summary>
630 </member>
631 <member name="T:HttpServer.DisconnectedEventArgs">
632 <summary>
633 A <see cref="T:HttpServer.IHttpClientContext"/> have been disconnected.
634 </summary>
635 </member>
636 <member name="M:HttpServer.DisconnectedEventArgs.#ctor(System.Net.Sockets.SocketError)">
637 <summary>
638 Initializes a new instance of the <see cref="T:HttpServer.DisconnectedEventArgs"/> class.
639 </summary>
640 <param name="error">Reason to disconnection.</param>
641 </member>
642 <member name="P:HttpServer.DisconnectedEventArgs.Error">
643 <summary>
644 Gets reason to why client disconnected.
645 </summary>
646 </member>
647 <member name="T:HttpServer.RequestEventArgs">
648 <summary>
649
650 </summary>
651 </member>
652 <member name="M:HttpServer.RequestEventArgs.#ctor(HttpServer.IHttpRequest)">
653 <summary>
654 Initializes a new instance of the <see cref="T:HttpServer.RequestEventArgs"/> class.
655 </summary>
656 <param name="request">The request.</param>
657 </member>
658 <member name="P:HttpServer.RequestEventArgs.Request">
659 <summary>
660 Gets received request.
661 </summary>
662 </member>
663 <member name="T:HttpServer.HttpListenerBase">
664 <summary>
665 Contains a listener that doesn't do anything with the connections.
666 </summary>
667 </member>
668 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)">
669 <summary>
670 Listen for regular HTTP connections
671 </summary>
672 <param name="address">IP Address to accept connections on</param>
673 <param name="port">TCP Port to listen on, default HTTP port is 80.</param>
674 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
675 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
676 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
677 </member>
678 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)">
679 <summary>
680 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class.
681 </summary>
682 <param name="address">IP Address to accept connections on</param>
683 <param name="port">TCP Port to listen on, default HTTPS port is 443</param>
684 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
685 <param name="certificate">Certificate to use</param>
686 </member>
687 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
688 <summary>
689 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class.
690 </summary>
691 <param name="address">IP Address to accept connections on</param>
692 <param name="port">TCP Port to listen on, default HTTPS port is 443</param>
693 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
694 <param name="certificate">Certificate to use</param>
695 <param name="protocol">which HTTPS protocol to use, default is TLS.</param>
696 </member>
697 <member name="M:HttpServer.HttpListenerBase.OnAccept(System.IAsyncResult)">
698 <exception cref="T:System.Exception"><c>Exception</c>.</exception>
699 </member>
700 <member name="M:HttpServer.HttpListenerBase.RetryBeginAccept">
701 <summary> 265 <summary>
702 Will try to accept connections one more time. 266 Name of cookie where session id is stored.
703 </summary> 267 </summary>
704 <exception cref="T:System.Exception">If any exceptions is thrown.</exception>
705 </member> 268 </member>
706 <member name="M:HttpServer.HttpListenerBase.OnAcceptingSocket(System.Net.Sockets.Socket)"> 269 <member name="P:HttpServer.HttpServer.LogWriter">
707 <summary> 270 <summary>
708 Can be used to create filtering of new connections. 271 Specified where logging should go.
709 </summary> 272 </summary>
710 <param name="socket">Accepted socket</param> 273 <seealso cref="T:HttpServer.NullLogWriter"/>
711 <returns>true if connection can be accepted; otherwise false.</returns> 274 <seealso cref="T:HttpServer.ConsoleLogWriter"/>
275 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
712 </member> 276 </member>
713 <member name="M:HttpServer.HttpListenerBase.Start(System.Int32)"> 277 <member name="P:HttpServer.HttpServer.BackLog">
714 <summary> 278 <summary>
715 Start listen for new connections 279 Number of connections that can wait to be accepted by the server.
716 </summary> 280 </summary>
717 <param name="backlog">Number of connections that can stand in a queue to be accepted.</param> 281 <remarks>Default is 10.</remarks>
718 <exception cref="T:System.InvalidOperationException">Listener have already been started.</exception>
719 </member> 282 </member>
720 <member name="M:HttpServer.HttpListenerBase.Stop"> 283 <member name="P:HttpServer.HttpServer.MaxRequestCount">
721 <summary> 284 <summary>
722 Stop the listener 285 Gets or sets maximum number of allowed simultaneous requests.
723 </summary> 286 </summary>
724 <exception cref="T:System.Net.Sockets.SocketException"></exception> 287 <remarks>
288 <para>
289 This property is useful in busy systems. The HTTP server
290 will start queuing new requests if this limit is hit, instead
291 of trying to process all incoming requests directly.
292 </para>
293 <para>
294 The default number if allowed simultaneous requests are 10.
295 </para>
296 </remarks>
725 </member> 297 </member>
726 <member name="P:HttpServer.HttpListenerBase.LogWriter"> 298 <member name="P:HttpServer.HttpServer.MaxQueueSize">
727 <summary> 299 <summary>
728 Gives you a change to receive log entries for all internals of the HTTP library. 300 Gets or sets maximum number of requests queuing to be handled.
729 </summary> 301 </summary>
730 <remarks> 302 <remarks>
731 You may not switch log writer after starting the listener. 303 <para>
304 The WebServer will start turning requests away if response code
305 <see cref="F:System.Net.HttpStatusCode.ServiceUnavailable"/> to indicate that the server
306 is too busy to be able to handle the request.
307 </para>
732 </remarks> 308 </remarks>
733 </member> 309 </member>
734 <member name="P:HttpServer.HttpListenerBase.UseTraceLogs"> 310 <member name="E:HttpServer.HttpServer.RealmWanted">
735 <summary> 311 <summary>
736 True if we should turn on trace logs. 312 Realms are used during HTTP authentication.
313 Default realm is same as server name.
737 </summary> 314 </summary>
738 </member> 315 </member>
739 <member name="E:HttpServer.HttpListenerBase.ExceptionThrown"> 316 <member name="E:HttpServer.HttpServer.ExceptionThrown">
740 <summary> 317 <summary>
741 Catch exceptions not handled by the listener. 318 Let's to receive unhandled exceptions from the threads.
742 </summary> 319 </summary>
743 <remarks> 320 <remarks>
744 Exceptions will be thrown during debug mode if this event is not used, 321 Exceptions will be thrown during debug mode if this event is not used,
745 exceptions will be printed to console and suppressed during release mode. 322 exceptions will be printed to console and suppressed during release mode.
746 </remarks> 323 </remarks>
747 </member> 324 </member>
748 <member name="E:HttpServer.HttpListenerBase.RequestReceived"> 325 <member name="T:HttpServer.HttpModules.ResourceFileModule">
749 <summary> 326 <summary>
750 A request have been received from a <see cref="T:HttpServer.IHttpClientContext"/>. 327 Serves files that are stored in embedded resources.
751 </summary> 328 </summary>
752 </member> 329 </member>
753 <member name="T:HttpServer.FormDecoders.MultipartDecoder"> 330 <member name="T:HttpServer.HttpModules.HttpModule">
754 <summary> 331 <summary>
755 332 A HttpModule can be used to serve Uri's. The module itself
333 decides if it should serve a Uri or not. In this way, you can
334 get a very flexible http application since you can let multiple modules
335 serve almost similar urls.
756 </summary> 336 </summary>
757 <remarks> 337 <remarks>
758 http://www.faqs.org/rfcs/rfc1867.html 338 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.
759 </remarks> 339 </remarks>
760 </member> 340 </member>
761 <member name="T:HttpServer.FormDecoders.IFormDecoder"> 341 <member name="M:HttpServer.HttpModules.HttpModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
762 <summary>
763 Interface for form content decoders.
764 </summary>
765 </member>
766 <member name="M:HttpServer.FormDecoders.IFormDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
767 <summary>
768
769 </summary>
770 <param name="stream">Stream containing the content</param>
771 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
772 <param name="encoding">Stream enconding</param>
773 <returns>A http form, or null if content could not be parsed.</returns>
774 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
775 </member>
776 <member name="M:HttpServer.FormDecoders.IFormDecoder.CanParse(System.String)">
777 <summary>
778 Checks if the decoder can handle the mime type
779 </summary>
780 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
781 <returns>True if the decoder can parse the specified content type</returns>
782 </member>
783 <member name="F:HttpServer.FormDecoders.MultipartDecoder.MimeType">
784 <summary>
785 multipart/form-data
786 </summary>
787 </member>
788 <member name="F:HttpServer.FormDecoders.MultipartDecoder.FormData">
789 <summary>
790 form-data
791 </summary>
792 </member>
793 <member name="M:HttpServer.FormDecoders.MultipartDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
794 <summary>
795
796 </summary>
797 <param name="stream">Stream containing the content</param>
798 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
799 <param name="encoding">Stream enconding</param>
800 <returns>A http form, or null if content could not be parsed.</returns>
801 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
802 <exception cref="T:System.ArgumentNullException">If any parameter is null</exception>
803 </member>
804 <member name="M:HttpServer.FormDecoders.MultipartDecoder.CanParse(System.String)">
805 <summary>
806 Checks if the decoder can handle the mime type
807 </summary>
808 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
809 <returns>True if the decoder can parse the specified content type</returns>
810 </member>
811 <member name="T:HttpServer.Exceptions.NotFoundException">
812 <summary>
813 The requested resource was not found in the web server.
814 </summary>
815 </member>
816 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String,System.Exception)">
817 <summary>
818 Create a new exception
819 </summary>
820 <param name="message">message describing the error</param>
821 <param name="inner">inner exception</param>
822 </member>
823 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String)">
824 <summary>
825 Create a new exception
826 </summary>
827 <param name="message">message describing the error</param>
828 </member>
829 <member name="T:HttpServer.Authentication.AuthenticationHandler">
830 <summary> 342 <summary>
831 Delegate used to let authentication modules authenticate the user name and password. 343 Method that process the url
832 </summary> 344 </summary>
833 <param name="realm">Realm that the user want to authenticate in</param> 345 <param name="request">Information sent by the browser about the request</param>
834 <param name="userName">User name specified by client</param> 346 <param name="response">Information that is being sent back to the client.</param>
835 <param name="token">Can either be user password or implementation specific token.</param> 347 <param name="session">Session used to </param>
836 <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> 348 <returns>true if this module handled the request.</returns>
837 <exception cref="T:HttpServer.Exceptions.ForbiddenException">throw forbidden exception if too many attempts have been made.</exception>
838 <remarks>
839 <para>
840 Use <see cref="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1"/> to specify that the token is a HA1 token. (MD5 generated
841 string from realm, user name and password); Md5String(userName + ":" + realm + ":" + password);
842 </para>
843 </remarks>
844 </member> 349 </member>
845 <member name="T:HttpServer.Authentication.AuthenticationRequiredHandler"> 350 <member name="M:HttpServer.HttpModules.HttpModule.SetLogWriter(HttpServer.ILogWriter)">
846 <summary> 351 <summary>
847 Let's you decide on a system level if authentication is required. 352 Set the log writer to use.
848 </summary> 353 </summary>
849 <param name="request">HTTP request from client</param> 354 <param name="writer">logwriter to use.</param>
850 <returns>true if user should be authenticated.</returns>
851 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> if no more attempts are allowed.</remarks>
852 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
853 </member> 355 </member>
854 <member name="T:HttpServer.Authentication.AuthenticationModule"> 356 <member name="M:HttpServer.HttpModules.HttpModule.Write(HttpServer.LogPrio,System.String)">
855 <summary> 357 <summary>
856 Authentication modules are used to implement different 358 Log something.
857 kind of HTTP authentication.
858 </summary> 359 </summary>
360 <param name="prio">importance of log message</param>
361 <param name="message">message</param>
859 </member> 362 </member>
860 <member name="F:HttpServer.Authentication.AuthenticationModule.AuthenticationTag"> 363 <member name="P:HttpServer.HttpModules.HttpModule.AllowSecondaryProcessing">
861 <summary> 364 <summary>
862 Tag used for authentication. 365 If true specifies that the module doesn't consume the processing of a request so that subsequent modules
366 can continue processing afterwards. Default is false.
863 </summary> 367 </summary>
864 </member> 368 </member>
865 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)"> 369 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor">
866 <summary> 370 <summary>
867 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class. 371 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class.
372 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later
373 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired.
868 </summary> 374 </summary>
869 <param name="authenticator">Delegate used to provide information used during authentication.</param>
870 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
871 </member> 375 </member>
872 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler)"> 376 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor(HttpServer.ILogWriter)">
873 <summary> 377 <summary>
874 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class. 378 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class.
379 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later
380 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired.
875 </summary> 381 </summary>
876 <param name="authenticator">Delegate used to provide information used during authentication.</param> 382 <param name="logWriter">The log writer to use when logging events</param>
877 </member> 383 </member>
878 <member name="M:HttpServer.Authentication.AuthenticationModule.CreateResponse(System.String,System.Object[])"> 384 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes">
879 <summary> 385 <summary>
880 Create a response that can be sent in the WWW-Authenticate header. 386 Mimtypes that this class can handle per default
881 </summary> 387 </summary>
882 <param name="realm">Realm that the user should authenticate in</param>
883 <param name="options">Array with optional options.</param>
884 <returns>A correct authentication request.</returns>
885 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
886 </member> 388 </member>
887 <member name="M:HttpServer.Authentication.AuthenticationModule.Authenticate(System.String,System.String,System.String,System.Object[])"> 389 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddResources(System.String,System.Reflection.Assembly,System.String)">
888 <summary> 390 <summary>
889 An authentication response have been received from the web browser. 391 Loads resources from a namespace in the given assembly to an uri
890 Check if it's correct
891 </summary> 392 </summary>
892 <param name="authenticationHeader">Contents from the Authorization header</param> 393 <param name="toUri">The uri to map the resources to</param>
893 <param name="realm">Realm that should be authenticated</param> 394 <param name="fromAssembly">The assembly in which the resources reside</param>
894 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param> 395 <param name="fromNamespace">The namespace from which to load the resources</param>
895 <param name="options">options to specific implementations</param> 396 <usage>
896 <returns>Authentication object that is stored for the request. A user class or something like that.</returns> 397 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
897 <exception cref="T:System.ArgumentException">if <paramref name="authenticationHeader"/> is invalid</exception> 398
898 <exception cref="T:System.ArgumentNullException">If any of the parameters is empty or null.</exception> 399 will make ie the resource MyLib.Models.User.Views.stylesheet.css accessible via /user/stylesheet.css
400 </usage>
401 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns>
899 </member> 402 </member>
900 <member name="M:HttpServer.Authentication.AuthenticationModule.CheckAuthentication(System.String,System.String,System.String@,System.Object@)"> 403 <member name="M:HttpServer.HttpModules.ResourceFileModule.CanHandle(HttpServer.IHttpRequest)">
901 <summary> 404 <summary>
902 Used to invoke the authentication delegate that is used to lookup the user name/realm. 405 Returns true if the module can handle the request
903 </summary> 406 </summary>
904 <param name="realm">Realm (domain) that user want to authenticate in</param>
905 <param name="userName">User name</param>
906 <param name="password">Password used for validation. Some implementations got password in clear text, they are then sent to client.</param>
907 <param name="login">object that will be stored in the request to help you identify the user if authentication was successful.</param>
908 <returns>true if authentication was successful</returns>
909 </member> 407 </member>
910 <member name="M:HttpServer.Authentication.AuthenticationModule.AuthenticationRequired(HttpServer.IHttpRequest)"> 408 <member name="M:HttpServer.HttpModules.ResourceFileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
911 <summary> 409 <summary>
912 Determines if authentication is required. 410 Method that process the url
913 </summary> 411 </summary>
914 <param name="request">HTTP request from browser</param> 412 <param name="request">Information sent by the browser about the request</param>
915 <returns>true if user should be authenticated.</returns> 413 <param name="response">Information that is being sent back to the client.</param>
916 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> from your delegate if no more attempts are allowed.</remarks> 414 <param name="session">Session used to </param>
917 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception> 415 <returns>true if this module handled the request.</returns>
918 </member> 416 </member>
919 <member name="P:HttpServer.Authentication.AuthenticationModule.Name"> 417 <member name="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes">
920 <summary> 418 <summary>
921 name used in HTTP request. 419 List with all mime-type that are allowed.
922 </summary> 420 </summary>
421 <remarks>All other mime types will result in a Forbidden http status code.</remarks>
923 </member> 422 </member>
924 <member name="T:HttpServer.HttpInput"> 423 <member name="T:HttpServer.HttpInput">
925 <summary> 424 <summary>
@@ -1062,444 +561,216 @@
1062 <param name="name"></param> 561 <param name="name"></param>
1063 <returns>Returns <see cref="F:HttpServer.HttpInputItem.Empty"/> if item was not found.</returns> 562 <returns>Returns <see cref="F:HttpServer.HttpInputItem.Empty"/> if item was not found.</returns>
1064 </member> 563 </member>
1065 <member name="T:HttpServer.Check"> 564 <member name="T:HttpServer.Exceptions.ForbiddenException">
1066 <summary>
1067 Small design by contract implementation.
1068 </summary>
1069 </member>
1070 <member name="M:HttpServer.Check.NotEmpty(System.String,System.String)">
1071 <summary>
1072 Check whether a parameter is empty.
1073 </summary>
1074 <param name="value">Parameter value</param>
1075 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
1076 <exception cref="T:System.ArgumentException">value is empty.</exception>
1077 </member>
1078 <member name="M:HttpServer.Check.Require(System.Object,System.String)">
1079 <summary>
1080 Checks whether a parameter is null.
1081 </summary>
1082 <param name="value">Parameter value</param>
1083 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
1084 <exception cref="T:System.ArgumentNullException">value is null.</exception>
1085 </member>
1086 <member name="M:HttpServer.Check.Min(System.Int32,System.Object,System.String)">
1087 <summary>
1088 Checks whether a parameter is null.
1089 </summary>
1090 <param name="minValue"></param>
1091 <param name="value">Parameter value</param>
1092 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
1093 <exception cref="T:System.ArgumentException">value is null.</exception>
1094 </member>
1095 <member name="T:HttpServer.Method">
1096 <summary>
1097 Contains all HTTP Methods (according to the HTTP 1.1 specification)
1098 <para>
1099 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
1100 </para>
1101 </summary>
1102 </member>
1103 <member name="F:HttpServer.Method.Delete">
1104 <summary>
1105 The DELETE method requests that the origin server delete the resource identified by the Request-URI.
1106 </summary>
1107 <remarks>
1108 <para>
1109 This method MAY be overridden by human intervention (or other means) on the origin server.
1110 The client cannot be guaranteed that the operation has been carried out, even if the status code
1111 returned from the origin server indicates that the action has been completed successfully.
1112 </para>
1113 <para>
1114 However, the server SHOULD NOT indicate success unless, at the time the response is given,
1115 it intends to delete the resource or move it to an inaccessible location.
1116 </para>
1117 <para>
1118 A successful response SHOULD be 200 (OK) if the response includes an entity describing the status,
1119 202 (Accepted) if the action has not yet been enacted,
1120 or 204 (No Content) if the action has been enacted but the response does not include an entity.
1121 </para>
1122 <para>
1123 If the request passes through a cache and the Request-URI identifies one or more currently cached entities,
1124 those entries SHOULD be treated as stale. Responses to this method are not cacheable.
1125 </para>
1126 </remarks>
1127 </member>
1128 <member name="F:HttpServer.Method.Get">
1129 <summary>
1130 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.
1131 </summary>
1132 <remarks>
1133 <para>
1134 If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the
1135 entity in the response and not the source text of the process, unless that text happens to be the output of the process.
1136 </para>
1137 <para>
1138 The semantics of the GET method change to a "conditional GET" if the request message includes an
1139 If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field.
1140 A conditional GET method requests that the entity be transferred only under the circumstances described
1141 by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network
1142 usage by allowing cached entities to be refreshed without requiring multiple requests or transferring
1143 data already held by the client.
1144 </para>
1145 </remarks>
1146 </member>
1147 <member name="F:HttpServer.Method.Header">
1148 <summary> 565 <summary>
1149 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. 566 The server understood the request, but is refusing to fulfill it.
1150 </summary> 567 Authorization will not help and the request SHOULD NOT be repeated.
1151 <remarks> 568 If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled,
1152 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the 569 it SHOULD describe the reason for the refusal in the entity. If the server does not wish to make this information
1153 information sent in response to a GET request. This method can be used for obtaining meta information about 570 available to the client, the status code 404 (Not Found) can be used instead.
1154 the entity implied by the request without transferring the entity-body itself.
1155 571
1156 This method is often used for testing hypertext links for validity, accessibility, and recent modification. 572 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
1157 </remarks>
1158 </member>
1159 <member name="F:HttpServer.Method.Options">
1160 <summary>
1161 <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>
1162 </summary> 573 </summary>
1163 <remarks>
1164 <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>
1165 </remarks>
1166 </member> 574 </member>
1167 <member name="F:HttpServer.Method.Post"> 575 <member name="T:HttpServer.Exceptions.HttpException">
1168 <summary> 576 <summary>
1169 The POST method is used to request that the origin server accept the entity enclosed 577 All HTTP based exceptions will derive this class.
1170 in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
1171 </summary> 578 </summary>
1172 <remarks>
1173 POST is designed to allow a uniform method to cover the following functions:
1174 <list type="bullet">
1175 <item>
1176 Annotation of existing resources;
1177 </item><item>
1178 Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
1179 </item><item>
1180 Providing a block of data, such as the result of submitting a form, to a data-handling process;
1181 </item><item>
1182 Extending a database through an append operation.
1183 </item>
1184 </list>
1185 <para>
1186 If a resource has been created on the origin server, the response SHOULD be 201 (Created) and
1187 contain an entity which describes the status of the request and refers to the new resource, and a
1188 Location header (see section 14.30).
1189 </para>
1190 <para>
1191 The action performed by the POST method might not result in a resource that can be identified by a URI.
1192 In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on
1193 whether or not the response includes an entity that describes the result.
1194 </para><para>
1195 Responses to this method are not cacheable, unless the response includes appropriate Cache-Control
1196 or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent
1197 to retrieve a cacheable resource.
1198 </para>
1199 </remarks>
1200 </member> 579 </member>
1201 <member name="F:HttpServer.Method.Put"> 580 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String)">
1202 <summary> 581 <summary>
1203 The PUT method requests that the enclosed entity be stored under the supplied Request-URI. 582 Create a new HttpException
1204 </summary> 583 </summary>
1205 <remarks> 584 <param name="code">http status code (sent in the response)</param>
1206 <list type="bullet"> 585 <param name="message">error description</param>
1207 <item>
1208 If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a
1209 modified version of the one residing on the origin server.
1210 </item><item>
1211 If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new
1212 resource by the requesting user agent, the origin server can create the resource with that URI.
1213 </item><item>
1214 If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
1215 </item><item>
1216 If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to
1217 indicate successful completion of the request.
1218 </item><item>
1219 If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be
1220 given that reflects the nature of the problem.
1221 </item>
1222 </list>
1223 <para>
1224 The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not
1225 understand or implement and MUST return a 501 (Not Implemented) response in such cases.
1226 </para>
1227 </remarks>
1228 </member> 586 </member>
1229 <member name="F:HttpServer.Method.Trace"> 587 <member name="M:HttpServer.Exceptions.HttpException.#ctor(System.Net.HttpStatusCode,System.String,System.Exception)">
1230 <summary> 588 <summary>
1231 The TRACE method is used to invoke a remote, application-layer loop- back of the request message. 589 Create a new HttpException
1232 </summary> 590 </summary>
591 <param name="code">http status code (sent in the response)</param>
592 <param name="message">error description</param>
593 <param name="inner">inner exception</param>
1233 </member> 594 </member>
1234 <member name="T:HttpServer.Methods"> 595 <member name="P:HttpServer.Exceptions.HttpException.HttpStatusCode">
1235 <summary> 596 <summary>
1236 Contains all HTTP Methods (according to the HTTP 1.1 specification) 597 status code to use in the response.
1237 <para>
1238 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
1239 </para>
1240 </summary> 598 </summary>
1241 </member> 599 </member>
1242 <member name="F:HttpServer.Methods.Delete"> 600 <member name="M:HttpServer.Exceptions.ForbiddenException.#ctor(System.String)">
1243 <summary> 601 <summary>
1244 The DELETE method requests that the origin server delete the resource identified by the Request-URI. 602 Initializes a new instance of the <see cref="T:HttpServer.Exceptions.ForbiddenException"/> class.
1245 </summary> 603 </summary>
1246 <remarks> 604 <param name="errorMsg">error message</param>
1247 <para>
1248 This method MAY be overridden by human intervention (or other means) on the origin server.
1249 The client cannot be guaranteed that the operation has been carried out, even if the status code
1250 returned from the origin server indicates that the action has been completed successfully.
1251 </para>
1252 <para>
1253 However, the server SHOULD NOT indicate success unless, at the time the response is given,
1254 it intends to delete the resource or move it to an inaccessible location.
1255 </para>
1256 <para>
1257 A successful response SHOULD be 200 (OK) if the response includes an entity describing the status,
1258 202 (Accepted) if the action has not yet been enacted,
1259 or 204 (No Content) if the action has been enacted but the response does not include an entity.
1260 </para>
1261 <para>
1262 If the request passes through a cache and the Request-URI identifies one or more currently cached entities,
1263 those entries SHOULD be treated as stale. Responses to this method are not cacheable.
1264 </para>
1265 </remarks>
1266 </member> 605 </member>
1267 <member name="F:HttpServer.Methods.Get"> 606 <member name="T:HttpServer.RequestCookies">
1268 <summary> 607 <summary>
1269 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI. 608 This class is created as a wrapper, since there are two different cookie types in .Net (Cookie and HttpCookie).
609 The framework might switch class in the future and we dont want to have to replace all instances
1270 </summary> 610 </summary>
1271 <remarks>
1272 <para>
1273 If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the
1274 entity in the response and not the source text of the process, unless that text happens to be the output of the process.
1275 </para>
1276 <para>
1277 The semantics of the GET method change to a "conditional GET" if the request message includes an
1278 If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field.
1279 A conditional GET method requests that the entity be transferred only under the circumstances described
1280 by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network
1281 usage by allowing cached entities to be refreshed without requiring multiple requests or transferring
1282 data already held by the client.
1283 </para>
1284 </remarks>
1285 </member> 611 </member>
1286 <member name="F:HttpServer.Methods.Header"> 612 <member name="M:HttpServer.RequestCookies.#ctor(System.String)">
1287 <summary> 613 <summary>
1288 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. 614 Let's copy all the cookies.
1289 </summary> 615 </summary>
1290 <remarks> 616 <param name="cookies">value from cookie header.</param>
1291 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
1292 information sent in response to a GET request. This method can be used for obtaining meta information about
1293 the entity implied by the request without transferring the entity-body itself.
1294
1295 This method is often used for testing hypertext links for validity, accessibility, and recent modification.
1296 </remarks>
1297 </member> 617 </member>
1298 <member name="F:HttpServer.Methods.Options"> 618 <member name="M:HttpServer.RequestCookies.Add(HttpServer.RequestCookie)">
1299 <summary> 619 <summary>
1300 <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> 620 Adds a cookie in the collection.
1301 </summary> 621 </summary>
1302 <remarks> 622 <param name="cookie">cookie to add</param>
1303 <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> 623 <exception cref="T:System.ArgumentNullException">cookie is null</exception>
1304 </remarks>
1305 </member> 624 </member>
1306 <member name="F:HttpServer.Methods.Post"> 625 <member name="M:HttpServer.RequestCookies.GetEnumerator">
1307 <summary> 626 <summary>
1308 The POST method is used to request that the origin server accept the entity enclosed 627 Gets a collection enumerator on the cookie list.
1309 in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
1310 </summary> 628 </summary>
1311 <remarks> 629 <returns>collection enumerator</returns>
1312 POST is designed to allow a uniform method to cover the following functions:
1313 <list type="bullet">
1314 <item>
1315 Annotation of existing resources;
1316 </item><item>
1317 Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
1318 </item><item>
1319 Providing a block of data, such as the result of submitting a form, to a data-handling process;
1320 </item><item>
1321 Extending a database through an append operation.
1322 </item>
1323 </list>
1324 <para>
1325 If a resource has been created on the origin server, the response SHOULD be 201 (Created) and
1326 contain an entity which describes the status of the request and refers to the new resource, and a
1327 Location header (see section 14.30).
1328 </para>
1329 <para>
1330 The action performed by the POST method might not result in a resource that can be identified by a URI.
1331 In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on
1332 whether or not the response includes an entity that describes the result.
1333 </para><para>
1334 Responses to this method are not cacheable, unless the response includes appropriate Cache-Control
1335 or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent
1336 to retrieve a cacheable resource.
1337 </para>
1338 </remarks>
1339 </member> 630 </member>
1340 <member name="F:HttpServer.Methods.Put"> 631 <member name="M:HttpServer.RequestCookies.Clear">
1341 <summary> 632 <summary>
1342 The PUT method requests that the enclosed entity be stored under the supplied Request-URI. 633 Remove all cookies.
1343 </summary> 634 </summary>
1344 <remarks>
1345 <list type="bullet">
1346 <item>
1347 If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a
1348 modified version of the one residing on the origin server.
1349 </item><item>
1350 If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new
1351 resource by the requesting user agent, the origin server can create the resource with that URI.
1352 </item><item>
1353 If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
1354 </item><item>
1355 If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to
1356 indicate successful completion of the request.
1357 </item><item>
1358 If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be
1359 given that reflects the nature of the problem.
1360 </item>
1361 </list>
1362 <para>
1363 The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not
1364 understand or implement and MUST return a 501 (Not Implemented) response in such cases.
1365 </para>
1366 </remarks>
1367 </member> 635 </member>
1368 <member name="F:HttpServer.Methods.Trace"> 636 <member name="M:HttpServer.RequestCookies.System#Collections#Generic#IEnumerable{HttpServer#RequestCookie}#GetEnumerator">
1369 <summary> 637 <summary>
1370 The TRACE method is used to invoke a remote, application-layer loop- back of the request message. 638 Returns an enumerator that iterates through the collection.
1371 </summary> 639 </summary>
640
641 <returns>
642 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
643 </returns>
644 <filterpriority>1</filterpriority>
1372 </member> 645 </member>
1373 <member name="T:HttpServer.LogPrio"> 646 <member name="M:HttpServer.RequestCookies.Remove(System.String)">
1374 <summary> 647 <summary>
1375 Priority for log entries 648 Remove a cookie from the collection.
1376 </summary> 649 </summary>
1377 <seealso cref="T:HttpServer.ILogWriter"/> 650 <param name="cookieName">Name of cookie.</param>
1378 </member> 651 </member>
1379 <member name="F:HttpServer.LogPrio.Trace"> 652 <member name="P:HttpServer.RequestCookies.Count">
1380 <summary> 653 <summary>
1381 Very detailed logs to be able to follow the flow of the program. 654 Gets the count of cookies in the collection.
1382 </summary> 655 </summary>
1383 </member> 656 </member>
1384 <member name="F:HttpServer.LogPrio.Debug"> 657 <member name="P:HttpServer.RequestCookies.Item(System.String)">
1385 <summary> 658 <summary>
1386 Logs to help debug errors in the application 659 Gets the cookie of a given identifier (null if not existing).
1387 </summary> 660 </summary>
1388 </member> 661 </member>
1389 <member name="F:HttpServer.LogPrio.Info"> 662 <member name="T:HttpServer.IHttpClientContext">
1390 <summary> 663 <summary>
1391 Information to be able to keep track of state changes etc. 664 Contains a connection to a browser/client.
1392 </summary> 665 </summary>
1393 </member> 666 </member>
1394 <member name="F:HttpServer.LogPrio.Warning"> 667 <member name="M:HttpServer.IHttpClientContext.Disconnect(System.Net.Sockets.SocketError)">
1395 <summary> 668 <summary>
1396 Something did not go as we expected, but it's no problem. 669 Disconnect from client
1397 </summary> 670 </summary>
671 <param name="error">error to report in the <see cref="E:HttpServer.IHttpClientContext.Disconnected"/> event.</param>
1398 </member> 672 </member>
1399 <member name="F:HttpServer.LogPrio.Error"> 673 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)">
1400 <summary> 674 <summary>
1401 Something that should not fail failed, but we can still keep 675 Send a response.
1402 on going.
1403 </summary> 676 </summary>
677 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
678 <param name="statusCode">HTTP status code</param>
679 <param name="reason">reason for the status code.</param>
680 <param name="body">HTML body contents, can be null or empty.</param>
681 <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>
682 <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception>
1404 </member> 683 </member>
1405 <member name="F:HttpServer.LogPrio.Fatal"> 684 <member name="M:HttpServer.IHttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)">
1406 <summary> 685 <summary>
1407 Something failed, and we cannot handle it properly. 686 Send a response.
1408 </summary> 687 </summary>
688 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
689 <param name="statusCode">HTTP status code</param>
690 <param name="reason">reason for the status code.</param>
1409 </member> 691 </member>
1410 <member name="T:HttpServer.ILogWriter"> 692 <member name="M:HttpServer.IHttpClientContext.Respond(System.String)">
1411 <summary> 693 <summary>
1412 Interface used to write to log files. 694 Send a response.
1413 </summary> 695 </summary>
696 <exception cref="T:System.ArgumentNullException"></exception>
1414 </member> 697 </member>
1415 <member name="M:HttpServer.ILogWriter.Write(System.Object,HttpServer.LogPrio,System.String)"> 698 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[])">
1416 <summary> 699 <summary>
1417 Write an entry to the log file. 700 send a whole buffer
1418 </summary> 701 </summary>
1419 <param name="source">object that is writing to the log</param> 702 <param name="buffer">buffer to send</param>
1420 <param name="priority">importance of the log message</param> 703 <exception cref="T:System.ArgumentNullException"></exception>
1421 <param name="message">the message</param>
1422 </member> 704 </member>
1423 <member name="T:HttpServer.ConsoleLogWriter"> 705 <member name="M:HttpServer.IHttpClientContext.Send(System.Byte[],System.Int32,System.Int32)">
1424 <summary> 706 <summary>
1425 This class writes to the console. It colors the output depending on the logprio and includes a 3-level stacktrace (in debug mode) 707 Send data using the stream
1426 </summary> 708 </summary>
1427 <seealso cref="T:HttpServer.ILogWriter"/> 709 <param name="buffer">Contains data to send</param>
710 <param name="offset">Start position in buffer</param>
711 <param name="size">number of bytes to send</param>
712 <exception cref="T:System.ArgumentNullException"></exception>
713 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
1428 </member> 714 </member>
1429 <member name="F:HttpServer.ConsoleLogWriter.Instance"> 715 <member name="M:HttpServer.IHttpClientContext.Close">
1430 <summary> 716 <summary>
1431 The actual instance of this class. 717 Closes the streams and disposes of the unmanaged resources
1432 </summary> 718 </summary>
1433 </member> 719 </member>
1434 <member name="M:HttpServer.ConsoleLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)"> 720 <member name="P:HttpServer.IHttpClientContext.Secured">
1435 <summary> 721 <summary>
1436 Logwriters the specified source. 722 Using SSL or other encryption method.
1437 </summary> 723 </summary>
1438 <param name="source">object that wrote the logentry.</param>
1439 <param name="prio">Importance of the log message</param>
1440 <param name="message">The message.</param>
1441 </member> 724 </member>
1442 <member name="M:HttpServer.ConsoleLogWriter.GetColor(HttpServer.LogPrio)"> 725 <member name="P:HttpServer.IHttpClientContext.IsSecured">
1443 <summary> 726 <summary>
1444 Get color for the specified logprio 727 Using SSL or other encryption method.
1445 </summary> 728 </summary>
1446 <param name="prio">prio for the log entry</param>
1447 <returns>A <see cref="T:System.ConsoleColor"/> for the prio</returns>
1448 </member> 729 </member>
1449 <member name="T:HttpServer.NullLogWriter"> 730 <member name="E:HttpServer.IHttpClientContext.Disconnected">
1450 <summary> 731 <summary>
1451 Default log writer, writes everything to null (nowhere). 732 The context have been disconnected.
1452 </summary> 733 </summary>
1453 <seealso cref="T:HttpServer.ILogWriter"/> 734 <remarks>
735 Event can be used to clean up a context, or to reuse it.
736 </remarks>
1454 </member> 737 </member>
1455 <member name="F:HttpServer.NullLogWriter.Instance"> 738 <member name="E:HttpServer.IHttpClientContext.RequestReceived">
1456 <summary> 739 <summary>
1457 The logging instance. 740 A request have been received in the context.
1458 </summary> 741 </summary>
1459 </member> 742 </member>
1460 <member name="M:HttpServer.NullLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)"> 743 <member name="T:HttpServer.DisconnectedEventArgs">
1461 <summary> 744 <summary>
1462 Writes everything to null 745 A <see cref="T:HttpServer.IHttpClientContext"/> have been disconnected.
1463 </summary> 746 </summary>
1464 <param name="source">object that wrote the log entry.</param>
1465 <param name="prio">Importance of the log message</param>
1466 <param name="message">The message.</param>
1467 </member> 747 </member>
1468 <member name="T:HttpServer.IComponentProvider"> 748 <member name="M:HttpServer.DisconnectedEventArgs.#ctor(System.Net.Sockets.SocketError)">
1469 <summary> 749 <summary>
1470 Inversion of control interface. 750 Initializes a new instance of the <see cref="T:HttpServer.DisconnectedEventArgs"/> class.
1471 </summary> 751 </summary>
752 <param name="error">Reason to disconnection.</param>
1472 </member> 753 </member>
1473 <member name="M:HttpServer.IComponentProvider.AddInstance``1(System.Object)"> 754 <member name="P:HttpServer.DisconnectedEventArgs.Error">
1474 <summary> 755 <summary>
1475 Add a component instance 756 Gets reason to why client disconnected.
1476 </summary> 757 </summary>
1477 <typeparam name="T">Interface type</typeparam>
1478 <param name="instance">Instance to add</param>
1479 </member> 758 </member>
1480 <member name="M:HttpServer.IComponentProvider.Get``1"> 759 <member name="T:HttpServer.RequestEventArgs">
1481 <summary> 760 <summary>
1482 Get a component. 761
1483 </summary> 762 </summary>
1484 <typeparam name="T">Interface type</typeparam>
1485 <returns>Component if registered, otherwise null.</returns>
1486 <remarks>
1487 Component will get created if needed.
1488 </remarks>
1489 </member> 763 </member>
1490 <member name="M:HttpServer.IComponentProvider.Contains(System.Type)"> 764 <member name="M:HttpServer.RequestEventArgs.#ctor(HttpServer.IHttpRequest)">
1491 <summary> 765 <summary>
1492 Checks if the specified component interface have been added. 766 Initializes a new instance of the <see cref="T:HttpServer.RequestEventArgs"/> class.
1493 </summary> 767 </summary>
1494 <param name="interfaceType"></param> 768 <param name="request">The request.</param>
1495 <returns>true if found; otherwise false.</returns>
1496 </member> 769 </member>
1497 <member name="M:HttpServer.IComponentProvider.Add``2"> 770 <member name="P:HttpServer.RequestEventArgs.Request">
1498 <summary> 771 <summary>
1499 Add a component. 772 Gets received request.
1500 </summary> 773 </summary>
1501 <typeparam name="InterfaceType">Type being requested.</typeparam>
1502 <typeparam name="InstanceType">Type being created.</typeparam>
1503 </member> 774 </member>
1504 <member name="T:HttpServer.HttpParam"> 775 <member name="T:HttpServer.HttpParam">
1505 <summary> 776 <summary>
@@ -1555,55 +826,125 @@
1555 <param name="name"></param> 826 <param name="name"></param>
1556 <returns>Item if found; otherwise HttpInputItem.EmptyLanguageNode</returns> 827 <returns>Item if found; otherwise HttpInputItem.EmptyLanguageNode</returns>
1557 </member> 828 </member>
1558 <member name="T:HttpServer.HttpForm"> 829 <member name="T:HttpServer.HttpFile">
1559 <summary>Container for posted form data</summary> 830 <summary>
831 Container class for posted files
832 </summary>
1560 </member> 833 </member>
1561 <member name="F:HttpServer.HttpForm.EmptyForm"> 834 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)">
1562 <summary>Instance to help mark a non-initialized form</summary> 835 <summary>
836 Creates a container for a posted file
837 </summary>
838 <param name="name">The identifier of the post field</param>
839 <param name="filename">The file path</param>
840 <param name="contentType">The content type of the file</param>
841 <param name="uploadFilename">The name of the file uploaded</param>
842 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception>
1563 </member> 843 </member>
1564 <member name="M:HttpServer.HttpForm.#ctor"> 844 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String)">
1565 <summary>Initializes a form container with the specified name</summary> 845 <summary>
846 Creates a container for a posted file <see cref="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)"/>
847 </summary>
848 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception>
1566 </member> 849 </member>
1567 <member name="M:HttpServer.HttpForm.#ctor(HttpServer.HttpInput)"> 850 <member name="M:HttpServer.HttpFile.Finalize">
851 <summary>Destructor disposing the file</summary>
852 </member>
853 <member name="M:HttpServer.HttpFile.Dispose(System.Boolean)">
1568 <summary> 854 <summary>
1569 Makes a deep copy of the input 855 Deletes the temporary file
1570 </summary> 856 </summary>
1571 <param name="input">The input to copy</param> 857 <param name="disposing">True if manual dispose</param>
1572 </member> 858 </member>
1573 <member name="M:HttpServer.HttpForm.AddFile(HttpServer.HttpFile)"> 859 <member name="M:HttpServer.HttpFile.Dispose">
1574 <summary> 860 <summary>
1575 Adds a file to the collection of posted files 861 Disposing interface, cleans up managed resources (the temporary file) and suppresses finalization
1576 </summary> 862 </summary>
1577 <param name="file">The file to add</param>
1578 <exception cref="T:System.ArgumentException">If the file is already added</exception>
1579 <exception cref="T:System.ArgumentNullException">If file is null</exception>
1580 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception>
1581 </member> 863 </member>
1582 <member name="M:HttpServer.HttpForm.ContainsFile(System.String)"> 864 <member name="P:HttpServer.HttpFile.Name">
1583 <summary> 865 <summary>
1584 Checks if the form contains a specified file 866 The name/id of the file
1585 </summary> 867 </summary>
1586 <param name="name">Field name of the file parameter</param>
1587 <returns>True if the file exists</returns>
1588 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception>
1589 </member> 868 </member>
1590 <member name="M:HttpServer.HttpForm.GetFile(System.String)"> 869 <member name="P:HttpServer.HttpFile.Filename">
1591 <summary> 870 <summary>
1592 Retrieves a file held by by the form 871 The full file path
1593 </summary> 872 </summary>
1594 <param name="name">The identifier of the file</param>
1595 <returns>The requested file or null if the file was not found</returns>
1596 <exception cref="T:System.ArgumentNullException">If name is null or empty</exception>
1597 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception>
1598 </member> 873 </member>
1599 <member name="M:HttpServer.HttpForm.Clear"> 874 <member name="P:HttpServer.HttpFile.UploadFilename">
1600 <summary>Disposes all held HttpFile's and resets values</summary> 875 <summary>
876 The name of the uploaded file
877 </summary>
1601 </member> 878 </member>
1602 <member name="P:HttpServer.HttpForm.Files"> 879 <member name="P:HttpServer.HttpFile.ContentType">
1603 <summary> 880 <summary>
1604 Retrieves the number of files added to the <see cref="T:HttpServer.HttpForm"/> 881 The type of file
1605 </summary> 882 </summary>
1606 <returns>0 if no files are added</returns> 883 </member>
884 <member name="T:HttpServer.FormDecoders.XmlDecoder">
885 <summary>
886 This decoder converts XML documents to form items.
887 Each element becomes a subitem in the form, and each attribute becomes an item.
888 </summary>
889 <example>
890 // xml: <hello id="1">something<world id="2">data</world></hello>
891 // result:
892 // form["hello"].Value = "something"
893 // form["hello"]["id"].Value = 1
894 // form["hello"]["world]["id"].Value = 1
895 // form["hello"]["world"].Value = "data"
896 </example>
897 <remarks>
898 The original xml document is stored in form["__xml__"].Value.
899 </remarks>
900 </member>
901 <member name="T:HttpServer.FormDecoders.IFormDecoder">
902 <summary>
903 Interface for form content decoders.
904 </summary>
905 </member>
906 <member name="M:HttpServer.FormDecoders.IFormDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
907 <summary>
908
909 </summary>
910 <param name="stream">Stream containing the content</param>
911 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
912 <param name="encoding">Stream enconding</param>
913 <returns>A http form, or null if content could not be parsed.</returns>
914 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
915 </member>
916 <member name="M:HttpServer.FormDecoders.IFormDecoder.CanParse(System.String)">
917 <summary>
918 Checks if the decoder can handle the mime type
919 </summary>
920 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
921 <returns>True if the decoder can parse the specified content type</returns>
922 </member>
923 <member name="M:HttpServer.FormDecoders.XmlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
924 <summary>
925
926 </summary>
927 <param name="stream">Stream containing the content</param>
928 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
929 <param name="encoding">Stream encoding</param>
930 Note: contentType and encoding are not used?
931 <returns>A http form, or null if content could not be parsed.</returns>
932 <exception cref="T:System.IO.InvalidDataException"></exception>
933 </member>
934 <member name="M:HttpServer.FormDecoders.XmlDecoder.TraverseNode(HttpServer.IHttpInput,System.Xml.XmlNode)">
935 <summary>
936 Recursive function that will go through an xml element and store it's content
937 to the form item.
938 </summary>
939 <param name="item">(parent) Item in form that content should be added to.</param>
940 <param name="node">Node that should be parsed.</param>
941 </member>
942 <member name="M:HttpServer.FormDecoders.XmlDecoder.CanParse(System.String)">
943 <summary>
944 Checks if the decoder can handle the mime type
945 </summary>
946 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
947 <returns>True if the decoder can parse the specified content type</returns>
1607 </member> 948 </member>
1608 <member name="T:HttpServer.Helpers.ObjectForm"> 949 <member name="T:HttpServer.Helpers.ObjectForm">
1609 <summary> 950 <summary>
@@ -1722,405 +1063,397 @@
1722 </summary> 1063 </summary>
1723 <returns>html</returns> 1064 <returns>html</returns>
1724 </member> 1065 </member>
1725 <member name="T:HttpServer.FormDecoders.FormDecoderProvider"> 1066 <member name="T:HttpServer.FormDecoders.MultipartDecoder">
1726 <summary>
1727 This provider is used to let us implement any type of form decoding we want without
1728 having to rewrite anything else in the server.
1729 </summary>
1730 </member>
1731 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Decode(System.String,System.IO.Stream,System.Text.Encoding)">
1732 <summary> 1067 <summary>
1733 1068
1734 </summary> 1069 </summary>
1735 <param name="contentType">Should contain boundary and type, as in: multipart/form-data; boundary=---------------------------230051238959</param> 1070 <remarks>
1736 <param name="stream">Stream containing form data.</param> 1071 http://www.faqs.org/rfcs/rfc1867.html
1737 <param name="encoding">Encoding used when decoding the stream</param> 1072 </remarks>
1738 <returns><see cref="F:HttpServer.HttpInput.Empty"/> if no parser was found.</returns>
1739 <exception cref="T:System.ArgumentException">If stream is null or not readable.</exception>
1740 <exception cref="T:System.IO.InvalidDataException">If stream contents cannot be decoded properly.</exception>
1741 </member> 1073 </member>
1742 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Add(HttpServer.FormDecoders.IFormDecoder)"> 1074 <member name="F:HttpServer.FormDecoders.MultipartDecoder.MimeType">
1743 <summary> 1075 <summary>
1744 Add a decoder. 1076 multipart/form-data
1745 </summary> 1077 </summary>
1746 <param name="decoder"></param>
1747 <exception cref="T:System.ArgumentNullException"></exception>
1748 </member> 1078 </member>
1749 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Count"> 1079 <member name="F:HttpServer.FormDecoders.MultipartDecoder.FormData">
1750 <summary> 1080 <summary>
1751 Number of added decoders. 1081 form-data
1752 </summary> 1082 </summary>
1753 </member> 1083 </member>
1754 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Decoders"> 1084 <member name="M:HttpServer.FormDecoders.MultipartDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
1755 <summary> 1085 <summary>
1756 Use with care. 1086
1757 </summary> 1087 </summary>
1088 <param name="stream">Stream containing the content</param>
1089 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
1090 <param name="encoding">Stream enconding</param>
1091 <returns>A http form, or null if content could not be parsed.</returns>
1092 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
1093 <exception cref="T:System.ArgumentNullException">If any parameter is null</exception>
1758 </member> 1094 </member>
1759 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.DefaultDecoder"> 1095 <member name="M:HttpServer.FormDecoders.MultipartDecoder.CanParse(System.String)">
1760 <summary> 1096 <summary>
1761 Decoder used for unknown content types. 1097 Checks if the decoder can handle the mime type
1762 </summary> 1098 </summary>
1099 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
1100 <returns>True if the decoder can parse the specified content type</returns>
1763 </member> 1101 </member>
1764 <member name="T:HttpServer.ExceptionHandler"> 1102 <member name="T:HttpServer.Exceptions.BadRequestException">
1765 <summary> 1103 <summary>
1766 We dont want to let the server to die due to exceptions thrown in worker threads. 1104 The request could not be understood by the server due to malformed syntax.
1767 therefore we use this delegate to give you a change to handle uncaught exceptions. 1105 The client SHOULD NOT repeat the request without modifications.
1106
1107 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
1768 </summary> 1108 </summary>
1769 <param name="source">Class that the exception was thrown in.</param>
1770 <param name="exception">Exception</param>
1771 <remarks>
1772 Server will throw a InternalServerException in release version if you dont
1773 handle this delegate.
1774 </remarks>
1775 </member> 1109 </member>
1776 <member name="T:HttpServer.HttpClientContext"> 1110 <member name="M:HttpServer.Exceptions.BadRequestException.#ctor(System.String)">
1777 <summary> 1111 <summary>
1778 Contains a connection to a browser/client. 1112 Create a new bad request exception.
1779 </summary> 1113 </summary>
1780 <remarks> 1114 <param name="errMsg">reason to why the request was bad.</param>
1781 Remember to <see cref="M:HttpServer.HttpClientContext.Start"/> after you have hooked the <see cref="E:HttpServer.HttpClientContext.RequestReceived"/> event.
1782 </remarks>
1783 TODO: Maybe this class should be broken up into HttpClientChannel and HttpClientContext?
1784 </member> 1115 </member>
1785 <member name="M:HttpServer.HttpClientContext.#ctor(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,HttpServer.IRequestParserFactory,System.Int32,System.Net.Sockets.Socket)"> 1116 <member name="M:HttpServer.Exceptions.BadRequestException.#ctor(System.String,System.Exception)">
1786 <summary> 1117 <summary>
1787 Initializes a new instance of the <see cref="T:HttpServer.HttpClientContext"/> class. 1118 Create a new bad request exception.
1788 </summary> 1119 </summary>
1789 <param name="secured">true if the connection is secured (SSL/TLS)</param> 1120 <param name="errMsg">reason to why the request was bad.</param>
1790 <param name="remoteEndPoint">client that connected.</param> 1121 <param name="inner">inner exception</param>
1791 <param name="stream">Stream used for communication</param>
1792 <param name="parserFactory">Used to create a <see cref="T:HttpServer.IHttpRequestParser"/>.</param>
1793 <param name="bufferSize">Size of buffer to use when reading data. Must be at least 4096 bytes.</param>
1794 <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>
1795 <exception cref="T:System.ArgumentException">Stream must be writable and readable.</exception>
1796 </member> 1122 </member>
1797 <member name="M:HttpServer.HttpClientContext.OnBodyBytesReceived(System.Object,HttpServer.Parser.BodyEventArgs)"> 1123 <member name="T:HttpServer.ResponseCookies">
1798 <summary> 1124 <summary>
1799 Process incoming body bytes. 1125 Cookies that should be set.
1800 </summary> 1126 </summary>
1801 <param name="sender"><see cref="T:HttpServer.IHttpRequestParser"/></param>
1802 <param name="e">Bytes</param>
1803 </member> 1127 </member>
1804 <member name="M:HttpServer.HttpClientContext.OnHeaderReceived(System.Object,HttpServer.Parser.HeaderEventArgs)"> 1128 <member name="M:HttpServer.ResponseCookies.Add(HttpServer.ResponseCookie)">
1805 <summary> 1129 <summary>
1806 1130 Adds a cookie in the collection.
1807 </summary> 1131 </summary>
1808 <param name="sender"></param> 1132 <param name="cookie">cookie to add</param>
1809 <param name="e"></param> 1133 <exception cref="T:System.ArgumentNullException">cookie is null</exception>
1810 </member> 1134 </member>
1811 <member name="M:HttpServer.HttpClientContext.Start"> 1135 <member name="M:HttpServer.ResponseCookies.Add(HttpServer.RequestCookie,System.DateTime)">
1812 <summary> 1136 <summary>
1813 Start reading content. 1137 Copy a request cookie
1814 </summary> 1138 </summary>
1815 <remarks> 1139 <param name="cookie"></param>
1816 Make sure to call base.Start() if you override this method. 1140 <param name="expires">When the cookie should expire</param>
1817 </remarks>
1818 </member> 1141 </member>
1819 <member name="M:HttpServer.HttpClientContext.Cleanup"> 1142 <member name="M:HttpServer.ResponseCookies.GetEnumerator">
1820 <summary> 1143 <summary>
1821 Clean up context. 1144 Gets a collection enumerator on the cookie list.
1822 </summary> 1145 </summary>
1823 <remarks> 1146 <returns>collection enumerator</returns>
1824 Make sure to call base.Cleanup() if you override the method.
1825 </remarks>
1826 </member> 1147 </member>
1827 <member name="M:HttpServer.HttpClientContext.Disconnect(System.Net.Sockets.SocketError)"> 1148 <member name="M:HttpServer.ResponseCookies.Clear">
1828 <summary> 1149 <summary>
1829 Disconnect from client 1150 Remove all cookies
1830 </summary> 1151 </summary>
1831 <param name="error">error to report in the <see cref="E:HttpServer.HttpClientContext.Disconnected"/> event.</param>
1832 </member> 1152 </member>
1833 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)"> 1153 <member name="M:HttpServer.ResponseCookies.System#Collections#Generic#IEnumerable{HttpServer#ResponseCookie}#GetEnumerator">
1834 <summary> 1154 <summary>
1835 Send a response. 1155 Returns an enumerator that iterates through the collection.
1836 </summary> 1156 </summary>
1837 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param> 1157
1838 <param name="statusCode">HTTP status code</param> 1158 <returns>
1839 <param name="reason">reason for the status code.</param> 1159 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
1840 <param name="body">HTML body contents, can be null or empty.</param> 1160 </returns>
1841 <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> 1161 <filterpriority>1</filterpriority>
1842 <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception>
1843 </member> 1162 </member>
1844 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)"> 1163 <member name="P:HttpServer.ResponseCookies.Count">
1845 <summary> 1164 <summary>
1846 Send a response. 1165 Gets the count of cookies in the collection.
1847 </summary> 1166 </summary>
1848 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
1849 <param name="statusCode">HTTP status code</param>
1850 <param name="reason">reason for the status code.</param>
1851 </member> 1167 </member>
1852 <member name="M:HttpServer.HttpClientContext.Respond(System.String)"> 1168 <member name="P:HttpServer.ResponseCookies.Item(System.String)">
1853 <summary> 1169 <summary>
1854 Send a response. 1170 Gets the cookie of a given identifier (null if not existing).
1855 </summary> 1171 </summary>
1856 <exception cref="T:System.ArgumentNullException"></exception>
1857 </member> 1172 </member>
1858 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[])"> 1173 <member name="T:HttpServer.ResponseCookie">
1859 <summary> 1174 <summary>
1860 send a whole buffer 1175 cookie being sent back to the browser.
1861 </summary> 1176 </summary>
1862 <param name="buffer">buffer to send</param> 1177 <seealso cref="T:HttpServer.ResponseCookie"/>
1863 <exception cref="T:System.ArgumentNullException"></exception>
1864 </member> 1178 </member>
1865 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[],System.Int32,System.Int32)"> 1179 <member name="T:HttpServer.RequestCookie">
1866 <summary> 1180 <summary>
1867 Send data using the stream 1181 cookie sent by the client/browser
1868 </summary> 1182 </summary>
1869 <param name="buffer">Contains data to send</param> 1183 <seealso cref="T:HttpServer.ResponseCookie"/>
1870 <param name="offset">Start position in buffer</param>
1871 <param name="size">number of bytes to send</param>
1872 <exception cref="T:System.ArgumentNullException"></exception>
1873 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
1874 </member> 1184 </member>
1875 <member name="E:HttpServer.HttpClientContext.Cleaned"> 1185 <member name="M:HttpServer.RequestCookie.#ctor(System.String,System.String)">
1876 <summary> 1186 <summary>
1877 This context have been cleaned, which means that it can be reused. 1187 Constructor.
1878 </summary> 1188 </summary>
1189 <param name="id">cookie identifier</param>
1190 <param name="content">cookie content</param>
1191 <exception cref="T:System.ArgumentNullException">id or content is null</exception>
1192 <exception cref="T:System.ArgumentException">id is empty</exception>
1879 </member> 1193 </member>
1880 <member name="E:HttpServer.HttpClientContext.Started"> 1194 <member name="M:HttpServer.RequestCookie.ToString">
1881 <summary> 1195 <summary>
1882 Context have been started (a new client have connected) 1196 Gets the cookie HTML representation.
1883 </summary> 1197 </summary>
1198 <returns>cookie string</returns>
1884 </member> 1199 </member>
1885 <member name="P:HttpServer.HttpClientContext.CurrentRequest"> 1200 <member name="P:HttpServer.RequestCookie.Name">
1886 <summary> 1201 <summary>
1887 Overload to specify own type. 1202 Gets the cookie identifier.
1888 </summary> 1203 </summary>
1889 <remarks>
1890 Must be specified before the context is being used.
1891 </remarks>
1892 </member> 1204 </member>
1893 <member name="P:HttpServer.HttpClientContext.Secured"> 1205 <member name="P:HttpServer.RequestCookie.Value">
1894 <summary> 1206 <summary>
1895 Using SSL or other encryption method. 1207 Cookie value. Set to null to remove cookie.
1896 </summary> 1208 </summary>
1897 </member> 1209 </member>
1898 <member name="P:HttpServer.HttpClientContext.IsSecured"> 1210 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime)">
1899 <summary> 1211 <summary>
1900 Using SSL or other encryption method. 1212 Constructor.
1901 </summary> 1213 </summary>
1214 <param name="id">cookie identifier</param>
1215 <param name="content">cookie content</param>
1216 <param name="expiresAt">cookie expiration date. Use DateTime.MinValue for session cookie.</param>
1217 <exception cref="T:System.ArgumentNullException">id or content is null</exception>
1218 <exception cref="T:System.ArgumentException">id is empty</exception>
1902 </member> 1219 </member>
1903 <member name="P:HttpServer.HttpClientContext.LogWriter"> 1220 <member name="M:HttpServer.ResponseCookie.#ctor(System.String,System.String,System.DateTime,System.String,System.String)">
1904 <summary> 1221 <summary>
1905 Specify which logger to use. 1222 Create a new cookie
1906 </summary> 1223 </summary>
1224 <param name="name">name identifying the cookie</param>
1225 <param name="value">cookie value</param>
1226 <param name="expires">when the cookie expires. Setting DateTime.MinValue will delete the cookie when the session is closed.</param>
1227 <param name="path">Path to where the cookie is valid</param>
1228 <param name="domain">Domain that the cookie is valid for.</param>
1907 </member> 1229 </member>
1908 <member name="P:HttpServer.HttpClientContext.Stream"> 1230 <member name="M:HttpServer.ResponseCookie.#ctor(HttpServer.RequestCookie,System.DateTime)">
1909 <summary> 1231 <summary>
1910 Gets or sets the network stream. 1232 Create a new cookie
1911 </summary> 1233 </summary>
1234 <param name="cookie">Name and value will be used</param>
1235 <param name="expires">when the cookie expires.</param>
1912 </member> 1236 </member>
1913 <member name="P:HttpServer.HttpClientContext.RemoteAddress"> 1237 <member name="M:HttpServer.ResponseCookie.ToString">
1914 <summary> 1238 <summary>
1915 Gets or sets IP address that the client connected from. 1239 Gets the cookie HTML representation.
1916 </summary> 1240 </summary>
1241 <returns>cookie string</returns>
1917 </member> 1242 </member>
1918 <member name="P:HttpServer.HttpClientContext.RemotePort"> 1243 <member name="P:HttpServer.ResponseCookie.Expires">
1919 <summary> 1244 <summary>
1920 Gets or sets port that the client connected from. 1245 When the cookie expires.
1246 DateTime.MinValue means that the cookie expires when the session do so.
1921 </summary> 1247 </summary>
1922 </member> 1248 </member>
1923 <member name="E:HttpServer.HttpClientContext.Disconnected"> 1249 <member name="P:HttpServer.ResponseCookie.Path">
1924 <summary> 1250 <summary>
1925 The context have been disconnected. 1251 Cookie is only valid under this path.
1926 </summary> 1252 </summary>
1927 <remarks>
1928 Event can be used to clean up a context, or to reuse it.
1929 </remarks>
1930 </member> 1253 </member>
1931 <member name="E:HttpServer.HttpClientContext.RequestReceived"> 1254 <member name="T:HttpServer.IComponentProvider">
1932 <summary> 1255 <summary>
1933 A request have been received in the context. 1256 Inversion of control interface.
1934 </summary> 1257 </summary>
1935 </member> 1258 </member>
1936 <member name="T:HttpServer.Helpers.XmlHelper"> 1259 <member name="M:HttpServer.IComponentProvider.AddInstance``1(System.Object)">
1937 <summary> 1260 <summary>
1938 Helpers to make XML handling easier 1261 Add a component instance
1939 </summary> 1262 </summary>
1263 <typeparam name="T">Interface type</typeparam>
1264 <param name="instance">Instance to add</param>
1940 </member> 1265 </member>
1941 <member name="M:HttpServer.Helpers.XmlHelper.Serialize(System.Object)"> 1266 <member name="M:HttpServer.IComponentProvider.Get``1">
1942 <summary> 1267 <summary>
1943 Serializes object to XML. 1268 Get a component.
1944 </summary> 1269 </summary>
1945 <param name="value">object to serialize.</param> 1270 <typeparam name="T">Interface type</typeparam>
1946 <returns>XML</returns> 1271 <returns>Component if registered, otherwise null.</returns>
1947 <remarks> 1272 <remarks>
1948 Removes name spaces and adds indentation 1273 Component will get created if needed.
1949 </remarks> 1274 </remarks>
1950 </member> 1275 </member>
1951 <member name="M:HttpServer.Helpers.XmlHelper.Deserialize``1(System.String)"> 1276 <member name="M:HttpServer.IComponentProvider.Contains(System.Type)">
1952 <summary>
1953 Create an object from a XML string
1954 </summary>
1955 <typeparam name="T">Type of object</typeparam>
1956 <param name="xml">XML string</param>
1957 <returns>object</returns>
1958 </member>
1959 <member name="T:HttpServer.FormDecoders.UrlDecoder">
1960 <summary> 1277 <summary>
1961 Can handle application/x-www-form-urlencoded 1278 Checks if the specified component interface have been added.
1962 </summary> 1279 </summary>
1280 <param name="interfaceType"></param>
1281 <returns>true if found; otherwise false.</returns>
1963 </member> 1282 </member>
1964 <member name="M:HttpServer.FormDecoders.UrlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)"> 1283 <member name="M:HttpServer.IComponentProvider.Add``2">
1965 <summary> 1284 <summary>
1285 Add a component.
1966 </summary> 1286 </summary>
1967 <param name="stream">Stream containing the content</param> 1287 <typeparam name="InterfaceType">Type being requested.</typeparam>
1968 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param> 1288 <typeparam name="InstanceType">Type being created.</typeparam>
1969 <param name="encoding">Stream encoding</param>
1970 <returns>
1971 A HTTP form, or null if content could not be parsed.
1972 </returns>
1973 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
1974 </member> 1289 </member>
1975 <member name="M:HttpServer.FormDecoders.UrlDecoder.CanParse(System.String)"> 1290 <member name="T:HttpServer.HttpListenerBase">
1976 <summary> 1291 <summary>
1977 Checks if the decoder can handle the mime type 1292 Contains a listener that doesn't do anything with the connections.
1978 </summary> 1293 </summary>
1979 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
1980 <returns>True if the decoder can parse the specified content type</returns>
1981 </member> 1294 </member>
1982 <member name="T:HttpServer.ClientAcceptedEventArgs"> 1295 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)">
1983 <summary> 1296 <summary>
1984 Invoked when a client have been accepted by the <see cref="T:HttpServer.HttpListener"/> 1297 Listen for regular HTTP connections
1985 </summary> 1298 </summary>
1986 <remarks> 1299 <param name="address">IP Address to accept connections on</param>
1987 Can be used to revoke incoming connections 1300 <param name="port">TCP Port to listen on, default HTTP port is 80.</param>
1988 </remarks> 1301 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
1302 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
1303 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
1989 </member> 1304 </member>
1990 <member name="M:HttpServer.ClientAcceptedEventArgs.#ctor(System.Net.Sockets.Socket)"> 1305 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)">
1991 <summary> 1306 <summary>
1992 Initializes a new instance of the <see cref="T:HttpServer.ClientAcceptedEventArgs"/> class. 1307 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class.
1993 </summary> 1308 </summary>
1994 <param name="socket">The socket.</param> 1309 <param name="address">IP Address to accept connections on</param>
1310 <param name="port">TCP Port to listen on, default HTTPS port is 443</param>
1311 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
1312 <param name="certificate">Certificate to use</param>
1995 </member> 1313 </member>
1996 <member name="M:HttpServer.ClientAcceptedEventArgs.Revoke"> 1314 <member name="M:HttpServer.HttpListenerBase.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
1997 <summary> 1315 <summary>
1998 Client may not be handled. 1316 Initializes a new instance of the <see cref="T:HttpServer.HttpListenerBase"/> class.
1999 </summary> 1317 </summary>
1318 <param name="address">IP Address to accept connections on</param>
1319 <param name="port">TCP Port to listen on, default HTTPS port is 443</param>
1320 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
1321 <param name="certificate">Certificate to use</param>
1322 <param name="protocol">which HTTPS protocol to use, default is TLS.</param>
2000 </member> 1323 </member>
2001 <member name="P:HttpServer.ClientAcceptedEventArgs.Socket"> 1324 <member name="M:HttpServer.HttpListenerBase.OnAccept(System.IAsyncResult)">
2002 <summary> 1325 <exception cref="T:System.Exception"><c>Exception</c>.</exception>
2003 Accepted socket.
2004 </summary>
2005 </member> 1326 </member>
2006 <member name="P:HttpServer.ClientAcceptedEventArgs.Revoked"> 1327 <member name="M:HttpServer.HttpListenerBase.RetryBeginAccept">
2007 <summary> 1328 <summary>
2008 Client should be revoked. 1329 Will try to accept connections one more time.
2009 </summary> 1330 </summary>
1331 <exception cref="T:System.Exception">If any exceptions is thrown.</exception>
2010 </member> 1332 </member>
2011 <member name="T:HttpServer.Sessions.HttpSessionClearedArgs"> 1333 <member name="M:HttpServer.HttpListenerBase.OnAcceptingSocket(System.Net.Sockets.Socket)">
2012 <summary> 1334 <summary>
2013 Arguments sent when a <see cref="T:HttpServer.Sessions.IHttpSession"/> is cleared 1335 Can be used to create filtering of new connections.
2014 </summary> 1336 </summary>
1337 <param name="socket">Accepted socket</param>
1338 <returns>true if connection can be accepted; otherwise false.</returns>
2015 </member> 1339 </member>
2016 <member name="M:HttpServer.Sessions.HttpSessionClearedArgs.#ctor(System.Boolean)"> 1340 <member name="M:HttpServer.HttpListenerBase.Start(System.Int32)">
2017 <summary> 1341 <summary>
2018 Instantiates the arguments for the event 1342 Start listen for new connections
2019 </summary> 1343 </summary>
2020 <param name="expired">True if the session is cleared due to expiration</param> 1344 <param name="backlog">Number of connections that can stand in a queue to be accepted.</param>
1345 <exception cref="T:System.InvalidOperationException">Listener have already been started.</exception>
2021 </member> 1346 </member>
2022 <member name="P:HttpServer.Sessions.HttpSessionClearedArgs.Expired"> 1347 <member name="M:HttpServer.HttpListenerBase.Stop">
2023 <summary> 1348 <summary>
2024 Returns true if the session is cleared due to expiration 1349 Stop the listener
2025 </summary> 1350 </summary>
1351 <exception cref="T:System.Net.Sockets.SocketException"></exception>
2026 </member> 1352 </member>
2027 <member name="T:HttpServer.Sessions.HttpSessionClearedHandler"> 1353 <member name="P:HttpServer.HttpListenerBase.LogWriter">
2028 <summary> 1354 <summary>
2029 Delegate for when a IHttpSession is cleared 1355 Gives you a change to receive log entries for all internals of the HTTP library.
2030 </summary> 1356 </summary>
2031 <param name="session"><see cref="T:HttpServer.Sessions.IHttpSession"/> this is being cleared.</param> 1357 <remarks>
2032 <param name="args">Arguments for the clearing</param> 1358 You may not switch log writer after starting the listener.
1359 </remarks>
2033 </member> 1360 </member>
2034 <member name="T:HttpServer.Parser.HeaderEventArgs"> 1361 <member name="P:HttpServer.HttpListenerBase.UseTraceLogs">
2035 <summary> 1362 <summary>
2036 Event arguments used when a new header have been parsed. 1363 True if we should turn on trace logs.
2037 </summary> 1364 </summary>
2038 </member> 1365 </member>
2039 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor(System.String,System.String)"> 1366 <member name="E:HttpServer.HttpListenerBase.ExceptionThrown">
2040 <summary> 1367 <summary>
2041 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class. 1368 Catch exceptions not handled by the listener.
2042 </summary> 1369 </summary>
2043 <param name="name">Name of header.</param> 1370 <remarks>
2044 <param name="value">Header value.</param> 1371 Exceptions will be thrown during debug mode if this event is not used,
1372 exceptions will be printed to console and suppressed during release mode.
1373 </remarks>
2045 </member> 1374 </member>
2046 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor"> 1375 <member name="E:HttpServer.HttpListenerBase.RequestReceived">
2047 <summary> 1376 <summary>
2048 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class. 1377 A request have been received from a <see cref="T:HttpServer.IHttpClientContext"/>.
2049 </summary> 1378 </summary>
2050 </member> 1379 </member>
2051 <member name="P:HttpServer.Parser.HeaderEventArgs.Name"> 1380 <member name="T:HttpServer.HttpListener">
2052 <summary> 1381 <summary>
2053 Gets or sets header name. 1382 New implementation of the HTTP listener.
2054 </summary> 1383 </summary>
1384 <remarks>
1385 Use the <c>Create</c> methods to create a default listener.
1386 </remarks>
2055 </member> 1387 </member>
2056 <member name="P:HttpServer.Parser.HeaderEventArgs.Value"> 1388 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)">
2057 <summary> 1389 <summary>
2058 Gets or sets header value. 1390 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class.
2059 </summary> 1391 </summary>
1392 <param name="address">IP Address to accept connections on</param>
1393 <param name="port">TCP Port to listen on, default HTTP port is 80.</param>
1394 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param>
1395 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
1396 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
2060 </member> 1397 </member>
2061 <member name="T:HttpServer.Helpers.ResourceManager"> 1398 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)">
2062 <summary>Class to handle loading of resource files</summary>
2063 </member>
2064 <member name="M:HttpServer.Helpers.ResourceManager.#ctor">
2065 <summary> 1399 <summary>
2066 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class. 1400 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class.
2067 </summary> 1401 </summary>
1402 <param name="address">The address.</param>
1403 <param name="port">The port.</param>
1404 <param name="factory">The factory.</param>
1405 <param name="certificate">The certificate.</param>
2068 </member> 1406 </member>
2069 <member name="M:HttpServer.Helpers.ResourceManager.#ctor(HttpServer.ILogWriter)"> 1407 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
2070 <summary> 1408 <summary>
2071 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class. 1409 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class.
2072 </summary> 1410 </summary>
2073 <param name="writer">logger.</param> 1411 <param name="address">The address.</param>
1412 <param name="port">The port.</param>
1413 <param name="factory">The factory.</param>
1414 <param name="certificate">The certificate.</param>
1415 <param name="protocol">The protocol.</param>
2074 </member> 1416 </member>
2075 <member name="M:HttpServer.Helpers.ResourceManager.LoadResources(System.String,System.Reflection.Assembly,System.String)"> 1417 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32)">
2076 <summary> 1418 <summary>
2077 Loads resources from a namespace in the given assembly to an URI 1419 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories.
2078 </summary> 1420 </summary>
2079 <param name="toUri">The URI to map the resources to</param> 1421 <param name="address">Address that the listener should accept connections on.</param>
2080 <param name="fromAssembly">The assembly in which the resources reside</param> 1422 <param name="port">Port that listener should accept connections on.</param>
2081 <param name="fromNamespace">The namespace from which to load the resources</param> 1423 <returns>Created HTTP listener.</returns>
2082 <usage>
2083 <code>
2084 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
2085 </code>
2086 Will make the resource MyLib.Models.User.Views.list.Haml accessible via /user/list.haml or /user/list/
2087 </usage>
2088 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns>
2089 <exception cref="T:System.InvalidOperationException">If a resource has already been mapped to an uri</exception>
2090 </member> 1424 </member>
2091 <member name="M:HttpServer.Helpers.ResourceManager.GetResourceStream(System.String)"> 1425 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)">
2092 <summary> 1426 <summary>
2093 Retrieves a stream for the specified resource path if loaded otherwise null 1427 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories.
2094 </summary> 1428 </summary>
2095 <param name="path">Path to the resource to retrieve a stream for</param> 1429 <param name="address">Address that the listener should accept connections on.</param>
2096 <returns>A stream or null if the resource couldn't be found</returns> 1430 <param name="port">Port that listener should accept connections on.</param>
1431 <param name="certificate">Certificate to use</param>
1432 <returns>Created HTTP listener.</returns>
2097 </member> 1433 </member>
2098 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String)"> 1434 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)">
2099 <summary> 1435 <summary>
2100 Fetch all files from the resource that matches the specified arguments. 1436 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories.
2101 </summary> 1437 </summary>
2102 <param name="path">The path to the resource to extract</param> 1438 <param name="address">Address that the listener should accept connections on.</param>
2103 <returns> 1439 <param name="port">Port that listener should accept connections on.</param>
2104 a list of files if found; or an empty array if no files are found. 1440 <param name="certificate">Certificate to use</param>
2105 </returns> 1441 <param name="protocol">which HTTPS protocol to use, default is TLS.</param>
2106 <exception cref="T:System.ArgumentException">Search path must end with an asterisk for finding arbitrary files</exception> 1442 <returns>Created HTTP listener.</returns>
2107 </member> 1443 </member>
2108 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String,System.String)"> 1444 <member name="M:HttpServer.HttpListener.OnAcceptingSocket(System.Net.Sockets.Socket)">
2109 <summary> 1445 <summary>
2110 Fetch all files from the resource that matches the specified arguments. 1446 Can be used to create filtering of new connections.
2111 </summary> 1447 </summary>
2112 <param name="path">Where the file should reside.</param> 1448 <param name="socket">Accepted socket</param>
2113 <param name="filename">Files to check</param>
2114 <returns> 1449 <returns>
2115 a list of files if found; or an empty array if no files are found. 1450 true if connection can be accepted; otherwise false.
2116 </returns> 1451 </returns>
2117 </member> 1452 </member>
2118 <member name="M:HttpServer.Helpers.ResourceManager.ContainsResource(System.String)"> 1453 <member name="E:HttpServer.HttpListener.Accepted">
2119 <summary> 1454 <summary>
2120 Returns whether or not the loader has an instance of the file requested 1455 A client have been accepted, but not handled, by the listener.
2121 </summary> 1456 </summary>
2122 <param name="filename">The name of the template/file</param>
2123 <returns>True if the loader can provide the file</returns>
2124 </member> 1457 </member>
2125 <member name="T:HttpServer.Rules.RedirectRule"> 1458 <member name="T:HttpServer.Rules.RedirectRule">
2126 <summary> 1459 <summary>
@@ -2200,50 +1533,6 @@
2200 <c>true</c> means that a redirect response is sent to the client. 1533 <c>true</c> means that a redirect response is sent to the client.
2201 </remarks> 1534 </remarks>
2202 </member> 1535 </member>
2203 <member name="T:HttpServer.RequestQueue">
2204 <summary>
2205 Used to queue incoming requests.
2206 </summary>
2207 </member>
2208 <member name="M:HttpServer.RequestQueue.#ctor(HttpServer.ProcessRequestHandler)">
2209 <summary>
2210 Initializes a new instance of the <see cref="T:HttpServer.RequestQueue"/> class.
2211 </summary>
2212 <param name="handler">Called when a request should be processed.</param>
2213 </member>
2214 <member name="M:HttpServer.RequestQueue.QueueThread">
2215 <summary>
2216 Used to process queued requests.
2217 </summary>
2218 </member>
2219 <member name="P:HttpServer.RequestQueue.MaxRequestCount">
2220 <summary>
2221 Gets or sets maximum number of allowed simultaneous requests.
2222 </summary>
2223 </member>
2224 <member name="P:HttpServer.RequestQueue.MaxQueueSize">
2225 <summary>
2226 Gets or sets maximum number of requests queuing to be handled.
2227 </summary>
2228 </member>
2229 <member name="P:HttpServer.RequestQueue.CurrentRequestCount">
2230 <summary>
2231 Specifies how many requests the HTTP server is currently processing.
2232 </summary>
2233 </member>
2234 <member name="T:HttpServer.RequestQueue.QueueItem">
2235 <summary>
2236 Used two queue incoming requests to avoid
2237 thread starvation.
2238 </summary>
2239 </member>
2240 <member name="T:HttpServer.ProcessRequestHandler">
2241 <summary>
2242 Method used to process a queued request
2243 </summary>
2244 <param name="context">Context that the request was received from.</param>
2245 <param name="request">Request to process.</param>
2246 </member>
2247 <member name="T:HttpServer.Parser.HttpRequestParser"> 1536 <member name="T:HttpServer.Parser.HttpRequestParser">
2248 <summary> 1537 <summary>
2249 Parses a HTTP request directly from a stream 1538 Parses a HTTP request directly from a stream
@@ -2380,516 +1669,408 @@
2380 A header have been received. 1669 A header have been received.
2381 </summary> 1670 </summary>
2382 </member> 1671 </member>
2383 <member name="T:HttpServer.IHttpResponse"> 1672 <member name="T:HttpServer.LocklessQueue`1">
2384 <summary> 1673 <summary>
2385 Response that is sent back to the web browser / client. 1674 A thread-safe lockless queue that supports multiple readers and
2386 1675 multiple writers
2387 A response can be sent if different ways. The easiest one is
2388 to just fill the Body stream with content, everything else
2389 will then be taken care of by the framework. The default content-type
2390 is text/html, you should change it if you send anything else.
2391
2392 The second and slighty more complex way is to send the response
2393 as parts. Start with sending the header using the SendHeaders method and
2394 then you can send the body using SendBody method, but do not forget
2395 to set ContentType and ContentLength before doing so.
2396 </summary>
2397 <example>
2398 public void MyHandler(IHttpRequest request, IHttpResponse response)
2399 {
2400
2401 }
2402 </example>
2403 </member>
2404 <member name="M:HttpServer.IHttpResponse.AddHeader(System.String,System.String)">
2405 <summary>
2406 Add another header to the document.
2407 </summary>
2408 <param name="name">Name of the header, case sensitive, use lower cases.</param>
2409 <param name="value">Header values can span over multiple lines as long as each line starts with a white space. New line chars should be \r\n</param>
2410 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
2411 <exception cref="T:System.ArgumentException">If value conditions have not been met.</exception>
2412 <remarks>Adding any header will override the default ones and those specified by properties.</remarks>
2413 </member>
2414 <member name="M:HttpServer.IHttpResponse.Send">
2415 <summary>
2416 Send headers and body to the browser.
2417 </summary>
2418 <exception cref="T:System.InvalidOperationException">If content have already been sent.</exception>
2419 </member>
2420 <member name="M:HttpServer.IHttpResponse.SendBody(System.Byte[],System.Int32,System.Int32)">
2421 <summary>
2422 Make sure that you have specified ContentLength and sent the headers first.
2423 </summary>
2424 <param name="buffer"></param>
2425 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
2426 <see cref="M:HttpServer.IHttpResponse.SendHeaders"/>
2427 <param name="offset">offest of first byte to send</param>
2428 <param name="count">number of bytes to send.</param>
2429 <seealso cref="M:HttpServer.IHttpResponse.Send"/>
2430 <seealso cref="M:HttpServer.IHttpResponse.SendHeaders"/>
2431 <remarks>This method can be used if you want to send body contents without caching them first. This
2432 is recommended for larger files to keep the memory usage low.</remarks>
2433 </member>
2434 <member name="M:HttpServer.IHttpResponse.SendBody(System.Byte[])">
2435 <summary>
2436 Make sure that you have specified ContentLength and sent the headers first.
2437 </summary> 1676 </summary>
2438 <param name="buffer"></param>
2439 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
2440 <see cref="M:HttpServer.IHttpResponse.SendHeaders"/>
2441 <seealso cref="M:HttpServer.IHttpResponse.Send"/>
2442 <seealso cref="M:HttpServer.IHttpResponse.SendHeaders"/>
2443 <remarks>This method can be used if you want to send body contents without caching them first. This
2444 is recommended for larger files to keep the memory usage low.</remarks>
2445 </member> 1677 </member>
2446 <member name="M:HttpServer.IHttpResponse.SendHeaders"> 1678 <member name="F:HttpServer.LocklessQueue`1.head">
2447 <summary> 1679 <summary>Queue head</summary>
2448 Send headers to the client.
2449 </summary>
2450 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
2451 <seealso cref="M:HttpServer.IHttpResponse.AddHeader(System.String,System.String)"/>
2452 <seealso cref="M:HttpServer.IHttpResponse.Send"/>
2453 <seealso cref="M:HttpServer.IHttpResponse.SendBody(System.Byte[])"/>
2454 </member> 1680 </member>
2455 <member name="M:HttpServer.IHttpResponse.Redirect(System.Uri)"> 1681 <member name="F:HttpServer.LocklessQueue`1.tail">
2456 <summary> 1682 <summary>Queue tail</summary>
2457 Redirect client to somewhere else using the 302 status code.
2458 </summary>
2459 <param name="uri">Destination of the redirect</param>
2460 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
2461 <remarks>You can not do anything more with the request when a redirect have been done. This should be your last
2462 action.</remarks>
2463 </member> 1683 </member>
2464 <member name="M:HttpServer.IHttpResponse.Redirect(System.String)"> 1684 <member name="F:HttpServer.LocklessQueue`1.count">
2465 <summary> 1685 <summary>Queue item count</summary>
2466 redirect to somewhere
2467 </summary>
2468 <param name="url">where the redirect should go</param>
2469 <remarks>
2470 No body are allowed when doing redirects.
2471 </remarks>
2472 </member>
2473 <member name="P:HttpServer.IHttpResponse.Body">
2474 <summary>
2475 The body stream is used to cache the body contents
2476 before sending everything to the client. It's the simplest
2477 way to serve documents.
2478 </summary>
2479 </member> 1686 </member>
2480 <member name="P:HttpServer.IHttpResponse.ProtocolVersion"> 1687 <member name="M:HttpServer.LocklessQueue`1.#ctor">
2481 <summary> 1688 <summary>
2482 Defines the version of the HTTP Response for applications where it's required 1689 Constructor
2483 for this to be forced.
2484 </summary> 1690 </summary>
2485 </member> 1691 </member>
2486 <member name="P:HttpServer.IHttpResponse.Chunked"> 1692 <member name="M:HttpServer.LocklessQueue`1.Enqueue(`0)">
2487 <summary> 1693 <summary>
2488 The chunked encoding modifies the body of a message in order to 1694 Enqueue an item
2489 transfer it as a series of chunks, each with its own size indicator,
2490 followed by an OPTIONAL trailer containing entity-header fields. This
2491 allows dynamically produced content to be transferred along with the
2492 information necessary for the recipient to verify that it has
2493 received the full message.
2494 </summary> 1695 </summary>
1696 <param name="item">Item to enqeue</param>
2495 </member> 1697 </member>
2496 <member name="P:HttpServer.IHttpResponse.Connection"> 1698 <member name="M:HttpServer.LocklessQueue`1.TryDequeue(`0@)">
2497 <summary> 1699 <summary>
2498 Kind of connection 1700 Try to dequeue an item
2499 </summary> 1701 </summary>
1702 <param name="item">Dequeued item if the dequeue was successful</param>
1703 <returns>True if an item was successfully deqeued, otherwise false</returns>
2500 </member> 1704 </member>
2501 <member name="P:HttpServer.IHttpResponse.Encoding"> 1705 <member name="P:HttpServer.LocklessQueue`1.Count">
2502 <summary> 1706 <summary>Gets the current number of items in the queue. Since this
2503 Encoding to use when sending stuff to the client. 1707 is a lockless collection this value should be treated as a close
2504 </summary> 1708 estimate</summary>
2505 <remarks>Default is UTF8</remarks>
2506 </member> 1709 </member>
2507 <member name="P:HttpServer.IHttpResponse.KeepAlive"> 1710 <member name="T:HttpServer.LocklessQueue`1.SingleLinkNode">
2508 <summary> 1711 <summary>
2509 Number of seconds to keep connection alive 1712 Provides a node container for data in a singly linked list
2510 </summary> 1713 </summary>
2511 <remarks>Only used if Connection property is set to ConnectionType.KeepAlive</remarks>
2512 </member> 1714 </member>
2513 <member name="P:HttpServer.IHttpResponse.Status"> 1715 <member name="F:HttpServer.LocklessQueue`1.SingleLinkNode.Next">
2514 <summary> 1716 <summary>Pointer to the next node in list</summary>
2515 Status code that is sent to the client.
2516 </summary>
2517 <remarks>Default is HttpStatusCode.Ok</remarks>
2518 </member> 1717 </member>
2519 <member name="P:HttpServer.IHttpResponse.Reason"> 1718 <member name="F:HttpServer.LocklessQueue`1.SingleLinkNode.Item">
2520 <summary> 1719 <summary>The data contained by the node</summary>
2521 Information about why a specific status code was used.
2522 </summary>
2523 </member> 1720 </member>
2524 <member name="P:HttpServer.IHttpResponse.ContentLength"> 1721 <member name="M:HttpServer.LocklessQueue`1.SingleLinkNode.#ctor">
2525 <summary> 1722 <summary>
2526 Size of the body. MUST be specified before sending the header, 1723 Constructor
2527 unless property Chunked is set to true.
2528 </summary> 1724 </summary>
2529 </member> 1725 </member>
2530 <member name="P:HttpServer.IHttpResponse.ContentType"> 1726 <member name="M:HttpServer.LocklessQueue`1.SingleLinkNode.#ctor(`0)">
2531 <summary> 1727 <summary>
2532 Kind of content in the body 1728 Constructor
2533 </summary> 1729 </summary>
2534 <remarks>Default is text/html</remarks>
2535 </member> 1730 </member>
2536 <member name="P:HttpServer.IHttpResponse.HeadersSent"> 1731 <member name="T:HttpServer.IHttpRequest">
2537 <summary> 1732 <summary>
2538 Headers have been sent to the client- 1733 Contains server side HTTP request information.
2539 </summary> 1734 </summary>
2540 <remarks>You can not send any additional headers if they have already been sent.</remarks>
2541 </member> 1735 </member>
2542 <member name="P:HttpServer.IHttpResponse.Sent"> 1736 <member name="M:HttpServer.IHttpRequest.AddHeader(System.String,System.String)">
2543 <summary> 1737 <summary>
2544 The whole response have been sent. 1738 Called during parsing of a <see cref="T:HttpServer.IHttpRequest"/>.
2545 </summary> 1739 </summary>
1740 <param name="name">Name of the header, should not be URL encoded</param>
1741 <param name="value">Value of the header, should not be URL encoded</param>
1742 <exception cref="T:HttpServer.Exceptions.BadRequestException">If a header is incorrect.</exception>
2546 </member> 1743 </member>
2547 <member name="P:HttpServer.IHttpResponse.Cookies"> 1744 <member name="M:HttpServer.IHttpRequest.AddToBody(System.Byte[],System.Int32,System.Int32)">
2548 <summary> 1745 <summary>
2549 Cookies that should be created/changed. 1746 Add bytes to the body
2550 </summary> 1747 </summary>
1748 <param name="bytes">buffer to read bytes from</param>
1749 <param name="offset">where to start read</param>
1750 <param name="length">number of bytes to read</param>
1751 <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns>
1752 <exception cref="T:System.InvalidOperationException">If body is not writable</exception>
1753 <exception cref="T:System.ArgumentNullException"><c>bytes</c> is null.</exception>
1754 <exception cref="T:System.ArgumentOutOfRangeException"><c>offset</c> is out of range.</exception>
2551 </member> 1755 </member>
2552 <member name="T:HttpServer.ConnectionType"> 1756 <member name="M:HttpServer.IHttpRequest.Clear">
2553 <summary> 1757 <summary>
2554 Type of HTTP connection 1758 Clear everything in the request
2555 </summary> 1759 </summary>
2556 </member> 1760 </member>
2557 <member name="F:HttpServer.ConnectionType.Close"> 1761 <member name="M:HttpServer.IHttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)">
2558 <summary> 1762 <summary>
2559 Connection is closed after each request-response 1763 Decode body into a form.
2560 </summary> 1764 </summary>
1765 <param name="providers">A list with form decoders.</param>
1766 <exception cref="T:System.IO.InvalidDataException">If body contents is not valid for the chosen decoder.</exception>
1767 <exception cref="T:System.InvalidOperationException">If body is still being transferred.</exception>
2561 </member> 1768 </member>
2562 <member name="F:HttpServer.ConnectionType.KeepAlive"> 1769 <member name="M:HttpServer.IHttpRequest.SetCookies(HttpServer.RequestCookies)">
2563 <summary> 1770 <summary>
2564 Connection is kept alive for X seconds (unless another request have been made) 1771 Sets the cookies.
2565 </summary> 1772 </summary>
1773 <param name="cookies">The cookies.</param>
2566 </member> 1774 </member>
2567 <member name="T:HttpServer.HttpResponse"> 1775 <member name="M:HttpServer.IHttpRequest.CreateResponse(HttpServer.IHttpClientContext)">
2568 <summary> 1776 <summary>
2569 Response that is sent back to the web browser / client. 1777 Create a response object.
2570 </summary> 1778 </summary>
2571 <remarks> 1779 <param name="context">Context for the connected client.</param>
2572 <para> 1780 <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns>
2573 A response can be sent if different ways. The easiest one is
2574 to just fill the Body stream with content, everything else
2575 will then be taken care of by the framework. The default content-type
2576 is text/html, you should change it if you send anything else.
2577 </para><para>
2578 The second and slightly more complex way is to send the response
2579 as parts. Start with sending the header using the SendHeaders method and
2580 then you can send the body using SendBody method, but do not forget
2581 to set <see cref="P:HttpServer.HttpResponse.ContentType"/> and <see cref="P:HttpServer.HttpResponse.ContentLength"/> before doing so.
2582 </para>
2583 </remarks>
2584 <example>
2585 <code>
2586 // Example using response body.
2587 class MyModule : HttpModule
2588 {
2589 public override bool Process(IHttpRequest request, IHttpResponse response, IHttpSession session)
2590 {
2591 StreamWriter writer = new StreamWriter(response.Body);
2592 writer.WriteLine("Hello dear World!");
2593 writer.Flush();
2594
2595 // return true to tell webserver that we've handled the url
2596 return true;
2597 }
2598 }
2599 </code>
2600 </example>
2601 todo: add two examples, using SendHeaders/SendBody and just the Body stream.
2602 </member> 1781 </member>
2603 <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)"> 1782 <member name="P:HttpServer.IHttpRequest.AcceptTypes">
2604 <summary> 1783 <summary>
2605 Initializes a new instance of the <see cref="T:HttpServer.IHttpResponse"/> class. 1784 Gets kind of types accepted by the client.
2606 </summary> 1785 </summary>
2607 <param name="context">Client that send the <see cref="T:HttpServer.IHttpRequest"/>.</param>
2608 <param name="request">Contains information of what the client want to receive.</param>
2609 <exception cref="T:System.ArgumentException"><see cref="P:HttpServer.IHttpRequest.HttpVersion"/> cannot be empty.</exception>
2610 </member> 1786 </member>
2611 <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,System.String,HttpServer.ConnectionType)"> 1787 <member name="P:HttpServer.IHttpRequest.Body">
2612 <summary> 1788 <summary>
2613 Initializes a new instance of the <see cref="T:HttpServer.IHttpResponse"/> class. 1789 Gets or sets body stream.
2614 </summary> 1790 </summary>
2615 <param name="context">Client that send the <see cref="T:HttpServer.IHttpRequest"/>.</param>
2616 <param name="httpVersion">Version of HTTP protocol that the client uses.</param>
2617 <param name="connectionType">Type of HTTP connection used.</param>
2618 </member> 1791 </member>
2619 <member name="M:HttpServer.HttpResponse.AddHeader(System.String,System.String)"> 1792 <member name="P:HttpServer.IHttpRequest.BodyIsComplete">
2620 <summary> 1793 <summary>
2621 Add another header to the document. 1794 Gets whether the body is complete.
2622 </summary> 1795 </summary>
2623 <param name="name">Name of the header, case sensitive, use lower cases.</param>
2624 <param name="value">Header values can span over multiple lines as long as each line starts with a white space. New line chars should be \r\n</param>
2625 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
2626 <exception cref="T:System.ArgumentException">If value conditions have not been met.</exception>
2627 <remarks>Adding any header will override the default ones and those specified by properties.</remarks>
2628 </member> 1796 </member>
2629 <member name="M:HttpServer.HttpResponse.Send"> 1797 <member name="P:HttpServer.IHttpRequest.Connection">
2630 <summary> 1798 <summary>
2631 Send headers and body to the browser. 1799 Gets or sets kind of connection used for the session.
2632 </summary> 1800 </summary>
2633 <exception cref="T:System.InvalidOperationException">If content have already been sent.</exception>
2634 </member> 1801 </member>
2635 <member name="M:HttpServer.HttpResponse.SendBody(System.Byte[],System.Int32,System.Int32)"> 1802 <member name="P:HttpServer.IHttpRequest.ContentLength">
2636 <summary> 1803 <summary>
2637 Make sure that you have specified <see cref="P:HttpServer.HttpResponse.ContentLength"/> and sent the headers first. 1804 Gets or sets number of bytes in the body.
2638 </summary> 1805 </summary>
2639 <param name="buffer"></param>
2640 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
2641 <see cref="M:HttpServer.HttpResponse.SendHeaders"/>
2642 <param name="offset">offset of first byte to send</param>
2643 <param name="count">number of bytes to send.</param>
2644 <seealso cref="M:HttpServer.HttpResponse.Send"/>
2645 <seealso cref="M:HttpServer.HttpResponse.SendHeaders"/>
2646 <remarks>This method can be used if you want to send body contents without caching them first. This
2647 is recommended for larger files to keep the memory usage low.</remarks>
2648 </member> 1806 </member>
2649 <member name="M:HttpServer.HttpResponse.SendBody(System.Byte[])"> 1807 <member name="P:HttpServer.IHttpRequest.Cookies">
2650 <summary> 1808 <summary>
2651 Make sure that you have specified <see cref="P:HttpServer.HttpResponse.ContentLength"/> and sent the headers first. 1809 Gets cookies that was sent with the request.
2652 </summary> 1810 </summary>
2653 <param name="buffer"></param>
2654 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
2655 <see cref="M:HttpServer.HttpResponse.SendHeaders"/>
2656 <seealso cref="M:HttpServer.HttpResponse.Send"/>
2657 <seealso cref="M:HttpServer.HttpResponse.SendHeaders"/>
2658 <remarks>This method can be used if you want to send body contents without caching them first. This
2659 is recommended for larger files to keep the memory usage low.</remarks>
2660 </member> 1811 </member>
2661 <member name="M:HttpServer.HttpResponse.SendHeaders"> 1812 <member name="P:HttpServer.IHttpRequest.Form">
2662 <summary> 1813 <summary>
2663 Send headers to the client. 1814 Gets form parameters.
2664 </summary> 1815 </summary>
2665 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
2666 <seealso cref="M:HttpServer.HttpResponse.AddHeader(System.String,System.String)"/>
2667 <seealso cref="M:HttpServer.HttpResponse.Send"/>
2668 <seealso cref="M:HttpServer.HttpResponse.SendBody(System.Byte[])"/>
2669 </member> 1816 </member>
2670 <member name="M:HttpServer.HttpResponse.Redirect(System.Uri)"> 1817 <member name="P:HttpServer.IHttpRequest.Headers">
2671 <summary> 1818 <summary>
2672 Redirect client to somewhere else using the 302 status code. 1819 Gets headers sent by the client.
2673 </summary> 1820 </summary>
2674 <param name="uri">Destination of the redirect</param>
2675 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
2676 <remarks>You can not do anything more with the request when a redirect have been done. This should be your last
2677 action.</remarks>
2678 </member> 1821 </member>
2679 <member name="M:HttpServer.HttpResponse.Redirect(System.String)"> 1822 <member name="P:HttpServer.IHttpRequest.HttpVersion">
2680 <summary> 1823 <summary>
2681 redirect to somewhere 1824 Gets or sets version of HTTP protocol that's used.
2682 </summary> 1825 </summary>
2683 <param name="url">where the redirect should go</param>
2684 <remarks> 1826 <remarks>
2685 No body are allowed when doing redirects. 1827 Probably <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/>.
2686 </remarks> 1828 </remarks>
1829 <seealso cref="T:HttpServer.HttpHelper"/>
2687 </member> 1830 </member>
2688 <member name="P:HttpServer.HttpResponse.Body"> 1831 <member name="P:HttpServer.IHttpRequest.IsAjax">
2689 <summary> 1832 <summary>
2690 The body stream is used to cache the body contents 1833 Gets whether the request was made by Ajax (Asynchronous JavaScript)
2691 before sending everything to the client. It's the simplest
2692 way to serve documents.
2693 </summary> 1834 </summary>
2694 </member> 1835 </member>
2695 <member name="P:HttpServer.HttpResponse.Chunked"> 1836 <member name="P:HttpServer.IHttpRequest.Method">
2696 <summary> 1837 <summary>
2697 The chunked encoding modifies the body of a message in order to 1838 Gets or sets requested method.
2698 transfer it as a series of chunks, each with its own size indicator,
2699 followed by an OPTIONAL trailer containing entity-header fields. This
2700 allows dynamically produced content to be transferred along with the
2701 information necessary for the recipient to verify that it has
2702 received the full message.
2703 </summary> 1839 </summary>
1840 <remarks>
1841 Will always be in upper case.
1842 </remarks>
1843 <see cref="P:HttpServer.IHttpRequest.Method"/>
2704 </member> 1844 </member>
2705 <member name="P:HttpServer.HttpResponse.ProtocolVersion"> 1845 <member name="P:HttpServer.IHttpRequest.Param">
2706 <summary> 1846 <summary>
2707 Defines the version of the HTTP Response for applications where it's required 1847 Gets parameter from <see cref="P:HttpServer.IHttpRequest.QueryString"/> or <see cref="P:HttpServer.IHttpRequest.Form"/>.
2708 for this to be forced.
2709 </summary> 1848 </summary>
2710 </member> 1849 </member>
2711 <member name="P:HttpServer.HttpResponse.Connection"> 1850 <member name="P:HttpServer.IHttpRequest.QueryString">
2712 <summary> 1851 <summary>
2713 Kind of connection 1852 Gets variables sent in the query string
2714 </summary> 1853 </summary>
2715 </member> 1854 </member>
2716 <member name="P:HttpServer.HttpResponse.Encoding"> 1855 <member name="P:HttpServer.IHttpRequest.Uri">
2717 <summary> 1856 <summary>
2718 Encoding to use when sending stuff to the client. 1857 Gets or sets requested URI.
2719 </summary> 1858 </summary>
2720 <remarks>Default is UTF8</remarks>
2721 </member> 1859 </member>
2722 <member name="P:HttpServer.HttpResponse.KeepAlive"> 1860 <member name="P:HttpServer.IHttpRequest.UriParts">
2723 <summary> 1861 <summary>
2724 Number of seconds to keep connection alive 1862 Gets URI absolute path divided into parts.
2725 </summary> 1863 </summary>
2726 <remarks>Only used if Connection property is set to <see cref="F:HttpServer.ConnectionType.KeepAlive"/>.</remarks> 1864 <example>
1865 // URI is: http://gauffin.com/code/tiny/
1866 Console.WriteLine(request.UriParts[0]); // result: code
1867 Console.WriteLine(request.UriParts[1]); // result: tiny
1868 </example>
1869 <remarks>
1870 If you're using controllers than the first part is controller name,
1871 the second part is method name and the third part is Id property.
1872 </remarks>
1873 <seealso cref="P:HttpServer.IHttpRequest.Uri"/>
2727 </member> 1874 </member>
2728 <member name="P:HttpServer.HttpResponse.Status"> 1875 <member name="P:HttpServer.IHttpRequest.UriPath">
2729 <summary> 1876 <summary>
2730 Status code that is sent to the client. 1877 Gets or sets path and query.
2731 </summary> 1878 </summary>
2732 <remarks>Default is <see cref="F:System.Net.HttpStatusCode.OK"/></remarks> 1879 <see cref="P:HttpServer.IHttpRequest.Uri"/>
1880 <remarks>
1881 Are only used during request parsing. Cannot be set after "Host" header have been
1882 added.
1883 </remarks>
2733 </member> 1884 </member>
2734 <member name="P:HttpServer.HttpResponse.Reason"> 1885 <member name="T:HttpServer.Helpers.Implementations.PrototypeImp">
2735 <summary> 1886 <summary>
2736 Information about why a specific status code was used. 1887 PrototypeJS implementation of the javascript functions.
2737 </summary> 1888 </summary>
2738 </member> 1889 </member>
2739 <member name="P:HttpServer.HttpResponse.ContentLength"> 1890 <member name="T:HttpServer.Helpers.JavascriptHelperImplementation">
2740 <summary> 1891 <summary>
2741 Size of the body. MUST be specified before sending the header, 1892 Purpose of this class is to create a javascript toolkit independent javascript helper.
2742 unless property Chunked is set to true.
2743 </summary> 1893 </summary>
2744 </member> 1894 </member>
2745 <member name="P:HttpServer.HttpResponse.ContentType"> 1895 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.GenerateOptions(System.Text.StringBuilder,System.String[],System.Boolean)">
2746 <summary> 1896 <summary>
2747 Kind of content in the body 1897 Generates a list with JS options.
2748 </summary> 1898 </summary>
2749 <remarks>Default type is "text/html"</remarks> 1899 <param name="sb">StringBuilder that the options should be added to.</param>
1900 <param name="options">the javascript options. name, value pairs. each string value should be escaped by YOU!</param>
1901 <param name="startWithComma">true if we should start with a comma.</param>
2750 </member> 1902 </member>
2751 <member name="P:HttpServer.HttpResponse.HeadersSent"> 1903 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.RemoveJavascriptOptions(System.String[])">
2752 <summary> 1904 <summary>
2753 Headers have been sent to the client- 1905 Removes any javascript parameters from an array of parameters
2754 </summary> 1906 </summary>
2755 <remarks>You can not send any additional headers if they have already been sent.</remarks> 1907 <param name="options">The array of parameters to remove javascript params from</param>
1908 <returns>An array of html parameters</returns>
2756 </member> 1909 </member>
2757 <member name="P:HttpServer.HttpResponse.Sent"> 1910 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxFormOnSubmit(System.String[])">
2758 <summary> 1911 <summary>
2759 The whole response have been sent. 1912 javascript action that should be added to the "onsubmit" event in the form tag.
2760 </summary> 1913 </summary>
1914 <returns></returns>
1915 <remarks>All javascript option names should end with colon.</remarks>
1916 <example>
1917 <code>
1918 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
1919 </code>
1920 </example>
2761 </member> 1921 </member>
2762 <member name="P:HttpServer.HttpResponse.Cookies"> 1922 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxRequest(System.String,System.String[])">
2763 <summary> 1923 <summary>
2764 Cookies that should be created/changed. 1924 Requests a url through ajax
2765 </summary> 1925 </summary>
1926 <param name="url">url to fetch</param>
1927 <param name="options">optional options in format "key, value, key, value", used in JS request object.</param>
1928 <returns>a link tag</returns>
1929 <remarks>All javascript option names should end with colon.</remarks>
1930 <example>
1931 <code>
1932 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
1933 </code>
1934 </example>
2766 </member> 1935 </member>
2767 <member name="T:HttpServer.HttpInputItem"> 1936 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxUpdater(System.String,System.String,System.String[])">
2768 <summary> 1937 <summary>
2769 represents a HTTP input item. Each item can have multiple sub items, a sub item 1938 Ajax requests that updates an element with
2770 is made in a HTML form by using square brackets 1939 the fetched content
2771 </summary> 1940 </summary>
1941 <param name="url">Url to fetch content from</param>
1942 <param name="targetId">element to update</param>
1943 <param name="options">optional options in format "key, value, key, value", used in JS updater object.</param>
1944 <returns>A link tag.</returns>
1945 <remarks>All javascript option names should end with colon.</remarks>
2772 <example> 1946 <example>
2773 // <input type="text" name="user[FirstName]" value="jonas" /> becomes: 1947 <code>
2774 Console.WriteLine("Value: {0}", form["user"]["FirstName"].Value); 1948 JSHelper.AjaxUpdater("/user/show/1", "userInfo", "onsuccess:", "alert('Successful!');");
1949 </code>
2775 </example> 1950 </example>
2776 <remarks>
2777 All names in a form SHOULD be in lowercase.
2778 </remarks>
2779 </member>
2780 <member name="F:HttpServer.HttpInputItem.Empty">
2781 <summary> Representation of a non-initialized <see cref="T:HttpServer.HttpInputItem"/>.</summary>
2782 </member> 1951 </member>
2783 <member name="M:HttpServer.HttpInputItem.#ctor(System.String,System.String)"> 1952 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])">
2784 <summary> 1953 <summary>
2785 Initializes an input item setting its name/identifier and value 1954 A link that pop ups a Dialog (overlay div)
2786 </summary> 1955 </summary>
2787 <param name="name">Parameter name/id</param> 1956 <param name="url">url to contents of dialog</param>
2788 <param name="value">Parameter value</param> 1957 <param name="title">link title</param>
2789 </member> 1958 <returns>A "a"-tag that popups a dialog when clicked</returns>
2790 <member name="M:HttpServer.HttpInputItem.#ctor(HttpServer.HttpInputItem)"> 1959 <param name="htmlAttributes">name/value of html attributes</param>
2791 <summary>Creates a deep copy of the item specified</summary> 1960 <example>
2792 <param name="item">The item to copy</param> 1961 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
2793 <remarks>The function makes a deep copy of quite a lot which can be slow</remarks> 1962 </example>
2794 </member> 1963 </member>
2795 <member name="M:HttpServer.HttpInputItem.Add(System.String)"> 1964 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CloseDialog">
2796 <summary> 1965 <summary>
2797 Add another value to this item 1966 Close a javascript dialog window/div.
2798 </summary> 1967 </summary>
2799 <param name="value">Value to add.</param> 1968 <returns>javascript for closing a dialog.</returns>
2800 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception> 1969 <see cref="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])"/>
2801 </member> 1970 </member>
2802 <member name="M:HttpServer.HttpInputItem.Contains(System.String)"> 1971 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CreateDialog(System.String,System.String,System.String[])">
2803 <summary> 1972 <summary>
2804 checks if a sub-item exists (and has a value). 1973 Creates a new modal dialog window
2805 </summary> 1974 </summary>
2806 <param name="name">name in lower case</param> 1975 <param name="url">url to open in window.</param>
2807 <returns>true if the sub-item exists and has a value; otherwise false.</returns> 1976 <param name="title">window title (may not be supported by all js implementations)</param>
2808 </member> 1977 <param name="options"></param>
2809 <member name="M:HttpServer.HttpInputItem.ToString"> 1978 <returns></returns>
2810 <summary> Returns a formatted representation of the instance with the values of all contained parameters </summary>
2811 </member> 1979 </member>
2812 <member name="M:HttpServer.HttpInputItem.ToString(System.String,System.Boolean)"> 1980 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxRequest(System.String,System.String[])">
2813 <summary> 1981 <summary>
2814 Outputs the string in a formatted manner 1982 Requests a url through ajax
2815 </summary> 1983 </summary>
2816 <param name="prefix">A prefix to append, used internally</param> 1984 <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="asQuerySting">produce a query string</param> 1985 <param name="options">optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.</param>
1986 <returns>a link tag</returns>
1987 <remarks>onclick attribute is used by this method.</remarks>
1988 <example>
1989 <code>
1990 // plain text
1991 JSHelper.AjaxRequest("'/user/show/1'");
1992
1993 // ajax request using this.href
1994 string link = "&lt;a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/&lt;call user&lt;/a&gt;";
1995 </code>
1996 </example>
2818 </member> 1997 </member>
2819 <member name="M:HttpServer.HttpInputItem.Add(System.String,System.String)"> 1998 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.Contains(System.Collections.Generic.IEnumerable{System.String},System.String)">
2820 <summary> 1999 <summary>
2821 Add a sub item. 2000 Determins if a list of strings contains a specific value
2822 </summary> 2001 </summary>
2823 <param name="name">Can contain array formatting, the item is then parsed and added in multiple levels</param> 2002 <param name="options">options to check in</param>
2824 <param name="value">Value to add.</param> 2003 <param name="value">value to find</param>
2825 <exception cref="T:System.ArgumentNullException">Argument is null.</exception> 2004 <returns>true if value was found</returns>
2826 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception> 2005 <remarks>case insensitive</remarks>
2827 </member> 2006 </member>
2828 <member name="M:HttpServer.HttpInputItem.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator"> 2007 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxUpdater(System.String,System.String,System.String[])">
2829 <summary> 2008 <summary>
2830 Returns an enumerator that iterates through the collection. 2009 Ajax requests that updates an element with
2010 the fetched content
2831 </summary> 2011 </summary>
2832 2012 <param name="url">URL to fetch. URL is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
2833 <returns> 2013 <param name="targetId">element to update</param>
2834 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection. 2014 <param name="options">options in format "key, value, key, value". All keys should end with colon.</param>
2835 </returns> 2015 <returns>A link tag.</returns>
2836 <filterpriority>1</filterpriority> 2016 <example>
2017 <code>
2018 JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true");
2019 </code>
2020 </example>
2837 </member> 2021 </member>
2838 <member name="M:HttpServer.HttpInputItem.GetEnumerator"> 2022 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.DialogLink(System.String,System.String,System.String[])">
2839 <summary> 2023 <summary>
2840 Returns an enumerator that iterates through a collection. 2024 A link that pop ups a Dialog (overlay div)
2841 </summary> 2025 </summary>
2842 2026 <param name="url">URL to contents of dialog</param>
2027 <param name="title">link title</param>
2028 <param name="htmlAttributes">name, value, name, value</param>
2843 <returns> 2029 <returns>
2844 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection. 2030 A "a"-tag that popups a dialog when clicked
2845 </returns> 2031 </returns>
2846 <filterpriority>2</filterpriority> 2032 <remarks><para>Requires Control.Modal found here: http://livepipe.net/projects/control_modal/</para>
2033 And the following JavaScript (load it in application.js):
2034 <code>
2035 Event.observe(window, 'load',
2036 function() {
2037 document.getElementsByClassName('modal').each(function(link){ new Control.Modal(link); });
2038 }
2039 );
2040 </code>
2041 </remarks>
2042 <example>
2043 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
2044 </example>
2847 </member> 2045 </member>
2848 <member name="M:HttpServer.HttpInputItem.ToString(System.String)"> 2046 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.CreateDialog(System.String,System.String,System.String[])">
2849 <summary> 2047 <summary>
2850 Outputs the string in a formatted manner 2048 create a modal dialog (usually using DIVs)
2851 </summary> 2049 </summary>
2852 <param name="prefix">A prefix to append, used internally</param> 2050 <param name="url">url to fetch</param>
2051 <param name="title">dialog title</param>
2052 <param name="options">javascript/html attributes. javascript options ends with colon ':'.</param>
2853 <returns></returns> 2053 <returns></returns>
2854 </member> 2054 </member>
2855 <member name="P:HttpServer.HttpInputItem.Count"> 2055 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.CloseDialog">
2856 <summary>
2857 Number of values
2858 </summary>
2859 </member>
2860 <member name="P:HttpServer.HttpInputItem.Item(System.String)">
2861 <summary>
2862 Get a sub item
2863 </summary>
2864 <param name="name">name in lower case.</param>
2865 <returns><see cref="F:HttpServer.HttpInputItem.Empty"/> if no item was found.</returns>
2866 </member>
2867 <member name="P:HttpServer.HttpInputItem.Name">
2868 <summary>
2869 Name of item (in lower case).
2870 </summary>
2871 </member>
2872 <member name="P:HttpServer.HttpInputItem.Value">
2873 <summary>
2874 Returns the first value, or null if no value exist.
2875 </summary>
2876 </member>
2877 <member name="P:HttpServer.HttpInputItem.LastValue">
2878 <summary>
2879 Returns the last value, or null if no value exist.
2880 </summary>
2881 </member>
2882 <member name="P:HttpServer.HttpInputItem.Values">
2883 <summary> 2056 <summary>
2884 Returns the list with values. 2057 Close a javascript dialog window/div.
2885 </summary> 2058 </summary>
2059 <returns>javascript for closing a dialog.</returns>
2060 <see cref="M:HttpServer.Helpers.Implementations.PrototypeImp.DialogLink(System.String,System.String,System.String[])"/>
2886 </member> 2061 </member>
2887 <member name="P:HttpServer.HttpInputItem.HttpServer#IHttpInput#Item(System.String)"> 2062 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxFormOnSubmit(System.String[])">
2888 <summary> 2063 <summary>
2889 2064 javascript action that should be added to the "onsubmit" event in the form tag.
2890 </summary> 2065 </summary>
2891 <param name="name">name in lower case</param> 2066 <param name="options">remember to encapsulate strings in ''</param>
2892 <returns></returns> 2067 <returns></returns>
2068 <remarks>All javascript option names should end with colon.</remarks>
2069 <example>
2070 <code>
2071 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
2072 </code>
2073 </example>
2893 </member> 2074 </member>
2894 <member name="T:HttpServer.Helpers.FormHelper"> 2075 <member name="T:HttpServer.Helpers.FormHelper">
2895 <summary> 2076 <summary>
@@ -3109,40 +2290,262 @@
3109 </summary> 2290 </summary>
3110 <returns></returns> 2291 <returns></returns>
3111 </member> 2292 </member>
3112 <member name="M:HttpServer.ComponentProvider.AddInstance``1(System.Object)"> 2293 <member name="T:HttpServer.ExceptionHandler">
3113 <summary> 2294 <summary>
3114 Add a component instance 2295 We dont want to let the server to die due to exceptions thrown in worker threads.
2296 therefore we use this delegate to give you a change to handle uncaught exceptions.
3115 </summary> 2297 </summary>
3116 <typeparam name="T">Interface type</typeparam> 2298 <param name="source">Class that the exception was thrown in.</param>
3117 <param name="instance">Instance to add</param> 2299 <param name="exception">Exception</param>
2300 <remarks>
2301 Server will throw a InternalServerException in release version if you dont
2302 handle this delegate.
2303 </remarks>
3118 </member> 2304 </member>
3119 <member name="M:HttpServer.ComponentProvider.Get``1"> 2305 <member name="T:HttpServer.Authentication.DigestAuthentication">
3120 <summary> 2306 <summary>
3121 Get a component. 2307 Implements HTTP Digest authentication. It's more secure than Basic auth since password is
2308 encrypted with a "key" from the server.
3122 </summary> 2309 </summary>
3123 <typeparam name="T">Interface type</typeparam>
3124 <returns>Component if registered, otherwise null.</returns>
3125 <remarks> 2310 <remarks>
3126 Component will get created if needed. 2311 Keep in mind that the password is encrypted with MD5. Use a combination of SSL and digest auth to be secure.
3127 </remarks> 2312 </remarks>
3128 </member> 2313 </member>
3129 <member name="M:HttpServer.ComponentProvider.Create(HttpServer.ComponentProvider.TypeInformation)"> 2314 <member name="T:HttpServer.Authentication.AuthenticationModule">
3130 <exception cref="T:System.InvalidOperationException">If instance cannot be created.</exception> 2315 <summary>
2316 Authentication modules are used to implement different
2317 kind of HTTP authentication.
2318 </summary>
3131 </member> 2319 </member>
3132 <member name="M:HttpServer.ComponentProvider.Contains(System.Type)"> 2320 <member name="F:HttpServer.Authentication.AuthenticationModule.AuthenticationTag">
3133 <summary> 2321 <summary>
3134 Checks if the specified component interface have been added. 2322 Tag used for authentication.
3135 </summary> 2323 </summary>
3136 <param name="interfaceType"></param>
3137 <returns>true if found; otherwise false.</returns>
3138 </member> 2324 </member>
3139 <member name="M:HttpServer.ComponentProvider.Add``2"> 2325 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
3140 <summary> 2326 <summary>
3141 Add a component. 2327 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class.
3142 </summary> 2328 </summary>
3143 <typeparam name="InterfaceType">Type being requested.</typeparam> 2329 <param name="authenticator">Delegate used to provide information used during authentication.</param>
3144 <typeparam name="InstanceType">Type being created.</typeparam> 2330 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
3145 <exception cref="T:System.InvalidOperationException">Type have already been mapped.</exception> 2331 </member>
2332 <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler)">
2333 <summary>
2334 Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class.
2335 </summary>
2336 <param name="authenticator">Delegate used to provide information used during authentication.</param>
2337 </member>
2338 <member name="M:HttpServer.Authentication.AuthenticationModule.CreateResponse(System.String,System.Object[])">
2339 <summary>
2340 Create a response that can be sent in the WWW-Authenticate header.
2341 </summary>
2342 <param name="realm">Realm that the user should authenticate in</param>
2343 <param name="options">Array with optional options.</param>
2344 <returns>A correct authentication request.</returns>
2345 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
2346 </member>
2347 <member name="M:HttpServer.Authentication.AuthenticationModule.Authenticate(System.String,System.String,System.String,System.Object[])">
2348 <summary>
2349 An authentication response have been received from the web browser.
2350 Check if it's correct
2351 </summary>
2352 <param name="authenticationHeader">Contents from the Authorization header</param>
2353 <param name="realm">Realm that should be authenticated</param>
2354 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
2355 <param name="options">options to specific implementations</param>
2356 <returns>Authentication object that is stored for the request. A user class or something like that.</returns>
2357 <exception cref="T:System.ArgumentException">if <paramref name="authenticationHeader"/> is invalid</exception>
2358 <exception cref="T:System.ArgumentNullException">If any of the parameters is empty or null.</exception>
2359 </member>
2360 <member name="M:HttpServer.Authentication.AuthenticationModule.CheckAuthentication(System.String,System.String,System.String@,System.Object@)">
2361 <summary>
2362 Used to invoke the authentication delegate that is used to lookup the user name/realm.
2363 </summary>
2364 <param name="realm">Realm (domain) that user want to authenticate in</param>
2365 <param name="userName">User name</param>
2366 <param name="password">Password used for validation. Some implementations got password in clear text, they are then sent to client.</param>
2367 <param name="login">object that will be stored in the request to help you identify the user if authentication was successful.</param>
2368 <returns>true if authentication was successful</returns>
2369 </member>
2370 <member name="M:HttpServer.Authentication.AuthenticationModule.AuthenticationRequired(HttpServer.IHttpRequest)">
2371 <summary>
2372 Determines if authentication is required.
2373 </summary>
2374 <param name="request">HTTP request from browser</param>
2375 <returns>true if user should be authenticated.</returns>
2376 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> from your delegate if no more attempts are allowed.</remarks>
2377 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
2378 </member>
2379 <member name="P:HttpServer.Authentication.AuthenticationModule.Name">
2380 <summary>
2381 name used in HTTP request.
2382 </summary>
2383 </member>
2384 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
2385 <summary>
2386 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class.
2387 </summary>
2388 <param name="authenticator">Delegate used to provide information used during authentication.</param>
2389 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
2390 </member>
2391 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)">
2392 <summary>
2393 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class.
2394 </summary>
2395 <param name="authenticator">Delegate used to provide information used during authentication.</param>
2396 </member>
2397 <member name="F:HttpServer.Authentication.DigestAuthentication.DisableNonceCheck">
2398 <summary>
2399 Used by test classes to be able to use hardcoded values
2400 </summary>
2401 </member>
2402 <member name="M:HttpServer.Authentication.DigestAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])">
2403 <summary>
2404 An authentication response have been received from the web browser.
2405 Check if it's correct
2406 </summary>
2407 <param name="authenticationHeader">Contents from the Authorization header</param>
2408 <param name="realm">Realm that should be authenticated</param>
2409 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
2410 <param name="options">First option: true if username/password is correct but not cnonce</param>
2411 <returns>
2412 Authentication object that is stored for the request. A user class or something like that.
2413 </returns>
2414 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception>
2415 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception>
2416 </member>
2417 <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)">
2418 <summary>
2419 Encrypts parameters into a Digest string
2420 </summary>
2421 <param name="realm">Realm that the user want to log into.</param>
2422 <param name="userName">User logging in</param>
2423 <param name="password">Users password.</param>
2424 <param name="method">HTTP method.</param>
2425 <param name="uri">Uri/domain that generated the login prompt.</param>
2426 <param name="qop">Quality of Protection.</param>
2427 <param name="nonce">"Number used ONCE"</param>
2428 <param name="nc">Hexadecimal request counter.</param>
2429 <param name="cnonce">"Client Number used ONCE"</param>
2430 <returns>Digest encrypted string</returns>
2431 </member>
2432 <member name="M:HttpServer.Authentication.DigestAuthentication.Encrypt(System.String,System.String,System.String,System.String,System.String,System.String)">
2433 <summary>
2434
2435 </summary>
2436 <param name="ha1">Md5 hex encoded "userName:realm:password", without the quotes.</param>
2437 <param name="ha2">Md5 hex encoded "method:uri", without the quotes</param>
2438 <param name="qop">Quality of Protection</param>
2439 <param name="nonce">"Number used ONCE"</param>
2440 <param name="nc">Hexadecimal request counter.</param>
2441 <param name="cnonce">Client number used once</param>
2442 <returns></returns>
2443 </member>
2444 <member name="M:HttpServer.Authentication.DigestAuthentication.CreateResponse(System.String,System.Object[])">
2445 <summary>
2446 Create a response that can be sent in the WWW-Authenticate header.
2447 </summary>
2448 <param name="realm">Realm that the user should authenticate in</param>
2449 <param name="options">First options specifies if true if username/password is correct but not cnonce.</param>
2450 <returns>A correct auth request.</returns>
2451 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception>
2452 </member>
2453 <member name="M:HttpServer.Authentication.DigestAuthentication.Decode(System.String,System.Text.Encoding)">
2454 <summary>
2455 Decodes authorization header value
2456 </summary>
2457 <param name="buffer">header value</param>
2458 <param name="encoding">Encoding that the buffer is in</param>
2459 <returns>All headers and their values if successful; otherwise null</returns>
2460 <example>
2461 NameValueCollection header = DigestAuthentication.Decode("response=\"6629fae49393a05397450978507c4ef1\",\r\nc=00001", Encoding.ASCII);
2462 </example>
2463 <remarks>Can handle lots of whitespaces and new lines without failing.</remarks>
2464 </member>
2465 <member name="M:HttpServer.Authentication.DigestAuthentication.GetCurrentNonce">
2466 <summary>
2467 Gets the current nonce.
2468 </summary>
2469 <returns></returns>
2470 </member>
2471 <member name="M:HttpServer.Authentication.DigestAuthentication.GetMD5HashBinHex2(System.String)">
2472 <summary>
2473 Gets the Md5 hash bin hex2.
2474 </summary>
2475 <param name="toBeHashed">To be hashed.</param>
2476 <returns></returns>
2477 </member>
2478 <member name="M:HttpServer.Authentication.DigestAuthentication.IsValidNonce(System.String)">
2479 <summary>
2480 determines if the nonce is valid or has expired.
2481 </summary>
2482 <param name="nonce">nonce value (check wikipedia for info)</param>
2483 <returns>true if the nonce has not expired.</returns>
2484 </member>
2485 <member name="P:HttpServer.Authentication.DigestAuthentication.Name">
2486 <summary>
2487 name used in http request.
2488 </summary>
2489 </member>
2490 <member name="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1">
2491 <summary>
2492 Gets or sets whether the token supplied in <see cref="T:HttpServer.Authentication.AuthenticationHandler"/> is a
2493 HA1 generated string.
2494 </summary>
2495 </member>
2496 <member name="T:HttpServer.HttpHelper">
2497 <summary>
2498 Generic helper functions for HTTP
2499 </summary>
2500 </member>
2501 <member name="F:HttpServer.HttpHelper.HTTP10">
2502 <summary>
2503 Version string for HTTP v1.0
2504 </summary>
2505 </member>
2506 <member name="F:HttpServer.HttpHelper.HTTP11">
2507 <summary>
2508 Version string for HTTP v1.1
2509 </summary>
2510 </member>
2511 <member name="F:HttpServer.HttpHelper.EmptyUri">
2512 <summary>
2513 An empty URI
2514 </summary>
2515 </member>
2516 <member name="M:HttpServer.HttpHelper.ParseQueryString(System.String)">
2517 <summary>
2518 Parses a query string.
2519 </summary>
2520 <param name="queryString">Query string (URI encoded)</param>
2521 <returns>A <see cref="T:HttpServer.HttpInput"/> object if successful; otherwise <see cref="F:HttpServer.HttpInput.Empty"/></returns>
2522 <exception cref="T:System.ArgumentNullException"><c>queryString</c> is null.</exception>
2523 <exception cref="T:System.FormatException">If string cannot be parsed.</exception>
2524 </member>
2525 <member name="T:HttpServer.Authentication.AuthenticationHandler">
2526 <summary>
2527 Delegate used to let authentication modules authenticate the user name and password.
2528 </summary>
2529 <param name="realm">Realm that the user want to authenticate in</param>
2530 <param name="userName">User name specified by client</param>
2531 <param name="token">Can either be user password or implementation specific token.</param>
2532 <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>
2533 <exception cref="T:HttpServer.Exceptions.ForbiddenException">throw forbidden exception if too many attempts have been made.</exception>
2534 <remarks>
2535 <para>
2536 Use <see cref="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1"/> to specify that the token is a HA1 token. (MD5 generated
2537 string from realm, user name and password); Md5String(userName + ":" + realm + ":" + password);
2538 </para>
2539 </remarks>
2540 </member>
2541 <member name="T:HttpServer.Authentication.AuthenticationRequiredHandler">
2542 <summary>
2543 Let's you decide on a system level if authentication is required.
2544 </summary>
2545 <param name="request">HTTP request from client</param>
2546 <returns>true if user should be authenticated.</returns>
2547 <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> if no more attempts are allowed.</remarks>
2548 <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
3146 </member> 2549 </member>
3147 <member name="T:HttpServer.Parser.BodyEventArgs"> 2550 <member name="T:HttpServer.Parser.BodyEventArgs">
3148 <summary> 2551 <summary>
@@ -3177,6 +2580,284 @@
3177 Gets or sets offset in buffer where to start processing. 2580 Gets or sets offset in buffer where to start processing.
3178 </summary> 2581 </summary>
3179 </member> 2582 </member>
2583 <member name="T:HttpServer.Method">
2584 <summary>
2585 Contains all HTTP Methods (according to the HTTP 1.1 specification)
2586 <para>
2587 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
2588 </para>
2589 </summary>
2590 </member>
2591 <member name="F:HttpServer.Method.Delete">
2592 <summary>
2593 The DELETE method requests that the origin server delete the resource identified by the Request-URI.
2594 </summary>
2595 <remarks>
2596 <para>
2597 This method MAY be overridden by human intervention (or other means) on the origin server.
2598 The client cannot be guaranteed that the operation has been carried out, even if the status code
2599 returned from the origin server indicates that the action has been completed successfully.
2600 </para>
2601 <para>
2602 However, the server SHOULD NOT indicate success unless, at the time the response is given,
2603 it intends to delete the resource or move it to an inaccessible location.
2604 </para>
2605 <para>
2606 A successful response SHOULD be 200 (OK) if the response includes an entity describing the status,
2607 202 (Accepted) if the action has not yet been enacted,
2608 or 204 (No Content) if the action has been enacted but the response does not include an entity.
2609 </para>
2610 <para>
2611 If the request passes through a cache and the Request-URI identifies one or more currently cached entities,
2612 those entries SHOULD be treated as stale. Responses to this method are not cacheable.
2613 </para>
2614 </remarks>
2615 </member>
2616 <member name="F:HttpServer.Method.Get">
2617 <summary>
2618 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.
2619 </summary>
2620 <remarks>
2621 <para>
2622 If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the
2623 entity in the response and not the source text of the process, unless that text happens to be the output of the process.
2624 </para>
2625 <para>
2626 The semantics of the GET method change to a "conditional GET" if the request message includes an
2627 If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field.
2628 A conditional GET method requests that the entity be transferred only under the circumstances described
2629 by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network
2630 usage by allowing cached entities to be refreshed without requiring multiple requests or transferring
2631 data already held by the client.
2632 </para>
2633 </remarks>
2634 </member>
2635 <member name="F:HttpServer.Method.Header">
2636 <summary>
2637 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.
2638 </summary>
2639 <remarks>
2640 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
2641 information sent in response to a GET request. This method can be used for obtaining meta information about
2642 the entity implied by the request without transferring the entity-body itself.
2643
2644 This method is often used for testing hypertext links for validity, accessibility, and recent modification.
2645 </remarks>
2646 </member>
2647 <member name="F:HttpServer.Method.Options">
2648 <summary>
2649 <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>
2650 </summary>
2651 <remarks>
2652 <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>
2653 </remarks>
2654 </member>
2655 <member name="F:HttpServer.Method.Post">
2656 <summary>
2657 The POST method is used to request that the origin server accept the entity enclosed
2658 in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
2659 </summary>
2660 <remarks>
2661 POST is designed to allow a uniform method to cover the following functions:
2662 <list type="bullet">
2663 <item>
2664 Annotation of existing resources;
2665 </item><item>
2666 Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
2667 </item><item>
2668 Providing a block of data, such as the result of submitting a form, to a data-handling process;
2669 </item><item>
2670 Extending a database through an append operation.
2671 </item>
2672 </list>
2673 <para>
2674 If a resource has been created on the origin server, the response SHOULD be 201 (Created) and
2675 contain an entity which describes the status of the request and refers to the new resource, and a
2676 Location header (see section 14.30).
2677 </para>
2678 <para>
2679 The action performed by the POST method might not result in a resource that can be identified by a URI.
2680 In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on
2681 whether or not the response includes an entity that describes the result.
2682 </para><para>
2683 Responses to this method are not cacheable, unless the response includes appropriate Cache-Control
2684 or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent
2685 to retrieve a cacheable resource.
2686 </para>
2687 </remarks>
2688 </member>
2689 <member name="F:HttpServer.Method.Put">
2690 <summary>
2691 The PUT method requests that the enclosed entity be stored under the supplied Request-URI.
2692 </summary>
2693 <remarks>
2694 <list type="bullet">
2695 <item>
2696 If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a
2697 modified version of the one residing on the origin server.
2698 </item><item>
2699 If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new
2700 resource by the requesting user agent, the origin server can create the resource with that URI.
2701 </item><item>
2702 If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
2703 </item><item>
2704 If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to
2705 indicate successful completion of the request.
2706 </item><item>
2707 If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be
2708 given that reflects the nature of the problem.
2709 </item>
2710 </list>
2711 <para>
2712 The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not
2713 understand or implement and MUST return a 501 (Not Implemented) response in such cases.
2714 </para>
2715 </remarks>
2716 </member>
2717 <member name="F:HttpServer.Method.Trace">
2718 <summary>
2719 The TRACE method is used to invoke a remote, application-layer loop- back of the request message.
2720 </summary>
2721 </member>
2722 <member name="T:HttpServer.Methods">
2723 <summary>
2724 Contains all HTTP Methods (according to the HTTP 1.1 specification)
2725 <para>
2726 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
2727 </para>
2728 </summary>
2729 </member>
2730 <member name="F:HttpServer.Methods.Delete">
2731 <summary>
2732 The DELETE method requests that the origin server delete the resource identified by the Request-URI.
2733 </summary>
2734 <remarks>
2735 <para>
2736 This method MAY be overridden by human intervention (or other means) on the origin server.
2737 The client cannot be guaranteed that the operation has been carried out, even if the status code
2738 returned from the origin server indicates that the action has been completed successfully.
2739 </para>
2740 <para>
2741 However, the server SHOULD NOT indicate success unless, at the time the response is given,
2742 it intends to delete the resource or move it to an inaccessible location.
2743 </para>
2744 <para>
2745 A successful response SHOULD be 200 (OK) if the response includes an entity describing the status,
2746 202 (Accepted) if the action has not yet been enacted,
2747 or 204 (No Content) if the action has been enacted but the response does not include an entity.
2748 </para>
2749 <para>
2750 If the request passes through a cache and the Request-URI identifies one or more currently cached entities,
2751 those entries SHOULD be treated as stale. Responses to this method are not cacheable.
2752 </para>
2753 </remarks>
2754 </member>
2755 <member name="F:HttpServer.Methods.Get">
2756 <summary>
2757 The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.
2758 </summary>
2759 <remarks>
2760 <para>
2761 If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the
2762 entity in the response and not the source text of the process, unless that text happens to be the output of the process.
2763 </para>
2764 <para>
2765 The semantics of the GET method change to a "conditional GET" if the request message includes an
2766 If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field.
2767 A conditional GET method requests that the entity be transferred only under the circumstances described
2768 by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network
2769 usage by allowing cached entities to be refreshed without requiring multiple requests or transferring
2770 data already held by the client.
2771 </para>
2772 </remarks>
2773 </member>
2774 <member name="F:HttpServer.Methods.Header">
2775 <summary>
2776 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.
2777 </summary>
2778 <remarks>
2779 The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
2780 information sent in response to a GET request. This method can be used for obtaining meta information about
2781 the entity implied by the request without transferring the entity-body itself.
2782
2783 This method is often used for testing hypertext links for validity, accessibility, and recent modification.
2784 </remarks>
2785 </member>
2786 <member name="F:HttpServer.Methods.Options">
2787 <summary>
2788 <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>
2789 </summary>
2790 <remarks>
2791 <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>
2792 </remarks>
2793 </member>
2794 <member name="F:HttpServer.Methods.Post">
2795 <summary>
2796 The POST method is used to request that the origin server accept the entity enclosed
2797 in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
2798 </summary>
2799 <remarks>
2800 POST is designed to allow a uniform method to cover the following functions:
2801 <list type="bullet">
2802 <item>
2803 Annotation of existing resources;
2804 </item><item>
2805 Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
2806 </item><item>
2807 Providing a block of data, such as the result of submitting a form, to a data-handling process;
2808 </item><item>
2809 Extending a database through an append operation.
2810 </item>
2811 </list>
2812 <para>
2813 If a resource has been created on the origin server, the response SHOULD be 201 (Created) and
2814 contain an entity which describes the status of the request and refers to the new resource, and a
2815 Location header (see section 14.30).
2816 </para>
2817 <para>
2818 The action performed by the POST method might not result in a resource that can be identified by a URI.
2819 In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on
2820 whether or not the response includes an entity that describes the result.
2821 </para><para>
2822 Responses to this method are not cacheable, unless the response includes appropriate Cache-Control
2823 or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent
2824 to retrieve a cacheable resource.
2825 </para>
2826 </remarks>
2827 </member>
2828 <member name="F:HttpServer.Methods.Put">
2829 <summary>
2830 The PUT method requests that the enclosed entity be stored under the supplied Request-URI.
2831 </summary>
2832 <remarks>
2833 <list type="bullet">
2834 <item>
2835 If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a
2836 modified version of the one residing on the origin server.
2837 </item><item>
2838 If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new
2839 resource by the requesting user agent, the origin server can create the resource with that URI.
2840 </item><item>
2841 If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
2842 </item><item>
2843 If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to
2844 indicate successful completion of the request.
2845 </item><item>
2846 If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be
2847 given that reflects the nature of the problem.
2848 </item>
2849 </list>
2850 <para>
2851 The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not
2852 understand or implement and MUST return a 501 (Not Implemented) response in such cases.
2853 </para>
2854 </remarks>
2855 </member>
2856 <member name="F:HttpServer.Methods.Trace">
2857 <summary>
2858 The TRACE method is used to invoke a remote, application-layer loop- back of the request message.
2859 </summary>
2860 </member>
3180 <member name="T:HttpServer.HttpContextFactory"> 2861 <member name="T:HttpServer.HttpContextFactory">
3181 <summary> 2862 <summary>
3182 Used to create and reuse contexts. 2863 Used to create and reuse contexts.
@@ -3203,6 +2884,11 @@
3203 <param name="protocol">Kind of HTTPS protocol. Usually TLS or SSL.</param> 2884 <param name="protocol">Kind of HTTPS protocol. Usually TLS or SSL.</param>
3204 <returns>A created <see cref="T:HttpServer.IHttpClientContext"/>.</returns> 2885 <returns>A created <see cref="T:HttpServer.IHttpClientContext"/>.</returns>
3205 </member> 2886 </member>
2887 <member name="M:HttpServer.IHttpContextFactory.Shutdown">
2888 <summary>
2889 Server is shutting down so shut down the factory
2890 </summary>
2891 </member>
3206 <member name="E:HttpServer.IHttpContextFactory.RequestReceived"> 2892 <member name="E:HttpServer.IHttpContextFactory.RequestReceived">
3207 <summary> 2893 <summary>
3208 A request have been received from one of the contexts. 2894 A request have been received from one of the contexts.
@@ -3254,6 +2940,11 @@
3254 A creates <see cref="T:HttpServer.IHttpClientContext"/>. 2940 A creates <see cref="T:HttpServer.IHttpClientContext"/>.
3255 </returns> 2941 </returns>
3256 </member> 2942 </member>
2943 <member name="M:HttpServer.HttpContextFactory.Shutdown">
2944 <summary>
2945 Server is shutting down so shut down the factory
2946 </summary>
2947 </member>
3257 <member name="P:HttpServer.HttpContextFactory.UseTraceLogs"> 2948 <member name="P:HttpServer.HttpContextFactory.UseTraceLogs">
3258 <summary> 2949 <summary>
3259 True if detailed trace logs should be written. 2950 True if detailed trace logs should be written.
@@ -3364,178 +3055,247 @@
3364 </summary> 3055 </summary>
3365 <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param> 3056 <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
3366 </member> 3057 </member>
3367 <member name="T:HttpServer.HttpModules.ResourceFileModule"> 3058 <member name="T:HttpServer.ClientAcceptedEventArgs">
3368 <summary> 3059 <summary>
3369 Serves files that are stored in embedded resources. 3060 Invoked when a client have been accepted by the <see cref="T:HttpServer.HttpListener"/>
3370 </summary> 3061 </summary>
3062 <remarks>
3063 Can be used to revoke incoming connections
3064 </remarks>
3371 </member> 3065 </member>
3372 <member name="T:HttpServer.HttpModules.HttpModule"> 3066 <member name="M:HttpServer.ClientAcceptedEventArgs.#ctor(System.Net.Sockets.Socket)">
3373 <summary> 3067 <summary>
3374 A HttpModule can be used to serve Uri's. The module itself 3068 Initializes a new instance of the <see cref="T:HttpServer.ClientAcceptedEventArgs"/> class.
3375 decides if it should serve a Uri or not. In this way, you can
3376 get a very flexible http application since you can let multiple modules
3377 serve almost similar urls.
3378 </summary> 3069 </summary>
3379 <remarks> 3070 <param name="socket">The socket.</param>
3380 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.
3381 </remarks>
3382 </member> 3071 </member>
3383 <member name="M:HttpServer.HttpModules.HttpModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 3072 <member name="M:HttpServer.ClientAcceptedEventArgs.Revoke">
3384 <summary> 3073 <summary>
3385 Method that process the url 3074 Client may not be handled.
3386 </summary> 3075 </summary>
3387 <param name="request">Information sent by the browser about the request</param>
3388 <param name="response">Information that is being sent back to the client.</param>
3389 <param name="session">Session used to </param>
3390 <returns>true if this module handled the request.</returns>
3391 </member> 3076 </member>
3392 <member name="M:HttpServer.HttpModules.HttpModule.SetLogWriter(HttpServer.ILogWriter)"> 3077 <member name="P:HttpServer.ClientAcceptedEventArgs.Socket">
3393 <summary> 3078 <summary>
3394 Set the log writer to use. 3079 Accepted socket.
3395 </summary> 3080 </summary>
3396 <param name="writer">logwriter to use.</param>
3397 </member> 3081 </member>
3398 <member name="M:HttpServer.HttpModules.HttpModule.Write(HttpServer.LogPrio,System.String)"> 3082 <member name="P:HttpServer.ClientAcceptedEventArgs.Revoked">
3399 <summary> 3083 <summary>
3400 Log something. 3084 Client should be revoked.
3401 </summary> 3085 </summary>
3402 <param name="prio">importance of log message</param>
3403 <param name="message">message</param>
3404 </member> 3086 </member>
3405 <member name="P:HttpServer.HttpModules.HttpModule.AllowSecondaryProcessing"> 3087 <member name="T:HttpServer.Sessions.MemorySession">
3406 <summary> 3088 <summary>
3407 If true specifies that the module doesn't consume the processing of a request so that subsequent modules 3089 A session stored in memory.
3408 can continue processing afterwards. Default is false.
3409 </summary> 3090 </summary>
3410 </member> 3091 </member>
3411 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor"> 3092 <member name="T:HttpServer.Sessions.IHttpSession">
3412 <summary> 3093 <summary>
3413 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class. 3094 Interface for sessions
3414 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later
3415 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired.
3416 </summary> 3095 </summary>
3417 </member> 3096 </member>
3418 <member name="M:HttpServer.HttpModules.ResourceFileModule.#ctor(HttpServer.ILogWriter)"> 3097 <member name="M:HttpServer.Sessions.IHttpSession.Clear">
3419 <summary> 3098 <summary>
3420 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.ResourceFileModule"/> class. 3099 Remove everything from the session
3421 Runs <see cref="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"/> to make sure the basic mime types are available, they can be cleared later
3422 through the use of <see cref="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"/> if desired.
3423 </summary> 3100 </summary>
3424 <param name="logWriter">The log writer to use when logging events</param>
3425 </member> 3101 </member>
3426 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddDefaultMimeTypes"> 3102 <member name="M:HttpServer.Sessions.IHttpSession.Clear(System.Boolean)">
3427 <summary> 3103 <summary>
3428 Mimtypes that this class can handle per default 3104 Remove everything from the session
3429 </summary> 3105 </summary>
3106 <param name="expires">True if the session is cleared due to expiration</param>
3430 </member> 3107 </member>
3431 <member name="M:HttpServer.HttpModules.ResourceFileModule.AddResources(System.String,System.Reflection.Assembly,System.String)"> 3108 <member name="P:HttpServer.Sessions.IHttpSession.Id">
3432 <summary> 3109 <summary>
3433 Loads resources from a namespace in the given assembly to an uri 3110 Session id
3434 </summary> 3111 </summary>
3435 <param name="toUri">The uri to map the resources to</param> 3112 </member>
3436 <param name="fromAssembly">The assembly in which the resources reside</param> 3113 <member name="P:HttpServer.Sessions.IHttpSession.Item(System.String)">
3437 <param name="fromNamespace">The namespace from which to load the resources</param> 3114 <summary>
3438 <usage> 3115 Should
3439 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views"); 3116 </summary>
3117 <param name="name">Name of the session variable</param>
3118 <returns>null if it's not set</returns>
3119 <exception cref="T:System.Runtime.Serialization.SerializationException">If the object cant be serialized.</exception>
3120 </member>
3121 <member name="P:HttpServer.Sessions.IHttpSession.Accessed">
3122 <summary>
3123 When the session was last accessed.
3124 This property is touched by the http server each time the
3125 session is requested.
3126 </summary>
3127 </member>
3128 <member name="P:HttpServer.Sessions.IHttpSession.Count">
3129 <summary>
3130 Number of session variables.
3131 </summary>
3132 </member>
3133 <member name="E:HttpServer.Sessions.IHttpSession.BeforeClear">
3134 <summary>
3135 Event triggered upon clearing the session
3136 </summary>
3137 </member>
3138 <member name="M:HttpServer.Sessions.MemorySession.#ctor(System.String)">
3139 <summary>
3440 3140
3441 will make ie the resource MyLib.Models.User.Views.stylesheet.css accessible via /user/stylesheet.css 3141 </summary>
3442 </usage> 3142 <param name="id">A unique id used by the sessions store to identify the session</param>
3443 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns>
3444 </member> 3143 </member>
3445 <member name="M:HttpServer.HttpModules.ResourceFileModule.CanHandle(HttpServer.IHttpRequest)"> 3144 <member name="M:HttpServer.Sessions.MemorySession.SetId(System.String)">
3446 <summary> 3145 <summary>
3447 Returns true if the module can handle the request 3146 Id
3448 </summary> 3147 </summary>
3148 <param name="id"></param>
3449 </member> 3149 </member>
3450 <member name="M:HttpServer.HttpModules.ResourceFileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 3150 <member name="M:HttpServer.Sessions.MemorySession.Clear">
3451 <summary> 3151 <summary>
3452 Method that process the url 3152 Remove everything from the session
3453 </summary> 3153 </summary>
3454 <param name="request">Information sent by the browser about the request</param>
3455 <param name="response">Information that is being sent back to the client.</param>
3456 <param name="session">Session used to </param>
3457 <returns>true if this module handled the request.</returns>
3458 </member> 3154 </member>
3459 <member name="P:HttpServer.HttpModules.ResourceFileModule.MimeTypes"> 3155 <member name="M:HttpServer.Sessions.MemorySession.Clear(System.Boolean)">
3460 <summary> 3156 <summary>
3461 List with all mime-type that are allowed. 3157 Clears the specified expire.
3462 </summary> 3158 </summary>
3463 <remarks>All other mime types will result in a Forbidden http status code.</remarks> 3159 <param name="expires">True if the session is cleared due to expiration</param>
3464 </member> 3160 </member>
3465 <member name="T:HttpServer.HttpModules.FileModule"> 3161 <member name="M:HttpServer.Sessions.MemorySession.Dispose">
3466 <summary> 3162 <summary>
3467 The purpose of this module is to serve files. 3163 Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
3468 </summary> 3164 </summary>
3165 <filterpriority>2</filterpriority>
3469 </member> 3166 </member>
3470 <member name="M:HttpServer.HttpModules.FileModule.#ctor(System.String,System.String,System.Boolean)"> 3167 <member name="P:HttpServer.Sessions.MemorySession.Id">
3471 <summary> 3168 <summary>
3472 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.FileModule"/> class. 3169 Session id
3473 </summary> 3170 </summary>
3474 <param name="baseUri">Uri to serve, for instance "/files/"</param>
3475 <param name="basePath">Path on hard drive where we should start looking for files</param>
3476 <param name="useLastModifiedHeader">If true a Last-Modifed header will be sent upon requests urging web browser to cache files</param>
3477 </member> 3171 </member>
3478 <member name="M:HttpServer.HttpModules.FileModule.#ctor(System.String,System.String)"> 3172 <member name="P:HttpServer.Sessions.MemorySession.Item(System.String)">
3479 <summary> 3173 <summary>
3480 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.FileModule"/> class. 3174 Should
3481 </summary> 3175 </summary>
3482 <param name="baseUri">Uri to serve, for instance "/files/"</param> 3176 <param name="name">Name of the session variable</param>
3483 <param name="basePath">Path on hard drive where we should start looking for files</param> 3177 <returns>null if it's not set</returns>
3484 </member> 3178 </member>
3485 <member name="M:HttpServer.HttpModules.FileModule.AddDefaultMimeTypes"> 3179 <member name="P:HttpServer.Sessions.MemorySession.Accessed">
3486 <summary> 3180 <summary>
3487 Mimtypes that this class can handle per default 3181 when the session was last accessed.
3488 </summary> 3182 </summary>
3183 <remarks>
3184 Used to determine when the session should be removed.
3185 </remarks>
3489 </member> 3186 </member>
3490 <member name="M:HttpServer.HttpModules.FileModule.CanHandle(System.Uri)"> 3187 <member name="P:HttpServer.Sessions.MemorySession.Count">
3491 <summary> 3188 <summary>
3492 Determines if the request should be handled by this module. 3189 Number of values in the session
3493 Invoked by the <see cref="T:HttpServer.HttpServer"/>
3494 </summary> 3190 </summary>
3495 <param name="uri"></param>
3496 <returns>true if this module should handle it.</returns>
3497 </member> 3191 </member>
3498 <member name="M:HttpServer.HttpModules.FileModule.GetPath(System.Uri)"> 3192 <member name="P:HttpServer.Sessions.MemorySession.Changed">
3499 <exception cref="T:HttpServer.Exceptions.BadRequestException">Illegal path</exception> 3193 <summary>
3194 Flag to indicate that the session have been changed
3195 and should be saved into the session store.
3196 </summary>
3500 </member> 3197 </member>
3501 <member name="M:HttpServer.HttpModules.FileModule.Contains(System.String,System.Collections.Generic.IEnumerable{System.String})"> 3198 <member name="E:HttpServer.Sessions.MemorySession.BeforeClear">
3502 <summary> 3199 <summary>
3503 check if source contains any of the chars. 3200 Event triggered upon clearing the session
3504 </summary> 3201 </summary>
3505 <param name="source"></param>
3506 <param name="chars"></param>
3507 <returns></returns>
3508 </member> 3202 </member>
3509 <member name="M:HttpServer.HttpModules.FileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 3203 <member name="T:HttpServer.HttpModules.ReverseProxyModule">
3510 <summary> 3204 <summary>
3511 Method that process the Uri. 3205 A reverse proxy are used to act as a bridge between local (protected/hidden) websites
3206 and public clients.
3207
3208 A typical usage is to allow web servers on non standard ports to still be available
3209 to the public clients, or allow web servers on private ips to be available.
3210 </summary>
3211 </member>
3212 <member name="M:HttpServer.HttpModules.ReverseProxyModule.#ctor(System.String,System.String)">
3213 <summary>
3214
3215 </summary>
3216 <param name="source">Base url requested from browser</param>
3217 <param name="destination">Base url on private web server</param>
3218 <example>
3219 // this will return contents from http://192.168.1.128/view/jonas when client requests http://www.gauffin.com/user/view/jonas
3220 _server.Add(new ReverseProxyModule("http://www.gauffin.com/user/", "http://192.168.1.128/");
3221 </example>
3222 </member>
3223 <member name="M:HttpServer.HttpModules.ReverseProxyModule.CanHandle(System.Uri)">
3224 <summary>
3225 Method that determines if an url should be handled or not by the module
3226 </summary>
3227 <param name="uri">Url requested by the client.</param>
3228 <returns>true if module should handle the url.</returns>
3229 </member>
3230 <member name="M:HttpServer.HttpModules.ReverseProxyModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
3231 <summary>
3232 Method that process the url
3512 </summary> 3233 </summary>
3513 <param name="request">Information sent by the browser about the request</param> 3234 <param name="request">Information sent by the browser about the request</param>
3514 <param name="response">Information that is being sent back to the client.</param> 3235 <param name="response">Information that is being sent back to the client.</param>
3515 <param name="session">Session used to </param> 3236 <param name="session">Session used to </param>
3516 <exception cref="T:HttpServer.Exceptions.InternalServerException">Failed to find file extension</exception>
3517 <exception cref="T:HttpServer.Exceptions.ForbiddenException">File type is forbidden.</exception>
3518 </member> 3237 </member>
3519 <member name="M:HttpServer.HttpModules.FileModule.GetFileExtension(System.String)"> 3238 <member name="T:HttpServer.FormDecoders.UrlDecoder">
3520 <summary> 3239 <summary>
3521 return a file extension from an absolute Uri path (or plain filename) 3240 Can handle application/x-www-form-urlencoded
3522 </summary> 3241 </summary>
3523 <param name="uri"></param>
3524 <returns></returns>
3525 </member> 3242 </member>
3526 <member name="P:HttpServer.HttpModules.FileModule.MimeTypes"> 3243 <member name="M:HttpServer.FormDecoders.UrlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
3527 <summary> 3244 <summary>
3528 List with all mime-type that are allowed.
3529 </summary> 3245 </summary>
3530 <remarks>All other mime types will result in a Forbidden http status code.</remarks> 3246 <param name="stream">Stream containing the content</param>
3247 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
3248 <param name="encoding">Stream encoding</param>
3249 <returns>
3250 A HTTP form, or null if content could not be parsed.
3251 </returns>
3252 <exception cref="T:System.IO.InvalidDataException">If contents in the stream is not valid input data.</exception>
3531 </member> 3253 </member>
3532 <member name="P:HttpServer.HttpModules.FileModule.ForbiddenChars"> 3254 <member name="M:HttpServer.FormDecoders.UrlDecoder.CanParse(System.String)">
3533 <summary> 3255 <summary>
3534 characters that may not exist in a path. 3256 Checks if the decoder can handle the mime type
3257 </summary>
3258 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
3259 <returns>True if the decoder can parse the specified content type</returns>
3260 </member>
3261 <member name="T:HttpServer.FormDecoders.FormDecoderProvider">
3262 <summary>
3263 This provider is used to let us implement any type of form decoding we want without
3264 having to rewrite anything else in the server.
3265 </summary>
3266 </member>
3267 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Decode(System.String,System.IO.Stream,System.Text.Encoding)">
3268 <summary>
3269
3270 </summary>
3271 <param name="contentType">Should contain boundary and type, as in: multipart/form-data; boundary=---------------------------230051238959</param>
3272 <param name="stream">Stream containing form data.</param>
3273 <param name="encoding">Encoding used when decoding the stream</param>
3274 <returns><see cref="F:HttpServer.HttpInput.Empty"/> if no parser was found.</returns>
3275 <exception cref="T:System.ArgumentException">If stream is null or not readable.</exception>
3276 <exception cref="T:System.IO.InvalidDataException">If stream contents cannot be decoded properly.</exception>
3277 </member>
3278 <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Add(HttpServer.FormDecoders.IFormDecoder)">
3279 <summary>
3280 Add a decoder.
3281 </summary>
3282 <param name="decoder"></param>
3283 <exception cref="T:System.ArgumentNullException"></exception>
3284 </member>
3285 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Count">
3286 <summary>
3287 Number of added decoders.
3288 </summary>
3289 </member>
3290 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Decoders">
3291 <summary>
3292 Use with care.
3293 </summary>
3294 </member>
3295 <member name="P:HttpServer.FormDecoders.FormDecoderProvider.DefaultDecoder">
3296 <summary>
3297 Decoder used for unknown content types.
3535 </summary> 3298 </summary>
3536 <example>
3537 fileMod.ForbiddenChars = new string[]{ "\\", "..", ":" };
3538 </example>
3539 </member> 3299 </member>
3540 <member name="T:HttpServer.Exceptions.InternalServerException"> 3300 <member name="T:HttpServer.Exceptions.InternalServerException">
3541 <summary> 3301 <summary>
@@ -3560,73 +3320,425 @@
3560 <param name="message">error message.</param> 3320 <param name="message">error message.</param>
3561 <param name="inner">inner exception.</param> 3321 <param name="inner">inner exception.</param>
3562 </member> 3322 </member>
3563 <member name="T:HttpServer.Rules.RegexRedirectRule"> 3323 <member name="T:HttpServer.IHttpResponse">
3564 <summary> 3324 <summary>
3565 Class to make dynamic binding of redirects. Instead of having to specify a number of similar redirect rules 3325 Response that is sent back to the web browser / client.
3566 a regular expression can be used to identify redirect URLs and their targets. 3326
3327 A response can be sent if different ways. The easiest one is
3328 to just fill the Body stream with content, everything else
3329 will then be taken care of by the framework. The default content-type
3330 is text/html, you should change it if you send anything else.
3331
3332 The second and slighty more complex way is to send the response
3333 as parts. Start with sending the header using the SendHeaders method and
3334 then you can send the body using SendBody method, but do not forget
3335 to set ContentType and ContentLength before doing so.
3567 </summary> 3336 </summary>
3568 <example> 3337 <example>
3569 <![CDATA[ 3338 public void MyHandler(IHttpRequest request, IHttpResponse response)
3570 new RegexRedirectRule("/(?<target>[a-z0-9]+)", "/users/${target}?find=true", RegexOptions.IgnoreCase) 3339 {
3571 ]]> 3340
3341 }
3572 </example> 3342 </example>
3573 </member> 3343 </member>
3574 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String)"> 3344 <member name="M:HttpServer.IHttpResponse.AddHeader(System.String,System.String)">
3575 <summary> 3345 <summary>
3576 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class. 3346 Add another header to the document.
3577 </summary> 3347 </summary>
3578 <param name="fromUrlExpression">Expression to match URL</param> 3348 <param name="name">Name of the header, case sensitive, use lower cases.</param>
3579 <param name="toUrlExpression">Expression to generate URL</param> 3349 <param name="value">Header values can span over multiple lines as long as each line starts with a white space. New line chars should be \r\n</param>
3580 <example> 3350 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
3581 <![CDATA[ 3351 <exception cref="T:System.ArgumentException">If value conditions have not been met.</exception>
3582 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/${first}")); 3352 <remarks>Adding any header will override the default ones and those specified by properties.</remarks>
3583 Result of ie. /employee1 will then be /user/employee1
3584 ]]>
3585 </example>
3586 </member> 3353 </member>
3587 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String,System.Text.RegularExpressions.RegexOptions)"> 3354 <member name="M:HttpServer.IHttpResponse.Send">
3588 <summary> 3355 <summary>
3589 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class. 3356 Send headers and body to the browser.
3590 </summary> 3357 </summary>
3591 <param name="fromUrlExpression">Expression to match URL</param> 3358 <exception cref="T:System.InvalidOperationException">If content have already been sent.</exception>
3592 <param name="toUrlExpression">Expression to generate URL</param>
3593 <param name="options">Regular expression options to use, can be null</param>
3594 <example>
3595 <![CDATA[
3596 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/{first}", RegexOptions.IgnoreCase));
3597 Result of ie. /employee1 will then be /user/employee1
3598 ]]>
3599 </example>
3600 </member> 3359 </member>
3601 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String,System.Text.RegularExpressions.RegexOptions,System.Boolean)"> 3360 <member name="M:HttpServer.IHttpResponse.SendBody(System.Byte[],System.Int32,System.Int32)">
3602 <summary> 3361 <summary>
3603 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class. 3362 Make sure that you have specified ContentLength and sent the headers first.
3363 </summary>
3364 <param name="buffer"></param>
3365 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
3366 <see cref="M:HttpServer.IHttpResponse.SendHeaders"/>
3367 <param name="offset">offest of first byte to send</param>
3368 <param name="count">number of bytes to send.</param>
3369 <seealso cref="M:HttpServer.IHttpResponse.Send"/>
3370 <seealso cref="M:HttpServer.IHttpResponse.SendHeaders"/>
3371 <remarks>This method can be used if you want to send body contents without caching them first. This
3372 is recommended for larger files to keep the memory usage low.</remarks>
3373 </member>
3374 <member name="M:HttpServer.IHttpResponse.SendBody(System.Byte[])">
3375 <summary>
3376 Make sure that you have specified ContentLength and sent the headers first.
3377 </summary>
3378 <param name="buffer"></param>
3379 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
3380 <see cref="M:HttpServer.IHttpResponse.SendHeaders"/>
3381 <seealso cref="M:HttpServer.IHttpResponse.Send"/>
3382 <seealso cref="M:HttpServer.IHttpResponse.SendHeaders"/>
3383 <remarks>This method can be used if you want to send body contents without caching them first. This
3384 is recommended for larger files to keep the memory usage low.</remarks>
3385 </member>
3386 <member name="M:HttpServer.IHttpResponse.SendHeaders">
3387 <summary>
3388 Send headers to the client.
3389 </summary>
3390 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
3391 <seealso cref="M:HttpServer.IHttpResponse.AddHeader(System.String,System.String)"/>
3392 <seealso cref="M:HttpServer.IHttpResponse.Send"/>
3393 <seealso cref="M:HttpServer.IHttpResponse.SendBody(System.Byte[])"/>
3394 </member>
3395 <member name="M:HttpServer.IHttpResponse.Redirect(System.Uri)">
3396 <summary>
3397 Redirect client to somewhere else using the 302 status code.
3398 </summary>
3399 <param name="uri">Destination of the redirect</param>
3400 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
3401 <remarks>You can not do anything more with the request when a redirect have been done. This should be your last
3402 action.</remarks>
3403 </member>
3404 <member name="M:HttpServer.IHttpResponse.Redirect(System.String)">
3405 <summary>
3406 redirect to somewhere
3407 </summary>
3408 <param name="url">where the redirect should go</param>
3409 <remarks>
3410 No body are allowed when doing redirects.
3411 </remarks>
3412 </member>
3413 <member name="P:HttpServer.IHttpResponse.Body">
3414 <summary>
3415 The body stream is used to cache the body contents
3416 before sending everything to the client. It's the simplest
3417 way to serve documents.
3418 </summary>
3419 </member>
3420 <member name="P:HttpServer.IHttpResponse.ProtocolVersion">
3421 <summary>
3422 Defines the version of the HTTP Response for applications where it's required
3423 for this to be forced.
3424 </summary>
3425 </member>
3426 <member name="P:HttpServer.IHttpResponse.Chunked">
3427 <summary>
3428 The chunked encoding modifies the body of a message in order to
3429 transfer it as a series of chunks, each with its own size indicator,
3430 followed by an OPTIONAL trailer containing entity-header fields. This
3431 allows dynamically produced content to be transferred along with the
3432 information necessary for the recipient to verify that it has
3433 received the full message.
3434 </summary>
3435 </member>
3436 <member name="P:HttpServer.IHttpResponse.Connection">
3437 <summary>
3438 Kind of connection
3439 </summary>
3440 </member>
3441 <member name="P:HttpServer.IHttpResponse.Encoding">
3442 <summary>
3443 Encoding to use when sending stuff to the client.
3444 </summary>
3445 <remarks>Default is UTF8</remarks>
3446 </member>
3447 <member name="P:HttpServer.IHttpResponse.KeepAlive">
3448 <summary>
3449 Number of seconds to keep connection alive
3450 </summary>
3451 <remarks>Only used if Connection property is set to ConnectionType.KeepAlive</remarks>
3452 </member>
3453 <member name="P:HttpServer.IHttpResponse.Status">
3454 <summary>
3455 Status code that is sent to the client.
3456 </summary>
3457 <remarks>Default is HttpStatusCode.Ok</remarks>
3458 </member>
3459 <member name="P:HttpServer.IHttpResponse.Reason">
3460 <summary>
3461 Information about why a specific status code was used.
3462 </summary>
3463 </member>
3464 <member name="P:HttpServer.IHttpResponse.ContentLength">
3465 <summary>
3466 Size of the body. MUST be specified before sending the header,
3467 unless property Chunked is set to true.
3468 </summary>
3469 </member>
3470 <member name="P:HttpServer.IHttpResponse.ContentType">
3471 <summary>
3472 Kind of content in the body
3473 </summary>
3474 <remarks>Default is text/html</remarks>
3475 </member>
3476 <member name="P:HttpServer.IHttpResponse.HeadersSent">
3477 <summary>
3478 Headers have been sent to the client-
3479 </summary>
3480 <remarks>You can not send any additional headers if they have already been sent.</remarks>
3481 </member>
3482 <member name="P:HttpServer.IHttpResponse.Sent">
3483 <summary>
3484 The whole response have been sent.
3485 </summary>
3486 </member>
3487 <member name="P:HttpServer.IHttpResponse.Cookies">
3488 <summary>
3489 Cookies that should be created/changed.
3490 </summary>
3491 </member>
3492 <member name="T:HttpServer.ConnectionType">
3493 <summary>
3494 Type of HTTP connection
3495 </summary>
3496 </member>
3497 <member name="F:HttpServer.ConnectionType.Close">
3498 <summary>
3499 Connection is closed after each request-response
3500 </summary>
3501 </member>
3502 <member name="F:HttpServer.ConnectionType.KeepAlive">
3503 <summary>
3504 Connection is kept alive for X seconds (unless another request have been made)
3505 </summary>
3506 </member>
3507 <member name="T:HttpServer.HttpModules.WebSiteModule">
3508 <summary>
3509 The website module let's you handle multiple websites in the same server.
3510 It uses the "Host" header to check which site you want.
3511 </summary>
3512 <remarks>It's recommended that you do not
3513 add any other modules to HttpServer if you are using the website module. Instead,
3514 add all wanted modules to each website.</remarks>
3515 </member>
3516 <member name="M:HttpServer.HttpModules.WebSiteModule.#ctor(System.String,System.String)">
3517 <summary>
3518
3519 </summary>
3520 <param name="host">domain name that should be handled.</param>
3521 <param name="name"></param>
3522 </member>
3523 <member name="M:HttpServer.HttpModules.WebSiteModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
3524 <summary>
3525 Method that process the url
3526 </summary>
3527 <param name="request">Information sent by the browser about the request</param>
3528 <param name="response">Information that is being sent back to the client.</param>
3529 <param name="session">Session used to </param>
3530 </member>
3531 <member name="P:HttpServer.HttpModules.WebSiteModule.SiteName">
3532 <summary>
3533 Name of site.
3534 </summary>
3535 </member>
3536 <member name="T:HttpServer.HttpModules.HttpModuleExceptionEventArgs">
3537 <summary>
3538 Used to inform http server that
3539 </summary>
3540 </member>
3541 <member name="M:HttpServer.HttpModules.HttpModuleExceptionEventArgs.#ctor(System.Exception)">
3542 <summary>
3543 Eventarguments used when an exception is thrown by a module
3544 </summary>
3545 <param name="e">the exception</param>
3546 </member>
3547 <member name="P:HttpServer.HttpModules.HttpModuleExceptionEventArgs.Exception">
3548 <summary>
3549 Exception thrown in a module
3550 </summary>
3551 </member>
3552 <member name="T:HttpServer.HttpInputItem">
3553 <summary>
3554 represents a HTTP input item. Each item can have multiple sub items, a sub item
3555 is made in a HTML form by using square brackets
3604 </summary> 3556 </summary>
3605 <param name="fromUrlExpression">Expression to match URL</param>
3606 <param name="toUrlExpression">Expression to generate URL</param>
3607 <param name="options">Regular expression options to apply</param>
3608 <param name="shouldRedirect"><c>true</c> if request should be redirected, <c>false</c> if the request URI should be replaced.</param>
3609 <example> 3557 <example>
3610 <![CDATA[ 3558 // <input type="text" name="user[FirstName]" value="jonas" /> becomes:
3611 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/${first}", RegexOptions.None)); 3559 Console.WriteLine("Value: {0}", form["user"]["FirstName"].Value);
3612 Result of ie. /employee1 will then be /user/employee1
3613 ]]>
3614 </example> 3560 </example>
3561 <remarks>
3562 All names in a form SHOULD be in lowercase.
3563 </remarks>
3564 </member>
3565 <member name="F:HttpServer.HttpInputItem.Empty">
3566 <summary> Representation of a non-initialized <see cref="T:HttpServer.HttpInputItem"/>.</summary>
3567 </member>
3568 <member name="M:HttpServer.HttpInputItem.#ctor(System.String,System.String)">
3569 <summary>
3570 Initializes an input item setting its name/identifier and value
3571 </summary>
3572 <param name="name">Parameter name/id</param>
3573 <param name="value">Parameter value</param>
3574 </member>
3575 <member name="M:HttpServer.HttpInputItem.#ctor(HttpServer.HttpInputItem)">
3576 <summary>Creates a deep copy of the item specified</summary>
3577 <param name="item">The item to copy</param>
3578 <remarks>The function makes a deep copy of quite a lot which can be slow</remarks>
3579 </member>
3580 <member name="M:HttpServer.HttpInputItem.Add(System.String)">
3581 <summary>
3582 Add another value to this item
3583 </summary>
3584 <param name="value">Value to add.</param>
3585 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception>
3586 </member>
3587 <member name="M:HttpServer.HttpInputItem.Contains(System.String)">
3588 <summary>
3589 checks if a sub-item exists (and has a value).
3590 </summary>
3591 <param name="name">name in lower case</param>
3592 <returns>true if the sub-item exists and has a value; otherwise false.</returns>
3593 </member>
3594 <member name="M:HttpServer.HttpInputItem.ToString">
3595 <summary> Returns a formatted representation of the instance with the values of all contained parameters </summary>
3596 </member>
3597 <member name="M:HttpServer.HttpInputItem.ToString(System.String,System.Boolean)">
3598 <summary>
3599 Outputs the string in a formatted manner
3600 </summary>
3601 <param name="prefix">A prefix to append, used internally</param>
3602 <param name="asQuerySting">produce a query string</param>
3603 </member>
3604 <member name="M:HttpServer.HttpInputItem.Add(System.String,System.String)">
3605 <summary>
3606 Add a sub item.
3607 </summary>
3608 <param name="name">Can contain array formatting, the item is then parsed and added in multiple levels</param>
3609 <param name="value">Value to add.</param>
3615 <exception cref="T:System.ArgumentNullException">Argument is null.</exception> 3610 <exception cref="T:System.ArgumentNullException">Argument is null.</exception>
3616 <seealso cref="P:HttpServer.Rules.RedirectRule.ShouldRedirect"/> 3611 <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception>
3617 </member> 3612 </member>
3618 <member name="M:HttpServer.Rules.RegexRedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)"> 3613 <member name="M:HttpServer.HttpInputItem.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator">
3619 <summary> 3614 <summary>
3620 Process the incoming request. 3615 Returns an enumerator that iterates through the collection.
3621 </summary> 3616 </summary>
3622 <param name="request">incoming HTTP request</param> 3617
3623 <param name="response">outgoing HTTP response</param> 3618 <returns>
3624 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns> 3619 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
3625 <remarks> 3620 </returns>
3626 returning true means that no modules will get the request. Returning true is typically being done 3621 <filterpriority>1</filterpriority>
3627 for redirects. 3622 </member>
3628 </remarks> 3623 <member name="M:HttpServer.HttpInputItem.GetEnumerator">
3629 <exception cref="T:System.ArgumentNullException">If request or response is null</exception> 3624 <summary>
3625 Returns an enumerator that iterates through a collection.
3626 </summary>
3627
3628 <returns>
3629 An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
3630 </returns>
3631 <filterpriority>2</filterpriority>
3632 </member>
3633 <member name="M:HttpServer.HttpInputItem.ToString(System.String)">
3634 <summary>
3635 Outputs the string in a formatted manner
3636 </summary>
3637 <param name="prefix">A prefix to append, used internally</param>
3638 <returns></returns>
3639 </member>
3640 <member name="P:HttpServer.HttpInputItem.Count">
3641 <summary>
3642 Number of values
3643 </summary>
3644 </member>
3645 <member name="P:HttpServer.HttpInputItem.Item(System.String)">
3646 <summary>
3647 Get a sub item
3648 </summary>
3649 <param name="name">name in lower case.</param>
3650 <returns><see cref="F:HttpServer.HttpInputItem.Empty"/> if no item was found.</returns>
3651 </member>
3652 <member name="P:HttpServer.HttpInputItem.Name">
3653 <summary>
3654 Name of item (in lower case).
3655 </summary>
3656 </member>
3657 <member name="P:HttpServer.HttpInputItem.Value">
3658 <summary>
3659 Returns the first value, or null if no value exist.
3660 </summary>
3661 </member>
3662 <member name="P:HttpServer.HttpInputItem.LastValue">
3663 <summary>
3664 Returns the last value, or null if no value exist.
3665 </summary>
3666 </member>
3667 <member name="P:HttpServer.HttpInputItem.Values">
3668 <summary>
3669 Returns the list with values.
3670 </summary>
3671 </member>
3672 <member name="P:HttpServer.HttpInputItem.HttpServer#IHttpInput#Item(System.String)">
3673 <summary>
3674
3675 </summary>
3676 <param name="name">name in lower case</param>
3677 <returns></returns>
3678 </member>
3679 <member name="T:HttpServer.Helpers.ResourceManager">
3680 <summary>Class to handle loading of resource files</summary>
3681 </member>
3682 <member name="M:HttpServer.Helpers.ResourceManager.#ctor">
3683 <summary>
3684 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class.
3685 </summary>
3686 </member>
3687 <member name="M:HttpServer.Helpers.ResourceManager.#ctor(HttpServer.ILogWriter)">
3688 <summary>
3689 Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class.
3690 </summary>
3691 <param name="writer">logger.</param>
3692 </member>
3693 <member name="M:HttpServer.Helpers.ResourceManager.LoadResources(System.String,System.Reflection.Assembly,System.String)">
3694 <summary>
3695 Loads resources from a namespace in the given assembly to an URI
3696 </summary>
3697 <param name="toUri">The URI to map the resources to</param>
3698 <param name="fromAssembly">The assembly in which the resources reside</param>
3699 <param name="fromNamespace">The namespace from which to load the resources</param>
3700 <usage>
3701 <code>
3702 resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
3703 </code>
3704 Will make the resource MyLib.Models.User.Views.list.Haml accessible via /user/list.haml or /user/list/
3705 </usage>
3706 <returns>The amount of loaded files, giving you the possibility of making sure the resources needed gets loaded</returns>
3707 <exception cref="T:System.InvalidOperationException">If a resource has already been mapped to an uri</exception>
3708 </member>
3709 <member name="M:HttpServer.Helpers.ResourceManager.GetResourceStream(System.String)">
3710 <summary>
3711 Retrieves a stream for the specified resource path if loaded otherwise null
3712 </summary>
3713 <param name="path">Path to the resource to retrieve a stream for</param>
3714 <returns>A stream or null if the resource couldn't be found</returns>
3715 </member>
3716 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String)">
3717 <summary>
3718 Fetch all files from the resource that matches the specified arguments.
3719 </summary>
3720 <param name="path">The path to the resource to extract</param>
3721 <returns>
3722 a list of files if found; or an empty array if no files are found.
3723 </returns>
3724 <exception cref="T:System.ArgumentException">Search path must end with an asterisk for finding arbitrary files</exception>
3725 </member>
3726 <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String,System.String)">
3727 <summary>
3728 Fetch all files from the resource that matches the specified arguments.
3729 </summary>
3730 <param name="path">Where the file should reside.</param>
3731 <param name="filename">Files to check</param>
3732 <returns>
3733 a list of files if found; or an empty array if no files are found.
3734 </returns>
3735 </member>
3736 <member name="M:HttpServer.Helpers.ResourceManager.ContainsResource(System.String)">
3737 <summary>
3738 Returns whether or not the loader has an instance of the file requested
3739 </summary>
3740 <param name="filename">The name of the template/file</param>
3741 <returns>True if the loader can provide the file</returns>
3630 </member> 3742 </member>
3631 <member name="T:HttpServer.Parser.RequestLineEventArgs"> 3743 <member name="T:HttpServer.Parser.RequestLineEventArgs">
3632 <summary> 3744 <summary>
@@ -3664,908 +3776,901 @@
3664 Gets or sets requested URI path. 3776 Gets or sets requested URI path.
3665 </summary> 3777 </summary>
3666 </member> 3778 </member>
3667 <member name="T:HttpServer.RealmHandler"> 3779 <member name="T:HttpServer.IHttpContextHandler">
3668 <summary> 3780 <summary>
3669 Delegate used to find a realm/domain. 3781 Class that receives Requests from a <see cref="T:HttpServer.IHttpClientContext"/>.
3782 </summary>
3783 </member>
3784 <member name="M:HttpServer.IHttpContextHandler.ClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)">
3785 <summary>
3786 Client have been disconnected.
3787 </summary>
3788 <param name="client">Client that was disconnected.</param>
3789 <param name="error">Reason</param>
3790 <see cref="T:HttpServer.IHttpClientContext"/>
3791 </member>
3792 <member name="M:HttpServer.IHttpContextHandler.RequestReceived(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
3793 <summary>
3794 Invoked when a client context have received a new HTTP request
3795 </summary>
3796 <param name="client">Client that received the request.</param>
3797 <param name="request">Request that was received.</param>
3798 <see cref="T:HttpServer.IHttpClientContext"/>
3799 </member>
3800 <member name="T:HttpServer.HttpForm">
3801 <summary>Container for posted form data</summary>
3802 </member>
3803 <member name="F:HttpServer.HttpForm.EmptyForm">
3804 <summary>Instance to help mark a non-initialized form</summary>
3805 </member>
3806 <member name="M:HttpServer.HttpForm.#ctor">
3807 <summary>Initializes a form container with the specified name</summary>
3808 </member>
3809 <member name="M:HttpServer.HttpForm.#ctor(HttpServer.HttpInput)">
3810 <summary>
3811 Makes a deep copy of the input
3812 </summary>
3813 <param name="input">The input to copy</param>
3814 </member>
3815 <member name="M:HttpServer.HttpForm.AddFile(HttpServer.HttpFile)">
3816 <summary>
3817 Adds a file to the collection of posted files
3818 </summary>
3819 <param name="file">The file to add</param>
3820 <exception cref="T:System.ArgumentException">If the file is already added</exception>
3821 <exception cref="T:System.ArgumentNullException">If file is null</exception>
3822 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception>
3823 </member>
3824 <member name="M:HttpServer.HttpForm.ContainsFile(System.String)">
3825 <summary>
3826 Checks if the form contains a specified file
3827 </summary>
3828 <param name="name">Field name of the file parameter</param>
3829 <returns>True if the file exists</returns>
3830 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception>
3831 </member>
3832 <member name="M:HttpServer.HttpForm.GetFile(System.String)">
3833 <summary>
3834 Retrieves a file held by by the form
3835 </summary>
3836 <param name="name">The identifier of the file</param>
3837 <returns>The requested file or null if the file was not found</returns>
3838 <exception cref="T:System.ArgumentNullException">If name is null or empty</exception>
3839 <exception cref="T:System.InvalidOperationException">If the instance is HttpForm.EmptyForm which cannot be modified</exception>
3840 </member>
3841 <member name="M:HttpServer.HttpForm.Clear">
3842 <summary>Disposes all held HttpFile's and resets values</summary>
3843 </member>
3844 <member name="P:HttpServer.HttpForm.Files">
3845 <summary>
3846 Retrieves the number of files added to the <see cref="T:HttpServer.HttpForm"/>
3847 </summary>
3848 <returns>0 if no files are added</returns>
3849 </member>
3850 <member name="T:HttpServer.HttpClientContext">
3851 <summary>
3852 Contains a connection to a browser/client.
3670 </summary> 3853 </summary>
3671 <param name="domain"></param>
3672 <returns></returns>
3673 <remarks> 3854 <remarks>
3674 Realms are used during HTTP Authentication 3855 Remember to <see cref="M:HttpServer.HttpClientContext.Start"/> after you have hooked the <see cref="E:HttpServer.HttpClientContext.RequestReceived"/> event.
3675 </remarks> 3856 </remarks>
3676 <seealso cref="T:HttpServer.Authentication.AuthenticationModule"/> 3857 TODO: Maybe this class should be broken up into HttpClientChannel and HttpClientContext?
3677 <seealso cref="T:HttpServer.Authentication.AuthenticationHandler"/>
3678 </member> 3858 </member>
3679 <member name="T:HttpServer.HttpServer"> 3859 <member name="M:HttpServer.HttpClientContext.#ctor(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,HttpServer.IRequestParserFactory,System.Int32,System.Net.Sockets.Socket)">
3680 <summary> 3860 <summary>
3681 A complete HTTP server, you need to add a module to it to be able to handle incoming requests. 3861 Initializes a new instance of the <see cref="T:HttpServer.HttpClientContext"/> class.
3682 </summary> 3862 </summary>
3683 <example> 3863 <param name="secured">true if the connection is secured (SSL/TLS)</param>
3684 <code> 3864 <param name="remoteEndPoint">client that connected.</param>
3685 // this small example will add two web site modules, thus handling 3865 <param name="stream">Stream used for communication</param>
3686 // two different sites. In reality you should add Controller modules or something 3866 <param name="parserFactory">Used to create a <see cref="T:HttpServer.IHttpRequestParser"/>.</param>
3687 // two the website modules to be able to handle different requests. 3867 <param name="bufferSize">Size of buffer to use when reading data. Must be at least 4096 bytes.</param>
3688 HttpServer server = new HttpServer(); 3868 <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>
3689 server.Add(new WebSiteModule("www.gauffin.com", "Gauffin Telecom AB")); 3869 <exception cref="T:System.ArgumentException">Stream must be writable and readable.</exception>
3690 server.Add(new WebSiteModule("www.vapadi.se", "Remote PBX")); 3870 </member>
3691 3871 <member name="M:HttpServer.HttpClientContext.OnBodyBytesReceived(System.Object,HttpServer.Parser.BodyEventArgs)">
3692 // start regular http 3872 <summary>
3693 server.Start(IPAddress.Any, 80); 3873 Process incoming body bytes.
3874 </summary>
3875 <param name="sender"><see cref="T:HttpServer.IHttpRequestParser"/></param>
3876 <param name="e">Bytes</param>
3877 </member>
3878 <member name="M:HttpServer.HttpClientContext.OnHeaderReceived(System.Object,HttpServer.Parser.HeaderEventArgs)">
3879 <summary>
3694 3880
3695 // start https 3881 </summary>
3696 server.Start(IPAddress.Any, 443, myCertificate); 3882 <param name="sender"></param>
3697 </code> 3883 <param name="e"></param>
3698 </example>
3699 <seealso cref="T:HttpServer.HttpModules.HttpModule"/>
3700 <seealso cref="T:HttpServer.HttpModules.FileModule"/>
3701 <seealso cref="T:HttpServer.HttpListener"/>
3702 </member> 3884 </member>
3703 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.IComponentProvider)"> 3885 <member name="M:HttpServer.HttpClientContext.Start">
3704 <summary> 3886 <summary>
3705 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class. 3887 Start reading content.
3706 </summary> 3888 </summary>
3707 <param name="provider">Used to get all components used in the server..</param> 3889 <remarks>
3890 Make sure to call base.Start() if you override this method.
3891 </remarks>
3708 </member> 3892 </member>
3709 <member name="M:HttpServer.HttpServer.#ctor"> 3893 <member name="M:HttpServer.HttpClientContext.Cleanup">
3710 <summary> 3894 <summary>
3711 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class. 3895 Clean up context.
3712 </summary> 3896 </summary>
3897 <remarks>
3898 Make sure to call base.Cleanup() if you override the method.
3899 </remarks>
3713 </member> 3900 </member>
3714 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider)"> 3901 <member name="M:HttpServer.HttpClientContext.Disconnect(System.Net.Sockets.SocketError)">
3715 <summary> 3902 <summary>
3716 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class. 3903 Disconnect from client
3717 </summary> 3904 </summary>
3718 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param> 3905 <param name="error">error to report in the <see cref="E:HttpServer.HttpClientContext.Disconnected"/> event.</param>
3719 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
3720 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
3721 </member> 3906 </member>
3722 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.Sessions.IHttpSessionStore)"> 3907 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)">
3723 <summary> 3908 <summary>
3724 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class. 3909 Send a response.
3725 </summary> 3910 </summary>
3726 <param name="sessionStore">A session store is used to save and retrieve sessions</param> 3911 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
3727 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/> 3912 <param name="statusCode">HTTP status code</param>
3913 <param name="reason">reason for the status code.</param>
3914 <param name="body">HTML body contents, can be null or empty.</param>
3915 <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>
3916 <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception>
3728 </member> 3917 </member>
3729 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.ILogWriter)"> 3918 <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)">
3730 <summary> 3919 <summary>
3731 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class. 3920 Send a response.
3732 </summary> 3921 </summary>
3733 <param name="logWriter">The log writer.</param> 3922 <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
3734 <seealso cref="P:HttpServer.HttpServer.LogWriter"/> 3923 <param name="statusCode">HTTP status code</param>
3924 <param name="reason">reason for the status code.</param>
3735 </member> 3925 </member>
3736 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.ILogWriter)"> 3926 <member name="M:HttpServer.HttpClientContext.Respond(System.String)">
3737 <summary> 3927 <summary>
3738 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class. 3928 Send a response.
3739 </summary> 3929 </summary>
3740 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param> 3930 <exception cref="T:System.ArgumentNullException"></exception>
3741 <param name="logWriter">The log writer.</param>
3742 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
3743 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
3744 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
3745 </member> 3931 </member>
3746 <member name="M:HttpServer.HttpServer.#ctor(HttpServer.FormDecoders.FormDecoderProvider,HttpServer.Sessions.IHttpSessionStore,HttpServer.ILogWriter)"> 3932 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[])">
3747 <summary> 3933 <summary>
3748 Initializes a new instance of the <see cref="T:HttpServer.HttpServer"/> class. 3934 send a whole buffer
3749 </summary> 3935 </summary>
3750 <param name="decoderProvider">Form decoders are used to convert different types of posted data to the <see cref="T:HttpServer.HttpInput"/> object types.</param> 3936 <param name="buffer">buffer to send</param>
3751 <param name="sessionStore">A session store is used to save and retrieve sessions</param> 3937 <exception cref="T:System.ArgumentNullException"></exception>
3752 <param name="logWriter">The log writer.</param>
3753 <seealso cref="T:HttpServer.FormDecoders.IFormDecoder"/>
3754 <seealso cref="P:HttpServer.HttpServer.FormDecoderProviders"/>
3755 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
3756 <seealso cref="T:HttpServer.Sessions.IHttpSessionStore"/>
3757 </member> 3938 </member>
3758 <member name="M:HttpServer.HttpServer.Add(HttpServer.Rules.IRule)"> 3939 <member name="M:HttpServer.HttpClientContext.Send(System.Byte[],System.Int32,System.Int32)">
3759 <summary> 3940 <summary>
3760 Adds the specified rule. 3941 Send data using the stream
3761 </summary> 3942 </summary>
3762 <param name="rule">The rule.</param> 3943 <param name="buffer">Contains data to send</param>
3944 <param name="offset">Start position in buffer</param>
3945 <param name="size">number of bytes to send</param>
3946 <exception cref="T:System.ArgumentNullException"></exception>
3947 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
3763 </member> 3948 </member>
3764 <member name="M:HttpServer.HttpServer.Add(HttpServer.HttpModules.HttpModule)"> 3949 <member name="E:HttpServer.HttpClientContext.Cleaned">
3765 <summary> 3950 <summary>
3766 Add a <see cref="T:HttpServer.HttpModules.HttpModule"/> to the server. 3951 This context have been cleaned, which means that it can be reused.
3767 </summary> 3952 </summary>
3768 <param name="module">mode to add</param>
3769 </member> 3953 </member>
3770 <member name="M:HttpServer.HttpServer.DecodeBody(HttpServer.IHttpRequest)"> 3954 <member name="E:HttpServer.HttpClientContext.Started">
3771 <summary> 3955 <summary>
3772 Decodes the request body. 3956 Context have been started (a new client have connected)
3773 </summary> 3957 </summary>
3774 <param name="request">The request.</param>
3775 <exception cref="T:HttpServer.Exceptions.InternalServerException">Failed to decode form data.</exception>
3776 </member> 3958 </member>
3777 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,System.Net.HttpStatusCode,System.String)"> 3959 <member name="P:HttpServer.HttpClientContext.CurrentRequest">
3778 <summary> 3960 <summary>
3779 Generate a HTTP error page (that will be added to the response body). 3961 Overload to specify own type.
3780 response status code is also set.
3781 </summary> 3962 </summary>
3782 <param name="response">Response that the page will be generated in.</param> 3963 <remarks>
3783 <param name="error"><see cref="T:System.Net.HttpStatusCode"/>.</param> 3964 Must be specified before the context is being used.
3784 <param name="body">response body contents.</param> 3965 </remarks>
3785 </member> 3966 </member>
3786 <member name="M:HttpServer.HttpServer.ErrorPage(HttpServer.IHttpResponse,HttpServer.Exceptions.HttpException)"> 3967 <member name="P:HttpServer.HttpClientContext.Secured">
3787 <summary> 3968 <summary>
3788 Generate a HTTP error page (that will be added to the response body). 3969 Using SSL or other encryption method.
3789 response status code is also set.
3790 </summary> 3970 </summary>
3791 <param name="response">Response that the page will be generated in.</param>
3792 <param name="err">exception.</param>
3793 </member> 3971 </member>
3794 <member name="M:HttpServer.HttpServer.GetRealm(HttpServer.IHttpRequest)"> 3972 <member name="P:HttpServer.HttpClientContext.IsSecured">
3795 <summary> 3973 <summary>
3796 Realms are used by the <see cref="T:HttpServer.Authentication.AuthenticationModule"/>s. 3974 Using SSL or other encryption method.
3797 </summary> 3975 </summary>
3798 <param name="request">HTTP request</param>
3799 <returns>domain/realm.</returns>
3800 </member> 3976 </member>
3801 <member name="M:HttpServer.HttpServer.HandleRequest(HttpServer.IHttpClientContext,HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 3977 <member name="P:HttpServer.HttpClientContext.LogWriter">
3802 <summary> 3978 <summary>
3803 Process an incoming request. 3979 Specify which logger to use.
3804 </summary> 3980 </summary>
3805 <param name="context">connection to client</param>
3806 <param name="request">request information</param>
3807 <param name="response">response that should be filled</param>
3808 <param name="session">session information</param>
3809 </member> 3981 </member>
3810 <member name="M:HttpServer.HttpServer.OnClientDisconnected(HttpServer.IHttpClientContext,System.Net.Sockets.SocketError)"> 3982 <member name="P:HttpServer.HttpClientContext.Stream">
3811 <summary> 3983 <summary>
3812 Can be overloaded to implement stuff when a client have been connected. 3984 Gets or sets the network stream.
3813 </summary> 3985 </summary>
3814 <remarks>
3815 Default implementation does nothing.
3816 </remarks>
3817 <param name="client">client that disconnected</param>
3818 <param name="error">disconnect reason</param>
3819 </member> 3986 </member>
3820 <member name="M:HttpServer.HttpServer.ProcessAuthentication(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 3987 <member name="P:HttpServer.HttpClientContext.RemoteAddress">
3821 <summary> 3988 <summary>
3822 Handle authentication 3989 Gets or sets IP address that the client connected from.
3823 </summary> 3990 </summary>
3824 <param name="request"></param>
3825 <param name="response"></param>
3826 <param name="session"></param>
3827 <returns>true if request can be handled; false if not.</returns>
3828 <exception cref="T:HttpServer.Exceptions.BadRequestException">Invalid authorization header</exception>
3829 </member> 3991 </member>
3830 <member name="M:HttpServer.HttpServer.RequestAuthentication(HttpServer.Authentication.AuthenticationModule,HttpServer.IHttpRequest,HttpServer.IHttpResponse)"> 3992 <member name="P:HttpServer.HttpClientContext.RemotePort">
3831 <summary> 3993 <summary>
3832 Will request authentication. 3994 Gets or sets port that the client connected from.
3995 </summary>
3996 </member>
3997 <member name="E:HttpServer.HttpClientContext.Disconnected">
3998 <summary>
3999 The context have been disconnected.
3833 </summary> 4000 </summary>
3834 <remarks> 4001 <remarks>
3835 Sends respond to client, nothing else can be done with the response after this. 4002 Event can be used to clean up a context, or to reuse it.
3836 </remarks> 4003 </remarks>
3837 <param name="mod"></param>
3838 <param name="request"></param>
3839 <param name="response"></param>
3840 </member> 4004 </member>
3841 <member name="M:HttpServer.HttpServer.OnRequest(System.Object,HttpServer.RequestEventArgs)"> 4005 <member name="E:HttpServer.HttpClientContext.RequestReceived">
3842 <summary> 4006 <summary>
3843 Received from a <see cref="T:HttpServer.IHttpClientContext"/> when a request have been parsed successfully. 4007 A request have been received in the context.
3844 </summary> 4008 </summary>
3845 <param name="source"><see cref="T:HttpServer.IHttpClientContext"/> that received the request.</param>
3846 <param name="args">The request.</param>
3847 </member> 4009 </member>
3848 <member name="M:HttpServer.HttpServer.ProcessRequestWrapper(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)"> 4010 <member name="T:HttpServer.Helpers.XmlHelper">
3849 <summary> 4011 <summary>
3850 To be able to track request count. 4012 Helpers to make XML handling easier
3851 </summary> 4013 </summary>
3852 <param name="context"></param>
3853 <param name="request"></param>
3854 </member> 4014 </member>
3855 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32)"> 4015 <member name="M:HttpServer.Helpers.XmlHelper.Serialize(System.Object)">
3856 <summary> 4016 <summary>
3857 Start the web server using regular HTTP. 4017 Serializes object to XML.
3858 </summary> 4018 </summary>
3859 <param name="address">IP Address to listen on, use <c>IpAddress.Any </c>to accept connections on all IP addresses/network cards.</param> 4019 <param name="value">object to serialize.</param>
3860 <param name="port">Port to listen on. 80 can be a good idea =)</param> 4020 <returns>XML</returns>
3861 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception> 4021 <remarks>
3862 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception> 4022 Removes name spaces and adds indentation
4023 </remarks>
3863 </member> 4024 </member>
3864 <member name="M:HttpServer.HttpServer.Start(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)"> 4025 <member name="M:HttpServer.Helpers.XmlHelper.Deserialize``1(System.String)">
3865 <summary> 4026 <summary>
3866 Accept secure connections. 4027 Create an object from a XML string
3867 </summary> 4028 </summary>
3868 <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> 4029 <typeparam name="T">Type of object</typeparam>
3869 <param name="port">Port to listen on. 80 can be a good idea =)</param> 4030 <param name="xml">XML string</param>
3870 <param name="certificate">Certificate to use</param> 4031 <returns>object</returns>
3871 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
3872 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
3873 </member> 4032 </member>
3874 <member name="M:HttpServer.HttpServer.Stop"> 4033 <member name="M:HttpServer.FormDecoders.HttpMultipart.ReadLine">
3875 <summary> 4034 <summary>
3876 shut down the server and listeners 4035
3877 </summary> 4036 </summary>
4037 <returns></returns>
4038 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
4039 <exception cref="T:System.ObjectDisposedException"></exception>
3878 </member> 4040 </member>
3879 <member name="M:HttpServer.HttpServer.WriteLog(HttpServer.LogPrio,System.String)"> 4041 <member name="T:HttpServer.FormDecoders.HttpMultipart.Element">
4042 <summary>Represents a field in a multipart form</summary>
4043 </member>
4044 <member name="T:HttpServer.Check">
3880 <summary> 4045 <summary>
3881 write an entry to the log file 4046 Small design by contract implementation.
3882 </summary> 4047 </summary>
3883 <param name="prio">importance of the message</param>
3884 <param name="message">log message</param>
3885 </member> 4048 </member>
3886 <member name="M:HttpServer.HttpServer.WriteLog(System.Object,HttpServer.LogPrio,System.String)"> 4049 <member name="M:HttpServer.Check.NotEmpty(System.String,System.String)">
3887 <summary> 4050 <summary>
3888 write an entry to the log file 4051 Check whether a parameter is empty.
3889 </summary> 4052 </summary>
3890 <param name="source">object that wrote the message</param> 4053 <param name="value">Parameter value</param>
3891 <param name="prio">importance of the message</param> 4054 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
3892 <param name="message">log message</param> 4055 <exception cref="T:System.ArgumentException">value is empty.</exception>
3893 </member> 4056 </member>
3894 <member name="P:HttpServer.HttpServer.Current"> 4057 <member name="M:HttpServer.Check.Require(System.Object,System.String)">
3895 <summary> 4058 <summary>
3896 Server that is handling the current request. 4059 Checks whether a parameter is null.
3897 </summary> 4060 </summary>
3898 <remarks> 4061 <param name="value">Parameter value</param>
3899 Will be set as soon as a request arrives to the <see cref="T:HttpServer.HttpServer"/> object. 4062 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
3900 </remarks> 4063 <exception cref="T:System.ArgumentNullException">value is null.</exception>
3901 </member> 4064 </member>
3902 <member name="P:HttpServer.HttpServer.AuthenticationModules"> 4065 <member name="M:HttpServer.Check.Min(System.Int32,System.Object,System.String)">
3903 <summary> 4066 <summary>
3904 Modules used for authentication. The module that is is added first is used as 4067 Checks whether a parameter is null.
3905 the default authentication module.
3906 </summary> 4068 </summary>
3907 <remarks>Use the corresponding property 4069 <param name="minValue"></param>
3908 in the <see cref="T:HttpServer.HttpModules.WebSiteModule"/> if you are using multiple websites.</remarks> 4070 <param name="value">Parameter value</param>
4071 <param name="parameterOrErrorMessage">Parameter name, or error description.</param>
4072 <exception cref="T:System.ArgumentException">value is null.</exception>
3909 </member> 4073 </member>
3910 <member name="P:HttpServer.HttpServer.FormDecoderProviders"> 4074 <member name="T:HttpServer.LogPrio">
3911 <summary> 4075 <summary>
3912 Form decoder providers are used to decode request body (which normally contains form data). 4076 Priority for log entries
3913 </summary> 4077 </summary>
4078 <seealso cref="T:HttpServer.ILogWriter"/>
3914 </member> 4079 </member>
3915 <member name="P:HttpServer.HttpServer.ServerName"> 4080 <member name="F:HttpServer.LogPrio.Trace">
3916 <summary> 4081 <summary>
3917 Server name sent in HTTP responses. 4082 Very detailed logs to be able to follow the flow of the program.
3918 </summary> 4083 </summary>
3919 <remarks>
3920 Do NOT include version in name, since it makes it
3921 easier for hackers.
3922 </remarks>
3923 </member> 4084 </member>
3924 <member name="P:HttpServer.HttpServer.SessionCookieName"> 4085 <member name="F:HttpServer.LogPrio.Debug">
3925 <summary> 4086 <summary>
3926 Name of cookie where session id is stored. 4087 Logs to help debug errors in the application
3927 </summary> 4088 </summary>
3928 </member> 4089 </member>
3929 <member name="P:HttpServer.HttpServer.LogWriter"> 4090 <member name="F:HttpServer.LogPrio.Info">
3930 <summary> 4091 <summary>
3931 Specified where logging should go. 4092 Information to be able to keep track of state changes etc.
3932 </summary> 4093 </summary>
3933 <seealso cref="T:HttpServer.NullLogWriter"/>
3934 <seealso cref="T:HttpServer.ConsoleLogWriter"/>
3935 <seealso cref="P:HttpServer.HttpServer.LogWriter"/>
3936 </member> 4094 </member>
3937 <member name="P:HttpServer.HttpServer.BackLog"> 4095 <member name="F:HttpServer.LogPrio.Warning">
3938 <summary> 4096 <summary>
3939 Number of connections that can wait to be accepted by the server. 4097 Something did not go as we expected, but it's no problem.
3940 </summary> 4098 </summary>
3941 <remarks>Default is 10.</remarks>
3942 </member> 4099 </member>
3943 <member name="P:HttpServer.HttpServer.MaxRequestCount"> 4100 <member name="F:HttpServer.LogPrio.Error">
3944 <summary> 4101 <summary>
3945 Gets or sets maximum number of allowed simultaneous requests. 4102 Something that should not fail failed, but we can still keep
4103 on going.
3946 </summary> 4104 </summary>
3947 <remarks>
3948 <para>
3949 This property is useful in busy systems. The HTTP server
3950 will start queuing new requests if this limit is hit, instead
3951 of trying to process all incoming requests directly.
3952 </para>
3953 <para>
3954 The default number if allowed simultaneous requests are 10.
3955 </para>
3956 </remarks>
3957 </member> 4105 </member>
3958 <member name="P:HttpServer.HttpServer.MaxQueueSize"> 4106 <member name="F:HttpServer.LogPrio.Fatal">
3959 <summary> 4107 <summary>
3960 Gets or sets maximum number of requests queuing to be handled. 4108 Something failed, and we cannot handle it properly.
3961 </summary> 4109 </summary>
3962 <remarks>
3963 <para>
3964 The WebServer will start turning requests away if response code
3965 <see cref="F:System.Net.HttpStatusCode.ServiceUnavailable"/> to indicate that the server
3966 is too busy to be able to handle the request.
3967 </para>
3968 </remarks>
3969 </member> 4110 </member>
3970 <member name="E:HttpServer.HttpServer.RealmWanted"> 4111 <member name="T:HttpServer.ILogWriter">
3971 <summary> 4112 <summary>
3972 Realms are used during HTTP authentication. 4113 Interface used to write to log files.
3973 Default realm is same as server name.
3974 </summary> 4114 </summary>
3975 </member> 4115 </member>
3976 <member name="E:HttpServer.HttpServer.ExceptionThrown"> 4116 <member name="M:HttpServer.ILogWriter.Write(System.Object,HttpServer.LogPrio,System.String)">
3977 <summary> 4117 <summary>
3978 Let's to receive unhandled exceptions from the threads. 4118 Write an entry to the log file.
3979 </summary> 4119 </summary>
3980 <remarks> 4120 <param name="source">object that is writing to the log</param>
3981 Exceptions will be thrown during debug mode if this event is not used, 4121 <param name="priority">importance of the log message</param>
3982 exceptions will be printed to console and suppressed during release mode. 4122 <param name="message">the message</param>
3983 </remarks>
3984 </member> 4123 </member>
3985 <member name="T:HttpServer.Exceptions.UnauthorizedException"> 4124 <member name="T:HttpServer.ConsoleLogWriter">
3986 <summary> 4125 <summary>
3987 The request requires user authentication. The response MUST include a 4126 This class writes to the console. It colors the output depending on the logprio and includes a 3-level stacktrace (in debug mode)
3988 WWW-Authenticate header field (section 14.47) containing a challenge
3989 applicable to the requested resource.
3990
3991 The client MAY repeat the request with a suitable Authorization header
3992 field (section 14.8). If the request already included Authorization
3993 credentials, then the 401 response indicates that authorization has been
3994 refused for those credentials. If the 401 response contains the same challenge
3995 as the prior response, and the user agent has already attempted authentication
3996 at least once, then the user SHOULD be presented the entity that was given in the response,
3997 since that entity might include relevant diagnostic information.
3998
3999 HTTP access authentication is explained in rfc2617:
4000 http://www.ietf.org/rfc/rfc2617.txt
4001
4002 (description is taken from
4003 http://www.submissionchamber.com/help-guides/error-codes.php#sec10.4.2)
4004 </summary> 4127 </summary>
4128 <seealso cref="T:HttpServer.ILogWriter"/>
4005 </member> 4129 </member>
4006 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor"> 4130 <member name="F:HttpServer.ConsoleLogWriter.Instance">
4007 <summary> 4131 <summary>
4008 Create a new unauhtorized exception. 4132 The actual instance of this class.
4009 </summary> 4133 </summary>
4010 <seealso cref="T:HttpServer.Exceptions.UnauthorizedException"/>
4011 </member> 4134 </member>
4012 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor(System.String,System.Exception)"> 4135 <member name="M:HttpServer.ConsoleLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)">
4013 <summary> 4136 <summary>
4014 Create a new unauhtorized exception. 4137 Logwriters the specified source.
4015 </summary> 4138 </summary>
4016 <param name="message">reason to why the request was unauthorized.</param> 4139 <param name="source">object that wrote the logentry.</param>
4017 <param name="inner">inner exception</param> 4140 <param name="prio">Importance of the log message</param>
4141 <param name="message">The message.</param>
4018 </member> 4142 </member>
4019 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor(System.String)"> 4143 <member name="M:HttpServer.ConsoleLogWriter.GetColor(HttpServer.LogPrio)">
4020 <summary> 4144 <summary>
4021 Create a new unauhtorized exception. 4145 Get color for the specified logprio
4022 </summary> 4146 </summary>
4023 <param name="message">reason to why the request was unauthorized.</param> 4147 <param name="prio">prio for the log entry</param>
4148 <returns>A <see cref="T:System.ConsoleColor"/> for the prio</returns>
4024 </member> 4149 </member>
4025 <member name="T:HttpServer.ContentType"> 4150 <member name="T:HttpServer.NullLogWriter">
4026 <summary> 4151 <summary>
4027 Lists content type mime types. 4152 Default log writer, writes everything to null (nowhere).
4028 </summary> 4153 </summary>
4154 <seealso cref="T:HttpServer.ILogWriter"/>
4029 </member> 4155 </member>
4030 <member name="F:HttpServer.ContentType.Text"> 4156 <member name="F:HttpServer.NullLogWriter.Instance">
4031 <summary> 4157 <summary>
4032 text/plain 4158 The logging instance.
4033 </summary> 4159 </summary>
4034 </member> 4160 </member>
4035 <member name="F:HttpServer.ContentType.Html"> 4161 <member name="M:HttpServer.NullLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)">
4036 <summary> 4162 <summary>
4037 text/haml 4163 Writes everything to null
4038 </summary> 4164 </summary>
4165 <param name="source">object that wrote the log entry.</param>
4166 <param name="prio">Importance of the log message</param>
4167 <param name="message">The message.</param>
4039 </member> 4168 </member>
4040 <member name="F:HttpServer.ContentType.Javascript"> 4169 <member name="T:HttpServer.HttpResponse">
4041 <summary> 4170 <summary>
4042 content type for javascript documents = application/javascript 4171 Response that is sent back to the web browser / client.
4043 </summary> 4172 </summary>
4044 <remarks> 4173 <remarks>
4045 <para> 4174 <para>
4046 RFC 4329 states that text/javascript have been superseeded by 4175 A response can be sent if different ways. The easiest one is
4047 application/javascript. You might still want to check browser versions 4176 to just fill the Body stream with content, everything else
4048 since older ones do not support application/javascript. 4177 will then be taken care of by the framework. The default content-type
4178 is text/html, you should change it if you send anything else.
4179 </para><para>
4180 The second and slightly more complex way is to send the response
4181 as parts. Start with sending the header using the SendHeaders method and
4182 then you can send the body using SendBody method, but do not forget
4183 to set <see cref="P:HttpServer.HttpResponse.ContentType"/> and <see cref="P:HttpServer.HttpResponse.ContentLength"/> before doing so.
4049 </para> 4184 </para>
4050 <para>Browser support: http://krijnhoetmer.nl/stuff/javascript/mime-types/</para>
4051 </remarks> 4185 </remarks>
4186 <example>
4187 <code>
4188 // Example using response body.
4189 class MyModule : HttpModule
4190 {
4191 public override bool Process(IHttpRequest request, IHttpResponse response, IHttpSession session)
4192 {
4193 StreamWriter writer = new StreamWriter(response.Body);
4194 writer.WriteLine("Hello dear World!");
4195 writer.Flush();
4196
4197 // return true to tell webserver that we've handled the url
4198 return true;
4199 }
4200 }
4201 </code>
4202 </example>
4203 todo: add two examples, using SendHeaders/SendBody and just the Body stream.
4052 </member> 4204 </member>
4053 <member name="F:HttpServer.ContentType.Xml"> 4205 <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
4054 <summary> 4206 <summary>
4055 text/xml 4207 Initializes a new instance of the <see cref="T:HttpServer.IHttpResponse"/> class.
4056 </summary> 4208 </summary>
4209 <param name="context">Client that send the <see cref="T:HttpServer.IHttpRequest"/>.</param>
4210 <param name="request">Contains information of what the client want to receive.</param>
4211 <exception cref="T:System.ArgumentException"><see cref="P:HttpServer.IHttpRequest.HttpVersion"/> cannot be empty.</exception>
4057 </member> 4212 </member>
4058 <member name="T:HttpServer.ContentTypes"> 4213 <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,System.String,HttpServer.ConnectionType)">
4059 <summary> 4214 <summary>
4060 A list of content types 4215 Initializes a new instance of the <see cref="T:HttpServer.IHttpResponse"/> class.
4061 </summary> 4216 </summary>
4217 <param name="context">Client that send the <see cref="T:HttpServer.IHttpRequest"/>.</param>
4218 <param name="httpVersion">Version of HTTP protocol that the client uses.</param>
4219 <param name="connectionType">Type of HTTP connection used.</param>
4062 </member> 4220 </member>
4063 <member name="M:HttpServer.ContentTypes.#ctor(System.String)"> 4221 <member name="M:HttpServer.HttpResponse.AddHeader(System.String,System.String)">
4064 <summary> 4222 <summary>
4065 4223 Add another header to the document.
4066 </summary> 4224 </summary>
4067 <param name="types">Semicolon separated content types.</param> 4225 <param name="name">Name of the header, case sensitive, use lower cases.</param>
4226 <param name="value">Header values can span over multiple lines as long as each line starts with a white space. New line chars should be \r\n</param>
4227 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
4228 <exception cref="T:System.ArgumentException">If value conditions have not been met.</exception>
4229 <remarks>Adding any header will override the default ones and those specified by properties.</remarks>
4068 </member> 4230 </member>
4069 <member name="M:HttpServer.ContentTypes.GetEnumerator"> 4231 <member name="M:HttpServer.HttpResponse.Send">
4070 <summary> 4232 <summary>
4071 Returns an enumerator that iterates through a collection. 4233 Send headers and body to the browser.
4072 </summary> 4234 </summary>
4073 <returns> 4235 <exception cref="T:System.InvalidOperationException">If content have already been sent.</exception>
4074 An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
4075 </returns>
4076 </member> 4236 </member>
4077 <member name="M:HttpServer.ContentTypes.Contains(System.String)"> 4237 <member name="M:HttpServer.HttpResponse.SendBody(System.Byte[],System.Int32,System.Int32)">
4078 <summary> 4238 <summary>
4079 Searches for the specified type 4239 Make sure that you have specified <see cref="P:HttpServer.HttpResponse.ContentLength"/> and sent the headers first.
4080 </summary> 4240 </summary>
4081 <param name="type">Can also be a part of a type (searching for "xml" would return true for "application/xml").</param> 4241 <param name="buffer"></param>
4082 <returns>true if type was found.</returns> 4242 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
4243 <see cref="M:HttpServer.HttpResponse.SendHeaders"/>
4244 <param name="offset">offset of first byte to send</param>
4245 <param name="count">number of bytes to send.</param>
4246 <seealso cref="M:HttpServer.HttpResponse.Send"/>
4247 <seealso cref="M:HttpServer.HttpResponse.SendHeaders"/>
4248 <remarks>This method can be used if you want to send body contents without caching them first. This
4249 is recommended for larger files to keep the memory usage low.</remarks>
4083 </member> 4250 </member>
4084 <member name="P:HttpServer.ContentTypes.First"> 4251 <member name="M:HttpServer.HttpResponse.SendBody(System.Byte[])">
4085 <summary> 4252 <summary>
4086 Get this first content type. 4253 Make sure that you have specified <see cref="P:HttpServer.HttpResponse.ContentLength"/> and sent the headers first.
4087 </summary> 4254 </summary>
4255 <param name="buffer"></param>
4256 <exception cref="T:System.InvalidOperationException">If headers have not been sent.</exception>
4257 <see cref="M:HttpServer.HttpResponse.SendHeaders"/>
4258 <seealso cref="M:HttpServer.HttpResponse.Send"/>
4259 <seealso cref="M:HttpServer.HttpResponse.SendHeaders"/>
4260 <remarks>This method can be used if you want to send body contents without caching them first. This
4261 is recommended for larger files to keep the memory usage low.</remarks>
4088 </member> 4262 </member>
4089 <member name="P:HttpServer.ContentTypes.Item(System.String)"> 4263 <member name="M:HttpServer.HttpResponse.SendHeaders">
4090 <summary> 4264 <summary>
4091 Fetch a content type 4265 Send headers to the client.
4092 </summary> 4266 </summary>
4093 <param name="type">Part of type ("xml" would return "application/xml")</param> 4267 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
4094 <returns></returns> 4268 <seealso cref="M:HttpServer.HttpResponse.AddHeader(System.String,System.String)"/>
4095 <remarks>All content types are in lower case.</remarks> 4269 <seealso cref="M:HttpServer.HttpResponse.Send"/>
4270 <seealso cref="M:HttpServer.HttpResponse.SendBody(System.Byte[])"/>
4096 </member> 4271 </member>
4097 <member name="T:HttpServer.Sessions.MemorySessionStore"> 4272 <member name="M:HttpServer.HttpResponse.Redirect(System.Uri)">
4098 <summary> 4273 <summary>
4099 Session store using memory for each session. 4274 Redirect client to somewhere else using the 302 status code.
4100 </summary> 4275 </summary>
4276 <param name="uri">Destination of the redirect</param>
4277 <exception cref="T:System.InvalidOperationException">If headers already been sent.</exception>
4278 <remarks>You can not do anything more with the request when a redirect have been done. This should be your last
4279 action.</remarks>
4101 </member> 4280 </member>
4102 <member name="M:HttpServer.Sessions.MemorySessionStore.#ctor"> 4281 <member name="M:HttpServer.HttpResponse.Redirect(System.String)">
4103 <summary> 4282 <summary>
4104 Initializes the class setting the expirationtimer to clean the session every minute 4283 redirect to somewhere
4105 </summary> 4284 </summary>
4285 <param name="url">where the redirect should go</param>
4286 <remarks>
4287 No body are allowed when doing redirects.
4288 </remarks>
4106 </member> 4289 </member>
4107 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup(System.Object)"> 4290 <member name="P:HttpServer.HttpResponse.Body">
4108 <summary> 4291 <summary>
4109 Delegate for the cleanup timer 4292 The body stream is used to cache the body contents
4293 before sending everything to the client. It's the simplest
4294 way to serve documents.
4110 </summary> 4295 </summary>
4111 </member> 4296 </member>
4112 <member name="M:HttpServer.Sessions.MemorySessionStore.Create"> 4297 <member name="P:HttpServer.HttpResponse.Chunked">
4113 <summary> 4298 <summary>
4114 Creates a new http session 4299 The chunked encoding modifies the body of a message in order to
4300 transfer it as a series of chunks, each with its own size indicator,
4301 followed by an OPTIONAL trailer containing entity-header fields. This
4302 allows dynamically produced content to be transferred along with the
4303 information necessary for the recipient to verify that it has
4304 received the full message.
4115 </summary> 4305 </summary>
4116 <returns></returns>
4117 </member> 4306 </member>
4118 <member name="M:HttpServer.Sessions.MemorySessionStore.Create(System.String)"> 4307 <member name="P:HttpServer.HttpResponse.ProtocolVersion">
4119 <summary> 4308 <summary>
4120 Creates a new http session with a specific id 4309 Defines the version of the HTTP Response for applications where it's required
4310 for this to be forced.
4121 </summary> 4311 </summary>
4122 <param name="id">Id used to identify the new cookie..</param>
4123 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns>
4124 <remarks>
4125 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>.
4126 </remarks>
4127 </member> 4312 </member>
4128 <member name="M:HttpServer.Sessions.MemorySessionStore.Load(System.String)"> 4313 <member name="P:HttpServer.HttpResponse.Connection">
4129 <summary> 4314 <summary>
4130 Load an existing session. 4315 Kind of connection
4131 </summary> 4316 </summary>
4132 <param name="sessionId"></param>
4133 <returns></returns>
4134 </member> 4317 </member>
4135 <member name="M:HttpServer.Sessions.MemorySessionStore.Save(HttpServer.Sessions.IHttpSession)"> 4318 <member name="P:HttpServer.HttpResponse.Encoding">
4136 <summary> 4319 <summary>
4137 Save an updated session to the store. 4320 Encoding to use when sending stuff to the client.
4138 </summary> 4321 </summary>
4139 <param name="session"></param> 4322 <remarks>Default is UTF8</remarks>
4140 </member> 4323 </member>
4141 <member name="M:HttpServer.Sessions.MemorySessionStore.AddUnused(HttpServer.Sessions.IHttpSession)"> 4324 <member name="P:HttpServer.HttpResponse.KeepAlive">
4142 <summary> 4325 <summary>
4143 We use the flyweight pattern which reuses small objects 4326 Number of seconds to keep connection alive
4144 instead of creating new each time.
4145 </summary> 4327 </summary>
4146 <param name="session">EmptyLanguageNode (unused) session that should be reused next time Create is called.</param> 4328 <remarks>Only used if Connection property is set to <see cref="F:HttpServer.ConnectionType.KeepAlive"/>.</remarks>
4147 </member> 4329 </member>
4148 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup"> 4330 <member name="P:HttpServer.HttpResponse.Status">
4149 <summary> 4331 <summary>
4150 Remove expired sessions 4332 Status code that is sent to the client.
4151 </summary> 4333 </summary>
4334 <remarks>Default is <see cref="F:System.Net.HttpStatusCode.OK"/></remarks>
4152 </member> 4335 </member>
4153 <member name="M:HttpServer.Sessions.MemorySessionStore.Remove(System.String)"> 4336 <member name="P:HttpServer.HttpResponse.Reason">
4154 <summary> 4337 <summary>
4155 Remove a session 4338 Information about why a specific status code was used.
4156 </summary> 4339 </summary>
4157 <param name="sessionId">id of the session.</param>
4158 </member> 4340 </member>
4159 <member name="P:HttpServer.Sessions.MemorySessionStore.Item(System.String)"> 4341 <member name="P:HttpServer.HttpResponse.ContentLength">
4160 <summary> 4342 <summary>
4161 Load a session from the store 4343 Size of the body. MUST be specified before sending the header,
4344 unless property Chunked is set to true.
4162 </summary> 4345 </summary>
4163 <param name="sessionId"></param>
4164 <returns>null if session is not found.</returns>
4165 </member> 4346 </member>
4166 <member name="P:HttpServer.Sessions.MemorySessionStore.ExpireTime"> 4347 <member name="P:HttpServer.HttpResponse.ContentType">
4167 <summary> 4348 <summary>
4168 Number of minutes before a session expires. 4349 Kind of content in the body
4169 Default is 20 minutes.
4170 </summary> 4350 </summary>
4351 <remarks>Default type is "text/html"</remarks>
4171 </member> 4352 </member>
4172 <member name="T:HttpServer.Helpers.WebHelper"> 4353 <member name="P:HttpServer.HttpResponse.HeadersSent">
4173 <summary> 4354 <summary>
4174 Webhelper provides helpers for common tasks in HTML. 4355 Headers have been sent to the client-
4175 </summary> 4356 </summary>
4357 <remarks>You can not send any additional headers if they have already been sent.</remarks>
4176 </member> 4358 </member>
4177 <member name="F:HttpServer.Helpers.WebHelper.JSImplementation"> 4359 <member name="P:HttpServer.HttpResponse.Sent">
4178 <summary> 4360 <summary>
4179 Used to let the website use different javascript libraries. 4361 The whole response have been sent.
4180 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/>
4181 </summary> 4362 </summary>
4182 </member> 4363 </member>
4183 <member name="M:HttpServer.Helpers.WebHelper.AjaxRequest(System.String,System.String,System.String[])"> 4364 <member name="P:HttpServer.HttpResponse.Cookies">
4184 <summary> 4365 <summary>
4185 Creates a link that invokes through ajax. 4366 Cookies that should be created/changed.
4186 </summary> 4367 </summary>
4187 <param name="url">url to fetch</param>
4188 <param name="title">link title</param>
4189 <param name="options">
4190 optional options in format "key, value, key, value".
4191 Javascript options starts with ':'.
4192 </param>
4193 <returns>a link tag</returns>
4194 <example>
4195 WebHelper.AjaxRequest("/users/add/", "Add user", "method:", "post", "onclick", "validate('this');");
4196 </example>
4197 </member> 4368 </member>
4198 <member name="M:HttpServer.Helpers.WebHelper.AjaxUpdater(System.String,System.String,System.String,System.String[])"> 4369 <member name="T:HttpServer.Exceptions.NotFoundException">
4199 <summary> 4370 <summary>
4200 Builds a link that updates an element with the fetched ajax content. 4371 The requested resource was not found in the web server.
4201 </summary> 4372 </summary>
4202 <param name="url">Url to fetch content from</param>
4203 <param name="title">link title</param>
4204 <param name="targetId">html element to update with the results of the ajax request.</param>
4205 <param name="options">optional options in format "key, value, key, value"</param>
4206 <returns>A link tag.</returns>
4207 </member> 4373 </member>
4208 <member name="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])"> 4374 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String,System.Exception)">
4209 <summary> 4375 <summary>
4210 A link that pop ups a Dialog (overlay div) 4376 Create a new exception
4211 </summary> 4377 </summary>
4212 <param name="url">url to contents of dialog</param> 4378 <param name="message">message describing the error</param>
4213 <param name="title">link title</param> 4379 <param name="inner">inner exception</param>
4214 <param name="htmlAttributes">name/value of html attributes.</param>
4215 <returns>A "a"-tag that popups a dialog when clicked</returns>
4216 <example>
4217 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
4218 </example>
4219 </member> 4380 </member>
4220 <member name="M:HttpServer.Helpers.WebHelper.CreateDialog(System.String,System.String,System.String[])"> 4381 <member name="M:HttpServer.Exceptions.NotFoundException.#ctor(System.String)">
4221 <summary> 4382 <summary>
4222 Create/Open a dialog box using ajax 4383 Create a new exception
4223 </summary> 4384 </summary>
4224 <param name="url"></param> 4385 <param name="message">message describing the error</param>
4225 <param name="title"></param>
4226 <param name="parameters"></param>
4227 <returns></returns>
4228 </member> 4386 </member>
4229 <member name="M:HttpServer.Helpers.WebHelper.CloseDialog"> 4387 <member name="T:HttpServer.ContextTimeoutManager">
4230 <summary> 4388 <summary>
4231 Close a javascript dialog window/div. 4389 Timeout Manager. Checks for dead clients. Clients with open connections that are not doing anything. Closes sessions opened with keepalive.
4232 </summary> 4390 </summary>
4233 <returns>javascript for closing a dialog.</returns>
4234 <see cref="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])"/>
4235 </member> 4391 </member>
4236 <member name="M:HttpServer.Helpers.WebHelper.FormStart(System.String,System.String,System.Boolean)"> 4392 <member name="M:HttpServer.ContextTimeoutManager.ProcessContextTimeouts">
4237 <summary> 4393 <summary>
4238 Create a &lt;form&gt; tag. 4394 Causes the watcher to immediately check the connections.
4239 </summary> 4395 </summary>
4240 <param name="name">name of form</param>
4241 <param name="action">action to invoke on submit</param>
4242 <param name="isAjax">form should be posted as ajax</param>
4243 <returns>html code</returns>
4244 <example>
4245 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
4246 </example>
4247 </member> 4396 </member>
4248 <member name="M:HttpServer.Helpers.WebHelper.Link(System.String,System.String,System.String[])"> 4397 <member name="M:HttpServer.ContextTimeoutManager.EnvironmentTickCount">
4249 <summary> 4398 <summary>
4250 Create a link tag. 4399 Environment.TickCount is an int but it counts all 32 bits so it goes positive
4400 and negative every 24.9 days. This trims down TickCount so it doesn't wrap
4401 for the callers.
4402 This trims it to a 12 day interval so don't let your frame time get too long.
4251 </summary> 4403 </summary>
4252 <param name="url">url to go to</param> 4404 <returns></returns>
4253 <param name="title">link title (text that is displayed)</param>
4254 <param name="htmlAttributes">html attributes, name, value, name, value</param>
4255 <returns>html code</returns>
4256 <example>
4257 WebHelper.Link("/user/show/1", "Show user", "id", "showUser", "onclick", "return confirm('Are you shure?');");
4258 </example>
4259 </member> 4405 </member>
4260 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[])"> 4406 <member name="M:HttpServer.ContextTimeoutManager.EnvironmentTickCountSubtract(System.Int32,System.Int32)">
4261 <summary> 4407 <summary>
4262 Build a link 4408 Environment.TickCount is an int but it counts all 32 bits so it goes positive
4409 and negative every 24.9 days. Subtracts the passed value (previously fetched by
4410 'EnvironmentTickCount()') and accounts for any wrapping.
4263 </summary> 4411 </summary>
4264 <param name="url">url to go to.</param> 4412 <param name="newValue"></param>
4265 <param name="title">title of link (displayed text)</param> 4413 <param name="prevValue"></param>
4266 <param name="htmlAttributes">extra html attributes.</param> 4414 <returns>subtraction of passed prevValue from current Environment.TickCount</returns>
4267 <returns>a complete link</returns>
4268 </member> 4415 </member>
4269 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[],System.String[])"> 4416 <member name="M:HttpServer.ContextTimeoutManager.EnvironmentTickCountAdd(System.Int32,System.Int32)">
4270 <summary> 4417 <summary>
4271 Build a link 4418 Environment.TickCount is an int but it counts all 32 bits so it goes positive
4419 and negative every 24.9 days. Subtracts the passed value (previously fetched by
4420 'EnvironmentTickCount()') and accounts for any wrapping.
4272 </summary> 4421 </summary>
4273 <param name="url">url to go to.</param> 4422 <param name="newValue"></param>
4274 <param name="title">title of link (displayed text)</param> 4423 <param name="prevValue"></param>
4275 <param name="htmlAttributes">extra html attributes.</param> 4424 <returns>subtraction of passed prevValue from current Environment.TickCount</returns>
4276 <returns>a complete link</returns>
4277 <param name="options">more options</param>
4278 </member> 4425 </member>
4279 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"> 4426 <member name="M:HttpServer.ContextTimeoutManager.EnvironmentTickCountSubtract(System.Int32)">
4280 <summary> 4427 <summary>
4281 Obsolete 4428 Environment.TickCount is an int but it counts all 32 bits so it goes positive
4429 and negative every 24.9 days. Subtracts the passed value (previously fetched by
4430 'EnvironmentTickCount()') and accounts for any wrapping.
4282 </summary> 4431 </summary>
4283 <param name="name">Obsolete</param> 4432 <returns>subtraction of passed prevValue from current Environment.TickCount</returns>
4284 <param name="collection">Obsolete</param>
4285 <param name="getIdTitle">Obsolete</param>
4286 <param name="selectedValue">Obsolete</param>
4287 <param name="firstEmpty">Obsolete</param>
4288 <returns>Obsolete</returns>
4289 </member> 4433 </member>
4290 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)"> 4434 <member name="T:HttpServer.ContextTimeoutManager.MonitorType">
4291 <summary> 4435 <summary>
4292 Obsolete 4436 Use a Thread or a Timer to monitor the ugly
4293 </summary> 4437 </summary>
4294 <param name="name">Obsolete</param>
4295 <param name="id">Obsolete</param>
4296 <param name="collection">Obsolete</param>
4297 <param name="getIdTitle">Obsolete</param>
4298 <param name="selectedValue">Obsolete</param>
4299 <param name="firstEmpty">Obsolete</param>
4300 <returns>Obsolete</returns>
4301 </member> 4438 </member>
4302 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Generic.IEnumerable{System.Object},System.String)"> 4439 <member name="T:HttpServer.Sessions.MemorySessionStore">
4303 <summary> 4440 <summary>
4304 Render errors into a UL with class "errors" 4441 Session store using memory for each session.
4305 </summary> 4442 </summary>
4306 <param name="className">class used by UL-tag.</param>
4307 <param name="theList">items to list</param>
4308 <returns>an unordered html list.</returns>
4309 </member> 4443 </member>
4310 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Specialized.NameValueCollection,System.String)"> 4444 <member name="T:HttpServer.Sessions.IHttpSessionStore">
4311 <summary> 4445 <summary>
4312 Render errors into a UL with class "errors" 4446 A session store is used to store and load sessions on a media.
4447 The default implementation (<see cref="T:HttpServer.Sessions.MemorySessionStore"/>) saves/retrieves sessions from memory.
4313 </summary> 4448 </summary>
4314 <param name="className">class used by UL-tag.</param>
4315 <param name="theList">items to list</param>
4316 <returns>an unordered html list.</returns>
4317 </member> 4449 </member>
4318 <member name="M:HttpServer.Helpers.WebHelper.Errors(System.Collections.Specialized.NameValueCollection)"> 4450 <member name="M:HttpServer.Sessions.IHttpSessionStore.Create">
4319 <summary> 4451 <summary>
4320 Render errors into a UL with class "errors" 4452 Creates a new http session with a generated id.
4321 </summary> 4453 </summary>
4322 <param name="errors"></param> 4454 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object</returns>
4323 <returns></returns>
4324 </member> 4455 </member>
4325 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[],System.String[])"> 4456 <member name="M:HttpServer.Sessions.IHttpSessionStore.Create(System.String)">
4326 <summary> 4457 <summary>
4327 Generates a list with html attributes. 4458 Creates a new http session with a specific id
4328 </summary> 4459 </summary>
4329 <param name="sb">StringBuilder that the options should be added to.</param> 4460 <param name="id">Id used to identify the new cookie..</param>
4330 <param name="firstOptions">attributes set by user.</param> 4461 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns>
4331 <param name="secondOptions">attributes set by any of the helper classes.</param> 4462 <remarks>
4463 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>.
4464 </remarks>
4332 </member> 4465 </member>
4333 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[])"> 4466 <member name="M:HttpServer.Sessions.IHttpSessionStore.Load(System.String)">
4334 <summary> 4467 <summary>
4335 Generates a list with html attributes. 4468 Load an existing session.
4336 </summary> 4469 </summary>
4337 <param name="sb">StringBuilder that the options should be added to.</param> 4470 <param name="sessionId">Session id (usually retrieved from a client side cookie).</param>
4338 <param name="options"></param> 4471 <returns>A session if found; otherwise null.</returns>
4339 </member> 4472 </member>
4340 <member name="T:HttpServer.Helpers.JavascriptHelperImplementation"> 4473 <member name="M:HttpServer.Sessions.IHttpSessionStore.Save(HttpServer.Sessions.IHttpSession)">
4341 <summary> 4474 <summary>
4342 Purpose of this class is to create a javascript toolkit independent javascript helper. 4475 Save an updated session to the store.
4343 </summary> 4476 </summary>
4477 <param name="session">Session id (usually retrieved from a client side cookie).</param>
4478 <exception cref="T:System.ArgumentException">If Id property have not been specified.</exception>
4344 </member> 4479 </member>
4345 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.GenerateOptions(System.Text.StringBuilder,System.String[],System.Boolean)"> 4480 <member name="M:HttpServer.Sessions.IHttpSessionStore.AddUnused(HttpServer.Sessions.IHttpSession)">
4346 <summary> 4481 <summary>
4347 Generates a list with JS options. 4482 We use the flyweight pattern which reuses small objects
4483 instead of creating new each time.
4348 </summary> 4484 </summary>
4349 <param name="sb">StringBuilder that the options should be added to.</param> 4485 <param name="session">Unused session that should be reused next time Create is called.</param>
4350 <param name="options">the javascript options. name, value pairs. each string value should be escaped by YOU!</param>
4351 <param name="startWithComma">true if we should start with a comma.</param>
4352 </member> 4486 </member>
4353 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.RemoveJavascriptOptions(System.String[])"> 4487 <member name="M:HttpServer.Sessions.IHttpSessionStore.Cleanup">
4354 <summary> 4488 <summary>
4355 Removes any javascript parameters from an array of parameters 4489 Remove expired sessions
4356 </summary> 4490 </summary>
4357 <param name="options">The array of parameters to remove javascript params from</param>
4358 <returns>An array of html parameters</returns>
4359 </member> 4491 </member>
4360 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxFormOnSubmit(System.String[])"> 4492 <member name="M:HttpServer.Sessions.IHttpSessionStore.Remove(System.String)">
4361 <summary> 4493 <summary>
4362 javascript action that should be added to the "onsubmit" event in the form tag. 4494 Remove a session
4363 </summary> 4495 </summary>
4364 <returns></returns> 4496 <param name="sessionId">id of the session.</param>
4365 <remarks>All javascript option names should end with colon.</remarks>
4366 <example>
4367 <code>
4368 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
4369 </code>
4370 </example>
4371 </member> 4497 </member>
4372 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxRequest(System.String,System.String[])"> 4498 <member name="P:HttpServer.Sessions.IHttpSessionStore.Item(System.String)">
4373 <summary> 4499 <summary>
4374 Requests a url through ajax 4500 Load a session from the store
4375 </summary> 4501 </summary>
4376 <param name="url">url to fetch</param> 4502 <param name="sessionId"></param>
4377 <param name="options">optional options in format "key, value, key, value", used in JS request object.</param> 4503 <returns>null if session is not found.</returns>
4378 <returns>a link tag</returns>
4379 <remarks>All javascript option names should end with colon.</remarks>
4380 <example>
4381 <code>
4382 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
4383 </code>
4384 </example>
4385 </member> 4504 </member>
4386 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.AjaxUpdater(System.String,System.String,System.String[])"> 4505 <member name="P:HttpServer.Sessions.IHttpSessionStore.ExpireTime">
4387 <summary> 4506 <summary>
4388 Ajax requests that updates an element with 4507 Number of minutes before a session expires.
4389 the fetched content
4390 </summary> 4508 </summary>
4391 <param name="url">Url to fetch content from</param> 4509 <value>Default time is 20 minutes.</value>
4392 <param name="targetId">element to update</param>
4393 <param name="options">optional options in format "key, value, key, value", used in JS updater object.</param>
4394 <returns>A link tag.</returns>
4395 <remarks>All javascript option names should end with colon.</remarks>
4396 <example>
4397 <code>
4398 JSHelper.AjaxUpdater("/user/show/1", "userInfo", "onsuccess:", "alert('Successful!');");
4399 </code>
4400 </example>
4401 </member> 4510 </member>
4402 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])"> 4511 <member name="M:HttpServer.Sessions.MemorySessionStore.#ctor">
4403 <summary> 4512 <summary>
4404 A link that pop ups a Dialog (overlay div) 4513 Initializes the class setting the expirationtimer to clean the session every minute
4405 </summary> 4514 </summary>
4406 <param name="url">url to contents of dialog</param>
4407 <param name="title">link title</param>
4408 <returns>A "a"-tag that popups a dialog when clicked</returns>
4409 <param name="htmlAttributes">name/value of html attributes</param>
4410 <example>
4411 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
4412 </example>
4413 </member> 4515 </member>
4414 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CloseDialog"> 4516 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup(System.Object)">
4415 <summary> 4517 <summary>
4416 Close a javascript dialog window/div. 4518 Delegate for the cleanup timer
4417 </summary> 4519 </summary>
4418 <returns>javascript for closing a dialog.</returns>
4419 <see cref="M:HttpServer.Helpers.JavascriptHelperImplementation.DialogLink(System.String,System.String,System.String[])"/>
4420 </member> 4520 </member>
4421 <member name="M:HttpServer.Helpers.JavascriptHelperImplementation.CreateDialog(System.String,System.String,System.String[])"> 4521 <member name="M:HttpServer.Sessions.MemorySessionStore.Create">
4422 <summary> 4522 <summary>
4423 Creates a new modal dialog window 4523 Creates a new http session
4424 </summary> 4524 </summary>
4425 <param name="url">url to open in window.</param>
4426 <param name="title">window title (may not be supported by all js implementations)</param>
4427 <param name="options"></param>
4428 <returns></returns> 4525 <returns></returns>
4429 </member> 4526 </member>
4430 <member name="M:HttpServer.FormDecoders.HttpMultipart.ReadLine"> 4527 <member name="M:HttpServer.Sessions.MemorySessionStore.Create(System.String)">
4431 <summary> 4528 <summary>
4432 4529 Creates a new http session with a specific id
4530 </summary>
4531 <param name="id">Id used to identify the new cookie..</param>
4532 <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns>
4533 <remarks>
4534 Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>.
4535 </remarks>
4536 </member>
4537 <member name="M:HttpServer.Sessions.MemorySessionStore.Load(System.String)">
4538 <summary>
4539 Load an existing session.
4433 </summary> 4540 </summary>
4541 <param name="sessionId"></param>
4434 <returns></returns> 4542 <returns></returns>
4435 <exception cref="T:System.ArgumentOutOfRangeException"></exception>
4436 <exception cref="T:System.ObjectDisposedException"></exception>
4437 </member> 4543 </member>
4438 <member name="T:HttpServer.FormDecoders.HttpMultipart.Element"> 4544 <member name="M:HttpServer.Sessions.MemorySessionStore.Save(HttpServer.Sessions.IHttpSession)">
4439 <summary>Represents a field in a multipart form</summary> 4545 <summary>
4546 Save an updated session to the store.
4547 </summary>
4548 <param name="session"></param>
4440 </member> 4549 </member>
4441 <member name="T:HttpServer.Exceptions.BadRequestException"> 4550 <member name="M:HttpServer.Sessions.MemorySessionStore.AddUnused(HttpServer.Sessions.IHttpSession)">
4442 <summary> 4551 <summary>
4443 The request could not be understood by the server due to malformed syntax. 4552 We use the flyweight pattern which reuses small objects
4444 The client SHOULD NOT repeat the request without modifications. 4553 instead of creating new each time.
4445
4446 Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
4447 </summary> 4554 </summary>
4555 <param name="session">EmptyLanguageNode (unused) session that should be reused next time Create is called.</param>
4448 </member> 4556 </member>
4449 <member name="M:HttpServer.Exceptions.BadRequestException.#ctor(System.String)"> 4557 <member name="M:HttpServer.Sessions.MemorySessionStore.Cleanup">
4450 <summary> 4558 <summary>
4451 Create a new bad request exception. 4559 Remove expired sessions
4452 </summary> 4560 </summary>
4453 <param name="errMsg">reason to why the request was bad.</param>
4454 </member> 4561 </member>
4455 <member name="M:HttpServer.Exceptions.BadRequestException.#ctor(System.String,System.Exception)"> 4562 <member name="M:HttpServer.Sessions.MemorySessionStore.Remove(System.String)">
4456 <summary> 4563 <summary>
4457 Create a new bad request exception. 4564 Remove a session
4458 </summary> 4565 </summary>
4459 <param name="errMsg">reason to why the request was bad.</param> 4566 <param name="sessionId">id of the session.</param>
4460 <param name="inner">inner exception</param>
4461 </member> 4567 </member>
4462 <member name="T:HttpServer.HttpFile"> 4568 <member name="P:HttpServer.Sessions.MemorySessionStore.Item(System.String)">
4463 <summary> 4569 <summary>
4464 Container class for posted files 4570 Load a session from the store
4465 </summary> 4571 </summary>
4572 <param name="sessionId"></param>
4573 <returns>null if session is not found.</returns>
4466 </member> 4574 </member>
4467 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)"> 4575 <member name="P:HttpServer.Sessions.MemorySessionStore.ExpireTime">
4468 <summary> 4576 <summary>
4469 Creates a container for a posted file 4577 Number of minutes before a session expires.
4578 Default is 20 minutes.
4470 </summary> 4579 </summary>
4471 <param name="name">The identifier of the post field</param>
4472 <param name="filename">The file path</param>
4473 <param name="contentType">The content type of the file</param>
4474 <param name="uploadFilename">The name of the file uploaded</param>
4475 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception>
4476 </member> 4580 </member>
4477 <member name="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String)"> 4581 <member name="T:HttpServer.Sessions.HttpSessionClearedArgs">
4478 <summary> 4582 <summary>
4479 Creates a container for a posted file <see cref="M:HttpServer.HttpFile.#ctor(System.String,System.String,System.String,System.String)"/> 4583 Arguments sent when a <see cref="T:HttpServer.Sessions.IHttpSession"/> is cleared
4480 </summary> 4584 </summary>
4481 <exception cref="T:System.ArgumentNullException">If any parameter is null or empty</exception>
4482 </member> 4585 </member>
4483 <member name="M:HttpServer.HttpFile.Finalize"> 4586 <member name="M:HttpServer.Sessions.HttpSessionClearedArgs.#ctor(System.Boolean)">
4484 <summary>Destructor disposing the file</summary> 4587 <summary>
4588 Instantiates the arguments for the event
4589 </summary>
4590 <param name="expired">True if the session is cleared due to expiration</param>
4485 </member> 4591 </member>
4486 <member name="M:HttpServer.HttpFile.Dispose(System.Boolean)"> 4592 <member name="P:HttpServer.Sessions.HttpSessionClearedArgs.Expired">
4487 <summary> 4593 <summary>
4488 Deletes the temporary file 4594 Returns true if the session is cleared due to expiration
4489 </summary> 4595 </summary>
4490 <param name="disposing">True if manual dispose</param>
4491 </member> 4596 </member>
4492 <member name="M:HttpServer.HttpFile.Dispose"> 4597 <member name="T:HttpServer.Sessions.HttpSessionClearedHandler">
4493 <summary> 4598 <summary>
4494 Disposing interface, cleans up managed resources (the temporary file) and suppresses finalization 4599 Delegate for when a IHttpSession is cleared
4495 </summary> 4600 </summary>
4601 <param name="session"><see cref="T:HttpServer.Sessions.IHttpSession"/> this is being cleared.</param>
4602 <param name="args">Arguments for the clearing</param>
4496 </member> 4603 </member>
4497 <member name="P:HttpServer.HttpFile.Name"> 4604 <member name="T:HttpServer.RequestQueue">
4498 <summary> 4605 <summary>
4499 The name/id of the file 4606 Used to queue incoming requests.
4500 </summary> 4607 </summary>
4501 </member> 4608 </member>
4502 <member name="P:HttpServer.HttpFile.Filename"> 4609 <member name="M:HttpServer.RequestQueue.#ctor(HttpServer.ProcessRequestHandler)">
4503 <summary> 4610 <summary>
4504 The full file path 4611 Initializes a new instance of the <see cref="T:HttpServer.RequestQueue"/> class.
4505 </summary> 4612 </summary>
4613 <param name="handler">Called when a request should be processed.</param>
4506 </member> 4614 </member>
4507 <member name="P:HttpServer.HttpFile.UploadFilename"> 4615 <member name="M:HttpServer.RequestQueue.QueueThread">
4508 <summary> 4616 <summary>
4509 The name of the uploaded file 4617 Used to process queued requests.
4510 </summary> 4618 </summary>
4511 </member> 4619 </member>
4512 <member name="P:HttpServer.HttpFile.ContentType"> 4620 <member name="P:HttpServer.RequestQueue.MaxRequestCount">
4513 <summary> 4621 <summary>
4514 The type of file 4622 Gets or sets maximum number of allowed simultaneous requests.
4515 </summary> 4623 </summary>
4516 </member> 4624 </member>
4517 <member name="T:HttpServer.Helpers.JSHelper"> 4625 <member name="P:HttpServer.RequestQueue.MaxQueueSize">
4518 <summary> 4626 <summary>
4519 Will contain helper functions for javascript. 4627 Gets or sets maximum number of requests queuing to be handled.
4520 </summary> 4628 </summary>
4521 </member> 4629 </member>
4522 <member name="M:HttpServer.Helpers.JSHelper.AjaxRequest(System.String,System.String[])"> 4630 <member name="P:HttpServer.RequestQueue.CurrentRequestCount">
4523 <summary> 4631 <summary>
4524 Requests a url through ajax 4632 Specifies how many requests the HTTP server is currently processing.
4525 </summary> 4633 </summary>
4526 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
4527 <param name="options">optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.</param>
4528 <returns>a link tag</returns>
4529 <remarks>onclick attribute is used by this method.</remarks>
4530 <example>
4531 <code>
4532 // plain text
4533 JSHelper.AjaxRequest("'/user/show/1'");
4534
4535 // ajax request using this.href
4536 string link = "&lt;a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/&lt;call user&lt;/a&gt;";
4537 </code>
4538 </example>
4539 </member> 4634 </member>
4540 <member name="M:HttpServer.Helpers.JSHelper.AjaxUpdater(System.String,System.String,System.String[])"> 4635 <member name="T:HttpServer.RequestQueue.QueueItem">
4541 <summary> 4636 <summary>
4542 Ajax requests that updates an element with 4637 Used two queue incoming requests to avoid
4543 the fetched content 4638 thread starvation.
4544 </summary> 4639 </summary>
4545 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
4546 <param name="targetId">element to update</param>
4547 <param name="options">options in format "key, value, key, value". All keys should end with colon.</param>
4548 <returns>A link tag.</returns>
4549 <example>
4550 <code>
4551 JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true");
4552 </code>
4553 </example>
4554 </member> 4640 </member>
4555 <member name="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])"> 4641 <member name="T:HttpServer.ProcessRequestHandler">
4556 <summary> 4642 <summary>
4557 Opens contents in a dialog window. 4643 Method used to process a queued request
4558 </summary> 4644 </summary>
4559 <param name="url">url to contents of dialog</param> 4645 <param name="context">Context that the request was received from.</param>
4560 <param name="title">link title</param> 4646 <param name="request">Request to process.</param>
4561 <param name="options">name, value, name, value, all parameter names should end with colon.</param>
4562 </member> 4647 </member>
4563 <member name="M:HttpServer.Helpers.JSHelper.CloseDialog"> 4648 <member name="T:HttpServer.Parser.HeaderEventArgs">
4564 <summary> 4649 <summary>
4565 Close a javascript dialog window/div. 4650 Event arguments used when a new header have been parsed.
4651 </summary>
4652 </member>
4653 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor(System.String,System.String)">
4654 <summary>
4655 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class.
4656 </summary>
4657 <param name="name">Name of header.</param>
4658 <param name="value">Header value.</param>
4659 </member>
4660 <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor">
4661 <summary>
4662 Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class.
4663 </summary>
4664 </member>
4665 <member name="P:HttpServer.Parser.HeaderEventArgs.Name">
4666 <summary>
4667 Gets or sets header name.
4668 </summary>
4669 </member>
4670 <member name="P:HttpServer.Parser.HeaderEventArgs.Value">
4671 <summary>
4672 Gets or sets header value.
4566 </summary> 4673 </summary>
4567 <returns>javascript for closing a dialog.</returns>
4568 <see cref="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])"/>
4569 </member> 4674 </member>
4570 <member name="T:HttpServer.HttpRequest"> 4675 <member name="T:HttpServer.HttpRequest">
4571 <summary> 4676 <summary>
@@ -4743,34 +4848,108 @@
4743 Gets cookies that was sent with the request. 4848 Gets cookies that was sent with the request.
4744 </summary> 4849 </summary>
4745 </member> 4850 </member>
4746 <member name="T:HttpServer.HttpModules.WebSiteModule"> 4851 <member name="M:HttpServer.ComponentProvider.AddInstance``1(System.Object)">
4747 <summary> 4852 <summary>
4748 The website module let's you handle multiple websites in the same server. 4853 Add a component instance
4749 It uses the "Host" header to check which site you want.
4750 </summary> 4854 </summary>
4751 <remarks>It's recommended that you do not 4855 <typeparam name="T">Interface type</typeparam>
4752 add any other modules to HttpServer if you are using the website module. Instead, 4856 <param name="instance">Instance to add</param>
4753 add all wanted modules to each website.</remarks>
4754 </member> 4857 </member>
4755 <member name="M:HttpServer.HttpModules.WebSiteModule.#ctor(System.String,System.String)"> 4858 <member name="M:HttpServer.ComponentProvider.Get``1">
4756 <summary> 4859 <summary>
4757 4860 Get a component.
4758 </summary> 4861 </summary>
4759 <param name="host">domain name that should be handled.</param> 4862 <typeparam name="T">Interface type</typeparam>
4760 <param name="name"></param> 4863 <returns>Component if registered, otherwise null.</returns>
4864 <remarks>
4865 Component will get created if needed.
4866 </remarks>
4761 </member> 4867 </member>
4762 <member name="M:HttpServer.HttpModules.WebSiteModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 4868 <member name="M:HttpServer.ComponentProvider.Create(HttpServer.ComponentProvider.TypeInformation)">
4869 <exception cref="T:System.InvalidOperationException">If instance cannot be created.</exception>
4870 </member>
4871 <member name="M:HttpServer.ComponentProvider.Contains(System.Type)">
4763 <summary> 4872 <summary>
4764 Method that process the url 4873 Checks if the specified component interface have been added.
4765 </summary> 4874 </summary>
4766 <param name="request">Information sent by the browser about the request</param> 4875 <param name="interfaceType"></param>
4767 <param name="response">Information that is being sent back to the client.</param> 4876 <returns>true if found; otherwise false.</returns>
4768 <param name="session">Session used to </param>
4769 </member> 4877 </member>
4770 <member name="P:HttpServer.HttpModules.WebSiteModule.SiteName"> 4878 <member name="M:HttpServer.ComponentProvider.Add``2">
4771 <summary> 4879 <summary>
4772 Name of site. 4880 Add a component.
4881 </summary>
4882 <typeparam name="InterfaceType">Type being requested.</typeparam>
4883 <typeparam name="InstanceType">Type being created.</typeparam>
4884 <exception cref="T:System.InvalidOperationException">Type have already been mapped.</exception>
4885 </member>
4886 <member name="T:HttpServer.Rules.RegexRedirectRule">
4887 <summary>
4888 Class to make dynamic binding of redirects. Instead of having to specify a number of similar redirect rules
4889 a regular expression can be used to identify redirect URLs and their targets.
4890 </summary>
4891 <example>
4892 <![CDATA[
4893 new RegexRedirectRule("/(?<target>[a-z0-9]+)", "/users/${target}?find=true", RegexOptions.IgnoreCase)
4894 ]]>
4895 </example>
4896 </member>
4897 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String)">
4898 <summary>
4899 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class.
4900 </summary>
4901 <param name="fromUrlExpression">Expression to match URL</param>
4902 <param name="toUrlExpression">Expression to generate URL</param>
4903 <example>
4904 <![CDATA[
4905 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/${first}"));
4906 Result of ie. /employee1 will then be /user/employee1
4907 ]]>
4908 </example>
4909 </member>
4910 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String,System.Text.RegularExpressions.RegexOptions)">
4911 <summary>
4912 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class.
4913 </summary>
4914 <param name="fromUrlExpression">Expression to match URL</param>
4915 <param name="toUrlExpression">Expression to generate URL</param>
4916 <param name="options">Regular expression options to use, can be null</param>
4917 <example>
4918 <![CDATA[
4919 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/{first}", RegexOptions.IgnoreCase));
4920 Result of ie. /employee1 will then be /user/employee1
4921 ]]>
4922 </example>
4923 </member>
4924 <member name="M:HttpServer.Rules.RegexRedirectRule.#ctor(System.String,System.String,System.Text.RegularExpressions.RegexOptions,System.Boolean)">
4925 <summary>
4926 Initializes a new instance of the <see cref="T:HttpServer.Rules.RegexRedirectRule"/> class.
4927 </summary>
4928 <param name="fromUrlExpression">Expression to match URL</param>
4929 <param name="toUrlExpression">Expression to generate URL</param>
4930 <param name="options">Regular expression options to apply</param>
4931 <param name="shouldRedirect"><c>true</c> if request should be redirected, <c>false</c> if the request URI should be replaced.</param>
4932 <example>
4933 <![CDATA[
4934 server.Add(new RegexRedirectRule("/(?<first>[a-zA-Z0-9]+)", "/user/${first}", RegexOptions.None));
4935 Result of ie. /employee1 will then be /user/employee1
4936 ]]>
4937 </example>
4938 <exception cref="T:System.ArgumentNullException">Argument is null.</exception>
4939 <seealso cref="P:HttpServer.Rules.RedirectRule.ShouldRedirect"/>
4940 </member>
4941 <member name="M:HttpServer.Rules.RegexRedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
4942 <summary>
4943 Process the incoming request.
4773 </summary> 4944 </summary>
4945 <param name="request">incoming HTTP request</param>
4946 <param name="response">outgoing HTTP response</param>
4947 <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
4948 <remarks>
4949 returning true means that no modules will get the request. Returning true is typically being done
4950 for redirects.
4951 </remarks>
4952 <exception cref="T:System.ArgumentNullException">If request or response is null</exception>
4774 </member> 4953 </member>
4775 <member name="T:HttpServer.Helpers.ResourceInfo"> 4954 <member name="T:HttpServer.Helpers.ResourceInfo">
4776 <summary> 4955 <summary>
@@ -4812,30 +4991,6 @@
4812 <member name="P:HttpServer.Helpers.ResourceInfo.ResourceName"> 4991 <member name="P:HttpServer.Helpers.ResourceInfo.ResourceName">
4813 <summary>Retrieves the full path name to the resource file</summary> 4992 <summary>Retrieves the full path name to the resource file</summary>
4814 </member> 4993 </member>
4815 <member name="T:HttpServer.RequestParserFactory">
4816 <summary>
4817 Creates request parsers when needed.
4818 </summary>
4819 </member>
4820 <member name="T:HttpServer.IRequestParserFactory">
4821 <summary>
4822 Creates request parsers when needed.
4823 </summary>
4824 </member>
4825 <member name="M:HttpServer.IRequestParserFactory.CreateParser(HttpServer.ILogWriter)">
4826 <summary>
4827 Create a new request parser.
4828 </summary>
4829 <param name="logWriter">Used when logging should be enabled.</param>
4830 <returns>A new request parser.</returns>
4831 </member>
4832 <member name="M:HttpServer.RequestParserFactory.CreateParser(HttpServer.ILogWriter)">
4833 <summary>
4834 Create a new request parser.
4835 </summary>
4836 <param name="logWriter">Used when logging should be enabled.</param>
4837 <returns>A new request parser.</returns>
4838 </member>
4839 <member name="T:HttpServer.Authentication.BasicAuthentication"> 4994 <member name="T:HttpServer.Authentication.BasicAuthentication">
4840 <summary> 4995 <summary>
4841 The "basic" authentication scheme is based on the model that the 4996 The "basic" authentication scheme is based on the model that the
@@ -4921,533 +5076,499 @@
4921 Adding bytes to body 5076 Adding bytes to body
4922 </summary> 5077 </summary>
4923 </member> 5078 </member>
4924 <member name="T:HttpServer.FormDecoders.XmlDecoder"> 5079 <member name="T:HttpServer.Helpers.JSHelper">
4925 <summary>
4926 This decoder converts XML documents to form items.
4927 Each element becomes a subitem in the form, and each attribute becomes an item.
4928 </summary>
4929 <example>
4930 // xml: <hello id="1">something<world id="2">data</world></hello>
4931 // result:
4932 // form["hello"].Value = "something"
4933 // form["hello"]["id"].Value = 1
4934 // form["hello"]["world]["id"].Value = 1
4935 // form["hello"]["world"].Value = "data"
4936 </example>
4937 <remarks>
4938 The original xml document is stored in form["__xml__"].Value.
4939 </remarks>
4940 </member>
4941 <member name="M:HttpServer.FormDecoders.XmlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
4942 <summary>
4943
4944 </summary>
4945 <param name="stream">Stream containing the content</param>
4946 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
4947 <param name="encoding">Stream encoding</param>
4948 Note: contentType and encoding are not used?
4949 <returns>A http form, or null if content could not be parsed.</returns>
4950 <exception cref="T:System.IO.InvalidDataException"></exception>
4951 </member>
4952 <member name="M:HttpServer.FormDecoders.XmlDecoder.TraverseNode(HttpServer.IHttpInput,System.Xml.XmlNode)">
4953 <summary>
4954 Recursive function that will go through an xml element and store it's content
4955 to the form item.
4956 </summary>
4957 <param name="item">(parent) Item in form that content should be added to.</param>
4958 <param name="node">Node that should be parsed.</param>
4959 </member>
4960 <member name="M:HttpServer.FormDecoders.XmlDecoder.CanParse(System.String)">
4961 <summary>
4962 Checks if the decoder can handle the mime type
4963 </summary>
4964 <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case.</param>
4965 <returns>True if the decoder can parse the specified content type</returns>
4966 </member>
4967 <member name="T:HttpServer.ResponseCookies">
4968 <summary>
4969 Cookies that should be set.
4970 </summary>
4971 </member>
4972 <member name="M:HttpServer.ResponseCookies.Add(HttpServer.ResponseCookie)">
4973 <summary> 5080 <summary>
4974 Adds a cookie in the collection. 5081 Will contain helper functions for javascript.
4975 </summary> 5082 </summary>
4976 <param name="cookie">cookie to add</param>
4977 <exception cref="T:System.ArgumentNullException">cookie is null</exception>
4978 </member> 5083 </member>
4979 <member name="M:HttpServer.ResponseCookies.Add(HttpServer.RequestCookie,System.DateTime)"> 5084 <member name="M:HttpServer.Helpers.JSHelper.AjaxRequest(System.String,System.String[])">
4980 <summary> 5085 <summary>
4981 Copy a request cookie 5086 Requests a url through ajax
4982 </summary> 5087 </summary>
4983 <param name="cookie"></param> 5088 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
4984 <param name="expires">When the cookie should expire</param> 5089 <param name="options">optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.</param>
5090 <returns>a link tag</returns>
5091 <remarks>onclick attribute is used by this method.</remarks>
5092 <example>
5093 <code>
5094 // plain text
5095 JSHelper.AjaxRequest("'/user/show/1'");
5096
5097 // ajax request using this.href
5098 string link = "&lt;a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/&lt;call user&lt;/a&gt;";
5099 </code>
5100 </example>
4985 </member> 5101 </member>
4986 <member name="M:HttpServer.ResponseCookies.GetEnumerator"> 5102 <member name="M:HttpServer.Helpers.JSHelper.AjaxUpdater(System.String,System.String,System.String[])">
4987 <summary> 5103 <summary>
4988 Gets a collection enumerator on the cookie list. 5104 Ajax requests that updates an element with
5105 the fetched content
4989 </summary> 5106 </summary>
4990 <returns>collection enumerator</returns> 5107 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
5108 <param name="targetId">element to update</param>
5109 <param name="options">options in format "key, value, key, value". All keys should end with colon.</param>
5110 <returns>A link tag.</returns>
5111 <example>
5112 <code>
5113 JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true");
5114 </code>
5115 </example>
4991 </member> 5116 </member>
4992 <member name="M:HttpServer.ResponseCookies.Clear"> 5117 <member name="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])">
4993 <summary> 5118 <summary>
4994 Remove all cookies 5119 Opens contents in a dialog window.
4995 </summary> 5120 </summary>
5121 <param name="url">url to contents of dialog</param>
5122 <param name="title">link title</param>
5123 <param name="options">name, value, name, value, all parameter names should end with colon.</param>
4996 </member> 5124 </member>
4997 <member name="M:HttpServer.ResponseCookies.System#Collections#Generic#IEnumerable{HttpServer#ResponseCookie}#GetEnumerator"> 5125 <member name="M:HttpServer.Helpers.JSHelper.CloseDialog">
4998 <summary> 5126 <summary>
4999 Returns an enumerator that iterates through the collection. 5127 Close a javascript dialog window/div.
5000 </summary> 5128 </summary>
5001 5129 <returns>javascript for closing a dialog.</returns>
5002 <returns> 5130 <see cref="M:HttpServer.Helpers.JSHelper.CreateDialog(System.String,System.String,System.String[])"/>
5003 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
5004 </returns>
5005 <filterpriority>1</filterpriority>
5006 </member> 5131 </member>
5007 <member name="P:HttpServer.ResponseCookies.Count"> 5132 <member name="T:HttpServer.ContentType">
5008 <summary> 5133 <summary>
5009 Gets the count of cookies in the collection. 5134 Lists content type mime types.
5010 </summary> 5135 </summary>
5011 </member> 5136 </member>
5012 <member name="P:HttpServer.ResponseCookies.Item(System.String)"> 5137 <member name="F:HttpServer.ContentType.Text">
5013 <summary> 5138 <summary>
5014 Gets the cookie of a given identifier (null if not existing). 5139 text/plain
5015 </summary> 5140 </summary>
5016 </member> 5141 </member>
5017 <member name="T:HttpServer.RequestCookies"> 5142 <member name="F:HttpServer.ContentType.Html">
5018 <summary> 5143 <summary>
5019 This class is created as a wrapper, since there are two different cookie types in .Net (Cookie and HttpCookie). 5144 text/haml
5020 The framework might switch class in the future and we dont want to have to replace all instances
5021 </summary> 5145 </summary>
5022 </member> 5146 </member>
5023 <member name="M:HttpServer.RequestCookies.#ctor(System.String)"> 5147 <member name="F:HttpServer.ContentType.Javascript">
5024 <summary> 5148 <summary>
5025 Let's copy all the cookies. 5149 content type for javascript documents = application/javascript
5026 </summary> 5150 </summary>
5027 <param name="cookies">value from cookie header.</param> 5151 <remarks>
5152 <para>
5153 RFC 4329 states that text/javascript have been superseeded by
5154 application/javascript. You might still want to check browser versions
5155 since older ones do not support application/javascript.
5156 </para>
5157 <para>Browser support: http://krijnhoetmer.nl/stuff/javascript/mime-types/</para>
5158 </remarks>
5028 </member> 5159 </member>
5029 <member name="M:HttpServer.RequestCookies.Add(HttpServer.RequestCookie)"> 5160 <member name="F:HttpServer.ContentType.Xml">
5030 <summary> 5161 <summary>
5031 Adds a cookie in the collection. 5162 text/xml
5032 </summary> 5163 </summary>
5033 <param name="cookie">cookie to add</param>
5034 <exception cref="T:System.ArgumentNullException">cookie is null</exception>
5035 </member> 5164 </member>
5036 <member name="M:HttpServer.RequestCookies.GetEnumerator"> 5165 <member name="T:HttpServer.ContentTypes">
5037 <summary> 5166 <summary>
5038 Gets a collection enumerator on the cookie list. 5167 A list of content types
5039 </summary> 5168 </summary>
5040 <returns>collection enumerator</returns>
5041 </member> 5169 </member>
5042 <member name="M:HttpServer.RequestCookies.Clear"> 5170 <member name="M:HttpServer.ContentTypes.#ctor(System.String)">
5043 <summary> 5171 <summary>
5044 Remove all cookies. 5172
5045 </summary> 5173 </summary>
5174 <param name="types">Semicolon separated content types.</param>
5046 </member> 5175 </member>
5047 <member name="M:HttpServer.RequestCookies.System#Collections#Generic#IEnumerable{HttpServer#RequestCookie}#GetEnumerator"> 5176 <member name="M:HttpServer.ContentTypes.GetEnumerator">
5048 <summary> 5177 <summary>
5049 Returns an enumerator that iterates through the collection. 5178 Returns an enumerator that iterates through a collection.
5050 </summary> 5179 </summary>
5051
5052 <returns> 5180 <returns>
5053 A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection. 5181 An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
5054 </returns> 5182 </returns>
5055 <filterpriority>1</filterpriority>
5056 </member> 5183 </member>
5057 <member name="M:HttpServer.RequestCookies.Remove(System.String)"> 5184 <member name="M:HttpServer.ContentTypes.Contains(System.String)">
5058 <summary>
5059 Remove a cookie from the collection.
5060 </summary>
5061 <param name="cookieName">Name of cookie.</param>
5062 </member>
5063 <member name="P:HttpServer.RequestCookies.Count">
5064 <summary>
5065 Gets the count of cookies in the collection.
5066 </summary>
5067 </member>
5068 <member name="P:HttpServer.RequestCookies.Item(System.String)">
5069 <summary> 5185 <summary>
5070 Gets the cookie of a given identifier (null if not existing). 5186 Searches for the specified type
5071 </summary> 5187 </summary>
5188 <param name="type">Can also be a part of a type (searching for "xml" would return true for "application/xml").</param>
5189 <returns>true if type was found.</returns>
5072 </member> 5190 </member>
5073 <member name="T:HttpServer.HttpListener"> 5191 <member name="P:HttpServer.ContentTypes.First">
5074 <summary> 5192 <summary>
5075 New implementation of the HTTP listener. 5193 Get this first content type.
5076 </summary> 5194 </summary>
5077 <remarks>
5078 Use the <c>Create</c> methods to create a default listener.
5079 </remarks>
5080 </member> 5195 </member>
5081 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory)"> 5196 <member name="P:HttpServer.ContentTypes.Item(System.String)">
5082 <summary> 5197 <summary>
5083 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class. 5198 Fetch a content type
5084 </summary> 5199 </summary>
5085 <param name="address">IP Address to accept connections on</param> 5200 <param name="type">Part of type ("xml" would return "application/xml")</param>
5086 <param name="port">TCP Port to listen on, default HTTP port is 80.</param> 5201 <returns></returns>
5087 <param name="factory">Factory used to create <see cref="T:HttpServer.IHttpClientContext"/>es.</param> 5202 <remarks>All content types are in lower case.</remarks>
5088 <exception cref="T:System.ArgumentNullException"><c>address</c> is null.</exception>
5089 <exception cref="T:System.ArgumentException">Port must be a positive number.</exception>
5090 </member> 5203 </member>
5091 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate)"> 5204 <member name="T:HttpServer.RequestParserFactory">
5092 <summary> 5205 <summary>
5093 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class. 5206 Creates request parsers when needed.
5094 </summary> 5207 </summary>
5095 <param name="address">The address.</param>
5096 <param name="port">The port.</param>
5097 <param name="factory">The factory.</param>
5098 <param name="certificate">The certificate.</param>
5099 </member> 5208 </member>
5100 <member name="M:HttpServer.HttpListener.#ctor(System.Net.IPAddress,System.Int32,HttpServer.IHttpContextFactory,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)"> 5209 <member name="T:HttpServer.IRequestParserFactory">
5101 <summary> 5210 <summary>
5102 Initializes a new instance of the <see cref="T:HttpServer.HttpListener"/> class. 5211 Creates request parsers when needed.
5103 </summary> 5212 </summary>
5104 <param name="address">The address.</param>
5105 <param name="port">The port.</param>
5106 <param name="factory">The factory.</param>
5107 <param name="certificate">The certificate.</param>
5108 <param name="protocol">The protocol.</param>
5109 </member> 5213 </member>
5110 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32)"> 5214 <member name="M:HttpServer.IRequestParserFactory.CreateParser(HttpServer.ILogWriter)">
5111 <summary> 5215 <summary>
5112 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories. 5216 Create a new request parser.
5113 </summary> 5217 </summary>
5114 <param name="address">Address that the listener should accept connections on.</param> 5218 <param name="logWriter">Used when logging should be enabled.</param>
5115 <param name="port">Port that listener should accept connections on.</param> 5219 <returns>A new request parser.</returns>
5116 <returns>Created HTTP listener.</returns>
5117 </member> 5220 </member>
5118 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate)"> 5221 <member name="M:HttpServer.RequestParserFactory.CreateParser(HttpServer.ILogWriter)">
5119 <summary> 5222 <summary>
5120 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories. 5223 Create a new request parser.
5121 </summary> 5224 </summary>
5122 <param name="address">Address that the listener should accept connections on.</param> 5225 <param name="logWriter">Used when logging should be enabled.</param>
5123 <param name="port">Port that listener should accept connections on.</param> 5226 <returns>A new request parser.</returns>
5124 <param name="certificate">Certificate to use</param>
5125 <returns>Created HTTP listener.</returns>
5126 </member> 5227 </member>
5127 <member name="M:HttpServer.HttpListener.Create(System.Net.IPAddress,System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Authentication.SslProtocols)"> 5228 <member name="T:HttpServer.Exceptions.UnauthorizedException">
5128 <summary> 5229 <summary>
5129 Creates a new <see cref="T:HttpServer.HttpListener"/> instance with default factories. 5230 The request requires user authentication. The response MUST include a
5231 WWW-Authenticate header field (section 14.47) containing a challenge
5232 applicable to the requested resource.
5233
5234 The client MAY repeat the request with a suitable Authorization header
5235 field (section 14.8). If the request already included Authorization
5236 credentials, then the 401 response indicates that authorization has been
5237 refused for those credentials. If the 401 response contains the same challenge
5238 as the prior response, and the user agent has already attempted authentication
5239 at least once, then the user SHOULD be presented the entity that was given in the response,
5240 since that entity might include relevant diagnostic information.
5241
5242 HTTP access authentication is explained in rfc2617:
5243 http://www.ietf.org/rfc/rfc2617.txt
5244
5245 (description is taken from
5246 http://www.submissionchamber.com/help-guides/error-codes.php#sec10.4.2)
5130 </summary> 5247 </summary>
5131 <param name="address">Address that the listener should accept connections on.</param>
5132 <param name="port">Port that listener should accept connections on.</param>
5133 <param name="certificate">Certificate to use</param>
5134 <param name="protocol">which HTTPS protocol to use, default is TLS.</param>
5135 <returns>Created HTTP listener.</returns>
5136 </member> 5248 </member>
5137 <member name="M:HttpServer.HttpListener.OnAcceptingSocket(System.Net.Sockets.Socket)"> 5249 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor">
5138 <summary> 5250 <summary>
5139 Can be used to create filtering of new connections. 5251 Create a new unauhtorized exception.
5140 </summary> 5252 </summary>
5141 <param name="socket">Accepted socket</param> 5253 <seealso cref="T:HttpServer.Exceptions.UnauthorizedException"/>
5142 <returns>
5143 true if connection can be accepted; otherwise false.
5144 </returns>
5145 </member> 5254 </member>
5146 <member name="E:HttpServer.HttpListener.Accepted"> 5255 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor(System.String,System.Exception)">
5147 <summary> 5256 <summary>
5148 A client have been accepted, but not handled, by the listener. 5257 Create a new unauhtorized exception.
5149 </summary> 5258 </summary>
5259 <param name="message">reason to why the request was unauthorized.</param>
5260 <param name="inner">inner exception</param>
5150 </member> 5261 </member>
5151 <member name="T:HttpServer.HttpHelper"> 5262 <member name="M:HttpServer.Exceptions.UnauthorizedException.#ctor(System.String)">
5152 <summary> 5263 <summary>
5153 Generic helper functions for HTTP 5264 Create a new unauhtorized exception.
5154 </summary> 5265 </summary>
5266 <param name="message">reason to why the request was unauthorized.</param>
5155 </member> 5267 </member>
5156 <member name="F:HttpServer.HttpHelper.HTTP10"> 5268 <member name="T:HttpServer.HttpModules.FileModule">
5157 <summary> 5269 <summary>
5158 Version string for HTTP v1.0 5270 The purpose of this module is to serve files.
5159 </summary> 5271 </summary>
5160 </member> 5272 </member>
5161 <member name="F:HttpServer.HttpHelper.HTTP11"> 5273 <member name="M:HttpServer.HttpModules.FileModule.#ctor(System.String,System.String,System.Boolean)">
5162 <summary> 5274 <summary>
5163 Version string for HTTP v1.1 5275 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.FileModule"/> class.
5164 </summary> 5276 </summary>
5277 <param name="baseUri">Uri to serve, for instance "/files/"</param>
5278 <param name="basePath">Path on hard drive where we should start looking for files</param>
5279 <param name="useLastModifiedHeader">If true a Last-Modifed header will be sent upon requests urging web browser to cache files</param>
5165 </member> 5280 </member>
5166 <member name="F:HttpServer.HttpHelper.EmptyUri"> 5281 <member name="M:HttpServer.HttpModules.FileModule.#ctor(System.String,System.String)">
5167 <summary> 5282 <summary>
5168 An empty URI 5283 Initializes a new instance of the <see cref="T:HttpServer.HttpModules.FileModule"/> class.
5169 </summary> 5284 </summary>
5285 <param name="baseUri">Uri to serve, for instance "/files/"</param>
5286 <param name="basePath">Path on hard drive where we should start looking for files</param>
5170 </member> 5287 </member>
5171 <member name="M:HttpServer.HttpHelper.ParseQueryString(System.String)"> 5288 <member name="M:HttpServer.HttpModules.FileModule.AddDefaultMimeTypes">
5172 <summary> 5289 <summary>
5173 Parses a query string. 5290 Mimtypes that this class can handle per default
5174 </summary> 5291 </summary>
5175 <param name="queryString">Query string (URI encoded)</param>
5176 <returns>A <see cref="T:HttpServer.HttpInput"/> object if successful; otherwise <see cref="F:HttpServer.HttpInput.Empty"/></returns>
5177 <exception cref="T:System.ArgumentNullException"><c>queryString</c> is null.</exception>
5178 <exception cref="T:System.FormatException">If string cannot be parsed.</exception>
5179 </member> 5292 </member>
5180 <member name="T:HttpServer.HttpModules.ReverseProxyModule"> 5293 <member name="M:HttpServer.HttpModules.FileModule.CanHandle(System.Uri)">
5181 <summary> 5294 <summary>
5182 A reverse proxy are used to act as a bridge between local (protected/hidden) websites 5295 Determines if the request should be handled by this module.
5183 and public clients. 5296 Invoked by the <see cref="T:HttpServer.HttpServer"/>
5184
5185 A typical usage is to allow web servers on non standard ports to still be available
5186 to the public clients, or allow web servers on private ips to be available.
5187 </summary> 5297 </summary>
5298 <param name="uri"></param>
5299 <returns>true if this module should handle it.</returns>
5188 </member> 5300 </member>
5189 <member name="M:HttpServer.HttpModules.ReverseProxyModule.#ctor(System.String,System.String)"> 5301 <member name="M:HttpServer.HttpModules.FileModule.GetPath(System.Uri)">
5190 <summary> 5302 <exception cref="T:HttpServer.Exceptions.BadRequestException">Illegal path</exception>
5191
5192 </summary>
5193 <param name="source">Base url requested from browser</param>
5194 <param name="destination">Base url on private web server</param>
5195 <example>
5196 // this will return contents from http://192.168.1.128/view/jonas when client requests http://www.gauffin.com/user/view/jonas
5197 _server.Add(new ReverseProxyModule("http://www.gauffin.com/user/", "http://192.168.1.128/");
5198 </example>
5199 </member> 5303 </member>
5200 <member name="M:HttpServer.HttpModules.ReverseProxyModule.CanHandle(System.Uri)"> 5304 <member name="M:HttpServer.HttpModules.FileModule.Contains(System.String,System.Collections.Generic.IEnumerable{System.String})">
5201 <summary> 5305 <summary>
5202 Method that determines if an url should be handled or not by the module 5306 check if source contains any of the chars.
5203 </summary> 5307 </summary>
5204 <param name="uri">Url requested by the client.</param> 5308 <param name="source"></param>
5205 <returns>true if module should handle the url.</returns> 5309 <param name="chars"></param>
5310 <returns></returns>
5206 </member> 5311 </member>
5207 <member name="M:HttpServer.HttpModules.ReverseProxyModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)"> 5312 <member name="M:HttpServer.HttpModules.FileModule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse,HttpServer.Sessions.IHttpSession)">
5208 <summary> 5313 <summary>
5209 Method that process the url 5314 Method that process the Uri.
5210 </summary> 5315 </summary>
5211 <param name="request">Information sent by the browser about the request</param> 5316 <param name="request">Information sent by the browser about the request</param>
5212 <param name="response">Information that is being sent back to the client.</param> 5317 <param name="response">Information that is being sent back to the client.</param>
5213 <param name="session">Session used to </param> 5318 <param name="session">Session used to </param>
5319 <exception cref="T:HttpServer.Exceptions.InternalServerException">Failed to find file extension</exception>
5320 <exception cref="T:HttpServer.Exceptions.ForbiddenException">File type is forbidden.</exception>
5214 </member> 5321 </member>
5215 <member name="T:HttpServer.HttpModules.HttpModuleExceptionEventArgs"> 5322 <member name="M:HttpServer.HttpModules.FileModule.GetFileExtension(System.String)">
5216 <summary> 5323 <summary>
5217 Used to inform http server that 5324 return a file extension from an absolute Uri path (or plain filename)
5218 </summary> 5325 </summary>
5326 <param name="uri"></param>
5327 <returns></returns>
5219 </member> 5328 </member>
5220 <member name="M:HttpServer.HttpModules.HttpModuleExceptionEventArgs.#ctor(System.Exception)"> 5329 <member name="P:HttpServer.HttpModules.FileModule.MimeTypes">
5221 <summary> 5330 <summary>
5222 Eventarguments used when an exception is thrown by a module 5331 List with all mime-type that are allowed.
5223 </summary> 5332 </summary>
5224 <param name="e">the exception</param> 5333 <remarks>All other mime types will result in a Forbidden http status code.</remarks>
5225 </member> 5334 </member>
5226 <member name="P:HttpServer.HttpModules.HttpModuleExceptionEventArgs.Exception"> 5335 <member name="P:HttpServer.HttpModules.FileModule.ForbiddenChars">
5227 <summary> 5336 <summary>
5228 Exception thrown in a module 5337 characters that may not exist in a path.
5229 </summary> 5338 </summary>
5339 <example>
5340 fileMod.ForbiddenChars = new string[]{ "\\", "..", ":" };
5341 </example>
5230 </member> 5342 </member>
5231 <member name="T:HttpServer.Helpers.Implementations.PrototypeImp"> 5343 <member name="T:HttpServer.Helpers.WebHelper">
5232 <summary> 5344 <summary>
5233 PrototypeJS implementation of the javascript functions. 5345 Webhelper provides helpers for common tasks in HTML.
5234 </summary> 5346 </summary>
5235 </member> 5347 </member>
5236 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxRequest(System.String,System.String[])"> 5348 <member name="F:HttpServer.Helpers.WebHelper.JSImplementation">
5237 <summary> 5349 <summary>
5238 Requests a url through ajax 5350 Used to let the website use different javascript libraries.
5351 Default is <see cref="T:HttpServer.Helpers.Implementations.PrototypeImp"/>
5239 </summary> 5352 </summary>
5240 <param name="url">url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.</param>
5241 <param name="options">optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.</param>
5242 <returns>a link tag</returns>
5243 <remarks>onclick attribute is used by this method.</remarks>
5244 <example>
5245 <code>
5246 // plain text
5247 JSHelper.AjaxRequest("'/user/show/1'");
5248
5249 // ajax request using this.href
5250 string link = "&lt;a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/&lt;call user&lt;/a&gt;";
5251 </code>
5252 </example>
5253 </member> 5353 </member>
5254 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.Contains(System.Collections.Generic.IEnumerable{System.String},System.String)"> 5354 <member name="M:HttpServer.Helpers.WebHelper.AjaxRequest(System.String,System.String,System.String[])">
5255 <summary> 5355 <summary>
5256 Determins if a list of strings contains a specific value 5356 Creates a link that invokes through ajax.
5257 </summary> 5357 </summary>
5258 <param name="options">options to check in</param> 5358 <param name="url">url to fetch</param>
5259 <param name="value">value to find</param> 5359 <param name="title">link title</param>
5260 <returns>true if value was found</returns> 5360 <param name="options">
5261 <remarks>case insensitive</remarks> 5361 optional options in format "key, value, key, value".
5362 Javascript options starts with ':'.
5363 </param>
5364 <returns>a link tag</returns>
5365 <example>
5366 WebHelper.AjaxRequest("/users/add/", "Add user", "method:", "post", "onclick", "validate('this');");
5367 </example>
5262 </member> 5368 </member>
5263 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxUpdater(System.String,System.String,System.String[])"> 5369 <member name="M:HttpServer.Helpers.WebHelper.AjaxUpdater(System.String,System.String,System.String,System.String[])">
5264 <summary> 5370 <summary>
5265 Ajax requests that updates an element with 5371 Builds a link that updates an element with the fetched ajax content.
5266 the fetched content
5267 </summary> 5372 </summary>
5268 <param name="url">URL to fetch. URL is NOT enclosed in quotes by the implementation. You need to do that yourself.</param> 5373 <param name="url">Url to fetch content from</param>
5269 <param name="targetId">element to update</param> 5374 <param name="title">link title</param>
5270 <param name="options">options in format "key, value, key, value". All keys should end with colon.</param> 5375 <param name="targetId">html element to update with the results of the ajax request.</param>
5376 <param name="options">optional options in format "key, value, key, value"</param>
5271 <returns>A link tag.</returns> 5377 <returns>A link tag.</returns>
5272 <example>
5273 <code>
5274 JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true");
5275 </code>
5276 </example>
5277 </member> 5378 </member>
5278 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.DialogLink(System.String,System.String,System.String[])"> 5379 <member name="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])">
5279 <summary> 5380 <summary>
5280 A link that pop ups a Dialog (overlay div) 5381 A link that pop ups a Dialog (overlay div)
5281 </summary> 5382 </summary>
5282 <param name="url">URL to contents of dialog</param> 5383 <param name="url">url to contents of dialog</param>
5283 <param name="title">link title</param> 5384 <param name="title">link title</param>
5284 <param name="htmlAttributes">name, value, name, value</param> 5385 <param name="htmlAttributes">name/value of html attributes.</param>
5285 <returns> 5386 <returns>A "a"-tag that popups a dialog when clicked</returns>
5286 A "a"-tag that popups a dialog when clicked
5287 </returns>
5288 <remarks><para>Requires Control.Modal found here: http://livepipe.net/projects/control_modal/</para>
5289 And the following JavaScript (load it in application.js):
5290 <code>
5291 Event.observe(window, 'load',
5292 function() {
5293 document.getElementsByClassName('modal').each(function(link){ new Control.Modal(link); });
5294 }
5295 );
5296 </code>
5297 </remarks>
5298 <example> 5387 <example>
5299 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');"); 5388 WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
5300 </example> 5389 </example>
5301 </member> 5390 </member>
5302 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.CreateDialog(System.String,System.String,System.String[])"> 5391 <member name="M:HttpServer.Helpers.WebHelper.CreateDialog(System.String,System.String,System.String[])">
5303 <summary> 5392 <summary>
5304 create a modal dialog (usually using DIVs) 5393 Create/Open a dialog box using ajax
5305 </summary> 5394 </summary>
5306 <param name="url">url to fetch</param> 5395 <param name="url"></param>
5307 <param name="title">dialog title</param> 5396 <param name="title"></param>
5308 <param name="options">javascript/html attributes. javascript options ends with colon ':'.</param> 5397 <param name="parameters"></param>
5309 <returns></returns> 5398 <returns></returns>
5310 </member> 5399 </member>
5311 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.CloseDialog"> 5400 <member name="M:HttpServer.Helpers.WebHelper.CloseDialog">
5312 <summary> 5401 <summary>
5313 Close a javascript dialog window/div. 5402 Close a javascript dialog window/div.
5314 </summary> 5403 </summary>
5315 <returns>javascript for closing a dialog.</returns> 5404 <returns>javascript for closing a dialog.</returns>
5316 <see cref="M:HttpServer.Helpers.Implementations.PrototypeImp.DialogLink(System.String,System.String,System.String[])"/> 5405 <see cref="M:HttpServer.Helpers.WebHelper.DialogLink(System.String,System.String,System.String[])"/>
5317 </member> 5406 </member>
5318 <member name="M:HttpServer.Helpers.Implementations.PrototypeImp.AjaxFormOnSubmit(System.String[])"> 5407 <member name="M:HttpServer.Helpers.WebHelper.FormStart(System.String,System.String,System.Boolean)">
5319 <summary> 5408 <summary>
5320 javascript action that should be added to the "onsubmit" event in the form tag. 5409 Create a &lt;form&gt; tag.
5321 </summary> 5410 </summary>
5322 <param name="options">remember to encapsulate strings in ''</param> 5411 <param name="name">name of form</param>
5323 <returns></returns> 5412 <param name="action">action to invoke on submit</param>
5324 <remarks>All javascript option names should end with colon.</remarks> 5413 <param name="isAjax">form should be posted as ajax</param>
5414 <returns>html code</returns>
5325 <example> 5415 <example>
5326 <code> 5416 WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
5327 JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
5328 </code>
5329 </example> 5417 </example>
5330 </member> 5418 </member>
5331 <member name="T:HttpServer.Authentication.DigestAuthentication"> 5419 <member name="M:HttpServer.Helpers.WebHelper.Link(System.String,System.String,System.String[])">
5332 <summary>
5333 Implements HTTP Digest authentication. It's more secure than Basic auth since password is
5334 encrypted with a "key" from the server.
5335 </summary>
5336 <remarks>
5337 Keep in mind that the password is encrypted with MD5. Use a combination of SSL and digest auth to be secure.
5338 </remarks>
5339 </member>
5340 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
5341 <summary>
5342 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class.
5343 </summary>
5344 <param name="authenticator">Delegate used to provide information used during authentication.</param>
5345 <param name="authenticationRequiredHandler">Delegate used to determine if authentication is required (may be null).</param>
5346 </member>
5347 <member name="M:HttpServer.Authentication.DigestAuthentication.#ctor(HttpServer.Authentication.AuthenticationHandler)">
5348 <summary>
5349 Initializes a new instance of the <see cref="T:HttpServer.Authentication.DigestAuthentication"/> class.
5350 </summary>
5351 <param name="authenticator">Delegate used to provide information used during authentication.</param>
5352 </member>
5353 <member name="F:HttpServer.Authentication.DigestAuthentication.DisableNonceCheck">
5354 <summary> 5420 <summary>
5355 Used by test classes to be able to use hardcoded values 5421 Create a link tag.
5356 </summary> 5422 </summary>
5423 <param name="url">url to go to</param>
5424 <param name="title">link title (text that is displayed)</param>
5425 <param name="htmlAttributes">html attributes, name, value, name, value</param>
5426 <returns>html code</returns>
5427 <example>
5428 WebHelper.Link("/user/show/1", "Show user", "id", "showUser", "onclick", "return confirm('Are you shure?');");
5429 </example>
5357 </member> 5430 </member>
5358 <member name="M:HttpServer.Authentication.DigestAuthentication.Authenticate(System.String,System.String,System.String,System.Object[])"> 5431 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[])">
5359 <summary> 5432 <summary>
5360 An authentication response have been received from the web browser. 5433 Build a link
5361 Check if it's correct
5362 </summary> 5434 </summary>
5363 <param name="authenticationHeader">Contents from the Authorization header</param> 5435 <param name="url">url to go to.</param>
5364 <param name="realm">Realm that should be authenticated</param> 5436 <param name="title">title of link (displayed text)</param>
5365 <param name="httpVerb">GET/POST/PUT/DELETE etc.</param> 5437 <param name="htmlAttributes">extra html attributes.</param>
5366 <param name="options">First option: true if username/password is correct but not cnonce</param> 5438 <returns>a complete link</returns>
5367 <returns>
5368 Authentication object that is stored for the request. A user class or something like that.
5369 </returns>
5370 <exception cref="T:System.ArgumentException">if authenticationHeader is invalid</exception>
5371 <exception cref="T:System.ArgumentNullException">If any of the paramters is empty or null.</exception>
5372 </member> 5439 </member>
5373 <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)"> 5440 <member name="M:HttpServer.Helpers.WebHelper.BuildLink(System.String,System.String,System.String[],System.String[])">
5374 <summary> 5441 <summary>
5375 Encrypts parameters into a Digest string 5442 Build a link
5376 </summary> 5443 </summary>
5377 <param name="realm">Realm that the user want to log into.</param> 5444 <param name="url">url to go to.</param>
5378 <param name="userName">User logging in</param> 5445 <param name="title">title of link (displayed text)</param>
5379 <param name="password">Users password.</param> 5446 <param name="htmlAttributes">extra html attributes.</param>
5380 <param name="method">HTTP method.</param> 5447 <returns>a complete link</returns>
5381 <param name="uri">Uri/domain that generated the login prompt.</param> 5448 <param name="options">more options</param>
5382 <param name="qop">Quality of Protection.</param>
5383 <param name="nonce">"Number used ONCE"</param>
5384 <param name="nc">Hexadecimal request counter.</param>
5385 <param name="cnonce">"Client Number used ONCE"</param>
5386 <returns>Digest encrypted string</returns>
5387 </member> 5449 </member>
5388 <member name="M:HttpServer.Authentication.DigestAuthentication.Encrypt(System.String,System.String,System.String,System.String,System.String,System.String)"> 5450 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
5389 <summary> 5451 <summary>
5390 5452 Obsolete
5391 </summary> 5453 </summary>
5392 <param name="ha1">Md5 hex encoded "userName:realm:password", without the quotes.</param> 5454 <param name="name">Obsolete</param>
5393 <param name="ha2">Md5 hex encoded "method:uri", without the quotes</param> 5455 <param name="collection">Obsolete</param>
5394 <param name="qop">Quality of Protection</param> 5456 <param name="getIdTitle">Obsolete</param>
5395 <param name="nonce">"Number used ONCE"</param> 5457 <param name="selectedValue">Obsolete</param>
5396 <param name="nc">Hexadecimal request counter.</param> 5458 <param name="firstEmpty">Obsolete</param>
5397 <param name="cnonce">Client number used once</param> 5459 <returns>Obsolete</returns>
5398 <returns></returns>
5399 </member> 5460 </member>
5400 <member name="M:HttpServer.Authentication.DigestAuthentication.CreateResponse(System.String,System.Object[])"> 5461 <member name="M:HttpServer.Helpers.WebHelper.Select(System.String,System.String,System.Collections.ICollection,HttpServer.Helpers.GetIdTitle,System.Object,System.Boolean)">
5401 <summary> 5462 <summary>
5402 Create a response that can be sent in the WWW-Authenticate header. 5463 Obsolete
5403 </summary> 5464 </summary>
5404 <param name="realm">Realm that the user should authenticate in</param> 5465 <param name="name">Obsolete</param>
5405 <param name="options">First options specifies if true if username/password is correct but not cnonce.</param> 5466 <param name="id">Obsolete</param>
5406 <returns>A correct auth request.</returns> 5467 <param name="collection">Obsolete</param>
5407 <exception cref="T:System.ArgumentNullException">If realm is empty or null.</exception> 5468 <param name="getIdTitle">Obsolete</param>
5469 <param name="selectedValue">Obsolete</param>
5470 <param name="firstEmpty">Obsolete</param>
5471 <returns>Obsolete</returns>
5408 </member> 5472 </member>
5409 <member name="M:HttpServer.Authentication.DigestAuthentication.Decode(System.String,System.Text.Encoding)"> 5473 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Generic.IEnumerable{System.Object},System.String)">
5410 <summary> 5474 <summary>
5411 Decodes authorization header value 5475 Render errors into a UL with class "errors"
5412 </summary> 5476 </summary>
5413 <param name="buffer">header value</param> 5477 <param name="className">class used by UL-tag.</param>
5414 <param name="encoding">Encoding that the buffer is in</param> 5478 <param name="theList">items to list</param>
5415 <returns>All headers and their values if successful; otherwise null</returns> 5479 <returns>an unordered html list.</returns>
5416 <example>
5417 NameValueCollection header = DigestAuthentication.Decode("response=\"6629fae49393a05397450978507c4ef1\",\r\nc=00001", Encoding.ASCII);
5418 </example>
5419 <remarks>Can handle lots of whitespaces and new lines without failing.</remarks>
5420 </member> 5480 </member>
5421 <member name="M:HttpServer.Authentication.DigestAuthentication.GetCurrentNonce"> 5481 <member name="M:HttpServer.Helpers.WebHelper.List(System.Collections.Specialized.NameValueCollection,System.String)">
5422 <summary> 5482 <summary>
5423 Gets the current nonce. 5483 Render errors into a UL with class "errors"
5424 </summary> 5484 </summary>
5425 <returns></returns> 5485 <param name="className">class used by UL-tag.</param>
5486 <param name="theList">items to list</param>
5487 <returns>an unordered html list.</returns>
5426 </member> 5488 </member>
5427 <member name="M:HttpServer.Authentication.DigestAuthentication.GetMD5HashBinHex2(System.String)"> 5489 <member name="M:HttpServer.Helpers.WebHelper.Errors(System.Collections.Specialized.NameValueCollection)">
5428 <summary> 5490 <summary>
5429 Gets the Md5 hash bin hex2. 5491 Render errors into a UL with class "errors"
5430 </summary> 5492 </summary>
5431 <param name="toBeHashed">To be hashed.</param> 5493 <param name="errors"></param>
5432 <returns></returns> 5494 <returns></returns>
5433 </member> 5495 </member>
5434 <member name="M:HttpServer.Authentication.DigestAuthentication.IsValidNonce(System.String)"> 5496 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[],System.String[])">
5435 <summary> 5497 <summary>
5436 determines if the nonce is valid or has expired. 5498 Generates a list with html attributes.
5437 </summary> 5499 </summary>
5438 <param name="nonce">nonce value (check wikipedia for info)</param> 5500 <param name="sb">StringBuilder that the options should be added to.</param>
5439 <returns>true if the nonce has not expired.</returns> 5501 <param name="firstOptions">attributes set by user.</param>
5502 <param name="secondOptions">attributes set by any of the helper classes.</param>
5440 </member> 5503 </member>
5441 <member name="P:HttpServer.Authentication.DigestAuthentication.Name"> 5504 <member name="M:HttpServer.Helpers.WebHelper.GenerateHtmlAttributes(System.Text.StringBuilder,System.String[])">
5442 <summary> 5505 <summary>
5443 name used in http request. 5506 Generates a list with html attributes.
5444 </summary> 5507 </summary>
5508 <param name="sb">StringBuilder that the options should be added to.</param>
5509 <param name="options"></param>
5445 </member> 5510 </member>
5446 <member name="P:HttpServer.Authentication.DigestAuthentication.TokenIsHA1"> 5511 <member name="T:HttpServer.Helpers.GetIdTitle">
5447 <summary> 5512 <summary>
5448 Gets or sets whether the token supplied in <see cref="T:HttpServer.Authentication.AuthenticationHandler"/> is a 5513 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.
5449 HA1 generated string.
5450 </summary> 5514 </summary>
5515 <param name="obj">current object (for instance a User).</param>
5516 <param name="id">Text that should be displayed in the value part of a &lt;optiongt;-tag.</param>
5517 <param name="title">Text shown in the select list.</param>
5518 <example>
5519 // Class that is going to be used in a SELECT-tag.
5520 public class User
5521 {
5522 private readonly string _realName;
5523 private readonly int _id;
5524 public User(int id, string realName)
5525 {
5526 _id = id;
5527 _realName = realName;
5528 }
5529 public string RealName
5530 {
5531 get { return _realName; }
5532 }
5533
5534 public int Id
5535 {
5536 get { return _id; }
5537 }
5538 }
5539
5540 // Using an inline delegate to generate the select list
5541 public void UserInlineDelegate()
5542 {
5543 List&lt;User&gt; items = new List&lt;User&gt;();
5544 items.Add(new User(1, "adam"));
5545 items.Add(new User(2, "bertial"));
5546 items.Add(new User(3, "david"));
5547 string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value)
5548 {
5549 User user = (User)o;
5550 id = user.Id;
5551 value = user.RealName;
5552 }, 2, true);
5553 }
5554
5555 // Using an method as delegate to generate the select list.
5556 public void UseExternalDelegate()
5557 {
5558 List&lt;User&gt; items = new List&lt;User&gt;();
5559 items.Add(new User(1, "adam"));
5560 items.Add(new User(2, "bertial"));
5561 items.Add(new User(3, "david"));
5562 string htmlSelect = Select("users", "users", items, UserOptions, 1, true);
5563 }
5564
5565 // delegate returning id and title
5566 public static void UserOptions(object o, out object id, out object title)
5567 {
5568 User user = (User)o;
5569 id = user.Id;
5570 value = user.RealName;
5571 } /// </example>
5451 </member> 5572 </member>
5452 </members> 5573 </members>
5453</doc> 5574</doc>
diff --git a/bin/Ionic.Zip.dll b/bin/Ionic.Zip.dll
index 95fa928..e37f1bd 100755
--- a/bin/Ionic.Zip.dll
+++ b/bin/Ionic.Zip.dll
Binary files differ
diff --git a/bin/Mono.Addins.CecilReflector.dll b/bin/Mono.Addins.CecilReflector.dll
index a1a6382..9ca4631 100755
--- a/bin/Mono.Addins.CecilReflector.dll
+++ b/bin/Mono.Addins.CecilReflector.dll
Binary files differ
diff --git a/bin/Mono.Addins.Setup.dll b/bin/Mono.Addins.Setup.dll
index 8aa6d5f..75773aa 100755
--- a/bin/Mono.Addins.Setup.dll
+++ b/bin/Mono.Addins.Setup.dll
Binary files differ
diff --git a/bin/Mono.Addins.dll b/bin/Mono.Addins.dll
index ea330fd..326ed1d 100755
--- a/bin/Mono.Addins.dll
+++ b/bin/Mono.Addins.dll
Binary files differ
diff --git a/bin/OpenMetaverse.StructuredData.dll b/bin/OpenMetaverse.StructuredData.dll
index 5c0b3c6..c7216ce 100755
--- a/bin/OpenMetaverse.StructuredData.dll
+++ b/bin/OpenMetaverse.StructuredData.dll
Binary files differ
diff --git a/bin/OpenMetaverse.dll b/bin/OpenMetaverse.dll
index 511096e..3e210ba 100755
--- a/bin/OpenMetaverse.dll
+++ b/bin/OpenMetaverse.dll
Binary files differ
diff --git a/bin/OpenMetaverse.dll.config b/bin/OpenMetaverse.dll.config
index b67da5f..f5423b2 100644
--- a/bin/OpenMetaverse.dll.config
+++ b/bin/OpenMetaverse.dll.config
@@ -1,5 +1,5 @@
1<configuration> 1<configuration>
2 <dllmap os="osx" dll="openjpeg-dotnet.dll" target="lib64/libopenjpeg-dotnet-2.1.5.0-dotnet-1.dylib" /> 2 <dllmap os="osx" dll="openjpeg-dotnet.dll" target="lib64/libopenjpeg-dotnet.dylib" />
3 <dllmap os="!windows,osx" cpu="x86-64,ia64" dll="openjpeg-dotnet-x86_64.dll" target="lib64/libopenjpeg-dotnet-x86_64" /> 3 <dllmap os="!windows,osx" cpu="x86-64,ia64" dll="openjpeg-dotnet-x86_64.dll" target="lib64/libopenjpeg-dotnet-x86_64" />
4 <dllmap os="!windows,osx" cpu="x86" dll="openjpeg-dotnet.dll" target="lib32/libopenjpeg-dotnet" /> 4 <dllmap os="!windows,osx" cpu="x86" dll="openjpeg-dotnet.dll" target="lib32/libopenjpeg-dotnet" />
5</configuration> 5</configuration>
diff --git a/bin/OpenMetaverseTypes.dll b/bin/OpenMetaverseTypes.dll
index 8bc8885..6cc4c5a 100755
--- a/bin/OpenMetaverseTypes.dll
+++ b/bin/OpenMetaverseTypes.dll
Binary files differ
diff --git a/bin/OpenSim.exe.config b/bin/OpenSim.exe.config
index e3107ab..8a891f4 100755
--- a/bin/OpenSim.exe.config
+++ b/bin/OpenSim.exe.config
@@ -32,9 +32,15 @@
32 <appender-ref ref="LogFileAppender" /> 32 <appender-ref ref="LogFileAppender" />
33 </root> 33 </root>
34 34
35 <!-- Independently control logging level for XEngine -->
35 <logger name="OpenSim.Region.ScriptEngine.XEngine"> 36 <logger name="OpenSim.Region.ScriptEngine.XEngine">
36 <level value="INFO"/> 37 <level value="INFO"/>
37 </logger> 38 </logger>
38 39
40 <!-- Independently control logging level for per region module loading -->
41 <logger name="OpenSim.ApplicationPlugins.RegionModulesController.RegionModulesControllerPlugin">
42 <level value="INFO"/>
43 </logger>
44
39 </log4net> 45 </log4net>
40</configuration> 46</configuration>
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index 6757081..842043e 100644
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -206,88 +206,19 @@
206 ;; Choose one of the physics engines below 206 ;; Choose one of the physics engines below
207 ;# {physics} {} {Select physics engine} {OpenDynamicsEngine BulletSim basicphysics POS} OpenDynamicsEngine 207 ;# {physics} {} {Select physics engine} {OpenDynamicsEngine BulletSim basicphysics POS} OpenDynamicsEngine
208 ;; OpenDynamicsEngine is by some distance the most developed physics engine 208 ;; OpenDynamicsEngine is by some distance the most developed physics engine
209 ;; BulletSim is incomplete and experimental but in active development 209 ;; BulletSim is experimental and in active development.
210 ;; basicphysics effectively does not model physics at all, making all 210 ;; basicphysics effectively does not model physics at all, making all
211 ;; objects phantom 211 ;; objects phantom.
212 ;; Default is OpenDynamicsEngine 212 ;; Default is OpenDynamicsEngine
213 ; physics = OpenDynamicsEngine 213 ; physics = OpenDynamicsEngine
214 ; physics = BulletSim 214 ; physics = BulletSim
215 ; physics = basicphysics 215 ; physics = basicphysics
216 ; physics = POS 216 ; physics = POS
217 217
218 ;# {permissionmodules} {} {Permission modules to use (may specify multiple modules, separated by comma} {} DefaultPermissionsModule
219 ;; Permission modules to use, separated by comma.
220 ;; Possible modules are DefaultPermissionsModule, PrimLimitsModule
221 ; permissionmodules = DefaultPermissionsModule
222
223 ;# {serverside_object_permissions} {permissionmodules:DefaultPermissionsModule} {Activate permission handling by the sim?} {true false} true
224 ;; These are the parameters for the default permissions module
225 ;;
226 ;; If set to false, then, in theory, the server never carries out
227 ;; permission checks (allowing anybody to copy
228 ;; any item, etc. This may not yet be implemented uniformally.
229 ;; If set to true, then all permissions checks are carried out
230 ; serverside_object_permissions = true
231
232 ;# {allow_grid_gods} {} {Allow grid gods?} {true false} false
233 ;; This allows users with a UserLevel of 200 or more to assume god
234 ;; powers in the regions in this simulator.
235 ; allow_grid_gods = false
236
237 ;; This allows some control over permissions
238 ;; please note that this still doesn't duplicate SL, and is not intended to
239 ;# {region_owner_is_god} {} {Allow region owner gods} {true false} true
240 ;; Allow region owners to assume god powers in their regions
241 ; region_owner_is_god = true
242
243 ;# {region_manager_is_god} {} {Allow region manager gods} {true false} false
244 ;; Allow region managers to assume god powers in regions they manage
245 ; region_manager_is_god = false
246
247 ;# {parcel_owner_is_god} {} {Allow parcel owner gods} {true false} true
248 ;; Allow parcel owners to assume god powers in their parcels
249 ; parcel_owner_is_god = true
250
251 ;# {simple_build_permissions} {} {Allow building in parcel by access list (no groups)} {true false} false
252 ;; More control over permissions
253 ;; This is definitely not SL!
254 ;; Provides a simple control for land owners to give build rights to
255 ;; specific avatars in publicly accessible parcels that disallow object
256 ;; creation in general.
257 ;; Owners specific avatars by adding them to the Access List of the parcel
258 ;; without having to use the Groups feature
259 ; simple_build_permissions = false
260
261
262 ;# {DefaultScriptEngine} {} {Default script engine} {XEngine} XEngine 218 ;# {DefaultScriptEngine} {} {Default script engine} {XEngine} XEngine
263 ;; Default script engine to use. Currently, we only have XEngine 219 ;; Default script engine to use. Currently, we only have XEngine
264 ; DefaultScriptEngine = "XEngine" 220 ; DefaultScriptEngine = "XEngine"
265 221
266 ;# {GenerateMaptiles} {} {Generate map tiles?} {true false} true
267 ;; Map tile options. You can choose to generate no map tiles at all,
268 ;; generate normal maptiles, or nominate an uploaded texture to
269 ;; be the map tile
270 ; GenerateMaptiles = true
271
272 ;# {MaptileRefresh} {GenerateMaptiles} {Maptile refresh period?} {} 0
273 ;; If desired, a running region can update the map tiles periodically
274 ;; to reflect building activity. This names no sense of you don't have
275 ;; prims on maptiles. Value is in seconds.
276 ; MaptileRefresh = 0
277
278 ;# {MaptileStaticUUID} {} {Asset ID for static map texture} {} 00000000-0000-0000-0000-000000000000
279 ;; If not generating maptiles, use this static texture asset ID
280 ; MaptileStaticUUID = "00000000-0000-0000-0000-000000000000"
281
282 ;# {TextureOnMapTile} {} {Use terrain textures for map tiles?} {true false} true
283 ;; Use terrain texture for maptiles if true, use shaded green if false
284 ; TextureOnMapTile = true
285
286 ;# {DrawPrimOnMapTile} {} {Draw prim shapes on map tiles?} {true false} false
287 ;; Draw objects on maptile. This step might take a long time if you've
288 ;; got a large number of objects, so you can turn it off here if you'd like.
289 ; DrawPrimOnMapTile = true
290
291 ;# {HttpProxy} {} {Proxy URL for llHTTPRequest and dynamic texture loading} {} http://proxy.com:8080 222 ;# {HttpProxy} {} {Proxy URL for llHTTPRequest and dynamic texture loading} {} http://proxy.com:8080
292 ;; Http proxy setting for llHTTPRequest and dynamic texture loading, if 223 ;; Http proxy setting for llHTTPRequest and dynamic texture loading, if
293 ;; required 224 ;; required
@@ -320,6 +251,8 @@
320 ;; default is false 251 ;; default is false
321 ; TelehubAllowLandmark = false 252 ; TelehubAllowLandmark = false
322 253
254
255[AccessControl]
323 ;# {AllowedClients} {} {Bar (|) separated list of allowed clients} {} 256 ;# {AllowedClients} {} {Bar (|) separated list of allowed clients} {}
324 ;; Bar (|) separated list of viewers which may gain access to the regions. 257 ;; Bar (|) separated list of viewers which may gain access to the regions.
325 ;; One can use a substring of the viewer name to enable only certain 258 ;; One can use a substring of the viewer name to enable only certain
@@ -328,7 +261,7 @@
328 ;; - "Imprudence" has access 261 ;; - "Imprudence" has access
329 ;; - "Imprudence 1.3" has access 262 ;; - "Imprudence 1.3" has access
330 ;; - "Imprudence 1.3.1" has no access 263 ;; - "Imprudence 1.3.1" has no access
331 ; AllowedViewerList = 264 ; AllowedClients =
332 265
333 ;# {BannedClients} {} {Bar (|) separated list of banned clients} {} 266 ;# {BannedClients} {} {Bar (|) separated list of banned clients} {}
334 ;# Bar (|) separated list of viewers which may not gain access to the regions. 267 ;# Bar (|) separated list of viewers which may not gain access to the regions.
@@ -338,7 +271,87 @@
338 ;; - "Imprudence" has no access 271 ;; - "Imprudence" has no access
339 ;; - "Imprudence 1.3" has no access 272 ;; - "Imprudence 1.3" has no access
340 ;; - "Imprudence 1.3.1" has access 273 ;; - "Imprudence 1.3.1" has access
341 ; BannedViewerList = 274 ; BannedClients =
275
276
277[Map]
278 ;# {GenerateMaptiles} {} {Generate map tiles?} {true false} true
279 ;; Map tile options.
280 ;; If true, then maptiles are generated using the MapImageModule below.
281 ;; If false then the texture referenced by MaptileStaticUUID is used instead, which can also be overriden
282 ;; in individual region config file(s). If you do not want to upload map tiles at all, then you will need
283 ;; both to set this to false and comment out the [Modules] MapImageServiceModule setting in config-include/
284 ; GenerateMaptiles = true
285
286 ;# {MapImageModule} [] {The map image module to use} {MapImageModule Warp3DImageModule} MapImageModule
287 ;; The module to use in order to generate map images.
288 ;; MapImageModule is the default. Warp3DImageModule is an alternative experimental module that can
289 ;; generate better images.
290 ;MapImageModule = "MapImageModule"
291
292 ;# {MaptileRefresh} {GenerateMaptiles} {Maptile refresh period?} {} 0
293 ;; If desired, a running region can update the map tiles periodically
294 ;; to reflect building activity. This names no sense of you don't have
295 ;; prims on maptiles. Value is in seconds.
296 ; MaptileRefresh = 0
297
298 ;# {MaptileStaticUUID} {} {Asset ID for static map texture} {} 00000000-0000-0000-0000-000000000000
299 ;; If not generating maptiles, use this static texture asset ID
300 ; MaptileStaticUUID = "00000000-0000-0000-0000-000000000000"
301
302 ;# {TextureOnMapTile} {} {Use terrain textures for map tiles?} {true false} true
303 ;; Use terrain texture for maptiles if true, use shaded green if false
304 ; TextureOnMapTile = true
305
306 ;# {DrawPrimOnMapTile} {} {Draw prim shapes on map tiles?} {true false} false
307 ;; Draw objects on maptile. This step might take a long time if you've
308 ;; got a large number of objects, so you can turn it off here if you'd like.
309 ; DrawPrimOnMapTile = true
310
311
312[Permissions]
313 ;# {permissionmodules} {} {Permission modules to use (may specify multiple modules, separated by comma} {} DefaultPermissionsModule
314 ;; Permission modules to use, separated by comma.
315 ;; Possible modules are DefaultPermissionsModule, PrimLimitsModule
316 ; permissionmodules = DefaultPermissionsModule
317
318 ;# {serverside_object_permissions} {permissionmodules:DefaultPermissionsModule} {Activate permission handling by the sim?} {true false} true
319 ;; These are the parameters for the default permissions module
320 ;;
321 ;; If set to false, then, in theory, the server never carries out
322 ;; permission checks (allowing anybody to copy
323 ;; any item, etc. This may not yet be implemented uniformally.
324 ;; If set to true, then all permissions checks are carried out
325 ; serverside_object_permissions = true
326
327 ;# {allow_grid_gods} {} {Allow grid gods?} {true false} false
328 ;; This allows users with a UserLevel of 200 or more to assume god
329 ;; powers in the regions in this simulator.
330 ; allow_grid_gods = false
331
332 ;; This allows some control over permissions
333 ;; please note that this still doesn't duplicate SL, and is not intended to
334 ;# {region_owner_is_god} {} {Allow region owner gods} {true false} true
335 ;; Allow region owners to assume god powers in their regions
336 ; region_owner_is_god = true
337
338 ;# {region_manager_is_god} {} {Allow region manager gods} {true false} false
339 ;; Allow region managers to assume god powers in regions they manage
340 ; region_manager_is_god = false
341
342 ;# {parcel_owner_is_god} {} {Allow parcel owner gods} {true false} true
343 ;; Allow parcel owners to assume god powers in their parcels
344 ; parcel_owner_is_god = true
345
346 ;# {simple_build_permissions} {} {Allow building in parcel by access list (no groups)} {true false} false
347 ;; More control over permissions
348 ;; This is definitely not SL!
349 ;; Provides a simple control for land owners to give build rights to
350 ;; specific avatars in publicly accessible parcels that disallow object
351 ;; creation in general.
352 ;; Owners specific avatars by adding them to the Access List of the parcel
353 ;; without having to use the Groups feature
354 ; simple_build_permissions = false
342 355
343 356
344[Estates] 357[Estates]
@@ -524,15 +537,28 @@
524 ; shout_distance = 100 537 ; shout_distance = 100
525 538
526 539
540[EntityTransfer]
541 ;# {DisableInterRegionTeleportCancellation} {} {Determine whether the cancel button is shown at all during teleports.} {false true} false
542 ;; This option exists because cancelling at certain points can result in an unuseable session (frozen avatar, etc.)
543 ;; Disabling cancellation can be okay in small closed grids where all teleports are highly likely to suceed.
544 ;DisableInterRegionTeleportCancellation = false
545
546
527[Messaging] 547[Messaging]
528 ;# {OfflineMessageModule} {} {Module to use for offline message storage} {OfflineMessageModule *} 548 ;# {OfflineMessageModule} {} {Module to use for offline message storage} {OfflineMessageModule "Offline Message Module V2" *}
529 ;; Module to handle offline messaging. The core module requires an external 549 ;; Module to handle offline messaging. The core module requires an external
530 ;; web service to do this. See OpenSim wiki. 550 ;; web service to do this. See OpenSim wiki.
531 ; OfflineMessageModule = OfflineMessageModule 551 ; OfflineMessageModule = OfflineMessageModule
552 ;; Or, alternatively, use this one, which works for both standalones and grids
553 ; OfflineMessageModule = "Offline Message Module V2"
554
555 ;# {OfflineMessageURL} {OfflineMessageModule:OfflineMessageModule Offline Message Module V2:Offline Message Module V2} {URL of offline messaging service} {}
556 ;; URL of web service for offline message storage. Leave it commented if your service is local to the sim.
557 ; OfflineMessageURL = http://yourserver/Offline.php or http://yourrobustserver:8003
532 558
533 ;# {OfflineMessageURL} {OfflineMessageModule:OfflineMessageModule} {URL of offline messaging service} {} 559 ;# {StorageProvider} {Offline Message Module V2:Offline Message Module V2} {DLL that provides the storage interface} {OpenSim.Data.MySQL.dll}
534 ;; URL of web service for offline message storage 560 ;; For standalones, this is the storage dll.
535 ; OfflineMessageURL = http://yourserver/Offline.php 561 ; StorageProvider = OpenSim.Data.MySQL.dll
536 562
537 ;# {MuteListModule} {OfflineMessageModule:OfflineMessageModule} {} {} MuteListModule 563 ;# {MuteListModule} {OfflineMessageModule:OfflineMessageModule} {} {} MuteListModule
538 ;; Mute list handler (not yet implemented). MUST BE SET to allow offline 564 ;; Mute list handler (not yet implemented). MUST BE SET to allow offline
@@ -744,13 +770,6 @@
744 ;; The trade-off may be increased memory usage by the script engine. 770 ;; The trade-off may be increased memory usage by the script engine.
745 ; ThreadStackSize = 262144 771 ; ThreadStackSize = 262144
746 772
747 ;# {DeleteScriptsOnStartup} {} {Delete previously compiled script DLLs on startup?} (true false) true
748 ;; Controls whether previously compiled scripts DLLs are deleted on sim restart. If you set this to false
749 ;; then startup will be considerably faster since scripts won't need to be recompiled. However, then it becomes your responsibility to delete the
750 ;; compiled scripts if you're recompiling OpenSim from source code and internal interfaces used
751 ;; by scripts have changed.
752 ; DeleteScriptsOnStartup = true
753
754 ;; Set this to true (the default) to load each script into a separate 773 ;; Set this to true (the default) to load each script into a separate
755 ;; AppDomain. 774 ;; AppDomain.
756 ;; 775 ;;
@@ -763,6 +782,23 @@
763 ;; Some Windows users have also reported script loading problems when AppDomainLoading = false 782 ;; Some Windows users have also reported script loading problems when AppDomainLoading = false
764 ; AppDomainLoading = true 783 ; AppDomainLoading = true
765 784
785 ;; Controls whether scripts are stopped by aborting their threads externally (abort) or by co-operative checks from the compiled script (co-op)
786 ;; co-op will be more stable but this option is currently experimental.
787 ;; If moving from co-op to abort, existing script DLLs will need to be recompiled.
788 ;; This currently can only be done manually, either by setting DeleteScriptsOnStartup = true for one run
789 ;; or by deleting the script DLL* files in bin/ScriptEngines/<region-id>/
790 ;; One can move from co-op back to abort without recompilation, but reverting back to co-op again will need script recompile
791 ;; Current valid values are "abort" and "co-op"
792 ; ScriptStopStrategy = abort
793
794
795 ;# {DeleteScriptsOnStartup} {} {Delete previously compiled script DLLs on startup?} (true false) true
796 ;; Controls whether previously compiled scripts DLLs are deleted on sim restart. If you set this to false
797 ;; then startup will be considerably faster since scripts won't need to be recompiled. However, then it becomes your responsibility to delete the
798 ;; compiled scripts if you're recompiling OpenSim from source code and internal interfaces used
799 ;; by scripts have changed.
800 ; DeleteScriptsOnStartup = true
801
766 ;# {DefaultCompileLanguage} {Enabled:true} {Default script language?} {lsl vb cs} lsl 802 ;# {DefaultCompileLanguage} {Enabled:true} {Default script language?} {lsl vb cs} lsl
767 ;; Default language for scripts 803 ;; Default language for scripts
768 ; DefaultCompileLanguage = "lsl" 804 ; DefaultCompileLanguage = "lsl"
@@ -786,8 +822,9 @@
786 ;; Allow the use of os* functions (some are dangerous) 822 ;; Allow the use of os* functions (some are dangerous)
787 ; AllowOSFunctions = false 823 ; AllowOSFunctions = false
788 824
789 ;# {AllowLightShareFunctions} {Enabled:true [LightShare]enable_windlight:true} {Allow LightShare functions?} {true false} true 825 ;# {AllowLightShareFunctions} {Enabled:false [LightShare]enable_windlight:true} {Allow LightShare functions?} {true false} false
790 ; Allow the user of LightShare functions 826 ; Allow the use of LightShare functions.
827 ; The setting enable_windlight = true must also be enabled in the [LightShare] section.
791 ; AllowLightShareFunctions = false 828 ; AllowLightShareFunctions = false
792 829
793 ;# {OSFunctionThreatLevel} {Enabled:true AllowOSFunctions:true} {OSFunction threat level? (DANGEROUS!)} {None VeryLow Low Moderate High VeryHigh Severe} VeryLow 830 ;# {OSFunctionThreatLevel} {Enabled:true AllowOSFunctions:true} {OSFunction threat level? (DANGEROUS!)} {None VeryLow Low Moderate High VeryHigh Severe} VeryLow
@@ -908,33 +945,54 @@
908 ;; Enables the groups module 945 ;; Enables the groups module
909 ; Enabled = false 946 ; Enabled = false
910 947
911 ;# {Module} {Enabled:true} {Groups module to use? (Use GroupsModule to use Flotsam/Simian)} {} Default 948 ;# {Module} {Enabled:true} {Groups module to use? (Use GroupsModule to use Flotsam/Simian)} {Default "Groups Module V2"} Default
912 ;; This is the current groups stub in Region.CoreModules.Avatar.Groups. 949 ;; The default module can use a PHP XmlRpc server from the Flotsam project at
913 ;; All the other settings below only really apply to the Flotsam/SimianGrid
914 ;; GroupsModule.
915 ;; This module can use a PHP XmlRpc server from the Flotsam project at
916 ;; http://code.google.com/p/flotsam/ 950 ;; http://code.google.com/p/flotsam/
917 ;; or from the SimianGrid project at http://code.google.com/p/openmetaverse 951 ;; or from the SimianGrid project at http://code.google.com/p/openmetaverse
918 ; Module = Default 952 ; Module = Default
919 953 ;; or... use Groups Module V2, which works for standalones and robust grids
920 ;# {MessagingEnabled} {Module:GroupsModule} {Is groups messaging enabled?} {true false} true 954 ; Module = "Groups Module V2"
921 ; MessagingEnabled = true 955
922 956 ;# {StorageProvider} {Module:Groups Module V2} {The DLL that provides the storage for V2} {OpenSim.Data.MySQL.dll}
923 ;# {MessagingModule} {MessagingEnabled:true} {Module to use for groups messaging} {GroupsMessagingModule} GroupsMessagingModule 957 ; StorageProvider = OpenSim.Data.MySQL.dll
924 ; MessagingModule = GroupsMessagingModule 958
925 959 ;# {ServicesConnectorModule} {Module:GroupsModule Module:Groups Module V2} {Service connector to use for groups} {XmlRpcGroupsServicesConnector SimianGroupsServicesConnector "Groups Local Service Connector" "Groups Remote Service Connector" "Groups HG Service Connector"} XmlRpcGroupsServicesConnector
926 ;# {ServicesConnectorModule} {Module:GroupsModule} {Service connector to use for groups} {XmlRpcGroupsServicesConnector SimianGroupsServicesConnector} XmlRpcGroupsServicesConnector 960 ;; Service connectors to the Groups Service as used in the GroupsModule. Select one as follows:
927 ;; Service connectors to the Groups Service as used in the GroupsModule. Select one depending on 961 ;; -- for Flotsam Groups use XmlRpcGroupsServicesConnector
928 ;; whether you're using a Flotsam XmlRpc backend or a SimianGrid backend 962 ;; -- for Simian Groups use SimianGroupsServicesConnector
963 ;; -- for V2 Groups, standalone, non-HG use "Groups Local Service Connector"
964 ;; -- for V2 Groups, grided sim, non-HG use "Groups Remote Service Connector"
965 ;; -- for V2 Groups, HG, both standalone and grided sim, use "Groups HG Service Connector"
966 ;; Note that the quotes "" around the words are important!
929 ; ServicesConnectorModule = XmlRpcGroupsServicesConnector 967 ; ServicesConnectorModule = XmlRpcGroupsServicesConnector
930 968
931 ;# {GroupsServerURI} {Module:GroupsModule} {Groups Server URI} {} 969 ;# {LocalService} {ServicesConnectorModule:Groups HG Service Connector} {Is the group service in this process or elsewhere?} {local remote} local
932 ;; URI for the groups services 970 ;; Used for V2 in HG only. If standalone, set this to local; if grided sim, set this to remote
971 ; LocalService = local
972
973 ;# {GroupsServerURI} {Module:GroupsModule (ServicesConnectorModule:Groups Remote Service Connector or (ServicesConnectorModule:Groups HG Service Connector and LocalService:remote))} {Groups Server URI} {}
974 ;; URI for the groups services of this grid
933 ;; e.g. http://yourxmlrpcserver.com/xmlrpc.php for Flotsam XmlRpc 975 ;; e.g. http://yourxmlrpcserver.com/xmlrpc.php for Flotsam XmlRpc
934 ;; or http://mygridserver.com:82/Grid/ for SimianGrid 976 ;; or http://mygridserver.com:82/Grid/ for SimianGrid
977 ;; or http:://mygridserver.com:8003 for robust, V2
978 ;; Leave it commented for standalones, V2
935 ; GroupsServerURI = "" 979 ; GroupsServerURI = ""
936 980
937 ;# {NoticesEnabled} {Module:GroupsModule} {Enable group notices?} {true false} true 981 ;# {HomeURI} {ServicesConnectorModule:Groups HG Service Connector} {What's the home address of this world?} {}
982 ;; Used for V2 in HG only. For example
983 ;; http://mygridserver.com:9000 or http://mygridserver.com:8002
984 ;; If you have this set under [Startup], no need to set it here, leave it commented
985 ; HomeURI = ""
986
987 ;# {MessagingEnabled} {Module:GroupsModule Module:Groups Module V2} {Is groups messaging enabled?} {true false} true
988 ; MessagingEnabled = true
989
990 ;# {MessagingModule} {MessagingEnabled:true} {Module to use for groups messaging} {GroupsMessagingModule "Groups Messaging Module V2"} GroupsMessagingModule
991 ; MessagingModule = GroupsMessagingModule
992 ;; or use V2 for Groups V2
993 ; MessagingModule = "Groups Messaging Module V2"
994
995 ;# {NoticesEnabled} {Module:GroupsModule Module:Groups Module V2} {Enable group notices?} {true false} true
938 ;; Enable Group Notices 996 ;; Enable Group Notices
939 ; NoticesEnabled = true 997 ; NoticesEnabled = true
940 998
diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini
index 54f252e..3eaef61 100644
--- a/bin/OpenSimDefaults.ini
+++ b/bin/OpenSimDefaults.ini
@@ -1,7 +1,6 @@
1; This file contains defaults for various settings in OpenSimulator. These can be overriden 1; This file contains defaults for various settings in OpenSimulator. These can be overriden
2; by changing the same setting in OpenSim.ini (once OpenSim.ini.example has been copied to OpenSim.ini). 2; by changing the same setting in OpenSim.ini (once OpenSim.ini.example has been copied to OpenSim.ini).
3 3
4
5[Startup] 4[Startup]
6 ; Console prompt 5 ; Console prompt
7 ; Certain special characters can be used to customize the prompt 6 ; Certain special characters can be used to customize the prompt
@@ -217,10 +216,10 @@
217 ; to false if you have compatibility problems. 216 ; to false if you have compatibility problems.
218 ;CacheSculptMaps = true 217 ;CacheSculptMaps = true
219 218
220 ; Choose one of the physics engines below 219 ; Choose one of the physics engines below.
221 ; OpenDynamicsEngine is by some distance the most developed physics engine 220 ; OpenDynamicsEngine is by some distance the most developed physics engine.
222 ; basicphysics effectively does not model physics at all, making all objects phantom 221 ; BulletSim is a high performance, up-and-coming physics engine.
223 222 ; basicphysics effectively does not model physics at all, making all objects phantom.
224 physics = OpenDynamicsEngine 223 physics = OpenDynamicsEngine
225 ;physics = basicphysics 224 ;physics = basicphysics
226 ;physics = POS 225 ;physics = POS
@@ -228,6 +227,73 @@
228 ;physics = BulletSim 227 ;physics = BulletSim
229 228
230 ; ## 229 ; ##
230 ; ## SCRIPT ENGINE
231 ; ##
232
233 DefaultScriptEngine = "XEngine"
234
235 ; ##
236 ; ## EMAIL MODULE
237 ; ##
238
239 ;emailmodule = DefaultEmailModule
240
241 ; ##
242 ; ## ANIMATIONS
243 ; ##
244
245 ; If enabled, enableFlySlow will change the primary fly state to
246 ; FLYSLOW, and the "always run" state will be the regular fly.
247 enableflyslow = false
248
249 ; PreJump is an additional animation state, but it probably
250 ; won't look right until the physics engine supports it
251 ; (i.e delays takeoff for a moment)
252
253 ; Simulator Stats URI
254 ; Enable JSON simulator data by setting a URI name (case sensitive)
255 ; Stats_URI = "jsonSimStats"
256
257 ; Make OpenSim start all regions woth logins disabled. They will need
258 ; to be enabled from the console if this is set
259 ; StartDisabled = false
260
261 ; Image decoding. Use CSJ2K for layer boundary decoding if true,
262 ; OpenJPEG if false
263 ; UseCSJ2K = true
264
265 ; Use "Trash" folder for items deleted from the scene
266 ; When set to True (the default) items deleted from the scene will be
267 ; stored in the user's trash or lost and found folder. When set to
268 ; False items will be removed from the scene permanently
269 UseTrashOnDelete = True
270
271
272[Map]
273 ;WorldMapModule = "WorldMap"
274 ;MapImageModule = "MapImageModule"
275
276 ; World map blacklist timeout in seconds
277 ;BlacklistTimeout = 600
278
279 ; Set to false to not generate any maptiles
280 ;GenerateMaptiles = true
281
282 ; Refresh (in seconds) the map tile periodically
283 ;MaptileRefresh = 0
284
285 ; If not generating maptiles, use this static texture asset ID
286 ;MaptileStaticUUID = "00000000-0000-0000-0000-000000000000"
287
288 ; Draw objects on maptile. This step might take a long time if you've got a large number of
289 ; objects, so you can turn it off here if you'd like.
290 DrawPrimOnMapTile = true
291
292 ; Use terrain texture for maptiles if true, use shaded green if false
293 TextureOnMapTile = true
294
295[Permissions]
296 ; ##
231 ; ## PERMISSIONS 297 ; ## PERMISSIONS
232 ; ## 298 ; ##
233 299
@@ -275,74 +341,6 @@
275 ; Minimum user level required to upload assets 341 ; Minimum user level required to upload assets
276 ;LevelUpload = 0 342 ;LevelUpload = 0
277 343
278 ; ##
279 ; ## SCRIPT ENGINE
280 ; ##
281
282 DefaultScriptEngine = "XEngine"
283
284 ; ##
285 ; ## WORLD MAP
286 ; ##
287
288 ;WorldMapModule = "WorldMap"
289 ;MapImageModule = "MapImageModule"
290
291 ; World map blacklist timeout in seconds
292 ;BlacklistTimeout = 600
293
294 ; Set to false to not generate any maptiles
295 ;GenerateMaptiles = true
296
297 ; Refresh (in seconds) the map tile periodically
298 ;MaptileRefresh = 0
299
300 ; If not generating maptiles, use this static texture asset ID
301 ;MaptileStaticUUID = "00000000-0000-0000-0000-000000000000"
302
303 ; Draw objects on maptile. This step might take a long time if you've got a large number of
304 ; objects, so you can turn it off here if you'd like.
305 DrawPrimOnMapTile = true
306
307 ; Use terrain texture for maptiles if true, use shaded green if false
308 TextureOnMapTile = true
309
310 ; ##
311 ; ## EMAIL MODULE
312 ; ##
313
314 ;emailmodule = DefaultEmailModule
315
316 ; ##
317 ; ## ANIMATIONS
318 ; ##
319
320 ; If enabled, enableFlySlow will change the primary fly state to
321 ; FLYSLOW, and the "always run" state will be the regular fly.
322 enableflyslow = false
323
324 ; PreJump is an additional animation state, but it probably
325 ; won't look right until the physics engine supports it
326 ; (i.e delays takeoff for a moment)
327
328 ; Simulator Stats URI
329 ; Enable JSON simulator data by setting a URI name (case sensitive)
330 ; Stats_URI = "jsonSimStats"
331
332 ; Make OpenSim start all regions woth logins disabled. They will need
333 ; to be enabled from the console if this is set
334 ; StartDisabled = false
335
336 ; Image decoding. Use CSJ2K for layer boundary decoding if true,
337 ; OpenJPEG if false
338 ; UseCSJ2K = true
339
340 ; Use "Trash" folder for items deleted from the scene
341 ; When set to True (the default) items deleted from the scene will be
342 ; stored in the user's trash or lost and found folder. When set to
343 ; False items will be removed from the scene permanently
344 UseTrashOnDelete = True
345
346 344
347[RegionReady] 345[RegionReady]
348 ; Enable this module to get notified once all items and scripts in the region have been completely loaded and compiled 346 ; Enable this module to get notified once all items and scripts in the region have been completely loaded and compiled
@@ -364,6 +362,12 @@
364 ; alert_uri = "http://myappserver.net/my_handler/" 362 ; alert_uri = "http://myappserver.net/my_handler/"
365 363
366 364
365[EstateManagement]
366 ; If false, then block any region restart requests from the client even if they are otherwise valid.
367 ; Default is true
368 AllowRegionRestartFromClient = true
369
370
367[SMTP] 371[SMTP]
368 enabled = false 372 enabled = false
369 373
@@ -620,6 +624,11 @@
620 ; Minimum user level required for HyperGrid teleports 624 ; Minimum user level required for HyperGrid teleports
621 LevelHGTeleport = 0 625 LevelHGTeleport = 0
622 626
627 ; Determine whether the cancel button is shown at all during teleports.
628 ; This option exists because cancelling at certain points can result in an unuseable session (frozen avatar, etc.)
629 ; Disabling cancellation can be okay in small closed grids where all teleports are highly likely to suceed.
630 DisableInterRegionTeleportCancellation = false
631
623 632
624[Messaging] 633[Messaging]
625 ; Control which region module is used for instant messaging. 634 ; Control which region module is used for instant messaging.
@@ -898,17 +907,29 @@
898 907
899[BulletSim] 908[BulletSim]
900 ; World parameters 909 ; World parameters
901 DefaultFriction = 0.50 910
902 DefaultDensity = 10.000006836 911 ; There are two bullet physics libraries, bulletunmanaged is the default and is a native c++ dll
903 DefaultRestitution = 0.0 912 ; bulletxna is a managed C# dll. They have comparible functionality.. the c++ is much faster.
913
914 BulletEngine = "bulletunmanaged"
915 ; BulletEngine = "bulletxna"
916
917 ; Terrain Implementation {1|0} 0 for HeightField, 1 for Mesh terrain. If you're using the bulletxna engine,
918 ; you will want to switch to the heightfield option
919 TerrainImplementation = 1
920 ; TerrainImplementation = 0
921
904 Gravity = -9.80665 922 Gravity = -9.80665
905 923
906 TerrainFriction = 0.50 924 TerrainFriction = 0.30
907 TerrainHitFriction = 0.8 925 TerrainHitFraction = 0.8
908 TerrainRestitution = 0 926 TerrainRestitution = 0
927 TerrainCollisionMargin = 0.04
928
909 AvatarFriction = 0.2 929 AvatarFriction = 0.2
930 AvatarStandingFriction = 0.95
910 AvatarRestitution = 0.0 931 AvatarRestitution = 0.0
911 AvatarDensity = 60.0 932 AvatarDensity = 3.5
912 AvatarCapsuleWidth = 0.6 933 AvatarCapsuleWidth = 0.6
913 AvatarCapsuleDepth = 0.45 934 AvatarCapsuleDepth = 0.45
914 AvatarCapsuleHeight = 1.5 935 AvatarCapsuleHeight = 1.5
@@ -916,30 +937,10 @@
916 937
917 MaxObjectMass = 10000.01 938 MaxObjectMass = 10000.01
918 939
919 ; Dynamic parameters 940 CollisionMargin = 0.04
920 LinearDamping = 0.0
921 AngularDamping = 0.0
922 DeactivationTime = 0.2
923 LinearSleepingThreshold = 0.8
924 AngularSleepingThreshold = 1.0
925 CcdMotionThreshold = 0.0
926 CcdSweptSphereRadius = 0.0
927 ContactProcessingThreshold = 0.1
928 ; If setting a pool size, also disable dynamic allocation (default pool size is 4096 with dynamic alloc)
929 MaxPersistantManifoldPoolSize = 0
930 ShouldDisableContactPoolDynamicAllocation = False
931 ShouldForceUpdateAllAabbs = False
932 ShouldRandomizeSolverOrder = True
933 ShouldSplitSimulationIslands = True
934 ShouldEnableFrictionCaching = False
935 NumberOfSolverIterations = 0
936
937 ; Linkset constraint parameters
938 LinkConstraintUseFrameOffset = False
939 LinkConstraintEnableTransMotor = True
940 LinkConstraintTransMotorMaxVel = 5.0
941 LinkConstraintTransMotorMaxForce = 0.1
942 941
942 ; Linkset implmentation
943 LinkImplementation = 1 ; 0=constraint, 1=compound
943 944
944 ; Whether to mesh sculpties 945 ; Whether to mesh sculpties
945 MeshSculptedPrim = true 946 MeshSculptedPrim = true
@@ -947,14 +948,6 @@
947 ; If 'true', force simple prims (box and sphere) to be meshed 948 ; If 'true', force simple prims (box and sphere) to be meshed
948 ForceSimplePrimMeshing = false 949 ForceSimplePrimMeshing = false
949 950
950 ; level of detail for physical meshes. 32,16,8 or 4 with 32 being full detail
951 MeshLevelOfDetail = 8
952 ; if mesh size is > threshold meters, we need to add more detail because people will notice
953 MeshLevelOfDetailMegaPrimThreshold = 10
954 MeshLevelOfDetailMegaPrim = 16
955 ; number^2 non-physical level of detail of the sculpt texture. 32x32 - 1024 verticies
956 SculptLevelOfDetail = 32
957
958 ; Bullet step parameters 951 ; Bullet step parameters
959 MaxSubSteps = 10 952 MaxSubSteps = 10
960 FixedTimeStep = .01667 953 FixedTimeStep = .01667
@@ -966,6 +959,7 @@
966 PhysicsLoggingEnabled = False 959 PhysicsLoggingEnabled = False
967 PhysicsLoggingDir = "." 960 PhysicsLoggingDir = "."
968 VehicleLoggingEnabled = False 961 VehicleLoggingEnabled = False
962
969 963
970[RemoteAdmin] 964[RemoteAdmin]
971 enabled = false 965 enabled = false
@@ -1116,6 +1110,17 @@
1116 1110
1117 ;exclude_list=User 1,User 2,User 3 1111 ;exclude_list=User 1,User 2,User 3
1118 1112
1113 ;;Shows modal alertbox for entering agent on IRC enabled regions
1114 ;;
1115 ;; Enable Alert, default = false
1116 ;alert_show = false
1117 ;;
1118 ;; Show IRC serverinfo, default = true
1119 ;alert_show_serverinfo = true
1120 ;;
1121 ;alert_msg_pre = "This region is linked to Irc."
1122 ;alert_msg_post = "Everything you say in public chat can be listened."
1123
1119 1124
1120; The following settings control the progression of daytime 1125; The following settings control the progression of daytime
1121; in the Sim. The defaults are the same as the commented out settings 1126; in the Sim. The defaults are the same as the commented out settings
@@ -1297,6 +1302,20 @@
1297 ; script assemblies 1302 ; script assemblies
1298 AppDomainLoading = true 1303 AppDomainLoading = true
1299 1304
1305 ; Controls whether previously compiled scripts DLLs are deleted on sim restart. If you set this to false
1306 ; then startup will be considerably faster since scripts won't need to be recompiled. However, then it becomes your responsibility to delete the
1307 ; compiled scripts if you're recompiling OpenSim from source code and internal interfaces used
1308 ; by scripts have changed.
1309 ; DeleteScriptsOnStartup = false
1310
1311 ; Controls whether scripts are stopped by aborting their threads externally (abort) or by co-operative checks from the compiled script (co-op)
1312 ; co-op will be more stable but this option is currently experimental.
1313 ; If moving from co-op to abort, existing script DLLs will need to be recompiled.
1314 ; This currently can only be done manually, either by setting DeleteScriptsOnStartup = true for one run
1315 ; or by deleting the script DLL* files in bin/ScriptEngines/<region-id>/
1316 ; One can move from co-op back to abort without recompilation, but reverting back to co-op again will need script recompile
1317 ScriptStopStrategy = abort
1318
1300 ; Rate to poll for asynchronous command replies (ms) 1319 ; Rate to poll for asynchronous command replies (ms)
1301 ; currently unused 1320 ; currently unused
1302 ;AsyncLLCommandLoopms = 50 1321 ;AsyncLLCommandLoopms = 50
@@ -1367,6 +1386,10 @@
1367 ; If a script overruns it's event limit, kill the script? 1386 ; If a script overruns it's event limit, kill the script?
1368 KillTimedOutScripts = false 1387 KillTimedOutScripts = false
1369 1388
1389 ; Amount of time in milliseconds we will wait for an event to completely normally when a script stop is requested
1390 ; before aborting the thread (such as when an object containing scripts is taken into inventory).
1391 WaitForEventCompletionOnScriptStop = 1000;
1392
1370 ; Sets the multiplier for the scripting delays 1393 ; Sets the multiplier for the scripting delays
1371 ScriptDelayFactor = 1.0 1394 ScriptDelayFactor = 1.0
1372 1395
@@ -1378,6 +1401,10 @@
1378 ; up the system to malicious scripters 1401 ; up the system to malicious scripters
1379 ; NotecardLineReadCharsMax = 255 1402 ; NotecardLineReadCharsMax = 255
1380 1403
1404 ; Minimum settable timer interval. Any timer setting less than this is
1405 ; rounded up to this minimum interval.
1406 ; MinTimerInterval = 0.5
1407
1381 ; Sensor settings 1408 ; Sensor settings
1382 SensorMaxRange = 96.0 1409 SensorMaxRange = 96.0
1383 SensorMaxResults = 16 1410 SensorMaxResults = 16
@@ -1394,12 +1421,6 @@
1394 ;; Path to script assemblies 1421 ;; Path to script assemblies
1395 ; ScriptEnginesPath = "ScriptEngines" 1422 ; ScriptEnginesPath = "ScriptEngines"
1396 1423
1397 ; Controls whether previously compiled scripts DLLs are deleted on sim restart. If you set this to false
1398 ; then startup will be considerably faster since scripts won't need to be recompiled. However, then it becomes your responsibility to delete the
1399 ; compiled scripts if you're recompiling OpenSim from source code and internal interfaces used
1400 ; by scripts have changed.
1401 ; DeleteScriptsOnStartup = false
1402
1403 1424
1404[Concierge] 1425[Concierge]
1405 ; Enable concierge module 1426 ; Enable concierge module
@@ -1582,8 +1603,7 @@
1582 1603
1583 ; If true, then the basic packet objects used to receive data are also recycled, not just the LLUDP packets. 1604 ; If true, then the basic packet objects used to receive data are also recycled, not just the LLUDP packets.
1584 ; This reduces data churn 1605 ; This reduces data churn
1585 ; This setting is currently experimental and defaults to false. 1606 RecycleBaseUDPPackets = true
1586 RecycleBaseUDPPackets = false;
1587 1607
1588 1608
1589[InterestManagement] 1609[InterestManagement]
@@ -1636,6 +1656,10 @@
1636[JsonStore] 1656[JsonStore]
1637Enabled = False 1657Enabled = False
1638 1658
1659;; Enable direct access to the SOP dynamic attributes
1660EnableObjectStore = False
1661MaxStringSpace = 0
1662
1639;; 1663;;
1640;; These are defaults that are overwritten below in [Architecture]. 1664;; These are defaults that are overwritten below in [Architecture].
1641;; These defaults allow OpenSim to work out of the box with 1665;; These defaults allow OpenSim to work out of the box with
diff --git a/bin/Regions/Regions.ini.example b/bin/Regions/Regions.ini.example
new file mode 100644
index 0000000..ab3a62a
--- /dev/null
+++ b/bin/Regions/Regions.ini.example
@@ -0,0 +1,52 @@
1; * This is an example region config file.
2; *
3; * If OpenSimulator is started up without any regions, it will ask you configuration questions to generate a Regions.ini file for you.
4; * So there is no need to change this file directly, it is only for reference.
5; * However, if you prefer you can also copy this file to Regions.ini and appropriately change the parameters below.
6; * Only files ending with .ini and .xml in this directly will be loaded by OpenSimulator.
7; *
8; * You can multiple regions into one file or make one file per region
9; * The section name is the region name
10; *
11
12[Default Region]
13
14; *
15; * You MUST change this! It will NOT be done for you!
16; *
17
18RegionUUID = "11111111-2222-3333-4444-555555555555"
19
20Location = "1000,1000"
21InternalAddress = "127.0.0.1"
22InternalPort = 9000
23AllowAlternatePorts = False
24ExternalHostName = "SYSTEMIP"
25
26; *
27; * Prim data
28; * This allows limiting the sizes of prims and the region prim count
29; *
30
31; NonphysicalPrimMax = 256
32; PhysicalPrimMax = 10
33; ClampPrimSize = False
34; MaxPrims = 15000
35; MaxAgents = 100
36
37; *
38; * Multi-Tenancy. Only set if needed
39; *
40
41; ScopeID = "00000000-0000-0000-0000-000000000000"
42
43; *
44; * Product name (used in search from viewer 1.23
45; *
46
47; RegionType = "Mainland"
48
49; *
50; * UUID of texture to use as a maptile for this region.
51; * Only set if you have disabled dynamic generation of the map tile from the region contents.
52; MaptileStaticUUID = "00000000-0000-0000-0000-000000000000"
diff --git a/bin/Robust.HG.ini.example b/bin/Robust.HG.ini.example
index 4ecc6b0..581c31d 100644
--- a/bin/Robust.HG.ini.example
+++ b/bin/Robust.HG.ini.example
@@ -22,11 +22,24 @@
22; * 22; *
23[Startup] 23[Startup]
24 24
25 ; Plugin Registry Location
26 ; Set path to directory for plugin registry. Information
27 ; about the registered repositories and installed plugins
28 ; will be stored here
29 ; The Robust.exe process must have R/W access to the location
30 RegistryLocation = "."
31
32 ; Modular configurations
33 ; Set path to directory for modular ini files...
34 ; The Robust.exe process must have R/W access to the location
35 ConfigDirectory = "/home/opensim/etc/Configs"
36
25[ServiceList] 37[ServiceList]
26 38
27AssetServiceConnector = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector" 39AssetServiceConnector = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector"
28InventoryInConnector = "8003/OpenSim.Server.Handlers.dll:XInventoryInConnector" 40InventoryInConnector = "8003/OpenSim.Server.Handlers.dll:XInventoryInConnector"
29VoiceConnector = "8004/OpenSim.Server.Handlers.dll:FreeswitchServerConnector" 41;; Uncomment if you have set up Freeswitch (see [FreeswitchService] below)
42;VoiceConnector = "8004/OpenSim.Server.Handlers.dll:FreeswitchServerConnector"
30GridServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridServiceConnector" 43GridServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridServiceConnector"
31GridInfoServerInConnector = "8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector" 44GridInfoServerInConnector = "8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector"
32AuthenticationServiceConnector = "8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector" 45AuthenticationServiceConnector = "8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector"
@@ -39,6 +52,10 @@ GridUserServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridUserServiceConn
39FriendsServiceConnector = "8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector" 52FriendsServiceConnector = "8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector"
40MapAddServiceConnector = "8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector" 53MapAddServiceConnector = "8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector"
41MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector" 54MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector"
55;; Uncomment this if you want offline IM to work
56; OfflineIMServiceConnector = "8003/OpenSim.Addons.OfflineIM.dll:OfflineIMServiceRobustConnector"
57;; Uncomment this if you want Groups V2 to work
58; GroupsServiceConnector = "8003/OpenSim.Addons.Groups.dll:GroupsServiceRobustConnector"
42 59
43;; Additions for Hypergrid 60;; Additions for Hypergrid
44 61
@@ -49,11 +66,12 @@ HGFriendsServerConnector = "8002/OpenSim.Server.Handlers.dll:HGFriendsServerConn
49InstantMessageServerConnector = "8002/OpenSim.Server.Handlers.dll:InstantMessageServerConnector" 66InstantMessageServerConnector = "8002/OpenSim.Server.Handlers.dll:InstantMessageServerConnector"
50HGInventoryServiceConnector = "HGInventoryService@8002/OpenSim.Server.Handlers.dll:XInventoryInConnector" 67HGInventoryServiceConnector = "HGInventoryService@8002/OpenSim.Server.Handlers.dll:XInventoryInConnector"
51HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:AssetServiceConnector" 68HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:AssetServiceConnector"
69;; Uncomment this if you want Groups V2, HG to work
70; HGGroupsServiceConnector = "8002/OpenSim.Addons.Groups.dll:HGGroupsServiceRobustConnector"
52 71
53;; Additions for other add-on modules. For example: 72;; Additions for other add-on modules. For example:
54;; WifiServerConnector = "8002/Diva.Wifi.dll:WifiServerConnector" 73;; WifiServerConnector = "8002/Diva.Wifi.dll:WifiServerConnector"
55 74
56
57; * This is common for all services, it's the network setup for the entire 75; * This is common for all services, it's the network setup for the entire
58; * server instance, if none is specified above 76; * server instance, if none is specified above
59; * 77; *
@@ -87,6 +105,21 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset
87;ConsolePass = secret 105;ConsolePass = secret
88;ConsolePort = 0 106;ConsolePort = 0
89 107
108[Hypergrid]
109 ;# {HomeURI} {Hypergrid} {The Home URL of this world} {}
110 ;; This is the address of the external robust server that
111 ;; runs the UserAgentsService, possibly this server.
112 ;; For example http://myworld.com:8002
113 ;; This is a default that can be overwritten in some sections.
114 ; HomeURI = "http://127.0.0.1:8002"
115
116 ;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {}
117 ;; This is the address of the external robust server
118 ;; that runs the Gatekeeper service, possibly this server.
119 ;; For example http://myworld.com:8002
120 ;; This is a default that can be overwritten in some sections.
121 ; GatekeeperURI = "http://127.0.0.1:8002"
122
90[DatabaseService] 123[DatabaseService]
91 StorageProvider = "OpenSim.Data.MySQL.dll" 124 StorageProvider = "OpenSim.Data.MySQL.dll"
92 ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;Old Guids=true;" 125 ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;Old Guids=true;"
@@ -138,7 +171,8 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset
138 ;; Allow Hyperlinks to be created at the console 171 ;; Allow Hyperlinks to be created at the console
139 HypergridLinker = true 172 HypergridLinker = true
140 173
141 Gatekeeper = "http://127.0.0.1:8002" 174 ;; If you have this set under [Hypergrid], no need to set it here, leave it commented
175 ; GatekeeperURI = "http://127.0.0.1:8002"
142 176
143 177
144; * This is the configuration for the freeswitch server in grid mode 178; * This is the configuration for the freeswitch server in grid mode
@@ -292,8 +326,8 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset
292 ; HasProxy = false 326 ; HasProxy = false
293 327
294 ; Defaults for the users, if none is specified in the useraccounts table entry (ServiceURLs) 328 ; Defaults for the users, if none is specified in the useraccounts table entry (ServiceURLs)
295 ; CHANGE THIS 329 ;; If you have GatekeeperURI set under [Hypergrid], no need to set it here, leave it commented
296 GatekeeperURI = "http://127.0.0.1:8002" 330 ; GatekeeperURI = "http://127.0.0.1:8002"
297 331
298 SRV_HomeURI = "http://127.0.0.1:8002" 332 SRV_HomeURI = "http://127.0.0.1:8002"
299 SRV_InventoryServerURI = "http://127.0.0.1:8002" 333 SRV_InventoryServerURI = "http://127.0.0.1:8002"
@@ -301,6 +335,7 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset
301 SRV_ProfileServerURI = "http://127.0.0.1:8002" 335 SRV_ProfileServerURI = "http://127.0.0.1:8002"
302 SRV_FriendsServerURI = "http://127.0.0.1:8002" 336 SRV_FriendsServerURI = "http://127.0.0.1:8002"
303 SRV_IMServerURI = "http://127.0.0.1:8002" 337 SRV_IMServerURI = "http://127.0.0.1:8002"
338 SRV_GroupsServerURI = "http://127.0.0.1:8002"
304 339
305 ;; Regular expressions for controlling which client versions are accepted/denied. 340 ;; Regular expressions for controlling which client versions are accepted/denied.
306 ;; An empty string means nothing is checked. 341 ;; An empty string means nothing is checked.
@@ -396,12 +431,13 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset
396 UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService" 431 UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
397 UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService" 432 UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService"
398 PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService" 433 PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService"
434 GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService"
399 GridService = "OpenSim.Services.GridService.dll:GridService" 435 GridService = "OpenSim.Services.GridService.dll:GridService"
400 AuthenticationService = "OpenSim.Services.Connectors.dll:AuthenticationServicesConnector" 436 AuthenticationService = "OpenSim.Services.Connectors.dll:AuthenticationServicesConnector"
401 SimulationService ="OpenSim.Services.Connectors.dll:SimulationServiceConnector" 437 SimulationService ="OpenSim.Services.Connectors.dll:SimulationServiceConnector"
402 ; how does the outside world reach me? This acts as public key too. 438 ; how does the outside world reach me? This acts as public key too.
403 ; CHANGE THIS 439 ;; If you have GatekeeperURI set under [Hypergrid], no need to set it here, leave it commented
404 ExternalName = "http://127.0.0.1:8002" 440 ; ExternalName = "http://127.0.0.1:8002"
405 441
406 ; Does this grid allow incoming links to any region in it? 442 ; Does this grid allow incoming links to any region in it?
407 ; If false, HG TPs happen only to the Default regions specified in [GridService] section 443 ; If false, HG TPs happen only to the Default regions specified in [GridService] section
@@ -494,7 +530,9 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset
494 530
495 UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService" 531 UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
496 AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService" 532 AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService"
497 HomeURI = "http://127.0.0.1:8002" 533
534 ;; Can overwrite the default in [Hypergrid], but probably shouldn't
535 ; HomeURI = "http://127.0.0.1:8002"
498 536
499; * The interface that local users get when they are in other grids. 537; * The interface that local users get when they are in other grids.
500; * This restricts the access that the rest of the world has to 538; * This restricts the access that the rest of the world has to
@@ -503,7 +541,9 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset
503[HGAssetService] 541[HGAssetService]
504 LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGAssetService" 542 LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGAssetService"
505 UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService" 543 UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
506 HomeURI = "http://127.0.0.1:8002" 544
545 ;; Can overwrite the default in [Hypergrid], but probably shouldn't
546 ; HomeURI = "http://127.0.0.1:8002"
507 547
508 ;; The asset types that this grid can export to / import from other grids. 548 ;; The asset types that this grid can export to / import from other grids.
509 ;; Comma separated. 549 ;; Comma separated.
@@ -534,15 +574,16 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset
534 InGatekeeper = True 574 InGatekeeper = True
535 575
536[Messaging] 576[Messaging]
537 ; If you have an Offline IM server, set the vars in this section, so that 577 ; OfflineIM
538 ; incomming IMs to local users from foreign grids can be saved 578 OfflineIMService = "OpenSim.Addons.OfflineIM.dll:OfflineIMService"
539 ; 579
540 ;# {OfflineMessageURL} {OfflineMessageModule:OfflineMessageModule} {URL of offline messaging service} {} 580[Groups]
541 ;; URL of web service for offline message storage 581 ;; for the HG Groups service
542 ; OfflineMessageURL = http://yourserver/Offline.php 582 OfflineIMService = "OpenSim.Addons.OfflineIM.dll:OfflineIMService"
543 583 UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
544 ;; Control whether group messages are forwarded to offline users. 584
545 ;; Default is true. 585 ;; What is the HomeURI of users associated with this grid?
546 ;; This applies to the core groups module (Flotsam) only. 586 ;; Can overwrite the default in [Hypergrid], but probably shouldn't
547 ; ForwardOfflineGroupMessages = true 587 ; HomeURI = "http://127.0.0.1:8002"
588
548 589
diff --git a/bin/Robust.ini.example b/bin/Robust.ini.example
index 7503c5e..d932ce7 100644
--- a/bin/Robust.ini.example
+++ b/bin/Robust.ini.example
@@ -14,10 +14,24 @@
14; * 14; *
15[Startup] 15[Startup]
16 16
17 ; Plugin Registry Location
18 ; Set path to directory for plugin registry. Information
19 ; about the registered repositories and installed plugins
20 ; will be stored here
21 ; The Robust.exe process must hvae R/W access to the location
22 RegistryLocation = "."
23
24
25 ; Modular configurations
26 ; Set path to directory for modular ini files...
27 ; The Robust.exe process must hvae R/W access to the location
28 ConfigDirectory = "/home/opensim/etc/Configs"
29
17[ServiceList] 30[ServiceList]
18AssetServiceConnector = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector" 31AssetServiceConnector = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector"
19InventoryInConnector = "8003/OpenSim.Server.Handlers.dll:XInventoryInConnector" 32InventoryInConnector = "8003/OpenSim.Server.Handlers.dll:XInventoryInConnector"
20VoiceConnector = "8004/OpenSim.Server.Handlers.dll:FreeswitchServerConnector" 33;; Uncomment if you have set up Freeswitch (see [FreeswitchService] below)
34;VoiceConnector = "8004/OpenSim.Server.Handlers.dll:FreeswitchServerConnector"
21GridServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridServiceConnector" 35GridServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridServiceConnector"
22GridInfoServerInConnector = "8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector" 36GridInfoServerInConnector = "8002/OpenSim.Server.Handlers.dll:GridInfoServerInConnector"
23AuthenticationServiceConnector = "8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector" 37AuthenticationServiceConnector = "8003/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector"
@@ -30,6 +44,11 @@ GridUserServiceConnector = "8003/OpenSim.Server.Handlers.dll:GridUserServiceConn
30FriendsServiceConnector = "8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector" 44FriendsServiceConnector = "8003/OpenSim.Server.Handlers.dll:FriendsServiceConnector"
31MapAddServiceConnector = "8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector" 45MapAddServiceConnector = "8003/OpenSim.Server.Handlers.dll:MapAddServiceConnector"
32MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector" 46MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnector"
47;; Uncomment this if you want offline IM to work
48;OfflineIMServiceConnector = "8003/OpenSim.Addons.OfflineIM.dll:OfflineIMServiceRobustConnector"
49;; Uncomment this if you want Groups V2 to work
50;GroupsServiceConnector = "8003/OpenSim.Addons.Groups.dll:GroupsServiceRobustConnector"
51
33 52
34; * This is common for all services, it's the network setup for the entire 53; * This is common for all services, it's the network setup for the entire
35; * server instance, if none is specified above 54; * server instance, if none is specified above
@@ -243,7 +262,12 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto
243 LibraryService = "OpenSim.Services.InventoryService.dll:LibraryService" 262 LibraryService = "OpenSim.Services.InventoryService.dll:LibraryService"
244 FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService" 263 FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService"
245 264
246 ;; Ask co-operative viewers to use a different currency name 265 ; The minimum user level required for a user to be able to login. 0 by default
266 ; If you disable a particular user's account then you can set their login level below this number.
267 ; You can also change this level from the console though these changes will not be persisted.
268 ; MinLoginLevel = 0
269
270 ; Ask co-operative viewers to use a different currency name
247 ;Currency = "" 271 ;Currency = ""
248 272
249 WelcomeMessage = "Welcome, Avatar!" 273 WelcomeMessage = "Welcome, Avatar!"
@@ -316,6 +340,9 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto
316 ; HasProxy = false 340 ; HasProxy = false
317 341
318 342
343[Messaging]
344 ; OfflineIM
345 OfflineIMService = "OpenSim.Addons.OfflineIM.dll:OfflineIMService"
319 346
320[GridInfoService] 347[GridInfoService]
321 ; These settings are used to return information on a get_grid_info call. 348 ; These settings are used to return information on a get_grid_info call.
@@ -355,3 +382,5 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto
355 382
356 ; password help: optional: page providing password assistance for users of your grid 383 ; password help: optional: page providing password assistance for users of your grid
357 ;password = http://127.0.0.1/password 384 ;password = http://127.0.0.1/password
385
386
diff --git a/bin/config-include/GridCommon.ini.example b/bin/config-include/GridCommon.ini.example
index 79f7ed6..d12ea5b 100644
--- a/bin/config-include/GridCommon.ini.example
+++ b/bin/config-include/GridCommon.ini.example
@@ -26,6 +26,26 @@
26 ;StorageProvider = "OpenSim.Data.MSSQL.dll" 26 ;StorageProvider = "OpenSim.Data.MSSQL.dll"
27 ;ConnectionString = "Server=localhost\SQLEXPRESS;Database=opensim;User Id=opensim; password=***;" 27 ;ConnectionString = "Server=localhost\SQLEXPRESS;Database=opensim;User Id=opensim; password=***;"
28 28
29[Hypergrid]
30 ; Uncomment the variables in this section only if you are in
31 ; Hypergrid configuration. Otherwise, ignore.
32
33 ;# {HomeURI} {Hypergrid} {The Home URL of this world} {}
34 ;; If this is a standalone world, this is the address of this instance.
35 ;; If this is a grided simulator, this is the address of the external robust server that
36 ;; runs the UserAgentsService.
37 ;; For example http://myworld.com:9000 or http://myworld.com:8002
38 ;; This is a default that can be overwritten in some sections.
39 ; HomeURI = "http://127.0.0.1:9000"
40
41 ;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {}
42 ;; If this is a standalone world, this is the address of this instance.
43 ;; If this is a grided simulator, this is the address of the external robust server
44 ;; that runs the Gatekeeper service.
45 ;; For example http://myworld.com:9000 or http://myworld.com:8002
46 ;; This is a default that can be overwritten in some sections.
47 ; GatekeeperURI = "http://127.0.0.1:9000"
48
29[Modules] 49[Modules]
30 ;; Choose one cache module and the corresponding config file, if it exists. 50 ;; Choose one cache module and the corresponding config file, if it exists.
31 ;; Copy the config .example file into your own .ini file and adapt that. 51 ;; Copy the config .example file into your own .ini file and adapt that.
@@ -137,6 +157,11 @@
137 ;; uncomment the next line. You may want to do this on sims that have licensed content. 157 ;; uncomment the next line. You may want to do this on sims that have licensed content.
138 ; OutboundPermission = False 158 ; OutboundPermission = False
139 159
160 ;; Send visual reminder to local users that their inventories are unavailable while they are traveling
161 ;; and available when they return. True by default.
162 ;RestrictInventoryAccessAbroad = True
163
164
140[HGAssetService] 165[HGAssetService]
141 ; 166 ;
142 ; === HG ONLY === 167 ; === HG ONLY ===
diff --git a/bin/config-include/StandaloneCommon.ini.example b/bin/config-include/StandaloneCommon.ini.example
index f28de43..f80044e 100644
--- a/bin/config-include/StandaloneCommon.ini.example
+++ b/bin/config-include/StandaloneCommon.ini.example
@@ -27,6 +27,27 @@
27 ;StorageProvider = "OpenSim.Data.MSSQL.dll" 27 ;StorageProvider = "OpenSim.Data.MSSQL.dll"
28 ;ConnectionString = "Server=localhost\SQLEXPRESS;Database=opensim;User Id=opensim; password=***;" 28 ;ConnectionString = "Server=localhost\SQLEXPRESS;Database=opensim;User Id=opensim; password=***;"
29 29
30[Hypergrid]
31 ; Uncomment the variables in this section only if you are in
32 ; Hypergrid configuration. Otherwise, ignore.
33
34 ;# {HomeURI} {Hypergrid} {The Home URL of this world} {}
35 ;; If this is a standalone world, this is the address of this instance.
36 ;; If this is a grided simulator, this is the address of the external robust server that
37 ;; runs the UserAgentsService.
38 ;; For example http://myworld.com:9000 or http://myworld.com:8002
39 ;; This is a default that can be overwritten in some sections.
40 ; HomeURI = "http://127.0.0.1:9000"
41
42 ;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {}
43 ;; If this is a standalone world, this is the address of this instance.
44 ;; If this is a grided simulator, this is the address of the external robust server
45 ;; that runs the Gatekeeper service.
46 ;; For example http://myworld.com:9000 or http://myworld.com:8002
47 ;; This is a default that can be overwritten in some sections.
48 ; GatekeeperURI = "http://127.0.0.1:9000"
49
50
30[Modules] 51[Modules]
31 ;; Choose one cache module and the corresponding config file, if it exists. 52 ;; Choose one cache module and the corresponding config file, if it exists.
32 ;; Copy the config .example file into your own .ini file and alter that 53 ;; Copy the config .example file into your own .ini file and alter that
@@ -64,8 +85,8 @@
64 Region_Welcome_Area = "DefaultRegion, FallbackRegion" 85 Region_Welcome_Area = "DefaultRegion, FallbackRegion"
65 86
66 ; === HG ONLY === 87 ; === HG ONLY ===
67 ;; change this to the address of your simulator 88 ;; If you have this set under [Startup], no need to set it here, leave it commented
68 Gatekeeper="http://127.0.0.1:9000" 89 ; GatekeeperURI="http://127.0.0.1:9000"
69 90
70[LibraryModule] 91[LibraryModule]
71 ; Set this if you want to change the name of the OpenSim Library 92 ; Set this if you want to change the name of the OpenSim Library
@@ -73,7 +94,8 @@
73 94
74[LoginService] 95[LoginService]
75 WelcomeMessage = "Welcome, Avatar!" 96 WelcomeMessage = "Welcome, Avatar!"
76 GatekeeperURI = "http://127.0.0.1:9000" 97 ;; If you have Gatekeeper set under [Startup], no need to set it here, leave it commented
98 ; GatekeeperURI = "http://127.0.0.1:9000"
77 99
78 SRV_HomeURI = "http://127.0.0.1:9000" 100 SRV_HomeURI = "http://127.0.0.1:9000"
79 SRV_InventoryServerURI = "http://127.0.0.1:9000" 101 SRV_InventoryServerURI = "http://127.0.0.1:9000"
@@ -85,6 +107,11 @@
85 ;; For Viewer 2 107 ;; For Viewer 2
86 MapTileURL = "http://127.0.0.1:9000/" 108 MapTileURL = "http://127.0.0.1:9000/"
87 109
110 ; The minimum user level required for a user to be able to login. 0 by default
111 ; If you disable a particular user's account then you can set their login level below this number.
112 ; You can also change this level from the console though these changes will not be persisted.
113 ; MinLoginLevel = 0
114
88 ;; Ask co-operative viewers to use a different currency name 115 ;; Ask co-operative viewers to use a different currency name
89 ;Currency = "" 116 ;Currency = ""
90 117
@@ -213,7 +240,8 @@
213;; HG configurations 240;; HG configurations
214;; 241;;
215[GatekeeperService] 242[GatekeeperService]
216 ExternalName = "http://127.0.0.1:9000" 243 ;; If you have GatekeeperURI set under [Startup], no need to set it here, leave it commented
244 ; ExternalName = "http://127.0.0.1:9000"
217 245
218 ; Does this grid allow incoming links to any region in it? 246 ; Does this grid allow incoming links to any region in it?
219 ; If false, HG TPs happen only to the Default regions specified in [GridService] section 247 ; If false, HG TPs happen only to the Default regions specified in [GridService] section
@@ -269,10 +297,12 @@
269 ; AllowExcept_Level_200 = "http://griefer.com:8002, http://enemy.com:8002" 297 ; AllowExcept_Level_200 = "http://griefer.com:8002, http://enemy.com:8002"
270 298
271[HGInventoryService] 299[HGInventoryService]
272 HomeURI = "http://127.0.0.1:9000" 300 ;; If you have this set under [Startup], no need to set it here, leave it commented
301 ; HomeURI = "http://127.0.0.1:9000"
273 302
274[HGAssetService] 303[HGAssetService]
275 HomeURI = "http://127.0.0.1:9000" 304 ;; If you have this set under [Startup], no need to set it here, leave it commented
305 ; HomeURI = "http://127.0.0.1:9000"
276 306
277 ;; The asset types that this grid can export to / import from other grids. 307 ;; The asset types that this grid can export to / import from other grids.
278 ;; Comma separated. 308 ;; Comma separated.
@@ -288,8 +318,9 @@
288 318
289 319
290[HGInventoryAccessModule] 320[HGInventoryAccessModule]
291 HomeURI = "http://127.0.0.1:9000" 321 ;; If you have these set under [Startup], no need to set it here, leave it commented
292 Gatekeeper = "http://127.0.0.1:9000" 322 ; HomeURI = "http://127.0.0.1:9000"
323 ; GatekeeperURI = "http://127.0.0.1:9000"
293 324
294 ;; If you want to protect your assets from being copied by foreign visitors 325 ;; If you want to protect your assets from being copied by foreign visitors
295 ;; uncomment the next line. You may want to do this on sims that have licensed content. 326 ;; uncomment the next line. You may want to do this on sims that have licensed content.
@@ -306,8 +337,8 @@
306 337
307[Messaging] 338[Messaging]
308 ; === HG ONLY === 339 ; === HG ONLY ===
309 ;; change this to the address of your simulator 340 ;; If you have this set under [Startup], no need to set it here, leave it commented
310 Gatekeeper = "http://127.0.0.1:9000" 341 ; GatekeeperURI = "http://127.0.0.1:9000"
311 342
312 343
313[EntityTransfer] 344[EntityTransfer]
diff --git a/bin/data/LICENSE-README-IMPORTANT.txt b/bin/data/LICENSE-README-IMPORTANT.txt
index 86e401f..a1ac20c 100644
--- a/bin/data/LICENSE-README-IMPORTANT.txt
+++ b/bin/data/LICENSE-README-IMPORTANT.txt
@@ -2,4 +2,4 @@ Not all of the files in this directory are licensed under the BSD license. Some
2 2
3These files are: 3These files are:
4 4
5- avataranimations.xml (Derivative work of viewerart.ini, Creative Commons Attribution+Share-Alike v2.5 License) \ No newline at end of file 5- avataranimations.xml (Derivative work of viewerart.ini, Creative Commons Attribution+Share-Alike v2.5 License)
diff --git a/bin/data/sim.css b/bin/data/sim.css
new file mode 100644
index 0000000..e584a1a
--- /dev/null
+++ b/bin/data/sim.css
@@ -0,0 +1,85 @@
1body {
2 font-family: Veranda,Arial,Helvetica,sans-serif;
3 font-size: 12px;
4 background: #4A5F6D;
5 color: #EEEAD6;
6 padding: 0px;
7 margin: 0px;
8}
9.footer {
10 font-family: Veranda,Arial,Helvetica,sans-serif;
11 font-size: 10px;
12}
13td {
14 font-family: Veranda,Arial,Helvetica,sans-serif;
15 font-size: 12px;
16 padding: 4px;
17 margin: 4px;
18}
19blockquote {
20 font-family: Veranda,Arial,Helvetica,sans-serif;
21 font-style: italic;
22 font-size: 12px;
23}
24pre {
25 padding: 5px;
26 background-color: #8080B0;
27 color: #000000;
28 margin-left: 20px;
29 font-size: 11px;
30}
31:link {
32 color: #ffffff;
33}
34:visited {
35 color: #d0d0d0;
36}
37.SimSectionHeader {
38 font-size: 120%;
39}
40div.SimSectionContainer {
41 padding: 10px 0px 0px 20px;
42}
43/* SimStats ===================================== */
44#SimSimStats div {
45 margin-left: 20px;
46 background: #3A4F5D;
47}
48#SimSimStats table td {
49 text-align: right;
50 padding: 0px 0px 0px 5px;
51 margin: 0px 0px 0px 0px;
52}
53/* Region Stats ===================================== */
54#SimRegionStats div {
55 margin-left: 20px;
56 background: #3A4F5D;
57}
58#SimRegionStats table {
59 border: 1px;
60 border-style: solid;
61}
62#SimRegionStats table td {
63 text-align: right;
64 padding: 0px 0px 0px 5px;
65 margin: 0px 0px 0px 0px;
66}
67/* Session Stats ===================================== */
68#SimSessionStats div {
69 margin-left: 20px;
70 background: #3A4F5D;
71}
72#SimSessionStats table td {
73 text-align: right;
74 padding: 0px 0px 0px 5px;
75 margin: 0px 0px 0px 0px;
76}
77/* LogFile ===================================== */
78#SimLogFile div {
79 margin-left: 20px;
80}
81#SimLogFile table td {
82 text-align: right;
83 padding: 0px 0px 0px 5px;
84 margin: 0px 0px 0px 0px;
85}
diff --git a/bin/data/sim.html b/bin/data/sim.html
new file mode 100644
index 0000000..82d4789
--- /dev/null
+++ b/bin/data/sim.html
@@ -0,0 +1,291 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml">
4<head>
5<title>Simulator statistics</title>
6<link rel="stylesheet" href="sim.css" type="text/css"/>
7<!-- <script type="text/javascript" src="jquery.js"></script> -->
8<!-- <script type="text/javascript" src="https://code.jquery.com/jquery-1.9.0.min.js"></script> -->
9<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
10<!-- <script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/libs/jQuery/jquery-1.9.0.min.js"></script> -->
11<noscript>
12<p color="red">
13Your browser does not support Javascript. This won't work for you.
14</p>
15</noscript>
16<script type="text/javascript">
17$(document).ready(function() {
18 // Major divisions in the content accordioning
19 $('.SimSection').show('slow');
20 $('.SimSectionHeader').click(function() {
21 $(this).next().slideToggle('slow');
22 return false;
23 });
24
25 // Start the timed functions
26 TimerDataStuff();
27});
28
29// One of the sections is viewer statistics. Poll for the data.
30var statTimerHandle;
31var graphFPS;
32var lastFPS = 10;
33var xxThru = 0;
34function TimerDataStuff() {
35 statTimerHandle = setInterval('TimerStatDisplay()', 5000);
36}
37
38// called by timer to fetch and display statistic information
39var doingStatDisplay = false;
40function TimerStatDisplay() {
41 if (doingStatDisplay) return;
42 doingStatDisplay = true;
43 if ($('#SimSimStats').is(':visible')) {
44 DisplaySimStats();
45 }
46 if ($('#SimRegionStats').is(':visible')) {
47 DisplayPerRegionStats();
48 }
49 if ($('#SimSessionStats').is(':visible')) {
50 DisplaySessionStats();
51 }
52 if ($('#SimLogFile').is(':visible')) {
53 DisplayLogFile();
54 }
55 doingStatDisplay = false;
56}
57
58var simName = "127.0.0.1";
59var simPort = "9000";
60function DisplaySimStats() {
61 var statURL = "http://" + simName + ":" + simPort + "/SStats/?json=1";
62 $.ajax({
63 type: "GET",
64 url: statURL,
65 dataType: 'json',
66 timeout: 1000,
67 success: function(data, status) {
68 if (status == 'success') {
69 DisplaySimStatDetails(data);
70 }
71 },
72 error: function(xmlHTTPRequest, errorType) {
73 // DebugLog('Failed fetch');
74 }
75 });
76}
77
78function DisplayPerRegionStats() {
79 var statURL = "http://" + simName + ":" + simPort + "/SStats/simstatsajax.html?json=1";
80 $.ajax({
81 type: "GET",
82 url: statURL,
83 dataType: 'json',
84 timeout: 1000,
85 success: function(data, status) {
86 if (status == 'success') {
87 DisplayRegionStatDetails(data);
88 }
89 },
90 error: function(xmlHTTPRequest, errorType) {
91 // DebugLog('Failed fetch');
92 }
93 });
94};
95
96function DisplayLogFile() {
97 var statURL = "http://" + simName + ":" + simPort + "/SStats/activelogajax.html?json=1";
98 $.ajax({
99 type: "GET",
100 url: statURL,
101 dataType: 'json',
102 timeout: 1000,
103 success: function(data, status) {
104 if (status == 'success') {
105 DisplayLogFileDetails(data);
106 }
107 },
108 error: function(xmlHTTPRequest, errorType) {
109 // DebugLog('Failed fetch');
110 }
111 });
112};
113
114function DisplaySessionStats() {
115 var statURL = "http://" + simName + ":" + simPort + "/SStats/activeconnectionsajax.html?json=1";
116 $.ajax({
117 type: "GET",
118 url: statURL,
119 dataType: 'json',
120 timeout: 1000,
121 success: function(data, status) {
122 if (status == 'success') {
123 DisplaySessionStatsDetails(data);
124 }
125 },
126 error: function(xmlHTTPRequest, errorType) {
127 // DebugLog('Failed fetch');
128 }
129 });
130};
131
132function DisplaySimStatDetails(data) {
133 var simInfo = new StringBuffer();
134 simInfo.append('<table id="RegionStatsTable">');
135 simInfo.append('<tr>');
136 simInfo.append('<th>Total Users</th>');
137 simInfo.append('<th>Total Sessions</th>');
138 simInfo.append('<th>Avg client FPS</th>');
139 simInfo.append('<th>Avg client Mem</th>');
140 simInfo.append('<th>Avg ping time</th>');
141 simInfo.append('<th>KB out</th>');
142 simInfo.append('<th>KB in</th>');
143 simInfo.append('</tr>');
144 simInfo.append('<tr>');
145 simInfo.append('<td>' + data.totalUsers + '</td>');
146 simInfo.append('<td>' + data.totalSessions + '</td>');
147 simInfo.append('<td>' + data.averageClientFPS + '</td>');
148 simInfo.append('<td>' + data.averageClientMem + '</td>');
149 simInfo.append('<td>' + data.averagePingTime + '</td>');
150 simInfo.append('<td>' + data.totalKBOut + '</td>');
151 simInfo.append('<td>' + data.totalKBIn + '</td>');
152 simInfo.append('</tr>');
153 simInfo.append('</table>');
154 $('#SimSimStats').empty();
155 $('#SimSimStats').append(simInfo.toString());
156}
157
158function DisplayRegionStatDetails(data) {
159 var regionInfo = new StringBuffer();
160 regionInfo.append('<table id="RegionStatsTable">');
161 regionInfo.append('<tr>');
162 regionInfo.append('<th>Region</th>');
163 regionInfo.append('<th>Agents</th>');
164 regionInfo.append('<th>Child</th>');
165 regionInfo.append('<th>FPS</th>');
166 regionInfo.append('<th>Frame Time</th>');
167 regionInfo.append('<th>Phys Time</th>');
168 regionInfo.append('<th>Prims</th>');
169 regionInfo.append('</tr>');
170 for (region in data) {
171 regionInfo.append('<tr>');
172 regionInfo.append('<td>' + data[region].region + '</td>');
173 regionInfo.append('<td>' + data[region].rootAgents + '</td>');
174 regionInfo.append('<td>' + data[region].childAgents + '</td>');
175 regionInfo.append('<td>' + data[region].simFPS + '</td>');
176 regionInfo.append('<td>' + data[region].totalFrameTime + '</td>');
177 regionInfo.append('<td>' + data[region].physicsFrameTime + '</td>');
178 regionInfo.append('<td>' + data[region].totalPrims + '</td>');
179 regionInfo.append('</tr>');
180 }
181 regionInfo.append('</table>');
182 $('#SimRegionStats').empty();
183 $('#SimRegionStats').append(regionInfo.toString());
184}
185
186function DisplayLogFileDetails(data) {
187 var logInfo = new StringBuffer();
188 var logPattern = /^(.+),\d\d\d .* \[(.+)\]: (.+)$/;
189 for (logLine in data['logLines']) {
190 logInfo.append('<div>');
191 var logPieces = logPattern.exec(data['logLines'][logLine]);
192 if (logPieces) {
193 logInfo.append(logPieces[1] + ' [' + logPieces[2]
194 + '] ' + logPieces[3]);
195 }
196 else {
197 logInfo.append(data['logLines'][logLine]);
198 }
199
200 logInfo.append('</div>');
201 }
202 $('#SimLogFile').empty();
203 $('#SimLogFile').append(logInfo.toString());
204}
205
206function DisplaySessionStatsDetails(data) {
207 var userInfo = new StringBuffer();
208 userInfo.append('<table>');
209 userInfo.append('<tr>');
210 userInfo.append('<th>region</th>');
211 userInfo.append('<th>user</th>');
212 userInfo.append('<th></th>');
213 userInfo.append('<th>position</th>');
214 userInfo.append('</tr>');
215 for (region in data) {
216 for (user in data[region]) {
217 if (user != 'queues') {
218 userInfo.append('<tr>');
219 userInfo.append('<td>' + region + '</td>');
220 userInfo.append('<td>' + data[region][user].Name + '</td>');
221 if (data[region][user].isRoot == 'true') {
222 userInfo.append('<td>root</td>');
223 }
224 else {
225 userInfo.append('<td>child</td>');
226 }
227 userInfo.append('<td>' + data[region][user].position + '</td>');
228 userInfo.append('</tr>');
229 }
230 }
231 }
232 userInfo.append('</table>');
233 $('#SimSessionStats').empty();
234 $('#SimSessionStats').append(userInfo.toString());
235}
236
237function DebugLog(msg) {
238 $("#DEBUG").append('<div>' + msg + '</div>');
239 $("#DEBUG").show();
240}
241
242function StringBuffer() {
243 this.__strings__ = new Array;
244}
245StringBuffer.prototype.append = function(str) {
246 this.__strings__.push(str);
247}
248StringBuffer.prototype.toString = function() {
249 return this.__strings__.join("");
250}
251
252</script>
253</head>
254<body id="SimBody">
255<div id="SimHeader"></div>
256<div id="SimContent">
257
258<!-- ============================================== -->
259<div class="SimSectionContainer">
260<a class="SimSectionHeader" href="#">Simulator Stats</a>
261<div id="SimSimStats" class="SimSection">
262</div> <!-- SimSimStats -->
263</div> <!-- SimSectionContainer -->
264
265<!-- ============================================== -->
266<div class="SimSectionContainer">
267<a class="SimSectionHeader" href="#">Region Stats</a>
268<div id="SimRegionStats" class="SimSection">
269</div> <!-- SimRegionStats -->
270</div> <!-- SimSectionContainer -->
271
272<!-- ============================================== -->
273<div class="SimSectionContainer">
274<a class="SimSectionHeader" href="#">Sessions</a>
275<div id="SimSessionStats" class="SimSection">
276</div> <!-- SimSessionStats -->
277</div> <!-- SimSectionContainer -->
278
279<!-- ============================================== -->
280<div class="SimSectionContainer">
281<a class="SimSectionHeader" href="#">Log File</a>
282<div id="SimLogFile" class="SimSection">
283</div> <!-- SimLogFile -->
284</div> <!-- SimSectionContainer -->
285
286<!-- ============================================== -->
287</div> <!-- SimContent -->
288<div id="DEBUG"></div>
289<div id="SimFooter"></div>
290</body>
291</html>
diff --git a/bin/enter_uuid.xml b/bin/enter_uuid.xml
new file mode 100644
index 0000000..84475ad
--- /dev/null
+++ b/bin/enter_uuid.xml
@@ -0,0 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater can_close="true" can_drag_on_left="false" can_minimize="false" can_resize="false" height="100" name="enter_uuid" title="ID Required" width="390">
3 <text bottom="-30" left="10">Enter UUID</text>
4 <line_editor bottom="-60" left="10" width="370" name="new_owner" height="20"/>
5 <button bottom="-90" width="80" height="20" left="300" label="OK" name="ok" />
6 <button bottom="-90" width="80" height="20" left="210" label="Cancel" name="cancel" />
7</floater>
diff --git a/bin/lib32/BulletSim.dll b/bin/lib32/BulletSim.dll
index 2ae1c75..689b34f 100755
--- a/bin/lib32/BulletSim.dll
+++ b/bin/lib32/BulletSim.dll
Binary files differ
diff --git a/bin/lib32/libBulletSim.so b/bin/lib32/libBulletSim.so
index d4852a5..b8c813e 100755
--- a/bin/lib32/libBulletSim.so
+++ b/bin/lib32/libBulletSim.so
Binary files differ
diff --git a/bin/lib64/BulletSim.dll b/bin/lib64/BulletSim.dll
index 77cf7e3..33c4d08 100755
--- a/bin/lib64/BulletSim.dll
+++ b/bin/lib64/BulletSim.dll
Binary files differ
diff --git a/bin/lib64/libBulletSim.so b/bin/lib64/libBulletSim.so
index 4ec62b2..79207fe 100755
--- a/bin/lib64/libBulletSim.so
+++ b/bin/lib64/libBulletSim.so
Binary files differ
diff --git a/bin/set_object_owner.xml b/bin/set_object_owner.xml
new file mode 100644
index 0000000..6d9bb8a
--- /dev/null
+++ b/bin/set_object_owner.xml
@@ -0,0 +1,8 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater can_close="true" can_drag_on_left="false" can_minimize="false" can_resize="false" height="100" name="set_owner_name" title="Set Owner Name" width="390">
3 <text bottom="-30" left="10">New Owner Name</text>
4 <line_editor enabled="false" bottom="-60" left="10" width="280" name="new_owner" height="20"/>
5 <button bottom_delta="0" left="300" height="20" width="80" label="Choose" name="picker"/>
6 <button bottom="-90" width="80" height="20" left="300" label="OK" name="ok" />
7 <button bottom="-90" width="80" height="20" left="210" label="Cancel" name="cancel" />
8</floater>