(kadm5_log_get_version): rename kadm5_log_get_version_fd and make a
new that takes a context (kadm5_log_nop): add logging of missing lengths (kadm5_log_truncate): new function git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@8805 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -49,8 +49,8 @@ RCSID("$Id$");
|
||||
*/
|
||||
|
||||
kadm5_ret_t
|
||||
kadm5_log_get_version (int fd,
|
||||
u_int32_t *ver)
|
||||
kadm5_log_get_version_fd (int fd,
|
||||
u_int32_t *ver)
|
||||
{
|
||||
int ret;
|
||||
krb5_storage *sp;
|
||||
@@ -72,6 +72,12 @@ kadm5_log_get_version (int fd,
|
||||
return 0;
|
||||
}
|
||||
|
||||
kadm5_ret_t
|
||||
kadm5_log_get_version (kadm5_server_context *context, u_int32_t *ver)
|
||||
{
|
||||
return kadm5_log_get_version_fd (context->log_context.log_fd, ver);
|
||||
}
|
||||
|
||||
kadm5_ret_t
|
||||
kadm5_log_set_version (kadm5_server_context *context, u_int32_t vno)
|
||||
{
|
||||
@@ -98,7 +104,7 @@ kadm5_log_init (kadm5_server_context *context)
|
||||
return errno;
|
||||
}
|
||||
|
||||
ret = kadm5_log_get_version (fd, &log_context->version);
|
||||
ret = kadm5_log_get_version_fd (fd, &log_context->version);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -628,6 +634,8 @@ kadm5_log_nop (kadm5_server_context *context)
|
||||
krb5_storage_free (sp);
|
||||
return ret;
|
||||
}
|
||||
krb5_store_int32 (sp, 0);
|
||||
krb5_store_int32 (sp, 0);
|
||||
ret = kadm5_log_postamble (log_context, sp);
|
||||
if (ret) {
|
||||
krb5_storage_free (sp);
|
||||
@@ -758,3 +766,40 @@ kadm5_log_replay (kadm5_server_context *context,
|
||||
return KADM5_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* truncate the log - i.e. create an empty file with just (nop vno + 2)
|
||||
*/
|
||||
|
||||
kadm5_ret_t
|
||||
kadm5_log_truncate (kadm5_server_context *server_context)
|
||||
{
|
||||
kadm5_ret_t ret;
|
||||
u_int32_t vno;
|
||||
|
||||
ret = kadm5_log_init (server_context);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = kadm5_log_get_version (server_context, &vno);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = kadm5_log_reinit (server_context);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = kadm5_log_set_version (server_context, vno + 1);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = kadm5_log_nop (server_context);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = kadm5_log_end (server_context);
|
||||
if (ret)
|
||||
return ret;
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user