DEVEL15-cellconfig-gethostbyname-20090618
authorJeffrey Altman <jaltman@secure-endpoints.com>
Fri, 19 Jun 2009 04:48:28 +0000 (04:48 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Fri, 19 Jun 2009 04:48:28 +0000 (04:48 +0000)
commita37d96304348732a236f6f2fa4645900433af807
tree4807d0b0a8bab908525499b8049314ea7c2bd2ed
parentdbb62996df6ad4efb2d2e3711e4ac59841b75027
DEVEL15-cellconfig-gethostbyname-20090618

LICENSE MIT

The CellServDB processing in auth/cellconfig and WINNT/afsd/cm_config
differ in one important way.  cellconfig uses the IP addresses specified
in the CellServDB file and ignores the host name; whereas cm_config
calls gethostbyname() on the host name and falls back to the specified
address only if gethostbyname() fails.

This commit modifies cellconfig to use gethostbyname() calls on the
host names when the client CellServDB file is being used.   The server
CellServDB file is left alone because ubik servers need to be given
the exact list of ip addresses specified by the administrator and
there is no method of indicating clones to other servers using DNS.

This change permits a greater resilency to cell server configuration
changes due to IP address renumbering as the DNS names in the CellServDB
file can be CNAME or A records.

A host name can be resolved to multiple IP addresses and all of the
addresses will be added to the hostAddr list for the cell provided
that they do not exceed the maximum number of hosts.  If the same
host name is listed multiple times the duplicate IP addresses will
be ignored.

The behavior of all tools that use CellServDB files on Windows will now
be consistent.

(cherry picked from commit 0200a40061a70c8e768f7510604839aaa7925a28)
src/auth/cellconfig.c
src/auth/cellconfig.p.h