Behavioral change in hostname

Michal Jaegermann michal at harddata.com
Tue Sep 22 20:01:09 UTC 2009


On Tue, Sep 22, 2009 at 08:40:51AM -0400, Tom Horsley wrote:
> On Tue, 22 Sep 2009 08:31:09 -0400
> Robert Moskowitz wrote:
> 
> > What can be done to get 'hostname' to always figure out to return the 
> > FQDN if one exists?
> 
> I always thought it returned whatever was set as HOSTNAME=
> in the /etc/sysconfig/network file.

Not exactly.  Here is a code used by a network configuration

    if need_hostname; then
        IPADDR=$(LANG=C ip -o -4 addr ls dev ${DEVICE} | awk '{ print $4 ; exit }')
        eval $(/bin/ipcalc --silent --hostname ${IPADDR} ; echo "status=$?")
        if [ "$status" = "0" ]; then
            set_hostname $HOSTNAME
        fi
    fi

where need_hostname function looks like that:

need_hostname ()
{
    CHECK_HOSTNAME=`hostname`
    if [ "$CHECK_HOSTNAME" = "(none)" -o "$CHECK_HOSTNAME" = "localhost" -o \
        "$CHECK_HOSTNAME" = "localhost.localdomain" ]; then
        return 0
    else
        return 1
    fi
}

So if you are assigning addresses to interfaces dynamically and
ipcalc can get hostname like the above then names will correspond to
addresses.  There is a bit more of "sanity checks" elsewhere but
these are main parts.

Last time I tried NetworkManager was incapable of doing things of
that sort so you had to use 'network' service to get such effects.

   Michal




More information about the fedora-test-list mailing list