From: Adam Dickmeiss Date: Fri, 15 Sep 2006 09:06:28 +0000 (+0000) Subject: Fixed bug #660: addrinfo not handled correctly in tcpip.c. X-Git-Tag: YAZ.2.1.30~2 X-Git-Url: http://lists.indexdata.dk/?a=commitdiff_plain;h=2c418266c8feeeb47453d38c8320e6c83d75fd74;p=yaz-moved-to-github.git Fixed bug #660: addrinfo not handled correctly in tcpip.c. --- diff --git a/src/tcpip.c b/src/tcpip.c index 6c674d4..45b2ad1 100644 --- a/src/tcpip.c +++ b/src/tcpip.c @@ -2,7 +2,7 @@ * Copyright (C) 1995-2006, Index Data ApS * See the file LICENSE for details. * - * $Id: tcpip.c,v 1.29 2006-09-06 16:03:52 adam Exp $ + * $Id: tcpip.c,v 1.30 2006-09-15 09:06:28 adam Exp $ */ /** * \file tcpip.c @@ -322,10 +322,15 @@ void *tcpip_straddr(COMSTACK h, const char *str) sp->ai = tcpip_getaddrinfo(str, port); if (sp->ai && h->state == CS_ST_UNBND) { - int s; + int s = -1; struct addrinfo *ai = sp->ai; - s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); - if (s < 0) + for (; ai; ai = ai->ai_next) + { + s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); + if (s != -1) + break; + } + if (s == -1) return 0; h->iofile = s;