Re: [PATCH] ident.c: add support for IPv6
From: Eric Sunshine <hidden>
Date: 2016-06-15 23:07:06
On Fri, Oct 30, 2015 at 1:26 PM, Torsten Bögershausen [off-list ref] wrote:
On 2015-10-30 15.48, Elia Pinto wrote:quoted
Add IPv6 support by implementing name resolution with the --- +#ifndef NO_IPV6 + +static void add_domainname(struct strbuf *out) +{ + char buf[1024]; + struct addrinfo hints, *ai; + int gai;The scope of these variables can be narrowed, by moving them into the "{" block, where they are needed. (Before the memset())quoted
+ + if (gethostname(buf, sizeof(buf))) { + warning("cannot get host name: %s", strerror(errno)); + strbuf_addstr(out, "(none)"); + return; + } + if (strchr(buf, '.')) + strbuf_addstr(out, buf); + else {Many ' ' between else and '{', one should be enoughquoted
+ memset (&hints, '\0', sizeof (hints)); + hints.ai_flags = AI_CANONNAME; + if (!(gai = getaddrinfo(buf, NULL, &hints, &ai)) && ai && strchr(ai->ai_canonname, '.')) {
Why is 'gai' needed and assigned? It's value is never consulted thereafter.
quoted
+ strbuf_addstr(out, ai->ai_canonname); + freeaddrinfo(ai);
Also, aren't you leaking 'ai' when 'ai_canonname' doesn't contain a '.'?
quoted
+ } + elseColud be written in one line as "} else"quoted
+ strbuf_addf(out, "%s.(none)", buf); + } +} +#else /* NO_IPV6 */