Net-LDAPapi

 view release on metacpan or  search on metacpan

LDAPapi.xs  view on Meta::CPAN

    LDAPMessage *   preventry

LDAPMessage *
ldap_first_message(ld, chain)
    LDAP        *ld
    LDAPMessage *chain

LDAPMessage *
ldap_next_message(ld, chain)
    LDAP        *ld
    LDAPMessage *chain

SV *
ldap_get_dn(ld,entry)
    LDAP *          ld
    LDAPMessage *   entry
    PREINIT:
       char * dn;
    CODE:
    {
       dn = ldap_get_dn(ld, entry);
       if (dn)
       {
          RETVAL = newSVpv(dn,0);
          ldap_memfree(dn);
       } else {
          RETVAL = &PL_sv_undef;
       }
    }
    OUTPUT:
    RETVAL

void
ldap_perror(ld,s)
	LDAP *          ld
	LDAP_CHAR *     s

char *
ldap_dn2ufn(dn)
    LDAP_CHAR *     dn

#if defined(OPENLDAP)
int
ldap_str2dn(str,dn,flags)
    LDAP_CHAR *    str
    LDAPDN *       dn
    unsigned       flags

int ldap_str2rdn(str,rdn,n_in,flags)
    LDAP_CHAR *    str
    LDAPRDN *      rdn
    char **        n_in
    unsigned       flags

#endif

void
ldap_explode_dn(dn,notypes)
    char *          dn
    int             notypes
    PPCODE:
    {
       char ** LDAPGETVAL;
       int i;

       if ((LDAPGETVAL = ldap_explode_dn(dn,notypes)) != NULL)
       {
           for (i = 0; LDAPGETVAL[i] != NULL; i++)
           {
          EXTEND(sp,1);
          PUSHs(sv_2mortal(newSVpv(LDAPGETVAL[i],strlen(LDAPGETVAL[i]))));
           }
          ldap_value_free(LDAPGETVAL);
       }
    }

void
ldap_explode_rdn(dn,notypes)
    char *          dn
    int     notypes
    PPCODE:
    {
       char ** LDAPGETVAL;
       int i;

       if ((LDAPGETVAL = ldap_explode_rdn(dn,notypes)) != NULL)
       {
           for (i = 0; LDAPGETVAL[i] != NULL; i++)
           {
          EXTEND(sp,1);
          PUSHs(sv_2mortal(newSVpv(LDAPGETVAL[i],strlen(LDAPGETVAL[i]))));
           }
          ldap_value_free(LDAPGETVAL);
       }
    }

SV *
ldap_first_attribute(ld,entry,ber)
    LDAP *          ld
    LDAPMessage *   entry
    BerElement *    ber = NO_INIT
    PREINIT:
       char * attr;
    CODE:
    {
       attr = ldap_first_attribute(ld, entry, &ber);
       if (attr)
       {
          RETVAL = newSVpv(attr,0);
          ldap_memfree(attr);
       } else {
          RETVAL = &PL_sv_undef;
       }
    }
    OUTPUT:
    RETVAL
    ber

SV *
ldap_next_attribute(ld,entry,ber)
    LDAP *          ld
    LDAPMessage *   entry
    BerElement *    ber
    PREINIT:
       char * attr;
    CODE:
    {
       attr = ldap_next_attribute(ld, entry, ber);
       if (attr)
       {
          RETVAL = newSVpv(attr,0);
          ldap_memfree(attr);
       } else {
          RETVAL = &PL_sv_undef;
       }
    }
    OUTPUT:
    RETVAL
    ber


void
ldap_get_values_len(ld,entry,target)
    LDAP *          ld
    LDAPMessage *   entry
    char *          target
    PPCODE:
    {
       struct berval ** LDAPGETVAL;
       int i;

       if ((LDAPGETVAL = ldap_get_values_len(ld,entry,target)) != NULL)
       {
           for (i = 0; LDAPGETVAL[i] != NULL; i++)
           {
          EXTEND(sp,1);
          PUSHs(sv_2mortal(newSVpv(LDAPGETVAL[i]->bv_val,LDAPGETVAL[i]->bv_len)));
           }
       }
    }

#ifdef MOZILLA_LDAP

int
ldapssl_client_init(certdbpath,certdbhandle)
    char *          certdbpath
    void *          certdbhandle

LDAP *
ldapssl_init(defhost,defport,defsecure)
    char *          defhost
    int             defport
    int             defsecure

int
ldapssl_install_routines(ld)
    LDAP *          ld

#endif

void
ldap_set_rebind_proc(ld,rebind_function,args)
    LDAP *          ld
    SV *            rebind_function
    void *          args
    CODE:
    {
       if (SvTYPE(SvRV(rebind_function)) != SVt_PVCV)
       {
          // rebind_function is not actually a function
          // and we set rebind function to NULL
#if defined(MOZILLA_LDAP) || defined(OPENLDAP)
          ldap_set_rebind_proc(ld,NULL,NULL);
#else
          ldap_set_rebind_proc(ld,NULL);
#endif
       } else {
          if (ldap_perl_rebindproc == (SV*)NULL)
             ldap_perl_rebindproc = newSVsv(rebind_function);
          else
             SvSetSV(ldap_perl_rebindproc, rebind_function);
#if defined(OPENLDAP)
          ldap_set_rebind_proc(ld, internal_rebind_proc, args);
#endif
       }
    }



( run in 0.740 second using v1.01-cache-2.11-cpan-5511b514fd6 )