sig
exception Unknown_command
val register_command_function :
?prefix:string -> (string -> string list -> unit Lwt.t) -> unit
val get_command_function :
unit -> ?prefix:string -> string -> string list -> unit Lwt.t
module Ocsigen_request_info :
sig
type ifrange =
Ocsigen_request_info.ifrange =
IR_No
| IR_Ifunmodsince of float
| IR_ifmatch of string
type file_info =
Ocsigen_request_info.file_info = {
tmp_filename : string;
filesize : int64;
raw_original_filename : string;
original_basename : string;
file_content_type :
((string * string) * (string * string) list) option;
}
type request_info = Ocsigen_request_info.request_info
val ri_of_url :
?full_rewrite:bool -> string -> request_info -> request_info
val make :
url_string:string ->
meth:Ocsigen_http_frame.Http_header.http_method ->
protocol:Ocsigen_http_frame.Http_header.proto ->
?ssl:bool ->
full_path_string:string ->
full_path:Ocsigen_lib.Url.path ->
?original_full_path_string:string ->
?original_full_path:Ocsigen_lib.Url.path ->
?sub_path:Ocsigen_lib.Url.path ->
?sub_path_string:Ocsigen_lib.Url.uri ->
get_params_string:string option ->
host:string option ->
port_from_host_field:int option ->
get_params:(string * string) list Lazy.t ->
?initial_get_params:(string * string) list Lazy.t ->
post_params:(string option * Int64.t option ->
(string * string) list Lwt.t)
option ->
files:(string option * Int64.t option ->
(string * file_info) list Lwt.t)
option ->
remote_inet_addr:Unix.inet_addr ->
remote_ip:string ->
?remote_ip_parsed:Ipaddr.t Lazy.t ->
remote_port:int ->
?forward_ip:string list ->
server_port:int ->
user_agent:string ->
cookies_string:string option Lazy.t ->
cookies:string Ocsigen_cookies.CookiesTable.t Lazy.t ->
ifmodifiedsince:float option ->
ifunmodifiedsince:float option ->
ifnonematch:string list option ->
ifmatch:string list option ->
content_type:((string * string) * (string * string) list) option ->
content_type_string:string option ->
content_length:int64 option ->
referer:string option Lazy.t ->
origin:string option Lazy.t ->
access_control_request_method:string option Lazy.t ->
access_control_request_headers:string list option Lazy.t ->
accept:Http_headers.accept Lazy.t ->
accept_charset:(string option * float option) list Lazy.t ->
accept_encoding:(string option * float option) list Lazy.t ->
accept_language:(string * float option) list Lazy.t ->
http_frame:Ocsigen_http_frame.t ->
?request_cache:Polytables.t ->
client:Ocsigen_http_com.connection ->
range:((int64 * int64) list * int64 option * ifrange) option Lazy.t ->
?timeofday:float ->
?nb_tries:int ->
?connection_closed:unit Lwt.t -> unit -> request_info
val update :
request_info ->
?url_string:string ->
?meth:Ocsigen_http_frame.Http_header.http_method ->
?protocol:Ocsigen_http_frame.Http_header.proto ->
?ssl:bool ->
?full_path_string:string ->
?full_path:string list ->
?original_full_path_string:string ->
?original_full_path:string list ->
?sub_path:string list ->
?sub_path_string:string ->
?get_params_string:string option ->
?host:string option ->
?port_from_host_field:int option ->
?get_params:(string * string) list Lazy.t ->
?initial_get_params:(string * string) list Lazy.t ->
?post_params:(string option * Int64.t option ->
(string * string) list Lwt.t)
option ->
?files:(string option * Int64.t option ->
(string * file_info) list Lwt.t)
option ->
?remote_inet_addr:Unix.inet_addr ->
?remote_ip:string ->
?remote_ip_parsed:Ipaddr.t Lazy.t ->
?remote_port:int ->
?forward_ip:string list ->
?server_port:int ->
?user_agent:string ->
?cookies_string:string option Lazy.t ->
?cookies:string Ocsigen_cookies.CookiesTable.t Lazy.t ->
?ifmodifiedsince:float option ->
?ifunmodifiedsince:float option ->
?ifnonematch:string list option ->
?ifmatch:string list option ->
?content_type:((string * string) * (string * string) list) option ->
?content_type_string:string option ->
?content_length:int64 option ->
?referer:string option Lazy.t ->
?origin:string option Lazy.t ->
?access_control_request_method:string option Lazy.t ->
?access_control_request_headers:string list option Lazy.t ->
?accept:Http_headers.accept Lazy.t ->
?accept_charset:(string option * float option) list Lazy.t ->
?accept_encoding:(string option * float option) list Lazy.t ->
?accept_language:(string * float option) list Lazy.t ->
?http_frame:Ocsigen_http_frame.t ->
?request_cache:Polytables.t ->
?client:Ocsigen_http_com.connection ->
?range:((int64 * int64) list * int64 option * ifrange) option Lazy.t ->
?timeofday:float ->
?nb_tries:int ->
?connection_closed:unit Lwt.t -> unit -> request_info
val update_nb_tries : request_info -> int -> unit
val update_request_cache : request_info -> Polytables.t -> unit
val range :
request_info ->
((int64 * int64) list * int64 option * ifrange) option Lazy.t
val url_string : request_info -> string
val protocol : request_info -> Ocsigen_http_frame.Http_header.proto
val http_frame : request_info -> Ocsigen_http_frame.t
val meth : request_info -> Ocsigen_http_frame.Http_header.http_method
val ifmatch : request_info -> string list option
val ifunmodifiedsince : request_info -> float option
val ifnonematch : request_info -> string list option
val ifmodifiedsince : request_info -> float option
val remote_ip : request_info -> string
val user_agent : request_info -> string
val host : request_info -> string option
val ssl : request_info -> bool
val port_from_host_field : request_info -> int option
val server_port : request_info -> int
val full_path : request_info -> string list
val get_params_string : request_info -> string option
val client : request_info -> Ocsigen_http_com.connection
val nb_tries : request_info -> int
val sub_path : request_info -> string list
val content_length : request_info -> int64 option
val content_type_string : request_info -> string option
val remote_port : request_info -> int
val sub_path_string : request_info -> string
val full_path_string : request_info -> string
val remote_inet_addr : request_info -> Unix.inet_addr
val forward_ip : request_info -> string list
val remote_ip_parsed : request_info -> Ipaddr.t Lazy.t
val content_type :
request_info -> ((string * string) * (string * string) list) option
val origin : request_info -> string option Lazy.t
val access_control_request_method :
request_info -> string option Lazy.t
val access_control_request_headers :
request_info -> string list option Lazy.t
val request_cache : request_info -> Polytables.t
val files :
request_info ->
(string option * Int64.t option -> (string * file_info) list Lwt.t)
option
val original_full_path : request_info -> string list
val cookies :
request_info -> string Ocsigen_cookies.CookiesTable.t Lazy.t
val post_params :
request_info ->
(string option * Int64.t option -> (string * string) list Lwt.t)
option
val get_params : request_info -> (string * string) list Lazy.t
val initial_get_params : request_info -> (string * string) list Lazy.t
val original_full_path_string : request_info -> string
val timeofday : request_info -> float
val accept_language :
request_info -> (string * float option) list Lazy.t
val accept_encoding :
request_info -> (string option * float option) list Lazy.t
val accept : request_info -> Http_headers.accept Lazy.t
val connection_closed : request_info -> unit Lwt.t
end
exception Ocsigen_http_error of (Ocsigen_cookies.cookieset * int)
exception Bad_config_tag_for_extension of string
exception Error_in_config_file of string
exception Error_in_user_config_file of string
val badconfig : ('a, unit, string, 'b) Stdlib.format4 -> 'a
type virtual_hosts = (string * Netstring_pcre.regexp * int option) list
val hash_virtual_hosts : Ocsigen_extensions.virtual_hosts -> int
val equal_virtual_hosts :
Ocsigen_extensions.virtual_hosts ->
Ocsigen_extensions.virtual_hosts -> bool
val host_match :
virtual_hosts:Ocsigen_extensions.virtual_hosts ->
host:string option -> port:int -> bool
type do_not_serve = {
do_not_serve_regexps : string list;
do_not_serve_files : string list;
do_not_serve_extensions : string list;
}
exception IncorrectRegexpes of Ocsigen_extensions.do_not_serve
val do_not_serve_to_regexp :
Ocsigen_extensions.do_not_serve -> Netstring_pcre.regexp
val join_do_not_serve :
Ocsigen_extensions.do_not_serve ->
Ocsigen_extensions.do_not_serve -> Ocsigen_extensions.do_not_serve
type config_info = {
default_hostname : string;
default_httpport : int;
default_httpsport : int;
default_protocol_is_https : bool;
mime_assoc : Ocsigen_charset_mime.mime_assoc;
charset_assoc : Ocsigen_charset_mime.charset_assoc;
default_directory_index : string list;
list_directory_content : bool;
follow_symlinks : Ocsigen_extensions.follow_symlink;
do_not_serve_404 : Ocsigen_extensions.do_not_serve;
do_not_serve_403 : Ocsigen_extensions.do_not_serve;
uploaddir : string option;
maxuploadfilesize : int64 option;
}
and follow_symlink =
DoNotFollowSymlinks
| FollowSymlinksIfOwnerMatch
| AlwaysFollowSymlinks
type client = Ocsigen_http_com.connection
val client_id : Ocsigen_extensions.client -> int
val client_connection :
Ocsigen_extensions.client -> Ocsigen_http_com.connection
type ifrange =
Ocsigen_extensions.Ocsigen_request_info.ifrange =
IR_No
| IR_Ifunmodsince of float
| IR_ifmatch of string
type file_info =
Ocsigen_extensions.Ocsigen_request_info.file_info = {
tmp_filename : string;
filesize : int64;
raw_original_filename : string;
original_basename : string;
file_content_type : ((string * string) * (string * string) list) option;
}
type request_info = Ocsigen_extensions.Ocsigen_request_info.request_info
and request = {
request_info : Ocsigen_extensions.request_info;
request_config : Ocsigen_extensions.config_info;
}
exception Ocsigen_Is_a_directory of
(Ocsigen_extensions.Ocsigen_request_info.request_info ->
Neturl.url)
type answer =
Ext_do_nothing
| Ext_found of (unit -> Ocsigen_http_frame.result Lwt.t)
| Ext_found_stop of (unit -> Ocsigen_http_frame.result Lwt.t)
| Ext_next of int
| Ext_stop_site of (Ocsigen_cookies.cookieset * int)
| Ext_stop_host of (Ocsigen_cookies.cookieset * int)
| Ext_stop_all of (Ocsigen_cookies.cookieset * int)
| Ext_continue_with of
(Ocsigen_extensions.request * Ocsigen_cookies.cookieset * int)
| Ext_retry_with of Ocsigen_extensions.request *
Ocsigen_cookies.cookieset
| Ext_sub_result of Ocsigen_extensions.extension2
| Ext_found_continue_with of
(unit ->
(Ocsigen_http_frame.result * Ocsigen_extensions.request) Lwt.t)
| Ext_found_continue_with' of
(Ocsigen_http_frame.result * Ocsigen_extensions.request)
and request_state =
Req_not_found of (int * Ocsigen_extensions.request)
| Req_found of (Ocsigen_extensions.request * Ocsigen_http_frame.result)
and extension2 =
(unit -> unit) ->
Ocsigen_cookies.cookieset ->
Ocsigen_extensions.request_state ->
(Ocsigen_extensions.answer * Ocsigen_cookies.cookieset) Lwt.t
type extension =
Ocsigen_extensions.request_state -> Ocsigen_extensions.answer Lwt.t
type parse_fun = Xml.xml list -> Ocsigen_extensions.extension2
type parse_host
type userconf_info = { localfiles_root : string; }
type parse_config =
Ocsigen_extensions.virtual_hosts ->
Ocsigen_extensions.config_info -> Ocsigen_extensions.parse_config_aux
and parse_config_user =
Ocsigen_extensions.userconf_info -> Ocsigen_extensions.parse_config
and parse_config_aux =
Ocsigen_lib.Url.path ->
Ocsigen_extensions.parse_host ->
Ocsigen_extensions.parse_fun -> Xml.xml -> Ocsigen_extensions.extension
val register_extension :
name:string ->
?fun_site:Ocsigen_extensions.parse_config ->
?user_fun_site:Ocsigen_extensions.parse_config_user ->
?begin_init:(unit -> unit) ->
?end_init:(unit -> unit) ->
?init_fun:(Xml.xml list -> unit) ->
?exn_handler:(exn -> string) -> ?respect_pipeline:bool -> unit -> unit
module Configuration :
sig
type element
type attribute
val element :
name:string ->
?obligatory:bool ->
?init:(unit -> unit) ->
?elements:Ocsigen_extensions.Configuration.element list ->
?attributes:Ocsigen_extensions.Configuration.attribute list ->
?pcdata:(string -> unit) ->
?other_elements:(string ->
(string * string) list -> Xml.xml list -> unit) ->
?other_attributes:(string -> string -> unit) ->
unit -> Ocsigen_extensions.Configuration.element
val attribute :
name:string ->
?obligatory:bool ->
(string -> unit) -> Ocsigen_extensions.Configuration.attribute
val process_element :
in_tag:string ->
elements:Ocsigen_extensions.Configuration.element list ->
?pcdata:(string -> unit) ->
?other_elements:(string ->
(string * string) list -> Xml.xml list -> unit) ->
Xml.xml -> unit
val process_elements :
in_tag:string ->
elements:Ocsigen_extensions.Configuration.element list ->
?pcdata:(string -> unit) ->
?other_elements:(string ->
(string * string) list -> Xml.xml list -> unit) ->
?init:(unit -> unit) -> Xml.xml list -> unit
val ignore_blank_pcdata : in_tag:string -> string -> unit
end
val get_hostname : Ocsigen_extensions.request -> string
val get_port : Ocsigen_extensions.request -> int
val new_url_of_directory_request :
Ocsigen_extensions.request ->
Ocsigen_extensions.request_info -> Neturl.url
val ri_of_url :
?full_rewrite:bool ->
string ->
Ocsigen_extensions.request_info -> Ocsigen_extensions.request_info
exception NoSuchUser
type ud_string
val parse_user_dir : string -> Ocsigen_extensions.ud_string
val replace_user_dir :
Netstring_pcre.regexp -> Ocsigen_extensions.ud_string -> string -> string
exception Not_concerned
val find_redirection :
Netstring_pcre.regexp ->
bool ->
string ->
bool ->
string option -> int -> string option -> string -> string -> string
val make_parse_config :
Ocsigen_lib.Url.path ->
Ocsigen_extensions.parse_config_aux -> Ocsigen_extensions.parse_fun
val parse_config_item : Ocsigen_extensions.parse_config
val parse_user_site_item : Ocsigen_extensions.parse_config_user
val set_hosts :
(Ocsigen_extensions.virtual_hosts * Ocsigen_extensions.config_info *
Ocsigen_extensions.extension2)
list -> unit
val get_hosts :
unit ->
(Ocsigen_extensions.virtual_hosts * Ocsigen_extensions.config_info *
Ocsigen_extensions.extension2)
list
val compute_result :
?previous_cookies:Ocsigen_cookies.cookieset ->
?awake_next_request:bool ->
Ocsigen_extensions.request_info -> Ocsigen_http_frame.result Lwt.t
val get_number_of_connected : unit -> int
val incr_connected : int -> unit
val decr_connected : unit -> unit Lwt.t
val wait_fewer_connected : int -> unit Lwt.t
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 : Xml.xml list -> unit
val client_of_connection :
Ocsigen_http_com.connection -> Ocsigen_extensions.client
val get_server_address :
Ocsigen_extensions.request_info -> Unix.inet_addr * int
val sockets : Lwt_unix.file_descr list Stdlib.ref
val sslsockets : Lwt_unix.file_descr list Stdlib.ref
end