summaryrefslogtreecommitdiffstats
path: root/ldap/servers/slapd/fedse.c
diff options
context:
space:
mode:
authorRich Megginson <rmeggins@redhat.com>2010-06-07 17:24:52 -0600
committerRich Megginson <rmeggins@redhat.com>2010-08-31 13:35:53 -0600
commite30f96f03b95d7d7599cf7cf385de9280dcd1b48 (patch)
tree9aa618fb774f28ad0b9bd5a19e5dc0b1702e45d4 /ldap/servers/slapd/fedse.c
parent36101b6491afc0a843ba50b7e506e622271e9177 (diff)
downloadds-e30f96f03b95d7d7599cf7cf385de9280dcd1b48.tar.gz
ds-e30f96f03b95d7d7599cf7cf385de9280dcd1b48.tar.xz
ds-e30f96f03b95d7d7599cf7cf385de9280dcd1b48.zip
openldap - add support for missing controls, add ldif api, fix NSS usage
Added proxy auth control creation - mozldap has a function to do that but not openldap Do not use mozldap filter create function - just create one using slapi_smprintf Fix usage of TLS/SSL with new NSS functionality Created ldif parse wrapper - changed code to use it Reviewed by: nkinder (Thanks!) Platforms tested: Fedora 14 (rawhide)
Diffstat (limited to 'ldap/servers/slapd/fedse.c')
-rw-r--r--ldap/servers/slapd/fedse.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/ldap/servers/slapd/fedse.c b/ldap/servers/slapd/fedse.c
index 642b6af9..74fe0de2 100644
--- a/ldap/servers/slapd/fedse.c
+++ b/ldap/servers/slapd/fedse.c
@@ -1721,20 +1721,16 @@ int
search_easter_egg( Slapi_PBlock *pb, Slapi_Entry *entryBefore, Slapi_Entry *entryAfter, int *returncode, char *returntext, void *arg)
{
char *fstr= NULL;
- int retmalloc= 0;
char eggfilter[64];
PR_snprintf(eggfilter,sizeof(eggfilter),"(objectclass=%s)",EGG_OBJECT_CLASS);
slapi_pblock_get( pb, SLAPI_SEARCH_STRFILTER, &fstr );
if(fstr!=NULL && strcasecmp(fstr,eggfilter)==0)
{
static int twiddle= -1;
- char *type, *value, *copy;
-#if defined(USE_OPENLDAP)
- ber_len_t vlen;
-#else
- int vlen;
-#endif
+ char *copy;
+ struct berval bvtype;
struct berval bv;
+ int freeval = 0;
struct berval *bvals[2];
if (twiddle < 0) {
twiddle = slapi_rand();
@@ -1742,17 +1738,15 @@ search_easter_egg( Slapi_PBlock *pb, Slapi_Entry *entryBefore, Slapi_Entry *entr
bvals[0] = &bv;
bvals[1] = NULL;
copy= slapi_ch_strdup(easter_egg_photos[twiddle%NUM_EASTER_EGG_PHOTOS]);
- if ( (retmalloc = ldif_parse_line(copy, &type, &value, &vlen)) < 0 ) {
+ if ( slapi_ldif_parse_line(copy, &bvtype, &bv, &freeval) < 0 ) {
return SLAPI_DSE_CALLBACK_ERROR;
}
- bv.bv_val = value;
- bv.bv_len = vlen;
slapi_entry_attr_delete(entryBefore, "jpegphoto");
slapi_entry_attr_merge(entryBefore, "jpegphoto", bvals);
slapi_ch_free((void**)&copy);
twiddle++;
/* the memory below was not allocated by the slapi_ch_ functions */
- if (retmalloc) slapi_ch_free( (void**)&value );
+ if (freeval) slapi_ch_free_string(&bv.bv_val);
return SLAPI_DSE_CALLBACK_OK;
}
return SLAPI_DSE_CALLBACK_ERROR;