diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2005-08-25 22:57:56 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:34:35 -0500 |
commit | a16c390fe07cb5908b042cc88b0928a92d8326b6 (patch) | |
tree | f0a2a065f622abd39a8e22cbdf6782fcecaafa83 /source4/lib/samba3 | |
parent | c9d3763bfc92b7e99565065fb44b03c47f1f1a0d (diff) | |
download | samba-a16c390fe07cb5908b042cc88b0928a92d8326b6.tar.gz samba-a16c390fe07cb5908b042cc88b0928a92d8326b6.tar.bz2 samba-a16c390fe07cb5908b042cc88b0928a92d8326b6.zip |
r9624: Support writing wins.ldif
(This used to be commit b0595d238bbcc4a3927914d1fd6032e9293da5cc)
Diffstat (limited to 'source4/lib/samba3')
-rw-r--r-- | source4/lib/samba3/upgrade.c | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/source4/lib/samba3/upgrade.c b/source4/lib/samba3/upgrade.c index 907df75c2e..941b0fe196 100644 --- a/source4/lib/samba3/upgrade.c +++ b/source4/lib/samba3/upgrade.c @@ -121,8 +121,29 @@ int samba3_upgrade_winbind(struct samba3 *samba3, struct ldb_context *ctx, struc return -1; } -int samba3_upgrade_winsdb(struct samba3 *samba3, struct ldb_context *ctx, struct ldb_message ***msgs) +int samba3_upgrade_winsdb(struct samba3 *samba3, struct ldb_context *ldb, struct ldb_message ***msgs) { - /* FIXME */ - return -1; + int i; + int count = 0; + + for (i = 0; i < samba3->winsdb_count; i++) { + struct samba3_winsdb_entry *e = &samba3->winsdb_entries[i]; + int j; + struct ldb_message *msg = msg_array_add(ldb, msgs, &count); + + msg->dn = ldb_dn_string_compose(ldb, NULL, "type=%d,name=%s", e->type, e->name); + + ldb_msg_add_string(ldb, msg, "name", e->name); + ldb_msg_add_fmt(ldb, msg, "type", "%d", e->type); + ldb_msg_add_string(ldb, msg, "objectClass", "wins"); + ldb_msg_add_fmt(ldb, msg, "nbFlags", "%x", e->nb_flags); + ldb_msg_add_string(ldb, msg, "expires", + ldap_timestring(msg, e->ttl)); + + for (j = 0; j < e->ip_count; j++) { + ldb_msg_add_string(ldb, msg, "address", sys_inet_ntoa(e->ips[j])); + } + } + + return count; } |