(if 'file' is given) or as a file name (if 'name' is given) *)
val send_file: ?name:string -> ?file:in_channel -> out_channel -> unit
+ (** high level response function, respond on outchan sending: basic headers,
+ headers probided via 'headers' argument, body given via 'body' argument.
+ Default response status is 200, default response HTTP version is
+ Http_common.http_version *)
+val respond:
+ ?body:string -> ?headers:(string * string) list ->
+ ?version:Http_types.version -> ?code:int -> ?status:Http_types.status ->
+ out_channel ->
+ unit
+
(** send a 404 (not found) HTTP response *)
val respond_not_found:
url:string -> ?version: Http_types.version -> out_channel -> unit
receive as a first parameter the path required by the the HTTP client as a
string, and a list of pair <parameter, value> representing parameters passed
via GET. The last argument of the callback is an output_channel connected to
- the HTTP client to which the user can write directly. 'timeout' parameter
- sets a timeout for each request processed by the daemon, if it's set to None,
+ the HTTP client to which the user can write directly. 'timeout' parameter sets
+ a timeout for each request processed by the daemon, if it's set to None,
daemon waits forever for completed requests (use with care!), default is 5
- minute *)
+ minute. 'mode' parameter has 3 possible values: `Single means that all request
+ are handled by the same process, `Fork means that each request is handled by a
+ separate process, `Thread means that each request is handled by a separate
+ thread, default is `Fork; 'root' (mnemonic "document root") is the directory
+ where the daemon chdir before starting up, default is current working
+ directory *)
val start:
- ?addr: string -> ?port: int -> ?timeout: int option ->
+ ?addr: string -> ?port: int ->
+ ?timeout: int option -> ?mode: Http_types.daemon_mode -> ?root: string ->
(string -> (string * string) list -> out_channel -> unit) ->
unit
one is an out_channel as per 'start', but the secondo one is a Request.request
object *)
val start':
- ?addr: string -> ?port: int -> ?timeout: int option ->
+ ?addr: string -> ?port: int ->
+ ?timeout: int option -> ?mode: Http_types.daemon_mode -> ?root: string ->
(Http_types.request -> out_channel -> unit) ->
unit
+(*
+ (** OO interface to HTTP daemons *)
+class daemon:
+ ?addr: string -> ?port: int ->
+ ?timeout: int option -> ?mode: Http_types.daemon_mode ->?root:; string ->
+ (Http_types.request -> out_channel -> unit) ->
+ Http_types.daemon
+*)
+
(** Trivial static pages HTTP daemon *)
module Trivial :
sig