Move user/domain from rpc_pipe_client to cli_pipe_auth_data
authorVolker Lendecke <vl@samba.org>
Mon, 21 Apr 2008 20:27:29 +0000 (22:27 +0200)
committerVolker Lendecke <vl@samba.org>
Fri, 25 Apr 2008 09:12:50 +0000 (11:12 +0200)
(This used to be commit 42de50d2cd43e760d776694f7b5f003ba51d7f84)

source3/include/client.h
source3/libads/ldap_printer.c
source3/rpc_client/cli_pipe.c
source3/rpc_client/cli_spoolss.c
source3/rpcclient/cmd_spoolss.c
source3/utils/net_rpc_printer.c

index d866c09cce7dd1104f4b9897aa7fc2bdfd718be8..3459ae20d0439f2c98058128743de5b0fbb2dca6 100644 (file)
@@ -49,6 +49,10 @@ struct print_job_info {
 struct cli_pipe_auth_data {
        enum pipe_auth_type auth_type; /* switch for the union below. Defined in ntdomain.h */
        enum pipe_auth_level auth_level; /* defined in ntdomain.h */
+
+       char *domain;
+       char *user_name;
+
        union {
                struct schannel_auth_struct *schannel_auth;
                NTLMSSP_STATE *ntlmssp_state;
@@ -71,9 +75,6 @@ struct rpc_pipe_client {
        char *desthost;
        char *srv_name_slash;
 
-       char *domain;
-       char *user_name;
-
        uint16 max_xmit_frag;
        uint16 max_recv_frag;
 
index 6682ec24d08d3e9c991e8e8de520f38612005955..41f23b06a7488cd717771a6deb3a674a2459a3f8 100644 (file)
@@ -296,7 +296,8 @@ WERROR get_remote_printer_publishing_data(struct rpc_pipe_client *cli,
        
        result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, 
                                             "", MAXIMUM_ALLOWED_ACCESS, 
-                                            servername, cli->user_name, &pol);
+                                            servername, cli->auth->user_name,
+                                            &pol);
        if (!W_ERROR_IS_OK(result)) {
                DEBUG(3, ("Unable to open printer %s, error is %s.\n",
                          printername, dos_errstr(result)));
index 8c540ee6fd2d629755acd546b896581f260693ef..14ee78202a57100a9a15029a4535e16fd74eeef2 100644 (file)
@@ -1067,14 +1067,15 @@ static NTSTATUS create_schannel_auth_rpc_bind_req( struct rpc_pipe_client *cli,
 
        /* Use lp_workgroup() if domain not specified */
 
-       if (!cli->domain || !cli->domain[0]) {
-               cli->domain = talloc_strdup(cli, lp_workgroup());
-               if (cli->domain == NULL) {
+       if (!cli->auth->domain || !cli->auth->domain[0]) {
+               cli->auth->domain = talloc_strdup(cli, lp_workgroup());
+               if (cli->auth->domain == NULL) {
                        return NT_STATUS_NO_MEMORY;
                }
        }
 
-       init_rpc_auth_schannel_neg(&schannel_neg, cli->domain, global_myname());
+       init_rpc_auth_schannel_neg(&schannel_neg, cli->auth->domain,
+                                  global_myname());
 
        /*
         * Now marshall the data into the auth parse_struct.
@@ -2235,14 +2236,14 @@ static struct rpc_pipe_client *cli_rpc_pipe_open(struct cli_state *cli, int pipe
        result->auth->auth_type = PIPE_AUTH_TYPE_NONE;
        result->auth->auth_level = PIPE_AUTH_LEVEL_NONE;
 
-       result->domain = talloc_strdup(result, cli->domain);
-       result->user_name = talloc_strdup(result, cli->user_name);
+       result->auth->domain = talloc_strdup(result, cli->domain);
+       result->auth->user_name = talloc_strdup(result, cli->user_name);
        result->desthost = talloc_strdup(result, cli->desthost);
        result->srv_name_slash = talloc_asprintf_strupper_m(
                result, "\\\\%s", result->desthost);
 
-       if ((result->domain == NULL)
-           || (result->user_name == NULL)
+       if ((result->auth->domain == NULL)
+           || (result->auth->user_name == NULL)
            || (result->desthost == NULL)
            || (result->srv_name_slash == NULL)) {
                *perr = NT_STATUS_NO_MEMORY;
@@ -2349,13 +2350,14 @@ static struct rpc_pipe_client *cli_rpc_pipe_open_ntlmssp_internal(struct cli_sta
 
        result->auth->cli_auth_data_free_func = cli_ntlmssp_auth_free;
 
-       TALLOC_FREE(result->domain);
-       TALLOC_FREE(result->user_name);
+       TALLOC_FREE(result->auth->domain);
+       TALLOC_FREE(result->auth->user_name);
 
-       result->domain = talloc_strdup(result, domain);
-       result->user_name = talloc_strdup(result, username);
+       result->auth->domain = talloc_strdup(result, domain);
+       result->auth->user_name = talloc_strdup(result, username);
 
-       if ((result->domain == NULL) || (result->user_name == NULL)) {
+       if ((result->auth->domain == NULL)
+           || (result->auth->user_name == NULL)) {
                *perr = NT_STATUS_NO_MEMORY;
                goto err;
        }
@@ -2570,9 +2572,9 @@ struct rpc_pipe_client *cli_rpc_pipe_open_schannel_with_key(struct cli_state *cl
                return NULL;
        }
 
-       TALLOC_FREE(result->domain);
-       result->domain = talloc_strdup(result, domain);
-       if (result->domain == NULL) {
+       TALLOC_FREE(result->auth->domain);
+       result->auth->domain = talloc_strdup(result, domain);
+       if (result->auth->domain == NULL) {
                TALLOC_FREE(result);
                *perr = NT_STATUS_NO_MEMORY;
                return NULL;
index 823af6fb4f5c37f586f38d44d75a425596831add..223a277d4a50d44878840808b26fe7ef7265182b 100644 (file)
@@ -1031,7 +1031,7 @@ WERROR rpccli_spoolss_addprinterex (struct rpc_pipe_client *cli, TALLOC_CTX *mem
         strupper_m(client);
         strupper_m(server);
 
-       fstrcpy  (user, cli->user_name);
+       fstrcpy  (user, cli->auth->user_name);
 
        make_spoolss_q_addprinterex( mem_ctx, &in, server, client, 
                user, level, ctr);
index c89f98744670c19fcd92612e2533465d9911d589..5368a0ff4ee4a25476b5920b5082660e6d02f123 100644 (file)
@@ -111,7 +111,7 @@ static WERROR cmd_spoolss_open_printer_ex(struct rpc_pipe_client *cli,
 
        slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost);
        strupper_m(servername);
-       fstrcpy(user, cli->user_name);
+       fstrcpy(user, cli->auth->user_name);
        fstrcpy(printername, argv[1]);
 
        /* Open the printer handle */
@@ -491,7 +491,7 @@ static WERROR cmd_spoolss_setprinter(struct rpc_pipe_client *cli,
        slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost);
        strupper_m(servername);
        slprintf(printername, sizeof(servername)-1, "%s\\%s", servername, argv[1]);
-       fstrcpy(user, cli->user_name);
+       fstrcpy(user, cli->auth->user_name);
 
        /* get a printer handle */
        result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", 
@@ -557,7 +557,7 @@ static WERROR cmd_spoolss_setprintername(struct rpc_pipe_client *cli,
        slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost);
        strupper_m(servername);
        slprintf(printername, sizeof(printername)-1, "%s\\%s", servername, argv[1]);
-       fstrcpy(user, cli->user_name);
+       fstrcpy(user, cli->auth->user_name);
 
        /* get a printer handle */
        result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", 
@@ -620,7 +620,7 @@ static WERROR cmd_spoolss_getprinter(struct rpc_pipe_client *cli,
        slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost);
        strupper_m(servername);
        slprintf(printername, sizeof(printername)-1, "%s\\%s", servername, argv[1]);
-       fstrcpy(user, cli->user_name);
+       fstrcpy(user, cli->auth->user_name);
        
        /* get a printer handle */
 
@@ -763,7 +763,7 @@ static WERROR cmd_spoolss_getprinterdata(struct rpc_pipe_client *cli,
        else
                slprintf(printername, sizeof(servername)-1, "%s\\%s", 
                          servername, argv[1]);
-       fstrcpy(user, cli->user_name);
+       fstrcpy(user, cli->auth->user_name);
        
        /* get a printer handle */
 
@@ -830,7 +830,7 @@ static WERROR cmd_spoolss_getprinterdataex(struct rpc_pipe_client *cli,
        else
                slprintf(printername, sizeof(printername)-1, "%s\\%s", 
                          servername, argv[1]);
-       fstrcpy(user, cli->user_name);
+       fstrcpy(user, cli->auth->user_name);
        
        /* get a printer handle */
 
@@ -1001,7 +1001,7 @@ static WERROR cmd_spoolss_getdriver(struct rpc_pipe_client *cli,
        /* get the arguments need to open the printer handle */
        slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost);
        strupper_m(servername);
-       fstrcpy(user, cli->user_name);
+       fstrcpy(user, cli->auth->user_name);
        slprintf(printername, sizeof(servername)-1, "%s\\%s", servername, argv[1]);
        if (argc == 3)
                info_level = atoi(argv[2]);
@@ -1447,7 +1447,7 @@ static WERROR cmd_spoolss_setdriver(struct rpc_pipe_client *cli,
        slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost);
        strupper_m(servername);
        slprintf(printername, sizeof(printername)-1, "%s\\%s", servername, argv[1]);
-       fstrcpy(user, cli->user_name);
+       fstrcpy(user, cli->auth->user_name);
 
        /* Get a printer handle */
 
@@ -1660,7 +1660,8 @@ static WERROR cmd_spoolss_addform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c
 
        werror = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", 
                                             PRINTER_ALL_ACCESS, 
-                                            servername, cli->user_name, &handle);
+                                            servername, cli->auth->user_name,
+                                            &handle);
 
        if (!W_ERROR_IS_OK(werror))
                goto done;
@@ -1720,7 +1721,7 @@ static WERROR cmd_spoolss_setform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c
 
        werror = rpccli_spoolss_open_printer_ex(
                cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, 
-               servername, cli->user_name, &handle);
+               servername, cli->auth->user_name, &handle);
 
        if (!W_ERROR_IS_OK(werror))
                goto done;
@@ -1817,7 +1818,7 @@ static WERROR cmd_spoolss_getform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c
 
        werror = rpccli_spoolss_open_printer_ex(
                cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, 
-               servername, cli->user_name, &handle);
+               servername, cli->auth->user_name, &handle);
 
        if (!W_ERROR_IS_OK(werror))
                goto done;
@@ -1870,7 +1871,7 @@ static WERROR cmd_spoolss_deleteform(struct rpc_pipe_client *cli,
 
        werror = rpccli_spoolss_open_printer_ex(
                cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, 
-               servername, cli->user_name, &handle);
+               servername, cli->auth->user_name, &handle);
 
        if (!W_ERROR_IS_OK(werror))
                goto done;
@@ -1920,7 +1921,7 @@ static WERROR cmd_spoolss_enum_forms(struct rpc_pipe_client *cli,
 
        werror = rpccli_spoolss_open_printer_ex(
                cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, 
-               servername, cli->user_name, &handle);
+               servername, cli->auth->user_name, &handle);
 
        if (!W_ERROR_IS_OK(werror))
                goto done;
@@ -1980,7 +1981,7 @@ static WERROR cmd_spoolss_setprinterdata(struct rpc_pipe_client *cli,
        slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost);
        strupper_m(servername);
        slprintf(printername, sizeof(servername)-1, "%s\\%s", servername, argv[1]);
-       fstrcpy(user, cli->user_name);
+       fstrcpy(user, cli->auth->user_name);
 
        value.type = REG_NONE;
 
@@ -2189,7 +2190,7 @@ static WERROR cmd_spoolss_enum_jobs(struct rpc_pipe_client *cli,
 
        slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost);
        strupper_m(servername);
-       fstrcpy(user, cli->user_name);
+       fstrcpy(user, cli->auth->user_name);
        printername = talloc_asprintf(mem_ctx, "\\\\%s\\", cli->desthost);
        if (!printername) {
                return WERR_NOMEM;
@@ -2261,7 +2262,7 @@ static WERROR cmd_spoolss_enum_data( struct rpc_pipe_client *cli,
 
        slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost);
        strupper_m(servername);
-       fstrcpy(user, cli->user_name);
+       fstrcpy(user, cli->auth->user_name);
        printername = talloc_asprintf(mem_ctx, "\\\\%s\\", cli->desthost);
        if (!printername) {
                return WERR_NOMEM;
@@ -2331,7 +2332,7 @@ static WERROR cmd_spoolss_enum_data_ex( struct rpc_pipe_client *cli,
 
        slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost);
        strupper_m(servername);
-       fstrcpy(user, cli->user_name);
+       fstrcpy(user, cli->auth->user_name);
 
        printername = talloc_asprintf(mem_ctx, "\\\\%s\\", cli->desthost);
        if (!printername) {
@@ -2404,7 +2405,7 @@ static WERROR cmd_spoolss_enum_printerkey( struct rpc_pipe_client *cli,
 
        slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost);
        strupper_m(servername);
-       fstrcpy(user, cli->user_name);
+       fstrcpy(user, cli->auth->user_name);
 
        printername = talloc_asprintf(mem_ctx, "\\\\%s\\", cli->desthost);
        if (!printername) {
@@ -2485,7 +2486,7 @@ static WERROR cmd_spoolss_rffpcnex(struct rpc_pipe_client *cli,
 
        result = rpccli_spoolss_open_printer_ex(
                cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, 
-               servername, cli->user_name, &hnd);
+               servername, cli->auth->user_name, &hnd);
 
        if (!W_ERROR_IS_OK(result)) {
                printf("Error opening %s\n", argv[1]);
index 9dc409123e7fd22b1d862008d4da91179aeaad42..bdf5b09205e7a05a4688ca99d5fef77ac4d37ecc 100644 (file)
@@ -994,7 +994,9 @@ static bool get_printer_info(struct rpc_pipe_client *pipe_hnd,
 
        /* argument given, get a single printer by name */
        if (!net_spoolss_open_printer_ex(pipe_hnd, mem_ctx, argv[0],
-                       MAXIMUM_ALLOWED_ACCESS, pipe_hnd->user_name, &hnd))
+                                        MAXIMUM_ALLOWED_ACCESS,
+                                        pipe_hnd->auth->user_name,
+                                        &hnd))
                return False;
 
        if (!net_spoolss_getprinter(pipe_hnd, mem_ctx, &hnd, level, ctr)) {
@@ -1190,7 +1192,7 @@ static NTSTATUS rpc_printer_publish_internals_args(struct rpc_pipe_client *pipe_
 
                /* open printer handle */
                if (!net_spoolss_open_printer_ex(pipe_hnd, mem_ctx, sharename,
-                       PRINTER_ALL_ACCESS, pipe_hnd->user_name, &hnd))
+                       PRINTER_ALL_ACCESS, pipe_hnd->auth->user_name, &hnd))
                        goto done;
 
                got_hnd = True;
@@ -1838,7 +1840,9 @@ NTSTATUS rpc_printer_migrate_drivers_internals(const DOM_SID *domain_sid,
 
                /* open src printer handle */
                if (!net_spoolss_open_printer_ex(pipe_hnd, mem_ctx, sharename,
-                       MAXIMUM_ALLOWED_ACCESS, pipe_hnd->user_name, &hnd_src))
+                                                MAXIMUM_ALLOWED_ACCESS,
+                                                pipe_hnd->auth->user_name,
+                                                &hnd_src))
                        goto done;
 
                got_hnd_src = True;