sig
exception Ocsigen_http_error of int
exception Ocsigen_Is_a_directory
exception Ocsigen_malformed_url
exception Ocsigen_Internal_Error of string
exception Bad_config_tag_for_extension of string
exception Error_in_config_file of string
type url_path = string list
val string_of_url_path : Extensions.url_path -> string
type virtual_host_part = Text of string * int | Wildcard
type virtual_hosts = (Extensions.virtual_host_part list * int option) list
type file_info = {
tmp_filename : string;
filesize : int64;
original_filename : string;
}
type request_info = {
ri_url_string : string;
ri_url : Neturl.url;
ri_method : Http_frame.Http_header.http_method;
ri_protocol : Http_frame.Http_header.proto;
ri_path_string : string;
ri_full_path : string list;
ri_sub_path : string list;
ri_sub_path_string : string Lazy.t;
ri_get_params_string : string option;
ri_host : string option;
ri_get_params : (string * string) list Lazy.t;
ri_post_params : (string * string) list Lwt.t Lazy.t;
ri_files : (string * Extensions.file_info) list Lwt.t Lazy.t;
ri_inet_addr : Unix.inet_addr;
ri_ip : string;
ri_ip32 : int32 Lazy.t;
ri_remote_port : int;
ri_port : int;
ri_user_agent : string;
ri_cookies_string : string option Lazy.t;
ri_cookies : string Http_frame.Cookievalues.t Lazy.t;
ri_ifmodifiedsince : float option;
ri_ifunmodifiedsince : float option;
ri_ifnonematch : string list;
ri_ifmatch : string list option;
ri_content_type : string option;
ri_content_length : int64 option;
ri_referer : string option Lazy.t;
ri_accept :
((string option * string option) * float option *
(string * string) list)
list Lazy.t;
ri_accept_charset : (string option * float option) list Lazy.t;
ri_accept_encoding : (string option * float option) list Lazy.t;
ri_accept_language : (string * float option) list Lazy.t;
ri_http_frame : Http_frame.t;
ri_extension_info : exn list;
}
type answer =
Ext_found of Http_frame.result
| Ext_not_found of int
| Ext_stop of int
| Ext_continue_with of Extensions.request_info * Http_frame.cookieset *
int
| Ext_retry_with of Extensions.request_info * Http_frame.cookieset
type extension =
Page_gen of
(int -> string -> Extensions.request_info -> Extensions.answer Lwt.t)
| Filter of
(string ->
Extensions.request_info ->
Http_frame.result -> Extensions.answer Lwt.t)
val register_extension :
(Extensions.virtual_hosts ->
Extensions.url_path ->
string option -> Simplexmlparser.xml -> Extensions.extension) *
(unit -> unit) * (unit -> unit) * (exn -> string) -> unit
val get_config : unit -> Simplexmlparser.xml list
val ri_of_url :
string -> Extensions.request_info -> Extensions.request_info
val parse_url :
string ->
string * Neturl.url * string list * string option *
(string * string) list Lazy.t
val parse_site :
Extensions.virtual_hosts ->
Extensions.url_path ->
string option -> Simplexmlparser.xml list -> Extensions.extension list
val set_sites :
(Extensions.virtual_hosts * Extensions.url_path * string option *
Extensions.extension list)
list -> unit
val get_sites :
unit ->
(Extensions.virtual_hosts * Extensions.url_path * string option *
Extensions.extension list)
list
val add_site :
Extensions.virtual_hosts * Extensions.url_path * string option *
Extensions.extension list -> unit
val do_for_site_matching :
string option ->
int -> Extensions.request_info -> Http_frame.result Lwt.t
val get_number_of_connected : unit -> int
val get_number_of_connected : unit -> int
val incr_connected : unit -> unit
val decr_connected : unit -> unit
val during_initialisation : unit -> bool
val start_initialisation : unit -> unit
val end_initialisation : unit -> unit
val get_numberofreloads : unit -> int
val get_init_exn_handler : unit -> exn -> string
val set_config : Simplexmlparser.xml list -> unit
end