netapi: add info21_to_USER_INFO_10.
[jra/samba/.git] / source3 / lib / netapi / user.c
index 4e31175ebc9b69a33567912a05b3f9599a02aa0b..8ce97bedcc70ac38f941d75d73b90d90d6cae459 100644 (file)
@@ -744,6 +744,24 @@ static uint32_t samr_acb_flags_to_netapi_flags(uint32_t acb)
 /****************************************************************
 ****************************************************************/
 
+static NTSTATUS info21_to_USER_INFO_10(TALLOC_CTX *mem_ctx,
+                                      const struct samr_UserInfo21 *i21,
+                                      struct USER_INFO_10 *i)
+{
+       ZERO_STRUCTP(i);
+
+       i->usri10_name          = talloc_strdup(mem_ctx, i21->account_name.string);
+       NT_STATUS_HAVE_NO_MEMORY(i->usri10_name);
+       i->usri10_comment       = talloc_strdup(mem_ctx, i21->description.string);
+       i->usri10_full_name     = talloc_strdup(mem_ctx, i21->full_name.string);
+       i->usri10_usr_comment   = talloc_strdup(mem_ctx, i21->comment.string);
+
+       return NT_STATUS_OK;
+}
+
+/****************************************************************
+****************************************************************/
+
 static NTSTATUS libnetapi_samr_lookup_user_map_USER_INFO(TALLOC_CTX *mem_ctx,
                                                         struct rpc_pipe_client *pipe_cli,
                                                         struct dom_sid *domain_sid,
@@ -807,18 +825,8 @@ static NTSTATUS libnetapi_samr_lookup_user_map_USER_INFO(TALLOC_CTX *mem_ctx,
 
        switch (level) {
                case 10:
-                       info10.usri10_name = talloc_strdup(mem_ctx,
-                               info21->account_name.string);
-                       NT_STATUS_HAVE_NO_MEMORY(info10.usri10_name);
-
-                       info10.usri10_comment = talloc_strdup(mem_ctx,
-                               info21->description.string);
-
-                       info10.usri10_full_name = talloc_strdup(mem_ctx,
-                               info21->full_name.string);
-
-                       info10.usri10_usr_comment = talloc_strdup(mem_ctx,
-                               info21->comment.string);
+                       status = info21_to_USER_INFO_10(mem_ctx, info21, &info10);
+                       NT_STATUS_NOT_OK_RETURN(status);
 
                        ADD_TO_ARRAY(mem_ctx, struct USER_INFO_10, info10,
                                     (struct USER_INFO_10 **)buffer, num_entries);