Increase statserv GFS string buffers to 1024
authorAdam Dickmeiss <adam@indexdata.dk>
Tue, 1 Oct 2013 11:06:04 +0000 (13:06 +0200)
committerAdam Dickmeiss <adam@indexdata.dk>
Tue, 1 Oct 2013 11:06:04 +0000 (13:06 +0200)
Also remove default_listen that is of no use to backend
implementations.

include/yaz/backend.h
src/statserv.c

index 8ae3f3f..c3d9da4 100644 (file)
@@ -324,25 +324,26 @@ typedef struct bend_initresult
     void *handle;              /* private handle to the backend module */
 } bend_initresult;
 
+#define BEND_NAME_MAX 1024
+
 /** \brief control block for server */
 typedef struct statserv_options_block
 {
     int dynamic;                  /**< fork on incoming requests */
     int threads;                  /**< use threads */
     int one_shot;                 /**< one session then exit(1) */
-    char apdufile[ODR_MAXNAME+1]; /**< file for pretty-printed PDUs */
-    char logfile[ODR_MAXNAME+1];  /**< file for diagnostic output */
-    char default_listen[1024];    /**< 0 == no default listen */
+    char apdufile[BEND_NAME_MAX]; /**< file for pretty-printed PDUs */
+    char logfile[BEND_NAME_MAX];  /**< file for diagnostic output */
     enum oid_proto default_proto; /**< PROTO_SR or PROTO_Z3950 */
     int idle_timeout;             /**< how many minutes to wait before closing */
     int maxrecordsize;            /**< maximum value for negotiation */
-    char configname[ODR_MAXNAME+1]; /**< given to the backend in bend_init */
-    char setuid[ODR_MAXNAME+1];     /**< setuid to this user after binding */
+    char configname[BEND_NAME_MAX]; /**< given to the backend in bend_init */
+    char setuid[BEND_NAME_MAX];   /**< setuid to this user after binding */
     void (*bend_start)(struct statserv_options_block *p);
     void (*bend_stop)(struct statserv_options_block *p);
     int (*options_func)(int argc, char **argv);
     int (*check_ip)(void *cd, const char *addr, int len, int type);
-    char daemon_name[128];
+    char daemon_name[BEND_NAME_MAX];
     int inetd;                    /**< Do we use the inet deamon or not */
 
     void *handle;                 /**< Handle */
@@ -351,17 +352,17 @@ typedef struct statserv_options_block
 #ifdef WIN32
     /* We only have these members for the windows version */
     /* They seemed a bit large to have them there in general */
-    char service_name[128];         /**< NT Service Name */
-    char app_name[128];             /**< Application Name */
-    char service_dependencies[128]; /**< The services we are dependent on */
-    char service_display_name[128]; /**< The service display name */
+    char service_name[BEND_NAME_MAX];/**< NT Service Name */
+    char app_name[BEND_NAME_MAX];  /**< Application Name */
+    char service_dependencies[BEND_NAME_MAX];
+    char service_display_name[BEND_NAME_MAX];
 #endif /* WIN32 */
     struct bend_soap_handler *soap_handlers;
-    char pid_fname[128];            /**< pid fname */
-    int background;                 /**< auto daemon */
-    char cert_fname[128];           /**< SSL certificate fname */
-    char xml_config[128];           /**< XML config filename */
-    int keepalive;                  /**< keep alive if HTTP 1.1 (default: 1) */
+    char pid_fname[BEND_NAME_MAX]; /**< pid fname */
+    int background;                /**< auto daemon */
+    char cert_fname[BEND_NAME_MAX];/**< SSL certificate fname */
+    char xml_config[BEND_NAME_MAX];/**< XML config filename */
+    int keepalive;                 /**< keep alive if HTTP 1.1 (default: 1) */
 } statserv_options_block;
 
 YAZ_EXPORT int statserv_main(
index f84c345..4345fbe 100644 (file)
@@ -96,7 +96,6 @@ statserv_options_block control_block = {
     0,                          /* one shot (single session) */
     "",                         /* no PDUs */
     "",                         /* diagnostic output to stderr */
-    "tcp:@:9999",               /* default listener port */
     PROTO_Z3950,                /* default application protocol */
     900,                        /* idle timeout (seconds) */
     64*1024*1024,               /* maximum PDU size (approx.) to allow */
@@ -1253,8 +1252,8 @@ static int statserv_sc_main(yaz_sc_t s, int argc, char **argv)
     {
         xml_config_add_listeners();
 
-        if (!pListener && *control_block.default_listen)
-            add_listener(control_block.default_listen, 0);
+        if (!pListener)
+            add_listener("tcp:@:9999", 0);
 
 #ifndef WIN32
         if (control_block.dynamic)
@@ -1279,8 +1278,8 @@ static int statserv_sc_main(yaz_sc_t s, int argc, char **argv)
 
 static void option_copy(char *dst, const char *src)
 {
-    strncpy(dst, src ? src : "", 127);
-    dst[127] = '\0';
+    strncpy(dst, src ? src : "", BEND_NAME_MAX-1);
+    dst[BEND_NAME_MAX-1] = '\0';
 }
 
 int check_options(int argc, char **argv)