Add <fulltexturl> to sample input record.
[pazpar2-moved-to-github.git] / src / connection.c
index 1c7d467..e441514 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of Pazpar2.
-   Copyright (C) 2006-2011 Index Data
+   Copyright (C) 2006-2012 Index Data
 
 Pazpar2 is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free
@@ -224,7 +224,7 @@ static void non_block_events(struct connection *co)
                 {
                     yaz_log(YLOG_LOG, "Error %s from %s",
                             error, client_get_id(cl));
-                    client_set_diagnostic(cl, err);
+                    client_set_diagnostic(cl, err, addinfo);
                     client_set_state(cl, Client_Error);
                 }
                 else
@@ -261,6 +261,7 @@ static void non_block_events(struct connection *co)
         default:
             yaz_log(YLOG_LOG, "Unhandled event (%d) from %s",
                     ev, client_get_id(cl));
+            break;
         }
     }
     if (got_records)
@@ -287,7 +288,7 @@ void connection_continue(struct connection *co)
             {
                 yaz_log(YLOG_LOG, "Error %s from %s",
                         error, client_get_id(co->client));
-                client_set_diagnostic(co->client, err);
+                client_set_diagnostic(co->client, err, addinfo);
                 client_set_state_nb(co->client, Client_Error);
             }
         }
@@ -524,14 +525,13 @@ int client_prep_connection(struct client *cl,
     if (co)
     {
         assert(co->host);
-        if (co->host == host)
-            ;  /* reusing connection. It's ours! */
-        else 
+        if (co->host == host && client_get_state(cl) == Client_Idle)
         {
-            client_incref(cl);
-            connection_release(co);
-            co = 0;
+            return 2;
         }
+        client_incref(cl);
+        connection_release(co);
+        co = 0;
     }
     if (!co)
     {