X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fconnection.c;h=98a73e00bd7316057981bb565879e6b88f44cd23;hb=4703387ffcdb5ec354a5d4a675f926ffaadf615a;hp=7483118f4aaa09bc30815b768be8d1ee148f8ee4;hpb=1c46d5e50ea73b0c0dc00bf745921ab2236b3a80;p=pazpar2-moved-to-github.git diff --git a/src/connection.c b/src/connection.c index 7483118..98a73e0 100644 --- a/src/connection.c +++ b/src/connection.c @@ -144,6 +144,7 @@ static struct connection *connection_create(struct client *cl, iochan_man_t iochan_man) { struct connection *co; + int ret; co = xmalloc(sizeof(*co)); @@ -159,9 +160,13 @@ static struct connection *connection_create(struct client *cl, co->operation_timeout = operation_timeout; co->session_timeout = session_timeout; - connection_connect(co, iochan_man); - + ret = connection_connect(co, iochan_man); connection_use(1); + if (ret) + { /* error */ + connection_destroy(co); + co = 0; + } return co; } @@ -241,10 +246,7 @@ static void non_block_events(struct connection *co) { struct client *cl = co->client; if (cl) - { - client_check_preferred_watch(cl); client_got_records(cl); - } } } @@ -450,6 +452,8 @@ int client_prep_connection(struct client *cl, client_get_id(cl), url); co = client_get_connection(cl); + if (co) + return 2; if (!co) { co = connection_create(cl, url, zproxy,