From: Adam Dickmeiss Date: Wed, 29 Sep 2010 08:19:01 +0000 (+0200) Subject: Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/metaproxy X-Git-Tag: v1.2.3~2 X-Git-Url: http://sru.miketaylor.org.uk/?a=commitdiff_plain;h=aacd5d87a45541539c97e6b0490f303dec85e9d8;hp=72f362734caa3322e5cb48a9de43ac1e04148ec3;p=metaproxy-moved-to-github.git Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/metaproxy --- diff --git a/src/filter_backend_test.cpp b/src/filter_backend_test.cpp index d14bee2..02c447e 100644 --- a/src/filter_backend_test.cpp +++ b/src/filter_backend_test.cpp @@ -258,6 +258,9 @@ void yf::BackendTest::process(Package &package) const else break; + *resp->preferredMessageSize = *req->preferredMessageSize; + *resp->maximumRecordSize = *req->maximumRecordSize; + Session_info info; m_p->m_sessions.create(info, package.session()); } @@ -368,6 +371,12 @@ void yf::BackendTest::process(Package &package) const *resp->nextResultSetPosition = next_position; } } + else if (apdu_req->which == Z_APDU_close) + { + apdu_res = odr.create_close(apdu_req, + Z_Close_finished, 0); + package.session().close(); + } else { apdu_res = odr.create_close(apdu_req, diff --git a/src/metaproxy_prog.cpp b/src/metaproxy_prog.cpp index b598a81..fb9d1e2 100644 --- a/src/metaproxy_prog.cpp +++ b/src/metaproxy_prog.cpp @@ -56,23 +56,29 @@ static void sig_term_handler(int s) } #endif -static void handler(void *data) +static void handler_debug(void *data) { - routerp = (mp::RouterFleXML*) data; - -#if HAVE_UNISTD_H - /* make the current working process group leader */ - setpgid(0, 0); +#if HAVE_UNISTD_H process_group = getpgid(0); // save process group ID signal(SIGTERM, sig_term_handler); #endif + routerp = (mp::RouterFleXML*) data; routerp->start(); mp::Package pack; pack.router(*routerp).move(); /* should never exit */ } +static void handler_normal(void *data) +{ +#if HAVE_UNISTD_H + /* make the current working process group leader */ + setpgid(0, 0); +#endif + handler_debug(data); +} + static int sc_main( yaz_sc_t s, int argc, char **argv) @@ -199,7 +205,8 @@ static int sc_main( yaz_sc_running(s); - yaz_daemon("metaproxy", mode, handler, router, pidfile, uid); + yaz_daemon("metaproxy", mode, mode == YAZ_DAEMON_DEBUG ? + handler_debug : handler_normal, router, pidfile, uid); } catch (std::logic_error &e) { yaz_log (YLOG_FATAL,"std::logic error: %s" , e.what() );