Bug#833296: exim4-config: dpkg-reconfigure exim4-config: misleading message
Mauro Salvini
mauro.salvini at smigroup.net
Wed Aug 3 07:11:58 UTC 2016
> Hi,
>
> thanks for your bug report. Superb research, well done.
Hi,
thank you, it's my first bug report, glad to hear that is well done :-)
> @ expands to primary_hostname. Are you manualy setting this in your
> configuration?
No, i never set this variable in my configuration.
/var/lib/exim4/config.autogenerated contains
.ifdef MAIN_HARDCODE_PRIMARY_HOSTNAME
primary_hostname = MAIN_HARDCODE_PRIMARY_HOSTNAME
.endif
and MAIN_HARDCODE_PRIMARY_HOSTNAME is never set.
About this, if during dpkg-reconfigure exim4-config I set "Keep number
of DNS queries minimal (Dial-on-Demand)" to yes,
MAIN_HARDCODE_PRIMARY_HOSTNAME becomes defined as myhost.mydomain.local,
and exim4 delivers mail in the right way.
> If uname() returns a single-component name, Exim calls gethostbyname()
> (or getipnodebyname() where available) in an attempt to acquire a
> fully qualified host name.
>
> Can you check what your gethostbyname/getipnodebyname returns?
I wrote this code snippet (getipnodebyname() is not available in my
system):
#include <stdio.h>
#include <netdb.h>
#include <sys/utsname.h>
int main()
{
struct utsname buf;
uname(&buf);
printf("hostname by uname(): %s\n", buf.nodename);
struct hostent *hent = gethostbyname(buf.nodename);
printf("hostname by gethostbyname(): %s\n", hent->h_name);
return 0;
}
It returns:
hostname by uname(): myhostname
hostname by gethostbyname(): myhostname.mydomain.local
> I guess that there is something not right with your /etc/hosts which
> misguides gethostbyname. I have never fully understood what to do with
> /etc/hosts if one does not have a static IP address, and since all my
> hosts do have static IP addresses, I have neve had a problem like that.
>
> For starters, I'd try to add an entry with your full host name for
> the IP address your network interface actually has.
I tried with a /etc/hosts like this:
127.0.0.1 localhost
192.168.0.10 myhostname.mydomain.local myhostname
but behavior is the same.
(by the way: static IP address means manually-assigned IP address only
or also DHCP-assigned IP address that is always the same because is
based on a static map on DHCP server?)
I also tried "exim -bt -d+all username" on various scenarios:
- /etc/mailname set with FQDN, "Other destinations for which mail is
accepted" during dpkg-reconfigure set with FQDN, hostname set as
myhostname, it states:
08:53:19 3350 local_part=username domain=myhostname.mydomain.local
08:53:19 3350 checking domains
08:53:19 3350 myhostname.mydomain.local in
"@:localhost:myhostname.mydomain.local"? yes (matched
"myhostname.mydomain.local")
so it does not match "@"
- /etc/mailname set with FQDN, "Other destinations for which mail is
accepted" during dpkg-reconfigure leaved blank, hostname set as
myhostname.mydomain.local, it states:
08:56:56 3363 local_part=username domain=myhostname.mydomain.local
08:56:56 3363 checking domains
08:56:56 3363 myhostname.mydomain.local in "@:localhost"? yes (matched
"@")
so it right matches "@".
Thank you again, greetings
Mauro
More information about the Pkg-exim4-maintainers
mailing list