HI Davide, So am I correct that all the RDNS check does is look for a hostname and that's all? Or does it compare it to something once it gets it?
Davide can you, or anyone else on this list e-mail an exe of the test program so I can see if it works on the Windows 2000 server that xmail is on? Thanks, Bill >---------- >From: Davide Libenzi[SMTP:davi...@xmailserver.org] >Sent: Thursday, September 03, 2009 3:00 PM >To: XMail Users Mailing List >Subject: Re: [xmail] ERDNS weirdness > >On Thu, 3 Sep 2009, Bill Healy wrote: > >> Hi, >> >> I'm having problems receiving mail a particular server. It's being >> logged as an ERDNS issue, but when I lookup the IP using the same DNS >> server xMail uses I get an answer, although not a configuration I've >> seen before, but maybe it's legal, I don't know all the RFCs. So I don't >> know if the problem is the way they have setup their RDNS or something >> else. >> >> As I understand from what I can find in the docs smtp-rdnscheck just >> looks for the IP address having a record. Or is it looking for a PTR >> record on the first lookup with out recursion? Or is there something >> else it's doing? >> >> This is xMail 1.25 on Windows. Can anyone make sense of why the ERDNS is >> coming up? > >XMail does simply a SysGetHostByAddr() when doing an RDNS check, and this >translates to a call to getnameinfo(), on both Windows and Unix. >It works fine on Linux (using the test program below), and it should even >on Windows: > >$ gcc -o nettest nettest.c >$ ./nettest 207.162.214.242 >name = 'mx.soldoutdisciples.com' > > > >- Davide > > > >#include <stdio.h> >#include <stdlib.h> >#include <string.h> >#include <sys/socket.h> >#include <netinet/in.h> >#include <arpa/inet.h> >#include <netdb.h> > >int main(int ac, char **av) >{ > int error; > struct sockaddr_in addr; > char name[256]; > > memset(&addr, 0, sizeof(addr)); > addr.sin_family = AF_INET; > if (inet_aton(av[1], (struct in_addr *) &addr.sin_addr) == 0) { > perror(av[1]); > return 1; > } > if ((error = getnameinfo((struct sockaddr *) &addr, sizeof(addr), > name, sizeof(name), NULL, 0, NI_NAMEREQD)) != > 0) { > fprintf(stderr, "%s: %s\n", av[1], gai_strerror(error)); > return 1; > } > printf("name = '%s'\n", name); > > return 0; >} > >_______________________________________________ >xmail mailing list >xmail@xmailserver.org >http://xmailserver.org/mailman/listinfo/xmail > _______________________________________________ xmail mailing list xmail@xmailserver.org http://xmailserver.org/mailman/listinfo/xmail