[Freeswitch-branches] [commit] r7777 - in freeswitch/branches/anthonyl/spidermonkey-stuff: libs/xmlrpc-c src src/mod/directories/mod_ldap
Author: anthonyl Date: Mon Mar 3 18:08:23 2008 New Revision: 7777 Modified: freeswitch/branches/anthonyl/spidermonkey-stuff/libs/xmlrpc-c/xmlrpc_amconfig.h.in freeswitch/branches/anthonyl/spidermonkey-stuff/src/mod/directories/mod_ldap/mod_ldap.c freeswitch/branches/anthonyl/spidermonkey-stuff/src/switch_core_directory.c Log: god knows what i'm updating here , really it's best to ignore this commit Modified: freeswitch/branches/anthonyl/spidermonkey-stuff/libs/xmlrpc-c/xmlrpc_amconfig.h.in ============================================================================== --- freeswitch/branches/anthonyl/spidermonkey-stuff/libs/xmlrpc-c/xmlrpc_amconfig.h.in (original) +++ freeswitch/branches/anthonyl/spidermonkey-stuff/libs/xmlrpc-c/xmlrpc_amconfig.h.in Mon Mar 3 18:08:23 2008 @@ -81,5 +81,5 @@ /* Version number of package */ #undef VERSION -/* Define to `unsigned' if <sys/types.h> does not define. */ +/* Define to `unsigned int' if <sys/types.h> does not define. */ #undef size_t Modified: freeswitch/branches/anthonyl/spidermonkey-stuff/src/mod/directories/mod_ldap/mod_ldap.c ============================================================================== --- freeswitch/branches/anthonyl/spidermonkey-stuff/src/mod/directories/mod_ldap/mod_ldap.c (original) +++ freeswitch/branches/anthonyl/spidermonkey-stuff/src/mod/directories/mod_ldap/mod_ldap.c Mon Mar 3 18:08:23 2008 @@ -202,7 +202,53 @@ return SWITCH_STATUS_FALSE; } +static switch_status_t mod_ldap_append(switch_directory_handle_t *dh, char *dn, char *attr) +{ + int ret; + LDAPMod *attrsp[1]; + struct ldap_context *context; + + context = dh->private_info; + switch_assert(context != NULL); + + if (!context->entry) { + return SWITCH_STATUS_FALSE; + } + + attrs[0] = mod_ldap_convert(attr, strlen(attr)); + + if (!attrs[0]) + return SWITCH_STATUS_FALSE; + + attrs[1] = NULL; + + ret = ldap_add_ext_s(context->ld, dn, attrs[0], NULL, NULL); + return SWITCH_STATUS_FALSE; +} +/* + +Note: This is FUGLY right now !!!!!! do not think about using +for now just working on one attribute at a time inefficant and lame +the main problem with this is the whole mod_type deal and now this will all be passed as a string +objectClass = asj who knows + +*/ +static char *topObjectClasses[] = { "top", NULL }; +static LDAPMod * +mod_ldap_convert(int modop, char *attr, int vlen ) +{ + LDAPMod *pmods; + int i, j; + struct berval *bvp; + + pmods = malloc(sizeof(LDAPMod)); + if (!pmods) + return NULL; + pmods->mod_op = LDAP_MOD_ADD; + pmods->mod_type = "objectClass"; + pmods->mod_values = topObjectClasses; +} SWITCH_MODULE_LOAD_FUNCTION(mod_ldap_load) { switch_directory_interface_t *dir_interface; @@ -216,7 +262,7 @@ dir_interface->directory_query = mod_ldap_query; dir_interface->directory_next = mod_ldap_next; dir_interface->directory_next_pair = mod_ldap_next_pair; - + dir_interface->directory_append = mod_ldap_append; /* indicate that the module should continue to be loaded */ return SWITCH_STATUS_SUCCESS; } Modified: freeswitch/branches/anthonyl/spidermonkey-stuff/src/switch_core_directory.c ============================================================================== --- freeswitch/branches/anthonyl/spidermonkey-stuff/src/switch_core_directory.c (original) +++ freeswitch/branches/anthonyl/spidermonkey-stuff/src/switch_core_directory.c Mon Mar 3 18:08:23 2008 @@ -84,14 +84,10 @@ return status; } -SWITCH_DECLARE(switch_status_t) switch_core_directory_append(switch_directory_handle_t *dh) +SWITCH_DECLARE(switch_status_t) switch_core_directory_append(switch_directory_handle_t *dh, char *dn, char *attr) { switch_status_t status; - status = dh->directory_interface->directory_append(dh); - - if (switch_test_flag(dh, SWITCH_DIRECTORY_FLAG_FREE_POOL)) { - switch_core_destory_memory_poll(&dh->memory_poll); - } + status = dh->directory_interface->directory_append(dh, dn, attr); return status; }
participants (1)
-
Freeswitch SVN