@@ -120,7 +120,9 @@ let set_warn_connection_change, warn_connection_changed =
120120 let r = ref (fun _ -> () ) in
121121 (fun f -> r := f), fun state -> ! r state; Lwt. return_unit
122122
123- let disconnect_all ?userid ?(user_indep = true ) () =
123+ let disconnect_all ?sitedata ?userid ?(user_indep = true ) ?(with_restart = true )
124+ ()
125+ =
124126 let close_my_sessions = userid = None in
125127 let % lwt () =
126128 if close_my_sessions then pre_close_session_action () else Lwt. return_unit
@@ -163,7 +165,7 @@ let disconnect_all ?userid ?(user_indep = true) () =
163165 let % lwt acc = acc in
164166 Lwt. return (s :: acc))
165167 Lwt. return_nil
166- (Eliom_state.Ext. fold_volatile_sub_states
168+ (Eliom_state.Ext. fold_volatile_sub_states ?sitedata
167169 ~state:
168170 (Eliom_state.Ext. volatile_data_group_state
169171 ~scope: Eliom_common. default_group_scope group_name)
@@ -174,8 +176,8 @@ let disconnect_all ?userid ?(user_indep = true) () =
174176 let % lwt () =
175177 Lwt_list. iter_s
176178 (fun state ->
177- Eliom_state.Ext. iter_sub_states ~state @@ fun state ->
178- Eliom_state.Ext. discard_state ~state )
179+ Eliom_state.Ext. iter_sub_states ?sitedata ~state @@ fun state ->
180+ Eliom_state.Ext. discard_state ?sitedata ~state () )
179181 states
180182 in
181183 let % lwt () =
@@ -187,19 +189,22 @@ let disconnect_all ?userid ?(user_indep = true) () =
187189 let % lwt () =
188190 Lwt_list. iter_s
189191 (fun state ->
190- Eliom_state.Ext. iter_sub_states ~state warn_connection_changed)
192+ Eliom_state.Ext. iter_sub_states ?sitedata ~state
193+ warn_connection_changed)
191194 ui_states
192195 in
193196 (* Closing user_indep states, if requested: *)
194197 let % lwt () =
195198 if user_indep
196199 then
197200 Lwt_list. iter_s
198- (fun state -> Eliom_state.Ext. discard_state ~state )
201+ (fun state -> Eliom_state.Ext. discard_state ?sitedata ~state () )
199202 ui_states
200203 else Lwt. return_unit
201204 in
202- let _ = [% client (Os_handlers. restart () : unit )] in
205+ let () =
206+ if with_restart then ignore [% client (Os_handlers. restart () : unit )]
207+ in
203208 Lwt. return_unit
204209
205210let check_allow_deny userid allow deny =
0 commit comments