Avoid session lock while client search is initiated
[pazpar2-moved-to-github.git] / src / http_command.c
index 587c908..7b296c7 100644 (file)
@@ -126,7 +126,7 @@ void http_sessions_destroy(http_sessions_t hs)
         {
             struct http_session *s_next = s->next;
             iochan_destroy(s->timeout_iochan);
-            destroy_session(s->psession);
+            session_destroy(s->psession);
             nmem_destroy(s->nmem);
             s = s_next;
         }
@@ -199,7 +199,7 @@ void http_session_destroy(struct http_session *s)
     {   /* destroying for real */
         yaz_log(http_sessions->log_level, "%p HTTP Session %u destroyed", s, s->session_id);
         iochan_destroy(s->timeout_iochan);
-        destroy_session(s->psession);
+        session_destroy(s->psession);
         http_session_use(-1);
         nmem_destroy(s->nmem);
     }
@@ -642,8 +642,11 @@ static void cmd_bytarget(struct http_channel *c)
             wrbuf_puts(c->wrbuf, ht[i].settings_xml);
             wrbuf_puts(c->wrbuf, "</settings>\n");
         }
-        if (ht[i].suggestions_xml)
+        if (ht[i].suggestions_xml && ht[i].suggestions_xml[0]) {
+            wrbuf_puts(c->wrbuf, "<suggestions>");
             wrbuf_puts(c->wrbuf, ht[i].suggestions_xml);
+            wrbuf_puts(c->wrbuf, "</suggestions>");
+        }
         wrbuf_puts(c->wrbuf, "</target>");
     }
     response_close(c, "bytarget");