+ if (m_p->m_stop_signo == SIGTERM)
+ {
+ yaz_log(YLOG_LOG, "metaproxy received SIGTERM");
+ if (m_p->az)
+ {
+ size_t i;
+ for (i = 0; i < m_p->m_ports.size(); i++)
+ {
+ m_p->pdu[i]->shutdown();
+ m_p->az[i]->server("");
+ }
+ yaz_daemon_stop();
+ }
+ break; /* stop right away */
+ }
+#ifndef WIN32
+ if (m_p->m_stop_signo == SIGUSR1)
+ { /* just stop listeners and cont till all sessions are done*/
+ yaz_log(YLOG_LOG, "metaproxy received SIGUSR1");
+ m_p->m_stop_signo = 0;
+ if (m_p->az)
+ {
+ size_t i;
+ for (i = 0; i < m_p->m_ports.size(); i++)
+ m_p->az[i]->server("");
+ yaz_daemon_stop();
+ }
+ }
+#endif