Is it possible to add 'newsuperior' to the modrdn function?
No idea if this would work....but the PERL examples I've seen put newsuperior before deleteoldrdn in the params list.
Thanks, Matt
conn.c
/*
-
call-seq:
-
conn.modrdn(dn, new_rdn, new_superior, delete_old_rdn) => self *
-
Modify the RDN of the entry with DN, +dn+, giving it the new RDN,
-
+new_rdn+. Move to a new container if +new_superior+ is given.
-
If +delete_old_rdn+ is true, the old RDN value will be deleted from
-
the entry. */ VALUE rb_ldap_conn_modrdn_s (VALUE self, VALUE dn, VALUE newrdn, , VALUE newsuperior, VALUE delete_p) { RB_LDAP_DATA *ldapdata; char *c_dn; char *c_newrdn; char *c_newsuperior; int c_delete_p;
GET_LDAP_DATA (self, ldapdata); c_dn = StringValueCStr (dn); c_newrdn = StringValueCStr (newrdn); c_newsuperior = StringValueCStr (newsuperior); c_delete_p = (delete_p == Qtrue) ? 1 : 0;
ldapdata->err = ldap_modrdn2_s (ldapdata->ldap, c_dn, c_newrdn, c_newsuperior, c_delete_p); Check_LDAP_Result (ldapdata->err);
return self; };
conn.c line 1796
/* If the number here specifies the number of required params...
- then it should be 3 and not 4...
- but I wasn't sure exactly what to do except it was related
- to the number of params. */ rb_ldap_conn_define_method ("modrdn", rb_ldap_conn_modrdn_s, 4);
win/winldap.h line 286
ULONG ldap_modrdn2_s(LDAP *ld, PCHAR olddn, PCHAR newdn, PCHAR newsuperior, int delold_flag);
rbldap.h line 117
VALUE rb_ldap_conn_modrdn_s (VALUE, VALUE, VALUE, VALUE, VALUE);
This c library has newsuperior in it... http://www.opensource.apple.com/source/OpenLDAP/OpenLDAP-37.1.1/OpenLDAP/libraries/libldap/modrdn.c
Any further thoughts on this? Right now I have my ruby program doing an external call out to a perl script for these newsuperior actions.
Matt