cellconfig-gethostbyname-20090618
authorJeffrey Altman <jaltman@secure-endpoints.com>
Fri, 19 Jun 2009 04:08:08 +0000 (04:08 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Fri, 19 Jun 2009 04:08:08 +0000 (04:08 +0000)
commit0200a40061a70c8e768f7510604839aaa7925a28
tree323dbc50f3184f57003f677a2f686d890b824802
parentcfe1f5676d458ca2ca8ba562ace782305e68059f
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.
src/auth/cellconfig.c
src/auth/cellconfig.p.h