diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/libads/ldap_printer.c | 7 | ||||
-rw-r--r-- | source3/rpcclient/cmd_spoolss.c | 183 | ||||
-rw-r--r-- | source3/utils/net_rpc_printer.c | 17 |
3 files changed, 62 insertions, 145 deletions
diff --git a/source3/libads/ldap_printer.c b/source3/libads/ldap_printer.c index 023acaa638..c9c43f0e10 100644 --- a/source3/libads/ldap_printer.c +++ b/source3/libads/ldap_printer.c @@ -310,20 +310,19 @@ WERROR get_remote_printer_publishing_data(struct rpc_pipe_client *cli, const char *printer) { WERROR result; - char *printername, *servername; + char *printername; REGVAL_CTR *dsdriver_ctr, *dsspooler_ctr; uint32 i; POLICY_HND pol; - if ((asprintf(&servername, "\\\\%s", cli->desthost) == -1) - || (asprintf(&printername, "%s\\%s", servername, printer) == -1)) { + if ((asprintf(&printername, "%s\\%s", cli->srv_name_slash, printer) == -1)) { DEBUG(3, ("Insufficient memory\n")); return WERR_NOMEM; } result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, - servername, cli->auth->user_name, + cli->srv_name_slash, cli->auth->user_name, &pol); if (!W_ERROR_IS_OK(result)) { DEBUG(3, ("Unable to open printer %s, error is %s.\n", diff --git a/source3/rpcclient/cmd_spoolss.c b/source3/rpcclient/cmd_spoolss.c index 4b35f57900..f026f486ce 100644 --- a/source3/rpcclient/cmd_spoolss.c +++ b/source3/rpcclient/cmd_spoolss.c @@ -98,7 +98,7 @@ static WERROR cmd_spoolss_open_printer_ex(struct rpc_pipe_client *cli, { WERROR werror; fstring printername; - fstring servername, user; + fstring user; POLICY_HND hnd; if (argc != 2) { @@ -109,8 +109,6 @@ static WERROR cmd_spoolss_open_printer_ex(struct rpc_pipe_client *cli, if (!cli) return WERR_GENERAL_FAILURE; - slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost); - strupper_m(servername); fstrcpy(user, cli->auth->user_name); fstrcpy(printername, argv[1]); @@ -118,7 +116,7 @@ static WERROR cmd_spoolss_open_printer_ex(struct rpc_pipe_client *cli, werror = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", PRINTER_ALL_ACCESS, - servername, user, &hnd); + cli->srv_name_slash, user, &hnd); if (W_ERROR_IS_OK(werror)) { printf("Printer %s opened successfully\n", printername); @@ -473,7 +471,6 @@ static WERROR cmd_spoolss_setprinter(struct rpc_pipe_client *cli, bool opened_hnd = False; PRINTER_INFO_CTR ctr; fstring printername, - servername, user, comment; @@ -488,14 +485,12 @@ static WERROR cmd_spoolss_setprinter(struct rpc_pipe_client *cli, fstrcpy(comment, argv[2]); } - slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost); - strupper_m(servername); - slprintf(printername, sizeof(servername)-1, "%s\\%s", servername, argv[1]); + slprintf(printername, sizeof(printername)-1, "%s\\%s", cli->srv_name_slash, argv[1]); fstrcpy(user, cli->auth->user_name); /* get a printer handle */ result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", - PRINTER_ALL_ACCESS, servername, + PRINTER_ALL_ACCESS, cli->srv_name_slash, user, &pol); if (!W_ERROR_IS_OK(result)) @@ -539,7 +534,6 @@ static WERROR cmd_spoolss_setprintername(struct rpc_pipe_client *cli, bool opened_hnd = False; PRINTER_INFO_CTR ctr; fstring printername, - servername, user, new_printername; @@ -554,14 +548,12 @@ static WERROR cmd_spoolss_setprintername(struct rpc_pipe_client *cli, fstrcpy(new_printername, argv[2]); } - slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost); - strupper_m(servername); - slprintf(printername, sizeof(printername)-1, "%s\\%s", servername, argv[1]); + slprintf(printername, sizeof(printername)-1, "%s\\%s", cli->srv_name_slash, argv[1]); fstrcpy(user, cli->auth->user_name); /* get a printer handle */ result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", - PRINTER_ALL_ACCESS, servername, + PRINTER_ALL_ACCESS, cli->srv_name_slash, user, &pol); if (!W_ERROR_IS_OK(result)) @@ -604,7 +596,6 @@ static WERROR cmd_spoolss_getprinter(struct rpc_pipe_client *cli, bool opened_hnd = False; PRINTER_INFO_CTR ctr; fstring printername, - servername, user; if (argc == 1 || argc > 3) { @@ -617,16 +608,14 @@ static WERROR cmd_spoolss_getprinter(struct rpc_pipe_client *cli, info_level = atoi(argv[2]); } - slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost); - strupper_m(servername); - slprintf(printername, sizeof(printername)-1, "%s\\%s", servername, argv[1]); + slprintf(printername, sizeof(printername)-1, "%s\\%s", cli->srv_name_slash, argv[1]); fstrcpy(user, cli->auth->user_name); /* get a printer handle */ result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, - servername, user, &pol); + cli->srv_name_slash, user, &pol); if (!W_ERROR_IS_OK(result)) goto done; @@ -742,7 +731,6 @@ static WERROR cmd_spoolss_getprinterdata(struct rpc_pipe_client *cli, WERROR result; bool opened_hnd = False; fstring printername, - servername, user; const char *valuename; REGISTRY_VALUE value; @@ -756,20 +744,18 @@ static WERROR cmd_spoolss_getprinterdata(struct rpc_pipe_client *cli, /* Open a printer handle */ - slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost); - strupper_m(servername); if (strncmp(argv[1], ".", sizeof(".")) == 0) - fstrcpy(printername, servername); + fstrcpy(printername, cli->srv_name_slash); else - slprintf(printername, sizeof(servername)-1, "%s\\%s", - servername, argv[1]); + slprintf(printername, sizeof(printername)-1, "%s\\%s", + cli->srv_name_slash, argv[1]); fstrcpy(user, cli->auth->user_name); /* get a printer handle */ result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, - servername, user, &pol); + cli->srv_name_slash, user, &pol); if (!W_ERROR_IS_OK(result)) goto done; @@ -807,7 +793,6 @@ static WERROR cmd_spoolss_getprinterdataex(struct rpc_pipe_client *cli, WERROR result; bool opened_hnd = False; fstring printername, - servername, user; const char *valuename, *keyname; REGISTRY_VALUE value; @@ -823,20 +808,18 @@ static WERROR cmd_spoolss_getprinterdataex(struct rpc_pipe_client *cli, /* Open a printer handle */ - slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost); - strupper_m(servername); if (strncmp(argv[1], ".", sizeof(".")) == 0) - fstrcpy(printername, servername); + fstrcpy(printername, cli->srv_name_slash); else slprintf(printername, sizeof(printername)-1, "%s\\%s", - servername, argv[1]); + cli->srv_name_slash, argv[1]); fstrcpy(user, cli->auth->user_name); /* get a printer handle */ result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, - servername, user, &pol); + cli->srv_name_slash, user, &pol); if (!W_ERROR_IS_OK(result)) goto done; @@ -987,7 +970,6 @@ static WERROR cmd_spoolss_getdriver(struct rpc_pipe_client *cli, bool opened_hnd = False; PRINTER_DRIVER_CTR ctr; fstring printername, - servername, user; uint32 i; bool success = False; @@ -999,10 +981,8 @@ 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->auth->user_name); - slprintf(printername, sizeof(servername)-1, "%s\\%s", servername, argv[1]); + slprintf(printername, sizeof(printername)-1, "%s\\%s", cli->srv_name_slash, argv[1]); if (argc == 3) info_level = atoi(argv[2]); @@ -1010,7 +990,7 @@ static WERROR cmd_spoolss_getdriver(struct rpc_pipe_client *cli, werror = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", PRINTER_ACCESS_USE, - servername, user, &pol); + cli->srv_name_slash, user, &pol); if (!W_ERROR_IS_OK(werror)) { printf("Error opening printer handle for %s!\n", printername); @@ -1374,7 +1354,6 @@ static WERROR cmd_spoolss_addprinterex(struct rpc_pipe_client *cli, uint32 level = 2; PRINTER_INFO_CTR ctr; PRINTER_INFO_2 info2; - fstring servername; /* parse the command arguments */ if (argc != 5) @@ -1383,9 +1362,6 @@ static WERROR cmd_spoolss_addprinterex(struct rpc_pipe_client *cli, return WERR_OK; } - slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost); - strupper_m(servername); - /* Fill in the DRIVER_INFO_2 struct */ ZERO_STRUCT(info2); @@ -1434,8 +1410,7 @@ static WERROR cmd_spoolss_setdriver(struct rpc_pipe_client *cli, bool opened_hnd = False; PRINTER_INFO_CTR ctr; PRINTER_INFO_2 info2; - fstring servername, - printername, + fstring printername, user; /* parse the command arguments */ @@ -1445,16 +1420,14 @@ static WERROR cmd_spoolss_setdriver(struct rpc_pipe_client *cli, return WERR_OK; } - slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost); - strupper_m(servername); - slprintf(printername, sizeof(printername)-1, "%s\\%s", servername, argv[1]); + slprintf(printername, sizeof(printername)-1, "%s\\%s", cli->srv_name_slash, argv[1]); fstrcpy(user, cli->auth->user_name); /* Get a printer handle */ result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", PRINTER_ALL_ACCESS, - servername, user, &pol); + cli->srv_name_slash, user, &pol); if (!W_ERROR_IS_OK(result)) goto done; @@ -1573,7 +1546,6 @@ static WERROR cmd_spoolss_deletedriver(struct rpc_pipe_client *cli, { WERROR result = WERR_OK; NTSTATUS status; - fstring servername; int i; /* parse the command arguments */ @@ -1582,14 +1554,11 @@ static WERROR cmd_spoolss_deletedriver(struct rpc_pipe_client *cli, return WERR_OK; } - slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost); - strupper_m(servername); - /* delete the driver for all architectures */ for (i=0; archi_table[i].long_archi; i++) { /* make the call to remove the driver */ status = rpccli_spoolss_DeletePrinterDriver(cli, mem_ctx, - servername, + cli->srv_name_slash, archi_table[i].long_archi, argv[1], &result); @@ -1619,7 +1588,7 @@ static WERROR cmd_spoolss_getprintprocdir(struct rpc_pipe_client *cli, int argc, const char **argv) { WERROR result; - char *servername = NULL, *environment = NULL; + char *environment = NULL; fstring procdir; /* parse the command arguments */ @@ -1628,23 +1597,17 @@ static WERROR cmd_spoolss_getprintprocdir(struct rpc_pipe_client *cli, return WERR_OK; } - if (asprintf(&servername, "\\\\%s", cli->desthost) < 0) - return WERR_NOMEM; - strupper_m(servername); - if (asprintf(&environment, "%s", (argc == 2) ? argv[1] : PRINTER_DRIVER_ARCHITECTURE) < 0) { - SAFE_FREE(servername); return WERR_NOMEM; } result = rpccli_spoolss_getprintprocessordirectory( - cli, mem_ctx, servername, environment, procdir); + cli, mem_ctx, cli->srv_name_slash, environment, procdir); if (W_ERROR_IS_OK(result)) printf("%s\n", procdir); - SAFE_FREE(servername); SAFE_FREE(environment); return result; @@ -1659,7 +1622,7 @@ static WERROR cmd_spoolss_addform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c POLICY_HND handle; WERROR werror; NTSTATUS status; - char *servername = NULL, *printername = NULL; + char *printername = NULL; bool got_handle = False; union spoolss_AddFormInfo info; struct spoolss_AddFormInfo1 info1; @@ -1673,18 +1636,13 @@ static WERROR cmd_spoolss_addform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c /* Get a printer handle */ - if (asprintf(&servername, "\\\\%s", cli->desthost) == -1) { - return WERR_NOMEM; - } - strupper_m(servername); - if (asprintf(&printername, "%s\\%s", servername, argv[1]) == -1) { - SAFE_FREE(servername); + if (asprintf(&printername, "%s\\%s", cli->srv_name_slash, argv[1]) == -1) { return WERR_NOMEM; } werror = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", PRINTER_ALL_ACCESS, - servername, cli->auth->user_name, + cli->srv_name_slash, cli->auth->user_name, &handle); if (!W_ERROR_IS_OK(werror)) @@ -1718,7 +1676,6 @@ static WERROR cmd_spoolss_addform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c if (got_handle) rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL); - SAFE_FREE(servername); SAFE_FREE(printername); return werror; @@ -1733,7 +1690,7 @@ static WERROR cmd_spoolss_setform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c POLICY_HND handle; WERROR werror; NTSTATUS status; - char *servername = NULL, *printername = NULL; + char *printername = NULL; bool got_handle = False; union spoolss_AddFormInfo info; struct spoolss_AddFormInfo1 info1; @@ -1747,18 +1704,13 @@ static WERROR cmd_spoolss_setform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c /* Get a printer handle */ - if (asprintf(&servername, "\\\\%s", cli->desthost)) { - return WERR_NOMEM; - } - strupper_m(servername); - if (asprintf(&printername, "%s\\%s", servername, argv[1]) == -1) { - SAFE_FREE(servername); + if (asprintf(&printername, "%s\\%s", cli->srv_name_slash, argv[1]) == -1) { return WERR_NOMEM; } werror = rpccli_spoolss_open_printer_ex( cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, - servername, cli->auth->user_name, &handle); + cli->srv_name_slash, cli->auth->user_name, &handle); if (!W_ERROR_IS_OK(werror)) goto done; @@ -1791,7 +1743,6 @@ static WERROR cmd_spoolss_setform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c if (got_handle) rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL); - SAFE_FREE(servername); SAFE_FREE(printername); return werror; @@ -1859,7 +1810,7 @@ static WERROR cmd_spoolss_getform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c POLICY_HND handle; WERROR werror; NTSTATUS status; - char *servername = NULL, *printername = NULL; + char *printername = NULL; bool got_handle = False; DATA_BLOB buffer; uint32_t offered = 0; @@ -1875,18 +1826,13 @@ static WERROR cmd_spoolss_getform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c /* Get a printer handle */ - if (asprintf(&servername, "\\\\%s", cli->desthost) == -1) { - return WERR_NOMEM; - } - strupper_m(servername); - if (asprintf(&printername, "%s\\%s", servername, argv[1]) == -1) { - SAFE_FREE(servername); + if (asprintf(&printername, "%s\\%s", cli->srv_name_slash, argv[1]) == -1) { return WERR_NOMEM; } werror = rpccli_spoolss_open_printer_ex( cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, - servername, cli->auth->user_name, &handle); + cli->srv_name_slash, cli->auth->user_name, &handle); if (!W_ERROR_IS_OK(werror)) goto done; @@ -1927,7 +1873,6 @@ static WERROR cmd_spoolss_getform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c if (got_handle) rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL); - SAFE_FREE(servername); SAFE_FREE(printername); return werror; @@ -1943,7 +1888,7 @@ static WERROR cmd_spoolss_deleteform(struct rpc_pipe_client *cli, POLICY_HND handle; WERROR werror; NTSTATUS status; - char *servername = NULL, *printername = NULL; + char *printername = NULL; bool got_handle = False; /* Parse the command arguments */ @@ -1955,18 +1900,13 @@ static WERROR cmd_spoolss_deleteform(struct rpc_pipe_client *cli, /* Get a printer handle */ - if (asprintf(&servername, "\\\\%s", cli->desthost) == -1) { - return WERR_NOMEM; - } - strupper_m(servername); - if (asprintf(&printername, "%s\\%s", servername, argv[1]) == -1) { - SAFE_FREE(servername); + if (asprintf(&printername, "%s\\%s", cli->srv_name_slash, argv[1]) == -1) { return WERR_NOMEM; } werror = rpccli_spoolss_open_printer_ex( cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, - servername, cli->auth->user_name, &handle); + cli->srv_name_slash, cli->auth->user_name, &handle); if (!W_ERROR_IS_OK(werror)) goto done; @@ -1987,7 +1927,6 @@ static WERROR cmd_spoolss_deleteform(struct rpc_pipe_client *cli, if (got_handle) rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL); - SAFE_FREE(servername); SAFE_FREE(printername); return werror; @@ -2002,7 +1941,7 @@ static WERROR cmd_spoolss_enum_forms(struct rpc_pipe_client *cli, { POLICY_HND handle; WERROR werror; - char *servername = NULL, *printername = NULL; + char *printername = NULL; bool got_handle = False; uint32 num_forms, level = 1, i; FORM_1 *forms; @@ -2016,18 +1955,13 @@ static WERROR cmd_spoolss_enum_forms(struct rpc_pipe_client *cli, /* Get a printer handle */ - if (asprintf(&servername, "\\\\%s", cli->desthost) == -1) { - return WERR_NOMEM; - } - strupper_m(servername); - if (asprintf(&printername, "%s\\%s", servername, argv[1]) == -1) { - SAFE_FREE(servername); + if (asprintf(&printername, "%s\\%s", cli->srv_name_slash, argv[1]) == -1) { return WERR_NOMEM; } werror = rpccli_spoolss_open_printer_ex( cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, - servername, cli->auth->user_name, &handle); + cli->srv_name_slash, cli->auth->user_name, &handle); if (!W_ERROR_IS_OK(werror)) goto done; @@ -2053,7 +1987,6 @@ static WERROR cmd_spoolss_enum_forms(struct rpc_pipe_client *cli, if (got_handle) rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL); - SAFE_FREE(servername); SAFE_FREE(printername); return werror; @@ -2067,7 +2000,7 @@ static WERROR cmd_spoolss_setprinterdata(struct rpc_pipe_client *cli, int argc, const char **argv) { WERROR result; - fstring servername, printername, user; + fstring printername, user; POLICY_HND pol; bool opened_hnd = False; PRINTER_INFO_CTR ctr; @@ -2084,9 +2017,7 @@ static WERROR cmd_spoolss_setprinterdata(struct rpc_pipe_client *cli, goto done; } - slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost); - strupper_m(servername); - slprintf(printername, sizeof(servername)-1, "%s\\%s", servername, argv[1]); + slprintf(printername, sizeof(printername)-1, "%s\\%s", cli->srv_name_slash, argv[1]); fstrcpy(user, cli->auth->user_name); value.type = REG_NONE; @@ -2115,7 +2046,8 @@ static WERROR cmd_spoolss_setprinterdata(struct rpc_pipe_client *cli, /* get a printer handle */ result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", - MAXIMUM_ALLOWED_ACCESS, servername, + MAXIMUM_ALLOWED_ACCESS, + cli->srv_name_slash, user, &pol); if (!W_ERROR_IS_OK(result)) goto done; @@ -2280,7 +2212,7 @@ static WERROR cmd_spoolss_enum_jobs(struct rpc_pipe_client *cli, uint32 level = 1, num_jobs, i; bool got_hnd = False; char *printername = NULL; - fstring servername, user; + fstring user; POLICY_HND hnd; JOB_INFO_CTR ctr; @@ -2294,8 +2226,6 @@ static WERROR cmd_spoolss_enum_jobs(struct rpc_pipe_client *cli, /* Open printer handle */ - slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost); - strupper_m(servername); fstrcpy(user, cli->auth->user_name); printername = talloc_asprintf(mem_ctx, "\\\\%s\\", cli->desthost); if (!printername) { @@ -2309,7 +2239,7 @@ static WERROR cmd_spoolss_enum_jobs(struct rpc_pipe_client *cli, result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, - servername, user, &hnd); + cli->srv_name_slash, user, &hnd); if (!W_ERROR_IS_OK(result)) goto done; @@ -2356,7 +2286,7 @@ static WERROR cmd_spoolss_enum_data( struct rpc_pipe_client *cli, uint32 i=0, val_needed, data_needed; bool got_hnd = False; char *printername = NULL; - fstring servername, user; + fstring user; POLICY_HND hnd; if (argc != 2) { @@ -2366,8 +2296,6 @@ static WERROR cmd_spoolss_enum_data( struct rpc_pipe_client *cli, /* Open printer handle */ - slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost); - strupper_m(servername); fstrcpy(user, cli->auth->user_name); printername = talloc_asprintf(mem_ctx, "\\\\%s\\", cli->desthost); if (!printername) { @@ -2381,7 +2309,7 @@ static WERROR cmd_spoolss_enum_data( struct rpc_pipe_client *cli, result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, - servername, user, &hnd); + cli->srv_name_slash, user, &hnd); if (!W_ERROR_IS_OK(result)) goto done; @@ -2422,7 +2350,7 @@ static WERROR cmd_spoolss_enum_data_ex( struct rpc_pipe_client *cli, uint32 i; bool got_hnd = False; char *printername = NULL; - fstring servername, user; + fstring user; const char *keyname = NULL; POLICY_HND hnd; REGVAL_CTR *ctr = NULL; @@ -2436,8 +2364,6 @@ static WERROR cmd_spoolss_enum_data_ex( struct rpc_pipe_client *cli, /* Open printer handle */ - slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost); - strupper_m(servername); fstrcpy(user, cli->auth->user_name); printername = talloc_asprintf(mem_ctx, "\\\\%s\\", cli->desthost); @@ -2452,7 +2378,7 @@ static WERROR cmd_spoolss_enum_data_ex( struct rpc_pipe_client *cli, result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, - servername, user, &hnd); + cli->srv_name_slash, user, &hnd); if (!W_ERROR_IS_OK(result)) goto done; @@ -2492,7 +2418,7 @@ static WERROR cmd_spoolss_enum_printerkey( struct rpc_pipe_client *cli, WERROR result; bool got_hnd = False; char *printername = NULL; - fstring servername, user; + fstring user; const char *keyname = NULL; POLICY_HND hnd; uint16 *keylist = NULL, *curkey; @@ -2509,8 +2435,6 @@ static WERROR cmd_spoolss_enum_printerkey( struct rpc_pipe_client *cli, /* Open printer handle */ - slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->desthost); - strupper_m(servername); fstrcpy(user, cli->auth->user_name); printername = talloc_asprintf(mem_ctx, "\\\\%s\\", cli->desthost); @@ -2526,7 +2450,7 @@ static WERROR cmd_spoolss_enum_printerkey( struct rpc_pipe_client *cli, result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, - servername, user, &hnd); + cli->srv_name_slash, user, &hnd); if (!W_ERROR_IS_OK(result)) goto done; @@ -2583,16 +2507,13 @@ static WERROR cmd_spoolss_rffpcnex(struct rpc_pipe_client *cli, /* Open printer */ - slprintf(servername, sizeof(servername) - 1, "\\\\%s", cli->desthost); - strupper_m(servername); - slprintf(printername, sizeof(printername) - 1, "\\\\%s\\%s", cli->desthost, argv[1]); strupper_m(printername); result = rpccli_spoolss_open_printer_ex( cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, - servername, cli->auth->user_name, &hnd); + cli->srv_name_slash, cli->auth->user_name, &hnd); if (!W_ERROR_IS_OK(result)) { printf("Error opening %s\n", argv[1]); @@ -2633,7 +2554,7 @@ static WERROR cmd_spoolss_rffpcnex(struct rpc_pipe_client *cli, strupper_m(servername); result = rpccli_spoolss_rffpcnex( - cli, mem_ctx, &hnd, 0, 0, servername, 123, &option); + cli, mem_ctx, &hnd, 0, 0, cli->srv_name_slash, 123, &option); if (!W_ERROR_IS_OK(result)) { printf("Error rffpcnex %s\n", argv[1]); diff --git a/source3/utils/net_rpc_printer.c b/source3/utils/net_rpc_printer.c index ad9be05798..e74524beb7 100644 --- a/source3/utils/net_rpc_printer.c +++ b/source3/utils/net_rpc_printer.c @@ -726,38 +726,35 @@ static bool net_spoolss_open_printer_ex(struct rpc_pipe_client *pipe_hnd, POLICY_HND *hnd) { WERROR result; - fstring servername, printername2; + fstring printername2; - slprintf(servername, sizeof(servername)-1, "\\\\%s", - pipe_hnd->desthost); - - fstrcpy(printername2, servername); + fstrcpy(printername2, pipe_hnd->srv_name_slash); fstrcat(printername2, "\\"); fstrcat(printername2, printername); DEBUG(10,("connecting to: %s as %s for %s and access: %x\n", - servername, username, printername2, access_required)); + pipe_hnd->srv_name_slash, username, printername2, access_required)); /* open printer */ result = rpccli_spoolss_open_printer_ex(pipe_hnd, mem_ctx, printername2, "", access_required, - servername, username, hnd); + pipe_hnd->csrv_name_slash, username, hnd); /* be more verbose */ if (W_ERROR_V(result) == W_ERROR_V(WERR_ACCESS_DENIED)) { d_fprintf(stderr, "no access to printer [%s] on [%s] for user [%s] granted\n", - printername2, servername, username); + printername2, pipe_hnd->csrv_name_slash, username); return false; } if (!W_ERROR_IS_OK(result)) { d_fprintf(stderr, "cannot open printer %s on server %s: %s\n", - printername2, servername, win_errstr(result)); + printername2, pipe_hnd->csrv_name_slash, win_errstr(result)); return false; } DEBUG(2,("got printer handle for printer: %s, server: %s\n", - printername2, servername)); + printername2, pipe_hnd->csrv_name_slash)); return true; } |