This lets the LDAP code return real binary information (like JPEGs or
certificates) out of the directory.
-Bill P.
*** eldap.c 1999/03/30 19:05:04 1.1
--- eldap.c 1999/03/30 19:08:21
***************
*** 356,362 ****
struct ldap_unwind_struct
{
LDAPMessage *res;
! char **vals;
};
--- 356,362 ----
struct ldap_unwind_struct
{
LDAPMessage *res;
! struct berval **vals;
};
***************
*** 368,374 ****
if (unwind->res)
ldap_msgfree (unwind->res);
if (unwind->vals)
! ldap_value_free (unwind->vals);
return Qnil;
}
--- 368,374 ----
if (unwind->res)
ldap_msgfree (unwind->res);
if (unwind->vals)
! ldap_value_free_len (unwind->vals);
return Qnil;
}
***************
*** 502,519 ****
a= ldap_next_attribute (ld, e, ptr) )
{
list = Fcons (build_ext_string (a, FORMAT_OS), Qnil);
! unwind.vals = ldap_get_values (ld, e, a);
if (unwind.vals != NULL)
{
for (i = 0; unwind.vals[i] != NULL; i++)
{
! list = Fcons (build_ext_string (unwind.vals[i], FORMAT_OS),
list);
}
}
entry = Fcons (Fnreverse (list),
entry);
! ldap_value_free (unwind.vals);
unwind.vals = NULL;
}
result = Fcons (Fnreverse (entry),
--- 502,519 ----
a= ldap_next_attribute (ld, e, ptr) )
{
list = Fcons (build_ext_string (a, FORMAT_OS), Qnil);
! unwind.vals = ldap_get_values_len (ld, e, a);
if (unwind.vals != NULL)
{
for (i = 0; unwind.vals[i] != NULL; i++)
{
! list = Fcons (make_ext_string
(unwind.vals[i]->bv_val,unwind.vals[i]->bv_len,FORMAT_OS),
list);
}
}
entry = Fcons (Fnreverse (list),
entry);
! ldap_value_free_len (unwind.vals);
unwind.vals = NULL;
}
result = Fcons (Fnreverse (entry),