replmd_delete quick questions
tridge at samba.org
tridge at samba.org
Thu Nov 12 20:17:39 MST 2009
Hi Eduardo,
> 1 - How can I get the object's ldb_message (to use with ldb_msg_add_string)
> if I only have the object's GUID/DN and ldb_module/ldb_request vars?
If what you're trying to do is modify the object, you should construct
a ldb modify message. You can see an example of this quite a few
places in samba (a reasonable one would be drsuapi_add_SPNs() in
rpc_server/drsuapi/addentry.c)
There are a few different API approaches to it. One common one is:
- use ldb_msg_new() to get a blank ldb_message structure
- fill in msg->dn
- use ldb_msg_add_empty() to add a new element with a given flag,
such as LDB_FLAG_MOD_ADD
- allocate a set of values under el->values
- fill in the values
Instead of using ldb_msg_add_empty() you could instead use
ldb_msg_add_string() or a similar function, but if you do then make
sure you setup the el->flags entry for any element you add.
You might also like to experiment with ldbmodify on the command line
to understand how modifies work. See lib/ldb/tests/test-modify.ldif
for an example that shows how it works.
> 2 - I have to insert the string "\0ADEL" into the object's DN, but
> "ldb_dn_add_child_fmt" calls "ldb_dn_validate(child)" that calls
> "ldb_dn_explode(dn)" that modifies the string "\\0ADEL" to "\nDEL" (\\0A is
> interpreted as the hex of a line feed and a new line appears when I print
> the new DN). Has anyone experienced this problem?
We haven't had to deal with many encoded DNs like this before. I think
we'll probably need to modify lib/ldb to cope with it better.
I'm having a look now at what we do with DNs of that form. I'll get
back to you if I discover anything.
Cheers, Tridge
More information about the samba-technical
mailing list