(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:
Assar Westerlund
2000-07-24 04:32:17 +00:00
parent a64d335be2
commit ed3264222f

View File

@@ -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;
}