Net-LDAP-Gateway
view release on metacpan or search on metacpan
ldap_dn_normalize(dn)
SV * dn
CODE:
RETVAL = dn_normalize(dn);
OUTPUT:
RETVAL
SV *
ldap_peek_message(buffer)
SV *buffer
PPCODE:
{
int n = 0;
STRLEN bytes, request_len, src_len;
const char *start, *src, *max;
sv_utf8_downgrade(buffer, 0);
start = src = SvPV(buffer, src_len);
max = start + src_len;
if (peek_sequence(&src, max, &request_len)) {
mXPUSHu((src - start) + request_len);
n++;
}
}
}
}
}
XSRETURN(n);
}
void
ldap_shift_message(SV *buffer)
PPCODE:
{
STRLEN src_len, message_len;
const char *start = SvPV(buffer, src_len);
const char *src = start;
const char *max = start + src_len;
const char *save_max = max;
U32 msgid, op;
HV *out = newHV();
SV *out_ref = sv_2mortal(newRV_noinc((SV*)out));
AV *controls;
else
XSRETURN(3);
}
void
ldap_pack_message_ref(msgid, op, data, controls = 0)
U32 msgid
U32 op
HV *data
SV *controls
PPCODE:
{
SV *dest = new_message_sv();
start_ldap_message(dest, msgid);
ldap_pack_message_ref(dest, op, data, controls);
end_ldap_message(dest);
XPUSHs(dest);
XSRETURN(1);
}
void
ldap_pack_delete_request_ref = LDAP_OP_DELETE_REQUEST
ldap_pack_delete_response_ref = LDAP_OP_DELETE_RESPONSE
ldap_pack_modify_dn_request_ref = LDAP_OP_MODIFY_DN_REQUEST
ldap_pack_modify_dn_response_ref = LDAP_OP_MODIFY_DN_RESPONSE
ldap_pack_compare_request_ref = LDAP_OP_COMPARE_REQUEST
ldap_pack_compare_response_ref = LDAP_OP_COMPARE_RESPONSE
ldap_pack_abandon_request_ref = LDAP_OP_ABANDON_REQUEST
ldap_pack_extended_request_ref = LDAP_OP_EXTENDED_REQUEST
ldap_pack_extended_response_ref = LDAP_OP_EXTENDED_RESPONSE
ldap_pack_intermediate_response_ref = LDAP_OP_INTERMEDIATE_RESPONSE
PPCODE:
{
SV *dest = new_message_sv();
start_ldap_message(dest, msgid);
ldap_pack_message_ref(dest, ix, data, controls);
end_ldap_message(dest);
XPUSHs(dest);
XSRETURN(1);
}
void
ldap_pack_bind_request(msgid, version = 3, dn = 0, method = LDAP_AUTH_SIMPLE, arg1 = 0, arg2 = 0)
U32 msgid
U32 version
SV *dn
U32 method
SV *arg1
SV *arg2
PPCODE:
{
SV *dest = new_message_sv();
if (version > 3)
croak("bad LDAP protocol version %u", (unsigned int)version);
start_ldap_message(dest, msgid);
pack_bind_request_args(dest, version, dn, method, arg1, arg2);
end_ldap_message(dest);
XPUSHs(dest);
XSRETURN(1);
}
void
ldap_pack_unbind_request(msgid)
U32 msgid
PPCODE:
{
SV *dest = new_message_sv();
start_ldap_message(dest, msgid);
pack_unbind_request_args(dest);
end_ldap_message(dest);
XPUSHs(dest);
XSRETURN(1);
}
void
attributes = 0)
U32 msgid
SV *base_dn
U32 scope
U32 deref
U32 size_limit
U32 time_limit
U32 types_only
AV_opt *filter
SV *attributes
PPCODE:
{
SV *dest = new_message_sv();
start_ldap_message(dest, msgid);
pack_search_request_args(dest,
base_dn, scope, deref,
size_limit, time_limit, types_only,
filter, attributes);
end_ldap_message(dest);
XPUSHs(dest);
XSRETURN(1);
}
void
ldap_pack_search_entry_response(msgid, dn, ...)
U32 msgid
SV *dn
PPCODE:
{
SV *dest = new_message_sv();
if (items & 1)
croak("Usage: Net::LDAP::Gateway::search_entry_response("
"$msgid, $dn, attr => \\@values, attr => \\@values, ...)");
start_ldap_message(dest, msgid);
pack_search_entry_response_args(dest, dn, &(ST(2)), items - 2);
end_ldap_message(dest);
XPUSHs(dest);
XSRETURN(1);
}
void
ldap_pack_search_reference_response(msgid, ...)
U32 msgid
PPCODE:
{
SV *dest = new_message_sv();
start_ldap_message(dest, msgid);
pack_search_reference_response_args(dest, &(ST(1)), items - 1);
end_ldap_message(dest);
XPUSHs(dest);
XSRETURN(1);
}
void
ldap_pack_modify_request(msgid, dn, ...)
U32 msgid
SV *dn
PPCODE:
{
SV *dest = new_message_sv();
start_ldap_message(dest, msgid);
pack_modify_request_args(dest, dn, &(ST(2)), items - 2);
end_ldap_message(dest);
XPUSHs(dest);
XSRETURN(1);
}
void
ldap_pack_add_request(msgid, dn, ...)
U32 msgid
SV *dn
PPCODE:
{
SV *dest = new_message_sv();
if (items & 1)
croak("Usage: Net::LDAP::Gateway::add_request("
"$msgid, $dn, attr => \\@values, attr => \\@values, ...)");
start_ldap_message(dest, msgid);
pack_add_request_args(dest, dn, &(ST(2)), items - 2);
end_ldap_message(dest);
XPUSHs(dest);
XSRETURN(1);
}
void
ldap_pack_delete_request(msgid, dn)
U32 msgid
SV *dn
PPCODE:
{
SV *dest = new_message_sv();
start_ldap_message(dest, msgid);
pack_delete_request_args(dest, dn);
end_ldap_message(dest);
XPUSHs(dest);
XSRETURN(1);
}
void
ldap_pack_modify_dn_request(msgid, dn, new_rdn, delete_old_rdn = 0, new_superior = 0)
U32 msgid
SV *dn
SV *new_rdn
I32 delete_old_rdn
SV *new_superior
PPCODE:
{
SV *dest = new_message_sv();
start_ldap_message(dest, msgid);
pack_modify_dn_request_args(dest, dn, new_rdn, delete_old_rdn, new_superior);
end_ldap_message(dest);
XPUSHs(dest);
XSRETURN(1);
}
void
ldap_pack_compare_request(msgid, dn, attribute, value)
U32 msgid
SV *dn
SV *attribute
SV *value
PPCODE:
{
SV *dest = new_message_sv();
start_ldap_message(dest, msgid);
pack_compare_request_args(dest, dn, attribute, value);
end_ldap_message(dest);
XPUSHs(dest);
XSRETURN(1);
}
void
ldap_pack_abandon_request(msgid, target_msgid)
U32 msgid
U32 target_msgid
PPCODE:
{
SV *dest = new_message_sv();
start_ldap_message(dest, msgid);
pack_abandon_request_args(dest, target_msgid);
end_ldap_message(dest);
XPUSHs(dest);
XSRETURN(1);
}
void
_ldap_pack_extended_request(msgid, oid, value = 0)
U32 msgid
SV *oid
SV *value
PPCODE:
{
SV *dest = new_message_sv();
start_ldap_message(dest, msgid);
pack_extended_request_args(dest, oid, value);
end_ldap_message(dest);
XPUSHs(dest);
XSRETURN(1);
}
void
ldap_pack_extended_response(msgid, result = 0, matched_dn = 0, \
message = 0, referrals = 0, \
name = 0, value = 0)
U32 msgid
I32 result
SV *matched_dn
SV *message
SV *referrals
SV *name
SV *value
PPCODE:
{
SV *dest = new_message_sv();
start_ldap_message(dest, msgid);
pack_extended_response_args(dest, result, matched_dn, message,
referrals, name, value);
end_ldap_message(dest);
XPUSHs(dest);
XSRETURN(1);
}
void
ldap_pack_intermediate_response(msgid, oid = 0, value = 0)
U32 msgid
SV *oid
SV *value
PPCODE:
{
SV *dest = new_message_sv();
start_ldap_message(dest, msgid);
pack_intermediate_response_args(dest, oid, value);
end_ldap_message(dest);
XPUSHs(dest);
XSRETURN(1);
}
void
SV *message
SV *referrals
ALIAS:
ldap_pack_bind_response = LDAP_OP_BIND_RESPONSE
ldap_pack_search_done_response = LDAP_OP_SEARCH_DONE_RESPONSE
ldap_pack_modify_response = LDAP_OP_MODIFY_RESPONSE
ldap_pack_add_response = LDAP_OP_ADD_RESPONSE
ldap_pack_delete_response = LDAP_OP_DELETE_RESPONSE
ldap_pack_modify_dn_response = LDAP_OP_MODIFY_DN_RESPONSE
ldap_pack_compare_response = LDAP_OP_COMPARE_RESPONSE
PPCODE:
{
SV *dest = new_message_sv();
start_ldap_message(dest, msgid);
pack_result_response_args(dest, ix, result, matched_dn, message, referrals);
end_ldap_message(dest);
XPUSHs(dest);
XSRETURN(1);
}
( run in 0.685 second using v1.01-cache-2.11-cpan-5511b514fd6 )