Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!mcsun!ukc!mucs!cns!umaida!jf From: jf@ap.co.umist.ac.uk (John Forrest) Newsgroups: comp.mail.sendmail Subject: Problems with Sendmail v5.65+IDA and BIND Message-ID: <1990Nov9.090855@ap.co.umist.ac.uk> Date: 9 Nov 90 09:08:55 GMT Sender: usenet@cns.umist.ac.uk (News System) Reply-To: jf@ap.co.umist.ac.uk (John Forrest) Organization: UMIST Computation, Manchester, UK. Lines: 50 Its me again. Soyy to be such a bore, but I've spotted some potential problems with the 5.65+IDA source and BIND. Essentially, the domain.c source contains the imortal lines: Getcanonname() below is broken in the sense that it won't return unqualified local host names with their full domain extension, unless the argument is an alias. Since gethostbyname() calls the name server with bind 4.8, I don't see why this function would be needed at all. I've therefore restored the old code in maphostname() of daemon.c that uses gethostbyname(). If there's something I've missed, feel free to change maphostname() to again call getcanonname(), but also make sure that the latter will qualify the host with its full domain AND return a status code indicating if the host was found. To which someone has rightly realised there are cases where domains don't have associated A resoures, and put it back in. Unfortunately, they don't seem to have fixed it much more than that. A comparison with our previous version (5.61 without IDA) shows very little resemblance between the files. To a certain extent this is not surprising, since we have a heaftily modified domain.c file to cope with some funnies in our environment (we are not connected to the full named, do not know all the uk domains, and are forced to impersonate wildcards for various reasons I'm going to skip here). However, ignoring our (nice!) changes, it is obvious the original functionality is quite different to the ``new'' file. I put new in quotes, because I wonder if this file is an IDA special that has somehow made its way into the source. Alternatively, have there been some funny fixes for 5.64/5.65? As an example, the new code contains the further comments in getcanonname (after it has sought the resource entries for a particular name): else if (type == T_MX) { /* * Be sure that the best MX record doesn't point * to the local machine. If it does, some other * delivery method is assumed. */ Then if the best ``deliver'' is the local machine, it returns False. What is the point of this? This is in code that is supposed to be expanding the name - the choice of a route is completely different - and isn't handled here. There must be other problems - I know from testing - but this one sticks out like a sore thumb. Any explanations. John Forrest, Dept. of Computation, UMIST.