/*
* call-seq:
* mod.mod_vals => Array of String
*
* Return the values associated with the Mod object.
*/
VALUE
rb_ldap_mod_vals (VALUE self)
{
RB_LDAPMOD_DATA *moddata;
struct berval **bvals;
char **svals;
int i;
VALUE val;
GET_LDAPMOD_DATA (self, moddata);
if (moddata->mod->mod_op & LDAP_MOD_BVALUES)
{
bvals = moddata->mod->mod_vals.modv_bvals;
val = rb_ary_new ();
for (i = 0; bvals[i] != NULL; i++)
{
VALUE str;
str = rb_tainted_str_new (bvals[i]->bv_val, bvals[i]->bv_len);
rb_ary_push (val, str);
}
}
else
{
svals = moddata->mod->mod_vals.modv_strvals;
val = rb_ary_new ();
for (i = 0; svals[i] != NULL; i++)
{
VALUE str;
str = rb_tainted_str_new2 (svals[i]);
rb_ary_push (val, str);
}
}
return val;
}