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

Reply via email to