Heimdal-Kadm5

 view release on metacpan or  search on metacpan

Kadm5.xs  view on Meta::CPAN

       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];

Kadm5.xs  view on Meta::CPAN

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 )