Heimdal-Kadm5
view release on metacpan or search on metacpan
ret = krb5_parse_name(handle->context, name, &principal);
if (ret)
croak("[Heimdal::Kadm5] krb5_parse_name failed on \"%s\": %s\n",
name,krb5_get_err_text(handle->context, ret));
err = kadm5_c_delete_principal(handle->ptr,principal);
if (err)
{
krb5_free_principal(handle->context, principal);
croak("[Heimdal::Kadm5] kadm5_c_delete_principal failed for \"%s\": %s\n",
name,krb5_get_err_text(handle->context, err));
}
handle->modcount++;
krb5_free_principal(handle->context, principal);
}
sprincipal_t *
kadm5_c_get_principal(handle, name, mask)
shandle_t *handle
char *name
IV mask
CODE:
{
krb5_principal principal;
krb5_error_code ret;
sprincipal_t *spp;
ret = krb5_parse_name(handle->context, name, &principal);
if (ret)
croak("[Heimdal::Kadm5] krb5_parse_name failed on \"%s\": %s\n",
name,krb5_get_err_text(handle->context, ret));
spp = create_sprincipal(handle);
ret = kadm5_c_get_principal(handle->ptr,
principal,
&spp->principal,
mask);
if (ret)
{
if (ret == KADM5_UNK_PRINC) {
destroy_sprincipal(spp);
spp = NULL;
} else {
krb5_free_principal(handle->context, principal);
destroy_sprincipal(spp);
croak("[Heimdal::Kadm5] kadm5_c_get_principal failed for \"%s\": %s\n",
name,krb5_get_err_text(handle->context, ret));
}
}
krb5_free_principal(handle->context,principal);
RETVAL = spp;
}
OUTPUT:
RETVAL
void
kadm5_c_get_principals(handle,exp)
shandle_t *handle
char *exp
PPCODE:
{
char **princs;
int num_princs,i;
kadm5_ret_t ret;
ret = kadm5_c_get_principals(handle->ptr,exp,&princs,&num_princs);
if (ret)
{
croak("[Heimdal::Kadm5] kadm5_c_get_principals failed for \"%s\": %s\n",
exp,krb5_get_err_text(handle->context, ret));
}
EXTEND(SP,num_princs);
for (i = 0; i < num_princs; i++)
{
PUSHs(sv_2mortal(newSVpv(princs[i],0)));
}
kadm5_free_name_list(handle->ptr,princs,&num_princs);
}
int
kadm5_c_get_privs(handle)
shandle_t *handle
CODE:
{
int privs;
kadm5_ret_t ret = kadm5_c_get_privs(handle->ptr,&privs);
if (ret)
{
croak("[Heimdal::Kadm5] kadm5_c_get_privs failed: %s\n",
krb5_get_err_text(handle->context, ret));
}
RETVAL = privs;
}
OUTPUT:
RETVAL
void
kadm5_c_ext_keytab(handle,spp,keytab)
shandle_t *handle
sprincipal_t *spp
char *keytab
CODE:
{
int i;
krb5_keytab kt;
krb5_error_code ret;
if(keytab)
ret = krb5_kt_resolve(handle->context, keytab, &kt);
else
ret = krb5_kt_default(handle->context, &kt);
if (ret)
croak("[Heimdal::Kadm5] krb5_kt_resolv failed: %s\n",
krb5_get_err_text(handle->context, ret));
for(i = 0; i < spp->principal.n_key_data; i++)
{
krb5_keytab_entry key;
krb5_key_data *k = &spp->principal.key_data[i];
sprincipal_t *
new(self,handle)
SV *self
shandle_t *handle
CODE:
{
sprincipal_t *spp = create_sprincipal(handle);
RETVAL = spp;
}
OUTPUT:
RETVAL
void
DESTROY(spp)
sprincipal_t *spp
CODE:
{
destroy_sprincipal(spp);
}
SV *
getPrincipal(spp)
sprincipal_t *spp
CODE:
{
char *p;
krb5_error_code ret;
ret = krb5_unparse_name(spp->handle->context,spp->principal.principal,&p);
if (ret)
{
safefree(p);
croak("[Heimdal::Kadm5] krb5_unparse_name failed: %s\n",
krb5_get_err_text(spp->handle->context, ret));
}
RETVAL = newSVpv(p,0);
}
OUTPUT:
RETVAL
void
setPrincipal(spp,p)
sprincipal_t *spp
char *p
CODE:
{
krb5_error_code ret;
ret = krb5_parse_name(spp->handle->context,p,&spp->principal.principal);
if (ret)
{
croak("[Heimdal::Kadm5] krb5_parse_name failed for \"%s\": %s\n",
p,krb5_get_err_text(spp->handle->context, ret));
}
spp->mask |= KADM5_PRINCIPAL;
}
int
getPrincExpireTime(spp)
sprincipal_t *spp
PPCODE:
{
XPUSHi(spp->principal.princ_expire_time);
}
void
setPrincExpireTime(spp,val)
sprincipal_t *spp
IV val
CODE:
{
spp->principal.princ_expire_time = val;
spp->mask |= KADM5_PRINC_EXPIRE_TIME;
}
IV
getLastPwdChange(spp)
sprincipal_t *spp
CODE:
{
RETVAL = spp->principal.last_pwd_change;
}
OUTPUT:
RETVAL
IV
getKvno(spp)
sprincipal_t *spp
CODE:
{
RETVAL = spp->principal.kvno;
}
OUTPUT:
RETVAL
IV
getMKvno(spp)
sprincipal_t *spp
CODE:
{
RETVAL = spp->principal.mkvno;
}
OUTPUT:
RETVAL
IV
getPwExpiration(spp)
sprincipal_t *spp
CODE:
{
RETVAL = spp->principal.pw_expiration;
}
OUTPUT:
RETVAL
void
setPwExpiration(spp,val)
sprincipal_t *spp
IV val
CODE:
{
( run in 0.469 second using v1.01-cache-2.11-cpan-71847e10f99 )