Autofetch domain_sid while unjoining in libnetjoin.
authorGünther Deschner <gd@samba.org>
Wed, 16 Jan 2008 09:56:40 +0000 (10:56 +0100)
committerGünther Deschner <gd@samba.org>
Wed, 16 Jan 2008 10:08:05 +0000 (11:08 +0100)
Guenther

source/libnet/libnet_join.c

index f699b09b78d64b799c8d6b26d3f7d94e0edc1ef1..af7f9a6a21cb449a2a6e1796a69d3c363f54b9be 100644 (file)
@@ -1280,6 +1280,17 @@ static WERROR libnet_DomainUnjoin(TALLOC_CTX *mem_ctx,
 {
        NTSTATUS status;
 
+       if (!r->in.domain_sid) {
+               struct dom_sid sid;
+               if (!secrets_fetch_domain_sid(lp_workgroup(), &sid)) {
+                       libnet_unjoin_set_error_string(mem_ctx, r,
+                               "Unable to fetch domain sid: are we joined?");
+                       return WERR_SETUP_NOT_JOINED;
+               }
+               r->in.domain_sid = sid_dup_talloc(mem_ctx, &sid);
+               W_ERROR_HAVE_NO_MEMORY(r->in.domain_sid);
+       }
+
        if (!r->in.dc_name) {
                struct DS_DOMAIN_CONTROLLER_INFO *info;
                status = dsgetdcname(mem_ctx,