I noticed that sendmail started to complain of a failed reverse lookup
when starting:
Feb 28 11:40:43 beast sendmail[276]:
gethostbyaddr(3ffe:2900:fffa:2:2a0:c9ff:fe8d:7c5f) failed: 2
At first I thought something is wrong with my ipv6 dns setup, but it turned
out that if a program is linked shared the first getipnodebyaddr() it does
will succeed, but the rest fail. For a staticly linked program all of
them will succeed:
########
beast:~/try > cc -Wall -static -O -o tstgetipnodebyaddr.static-c tstgetipnodebyaddr.c
beast:~/try > cc -Wall -O -o tstgetipnodebyaddr tstgetipnodebyaddr.c
beast:~/try > ./tstgetipnodebyaddr.static-c And
the answer is: beast.icomtek.csir.co.za
And the answer is: beast.icomtek.csir.co.za
beast:~/try > ./tstgetipnodebyaddr
And the answer is: beast.icomtek.csir.co.za
Oops: 2.
getipnodebyaddr: Host name lookup failure
beast:~/try >
########
My test program is at the end of the email. Maybe I (and sendmail) have
done something wrong?
John
--
John Hay -- [EMAIL PROTECTED]
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <stdio.h>
int main(int argc, char **argv)
{
struct hostent *he;
int h_err;
u_char ipnum[16];
char *astr1;
astr1 = "146.64.24.3";
h_err = inet_pton(AF_INET, astr1, ipnum);
if(h_err == 0) {
printf("conversion error with inet_pton()\n");
exit(1);
}
he = getipnodebyaddr(ipnum, 4, AF_INET, &h_err);
if(he == NULL) {
printf("Oops: %d.\n", h_err);
herror("getipnodebyaddr");
} else
printf("And the answer is: %s\n", he->h_name);
he = getipnodebyaddr(ipnum, 4, AF_INET, &h_err);
if(he == NULL) {
printf("Oops: %d.\n", h_err);
herror("getipnodebyaddr");
} else
printf("And the answer is: %s\n", he->h_name);
return 0;
}
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message