|
Packit Service |
99d1c0 |
/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
Packit Service |
99d1c0 |
|
|
Packit Service |
99d1c0 |
#include "kdb_ldap.h"
|
|
Packit Service |
99d1c0 |
#include "ldap_principal.h"
|
|
Packit Service |
99d1c0 |
#include "princ_xdr.h"
|
|
Packit Service |
99d1c0 |
#include <kadm5/admin.h>
|
|
Packit Service |
99d1c0 |
#include <kadm5/server_internal.h>
|
|
Packit Service |
99d1c0 |
|
|
Packit Service |
99d1c0 |
void
|
|
Packit Service |
99d1c0 |
ldap_osa_free_princ_ent(osa_princ_ent_t val)
|
|
Packit Service |
99d1c0 |
{
|
|
Packit Service |
99d1c0 |
XDR xdrs;
|
|
Packit Service |
99d1c0 |
|
|
Packit Service |
99d1c0 |
xdrmem_create(&xdrs, NULL, 0, XDR_FREE);
|
|
Packit Service |
99d1c0 |
xdr_osa_princ_ent_rec(&xdrs, val);
|
|
Packit Service |
99d1c0 |
xdr_destroy(&xdrs);
|
|
Packit Service |
99d1c0 |
}
|
|
Packit Service |
99d1c0 |
|
|
Packit Service |
99d1c0 |
krb5_error_code
|
|
Packit Service |
99d1c0 |
krb5_lookup_tl_kadm_data(krb5_tl_data *tl_data, osa_princ_ent_rec *princ_entry)
|
|
Packit Service |
99d1c0 |
{
|
|
Packit Service |
99d1c0 |
|
|
Packit Service |
99d1c0 |
XDR xdrs;
|
|
Packit Service |
99d1c0 |
|
|
Packit Service |
99d1c0 |
xdrmem_create(&xdrs, (caddr_t)tl_data->tl_data_contents,
|
|
Packit Service |
99d1c0 |
tl_data->tl_data_length, XDR_DECODE);
|
|
Packit Service |
99d1c0 |
if (!xdr_osa_princ_ent_rec(&xdrs, princ_entry)) {
|
|
Packit Service |
99d1c0 |
xdr_destroy(&xdrs);
|
|
Packit Service |
99d1c0 |
return KADM5_XDR_FAILURE;
|
|
Packit Service |
99d1c0 |
}
|
|
Packit Service |
99d1c0 |
xdr_destroy(&xdrs);
|
|
Packit Service |
99d1c0 |
|
|
Packit Service |
99d1c0 |
return 0;
|
|
Packit Service |
99d1c0 |
}
|
|
Packit Service |
99d1c0 |
|
|
Packit Service |
99d1c0 |
krb5_error_code
|
|
Packit Service |
99d1c0 |
krb5_update_tl_kadm_data(krb5_context context, krb5_db_entry *entry,
|
|
Packit Service |
99d1c0 |
osa_princ_ent_rec *princ_entry)
|
|
Packit Service |
99d1c0 |
{
|
|
Packit Service |
99d1c0 |
XDR xdrs;
|
|
Packit Service |
99d1c0 |
krb5_tl_data tl_data;
|
|
Packit Service |
99d1c0 |
krb5_error_code retval;
|
|
Packit Service |
99d1c0 |
|
|
Packit Service |
99d1c0 |
xdralloc_create(&xdrs, XDR_ENCODE);
|
|
Packit Service |
99d1c0 |
if (!xdr_osa_princ_ent_rec(&xdrs, princ_entry)) {
|
|
Packit Service |
99d1c0 |
xdr_destroy(&xdrs);
|
|
Packit Service |
99d1c0 |
return KADM5_XDR_FAILURE;
|
|
Packit Service |
99d1c0 |
}
|
|
Packit Service |
99d1c0 |
tl_data.tl_data_type = KRB5_TL_KADM_DATA;
|
|
Packit Service |
99d1c0 |
tl_data.tl_data_length = xdr_getpos(&xdrs);
|
|
Packit Service |
99d1c0 |
tl_data.tl_data_contents = (krb5_octet *)xdralloc_getdata(&xdrs);
|
|
Packit Service |
99d1c0 |
retval = krb5_dbe_update_tl_data(context, entry, &tl_data);
|
|
Packit Service |
99d1c0 |
xdr_destroy(&xdrs);
|
|
Packit Service |
99d1c0 |
return retval;
|
|
Packit Service |
99d1c0 |
}
|