Last commit for bin/HttpServer_OpenSim.xml: 6e1b3f9951b5ae9fbc0dc65e8404cb878206c68d

*Yet another HTTPServer update code changes in OpenSim Libs. * This fixes a connection close issue by getting rid of the socket references * This adds a connection timeout checker to shutdown poor or evil connections and combats DOS attempts that just connect and make no complete requests and just wait. It also actually implements KeepAlive... instead of just understanding the connection header in the request... you can test by connecting and requesting a keepalive header and sending another request on the same connection. The new timeout checker closes expired keepalive sessions, just make sure you send the request within 70 seconds of connecting or the timeout checker will timeout the connection.

teravus [2013-03-16 07:14:11]
*Yet another HTTPServer update code changes in OpenSim Libs. * This fixes a connection close issue by getting rid of the socket references  * This adds a connection timeout checker to shutdown poor or evil connections and combats DOS attempts that just connect and make no complete requests and just wait.    It also actually implements KeepAlive... instead of just understanding the connection header in the request...  you can test by connecting and requesting a keepalive header and sending another request on the same connection.  The new timeout checker closes expired keepalive sessions, just make sure you send the request within 70 seconds of connecting or the timeout checker will timeout the connection.
  1. <?xml version="1.0"?>
  2. <doc>
  3. <assembly>
  4. <name>HttpServer_OpenSim</name>
  5. </assembly>
  6. <members>
  7. <member name="T:HttpServer.Sessions.IHttpSessionStore">
  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>
  21. Creates a new http session with a specific id
  22. </summary>
  23. <param name="id">Id used to identify the new cookie..</param>
  24. <returns>A <see cref="T:HttpServer.Sessions.IHttpSession"/> object.</returns>
  25. <remarks>
  26. Id should be generated by the store implementation if it's null or <see cref="F:System.String.Empty"/>.
  27. </remarks>
  28. </member>
  29. <member name="M:HttpServer.Sessions.IHttpSessionStore.Load(System.String)">
  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>
  89. Add bytes to the body
  90. </summary>
  91. <param name="bytes">buffer to read bytes from</param>
  92. <param name="offset">where to start read</param>
  93. <param name="length">number of bytes to read</param>
  94. <returns>Number of bytes actually read (same as length unless we got all body bytes).</returns>
  95. <exception cref="T:System.InvalidOperationException">If body is not writable</exception>
  96. <exception cref="T:System.ArgumentNullException"><c>bytes</c> is null.</exception>
  97. <exception cref="T:System.ArgumentOutOfRangeException"><c>offset</c> is out of range.</exception>
  98. </member>
  99. <member name="M:HttpServer.IHttpRequest.Clear">
  100. <summary>
  101. Clear everything in the request
  102. </summary>
  103. </member>
  104. <member name="M:HttpServer.IHttpRequest.DecodeBody(HttpServer.FormDecoders.FormDecoderProvider)">
  105. <summary>
  106. Decode body into a form.
  107. </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>
  112. <member name="M:HttpServer.IHttpRequest.SetCookies(HttpServer.RequestCookies)">
  113. <summary>
  114. Sets the cookies.
  115. </summary>
  116. <param name="cookies">The cookies.</param>
  117. </member>
  118. <member name="M:HttpServer.IHttpRequest.CreateResponse(HttpServer.IHttpClientContext)">
  119. <summary>
  120. Create a response object.
  121. </summary>
  122. <param name="context">Context for the connected client.</param>
  123. <returns>A new <see cref="T:HttpServer.IHttpResponse"/>.</returns>
  124. </member>
  125. <member name="P:HttpServer.IHttpRequest.AcceptTypes">
  126. <summary>
  127. Gets kind of types accepted by the client.
  128. </summary>
  129. </member>
  130. <member name="P:HttpServer.IHttpRequest.Body">
  131. <summary>
  132. Gets or sets body stream.
  133. </summary>
  134. </member>
  135. <member name="P:HttpServer.IHttpRequest.BodyIsComplete">
  136. <summary>
  137. Gets whether the body is complete.
  138. </summary>
  139. </member>
  140. <member name="P:HttpServer.IHttpRequest.Connection">
  141. <summary>
  142. Gets or sets kind of connection used for the session.
  143. </summary>
  144. </member>
  145. <member name="P:HttpServer.IHttpRequest.ContentLength">
  146. <summary>
  147. Gets or sets number of bytes in the body.
  148. </summary>
  149. </member>
  150. <member name="P:HttpServer.IHttpRequest.Cookies">
  151. <summary>
  152. Gets cookies that was sent with the request.
  153. </summary>
  154. </member>
  155. <member name="P:HttpServer.IHttpRequest.Form">
  156. <summary>
  157. Gets form parameters.
  158. </summary>
  159. </member>
  160. <member name="P:HttpServer.IHttpRequest.Headers">
  161. <summary>
  162. Gets headers sent by the client.
  163. </summary>
  164. </member>
  165. <member name="P:HttpServer.IHttpRequest.HttpVersion">
  166. <summary>
  167. Gets or sets version of HTTP protocol that's used.
  168. </summary>
  169. <remarks>
  170. Probably <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/>.
  171. </remarks>
  172. <seealso cref="T:HttpServer.HttpHelper"/>
  173. </member>
  174. <member name="P:HttpServer.IHttpRequest.IsAjax">
  175. <summary>
  176. Gets whether the request was made by Ajax (Asynchronous JavaScript)
  177. </summary>
  178. </member>
  179. <member name="P:HttpServer.IHttpRequest.Method">
  180. <summary>
  181. Gets or sets requested method.
  182. </summary>
  183. <remarks>
  184. Will always be in upper case.
  185. </remarks>
  186. <see cref="P:HttpServer.IHttpRequest.Method"/>
  187. </member>
  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>
  203. <member name="P:HttpServer.IHttpRequest.UriParts">
  204. <summary>
  205. Gets URI absolute path divided into parts.
  206. </summary>
  207. <example>
  208. // URI is: http://gauffin.com/code/tiny/
  209. Console.WriteLine(request.UriParts[0]); // result: code
  210. Console.WriteLine(request.UriParts[1]); // result: tiny
  211. </example>
  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>
  218. <member name="P:HttpServer.IHttpRequest.UriPath">
  219. <summary>
  220. Gets or sets path and query.
  221. </summary>
  222. <see cref="P:HttpServer.IHttpRequest.Uri"/>
  223. <remarks>
  224. Are only used during request parsing. Cannot be set after "Host" header have been
  225. added.
  226. </remarks>
  227. </member>
  228. <member name="T:HttpServer.IHttpContextHandler">
  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>
  406.  
  407. </summary>
  408. <param name="id">A unique id used by the sessions store to identify the session</param>
  409. </member>
  410. <member name="M:HttpServer.Sessions.MemorySession.SetId(System.String)">
  411. <summary>
  412. Id
  413. </summary>
  414. <param name="id"></param>
  415. </member>
  416. <member name="M:HttpServer.Sessions.MemorySession.Clear">
  417. <summary>
  418. Remove everything from the session
  419. </summary>
  420. </member>
  421. <member name="M:HttpServer.Sessions.MemorySession.Clear(System.Boolean)">
  422. <summary>
  423. Clears the specified expire.
  424. </summary>
  425. <param name="expires">True if the session is cleared due to expiration</param>
  426. </member>
  427. <member name="M:HttpServer.Sessions.MemorySession.Dispose">
  428. <summary>
  429. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
  430. </summary>
  431. <filterpriority>2</filterpriority>
  432. </member>
  433. <member name="P:HttpServer.Sessions.MemorySession.Id">
  434. <summary>
  435. Session id
  436. </summary>
  437. </member>
  438. <member name="P:HttpServer.Sessions.MemorySession.Item(System.String)">
  439. <summary>
  440. Should
  441. </summary>
  442. <param name="name">Name of the session variable</param>
  443. <returns>null if it's not set</returns>
  444. </member>
  445. <member name="P:HttpServer.Sessions.MemorySession.Accessed">
  446. <summary>
  447. when the session was last accessed.
  448. </summary>
  449. <remarks>
  450. Used to determine when the session should be removed.
  451. </remarks>
  452. </member>
  453. <member name="P:HttpServer.Sessions.MemorySession.Count">
  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>
  610. Using SSL or other encryption method.
  611. </summary>
  612. </member>
  613. <member name="P:HttpServer.IHttpClientContext.IsSecured">
  614. <summary>
  615. Using SSL or other encryption method.
  616. </summary>
  617. </member>
  618. <member name="E:HttpServer.IHttpClientContext.Disconnected">
  619. <summary>
  620. The context have been disconnected.
  621. </summary>
  622. <remarks>
  623. Event can be used to clean up a context, or to reuse it.
  624. </remarks>
  625. </member>
  626. <member name="E:HttpServer.IHttpClientContext.RequestReceived">
  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>
  702. Will try to accept connections one more time.
  703. </summary>
  704. <exception cref="T:System.Exception">If any exceptions is thrown.</exception>
  705. </member>
  706. <member name="M:HttpServer.HttpListenerBase.OnAcceptingSocket(System.Net.Sockets.Socket)">
  707. <summary>
  708. Can be used to create filtering of new connections.
  709. </summary>
  710. <param name="socket">Accepted socket</param>
  711. <returns>true if connection can be accepted; otherwise false.</returns>
  712. </member>
  713. <member name="M:HttpServer.HttpListenerBase.Start(System.Int32)">
  714. <summary>
  715. Start listen for new connections
  716. </summary>
  717. <param name="backlog">Number of connections that can stand in a queue to be accepted.</param>
  718. <exception cref="T:System.InvalidOperationException">Listener have already been started.</exception>
  719. </member>
  720. <member name="M:HttpServer.HttpListenerBase.Stop">
  721. <summary>
  722. Stop the listener
  723. </summary>
  724. <exception cref="T:System.Net.Sockets.SocketException"></exception>
  725. </member>
  726. <member name="P:HttpServer.HttpListenerBase.LogWriter">
  727. <summary>
  728. Gives you a change to receive log entries for all internals of the HTTP library.
  729. </summary>
  730. <remarks>
  731. You may not switch log writer after starting the listener.
  732. </remarks>
  733. </member>
  734. <member name="P:HttpServer.HttpListenerBase.UseTraceLogs">
  735. <summary>
  736. True if we should turn on trace logs.
  737. </summary>
  738. </member>
  739. <member name="E:HttpServer.HttpListenerBase.ExceptionThrown">
  740. <summary>
  741. Catch exceptions not handled by the listener.
  742. </summary>
  743. <remarks>
  744. 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.
  746. </remarks>
  747. </member>
  748. <member name="E:HttpServer.HttpListenerBase.RequestReceived">
  749. <summary>
  750. A request have been received from a <see cref="T:HttpServer.IHttpClientContext"/>.
  751. </summary>
  752. </member>
  753. <member name="T:HttpServer.FormDecoders.MultipartDecoder">
  754. <summary>
  755.  
  756. </summary>
  757. <remarks>
  758. http://www.faqs.org/rfcs/rfc1867.html
  759. </remarks>
  760. </member>
  761. <member name="T:HttpServer.FormDecoders.IFormDecoder">
  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>
  831. Delegate used to let authentication modules authenticate the user name and password.
  832. </summary>
  833. <param name="realm">Realm that the user want to authenticate in</param>
  834. <param name="userName">User name specified by client</param>
  835. <param name="token">Can either be user password or implementation specific token.</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>
  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>
  845. <member name="T:HttpServer.Authentication.AuthenticationRequiredHandler">
  846. <summary>
  847. Let's you decide on a system level if authentication is required.
  848. </summary>
  849. <param name="request">HTTP request from client</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>
  854. <member name="T:HttpServer.Authentication.AuthenticationModule">
  855. <summary>
  856. Authentication modules are used to implement different
  857. kind of HTTP authentication.
  858. </summary>
  859. </member>
  860. <member name="F:HttpServer.Authentication.AuthenticationModule.AuthenticationTag">
  861. <summary>
  862. Tag used for authentication.
  863. </summary>
  864. </member>
  865. <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler,HttpServer.Authentication.AuthenticationRequiredHandler)">
  866. <summary>
  867. Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class.
  868. </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>
  872. <member name="M:HttpServer.Authentication.AuthenticationModule.#ctor(HttpServer.Authentication.AuthenticationHandler)">
  873. <summary>
  874. Initializes a new instance of the <see cref="T:HttpServer.Authentication.AuthenticationModule"/> class.
  875. </summary>
  876. <param name="authenticator">Delegate used to provide information used during authentication.</param>
  877. </member>
  878. <member name="M:HttpServer.Authentication.AuthenticationModule.CreateResponse(System.String,System.Object[])">
  879. <summary>
  880. Create a response that can be sent in the WWW-Authenticate header.
  881. </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>
  887. <member name="M:HttpServer.Authentication.AuthenticationModule.Authenticate(System.String,System.String,System.String,System.Object[])">
  888. <summary>
  889. An authentication response have been received from the web browser.
  890. Check if it's correct
  891. </summary>
  892. <param name="authenticationHeader">Contents from the Authorization header</param>
  893. <param name="realm">Realm that should be authenticated</param>
  894. <param name="httpVerb">GET/POST/PUT/DELETE etc.</param>
  895. <param name="options">options to specific implementations</param>
  896. <returns>Authentication object that is stored for the request. A user class or something like that.</returns>
  897. <exception cref="T:System.ArgumentException">if <paramref name="authenticationHeader"/> is invalid</exception>
  898. <exception cref="T:System.ArgumentNullException">If any of the parameters is empty or null.</exception>
  899. </member>
  900. <member name="M:HttpServer.Authentication.AuthenticationModule.CheckAuthentication(System.String,System.String,System.String@,System.Object@)">
  901. <summary>
  902. Used to invoke the authentication delegate that is used to lookup the user name/realm.
  903. </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>
  910. <member name="M:HttpServer.Authentication.AuthenticationModule.AuthenticationRequired(HttpServer.IHttpRequest)">
  911. <summary>
  912. Determines if authentication is required.
  913. </summary>
  914. <param name="request">HTTP request from browser</param>
  915. <returns>true if user should be authenticated.</returns>
  916. <remarks>throw <see cref="T:HttpServer.Exceptions.ForbiddenException"/> from your delegate if no more attempts are allowed.</remarks>
  917. <exception cref="T:HttpServer.Exceptions.ForbiddenException">If no more attempts are allowed</exception>
  918. </member>
  919. <member name="P:HttpServer.Authentication.AuthenticationModule.Name">
  920. <summary>
  921. name used in HTTP request.
  922. </summary>
  923. </member>
  924. <member name="T:HttpServer.HttpInput">
  925. <summary>
  926. Contains some kind of input from the browser/client.
  927. can be QueryString, form data or any other request body content.
  928. </summary>
  929. </member>
  930. <member name="T:HttpServer.IHttpInput">
  931. <summary>
  932. Base class for request data containers
  933. </summary>
  934. </member>
  935. <member name="M:HttpServer.IHttpInput.Add(System.String,System.String)">
  936. <summary>
  937. Adds a parameter mapped to the presented name
  938. </summary>
  939. <param name="name">The name to map the parameter to</param>
  940. <param name="value">The parameter value</param>
  941. </member>
  942. <member name="M:HttpServer.IHttpInput.Contains(System.String)">
  943. <summary>
  944. Returns true if the container contains the requested parameter
  945. </summary>
  946. <param name="name">Parameter id</param>
  947. <returns>True if parameter exists</returns>
  948. </member>
  949. <member name="P:HttpServer.IHttpInput.Item(System.String)">
  950. <summary>
  951. Returns a request parameter
  952. </summary>
  953. <param name="name">The name associated with the parameter</param>
  954. <returns></returns>
  955. </member>
  956. <member name="F:HttpServer.HttpInput.Empty">
  957. <summary> Representation of a non-initialized class instance </summary>
  958. </member>
  959. <member name="F:HttpServer.HttpInput._ignoreChanges">
  960. <summary> Variable telling the class that it is non-initialized <see cref="F:HttpServer.HttpInput.Empty"/> </summary>
  961. </member>
  962. <member name="M:HttpServer.HttpInput.#ctor(System.String)">
  963. <summary>
  964. Initializes a new instance of the <see cref="T:HttpServer.HttpInput"/> class.
  965. </summary>
  966. <param name="name">form name.</param>
  967. </member>
  968. <member name="M:HttpServer.HttpInput.#ctor(System.String,System.Boolean)">
  969. <summary>
  970. Initializes a new instance of the <see cref="T:HttpServer.HttpInput"/> class.
  971. </summary>
  972. <param name="name">form name.</param>
  973. <param name="ignoreChanges">if set to <c>true</c> all changes will be ignored. </param>
  974. <remarks>this constructor should only be used by Empty</remarks>
  975. </member>
  976. <member name="M:HttpServer.HttpInput.#ctor(HttpServer.HttpInput)">
  977. <summary>Creates a deep copy of the HttpInput class</summary>
  978. <param name="input">The object to copy</param>
  979. <remarks>The function makes a deep copy of quite a lot which can be slow</remarks>
  980. </member>
  981. <member name="M:HttpServer.HttpInput.Add(System.String,System.String)">
  982. <summary>
  983. Add a new element. Form array elements are parsed
  984. and added in a correct hierarchy.
  985. </summary>
  986. <param name="name">Name is converted to lower case.</param>
  987. <param name="value"></param>
  988. <exception cref="T:System.ArgumentNullException"><c>name</c> is null.</exception>
  989. <exception cref="T:System.InvalidOperationException">Cannot add stuff to <see cref="F:HttpServer.HttpInput.Empty"/>.</exception>
  990. </member>
  991. <member name="M:HttpServer.HttpInput.Contains(System.String)">
  992. <summary>
  993. Returns true if the class contains a <see cref="T:HttpServer.HttpInput"/> with the corresponding name.
  994. </summary>
  995. <param name="name">The field/query string name</param>
  996. <returns>True if the value exists</returns>
  997. </member>
  998. <member name="M:HttpServer.HttpInput.ParseItem(System.String,System.String)">
  999. <summary>
  1000. Parses an item and returns it.
  1001. This function is primarily used to parse array items as in user[name].
  1002. </summary>
  1003. <param name="name"></param>
  1004. <param name="value"></param>
  1005. <returns></returns>
  1006. </member>
  1007. <member name="M:HttpServer.HttpInput.ToString">
  1008. <summary> Outputs the instance representing all its values joined together </summary>
  1009. <returns></returns>
  1010. </member>
  1011. <member name="M:HttpServer.HttpInput.ToString(System.Boolean)">
  1012. <summary>Returns all items as an unescaped query string.</summary>
  1013. <returns></returns>
  1014. </member>
  1015. <member name="M:HttpServer.HttpInput.ExtractOne(System.String)">
  1016. <summary>
  1017. Extracts one parameter from an array
  1018. </summary>
  1019. <param name="value">Containing the string array</param>
  1020. <returns>All but the first value</returns>
  1021. <example>
  1022. string test1 = ExtractOne("system[user][extension][id]");
  1023. string test2 = ExtractOne(test1);
  1024. string test3 = ExtractOne(test2);
  1025. // test1 = user[extension][id]
  1026. // test2 = extension[id]
  1027. // test3 = id
  1028. </example>
  1029. </member>
  1030. <member name="M:HttpServer.HttpInput.Clear">
  1031. <summary>Resets all data contained by class</summary>
  1032. </member>
  1033. <member name="M:HttpServer.HttpInput.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator">
  1034. <summary>
  1035. Returns an enumerator that iterates through the collection.
  1036. </summary>
  1037.  
  1038. <returns>
  1039. A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
  1040. </returns>
  1041. <filterpriority>1</filterpriority>
  1042. </member>
  1043. <member name="M:HttpServer.HttpInput.GetEnumerator">
  1044. <summary>
  1045. Returns an enumerator that iterates through a collection.
  1046. </summary>
  1047.  
  1048. <returns>
  1049. An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
  1050. </returns>
  1051. <filterpriority>2</filterpriority>
  1052. </member>
  1053. <member name="P:HttpServer.HttpInput.Name">
  1054. <summary>
  1055. Form name as lower case
  1056. </summary>
  1057. </member>
  1058. <member name="P:HttpServer.HttpInput.Item(System.String)">
  1059. <summary>
  1060. Get a form item.
  1061. </summary>
  1062. <param name="name"></param>
  1063. <returns>Returns <see cref="F:HttpServer.HttpInputItem.Empty"/> if item was not found.</returns>
  1064. </member>
  1065. <member name="T:HttpServer.Check">
  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>
  1149. The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.
  1150. </summary>
  1151. <remarks>
  1152. The meta information contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
  1153. information sent in response to a GET request. This method can be used for obtaining meta information about
  1154. the entity implied by the request without transferring the entity-body itself.
  1155.  
  1156. This method is often used for testing hypertext links for validity, accessibility, and recent modification.
  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>
  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>
  1167. <member name="F:HttpServer.Method.Post">
  1168. <summary>
  1169. The POST method is used to request that the origin server accept the entity enclosed
  1170. in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
  1171. </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>
  1201. <member name="F:HttpServer.Method.Put">
  1202. <summary>
  1203. The PUT method requests that the enclosed entity be stored under the supplied Request-URI.
  1204. </summary>
  1205. <remarks>
  1206. <list type="bullet">
  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>
  1229. <member name="F:HttpServer.Method.Trace">
  1230. <summary>
  1231. The TRACE method is used to invoke a remote, application-layer loop- back of the request message.
  1232. </summary>
  1233. </member>
  1234. <member name="T:HttpServer.Methods">
  1235. <summary>
  1236. Contains all HTTP Methods (according to the HTTP 1.1 specification)
  1237. <para>
  1238. See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
  1239. </para>
  1240. </summary>
  1241. </member>
  1242. <member name="F:HttpServer.Methods.Delete">
  1243. <summary>
  1244. The DELETE method requests that the origin server delete the resource identified by the Request-URI.
  1245. </summary>
  1246. <remarks>
  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>
  1267. <member name="F:HttpServer.Methods.Get">
  1268. <summary>
  1269. The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.
  1270. </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>
  1286. <member name="F:HttpServer.Methods.Header">
  1287. <summary>
  1288. The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.
  1289. </summary>
  1290. <remarks>
  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>
  1298. <member name="F:HttpServer.Methods.Options">
  1299. <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>
  1301. </summary>
  1302. <remarks>
  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>
  1304. </remarks>
  1305. </member>
  1306. <member name="F:HttpServer.Methods.Post">
  1307. <summary>
  1308. The POST method is used to request that the origin server accept the entity enclosed
  1309. in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
  1310. </summary>
  1311. <remarks>
  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>
  1340. <member name="F:HttpServer.Methods.Put">
  1341. <summary>
  1342. The PUT method requests that the enclosed entity be stored under the supplied Request-URI.
  1343. </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>
  1368. <member name="F:HttpServer.Methods.Trace">
  1369. <summary>
  1370. The TRACE method is used to invoke a remote, application-layer loop- back of the request message.
  1371. </summary>
  1372. </member>
  1373. <member name="T:HttpServer.LogPrio">
  1374. <summary>
  1375. Priority for log entries
  1376. </summary>
  1377. <seealso cref="T:HttpServer.ILogWriter"/>
  1378. </member>
  1379. <member name="F:HttpServer.LogPrio.Trace">
  1380. <summary>
  1381. Very detailed logs to be able to follow the flow of the program.
  1382. </summary>
  1383. </member>
  1384. <member name="F:HttpServer.LogPrio.Debug">
  1385. <summary>
  1386. Logs to help debug errors in the application
  1387. </summary>
  1388. </member>
  1389. <member name="F:HttpServer.LogPrio.Info">
  1390. <summary>
  1391. Information to be able to keep track of state changes etc.
  1392. </summary>
  1393. </member>
  1394. <member name="F:HttpServer.LogPrio.Warning">
  1395. <summary>
  1396. Something did not go as we expected, but it's no problem.
  1397. </summary>
  1398. </member>
  1399. <member name="F:HttpServer.LogPrio.Error">
  1400. <summary>
  1401. Something that should not fail failed, but we can still keep
  1402. on going.
  1403. </summary>
  1404. </member>
  1405. <member name="F:HttpServer.LogPrio.Fatal">
  1406. <summary>
  1407. Something failed, and we cannot handle it properly.
  1408. </summary>
  1409. </member>
  1410. <member name="T:HttpServer.ILogWriter">
  1411. <summary>
  1412. Interface used to write to log files.
  1413. </summary>
  1414. </member>
  1415. <member name="M:HttpServer.ILogWriter.Write(System.Object,HttpServer.LogPrio,System.String)">
  1416. <summary>
  1417. Write an entry to the log file.
  1418. </summary>
  1419. <param name="source">object that is writing to the log</param>
  1420. <param name="priority">importance of the log message</param>
  1421. <param name="message">the message</param>
  1422. </member>
  1423. <member name="T:HttpServer.ConsoleLogWriter">
  1424. <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)
  1426. </summary>
  1427. <seealso cref="T:HttpServer.ILogWriter"/>
  1428. </member>
  1429. <member name="F:HttpServer.ConsoleLogWriter.Instance">
  1430. <summary>
  1431. The actual instance of this class.
  1432. </summary>
  1433. </member>
  1434. <member name="M:HttpServer.ConsoleLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)">
  1435. <summary>
  1436. Logwriters the specified source.
  1437. </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>
  1442. <member name="M:HttpServer.ConsoleLogWriter.GetColor(HttpServer.LogPrio)">
  1443. <summary>
  1444. Get color for the specified logprio
  1445. </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>
  1449. <member name="T:HttpServer.NullLogWriter">
  1450. <summary>
  1451. Default log writer, writes everything to null (nowhere).
  1452. </summary>
  1453. <seealso cref="T:HttpServer.ILogWriter"/>
  1454. </member>
  1455. <member name="F:HttpServer.NullLogWriter.Instance">
  1456. <summary>
  1457. The logging instance.
  1458. </summary>
  1459. </member>
  1460. <member name="M:HttpServer.NullLogWriter.Write(System.Object,HttpServer.LogPrio,System.String)">
  1461. <summary>
  1462. Writes everything to null
  1463. </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>
  1468. <member name="T:HttpServer.IComponentProvider">
  1469. <summary>
  1470. Inversion of control interface.
  1471. </summary>
  1472. </member>
  1473. <member name="M:HttpServer.IComponentProvider.AddInstance``1(System.Object)">
  1474. <summary>
  1475. Add a component instance
  1476. </summary>
  1477. <typeparam name="T">Interface type</typeparam>
  1478. <param name="instance">Instance to add</param>
  1479. </member>
  1480. <member name="M:HttpServer.IComponentProvider.Get``1">
  1481. <summary>
  1482. Get a component.
  1483. </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>
  1490. <member name="M:HttpServer.IComponentProvider.Contains(System.Type)">
  1491. <summary>
  1492. Checks if the specified component interface have been added.
  1493. </summary>
  1494. <param name="interfaceType"></param>
  1495. <returns>true if found; otherwise false.</returns>
  1496. </member>
  1497. <member name="M:HttpServer.IComponentProvider.Add``2">
  1498. <summary>
  1499. Add a component.
  1500. </summary>
  1501. <typeparam name="InterfaceType">Type being requested.</typeparam>
  1502. <typeparam name="InstanceType">Type being created.</typeparam>
  1503. </member>
  1504. <member name="T:HttpServer.HttpParam">
  1505. <summary>
  1506. Returns item either from a form or a query string (checks them in that order)
  1507. </summary>
  1508. </member>
  1509. <member name="F:HttpServer.HttpParam.Empty">
  1510. <summary> Representation of a non-initialized HttpParam </summary>
  1511. </member>
  1512. <member name="M:HttpServer.HttpParam.#ctor(HttpServer.IHttpInput,HttpServer.IHttpInput)">
  1513. <summary>Initialises the class to hold a value either from a post request or a querystring request</summary>
  1514. </member>
  1515. <member name="M:HttpServer.HttpParam.Add(System.String,System.String)">
  1516. <summary>
  1517. The add method is not availible for HttpParam
  1518. since HttpParam checks both Request.Form and Request.QueryString
  1519. </summary>
  1520. <param name="name">name identifying the value</param>
  1521. <param name="value">value to add</param>
  1522. <exception cref="T:System.NotImplementedException"></exception>
  1523. </member>
  1524. <member name="M:HttpServer.HttpParam.Contains(System.String)">
  1525. <summary>
  1526. Checks whether the form or querystring has the specified value
  1527. </summary>
  1528. <param name="name">Name, case sensitive</param>
  1529. <returns>true if found; otherwise false.</returns>
  1530. </member>
  1531. <member name="M:HttpServer.HttpParam.System#Collections#Generic#IEnumerable{HttpServer#HttpInputItem}#GetEnumerator">
  1532. <summary>
  1533. Returns an enumerator that iterates through the collection.
  1534. </summary>
  1535.  
  1536. <returns>
  1537. A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
  1538. </returns>
  1539. <filterpriority>1</filterpriority>
  1540. </member>
  1541. <member name="M:HttpServer.HttpParam.GetEnumerator">
  1542. <summary>
  1543. Returns an enumerator that iterates through a collection.
  1544. </summary>
  1545.  
  1546. <returns>
  1547. An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
  1548. </returns>
  1549. <filterpriority>2</filterpriority>
  1550. </member>
  1551. <member name="P:HttpServer.HttpParam.Item(System.String)">
  1552. <summary>
  1553. Fetch an item from the form or querystring (in that order).
  1554. </summary>
  1555. <param name="name"></param>
  1556. <returns>Item if found; otherwise HttpInputItem.EmptyLanguageNode</returns>
  1557. </member>
  1558. <member name="T:HttpServer.HttpForm">
  1559. <summary>Container for posted form data</summary>
  1560. </member>
  1561. <member name="F:HttpServer.HttpForm.EmptyForm">
  1562. <summary>Instance to help mark a non-initialized form</summary>
  1563. </member>
  1564. <member name="M:HttpServer.HttpForm.#ctor">
  1565. <summary>Initializes a form container with the specified name</summary>
  1566. </member>
  1567. <member name="M:HttpServer.HttpForm.#ctor(HttpServer.HttpInput)">
  1568. <summary>
  1569. Makes a deep copy of the input
  1570. </summary>
  1571. <param name="input">The input to copy</param>
  1572. </member>
  1573. <member name="M:HttpServer.HttpForm.AddFile(HttpServer.HttpFile)">
  1574. <summary>
  1575. Adds a file to the collection of posted files
  1576. </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>
  1582. <member name="M:HttpServer.HttpForm.ContainsFile(System.String)">
  1583. <summary>
  1584. Checks if the form contains a specified file
  1585. </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>
  1590. <member name="M:HttpServer.HttpForm.GetFile(System.String)">
  1591. <summary>
  1592. Retrieves a file held by by the form
  1593. </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>
  1599. <member name="M:HttpServer.HttpForm.Clear">
  1600. <summary>Disposes all held HttpFile's and resets values</summary>
  1601. </member>
  1602. <member name="P:HttpServer.HttpForm.Files">
  1603. <summary>
  1604. Retrieves the number of files added to the <see cref="T:HttpServer.HttpForm"/>
  1605. </summary>
  1606. <returns>0 if no files are added</returns>
  1607. </member>
  1608. <member name="T:HttpServer.Helpers.ObjectForm">
  1609. <summary>
  1610. The object form class takes an object and creates form items for it.
  1611. </summary>
  1612. </member>
  1613. <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object,System.String)">
  1614. <summary>
  1615. Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
  1616. </summary>
  1617. <param name="method"></param>
  1618. <param name="name">form name *and* id.</param>
  1619. <param name="action">action to do when form is posted.</param>
  1620. <param name="obj"></param>
  1621. </member>
  1622. <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.String,System.Object)">
  1623. <summary>
  1624. Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
  1625. </summary>
  1626. <param name="name">form name *and* id.</param>
  1627. <param name="action">action to do when form is posted.</param>
  1628. <param name="obj">object to get values from</param>
  1629. </member>
  1630. <member name="M:HttpServer.Helpers.ObjectForm.#ctor(System.String,System.Object)">
  1631. <summary>
  1632. Initializes a new instance of the <see cref="T:HttpServer.Helpers.ObjectForm"/> class.
  1633. </summary>
  1634. <param name="action">form action.</param>
  1635. <param name="obj">object to get values from.</param>
  1636. </member>
  1637. <member name="M:HttpServer.Helpers.ObjectForm.Begin">
  1638. <summary>
  1639. write out the FORM-tag.
  1640. </summary>
  1641. <returns>generated html code</returns>
  1642. </member>
  1643. <member name="M:HttpServer.Helpers.ObjectForm.Begin(System.Boolean)">
  1644. <summary>
  1645. Writeout the form tag
  1646. </summary>
  1647. <param name="isAjax">form should be posted through ajax.</param>
  1648. <returns>generated html code</returns>
  1649. </member>
  1650. <member name="M:HttpServer.Helpers.ObjectForm.Tb(System.String,System.Object[])">
  1651. <summary>
  1652. Generates a text box.
  1653. </summary>
  1654. <param name="propertyName"></param>
  1655. <param name="options"></param>
  1656. <returns>generated html code</returns>
  1657. </member>
  1658. <member name="M:HttpServer.Helpers.ObjectForm.Pb(System.String,System.Object[])">
  1659. <summary>
  1660. password box
  1661. </summary>
  1662. <param name="propertyName"></param>
  1663. <param name="options"></param>
  1664. <returns>generated html code</returns>
  1665. </member>
  1666. <member name="M:HttpServer.Helpers.ObjectForm.Hidden(System.String,System.Object[])">
  1667. <summary>
  1668. Hiddens the specified property name.
  1669. </summary>
  1670. <param name="propertyName">Name of the property.</param>
  1671. <param name="options">The options.</param>
  1672. <returns>generated html code</returns>
  1673. </member>
  1674. <member name="M:HttpServer.Helpers.ObjectForm.Label(System.String,System.String)">
  1675. <summary>
  1676. Labels the specified property name.
  1677. </summary>
  1678. <param name="propertyName">property in object.</param>
  1679. <param name="label">caption</param>
  1680. <returns>generated html code</returns>
  1681. </member>
  1682. <member name="M:HttpServer.Helpers.ObjectForm.Cb(System.String,System.String,System.Object[])">
  1683. <summary>
  1684. Generate a checkbox
  1685. </summary>
  1686. <param name="propertyName">property in object</param>
  1687. <param name="value">checkbox value</param>
  1688. <param name="options">additional html attributes.</param>
  1689. <returns>generated html code</returns>
  1690. </member>
  1691. <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.String,System.String,System.Object[])">
  1692. <summary>
  1693. Write a html select tag
  1694. </summary>
  1695. <param name="propertyName">object property.</param>
  1696. <param name="idColumn">id column</param>
  1697. <param name="titleColumn">The title column.</param>
  1698. <param name="options">The options.</param>
  1699. <returns></returns>
  1700. </member>
  1701. <member name="M:HttpServer.Helpers.ObjectForm.Select(System.String,System.Collections.IEnumerable,System.String,System.String,System.Object[])">
  1702. <summary>
  1703. Selects the specified property name.
  1704. </summary>
  1705. <param name="propertyName">Name of the property.</param>
  1706. <param name="items">The items.</param>
  1707. <param name="idColumn">The id column.</param>
  1708. <param name="titleColumn">The title column.</param>
  1709. <param name="options">The options.</param>
  1710. <returns></returns>
  1711. </member>
  1712. <member name="M:HttpServer.Helpers.ObjectForm.Submit(System.String)">
  1713. <summary>
  1714. Write a submit tag.
  1715. </summary>
  1716. <param name="value">button caption</param>
  1717. <returns>html submit tag</returns>
  1718. </member>
  1719. <member name="M:HttpServer.Helpers.ObjectForm.End">
  1720. <summary>
  1721. html end form tag
  1722. </summary>
  1723. <returns>html</returns>
  1724. </member>
  1725. <member name="T:HttpServer.FormDecoders.FormDecoderProvider">
  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>
  1733.  
  1734. </summary>
  1735. <param name="contentType">Should contain boundary and type, as in: multipart/form-data; boundary=---------------------------230051238959</param>
  1736. <param name="stream">Stream containing form data.</param>
  1737. <param name="encoding">Encoding used when decoding the stream</param>
  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>
  1742. <member name="M:HttpServer.FormDecoders.FormDecoderProvider.Add(HttpServer.FormDecoders.IFormDecoder)">
  1743. <summary>
  1744. Add a decoder.
  1745. </summary>
  1746. <param name="decoder"></param>
  1747. <exception cref="T:System.ArgumentNullException"></exception>
  1748. </member>
  1749. <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Count">
  1750. <summary>
  1751. Number of added decoders.
  1752. </summary>
  1753. </member>
  1754. <member name="P:HttpServer.FormDecoders.FormDecoderProvider.Decoders">
  1755. <summary>
  1756. Use with care.
  1757. </summary>
  1758. </member>
  1759. <member name="P:HttpServer.FormDecoders.FormDecoderProvider.DefaultDecoder">
  1760. <summary>
  1761. Decoder used for unknown content types.
  1762. </summary>
  1763. </member>
  1764. <member name="T:HttpServer.ExceptionHandler">
  1765. <summary>
  1766. We dont want to let the server to die due to exceptions thrown in worker threads.
  1767. therefore we use this delegate to give you a change to handle uncaught exceptions.
  1768. </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>
  1776. <member name="T:HttpServer.HttpClientContext">
  1777. <summary>
  1778. Contains a connection to a browser/client.
  1779. </summary>
  1780. <remarks>
  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>
  1785. <member name="M:HttpServer.HttpClientContext.#ctor(System.Boolean,System.Net.IPEndPoint,System.IO.Stream,HttpServer.IRequestParserFactory,System.Int32,System.Net.Sockets.Socket)">
  1786. <summary>
  1787. Initializes a new instance of the <see cref="T:HttpServer.HttpClientContext"/> class.
  1788. </summary>
  1789. <param name="secured">true if the connection is secured (SSL/TLS)</param>
  1790. <param name="remoteEndPoint">client that connected.</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>
  1797. <member name="M:HttpServer.HttpClientContext.OnBodyBytesReceived(System.Object,HttpServer.Parser.BodyEventArgs)">
  1798. <summary>
  1799. Process incoming body bytes.
  1800. </summary>
  1801. <param name="sender"><see cref="T:HttpServer.IHttpRequestParser"/></param>
  1802. <param name="e">Bytes</param>
  1803. </member>
  1804. <member name="M:HttpServer.HttpClientContext.OnHeaderReceived(System.Object,HttpServer.Parser.HeaderEventArgs)">
  1805. <summary>
  1806.  
  1807. </summary>
  1808. <param name="sender"></param>
  1809. <param name="e"></param>
  1810. </member>
  1811. <member name="M:HttpServer.HttpClientContext.Start">
  1812. <summary>
  1813. Start reading content.
  1814. </summary>
  1815. <remarks>
  1816. Make sure to call base.Start() if you override this method.
  1817. </remarks>
  1818. </member>
  1819. <member name="M:HttpServer.HttpClientContext.Cleanup">
  1820. <summary>
  1821. Clean up context.
  1822. </summary>
  1823. <remarks>
  1824. Make sure to call base.Cleanup() if you override the method.
  1825. </remarks>
  1826. </member>
  1827. <member name="M:HttpServer.HttpClientContext.Disconnect(System.Net.Sockets.SocketError)">
  1828. <summary>
  1829. Disconnect from client
  1830. </summary>
  1831. <param name="error">error to report in the <see cref="E:HttpServer.HttpClientContext.Disconnected"/> event.</param>
  1832. </member>
  1833. <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String,System.String,System.String)">
  1834. <summary>
  1835. Send a response.
  1836. </summary>
  1837. <param name="httpVersion">Either <see cref="F:HttpServer.HttpHelper.HTTP10"/> or <see cref="F:HttpServer.HttpHelper.HTTP11"/></param>
  1838. <param name="statusCode">HTTP status code</param>
  1839. <param name="reason">reason for the status code.</param>
  1840. <param name="body">HTML body contents, can be null or empty.</param>
  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>
  1842. <exception cref="T:System.ArgumentException">If <paramref name="httpVersion"/> is invalid.</exception>
  1843. </member>
  1844. <member name="M:HttpServer.HttpClientContext.Respond(System.String,System.Net.HttpStatusCode,System.String)">
  1845. <summary>
  1846. Send a response.
  1847. </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>
  1852. <member name="M:HttpServer.HttpClientContext.Respond(System.String)">
  1853. <summary>
  1854. Send a response.
  1855. </summary>
  1856. <exception cref="T:System.ArgumentNullException"></exception>
  1857. </member>
  1858. <member name="M:HttpServer.HttpClientContext.Send(System.Byte[])">
  1859. <summary>
  1860. send a whole buffer
  1861. </summary>
  1862. <param name="buffer">buffer to send</param>
  1863. <exception cref="T:System.ArgumentNullException"></exception>
  1864. </member>
  1865. <member name="M:HttpServer.HttpClientContext.Send(System.Byte[],System.Int32,System.Int32)">
  1866. <summary>
  1867. Send data using the stream
  1868. </summary>
  1869. <param name="buffer">Contains data to send</param>
  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>
  1875. <member name="E:HttpServer.HttpClientContext.Cleaned">
  1876. <summary>
  1877. This context have been cleaned, which means that it can be reused.
  1878. </summary>
  1879. </member>
  1880. <member name="E:HttpServer.HttpClientContext.Started">
  1881. <summary>
  1882. Context have been started (a new client have connected)
  1883. </summary>
  1884. </member>
  1885. <member name="P:HttpServer.HttpClientContext.CurrentRequest">
  1886. <summary>
  1887. Overload to specify own type.
  1888. </summary>
  1889. <remarks>
  1890. Must be specified before the context is being used.
  1891. </remarks>
  1892. </member>
  1893. <member name="P:HttpServer.HttpClientContext.Secured">
  1894. <summary>
  1895. Using SSL or other encryption method.
  1896. </summary>
  1897. </member>
  1898. <member name="P:HttpServer.HttpClientContext.IsSecured">
  1899. <summary>
  1900. Using SSL or other encryption method.
  1901. </summary>
  1902. </member>
  1903. <member name="P:HttpServer.HttpClientContext.LogWriter">
  1904. <summary>
  1905. Specify which logger to use.
  1906. </summary>
  1907. </member>
  1908. <member name="P:HttpServer.HttpClientContext.Stream">
  1909. <summary>
  1910. Gets or sets the network stream.
  1911. </summary>
  1912. </member>
  1913. <member name="P:HttpServer.HttpClientContext.RemoteAddress">
  1914. <summary>
  1915. Gets or sets IP address that the client connected from.
  1916. </summary>
  1917. </member>
  1918. <member name="P:HttpServer.HttpClientContext.RemotePort">
  1919. <summary>
  1920. Gets or sets port that the client connected from.
  1921. </summary>
  1922. </member>
  1923. <member name="E:HttpServer.HttpClientContext.Disconnected">
  1924. <summary>
  1925. The context have been disconnected.
  1926. </summary>
  1927. <remarks>
  1928. Event can be used to clean up a context, or to reuse it.
  1929. </remarks>
  1930. </member>
  1931. <member name="E:HttpServer.HttpClientContext.RequestReceived">
  1932. <summary>
  1933. A request have been received in the context.
  1934. </summary>
  1935. </member>
  1936. <member name="T:HttpServer.Helpers.XmlHelper">
  1937. <summary>
  1938. Helpers to make XML handling easier
  1939. </summary>
  1940. </member>
  1941. <member name="M:HttpServer.Helpers.XmlHelper.Serialize(System.Object)">
  1942. <summary>
  1943. Serializes object to XML.
  1944. </summary>
  1945. <param name="value">object to serialize.</param>
  1946. <returns>XML</returns>
  1947. <remarks>
  1948. Removes name spaces and adds indentation
  1949. </remarks>
  1950. </member>
  1951. <member name="M:HttpServer.Helpers.XmlHelper.Deserialize``1(System.String)">
  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>
  1961. Can handle application/x-www-form-urlencoded
  1962. </summary>
  1963. </member>
  1964. <member name="M:HttpServer.FormDecoders.UrlDecoder.Decode(System.IO.Stream,System.String,System.Text.Encoding)">
  1965. <summary>
  1966. </summary>
  1967. <param name="stream">Stream containing the content</param>
  1968. <param name="contentType">Content type (with any additional info like boundry). Content type is always supplied in lower case</param>
  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>
  1975. <member name="M:HttpServer.FormDecoders.UrlDecoder.CanParse(System.String)">
  1976. <summary>
  1977. Checks if the decoder can handle the mime type
  1978. </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>
  1982. <member name="T:HttpServer.ClientAcceptedEventArgs">
  1983. <summary>
  1984. Invoked when a client have been accepted by the <see cref="T:HttpServer.HttpListener"/>
  1985. </summary>
  1986. <remarks>
  1987. Can be used to revoke incoming connections
  1988. </remarks>
  1989. </member>
  1990. <member name="M:HttpServer.ClientAcceptedEventArgs.#ctor(System.Net.Sockets.Socket)">
  1991. <summary>
  1992. Initializes a new instance of the <see cref="T:HttpServer.ClientAcceptedEventArgs"/> class.
  1993. </summary>
  1994. <param name="socket">The socket.</param>
  1995. </member>
  1996. <member name="M:HttpServer.ClientAcceptedEventArgs.Revoke">
  1997. <summary>
  1998. Client may not be handled.
  1999. </summary>
  2000. </member>
  2001. <member name="P:HttpServer.ClientAcceptedEventArgs.Socket">
  2002. <summary>
  2003. Accepted socket.
  2004. </summary>
  2005. </member>
  2006. <member name="P:HttpServer.ClientAcceptedEventArgs.Revoked">
  2007. <summary>
  2008. Client should be revoked.
  2009. </summary>
  2010. </member>
  2011. <member name="T:HttpServer.Sessions.HttpSessionClearedArgs">
  2012. <summary>
  2013. Arguments sent when a <see cref="T:HttpServer.Sessions.IHttpSession"/> is cleared
  2014. </summary>
  2015. </member>
  2016. <member name="M:HttpServer.Sessions.HttpSessionClearedArgs.#ctor(System.Boolean)">
  2017. <summary>
  2018. Instantiates the arguments for the event
  2019. </summary>
  2020. <param name="expired">True if the session is cleared due to expiration</param>
  2021. </member>
  2022. <member name="P:HttpServer.Sessions.HttpSessionClearedArgs.Expired">
  2023. <summary>
  2024. Returns true if the session is cleared due to expiration
  2025. </summary>
  2026. </member>
  2027. <member name="T:HttpServer.Sessions.HttpSessionClearedHandler">
  2028. <summary>
  2029. Delegate for when a IHttpSession is cleared
  2030. </summary>
  2031. <param name="session"><see cref="T:HttpServer.Sessions.IHttpSession"/> this is being cleared.</param>
  2032. <param name="args">Arguments for the clearing</param>
  2033. </member>
  2034. <member name="T:HttpServer.Parser.HeaderEventArgs">
  2035. <summary>
  2036. Event arguments used when a new header have been parsed.
  2037. </summary>
  2038. </member>
  2039. <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor(System.String,System.String)">
  2040. <summary>
  2041. Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class.
  2042. </summary>
  2043. <param name="name">Name of header.</param>
  2044. <param name="value">Header value.</param>
  2045. </member>
  2046. <member name="M:HttpServer.Parser.HeaderEventArgs.#ctor">
  2047. <summary>
  2048. Initializes a new instance of the <see cref="T:HttpServer.Parser.HeaderEventArgs"/> class.
  2049. </summary>
  2050. </member>
  2051. <member name="P:HttpServer.Parser.HeaderEventArgs.Name">
  2052. <summary>
  2053. Gets or sets header name.
  2054. </summary>
  2055. </member>
  2056. <member name="P:HttpServer.Parser.HeaderEventArgs.Value">
  2057. <summary>
  2058. Gets or sets header value.
  2059. </summary>
  2060. </member>
  2061. <member name="T:HttpServer.Helpers.ResourceManager">
  2062. <summary>Class to handle loading of resource files</summary>
  2063. </member>
  2064. <member name="M:HttpServer.Helpers.ResourceManager.#ctor">
  2065. <summary>
  2066. Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class.
  2067. </summary>
  2068. </member>
  2069. <member name="M:HttpServer.Helpers.ResourceManager.#ctor(HttpServer.ILogWriter)">
  2070. <summary>
  2071. Initializes a new instance of the <see cref="T:HttpServer.Helpers.ResourceManager"/> class.
  2072. </summary>
  2073. <param name="writer">logger.</param>
  2074. </member>
  2075. <member name="M:HttpServer.Helpers.ResourceManager.LoadResources(System.String,System.Reflection.Assembly,System.String)">
  2076. <summary>
  2077. Loads resources from a namespace in the given assembly to an URI
  2078. </summary>
  2079. <param name="toUri">The URI to map the resources to</param>
  2080. <param name="fromAssembly">The assembly in which the resources reside</param>
  2081. <param name="fromNamespace">The namespace from which to load the resources</param>
  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>
  2091. <member name="M:HttpServer.Helpers.ResourceManager.GetResourceStream(System.String)">
  2092. <summary>
  2093. Retrieves a stream for the specified resource path if loaded otherwise null
  2094. </summary>
  2095. <param name="path">Path to the resource to retrieve a stream for</param>
  2096. <returns>A stream or null if the resource couldn't be found</returns>
  2097. </member>
  2098. <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String)">
  2099. <summary>
  2100. Fetch all files from the resource that matches the specified arguments.
  2101. </summary>
  2102. <param name="path">The path to the resource to extract</param>
  2103. <returns>
  2104. a list of files if found; or an empty array if no files are found.
  2105. </returns>
  2106. <exception cref="T:System.ArgumentException">Search path must end with an asterisk for finding arbitrary files</exception>
  2107. </member>
  2108. <member name="M:HttpServer.Helpers.ResourceManager.GetFiles(System.String,System.String)">
  2109. <summary>
  2110. Fetch all files from the resource that matches the specified arguments.
  2111. </summary>
  2112. <param name="path">Where the file should reside.</param>
  2113. <param name="filename">Files to check</param>
  2114. <returns>
  2115. a list of files if found; or an empty array if no files are found.
  2116. </returns>
  2117. </member>
  2118. <member name="M:HttpServer.Helpers.ResourceManager.ContainsResource(System.String)">
  2119. <summary>
  2120. Returns whether or not the loader has an instance of the file requested
  2121. </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>
  2125. <member name="T:HttpServer.Rules.RedirectRule">
  2126. <summary>
  2127. redirects from one URL to another.
  2128. </summary>
  2129. </member>
  2130. <member name="T:HttpServer.Rules.IRule">
  2131. <summary>
  2132. Rules are used to perform operations before a request is being handled.
  2133. Rules can be used to create routing etc.
  2134. </summary>
  2135. </member>
  2136. <member name="M:HttpServer.Rules.IRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
  2137. <summary>
  2138. Process the incoming request.
  2139. </summary>
  2140. <param name="request">incoming HTTP request</param>
  2141. <param name="response">outgoing HTTP response</param>
  2142. <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
  2143. <remarks>
  2144. returning true means that no modules will get the request. Returning true is typically being done
  2145. for redirects.
  2146. </remarks>
  2147. <exception cref="T:System.ArgumentNullException">If request or response is null.</exception>
  2148. </member>
  2149. <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String)">
  2150. <summary>
  2151. Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class.
  2152. </summary>
  2153. <param name="fromUrl">Absolute path (no server name)</param>
  2154. <param name="toUrl">Absolute path (no server name)</param>
  2155. <example>
  2156. server.Add(new RedirectRule("/", "/user/index"));
  2157. </example>
  2158. </member>
  2159. <member name="M:HttpServer.Rules.RedirectRule.#ctor(System.String,System.String,System.Boolean)">
  2160. <summary>
  2161. Initializes a new instance of the <see cref="T:HttpServer.Rules.RedirectRule"/> class.
  2162. </summary>
  2163. <param name="fromUrl">Absolute path (no server name)</param>
  2164. <param name="toUrl">Absolute path (no server name)</param>
  2165. <param name="shouldRedirect">true if request should be redirected, false if the request URI should be replaced.</param>
  2166. <example>
  2167. server.Add(new RedirectRule("/", "/user/index"));
  2168. </example>
  2169. </member>
  2170. <member name="M:HttpServer.Rules.RedirectRule.Process(HttpServer.IHttpRequest,HttpServer.IHttpResponse)">
  2171. <summary>
  2172. Process the incoming request.
  2173. </summary>
  2174. <param name="request">incoming HTTP request</param>
  2175. <param name="response">outgoing HTTP response</param>
  2176. <returns>true if response should be sent to the browser directly (no other rules or modules will be processed).</returns>
  2177. <remarks>
  2178. returning true means that no modules will get the request. Returning true is typically being done
  2179. for redirects.
  2180. </remarks>
  2181. </member>
  2182. <member name="P:HttpServer.Rules.RedirectRule.FromUrl">
  2183. <summary>
  2184. Gets string to match request URI with.
  2185. </summary>
  2186. <remarks>Is compared to request.Uri.AbsolutePath</remarks>
  2187. </member>
  2188. <member name="P:HttpServer.Rules.RedirectRule.ToUrl">
  2189. <summary>
  2190. Gets where to redirect.
  2191. </summary>
  2192. </member>
  2193. <member name="P:HttpServer.Rules.RedirectRule.ShouldRedirect">
  2194. <summary>
  2195. Gets whether server should redirect client.
  2196. </summary>
  2197. <remarks>
  2198. <c>false</c> means that the rule will replace
  2199. the current request URI with the new one from this class.
  2200. <c>true</c> means that a redirect response is sent to the client.
  2201. </remarks>
  2202. </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">
  2248. <summary>
  2249. Parses a HTTP request directly from a stream
  2250. </summary>
  2251. </member>
  2252. <member name="T:HttpServer.IHttpRequestParser">
  2253. <summary>
  2254. Event driven parser used to parse incoming HTTP requests.
  2255. </summary>
  2256. <remarks>
  2257. The parser supports partial messages and keeps the states between
  2258. each parsed buffer. It's therefore important that the parser gets
  2259. <see cref="M:HttpServer.IHttpRequestParser.Clear"/>ed if a client disconnects.
  2260. </remarks>
  2261. </member>
  2262. <member name="M:HttpServer.IHttpRequestParser.Parse(System.Byte[],System.Int32,System.Int32)">
  2263. <summary>
  2264. Parse partial or complete message.
  2265. </summary>
  2266. <param name="buffer">buffer containing incoming bytes</param>
  2267. <param name="offset">where in buffer that parsing should start</param>
  2268. <param name="count">number of bytes to parse</param>
  2269. <returns>Unparsed bytes left in buffer.</returns>
  2270. <exception cref="T:HttpServer.Exceptions.BadRequestException"><c>BadRequestException</c>.</exception>
  2271. </member>
  2272. <member name="M:HttpServer.IHttpRequestParser.Clear">
  2273. <summary>
  2274. Clear parser state.
  2275. </summary>
  2276. </member>
  2277. <member name="P:HttpServer.IHttpRequestParser.CurrentState">
  2278. <summary>
  2279. Current state in parser.
  2280. </summary>
  2281. </member>
  2282. <member name="E:HttpServer.IHttpRequestParser.RequestCompleted">
  2283. <summary>
  2284. A request have been successfully parsed.
  2285. </summary>
  2286. </member>
  2287. <member name="E:HttpServer.IHttpRequestParser.BodyBytesReceived">
  2288. <summary>
  2289. More body bytes have been received.
  2290. </summary>
  2291. </member>
  2292. <member name="E:HttpServer.IHttpRequestParser.RequestLineReceived">
  2293. <summary>
  2294. Request line have been received.
  2295. </summary>
  2296. </member>
  2297. <member name="E:HttpServer.IHttpRequestParser.HeaderReceived">
  2298. <summary>
  2299. A header have been received.
  2300. </summary>
  2301. </member>
  2302. <member name="P:HttpServer.IHttpRequestParser.LogWriter">
  2303. <summary>
  2304. Gets or sets the log writer.
  2305. </summary>
  2306. </member>
  2307. <member name="M:HttpServer.Parser.HttpRequestParser.#ctor(HttpServer.ILogWriter)">
  2308. <summary>
  2309. Create a new request parser
  2310. </summary>
  2311. <param name="logWriter">delegate receiving log entries.</param>
  2312. </member>
  2313. <member name="M:HttpServer.Parser.HttpRequestParser.AddToBody(System.Byte[],System.Int32,System.Int32)">
  2314. <summary>
  2315. Add a number of bytes to the body
  2316. </summary>
  2317. <param name="buffer">buffer containing more body bytes.</param>
  2318. <param name="offset">starting offset in buffer</param>
  2319. <param name="count">number of bytes, from offset, to read.</param>
  2320. <returns>offset to continue from.</returns>
  2321. </member>
  2322. <member name="M:HttpServer.Parser.HttpRequestParser.Clear">
  2323. <summary>
  2324. Remove all state information for the request.
  2325. </summary>
  2326. </member>
  2327. <member name="M:HttpServer.Parser.HttpRequestParser.OnFirstLine(System.String)">
  2328. <summary>
  2329. Parse request line
  2330. </summary>
  2331. <param name="value"></param>
  2332. <exception cref="T:HttpServer.Exceptions.BadRequestException">If line is incorrect</exception>
  2333. <remarks>Expects the following format: "Method SP Request-URI SP HTTP-Version CRLF"</remarks>
  2334. </member>
  2335. <member name="M:HttpServer.Parser.HttpRequestParser.OnHeader(System.String,System.String)">
  2336. <summary>
  2337. We've parsed a new header.
  2338. </summary>
  2339. <param name="name">Name in lower case</param>
  2340. <param name="value">Value, unmodified.</param>
  2341. <exception cref="T:HttpServer.Exceptions.BadRequestException">If content length cannot be parsed.</exception>
  2342. </member>
  2343. <member name="M:HttpServer.Parser.HttpRequestParser.Parse(System.Byte[],System.Int32,System.Int32)">
  2344. <summary>
  2345. Parse a message
  2346. </summary>
  2347. <param name="buffer">bytes to parse.</param>
  2348. <param name="offset">where in buffer that parsing should start</param>
  2349. <param name="count">number of bytes to parse, starting on <paramref name="offset"/>.</param>
  2350. <returns>offset (where to start parsing next).</returns>
  2351. <exception cref="T:HttpServer.Exceptions.BadRequestException"><c>BadRequestException</c>.</exception>
  2352. </member>
  2353. <member name="P:HttpServer.Parser.HttpRequestParser.LogWriter">
  2354. <summary>
  2355. Gets or sets the log writer.
  2356. </summary>
  2357. </member>
  2358. <member name="P:HttpServer.Parser.HttpRequestParser.CurrentState">
  2359. <summary>
  2360. Current state in parser.
  2361. </summary>
  2362. </member>
  2363. <member name="E:HttpServer.Parser.HttpRequestParser.RequestCompleted">
  2364. <summary>
  2365. A request have been successfully parsed.
  2366. </summary>
  2367. </member>
  2368. <member name="E:HttpServer.Parser.HttpRequestParser.BodyBytesReceived">
  2369. <summary>
  2370. More body bytes have been received.
  2371. </summary>
  2372. </member>
  2373. <member name="E:HttpServer.Parser.HttpRequestParser.RequestLineReceived">
  2374. <summary>
  2375. Request line have been received.
  2376. </summary>
  2377. </member>
  2378. <member name="E:HttpServer.Parser.HttpRequestParser.HeaderReceived">
  2379. <summary>
  2380. A header have been received.
  2381. </summary>
  2382. </member>
  2383. <member name="T:HttpServer.IHttpResponse">
  2384. <summary>
  2385. Response that is sent back to the web browser / client.
  2386.  
  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>
  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>
  2446. <member name="M:HttpServer.IHttpResponse.SendHeaders">
  2447. <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>
  2455. <member name="M:HttpServer.IHttpResponse.Redirect(System.Uri)">
  2456. <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>
  2464. <member name="M:HttpServer.IHttpResponse.Redirect(System.String)">
  2465. <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>
  2480. <member name="P:HttpServer.IHttpResponse.ProtocolVersion">
  2481. <summary>
  2482. Defines the version of the HTTP Response for applications where it's required
  2483. for this to be forced.
  2484. </summary>
  2485. </member>
  2486. <member name="P:HttpServer.IHttpResponse.Chunked">
  2487. <summary>
  2488. The chunked encoding modifies the body of a message in order to
  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>
  2495. </member>
  2496. <member name="P:HttpServer.IHttpResponse.Connection">
  2497. <summary>
  2498. Kind of connection
  2499. </summary>
  2500. </member>
  2501. <member name="P:HttpServer.IHttpResponse.Encoding">
  2502. <summary>
  2503. Encoding to use when sending stuff to the client.
  2504. </summary>
  2505. <remarks>Default is UTF8</remarks>
  2506. </member>
  2507. <member name="P:HttpServer.IHttpResponse.KeepAlive">
  2508. <summary>
  2509. Number of seconds to keep connection alive
  2510. </summary>
  2511. <remarks>Only used if Connection property is set to ConnectionType.KeepAlive</remarks>
  2512. </member>
  2513. <member name="P:HttpServer.IHttpResponse.Status">
  2514. <summary>
  2515. Status code that is sent to the client.
  2516. </summary>
  2517. <remarks>Default is HttpStatusCode.Ok</remarks>
  2518. </member>
  2519. <member name="P:HttpServer.IHttpResponse.Reason">
  2520. <summary>
  2521. Information about why a specific status code was used.
  2522. </summary>
  2523. </member>
  2524. <member name="P:HttpServer.IHttpResponse.ContentLength">
  2525. <summary>
  2526. Size of the body. MUST be specified before sending the header,
  2527. unless property Chunked is set to true.
  2528. </summary>
  2529. </member>
  2530. <member name="P:HttpServer.IHttpResponse.ContentType">
  2531. <summary>
  2532. Kind of content in the body
  2533. </summary>
  2534. <remarks>Default is text/html</remarks>
  2535. </member>
  2536. <member name="P:HttpServer.IHttpResponse.HeadersSent">
  2537. <summary>
  2538. Headers have been sent to the client-
  2539. </summary>
  2540. <remarks>You can not send any additional headers if they have already been sent.</remarks>
  2541. </member>
  2542. <member name="P:HttpServer.IHttpResponse.Sent">
  2543. <summary>
  2544. The whole response have been sent.
  2545. </summary>
  2546. </member>
  2547. <member name="P:HttpServer.IHttpResponse.Cookies">
  2548. <summary>
  2549. Cookies that should be created/changed.
  2550. </summary>
  2551. </member>
  2552. <member name="T:HttpServer.ConnectionType">
  2553. <summary>
  2554. Type of HTTP connection
  2555. </summary>
  2556. </member>
  2557. <member name="F:HttpServer.ConnectionType.Close">
  2558. <summary>
  2559. Connection is closed after each request-response
  2560. </summary>
  2561. </member>
  2562. <member name="F:HttpServer.ConnectionType.KeepAlive">
  2563. <summary>
  2564. Connection is kept alive for X seconds (unless another request have been made)
  2565. </summary>
  2566. </member>
  2567. <member name="T:HttpServer.HttpResponse">
  2568. <summary>
  2569. Response that is sent back to the web browser / client.
  2570. </summary>
  2571. <remarks>
  2572. <para>
  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>
  2603. <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,HttpServer.IHttpRequest)">
  2604. <summary>
  2605. Initializes a new instance of the <see cref="T:HttpServer.IHttpResponse"/> class.
  2606. </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>
  2611. <member name="M:HttpServer.HttpResponse.#ctor(HttpServer.IHttpClientContext,System.String,HttpServer.ConnectionType)">
  2612. <summary>
  2613. Initializes a new instance of the <see cref="