diff options
author | Rich Megginson <rmeggins@redhat.com> | 2010-06-07 17:24:52 -0600 |
---|---|---|
committer | Rich Megginson <rmeggins@redhat.com> | 2010-08-31 13:35:53 -0600 |
commit | e30f96f03b95d7d7599cf7cf385de9280dcd1b48 (patch) | |
tree | 9aa618fb774f28ad0b9bd5a19e5dc0b1702e45d4 /ldap/servers/slapd/fedse.c | |
parent | 36101b6491afc0a843ba50b7e506e622271e9177 (diff) | |
download | ds-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.c | 16 |
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**)©); 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; |