X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fstatserv.c;h=2789a9b3da411c88f51e3714e3f17a2a4a136096;hp=c58646fe708cb8ef1216925434a9f36e1ebdb86c;hb=dd6da3de6292dd8d087eac67c0c9a7eced8b88de;hpb=3d4e0c75cee82cc17fa5da38051b072d9bed61a7 diff --git a/src/statserv.c b/src/statserv.c index c58646f..2789a9b 100644 --- a/src/statserv.c +++ b/src/statserv.c @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2008 Index Data + * Copyright (C) 1995-2009 Index Data * See the file LICENSE for details. */ @@ -53,6 +53,7 @@ #include #include #include +#include #ifdef USE_XTIMOSI #include #endif @@ -208,6 +209,7 @@ static char *nmem_dup_xml_content(NMEM n, xmlNodePtr ptr) } #endif +#if YAZ_HAVE_XML2 static struct gfs_server * gfs_server_new(void) { struct gfs_server *n = (struct gfs_server *) @@ -222,12 +224,12 @@ static struct gfs_server * gfs_server_new(void) n->directory = 0; n->docpath = 0; n->stylesheet = 0; -#if YAZ_HAVE_XML2 n->retrieval = yaz_retrieval_create(); -#endif return n; } +#endif +#if YAZ_HAVE_XML2 static struct gfs_listen * gfs_listen_new(const char *id, const char *address) { @@ -241,6 +243,7 @@ static struct gfs_listen * gfs_listen_new(const char *id, n->address = nmem_strdup(gfs_nmem, address); return n; } +#endif static void gfs_server_chdir(struct gfs_server *gfs) { @@ -326,11 +329,11 @@ int control_association(association *assoc, const char *host, int force_open) return 1; } +#if YAZ_HAVE_XML2 static void xml_config_read(void) { struct gfs_server **gfsp = &gfs_server_list; struct gfs_listen **gfslp = &gfs_listen_list; -#if YAZ_HAVE_XML2 xmlNodePtr ptr = xml_config_get_root(); if (!ptr) @@ -475,9 +478,9 @@ static void xml_config_read(void) gfsp = &(*gfsp)->next; } } -#endif *gfsp = 0; } +#endif static void xml_config_open(void) { @@ -1182,7 +1185,11 @@ statserv_options_block *statserv_getcontrol(void) void statserv_setcontrol(statserv_options_block *block) { - chdir(gfs_root_dir); + if (gfs_root_dir[0]) + { + if (chdir(gfs_root_dir)) + yaz_log(YLOG_WARN|YLOG_ERRNO, "chdir %s", gfs_root_dir); + } #ifdef WIN32 if (init_control_tls) TlsSetValue(current_control_tls, block); @@ -1280,7 +1287,10 @@ static int statserv_sc_main(yaz_sc_t s, int argc, char **argv) close(1); close(2); open("/dev/null", O_RDWR); - dup(0); dup(0); + if (dup(0) == -1) + return 1; + if (dup(0) == -1) + return 1; } xml_config_add_listeners(); @@ -1522,6 +1532,7 @@ int statserv_main(int argc, char **argv, /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab