Adrian St. John-Bee wrote:
I've changed the code to...
Rather than just blindly changing things, you should try to understand what those things mean. You've made the same programming error twice, 'vals' was only one instance of the error. This list isn't for teaching you how to program in C.
char* vals0[2]; vals0[0] = "eric@ntu.ac.uk"; vals0[1] = NULL;
int rc = ldap_simple_bind_s(ld, user, pass);
LDAPMod *modM;
char *dn = "uflEduUniversityId=28833300,ou=People,dc=ufl,dc=edu";
modM->mod_op = LDAP_MOD_ADD; modM->mod_type = "mail"; modM->mod_values = vals0;
if((ldap_modify_s(ld, dn,&modM)) != LDAP_SUCCESS) { // FAIL }
But still get the same error on the ldap_modify_s(ld, dn,&modM) command.
Cheers, Ade
2009/4/27 Eli Bachebach2@gmail.com:
On Apr 26, 2009, at 5:31 AM, Adrian St. John-Bee wrote:
char** vals0;
...
vals0[0] = "eric@ntu.ac.uk";
It looks like these two lines are your problem.
You are just defining vals0 as a pointer to a pointer, and then referencing it as an array of pointers.
However, you don't allocate any memory to actually store any data into.
If you switched you're code to something like:
char* vals0[2]; vals0[0] = "eric@ntu.ac.uk"; vals0[1] = NULL;
I have no comment on whether you are using the ldap api's correctly or not.