Move key-related warnings to common server code 31/10831/6
authorAndrew Deason <adeason@sinenomine.net>
Mon, 10 Feb 2014 21:57:43 +0000 (15:57 -0600)
committerBenjamin Kaduk <kaduk@mit.edu>
Fri, 8 Jan 2021 17:11:37 +0000 (12:11 -0500)
commit2630e70550defc664efa0952589cf82ed3c51796
treeffd7bee5a7ddfe56a208d18a204e1f19ceee7d8b
parentfaa9d8f11f28232000446d787ebf53ab9345eb89
Move key-related warnings to common server code

Each server process can log a couple of different warnings about the
server keys found on disk:

- If afsconf_GetLatestKey() returns success (indicating a single-DES
  key is present), we call LogDesWarning().

- If afsconf_CountKeys() returns 0 (indicating there are no keys at
  all on disk), we log a warning that all authenticated access will
  fail.

Currently, the code to do these checks and log the relevant warning is
duplicated across the startup code for nearly every server process. To
avoid this duplication, and to make sure the checks aren't
accidentally skipped for anyone, move these checks to
afsconf_BuildServerSecurityObjects, which every server process calls.

We must add an additional parameter to
afsconf_BuildServerSecurityObjects to handle the different logging
mechanism these servers use, but afsconf_BuildServerSecurityObjects is
declared in a public header (cellconfig.h), and is exported in a
public library (libafsauthent). So to avoid changing a public symbol,
introduce a new variant of the function, called
afsconf_BuildServerSecurityObjects_int. Declare this in a new internal
header, authcon.h.

We don't have easily-usable logging functions for upserver and butc,
so just don't log the warnings for those. For ubik servers, don't
update ubik_SetServerSecurityProcs to use the new function; the
initial call to afsconf_BuildServerSecurityObjects_int in the server's
startup code will cover logging the warning on startup.

Change-Id: I5d5fceefdaf907f96db9f1c0d21ceb6957299a59
Reviewed-on: https://gerrit.openafs.org/10831
Tested-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
22 files changed:
src/auth/Makefile.in
src/auth/NTMakefile
src/auth/authcon.c
src/auth/authcon.h [new file with mode: 0644]
src/auth/liboafs_auth.la.sym
src/bozo/bosserver.c
src/budb/server.c
src/butc/tcmain.c
src/dviced/NTMakefile
src/dvolser/NTMakefile
src/ptserver/ptserver.c
src/tvolser/NTMakefile
src/update/server.c
src/util/afsutil_prototypes.h
src/util/liboafs_util.la.sym
src/util/serverLog.c
src/viced/NTMakefile
src/viced/viced.c
src/vlserver/vlserver.c
src/volser/volmain.c
tests/auth/authcon-t.c
tests/common/servers.c