[comp.mail.sendmail] Help! I'm confused about MX RR logic!

mfrost@sword.pyramid.com (Mark Frost) (02/28/91)

Hello. I've been trying to get sendmail 5.65 up and working. It seemed to
make fine, but when we used our sendmail.cf file that worked under 5.61,
we discover that we can't SEND mail off of the machine. We receive mail just
fine. We are trying to use SMTP mail internally.

I've been trying to trace through the code to see where the failure is
happening. sendmail 5.65 seems to correctly find the user's alias, sees
that the host exists on the net (uses the nameserver to look it up), and
determines that it should use the ethernet/SMTP to transmit the message.
Then it somehow determines that the host is "unknown". The reason I believe
that it thinks the host is "unknown" comes from the following lines of
code in "deliver.c" (starting at line 385)...

#ifdef NAMED_BIND
                if (host[0] && host[0] != '[')
                {
                        expand("\001w", buf, &buf[sizeof(buf) - 1], e);
                        Nmx = getmxrr(host, MxHosts, buf, &rcode);
                }
                else
#endif
                {
                        Nmx = 1;
                        MxHosts[0] = host;
                }
                if (Nmx >= 0)
                {
	[open an SMTP connection to the host and transmit the message]
		}
		...

It appears that for the address "pauld@sword" (which remember at this point
has already been verified as an existing address out on our ethernet), sendmail
SHOULD be executing the else condition. Since the host exists locally it
doesn't matter if an MX record exists for it or not. In fact, if I query
the nameserver on "sword.pyramid.com" for a type MX, I'm told that one 
doesn't exist (presumably because the host is known on the local net - I'm
still kinda fuzzy on that one).

However, the only way that the "else" condition WILL execute is if the host
is either undefined/null (i.e. has no first character), or if it's first
character is a "[". I'm told that a first character of a "[" means that it
represents an IP address.

Now I could see this if at this point, "pauld@sword" has somehow been
rewritten to "pauld@[129.214.9.22]", but I find that rather unlikely as
it would then have to be rewritten BACK to pauld@sword on the other end.

Have I done something wrong? Help! I'm confused....

Thanks


          -m-----------  Mark Frost    (mfrost@pyramid.com)
        ---mmm---------  System Administrator - Hardware Engineering
      -----mmmmm-------  Pyramid Technology Corporation
    -------mmmmmmm-----  1295 Charleston Rd, P.O. Box 7295
  ---------mmmmmmmmm---  Mountain View, California 94039-7295 
-----------mmmmmmmmmmm-  (415) 335-8163