module Eliom_sessions:This module contains the functions you need to get (or set) information about the request or the session.sig..end
Be very carefull if you use several sessions concurrently, as they may have different duration (one may be closed while the other are not). Duration of service sessions is sometimes shorter than volatile data sessions, which is usually shorter than persistent sessions.
If you want several sessions of the same type for one site,
you can choose a personalized session name by giving the optional
parameter ?session_name.
It is highly recommended to put all the sessions for one user in one
session group. Thus, it will be possible to implement features
like "close all opened sessions" for one user, or limitation of
the number of sessions one user can open concurrently, or setting
data for one group of sessions.
type server_params
val get_user_agent : sp:server_params -> stringval get_full_url : sp:server_params -> stringval get_remote_ip : sp:server_params -> stringval get_remote_inet_addr : sp:server_params -> Unix.inet_addrUnix.inet_addr (defined in OCaml's standard library).val get_current_full_path_string : sp:server_params -> stringval get_current_full_path : sp:server_params -> Ocsigen_extensions.url_pathOcsigen_extensions.url_pathval get_current_sub_path_string : sp:server_params -> stringval get_current_sub_path : sp:server_params -> Ocsigen_extensions.url_pathOcsigen_extensions.url_path.
The sub-path is the full path without the path of the site (set in the
configuration file).val get_header_hostname : sp:server_params -> string optionval get_hostname : sp:server_params -> string<host defaulthostname="...">).val get_default_port : sp:server_params -> int<host defaulthttpport="...">).val get_default_sslport : sp:server_params -> int<host defaulthttpsport="...">).val get_server_port : sp:server_params -> intval get_ssl : sp:server_params -> boolval get_suffix : sp:server_params -> Ocsigen_extensions.url_pathval get_cookies : sp:server_params -> string Ocsigen_http_frame.Cookievalues.tNone means no
timeout.
The optional parameter ?recompute_expdates is false by
default. If you set it to true, the expiration dates for all
sessions in the table will be recomputed with the new timeout.
That is, the difference between the new timeout and the old one
will be added to their expiration dates (by another Lwt thread).
Sessions whose timeout has been set individually with
Eliom_sessions.set_volatile_session_timeout won't be affected.
Warning: If you use one of these functions after the
initialisation phase, you must give the ~sp parameter, otherwise
it will raise the exception
Eliom_common.Eliom_function_forbidden_outside_site_loading. This
remark also applies to get_* functions.
val set_global_volatile_session_timeout : ?session_name:string ->
?sp:server_params ->
?recompute_expdates:bool -> float option -> unitval set_global_service_session_timeout : ?session_name:string ->
?sp:server_params ->
?recompute_expdates:bool -> float option -> unitval set_global_volatile_data_session_timeout : ?session_name:string ->
?sp:server_params ->
?recompute_expdates:bool -> float option -> unitval set_global_persistent_data_session_timeout : ?session_name:string ->
?sp:server_params ->
?recompute_expdates:bool -> float option -> unitval get_global_service_session_timeout : ?session_name:string ->
?sp:server_params -> unit -> float optionval get_global_volatile_data_session_timeout : ?session_name:string ->
?sp:server_params -> unit -> float optionval get_global_persistent_data_session_timeout : ?session_name:string ->
?sp:server_params -> unit -> float optionval set_service_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> float option -> unitNone = no timeoutval unset_service_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> unitval get_service_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> float optionNone = no timeoutval set_volatile_data_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> float option -> unitNone = no timeoutval unset_volatile_data_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> unitval get_volatile_data_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> float optionNone = no timeoutval set_volatile_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> float option -> unitNone = no timeoutval unset_volatile_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> unitval set_persistent_data_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> float option -> unit Lwt.tNone = no timeoutval unset_persistent_data_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> unit Lwt.tval get_persistent_data_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> float option Lwt.tNone = no timeouttype 'a session_data =
| |
No_data |
| |
Data_session_expired |
| |
Data of |
val set_service_session_group : ?set_max:int option ->
?session_name:string ->
?secure:bool -> sp:server_params -> string -> unit?set_max parameter is present, also sets the maximum
number of sessions in the group. None means "no limitation".
If ~secure is false when the protocol is https, it will affect
the unsecure session, otherwise, il will affect the secure session in
https, the unsecure one in http.val unset_service_session_group : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> unitval get_service_session_group : ?session_name:string ->
?secure:bool ->
sp:server_params -> unit -> string session_dataNone.val set_volatile_data_session_group : ?set_max:int option ->
?session_name:string ->
?secure:bool -> sp:server_params -> string -> unit?set_max parameter is present, also sets the maximum
number of sessions in the group. None means "no limitation".val unset_volatile_data_session_group : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> unitval get_volatile_data_session_group : ?session_name:string ->
?secure:bool ->
sp:server_params -> unit -> string session_dataNone.val set_persistent_data_session_group : ?set_max:int option ->
?session_name:string ->
?secure:bool -> sp:server_params -> string -> unit Lwt.t?set_max parameter is present, also sets the maximum
number of sessions in the group. None means "no limitation".val unset_persistent_data_session_group : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> unit Lwt.tval get_persistent_data_session_group : ?session_name:string ->
?secure:bool ->
sp:server_params ->
unit -> string session_data Lwt.tNone.None means "no limit". This won't modify existing groups. That
value will be used only as default value if you do not specify the
optional parameter ?set_max of function
Eliom_sessions.set_volatile_data_session_group.val set_default_max_service_sessions_per_group : sp:server_params -> int option -> unitval set_default_max_volatile_data_sessions_per_group : sp:server_params -> int option -> unitval set_default_max_persistent_data_sessions_per_group : sp:server_params -> int option -> unitNone means the cookie will expire
when the browser is closed. Note: there is no way to set cookies
for an infinite time on browsers.val set_volatile_session_cookies_exp_date : ?session_name:string ->
?secure:bool -> sp:server_params -> float option -> unitval set_service_session_cookie_exp_date : ?session_name:string ->
?secure:bool -> sp:server_params -> float option -> unitval set_volatile_data_session_cookie_exp_date : ?session_name:string ->
?secure:bool -> sp:server_params -> float option -> unitval set_persistent_data_session_cookie_exp_date : ?session_name:string ->
?secure:bool -> sp:server_params -> float option -> unit Lwt.tval get_exn : sp:server_params -> exn listval get_previous_extension_error_code : sp:server_params -> intval get_tmp_filename : Ocsigen_extensions.file_info -> stringval get_filesize : Ocsigen_extensions.file_info -> int64val get_original_filename : Ocsigen_extensions.file_info -> stringval get_config : unit -> Simplexmlparser.xml list<site> and </site>).
Warning: You must call that function during the initialisation of
your module (not during a Lwt thread or a service).
If you use that function after,
you must give the ~sp parameter, otherwise it will raise the exception
Eliom_common.Eliom_function_forbidden_outside_site_loading.
val get_site_dir : sp:server_params -> Ocsigen_extensions.url_pathval get_config_file_charset : sp:server_params -> stringtype 'a volatile_table
val create_volatile_table : ?sp:server_params -> unit -> 'a volatile_table
Warning: If you use that function after the initialization phase,
you must give the ~sp parameter, otherwise it will raise the exception
Eliom_common.Eliom_function_forbidden_outside_site_loading.
val get_volatile_session_data : ?session_name:string ->
?secure:bool ->
table:'a volatile_table ->
sp:server_params -> unit -> 'a session_dataval set_volatile_session_data : ?session_name:string ->
?secure:bool ->
table:'a volatile_table ->
sp:server_params -> 'a -> unitval remove_volatile_session_data : ?session_name:string ->
?secure:bool ->
table:'a volatile_table ->
sp:server_params -> unit -> unittype 'a persistent_table
val create_persistent_table : string -> 'a persistent_tableOcsipersist.val get_persistent_session_data : ?session_name:string ->
?secure:bool ->
table:'a persistent_table ->
sp:server_params ->
unit -> 'a session_data Lwt.tval set_persistent_session_data : ?session_name:string ->
?secure:bool ->
table:'a persistent_table ->
sp:server_params -> 'a -> unit Lwt.tval remove_persistent_session_data : ?session_name:string ->
?secure:bool ->
table:'a persistent_table ->
sp:server_params -> unit -> unit Lwt.tval close_session : ?close_group:bool ->
?session_name:string ->
?secure:bool -> sp:server_params -> unit -> unit Lwt.t
Shortcut for Eliom_sessions.close_volatile_data_session followed by
Eliom_sessions.close_service_session and
Eliom_sessions.close_persistent_data_session.
By default will close both secure and unsecure sessions, but
if ~secure is present.
val close_volatile_session : ?close_group:bool ->
?session_name:string ->
?secure:bool -> sp:server_params -> unit -> unit
Shortcut for Eliom_sessions.close_volatile_data_session followed by
Eliom_sessions.close_service_session.
val close_persistent_data_session : ?close_group:bool ->
?session_name:string ->
?secure:bool -> sp:server_params -> unit -> unit Lwt.tval close_volatile_data_session : ?close_group:bool ->
?session_name:string ->
?secure:bool -> sp:server_params -> unit -> unitval close_service_session : ?close_group:bool ->
?session_name:string ->
?secure:bool -> sp:server_params -> unit -> unitval close_all_sessions : ?close_group:bool ->
?session_name:string ->
?sp:server_params -> unit -> unit Lwt.t?session_name (session name) is not present,
the session with default name is closed.
Warning: If you use this function after the initialisation phase,
you must give the ~sp parameter, otherwise it will raise the
exception Eliom_common.Eliom_function_forbidden_outside_site_loading.
val close_all_volatile_sessions : ?close_group:bool ->
?session_name:string ->
?sp:server_params -> unit -> unit Lwt.t?session_name (session name) is not present,
the session with default name is closed.
Warning: If you use this function after the initialisation phase,
you must give the ~sp parameter, otherwise it will raise the
exception Eliom_common.Eliom_function_forbidden_outside_site_loading.
val close_all_persistent_data_sessions : ?close_group:bool ->
?session_name:string ->
?sp:server_params -> unit -> unit Lwt.t?session_name (session name) is not present,
the session with default name is closed.
Warning: If you use this function after the initialisation phase,
you must give the ~sp parameter, otherwise it will raise the
exception Eliom_common.Eliom_function_forbidden_outside_site_loading.
val close_all_service_sessions : ?close_group:bool ->
?session_name:string ->
?sp:server_params -> unit -> unit Lwt.t?session_name (session name) is not present,
the session with default name is closed.
Warning: If you use this function after the initialisation phase,
you must give the ~sp parameter, otherwise it will raise the
exception Eliom_common.Eliom_function_forbidden_outside_site_loading.
val close_all_volatile_data_sessions : ?close_group:bool ->
?session_name:string ->
?sp:server_params -> unit -> unit Lwt.t?session_name (session name) is not present,
the session with default name is closed.
Warning: If you use this function after the initialisation phase,
you must give the ~sp parameter, otherwise it will raise the
exception Eliom_common.Eliom_function_forbidden_outside_site_loading.
module Session_admin:sig..end
val get_get_params : sp:server_params -> (string * string) listval get_all_current_get_params : sp:server_params -> (string * string) listval get_initial_get_params : sp:server_params -> (string * string) listval get_other_get_params : sp:server_params -> (string * string) listval get_post_params : sp:server_params -> (string * string) list Lwt.tval get_all_post_params : sp:server_params -> (string * string) listval get_default_service_session_timeout : unit -> float optionNone = no timeout.val get_default_volatile_data_session_timeout : unit -> float optionNone = no timeout.val set_default_volatile_session_timeout : float option -> unitNone = no timeout.val set_default_service_session_timeout : float option -> unitNone = no timeout.val set_default_volatile_data_session_timeout : float option -> unitNone = no timeout.val get_default_persistent_data_session_timeout : unit -> float optionNone = no timeout.val set_default_persistent_data_session_timeout : float option -> unitNone = no timeout.val get_ri : sp:server_params -> Ocsigen_extensions.request_infoval get_session_name : sp:server_params -> string optionNone if it is not a session service)val get_persistent_data_session_cookie : ?session_name:string ->
?secure:bool ->
sp:server_params -> unit -> string option Lwt.tNone is no session is active.val get_service_session_cookie : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> string optionNone is no session is active.val get_volatile_data_session_cookie : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> string optionNone is no session is active.