X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=src%2Fsession.c;h=39dfb907fa2ace95b8cc8aaaba8356362f9fc943;hb=1c46d5e50ea73b0c0dc00bf745921ab2236b3a80;hp=384038d8f6086c87726708212569523c56195f76;hpb=2c9d7370a80943384fa385a8e78ccfad274ba1c7;p=pazpar2-moved-to-github.git diff --git a/src/session.c b/src/session.c index 384038d..39dfb90 100644 --- a/src/session.c +++ b/src/session.c @@ -726,6 +726,33 @@ void session_sort(struct session *se, struct reclist_sortparms *sp, } } +void session_stop(struct session *se) +{ + struct client_list *l; + session_enter(se, "session_stop1"); + if (se->clients_starting) + { + session_leave(se, "session_stop1"); + return; + } + se->clients_starting = 1; + session_leave(se, "session_stop1"); + + session_alert_watch(se, SESSION_WATCH_SHOW); + session_alert_watch(se, SESSION_WATCH_BYTARGET); + session_alert_watch(se, SESSION_WATCH_TERMLIST); + session_alert_watch(se, SESSION_WATCH_SHOW_PREF); + + for (l = se->clients_active; l; l = l->next) + { + struct client *cl = l->client; + client_stop(cl); + } + session_enter(se, "session_stop2"); + se->clients_starting = 0; + session_leave(se, "session_stop2"); +} + enum pazpar2_error_code session_search(struct session *se, const char *query, const char *startrecs,