Added krb5_free_creds_contents and krb5_copy_creds
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2730 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -41,7 +41,7 @@
|
|||||||
RCSID("$Id$");
|
RCSID("$Id$");
|
||||||
|
|
||||||
krb5_error_code
|
krb5_error_code
|
||||||
krb5_free_creds(krb5_context context, krb5_creds *c)
|
krb5_free_creds_contents (krb5_context context, krb5_creds *c)
|
||||||
{
|
{
|
||||||
krb5_free_principal (context, c->client);
|
krb5_free_principal (context, c->client);
|
||||||
c->client = NULL;
|
c->client = NULL;
|
||||||
@@ -54,3 +54,71 @@ krb5_free_creds(krb5_context context, krb5_creds *c)
|
|||||||
krb5_free_addresses (context, &c->addresses);
|
krb5_free_addresses (context, &c->addresses);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
krb5_error_code
|
||||||
|
krb5_copy_creds_contents (krb5_context context,
|
||||||
|
const krb5_creds *incred,
|
||||||
|
krb5_creds *c)
|
||||||
|
{
|
||||||
|
krb5_error_code ret;
|
||||||
|
|
||||||
|
ret = krb5_copy_principal (context, incred->client, &c->client);
|
||||||
|
if (ret)
|
||||||
|
goto fail;
|
||||||
|
ret = krb5_copy_principal (context, incred->server, &c->server);
|
||||||
|
if (ret)
|
||||||
|
goto fail;
|
||||||
|
ret = krb5_copy_keyblock_contents (context, &incred->session, &c->session);
|
||||||
|
if (ret)
|
||||||
|
goto fail;
|
||||||
|
c->times = incred->times;
|
||||||
|
ret = krb5_data_copy (&c->ticket,
|
||||||
|
incred->ticket.data,
|
||||||
|
incred->ticket.length);
|
||||||
|
if (ret)
|
||||||
|
goto fail;
|
||||||
|
ret = krb5_data_copy (&c->second_ticket,
|
||||||
|
incred->second_ticket.data,
|
||||||
|
incred->second_ticket.length);
|
||||||
|
if (ret)
|
||||||
|
goto fail;
|
||||||
|
ret = krb5_data_copy (&c->authdata,
|
||||||
|
incred->authdata.data,
|
||||||
|
incred->authdata.length);
|
||||||
|
if (ret)
|
||||||
|
goto fail;
|
||||||
|
ret = krb5_copy_addresses (context,
|
||||||
|
&incred->addresses,
|
||||||
|
&c->addresses);
|
||||||
|
if (ret)
|
||||||
|
goto fail;
|
||||||
|
c->flags = incred->flags;
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
fail:
|
||||||
|
krb5_free_creds (context, c);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
krb5_error_code
|
||||||
|
krb5_copy_creds (krb5_context context,
|
||||||
|
const krb5_creds *incred,
|
||||||
|
krb5_creds **outcred)
|
||||||
|
{
|
||||||
|
krb5_creds *c;
|
||||||
|
|
||||||
|
c = malloc (sizeof (*c));
|
||||||
|
if (c == NULL)
|
||||||
|
return ENOMEM;
|
||||||
|
memset (c, 0, sizeof(*c));
|
||||||
|
*outcred = c;
|
||||||
|
return krb5_copy_creds_contents (context, incred, c);
|
||||||
|
}
|
||||||
|
|
||||||
|
krb5_error_code
|
||||||
|
krb5_free_creds (krb5_context context, krb5_creds *c)
|
||||||
|
{
|
||||||
|
krb5_free_creds_contents (context, c);
|
||||||
|
free (c);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user