Giampaolo Tomassoni wrote:
-----Original Message-----
From: Nix [mailto:[EMAIL PROTECTED]
Sent: Sunday, August 31, 2008 5:12 PM
To: Marc Perkel
Cc: users@spamassassin.apache.org
Subject: Re: Handy script for generating /etc/resolv.conf
On 28 Aug 2008, Marc Perkel told this:
Here's something I threw together to make sure the /etc/resolv.conf
points to a working nameserver. I run this once a minute.
How do you arrange that all the existing programs that have already
sucked in resolv.conf note the change? They're generally not going to
unless you restart them: nothing polls resolv.conf looking for changes
to it as far as I know, that would be far too inefficient.
Depending on the specific implementation of the resolver library, the
application may check for changes in the resolv.conf file. Maybe they don't
check at every and each resolv request, however: they may instead check for
changes every, say, 10 secs or maybe every 1.000 requests. This way, looking
for changes in the /etc/resolv.conf file is not that much inefficient...
as you say, this is generally inefficient. most resolver implementations
don't do that. and even then, not all applications will obey that (the
mozilla family is known to play bad games here).
It is better to run a dns server on the machine and do all your stuff
there. you can restart it, reload the zone, ... without caring for
resolver or application specific behaviour. This also "conforms" to
modularity as was seen in plan9: let servers do the job.
and by the way, the proposed script is not portable nor robust:
- it requires /bin/bash
- it requires that netcat is installed as /usr/bin/nc
It does no sanity check before overriting /etc/resolv.conf. not even
check that it can run /usr/bin/nc. not even check that resolv.tmp is
"coherent" (race condition).
Giampaolo
It checks to
see what name servers are up and creates /etc/resolv.conf. As you all
know SA and mail servers need the first nameserver to always be
working.
But these are both root-owned daemons and you're not restarting any
of them.
there are many long running programs such as X, firefox, thunderbird,
... that will not "re-initialize" the resolver, unless you have a
resolver that forces reinit at each query or that watches resolv.conf
change, but as said above, this is inefficient. I don't want my system
to stat /etc/resolv.conf every minute, do you?