X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fpazpar2.c;h=d0ff5702cedda4ea0bc96bb1fe78ffeae22bee58;hb=2fdf141842b8984d0b118623e75d0b243d02f5de;hp=e3ab4d7ed0708c4f572468d4e131c37e8b255d7f;hpb=fefe2e7a551449db560de9c59c29ce16dff22e86;p=pazpar2-moved-to-github.git diff --git a/src/pazpar2.c b/src/pazpar2.c index e3ab4d7..d0ff570 100644 --- a/src/pazpar2.c +++ b/src/pazpar2.c @@ -31,7 +31,14 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include "database.h" #include "settings.h" #include + +#if YAZ_VERSIONL >= 0x03001D +/* Windows service is available in YAZ 3.0.29 or later */ +#define USE_SC 1 #include +#else +#define USE_SC 0 +#endif void child_handler(void *data) { @@ -82,7 +89,11 @@ static int tcpip_init (void) #endif -static int sc_main(yaz_sc_t s, int argc, char **argv) +static int sc_main( +#if USE_SC + yaz_sc_t s, +#endif + int argc, char **argv) { int daemon = 0; int ret; @@ -90,10 +101,7 @@ static int sc_main(yaz_sc_t s, int argc, char **argv) char *arg; const char *pidfile = 0; const char *uid = 0; - int i; - for (i = 0; i < argc; i++) - yaz_log(YLOG_LOG, "arg%d: %s", i, argv[i]); #ifndef WIN32 if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) yaz_log(YLOG_WARN|YLOG_ERRNO, "signal"); @@ -177,7 +185,9 @@ static int sc_main(yaz_sc_t s, int argc, char **argv) if (ret) return ret; /* error starting http listener */ +#if USE_SC yaz_sc_running(s); +#endif yaz_daemon("pazpar2", (global_parameters.debug_mode ? YAZ_DAEMON_DEBUG : 0) + @@ -188,19 +198,25 @@ static int sc_main(yaz_sc_t s, int argc, char **argv) } +#if USE_SC static void sc_stop(yaz_sc_t s) { http_close_server(); } +#endif int main(int argc, char **argv) { int ret; +#if USE_SC yaz_sc_t s = yaz_sc_create("pazpar2", "Pazpar2"); ret = yaz_sc_program(s, argc, argv, sc_main, sc_stop); yaz_sc_destroy(&s); +#else + ret = sc_main(argc, argv); +#endif exit(ret); }