X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=src%2Fsession.c;h=39dfb907fa2ace95b8cc8aaaba8356362f9fc943;hb=cea5d06318c86c9652cad5c4fefa39fa2e9745ac;hp=384038d8f6086c87726708212569523c56195f76;hpb=6bb268489f976ebf432cf6b907715911aa4366a3;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,