Rename the database after closing it in hpropd
commit3d715adc21f878dcdadbfe14275182039996b0ef
authorRuss Allbery <rra@stanford.edu>
Tue, 2 Feb 2010 05:27:14 +0000 (1 21:27 -0800)
committerLove Hornquist Astrand <lha@h5l.org>
Tue, 2 Feb 2010 21:27:48 +0000 (2 13:27 -0800)
tree1e7c417067c087060ee20be3c1aac443ab0a1a37
parent20c65310ead803d21b3bd92417b600885652b324
Rename the database after closing it in hpropd

If a Berkeley DB database is used as the underlying database, renaming
the database before closing it can produce error messages like the
following on close:

/var/lib/heimdal-kdc/heimdal~.db: unable to flush: No such file or directory

since the underlying database library caches the old file name.  There
is a rename() method in the Berkeley DB API, but it also invalidates
the database handle and requires that it be reopened.  Since the
hdb_rename implementation does not require that the database be open,
close the database before renaming it to avoid this problem.

Signed-off-by: Love Hornquist Astrand <lha@h5l.org>
kdc/hpropd.c