Changed type to avoid warning
[yaz-moved-to-github.git] / src / seshigh.c
index b2dcd41..5528325 100644 (file)
@@ -398,6 +398,7 @@ void ir_session(IOCHAN h, int event)
             yaz_log(YLOG_WARN, "accept failed");
             destroy_association(assoc);
             iochan_destroy(h);
+            return;
         }
         iochan_clearflag(h, EVENT_OUTPUT);
         if (conn->io_pending) 
@@ -1121,9 +1122,7 @@ static void srw_bend_search(association *assoc, request *req,
             querystr = srw_req->query.pqf;
             break;
         }
-        wrbuf_printf(wr, "SRWSearch ");
-        wrbuf_printf(wr, srw_req->database);
-        wrbuf_printf(wr, " ");
+        wrbuf_printf(wr, "SRWSearch %s ", srw_req->database);
         if (srw_res->num_diagnostics)
             wrbuf_printf(wr, "ERROR %s", srw_res->diagnostics[0].uri);
         else if (*http_code != 200)
@@ -1393,9 +1392,7 @@ static void srw_bend_scan(association *assoc, request *req,
             querystr = "";
         }
 
-        wrbuf_printf(wr, "SRWScan ");
-        wrbuf_printf(wr, srw_req->database);
-        wrbuf_printf(wr, " ");
+        wrbuf_printf(wr, "SRWScan %s ", srw_req->database);
 
         if (srw_res->num_diagnostics)
             wrbuf_printf(wr, "ERROR %s - ", srw_res->diagnostics[0].uri);
@@ -1660,7 +1657,7 @@ static int check_path(const char *path)
     return 1;
 }
 
-static char *read_file(const char *fname, ODR o, int *sz)
+static char *read_file(const char *fname, ODR o, size_t *sz)
 {
     char *buf;
     FILE *inf = fopen(fname, "rb");
@@ -1671,7 +1668,8 @@ static char *read_file(const char *fname, ODR o, int *sz)
     *sz = ftell(inf);
     rewind(inf);
     buf = (char *) odr_malloc(o, *sz);
-    fread(buf, 1, *sz, inf);
+    if (fread(buf, 1, *sz, inf) != *sz)
+        yaz_log(YLOG_WARN|YLOG_ERRNO, "short read %s", fname);
     fclose(inf);
     return buf;     
 }
@@ -1712,7 +1710,7 @@ static void process_http_request(association *assoc, request *req)
         }
         else
         {
-            int content_size = 0;
+            size_t content_size = 0;
             char *content_buf = read_file(hreq->path+1, o, &content_size);
             if (!content_buf)
             {
@@ -2166,7 +2164,6 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb)
     Z_APDU *apdu = zget_APDU(assoc->encode, Z_APDU_initResponse);
     Z_InitResponse *resp = apdu->u.initResponse;
     bend_initresult *binitres;
-    char *version;
     char options[140];
     statserv_options_block *cb = 0;  /* by default no control for backend */
 
@@ -2353,14 +2350,6 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb)
                 assoc->init->implementation_name,
                 odr_prepend(assoc->encode, "GFS", resp->implementationName));
 
-    version = odr_strdup(assoc->encode, "$Revision: 1.128 $");
-    if (strlen(version) > 10)   /* check for unexpanded CVS strings */
-        version[strlen(version)-2] = '\0';
-    resp->implementationVersion = odr_prepend(assoc->encode,
-                assoc->init->implementation_version,
-                odr_prepend(assoc->encode, &version[11],
-                            resp->implementationVersion));
-
     if (binitres->errcode)
     {
         assoc->state = ASSOC_DEAD;
@@ -2836,7 +2825,7 @@ static Z_APDU *response_searchRequest(association *assoc, request *reqb,
         for (i = 0 ; i < req->num_databaseNames; i++){
             if (i)
                 wrbuf_printf(wr, "+");
-            wrbuf_printf(wr, req->databaseNames[i]);
+            wrbuf_puts(wr, req->databaseNames[i]);
         }
         wrbuf_printf(wr, " ");
         
@@ -3135,7 +3124,7 @@ static Z_APDU *process_scanRequest(association *assoc, request *reqb, int *fd)
         {
             if (i)
                 wrbuf_printf(wr, "+");
-            wrbuf_printf(wr, req->databaseNames[i]);
+            wrbuf_puts(wr, req->databaseNames[i]);
         }
 
         wrbuf_printf(wr, " ");
@@ -3232,7 +3221,7 @@ static Z_APDU *process_sortRequest(association *assoc, request *reqb,
         {
             if (i)
                 wrbuf_printf(wr, "+");
-            wrbuf_printf(wr, req->inputResultSetNames[i]);
+            wrbuf_puts(wr, req->inputResultSetNames[i]);
         }
         wrbuf_printf(wr, ")->%s ",req->sortedResultSetName);