X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fpazpar2.c;h=56d25990b5f5cdcfdf626ac9861983a4d90a2fc4;hb=5b4ea0cf66dd82c871ed7d69a5801d78789087b2;hp=f982a03de375295647a06aea851ea9cefabfdaa4;hpb=de634461a0500801cd71d6a42aff032fa083a127;p=pazpar2-moved-to-github.git diff --git a/src/pazpar2.c b/src/pazpar2.c index f982a03..56d2599 100644 --- a/src/pazpar2.c +++ b/src/pazpar2.c @@ -35,15 +35,13 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include static char *path_override = 0; +static struct conf_config *sc_stop_config = 0; void child_handler(void *data) { struct conf_config *config = (struct conf_config *) data; config_read_settings(config, path_override); - global_parameters.odr_in = odr_createmem(ODR_DECODE); - global_parameters.odr_out = odr_createmem(ODR_ENCODE); - pazpar2_event_loop(); } @@ -95,7 +93,7 @@ static int sc_main( int session_timeout = 60; const char *listener_override = 0; const char *proxy_override = 0; - struct conf_config *config; + struct conf_config *config = 0; #ifndef WIN32 if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) @@ -118,9 +116,10 @@ static int sc_main( daemon = 1; break; case 'f': - config = read_config(arg); + config = config_create(arg); if (!config) - exit(1); + return 1; + sc_stop_config = config; break; case 'h': listener_override = arg; @@ -187,7 +186,7 @@ static int sc_main( yaz_log(YLOG_FATAL, "Load config with -f"); return 1; } - ret = start_http_listener(config, listener_override, proxy_override); + ret = config_start_listeners(config, listener_override, proxy_override); if (ret) return ret; /* error starting http listener */ @@ -204,7 +203,7 @@ static int sc_main( static void sc_stop(yaz_sc_t s) { - http_close_server(); + config_stop_listeners(sc_stop_config); } int main(int argc, char **argv)