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 -> string
val get_full_url : sp:server_params -> string
val get_remote_ip : sp:server_params -> string
val get_remote_inet_addr : sp:server_params -> Unix.inet_addr
Unix.inet_addr
(defined in OCaml's standard library).val get_current_full_path_string : sp:server_params -> string
val get_current_full_path : sp:server_params -> Ocsigen_extensions.url_path
Ocsigen_extensions.url_path
val get_current_sub_path_string : sp:server_params -> string
val get_current_sub_path : sp:server_params -> Ocsigen_extensions.url_path
Ocsigen_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 option
val 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 -> int
val get_ssl : sp:server_params -> bool
val get_suffix : sp:server_params -> Ocsigen_extensions.url_path
val get_cookies : sp:server_params -> string Ocsigen_http_frame.Cookievalues.t
None
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 -> unit
val set_global_service_session_timeout : ?session_name:string ->
?sp:server_params ->
?recompute_expdates:bool -> float option -> unit
val set_global_volatile_data_session_timeout : ?session_name:string ->
?sp:server_params ->
?recompute_expdates:bool -> float option -> unit
val set_global_persistent_data_session_timeout : ?session_name:string ->
?sp:server_params ->
?recompute_expdates:bool -> float option -> unit
val get_global_service_session_timeout : ?session_name:string ->
?sp:server_params -> unit -> float option
val get_global_volatile_data_session_timeout : ?session_name:string ->
?sp:server_params -> unit -> float option
val get_global_persistent_data_session_timeout : ?session_name:string ->
?sp:server_params -> unit -> float option
val set_service_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> float option -> unit
None
= no timeoutval unset_service_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> unit
val get_service_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> float option
None
= no timeoutval set_volatile_data_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> float option -> unit
None
= no timeoutval unset_volatile_data_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> unit
val get_volatile_data_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> float option
None
= no timeoutval set_volatile_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> float option -> unit
None
= no timeoutval unset_volatile_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> unit
val set_persistent_data_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> float option -> unit Lwt.t
None
= no timeoutval unset_persistent_data_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> unit Lwt.t
val get_persistent_data_session_timeout : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> float option Lwt.t
None
= 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 -> unit
val get_service_session_group : ?session_name:string ->
?secure:bool ->
sp:server_params -> unit -> string session_data
None
.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 -> unit
val get_volatile_data_session_group : ?session_name:string ->
?secure:bool ->
sp:server_params -> unit -> string session_data
None
.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.t
val get_persistent_data_session_group : ?session_name:string ->
?secure:bool ->
sp:server_params ->
unit -> string session_data Lwt.t
None
.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 -> unit
val set_default_max_volatile_data_sessions_per_group : sp:server_params -> int option -> unit
val set_default_max_persistent_data_sessions_per_group : sp:server_params -> int option -> unit
None
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 -> unit
val set_service_session_cookie_exp_date : ?session_name:string ->
?secure:bool -> sp:server_params -> float option -> unit
val set_volatile_data_session_cookie_exp_date : ?session_name:string ->
?secure:bool -> sp:server_params -> float option -> unit
val set_persistent_data_session_cookie_exp_date : ?session_name:string ->
?secure:bool -> sp:server_params -> float option -> unit Lwt.t
val get_exn : sp:server_params -> exn list
val get_previous_extension_error_code : sp:server_params -> int
val get_tmp_filename : Ocsigen_extensions.file_info -> string
val get_filesize : Ocsigen_extensions.file_info -> int64
val get_original_filename : Ocsigen_extensions.file_info -> string
val 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_path
val get_config_file_charset : sp:server_params -> string
type '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_data
val set_volatile_session_data : ?session_name:string ->
?secure:bool ->
table:'a volatile_table ->
sp:server_params -> 'a -> unit
val remove_volatile_session_data : ?session_name:string ->
?secure:bool ->
table:'a volatile_table ->
sp:server_params -> unit -> unit
type 'a
persistent_table
val create_persistent_table : string -> 'a persistent_table
Ocsipersist
.val get_persistent_session_data : ?session_name:string ->
?secure:bool ->
table:'a persistent_table ->
sp:server_params ->
unit -> 'a session_data Lwt.t
val set_persistent_session_data : ?session_name:string ->
?secure:bool ->
table:'a persistent_table ->
sp:server_params -> 'a -> unit Lwt.t
val remove_persistent_session_data : ?session_name:string ->
?secure:bool ->
table:'a persistent_table ->
sp:server_params -> unit -> unit Lwt.t
val 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.t
val close_volatile_data_session : ?close_group:bool ->
?session_name:string ->
?secure:bool -> sp:server_params -> unit -> unit
val close_service_session : ?close_group:bool ->
?session_name:string ->
?secure:bool -> sp:server_params -> unit -> unit
val 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) list
val get_all_current_get_params : sp:server_params -> (string * string) list
val get_initial_get_params : sp:server_params -> (string * string) list
val get_other_get_params : sp:server_params -> (string * string) list
val get_post_params : sp:server_params -> (string * string) list Lwt.t
val get_all_post_params : sp:server_params -> (string * string) list
val get_default_service_session_timeout : unit -> float option
None
= no timeout.val get_default_volatile_data_session_timeout : unit -> float option
None
= no timeout.val set_default_volatile_session_timeout : float option -> unit
None
= no timeout.val set_default_service_session_timeout : float option -> unit
None
= no timeout.val set_default_volatile_data_session_timeout : float option -> unit
None
= no timeout.val get_default_persistent_data_session_timeout : unit -> float option
None
= no timeout.val set_default_persistent_data_session_timeout : float option -> unit
None
= no timeout.val get_ri : sp:server_params -> Ocsigen_extensions.request_info
val get_session_name : sp:server_params -> string option
None
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.t
None
is no session is active.val get_service_session_cookie : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> string option
None
is no session is active.val get_volatile_data_session_cookie : ?session_name:string ->
?secure:bool -> sp:server_params -> unit -> string option
None
is no session is active.