delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2014/06/23/07:42:22

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:message-id:date:from:mime-version:to:subject
:content-type; q=dns; s=default; b=m+YOGX1PIhFq8qKuBiWE1yfcMBVwf
HFlG9XvqeDGAjwr5h2jO5lfon4G4E63DQcgEQfTD7/TN9NpJhUBkw7rKbGDK9bKu
QpabUyIzlxYQDcj4ExnQVV37ElJ5SCsuZcGqLQCsTUkSr4kZah2OiKib5aLtQI/s
/OWsHaEKGT8M88=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:message-id:date:from:mime-version:to:subject
:content-type; s=default; bh=jS4XY0rfpIb0ow/O+HP7WmoDCmc=; b=wIR
pcGoyHxbpnDxAOoY0avXbmXprN8dZjeFptxi9Atw6Kb7K4CLAuD7hrxCfJPjzNs4
ZcW5vdgdBHcNLXD0AS/XRdE68fdnS3oxj/xE8AMj0FpWPM6jUwQHwevf1CCWVWSq
Cbj2ZraD0eA55Mp43S3iaNZoRJ/Rsh5xXrwymRMY=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Authentication-Results: sourceware.org; auth=none
X-Virus-Found: No
X-Spam-SWARE-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2
X-HELO: mail-we0-f181.google.com
X-Received: by 10.194.92.177 with SMTP id cn17mr14203040wjb.71.1403523681093; Mon, 23 Jun 2014 04:41:21 -0700 (PDT)
Message-ID: <53A81259.4080300@gmail.com>
Date: Mon, 23 Jun 2014 13:41:13 +0200
From: Marco Atzeri <marco DOT atzeri AT gmail DOT com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0
MIME-Version: 1.0
To: "cygwin AT cygwin DOT com" <cygwin AT cygwin DOT com>
Subject: getaddrinfo : Non-recoverable failure in name resolution
X-IsSubscribed: yes

--------------050708090609080501000206
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hi,
the attached two test programs should perform exactly the same call
to getaddrinfo for 127.0.0.1

however on 32 bit
CYGWIN_NT-6.1-WOW64 1.7.30(0.272/5/3) 2014-05-23 10:36 i686 Cygwin

  32 $ ./getaddrinfo_test-1_32
127.0.0.1 ai_addr
02 00 00 00 7f 00 00 01 00 00 00 00 00 00 00 00

  32 $ ./getaddrinfo_test-2_32
127.0.0.1 ai_addr
02 00 00 00 7f 00 00 01 00 00 00 00 00 00 00 00

while on 64 bit
CYGWIN_NT-6.1 1.7.30(0.272/5/3) 2014-05-23 10:36 x86_64 Cygwin

64 $ ./getaddrinfo_test-1_64
127.0.0.1 ai_addr
02 00 00 00 7f 00 00 01 00 00 00 00 00 00 00 00

64 $ ./getaddrinfo_test-2_64
getaddrinfo: Non-recoverable failure in name resolution


Am I missing something ?
The second way is currently used on postgresql in several places,
but it seems to fail only for "127.0.0.1"

Regards
Marco

--------------050708090609080501000206
Content-Type: text/plain; charset=windows-1252;
 name="getaddrinfo_test-1.c"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="getaddrinfo_test-1.c"


#include <sys/socket.h>
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int rc,i,l;
const char *hostname="127.0.0.1";
const char *servname="";
struct addrinfo *hintp;
/* struct addrinfo *resultp; */
struct addrinfo **result;

char *addr;

hintp=calloc(1,sizeof(struct addrinfo ));
/*
resultp=calloc(1,sizeof(struct addrinfo ));
result=&resultp;
*/
hintp->ai_flags = 4;
hintp->ai_family = 0;
hintp->ai_socktype = 0;
hintp->ai_protocol = 0;
hintp->ai_addrlen = 0;
hintp->ai_canonname = 0x0;
hintp->ai_addr = 0x0;
hintp->ai_next = 0x0;

rc = getaddrinfo(hostname, servname, hintp, result);

if (!rc)
	{ 
	printf("127.0.0.1 ai_addr\n");
	l=(*result)->ai_addrlen;
	addr=(char*)(*result)->ai_addr;
	for(i=0;i<l;i++)
		printf("%2.2x ",addr[i]);
	printf("\n");
	}
else
	{
        fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(rc));
        exit(EXIT_FAILURE);
	}
}


--------------050708090609080501000206
Content-Type: text/plain; charset=windows-1252;
 name="getaddrinfo_test-2.c"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="getaddrinfo_test-2.c"


#include <sys/socket.h>
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int rc,i,l;
const char *hostname="127.0.0.1";
const char *servname="";
struct addrinfo hintp;
/* struct addrinfo *resultp; */
struct addrinfo *result=NULL;

char *addr;

/*
hintp=calloc(1,sizeof(struct addrinfo ));
resultp=calloc(1,sizeof(struct addrinfo ));
result=&resultp;
*/

hintp.ai_flags = 4;
hintp.ai_family = 0;
hintp.ai_socktype = 0;
hintp.ai_protocol = 0;
hintp.ai_addrlen = 0;
hintp.ai_canonname = 0x0;
hintp.ai_addr = 0x0;
hintp.ai_next = 0x0;

rc = getaddrinfo(hostname, servname, &hintp, &result);

if (!rc)
	{ 
	printf("127.0.0.1 ai_addr\n");
	l=result->ai_addrlen;
	addr=(char*)result->ai_addr;
	for(i=0;i<l;i++)
		printf("%2.2x ",addr[i]);
	printf("\n");
	}
else
	{
        fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(rc));
        exit(EXIT_FAILURE);
	}
}



--------------050708090609080501000206
Content-Type: text/plain; charset=us-ascii

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
--------------050708090609080501000206--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019