DCE-Perl

 view release on metacpan or  search on metacpan

ACL/ACL.xs  view on Meta::CPAN

    }

}

MODULE = DCE::ACL		PACKAGE = DCE::ACL::handle	PREFIX = sec_acl_

void
sec_acl_DESTROY(handle)
DCE::ACL::handle handle

   PPCODE:
   {
   error_status_t status; 
   /* some problems here on DEC & Solaris */
#ifdef HPUX
   sec_acl_release_handle(handle, &status);
#endif
   }

void
sec_acl_get_manager_types(handle, sec_acl_type=sec_acl_type_object, size_avail=1)
DCE::ACL::handle handle
sec_acl_type_t  sec_acl_type
unsigned32 size_avail

    PPCODE: 
    {  
    unsigned32 size_used, num_types;
    uuid_t *manager_types = malloc(sizeof(uuid_t) * size_avail);
    error_status_t status;
    SV *uuid_sv;
    AV *av;
    int i;

    if (! manager_types) croak("malloc");
    sec_acl_get_manager_types(handle, sec_acl_type, size_avail, 

ACL/ACL.xs  view on Meta::CPAN

    free(manager_types);
    }

void
sec_acl_replace(handle, mgr_sv, sec_acl_type, l)
DCE::ACL::handle handle
SV *mgr_sv
sec_acl_type_t  sec_acl_type
DCE::ACL::list l

    PPCODE:
    {
      error_status_t status;
      uuid_t manager_type;

      SNAG_FIRST_MANAGER(handle, manager_type, sec_acl_type, mgr_sv);
      sec_acl_replace(handle, &manager_type, sec_acl_type, l, &status); 
      DCESTATUS;
    }

void
sec_acl_get_printstring(handle, mgr_sv=&PL_sv_undef, printstring_len=32)
DCE::ACL::handle handle
SV *mgr_sv
unsigned32 printstring_len

    PPCODE:
    {
      uuid_t manager_type, manager_type_chain;
      sec_acl_printstring_t manager_info;
      boolean32 tokenize;
      unsigned32 total_num_printstrings, num_printstrings;
      sec_acl_printstring_t *printstrings = malloc(printstring_len*sizeof(sec_acl_printstring_t));
      error_status_t status;
      HV *hv, *info_hv;
      AV *av;
      SV *uuid_sv, *info;

ACL/ACL.xs  view on Meta::CPAN

	  XPUSHs(newRV((SV*)av));
      free(printstrings);
      }	  

void
sec_acl_test_access(handle, mgr_sv, permset)
DCE::ACL::handle handle
SV *mgr_sv
sec_acl_permset_t permset

   PPCODE:
   {
     uuid_t manager_type;
     error_status_t status;
     boolean32 res;

     SNAG_FIRST_MANAGER(handle, manager_type, sec_acl_type_object, mgr_sv);
     res = sec_acl_test_access(handle, &manager_type, permset, &status);
     XPUSHs_iv(res);
     if(WANTARRAY)
	 DCESTATUS;
   }

void
sec_acl_test_access_on_behalf(handle, uuid, pac, desired_permset)
DCE::ACL::handle handle
SV *uuid
SV *pac
sec_acl_permset_t desired_permset

    PPCODE:
    {
     uuid_t mgr_type;
     sec_id_pac_t subject;
     error_status_t status;
     boolean32 res;
     HV *hv, *id;
     SV **svp;

     subject.pac_type = sec_id_pac_format_v1;
     hv = (HV*)SvRV(pac);

ACL/ACL.xs  view on Meta::CPAN

     XPUSHs_iv(res);
     if(WANTARRAY)
	 DCESTATUS;
   }

void
sec_acl_get_access(handle, mgr_sv)
DCE::ACL::handle handle
SV *mgr_sv

   PPCODE:
   {
     sec_acl_permset_t permset;
     uuid_t manager_type;
     error_status_t status;
   
     SNAG_FIRST_MANAGER(handle, manager_type, sec_acl_type_object, mgr_sv);
     sec_acl_get_access(handle, &manager_type, &permset, &status);

     XPUSHs_iv(permset);
     DCESTATUS;
   }

void
sec_acl_lookup(handle, mgr_sv, sec_acl_type=sec_acl_type_object) 
DCE::ACL::handle handle
SV      *mgr_sv
sec_acl_type_t  sec_acl_type

    PPCODE:
    {
    sec_acl_list_t *l = 
	(sec_acl_list_t *)safemalloc(sizeof(sec_acl_list_t));  
    uuid_t manager_type;
    error_status_t status, rstatus;
    SV *list = sv_newmortal();

    SNAG_FIRST_MANAGER(handle, manager_type, sec_acl_type_object, mgr_sv);    
    sec_acl_lookup(handle, &manager_type, sec_acl_type, 
		   l, &status);

ACL/ACL.xs  view on Meta::CPAN

   CODE:
   RETVAL = l->num_acls;
    
   OUTPUT:
   RETVAL

DCE::ACL
acls(l, ...)
DCE::ACL::list l

   PPCODE:
   {
   int i;
   if(items > 1) {
       i = (int)SvIV(ST(1));
       BLESS_ACL(l->sec_acls[i]);
   }
   else {
       if(WANTARRAY) {
	   for(i=0; i < l->num_acls; i++)
	       BLESS_ACL(l->sec_acls[i]);

ACL/ACL.xs  view on Meta::CPAN

   }
   }

MODULE = DCE::ACL		PACKAGE = DCE::ACL        PREFIX = dce_acl_obj_

void
dce_acl_obj_init(self, mgr_sv)
SV *self
SV *mgr_sv

    PPCODE:
    {
    uuid_t manager_type;	
    sec_acl_t *acl = (sec_acl_t *)safemalloc(sizeof(sec_acl_t));
    error_status_t status;
    
    UUIDmagic_sv(manager_type, mgr_sv); 

    dce_acl_obj_init(&manager_type, acl, &status);
    BLESS_ACL(acl);
    if(WANTARRAY)
	DCESTATUS;
    }

void
dce_acl_obj_add_any_other_entry(acl, permset)
DCE::ACL acl
sec_acl_permset_t permset

    PPCODE:
    {
    error_status_t status;
    dce_acl_obj_add_any_other_entry(acl, permset, &status);
    DCESTATUS;
    }

MODULE = DCE::ACL		PACKAGE = DCE::ACL        PREFIX = sec_acl_

void
sec_acl_bind(package, entry_name, bind_to_entry=FALSE)
char *package
unsigned char *entry_name
boolean32 bind_to_entry

    PPCODE:
    {
    sec_acl_handle_t  handle;
    error_status_t status;
    SV *sv;
    package = "DCE::ACL::handle"; 

    sec_acl_bind(entry_name, bind_to_entry, &handle, &status);
    CHK_STS(1);
    BLESS_ACL_HANDLE;
    }

void
sec_acl_bind_to_addr(package, site_addr, component_name)
char *package
unsigned char *site_addr
unsigned char *component_name

    PPCODE:
    {
    sec_acl_handle_t  handle;
    error_status_t status;
    SV *sv;
    package = "DCE::ACL::handle"; 

    sec_acl_bind_to_addr(site_addr, component_name, &handle, &status);
    CHK_STS(1);
    BLESS_ACL_HANDLE;
    }

ACL/ACL.xs  view on Meta::CPAN

    RETVAL = uuid_sv;
    }

    OUTPUT:
    RETVAL

void
entries(acl, ...)
DCE::ACL acl

    PPCODE:
    {
    int i;
    if(items > 1) {	
	i = (int)SvIV(ST(1));
	BLESS_ACL_ENTRY(&acl->sec_acl_entries[i]);
    }
    else {
	for(i=0; i<acl->num_entries; i++)
	    BLESS_ACL_ENTRY(&acl->sec_acl_entries[i]);
    }

ACL/ACL.xs  view on Meta::CPAN

    }

    OUTPUT:
    RETVAL

void
add(acl, e)
DCE::ACL acl
DCE::ACL::entry e

    PPCODE:
    {
    int i;
    sec_acl_entry_t *new_sec_acl_entries;
    boolean32       entry_found = FALSE;
    error_status_t status;

    SET_STATUS(&status, error_status_ok);

    new_sec_acl_entries = (sec_acl_entry_t *)safemalloc(
       (acl->num_entries + 1) * sizeof(sec_acl_entry_t));

ACL/ACL.xs  view on Meta::CPAN

    acl->sec_acl_entries = new_sec_acl_entries;
    acl->num_entries++;
    DCESTATUS;
    }

void
remove(acl, e)
DCE::ACL acl
DCE::ACL::entry e

    PPCODE:
    {
    int i, j;
    boolean32       entry_found = FALSE;
    error_status_t  status;

    SET_STATUS(&status, error_status_ok);
    /* 
     * We have existing ACL, now check for no ACL entries
     */
    if ((acl->num_entries > 0) &&

Login/Login.xs  view on Meta::CPAN


# this will get a sealed certificate for the principal from the secserver,
# and return a list of ($login_context, $status)

void
sec_login_setup_identity(package = "DCE::Login", principal, flags=sec_login_no_flags)
  char *package
  unsigned_char_p_t	principal
  sec_login_flags_t	flags

  PPCODE:
  {
    sec_login_handle_t	login_context;
    error_status_t	status;
    SV *sv;

    sec_login_setup_identity(principal, flags, &login_context, &status);
    BLESS_LOGIN_CONTEXT;
  }

void
sec_login_get_current_context(package = "DCE::Login")
  char *package

  PPCODE:
  {
    sec_login_handle_t login_context;
    error_status_t	status;
    SV *sv;

    sec_login_get_current_context(&login_context, &status);
    BLESS_LOGIN_CONTEXT;
  }

void
sec_login_validate_identity(login_context, password)
  DCE::Login	login_context
  char *	password  

  PPCODE:
  {
    boolean32	reset_passwd, retval;
    sec_login_auth_src_t	auth_src;
    error_status_t	status;
    sec_passwd_rec_t	passwd;
    
    /* load passwd struct */
    passwd.key.key_type = sec_passwd_plain;
    passwd.key.tagged_union.plain = password;
    passwd.pepper = NULL;

Login/Login.xs  view on Meta::CPAN

	PUSHs_iv(reset_passwd);
	PUSHs_iv(auth_src);
    }
    DCESTATUS;
  }    

void
sec_login_certify_identity(login_context)
  DCE::Login	login_context

  PPCODE:
  {
    error_status_t	status;
    boolean32 retval;
    retval = sec_login_certify_identity(login_context, &status);
    if(GIMME == G_ARRAY)
	XPUSHs_iv(retval);
    DCESTATUS;
  }

void
sec_login_valid_and_cert_ident(login_context, password)
  DCE::Login	login_context
  char *password  

  PPCODE:
  {
    boolean32	reset_passwd, retval;
    sec_login_auth_src_t	auth_src;
    error_status_t	status;
    sec_passwd_rec_t	passwd;
    sec_passwd_str_t    pbuf;

    strncpy((char *)pbuf, password, sec_passwd_str_max_len);
    pbuf[sec_passwd_str_max_len] = '\0';

Login/Login.xs  view on Meta::CPAN

    EXTEND(sp,2);
    PUSHs_iv(reset_passwd);
    PUSHs_iv(auth_src);
    DCESTATUS;
  }

void
sec_login_set_context(login_context)
  DCE::Login	login_context

  PPCODE:
  {
    error_status_t	status;
    sec_login_set_context(login_context, &status);
    DCESTATUS;
  }

void
sec_login_purge_context(login_context)
  DCE::Login	login_context

  PPCODE:
  {
    error_status_t	status;
    sec_login_purge_context(&login_context, &status);
    sv_setref_pv(ST(0), "DCE::Login", (void*)login_context);
    DCESTATUS;
  }

void
sec_login_release_context(login_context)
  DCE::Login	login_context

  PPCODE:
  {
    error_status_t	status;
    sec_login_release_context(&login_context, &status);
    sv_setref_pv(ST(0), "DCE::Login", (void*)login_context);
    DCESTATUS;
  }

void
sec_login_DESTROY(login_context)
  DCE::Login	login_context

  PPCODE:
  {
    error_status_t	status;
    sec_login_release_context(&login_context, &status);
  }

void
sec_login_get_expiration(login_context)
  DCE::Login	login_context

  PPCODE:
  {
    signed32	identity_expiration;
    error_status_t	status;
    sec_login_get_expiration(login_context, &identity_expiration, &status);
    XPUSHs_iv(identity_expiration);
    DCESTATUS;
  }

void
sec_login_refresh_identity(login_context)
  DCE::Login	login_context

  PPCODE:
  {
    error_status_t	status;
    sec_login_refresh_identity(login_context, &status);
    DCESTATUS;
  }

void
sec_login_import_context(package = "DCE::Login", buf_len, buf)
  char *package;
  unsigned32	buf_len
  char *	buf

  PPCODE:
  {
  sec_login_handle_t	login_context;
  error_status_t	status;
  SV *sv;

  sec_login_import_context(buf_len, buf, &login_context, &status);

  BLESS_LOGIN_CONTEXT;
  }

void
sec_login_export_context(login_context, buf_len)
  DCE::Login	login_context
  unsigned32	buf_len

  PPCODE:
  {
    char *	buf;
    unsigned32	len_used;
    unsigned32	len_needed;
    error_status_t	status;
  
    buf = malloc(buf_len);
    sec_login_export_context(login_context, buf_len, buf, &len_used, &len_needed, &status);

    EXTEND(sp, 3);

Login/Login.xs  view on Meta::CPAN

    PUSHs_iv(len_used);
    PUSHs_iv(len_needed);
    DCESTATUS;
    free(buf);
  }

void
sec_login_get_pwent(login_context)
  DCE::Login 	login_context

  PPCODE:
  {
    struct passwd *pwd;
    error_status_t 	status;
    HV *hv;

    sec_login_get_pwent(login_context, (sec_login_passwd_t *)&pwd, &status);

    iniHV;
    hv_store(hv, "name", 4, newSVpv(pwd->pw_name,0),0);
    hv_store(hv, "passwd", 6, newSVpv(pwd->pw_passwd,0),0);

Registry/Registry.xs  view on Meta::CPAN

typedef sec_rgy_login_name_t * DCE__login_name;

MODULE = DCE::Registry  PACKAGE = DCE::Registry  PREFIX = sec_rgy_
PROTOTYPES: DISABLE

void
sec_rgy_DESTROY(rgy_context)
  DCE::Registry	rgy_context
   
    
  PPCODE:
  {
    error_status_t	status = error_status_ok;
    if (rgy_context != sec_rgy_default_handle)
      sec_rgy_site_close(rgy_context, &status);
    DCESTATUS;
  }

void
sec_rgy_site_default(package="DCE::Registry")
  char * package;
  
  PPCODE:
  {
    sec_rgy_handle_t rgy_context = sec_rgy_default_handle;
    error_status_t status = error_status_ok;

    SV *sv = sv_newmortal();
    sv_setref_iv(sv,package,(int)rgy_context);
    XPUSHs(sv);
    DCESTATUS;
  }

void
sec_rgy_site_bind(package="DCE::Registry",site_name="",hash_ref=&PL_sv_undef)
  char *	package
  char *	site_name
  SV *	hash_ref

  PPCODE:
  {
  sec_rgy_handle_t	rgy_context; 
  error_status_t	status; 
  STRLEN len; 
  sec_rgy_bind_auth_info_t	auth_info; 
  SV *sv; 
  SV **svp;
  HV *stash, *info; 
  
  FETCH_AUTH_INFO;
  sec_rgy_site_bind(site_name, &auth_info, &rgy_context, &status);
  BLESS_RGY_CONTEXT;
  }

void
sec_rgy_cell_bind(package="DCE::Registry",cell_name="",hash_ref=&PL_sv_undef)
  char *	package
  char *	cell_name
  SV *	hash_ref

  PPCODE:
  {
  sec_rgy_handle_t	rgy_context; 
  error_status_t	status; 
  STRLEN len; 
  sec_rgy_bind_auth_info_t	auth_info; 
  SV *sv; 
  SV **svp;
  HV *stash, *info; 
  
  FETCH_AUTH_INFO;

Registry/Registry.xs  view on Meta::CPAN

  BLESS_RGY_CONTEXT;
  }


void
sec_rgy_site_bind_query(package="DCE::Registry",site_name="",hash_ref=&PL_sv_undef)
  char *	package
  char *	site_name
  SV *	hash_ref

  PPCODE:
  {
  sec_rgy_handle_t	rgy_context; 
  error_status_t	status; 
  STRLEN len; 
  sec_rgy_bind_auth_info_t	auth_info; 
  SV *sv; 
  SV **svp;
  HV *stash, *info; 
  
  FETCH_AUTH_INFO;
  sec_rgy_site_bind_query(site_name, &auth_info, &rgy_context, &status);
  BLESS_RGY_CONTEXT;
  }

void
sec_rgy_site_bind_update(package="DCE::Registry",site_name="",hash_ref=&PL_sv_undef)
  char *	package
  char *	site_name
  SV *	hash_ref

  PPCODE:
  {
  sec_rgy_handle_t	rgy_context; 
  error_status_t	status; 
  STRLEN len; 
  sec_rgy_bind_auth_info_t	auth_info; 
  SV *sv; 
  SV **svp;
  HV *stash, *info; 
  
  FETCH_AUTH_INFO;
  sec_rgy_site_bind_update(site_name, &auth_info, &rgy_context, &status);
  BLESS_RGY_CONTEXT;
  }


void
sec_rgy_site_open(package="DCE::Registry",site_name="")
  char *	package
  char *	site_name

  PPCODE:
  {
    sec_rgy_handle_t	rgy_context; 
    error_status_t	status; 
    HV *stash;
    SV *sv;

    sec_rgy_site_open(site_name, &rgy_context, &status);
    BLESS_RGY_CONTEXT;
  }

void
sec_rgy_site_open_query(package="DCE::Registry",site_name="")
  char *	package
  char *	site_name

  PPCODE:
  {
    sec_rgy_handle_t	rgy_context; 
    error_status_t	status; 
    HV *stash;
    SV *sv;

    sec_rgy_site_open_query(site_name, &rgy_context, &status);
    BLESS_RGY_CONTEXT;
  }

void
sec_rgy_site_open_update(package="DCE::Registry",site_name="")
  char *	package
  char *	site_name

  PPCODE:
  {
    sec_rgy_handle_t	rgy_context; 
    error_status_t	status; 
    HV *stash;
    SV *sv;

    sec_rgy_site_open_update(site_name, &rgy_context, &status); 
    BLESS_RGY_CONTEXT;
  }

void
sec_rgy_site_binding_get_info(rgy_context)
  DCE::Registry	rgy_context

  PPCODE:
  {
    sec_rgy_bind_auth_info_t auth_info;
    unsigned_char_t *	cell_name;
    unsigned_char_t *	server_name;
    unsigned_char_t *	string_binding;
    error_status_t	status;
    STRLEN len;

    sec_rgy_site_binding_get_info(rgy_context, &cell_name, 
		&server_name, &string_binding, &auth_info, &status);

Registry/Registry.xs  view on Meta::CPAN

	DCESTATUS;
    }
    else
	PUSHs_pv(cell_name);
  }

unsigned_char_t *
sec_rgy_site_get(rgy_context)
  DCE::Registry		rgy_context

  PPCODE:
  {
    unsigned_char_t * site_name;
    error_status_t status;

    sec_rgy_site_get(rgy_context, &site_name, &status);

    XPUSHs_pv(site_name);
    if(WANTARRAY)
	DCESTATUS;
  }

void
sec_rgy_site_close(rgy_context)
  DCE::Registry	rgy_context

  PPCODE:
  {
    error_status_t	status;
    sec_rgy_site_close(rgy_context, &status);
    DCESTATUS;
  }

boolean32
sec_rgy_site_is_readonly(rgy_context)
  DCE::Registry	rgy_context

Registry/Registry.xs  view on Meta::CPAN


  OUTPUT:
  RETVAL

void
sec_rgy_pgo_unix_num_to_id(rgy_context, domain, unix_num)
  DCE::Registry	rgy_context
  sec_rgy_domain_t	domain
  long	unix_num

  PPCODE:
  {
   uuid_t uuid_struct;
   error_status_t status;
   SV *uuid_sv;

   sec_rgy_pgo_unix_num_to_id(rgy_context, domain, unix_num, 
			       &uuid_struct, &status);

   BLESS_UUID_mortal(uuid_struct);
   XPUSHs(uuid_sv); 

Registry/Registry.xs  view on Meta::CPAN

    if(WANTARRAY) 
	DCESTATUS;
  }

void
sec_rgy_pgo_unix_num_to_name(rgy_context, domain, unix_num)
  DCE::Registry	rgy_context
  sec_rgy_domain_t	domain
  long	unix_num

  PPCODE:
  {
    char *	name;
    error_status_t	status;
    name = (char *) malloc(sizeof(char)* 1025);
    sec_rgy_pgo_unix_num_to_name(rgy_context, domain, unix_num, name, &status);
    XPUSHs_pv(name);

    if(WANTARRAY) 
	DCESTATUS;
  }

void
sec_rgy_pgo_id_to_unix_num(rgy_context, domain, uuid)
  DCE::Registry	rgy_context
  sec_rgy_domain_t	domain
  SV  *uuid

  PPCODE:
  {
    uuid_t  uuid_struct;
    error_status_t	uuid_status;
    signed32	unix_id;
    error_status_t	status;

    UUIDmagic_sv(uuid_struct, uuid);
    sec_rgy_pgo_id_to_unix_num(rgy_context, domain, &uuid_struct, 
			       &unix_id, &status);
    XPUSHs_iv(unix_id);

Registry/Registry.xs  view on Meta::CPAN

    if(WANTARRAY) 
	DCESTATUS;
  }

void
sec_rgy_pgo_id_to_name(rgy_context, domain, item_id)
  DCE::Registry		rgy_context
  sec_rgy_domain_t	domain
  SV *item_id

  PPCODE:
  {
    error_status_t	status;
    uuid_t              uuid;
    sec_rgy_name_t	pgo_name;
    sec_rgy_name_t      retval;

    UUIDmagic_sv(uuid, item_id);
    sec_rgy_pgo_id_to_name(rgy_context, domain, &uuid, pgo_name, &status);
    strncpy(retval, pgo_name, 1024); 

Registry/Registry.xs  view on Meta::CPAN

    if(WANTARRAY) 
	DCESTATUS;	
  }

void
sec_rgy_pgo_name_to_unix_num(rgy_context, domain, name)
  DCE::Registry	rgy_context
  sec_rgy_domain_t	domain
  char *	name

  PPCODE:
  {
    signed32	unix_id;
    error_status_t	status;

    sec_rgy_pgo_name_to_unix_num(rgy_context, domain, name, &unix_id, &status);

    XPUSHs(newSViv(unix_id));
    if(WANTARRAY) 
	DCESTATUS;
  }

void
sec_rgy_pgo_name_to_id(rgy_context, domain, name)
  DCE::Registry		rgy_context
  sec_rgy_domain_t	domain
  char *	name

  PPCODE:
  {
    uuid_t	uuid_struct;
    error_status_t	status;
    SV *uuid_sv;
    sec_rgy_pgo_name_to_id(rgy_context, domain, name, &uuid_struct, &status);

    BLESS_UUID_mortal(uuid_struct);
    XPUSHs(uuid_sv); 
    if(WANTARRAY) 
	DCESTATUS;
  }

void
sec_rgy_pgo_add(rgy_context, domain, name, hash_ref)
  DCE::Registry	rgy_context
  sec_rgy_domain_t	domain
  char *	name
  SV *hash_ref

  PPCODE:
  {
    error_status_t	status;
    sec_rgy_pgo_item_t  pgo_item;
    SV **svp;     
    HV *info; 

    FETCH_PGO_ITEM;
    sec_rgy_pgo_add(rgy_context, domain, name, &pgo_item, &status);
    DCESTATUS;
  }

void
sec_rgy_pgo_replace(rgy_context, domain, name, hash_ref)
  DCE::Registry	rgy_context
  sec_rgy_domain_t	domain
  char *	name
  SV *hash_ref

  PPCODE:
  {
    error_status_t	status;
    sec_rgy_pgo_item_t  pgo_item;
    SV **svp;     
    HV *info; 

    FETCH_PGO_ITEM;
    sec_rgy_pgo_replace(rgy_context, domain, name, &pgo_item, &status);
    DCESTATUS;
  }

void
sec_rgy_pgo_rename(rgy_context, domain, old_name, new_name)
  DCE::Registry	rgy_context
  sec_rgy_domain_t	domain
  char *	old_name
  char *	new_name

  PPCODE:
  {
    sec_rgy_name_t  old_pgo_name, new_pgo_name;
    error_status_t	status;    

    strncpy(old_pgo_name, old_name, 1024);
    strncpy(new_pgo_name, new_name, 1024);

    sec_rgy_pgo_rename(rgy_context,domain,old_pgo_name,new_pgo_name,&status);
    DCESTATUS;
  }

void
sec_rgy_pgo_delete(rgy_context, domain, name)
  DCE::Registry	rgy_context
  sec_rgy_domain_t	domain
  char *	name

  PPCODE:
  {
    error_status_t	status;

    sec_rgy_pgo_delete(rgy_context, domain, name, &status);
    DCESTATUS;
  }

void
sec_rgy_pgo_add_member(rgy_context, domain, name, person)
  DCE::Registry	rgy_context
  sec_rgy_domain_t	domain
  char *	name
  char *	person

  PPCODE:
  {
    sec_rgy_name_t	go_name;
    sec_rgy_name_t	person_name;
    error_status_t	status;

    strncpy(go_name, name, 1025);
    strncpy(person_name, person, 1025);

    sec_rgy_pgo_add_member(rgy_context, domain, go_name, person_name, &status);
    DCESTATUS;
  }

void
sec_rgy_pgo_delete_member(rgy_context, domain, name, person)
  DCE::Registry	rgy_context
  sec_rgy_domain_t	domain
  char *	name
  char *	person

  PPCODE:
  {
    sec_rgy_name_t	go_name;
    sec_rgy_name_t	person_name;
    error_status_t	status;

    strncpy(go_name, name, 1025);
    strncpy(person_name, person, 1025);

    sec_rgy_pgo_delete_member(rgy_context, domain, go_name, person_name, &status);
    DCESTATUS;

Registry/Registry.xs  view on Meta::CPAN

  OUTPUT:
  RETVAL

void
sec_rgy_pgo_get_next(rgy_context, domain, scope, item_cursor)
  DCE::Registry	rgy_context
  sec_rgy_domain_t	domain
  char *	scope
  DCE::RegistryCursor	item_cursor

  PPCODE:
  {
    error_status_t	status;
    sec_rgy_pgo_item_t  pgo_item;
    uuid_t  uuid_struct;
    sec_rgy_name_t	pgo_name;
    SV *rv, *uuid_sv;
    HV *hv;

    sec_rgy_pgo_get_next(rgy_context, domain, scope, item_cursor, &pgo_item, pgo_name, &status);

Registry/Registry.xs  view on Meta::CPAN

    DCESTATUS;
  }

void
sec_rgy_pgo_is_member(rgy_context, domain, name, person)
  DCE::Registry	rgy_context
  sec_rgy_domain_t	domain
  char *	name
  char *	person

  PPCODE:
  {
    sec_rgy_name_t	go_name;
    sec_rgy_name_t	person_name;
    boolean32           is_mem;
    error_status_t	status;

    strncpy(go_name, name, 1025);
    strncpy(person_name, person, 1025);

    is_mem = sec_rgy_pgo_is_member(rgy_context, domain, 

Registry/Registry.xs  view on Meta::CPAN

    DCESTATUS;
  }

void
sec_rgy_pgo_get_by_name(rgy_context, domain, name, item_cursor)
  DCE::Registry	rgy_context
  sec_rgy_domain_t	domain
  char *	name
  DCE::RegistryCursor 	item_cursor

  PPCODE:
  {
    error_status_t	status;
    sec_rgy_pgo_item_t  pgo_item;
    uuid_t  uuid_struct;
    SV *rv, *uuid_sv;
    HV *hv;

    sec_rgy_pgo_get_by_name(rgy_context, domain, name, (sec_rgy_cursor_t *)item_cursor, &pgo_item, &status);

    if (!status) {

Registry/Registry.xs  view on Meta::CPAN


void
sec_rgy_pgo_get_by_unix_num(rgy_context, domain, scope, unix_id, allow_aliases, cursor)
  DCE::Registry	rgy_context
  sec_rgy_domain_t	domain
  char *	scope
  signed32	unix_id
  boolean32	allow_aliases
  DCE::RegistryCursor 	cursor

  PPCODE:
  {
    error_status_t	status;
    sec_rgy_pgo_item_t  pgo_item;
    uuid_t  uuid_struct;
    char *name;
    SV *rv, *uuid_sv;
    HV *hv;

    sec_rgy_pgo_get_by_unix_num(rgy_context, domain, scope, unix_id, 
				allow_aliases, (sec_rgy_cursor_t *)cursor, 

Registry/Registry.xs  view on Meta::CPAN


void
sec_rgy_pgo_get_by_id(rgy_context, domain, scope, id, allow_aliases, cursor)
  DCE::Registry	rgy_context
  sec_rgy_domain_t	domain
  char *	scope
  SV *	id
  boolean32	allow_aliases
  DCE::RegistryCursor	cursor

  PPCODE:
  {
    sec_rgy_pgo_item_t  pgo_item;
    uuid_t  uuid_struct;
    error_status_t status;
    char *name; 
    SV *rv, *uuid_sv;
    HV *hv;

    UUIDmagic_sv(uuid_struct, id);
    sec_rgy_pgo_get_by_id(rgy_context, domain, scope, &uuid_struct, 

Registry/Registry.xs  view on Meta::CPAN

  }

void
sec_rgy_pgo_get_members(rgy_context, domain, name, member_cursor, max_members = 20)
  DCE::Registry	rgy_context
  sec_rgy_domain_t	domain
  char *	name
  DCE::RegistryCursor	member_cursor
  long	 max_members

  PPCODE:
  {
    error_status_t	status;
    sec_rgy_member_t *member_list;
    signed32 number_supplied, number_members, i;
    AV *av;

    member_list = (sec_rgy_member_t *)malloc(sizeof(sec_rgy_member_t) * max_members);

    sec_rgy_pgo_get_members(rgy_context, domain, name, 
			    (sec_rgy_cursor_t *)member_cursor, max_members, 

Registry/Registry.xs  view on Meta::CPAN

    DCESTATUS;
  }


void
sec_rgy_acct_lookup(rgy_context, login_name_ref, cursor)
  DCE::Registry	rgy_context
  SV	*login_name_ref
  DCE::RegistryCursor	cursor

  PPCODE:
  {
    char *pname_result, *gname_result, *oname_result;
    sec_rgy_acct_key_t	key_parts;
    sec_timeval_sec_t	creation_date;
    error_status_t	status;
  
    sec_rgy_login_name_t login_name, name_result;
    sec_rgy_sid_t id_sid;
    sec_rgy_unix_sid_t unix_sid;
    sec_rgy_acct_user_t user_part;

Registry/Registry.xs  view on Meta::CPAN

  DCE::Registry	rgy_context
  SV	*login_name_ref
  sec_rgy_acct_key_t	key_parts
  SV	*user_part_ref
  boolean32	set_passwd
  SV	*admin_part_ref
  char *	caller_key
  char *	new_key
  sec_passwd_type_t	new_keytype

  PPCODE:
  {
    sec_passwd_version_t	new_key_version;
    sec_rgy_login_name_t	login_name;
    sec_rgy_acct_user_t	user_part;
    sec_rgy_acct_admin_t admin_part;
    sec_passwd_rec_t	caller_key_rec, new_key_rec;
    char caller_key_arr[BUFSIZ], new_key_arr[BUFSIZ];
    error_status_t	status;
    SV **svp;
    HV *hv;

Registry/Registry.xs  view on Meta::CPAN

void
sec_rgy_acct_user_replace(rgy_context, login_name_ref, user_part_ref, set_passwd, caller_key, new_key, new_keytype)
  DCE::Registry	rgy_context
  SV	*login_name_ref
  SV	*user_part_ref
  boolean32	set_passwd
  char *	caller_key
  char *	new_key
  sec_passwd_type_t	new_keytype

  PPCODE:
  {
    sec_passwd_version_t	new_key_version;
    sec_rgy_login_name_t	login_name;
    sec_rgy_acct_user_t	user_part;
    sec_passwd_rec_t	caller_key_rec, new_key_rec;
    char caller_key_arr[BUFSIZ], new_key_arr[BUFSIZ];
    error_status_t	status;
    SV **svp;
    HV *hv;
    STRLEN len;

Registry/Registry.xs  view on Meta::CPAN

sec_rgy_acct_add(rgy_context, login_name_ref, key_parts, user_part_ref, admin_part_ref, caller_key, new_key, new_keytype)
  DCE::Registry	rgy_context
  SV	*login_name_ref
  sec_rgy_acct_key_t	key_parts
  SV	*user_part_ref
  SV	*admin_part_ref
  char *	caller_key
  char *	new_key
  sec_passwd_type_t	new_keytype

  PPCODE:
  {
    sec_passwd_version_t	new_key_version;
    sec_rgy_login_name_t	login_name;
    sec_rgy_acct_user_t	user_part;
    sec_rgy_acct_admin_t admin_part;
    sec_passwd_rec_t	caller_key_rec, new_key_rec;
    char caller_key_arr[BUFSIZ], new_key_arr[BUFSIZ];
    error_status_t	status;
    SV **svp;
    HV *hv;

Registry/Registry.xs  view on Meta::CPAN

  }

void
sec_rgy_acct_passwd(rgy_context, login_name_ref, caller_key, new_key, new_keytype)
  DCE::Registry	rgy_context
  SV	*login_name_ref
  char *	caller_key
  char *	new_key
  sec_passwd_type_t	new_keytype

  PPCODE:
  {
    sec_passwd_version_t	new_key_version;
    sec_rgy_login_name_t	login_name;
    sec_passwd_rec_t	caller_key_rec, new_key_rec;
    char caller_key_arr[BUFSIZ], new_key_arr[BUFSIZ];
    error_status_t	status;
    SV **svp;
    HV *hv;
    STRLEN len;

Registry/Registry.xs  view on Meta::CPAN

    DCESTATUS;
  }

void
sec_rgy_acct_admin_replace(rgy_context, login_name_ref, key_parts, admin_part_ref)
  DCE::Registry	rgy_context
  SV	*login_name_ref
  sec_rgy_acct_key_t	key_parts
  SV	*admin_part_ref

  PPCODE:
  {
    sec_rgy_login_name_t	login_name;
    sec_rgy_acct_admin_t admin_part;
    sec_passwd_rec_t	caller_key_rec, new_key_rec;
    char caller_key_arr[BUFSIZ], new_key_arr[BUFSIZ];
    error_status_t	status;
    SV **svp;
    HV *hv;
    STRLEN len;

Registry/Registry.xs  view on Meta::CPAN

			       &admin_part, &status);

    DCESTATUS;
  }

void
sec_rgy_acct_delete(rgy_context, login_name_ref)
  DCE::Registry	rgy_context
  SV	*login_name_ref

  PPCODE:
  {
    sec_rgy_login_name_t	login_name;
    error_status_t	status;
    SV **svp;
    HV *hv;
    STRLEN len;

    FETCH_LOGIN_NAME;
    sec_rgy_acct_delete(rgy_context, &login_name, &status);
    DCESTATUS;

Registry/Registry.xs  view on Meta::CPAN

			&new_key_parts, &status);
    XPUSHs_iv(new_key_parts);
    DCESTATUS;
  }

void
sec_rgy_plcy_get_info(rgy_context, organization)
  DCE::Registry	rgy_context
  char *	organization

  PPCODE:
  {
    sec_rgy_plcy_t policy_data;
    error_status_t	status;
    HV *hv;

    sec_rgy_plcy_get_info(rgy_context, organization, &policy_data, &status);
    STORE_POLICY_DATA;
  }

void
sec_rgy_plcy_set_info(rgy_context, organization, policy_data_ref)
  DCE::Registry	rgy_context
  char	 *organization
  SV	*policy_data_ref

  PPCODE:
  {
    sec_rgy_plcy_t policy_data;
    error_status_t	status;
    HV *hv;
    SV **svp;

    hv = (HV*)SvRV(policy_data_ref);
    svp = hv_fetch(hv,"passwd_min_len",14,1);
    policy_data.passwd_min_len = (signed32 )SvIV(*svp);

Registry/Registry.xs  view on Meta::CPAN


    sec_rgy_plcy_set_info(rgy_context, organization, &policy_data, &status);
    DCESTATUS;
  }

void
sec_rgy_plcy_get_effective(rgy_context, organization)
  DCE::Registry	rgy_context
  char *	organization

  PPCODE:
  {
    sec_rgy_plcy_t policy_data;
    error_status_t	status;
    HV *hv;

    sec_rgy_plcy_get_effective(rgy_context, organization, &policy_data, &status);
    STORE_POLICY_DATA;
  }

MODULE = DCE::Registry  PACKAGE = DCE::Registry

void
era(rgy_context, era_name)
  DCE::Registry rgy_context
  char *era_name

  PPCODE:
     {
       SV *sv = &PL_sv_undef;
       DCE__Registry__era era;
       sec_attr_schema_entry_t era_schema;
       error_status_t status;

       era = (DCE__Registry__era)malloc(sizeof(era_obj_t));
       if (!era)
	 status = sec_s_no_memory;
       else

Registry/Registry.xs  view on Meta::CPAN

     }



MODULE = DCE::Registry  PACKAGE = DCE::cursor

void
new(package)
  char	*package
     
  PPCODE:
  {
    SV *cursor;
    sec_rgy_cursor_t *rgy_cursor;
    rgy_cursor = malloc(sizeof(sec_rgy_cursor_t));
    cursor = sv_newmortal();
    warn("Don't call DCE::cursor->new, use DCE::Registry->cursor instead!!!");
    sv_setref_pv((SV*)cursor, "DCE::RegistryCursor", (void *)rgy_cursor);
    XPUSHs(cursor);
  }

Registry/Registry.xs  view on Meta::CPAN


  CODE:
  {
    sec_rgy_cursor_reset(cursor);
  }

void
new(package)
  char	*package
     
  PPCODE:
  {
    SV *cursor;
    sec_rgy_cursor_t *rgy_cursor;
    rgy_cursor = malloc(sizeof(sec_rgy_cursor_t));
    cursor = sv_newmortal();
    sv_setref_pv((SV*)cursor, package, (void *)rgy_cursor);
    XPUSHs(cursor);
  }

MODULE = DCE::Registry          PACKAGE = DCE::Registry::era

Registry/Registry.xs  view on Meta::CPAN

DCE::Registry::era era

  CODE:
  {
  }

void
name(era)
DCE::Registry::era era

  PPCODE:
  {
    XPUSHs(newSVpv(era->name, 0));
  }

int
type(era)
DCE::Registry::era era

  CODE:
  {

Registry/Registry.xs  view on Meta::CPAN


    RETVAL = status;
  }
  OUTPUT:
  RETVAL

void
value(era)
DCE::Registry::era era

  PPCODE:
  {
    HV *hv = newHV();
    error_status_t status = 0;

    
    if (!era->initialized)
      status = sec_attr_bad_param;
    else
      switch (era->attr.attr_value.attr_encoding)
	{

UUID/UUID.xs  view on Meta::CPAN

#include "../DCE_Perl.h"

MODULE = DCE::UUID PACKAGE = DCE::UUID

void
uuid_create()

    PPCODE:
    {
    error_status_t	status;
    uuid_t	uuid;
    SV *uuid_sv;

    uuid_create(&uuid, &status);
    BLESS_UUID(uuid);
    XPUSHs(uuid_sv);
    if(WANTARRAY)
	DCESTATUS;
    }

void
uuid_hash(uuid, status)
SV *uuid

    PPCODE:
    {
    uuid_t	uuid_struct;
    unsigned16  hash;
    error_status_t	status;

    UUIDmagic_sv(uuid_struct, uuid);
    hash = uuid_hash(&uuid_struct, &status);
    XPUSHs_iv(hash);
    if(WANTARRAY)
	DCESTATUS;



( run in 1.370 second using v1.01-cache-2.11-cpan-71847e10f99 )