#include "pack.h"
#include "util.h"
void
pack_extended_response_args(SV *dest, I32 result,
SV *matched_dn, SV *message, SV *referrals,
SV *name, SV *value) {
STRLEN offset = start_constructed(dest, ASN1_APPLICATION|ASN1_CONSTRUCTED, LDAP_OP_EXTENDED_RESPONSE);
pack_result_response_nowrap(dest, result, matched_dn, message, referrals);
if (name && SvOK(name))
pack_raw_utf8(dest, ASN1_CONTEXT_SPECIFIC|ASN1_PRIMITIVE, 10, name);
if (value && SvOK(value))
pack_raw_utf8(dest, ASN1_CONTEXT_SPECIFIC|ASN1_PRIMITIVE, 11, value);
end_constructed(dest, offset);
}
void
pack_extended_response_ref(SV *dest, HV *hv) {
pack_extended_response_args(dest,
SvIV(hv_fetchs_def_undef(hv, "result")),
hv_fetchs_def_null(hv, "matched_dn"),
hv_fetchs_def_null(hv, "message"),
hv_fetchs_def_null(hv, "referrals"),
hv_fetchs_def_null(hv, "name"),
hv_fetchs_def_null(hv, "value"));
}