(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_ret_t
|
||||||
kadm5_log_get_version (int fd,
|
kadm5_log_get_version_fd (int fd,
|
||||||
u_int32_t *ver)
|
u_int32_t *ver)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
krb5_storage *sp;
|
krb5_storage *sp;
|
||||||
@@ -72,6 +72,12 @@ kadm5_log_get_version (int fd,
|
|||||||
return 0;
|
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_ret_t
|
||||||
kadm5_log_set_version (kadm5_server_context *context, u_int32_t vno)
|
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;
|
return errno;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = kadm5_log_get_version (fd, &log_context->version);
|
ret = kadm5_log_get_version_fd (fd, &log_context->version);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
@@ -628,6 +634,8 @@ kadm5_log_nop (kadm5_server_context *context)
|
|||||||
krb5_storage_free (sp);
|
krb5_storage_free (sp);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
krb5_store_int32 (sp, 0);
|
||||||
|
krb5_store_int32 (sp, 0);
|
||||||
ret = kadm5_log_postamble (log_context, sp);
|
ret = kadm5_log_postamble (log_context, sp);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
krb5_storage_free (sp);
|
krb5_storage_free (sp);
|
||||||
@@ -758,3 +766,40 @@ kadm5_log_replay (kadm5_server_context *context,
|
|||||||
return KADM5_FAILURE;
|
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