X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=src%2Fconnection.c;h=f9b0e0b8fcd8ecb80bccf8fab3c3513a149a244b;hb=de185af5ab36376968640dea3b64ff1c8aee8cec;hp=f205252931db0b86585f9a16a96a1e785f7e32f0;hpb=f426057b0d32e25f0799372dfd4ea382591aa917;p=pazpar2-moved-to-github.git diff --git a/src/connection.c b/src/connection.c index f205252..f9b0e0b 100644 --- a/src/connection.c +++ b/src/connection.c @@ -274,6 +274,7 @@ void connect_resolver_host(struct host *host, iochan_man_t iochan_man) { struct connection *con; +start: yaz_mutex_enter(host->mutex); con = host->connections; while (con) @@ -284,22 +285,22 @@ void connect_resolver_host(struct host *host, iochan_man_t iochan_man) { yaz_mutex_leave(host->mutex); connection_destroy(con); + goto start; /* start all over .. at some point it will be NULL */ - con = host->connections; } else if (!con->client) { yaz_mutex_leave(host->mutex); connection_destroy(con); /* start all over .. at some point it will be NULL */ - con = host->connections; + goto start; } else { yaz_mutex_leave(host->mutex); connection_connect(con, iochan_man); client_start_search(con->client); - con = host->connections; + goto start; } } else