「sendmailは昔からそういうもんですね。/etc/resolv.confの中を覚えてる。」の調査

owakiさんからのコメントが本当なのか気になって眠れないので(ウソ(TM))Sendmailソースコードを読んでみた。
http://d.hatena.ne.jp/p206sw/20070116/1168953004#c1169115322
ソフトウェア屋の性?
Sendmailはres_query(), res_search()を使っている。

int
getmxrr(host, mxhosts, mxprefs, droplocalhost, rcode, tryfallback, pttl)
	char *host;
	char **mxhosts;
	unsigned short *mxprefs;
	bool droplocalhost;
	int *rcode;
	bool tryfallback;
	int *pttl;
{
    :
	if (HasWildcardMX && ConfigLevel >= 6)
		resfunc = res_query;
	else
		resfunc = res_search;

	errno = 0;
	n = (*resfunc)(host, C_IN, T_MX, (unsigned char *) &answer,
		       sizeof(answer));

つまり、resolver(3)を使っているということ。まぁ、これは普通というか当たり前やね。
で、res_init()をmain()で呼び出している。

int
main(argc, argv, envp)
	int argc;
	char **argv;
	char **envp;
{
    :
#if NAMED_BIND
	if (!bitset(RES_INIT, _res.options))
		(void) res_init();

/etc/resolv.confはres_init()で読み込まれるので、デーモンが再起動されない限り、起動時のresolv.confの情報が使われるわけだね。
納得。