|
From: | Ferry Huberts |
Subject: | Re: [gpsd-dev] [PATCH v3 1/1] gps2udp: reset errno after successful getaddrinfo call |
Date: | Fri, 03 Jan 2014 16:18:42 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 |
On 03/01/14 16:00, Mike Frysinger wrote:
On Friday 03 January 2014 09:29:29 Ferry Huberts wrote:On 03/01/14 15:18, Mike Frysinger wrote:On Friday 03 January 2014 08:33:47 Ferry Huberts wrote:It may return errno==2 ("No such file or directory") when the file /etc/gai.conf is not present. The observed effect was that the port number conversion considered a perfectly valid port number as invalid.you still haven't really explained why this is the way to go. functions do not "return errno". they return real values, and any code calling those functions need to first check the return value *before* ever looking at errno.Which is exactly what happens here: the code bails out if the function call is not successful.what code is bailing where ?
please do read the code:
if ((ret = getaddrinfo(host, service, &hints, &result))) { return NL_NOHOST; }
returns from the function (with return value NL_NOHOST) when the getaddrinfo call is not successful (returns a non-zero value).
see also man getaddrinfo
The function call may set errno even though it succeeds.that is not a bug
exactly, which is why we must reset errno, because otherwise other functions are affected.
-- Ferry Huberts
[Prev in Thread] | Current Thread | [Next in Thread] |