Use rpccli_samr_LookupNames() in net.
authorGünther Deschner <gd@samba.org>
Fri, 8 Feb 2008 13:49:30 +0000 (14:49 +0100)
committerGünther Deschner <gd@samba.org>
Fri, 8 Feb 2008 14:30:35 +0000 (15:30 +0100)
Guenther

source/utils/net_domain.c
source/utils/net_rpc_join.c

index a3e9f89e7d32eef4e1741e4aaff9b924a4d2aa91..8bd23782d4ca2de97f40a652139fa6411950e1cb 100644 (file)
@@ -56,12 +56,12 @@ NTSTATUS netdom_leave_domain( TALLOC_CTX *mem_ctx, struct cli_state *cli,
        POLICY_HND sam_pol, domain_pol, user_pol;
        NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
        char *acct_name;
-       uint32 flags = 0x3e8;
-       const char *const_acct_name;
        uint32 user_rid;
-       uint32 num_rids, *name_types, *user_rids;
        SAM_USERINFO_CTR ctr, *qctr = NULL;
        SAM_USER_INFO_16 p16;
+       struct lsa_String lsa_acct_name;
+       struct samr_Ids user_rids;
+       struct samr_Ids name_types;
 
        /* Open the domain */
        
@@ -91,20 +91,24 @@ NTSTATUS netdom_leave_domain( TALLOC_CTX *mem_ctx, struct cli_state *cli,
        
        acct_name = talloc_asprintf(mem_ctx, "%s$", global_myname()); 
        strlower_m(acct_name);
-       const_acct_name = acct_name;
 
-       status = rpccli_samr_lookup_names(pipe_hnd, mem_ctx,
-                       &domain_pol, flags, 1, &const_acct_name, 
-                       &num_rids, &user_rids, &name_types);
+       init_lsa_String(&lsa_acct_name, acct_name);
+
+       status = rpccli_samr_LookupNames(pipe_hnd, mem_ctx,
+                                        &domain_pol,
+                                        1,
+                                        &lsa_acct_name,
+                                        &user_rids,
+                                        &name_types);
        if ( !NT_STATUS_IS_OK(status) )
                return status;
 
-       if ( name_types[0] != SID_NAME_USER) {
-               DEBUG(0, ("%s is not a user account (type=%d)\n", acct_name, name_types[0]));
+       if ( name_types.ids[0] != SID_NAME_USER) {
+               DEBUG(0, ("%s is not a user account (type=%d)\n", acct_name, name_types.ids[0]));
                return NT_STATUS_INVALID_WORKSTATION;
        }
 
-       user_rid = user_rids[0];
+       user_rid = user_rids.ids[0];
                
        /* Open handle on user */
 
@@ -222,11 +226,8 @@ NTSTATUS netdom_join_domain( TALLOC_CTX *mem_ctx, struct cli_state *cli,
        POLICY_HND sam_pol, domain_pol, user_pol;
        NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
        char *acct_name;
-       const char *const_acct_name;
        struct lsa_String lsa_acct_name;
        uint32 user_rid;
-       uint32 num_rids, *name_types, *user_rids;
-       uint32 flags = 0x3e8;
        uint32 acb_info = ACB_WSTRUST;
        uint32 acct_flags;
        uint32 fields_present;
@@ -239,6 +240,8 @@ NTSTATUS netdom_join_domain( TALLOC_CTX *mem_ctx, struct cli_state *cli,
        DATA_BLOB digested_session_key;
        uchar md4_trust_password[16];
        uint32_t access_granted = 0;
+       struct samr_Ids user_rids;
+       struct samr_Ids name_types;
 
        /* Open the domain */
        
@@ -268,7 +271,6 @@ NTSTATUS netdom_join_domain( TALLOC_CTX *mem_ctx, struct cli_state *cli,
        
        acct_name = talloc_asprintf(mem_ctx, "%s$", global_myname()); 
        strlower_m(acct_name);
-       const_acct_name = acct_name;
 
        init_lsa_String(&lsa_acct_name, acct_name);
 
@@ -311,18 +313,21 @@ NTSTATUS netdom_join_domain( TALLOC_CTX *mem_ctx, struct cli_state *cli,
                rpccli_samr_Close(pipe_hnd, mem_ctx, &user_pol);
        }
 
-       status = rpccli_samr_lookup_names(pipe_hnd, mem_ctx,
-                       &domain_pol, flags, 1, &const_acct_name, 
-                       &num_rids, &user_rids, &name_types);
+       status = rpccli_samr_LookupNames(pipe_hnd, mem_ctx,
+                                        &domain_pol,
+                                        1,
+                                        &lsa_acct_name,
+                                        &user_rids,
+                                        &name_types);
        if ( !NT_STATUS_IS_OK(status) )
                return status;
 
-       if ( name_types[0] != SID_NAME_USER) {
-               DEBUG(0, ("%s is not a user account (type=%d)\n", acct_name, name_types[0]));
+       if ( name_types.ids[0] != SID_NAME_USER) {
+               DEBUG(0, ("%s is not a user account (type=%d)\n", acct_name, name_types.ids[0]));
                return NT_STATUS_INVALID_WORKSTATION;
        }
 
-       user_rid = user_rids[0];
+       user_rid = user_rids.ids[0];
                
        /* Open handle on user */
 
index 939a7246f7830b6370cdbea4282263ca2fc81e70..0e9e603e2326d3e63ca20c98d98ad3741b3a4e2a 100644 (file)
@@ -162,14 +162,13 @@ int net_rpc_join_newstyle(int argc, const char **argv)
        NTSTATUS result;
        int retval = 1;
        const char *domain = NULL;
-       uint32 num_rids, *name_types, *user_rids;
-       uint32 flags = 0x3e8;
        char *acct_name;
-       const char *const_acct_name;
        struct lsa_String lsa_acct_name;
        uint32 acct_flags=0;
        uint32_t access_granted = 0;
        union lsa_PolicyInformation *info = NULL;
+       struct samr_Ids user_rids;
+       struct samr_Ids name_types;
 
        /* check what type of join */
        if (argc >= 0) {
@@ -265,7 +264,6 @@ int net_rpc_join_newstyle(int argc, const char **argv)
                goto done;
        }
        strlower_m(acct_name);
-       const_acct_name = acct_name;
 
        init_lsa_String(&lsa_acct_name, acct_name);
 
@@ -306,21 +304,22 @@ int net_rpc_join_newstyle(int argc, const char **argv)
                rpccli_samr_Close(pipe_hnd, mem_ctx, &user_pol);
        }
 
-       CHECK_RPC_ERR_DEBUG(rpccli_samr_lookup_names(pipe_hnd, mem_ctx,
-                                                 &domain_pol, flags,
-                                                 1, &const_acct_name, 
-                                                 &num_rids,
-                                                 &user_rids, &name_types),
+       CHECK_RPC_ERR_DEBUG(rpccli_samr_LookupNames(pipe_hnd, mem_ctx,
+                                                   &domain_pol,
+                                                   1,
+                                                   &lsa_acct_name,
+                                                   &user_rids,
+                                                   &name_types),
                            ("error looking up rid for user %s: %s\n",
                             acct_name, nt_errstr(result)));
 
-       if (name_types[0] != SID_NAME_USER) {
-               DEBUG(0, ("%s is not a user account (type=%d)\n", acct_name, name_types[0]));
+       if (name_types.ids[0] != SID_NAME_USER) {
+               DEBUG(0, ("%s is not a user account (type=%d)\n", acct_name, name_types.ids[0]));
                goto done;
        }
 
-       user_rid = user_rids[0];
-               
+       user_rid = user_rids.ids[0];
+
        /* Open handle on user */
 
        CHECK_RPC_ERR_DEBUG(