From b3a2b3ade0ddd3ddd93079286d2a06547d182a99 Mon Sep 17 00:00:00 2001 From: Karolin Seeger Date: Mon, 9 Feb 2009 19:05:20 +0100 Subject: s4/wrepl_server: Fix typo in comment. Karolin --- source4/wrepl_server/wrepl_in_connection.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source4/wrepl_server/wrepl_in_connection.c b/source4/wrepl_server/wrepl_in_connection.c index e6a69b829a..7c9c2b77bf 100644 --- a/source4/wrepl_server/wrepl_in_connection.c +++ b/source4/wrepl_server/wrepl_in_connection.c @@ -236,8 +236,8 @@ NTSTATUS wreplsrv_in_connection_merge(struct wreplsrv_partner *partner, NT_STATUS_NOT_OK_RETURN(status); /* - * make the wreplsrv_in_connection structure a child of the - * stream_connection, to match the hierachie of wreplsrv_accept + * make the wreplsrv_in_connection structure a child of the + * stream_connection, to match the hierarchy of wreplsrv_accept */ wrepl_in->conn = conn; talloc_steal(conn, wrepl_in); -- cgit From 438af255c6dcbc225357ae5162853915002d0d15 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Mon, 9 Feb 2009 18:10:18 +0100 Subject: s3-rpcclient: use srv_name_slash instead of formating servername again and again. Guenther --- source3/libads/ldap_printer.c | 7 +- source3/rpcclient/cmd_spoolss.c | 183 ++++++++++++---------------------------- 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; } -- cgit From 84a0076c4b62d23b21153dd00ec72fe8042b39cc Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Mon, 9 Feb 2009 19:02:56 +0100 Subject: s3-rpcclient: remove a pointless fstring. Guenther --- source3/rpcclient/cmd_spoolss.c | 75 ++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 46 deletions(-) diff --git a/source3/rpcclient/cmd_spoolss.c b/source3/rpcclient/cmd_spoolss.c index f026f486ce..aba961a22d 100644 --- a/source3/rpcclient/cmd_spoolss.c +++ b/source3/rpcclient/cmd_spoolss.c @@ -98,7 +98,6 @@ static WERROR cmd_spoolss_open_printer_ex(struct rpc_pipe_client *cli, { WERROR werror; fstring printername; - fstring user; POLICY_HND hnd; if (argc != 2) { @@ -109,14 +108,14 @@ static WERROR cmd_spoolss_open_printer_ex(struct rpc_pipe_client *cli, if (!cli) return WERR_GENERAL_FAILURE; - fstrcpy(user, cli->auth->user_name); fstrcpy(printername, argv[1]); /* Open the printer handle */ werror = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", PRINTER_ALL_ACCESS, - cli->srv_name_slash, user, &hnd); + cli->srv_name_slash, + cli->auth->user_name, &hnd); if (W_ERROR_IS_OK(werror)) { printf("Printer %s opened successfully\n", printername); @@ -471,7 +470,6 @@ static WERROR cmd_spoolss_setprinter(struct rpc_pipe_client *cli, bool opened_hnd = False; PRINTER_INFO_CTR ctr; fstring printername, - user, comment; if (argc == 1 || argc > 3) { @@ -486,12 +484,11 @@ static WERROR cmd_spoolss_setprinter(struct rpc_pipe_client *cli, } 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, cli->srv_name_slash, - user, &pol); + cli->auth->user_name, &pol); if (!W_ERROR_IS_OK(result)) goto done; @@ -534,7 +531,6 @@ static WERROR cmd_spoolss_setprintername(struct rpc_pipe_client *cli, bool opened_hnd = False; PRINTER_INFO_CTR ctr; fstring printername, - user, new_printername; if (argc == 1 || argc > 3) { @@ -549,12 +545,11 @@ static WERROR cmd_spoolss_setprintername(struct rpc_pipe_client *cli, } 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, cli->srv_name_slash, - user, &pol); + cli->auth->user_name, &pol); if (!W_ERROR_IS_OK(result)) goto done; @@ -595,8 +590,7 @@ static WERROR cmd_spoolss_getprinter(struct rpc_pipe_client *cli, uint32 info_level = 1; bool opened_hnd = False; PRINTER_INFO_CTR ctr; - fstring printername, - user; + fstring printername; if (argc == 1 || argc > 3) { printf("Usage: %s [level]\n", argv[0]); @@ -609,13 +603,13 @@ static WERROR cmd_spoolss_getprinter(struct rpc_pipe_client *cli, } 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, - cli->srv_name_slash, user, &pol); + cli->srv_name_slash, + cli->auth->user_name, &pol); if (!W_ERROR_IS_OK(result)) goto done; @@ -730,8 +724,7 @@ static WERROR cmd_spoolss_getprinterdata(struct rpc_pipe_client *cli, POLICY_HND pol; WERROR result; bool opened_hnd = False; - fstring printername, - user; + fstring printername; const char *valuename; REGISTRY_VALUE value; @@ -749,13 +742,13 @@ static WERROR cmd_spoolss_getprinterdata(struct rpc_pipe_client *cli, else 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, - cli->srv_name_slash, user, &pol); + cli->srv_name_slash, + cli->auth->user_name, &pol); if (!W_ERROR_IS_OK(result)) goto done; @@ -792,8 +785,7 @@ static WERROR cmd_spoolss_getprinterdataex(struct rpc_pipe_client *cli, POLICY_HND pol; WERROR result; bool opened_hnd = False; - fstring printername, - user; + fstring printername; const char *valuename, *keyname; REGISTRY_VALUE value; @@ -813,13 +805,13 @@ static WERROR cmd_spoolss_getprinterdataex(struct rpc_pipe_client *cli, else 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, - cli->srv_name_slash, user, &pol); + cli->srv_name_slash, + cli->auth->user_name, &pol); if (!W_ERROR_IS_OK(result)) goto done; @@ -969,8 +961,7 @@ static WERROR cmd_spoolss_getdriver(struct rpc_pipe_client *cli, uint32 info_level = 3; bool opened_hnd = False; PRINTER_DRIVER_CTR ctr; - fstring printername, - user; + fstring printername; uint32 i; bool success = False; @@ -981,7 +972,6 @@ static WERROR cmd_spoolss_getdriver(struct rpc_pipe_client *cli, } /* get the arguments need to open the printer handle */ - fstrcpy(user, cli->auth->user_name); slprintf(printername, sizeof(printername)-1, "%s\\%s", cli->srv_name_slash, argv[1]); if (argc == 3) info_level = atoi(argv[2]); @@ -990,7 +980,8 @@ static WERROR cmd_spoolss_getdriver(struct rpc_pipe_client *cli, werror = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", PRINTER_ACCESS_USE, - cli->srv_name_slash, user, &pol); + cli->srv_name_slash, + cli->auth->user_name, &pol); if (!W_ERROR_IS_OK(werror)) { printf("Error opening printer handle for %s!\n", printername); @@ -1410,8 +1401,7 @@ static WERROR cmd_spoolss_setdriver(struct rpc_pipe_client *cli, bool opened_hnd = False; PRINTER_INFO_CTR ctr; PRINTER_INFO_2 info2; - fstring printername, - user; + fstring printername; /* parse the command arguments */ if (argc != 3) @@ -1421,13 +1411,13 @@ static WERROR cmd_spoolss_setdriver(struct rpc_pipe_client *cli, } 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, - cli->srv_name_slash, user, &pol); + cli->srv_name_slash, + cli->auth->user_name, &pol); if (!W_ERROR_IS_OK(result)) goto done; @@ -2000,7 +1990,7 @@ static WERROR cmd_spoolss_setprinterdata(struct rpc_pipe_client *cli, int argc, const char **argv) { WERROR result; - fstring printername, user; + fstring printername; POLICY_HND pol; bool opened_hnd = False; PRINTER_INFO_CTR ctr; @@ -2018,7 +2008,6 @@ static WERROR cmd_spoolss_setprinterdata(struct rpc_pipe_client *cli, } slprintf(printername, sizeof(printername)-1, "%s\\%s", cli->srv_name_slash, argv[1]); - fstrcpy(user, cli->auth->user_name); value.type = REG_NONE; @@ -2048,7 +2037,7 @@ static WERROR cmd_spoolss_setprinterdata(struct rpc_pipe_client *cli, result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, cli->srv_name_slash, - user, &pol); + cli->auth->user_name, &pol); if (!W_ERROR_IS_OK(result)) goto done; @@ -2212,7 +2201,6 @@ 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 user; POLICY_HND hnd; JOB_INFO_CTR ctr; @@ -2226,7 +2214,6 @@ static WERROR cmd_spoolss_enum_jobs(struct rpc_pipe_client *cli, /* Open printer handle */ - fstrcpy(user, cli->auth->user_name); printername = talloc_asprintf(mem_ctx, "\\\\%s\\", cli->desthost); if (!printername) { return WERR_NOMEM; @@ -2239,7 +2226,8 @@ static WERROR cmd_spoolss_enum_jobs(struct rpc_pipe_client *cli, result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, - cli->srv_name_slash, user, &hnd); + cli->srv_name_slash, + cli->auth->user_name, &hnd); if (!W_ERROR_IS_OK(result)) goto done; @@ -2286,7 +2274,6 @@ 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 user; POLICY_HND hnd; if (argc != 2) { @@ -2296,7 +2283,6 @@ static WERROR cmd_spoolss_enum_data( struct rpc_pipe_client *cli, /* Open printer handle */ - fstrcpy(user, cli->auth->user_name); printername = talloc_asprintf(mem_ctx, "\\\\%s\\", cli->desthost); if (!printername) { return WERR_NOMEM; @@ -2309,7 +2295,8 @@ static WERROR cmd_spoolss_enum_data( struct rpc_pipe_client *cli, result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, - cli->srv_name_slash, user, &hnd); + cli->srv_name_slash, + cli->auth->user_name, &hnd); if (!W_ERROR_IS_OK(result)) goto done; @@ -2350,7 +2337,6 @@ static WERROR cmd_spoolss_enum_data_ex( struct rpc_pipe_client *cli, uint32 i; bool got_hnd = False; char *printername = NULL; - fstring user; const char *keyname = NULL; POLICY_HND hnd; REGVAL_CTR *ctr = NULL; @@ -2364,8 +2350,6 @@ static WERROR cmd_spoolss_enum_data_ex( struct rpc_pipe_client *cli, /* Open printer handle */ - fstrcpy(user, cli->auth->user_name); - printername = talloc_asprintf(mem_ctx, "\\\\%s\\", cli->desthost); if (!printername) { return WERR_NOMEM; @@ -2378,7 +2362,8 @@ 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, - cli->srv_name_slash, user, &hnd); + cli->srv_name_slash, + cli->auth->user_name, &hnd); if (!W_ERROR_IS_OK(result)) goto done; @@ -2418,7 +2403,6 @@ static WERROR cmd_spoolss_enum_printerkey( struct rpc_pipe_client *cli, WERROR result; bool got_hnd = False; char *printername = NULL; - fstring user; const char *keyname = NULL; POLICY_HND hnd; uint16 *keylist = NULL, *curkey; @@ -2435,8 +2419,6 @@ static WERROR cmd_spoolss_enum_printerkey( struct rpc_pipe_client *cli, /* Open printer handle */ - fstrcpy(user, cli->auth->user_name); - printername = talloc_asprintf(mem_ctx, "\\\\%s\\", cli->desthost); if (!printername) { return WERR_NOMEM; @@ -2450,7 +2432,8 @@ static WERROR cmd_spoolss_enum_printerkey( struct rpc_pipe_client *cli, result = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, - cli->srv_name_slash, user, &hnd); + cli->srv_name_slash, + cli->auth->user_name, &hnd); if (!W_ERROR_IS_OK(result)) goto done; -- cgit From a7cf846d1e98e07f008edb322b9a37ec30593ffc Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Mon, 9 Feb 2009 15:31:35 +0100 Subject: s3-spoolss: use pidl for _spoolss_AddPrintProcessor. Guenther --- source3/rpc_server/srv_spoolss.c | 26 +------------------------- source3/rpc_server/srv_spoolss_nt.c | 27 ++++++++++++++++----------- 2 files changed, 17 insertions(+), 36 deletions(-) diff --git a/source3/rpc_server/srv_spoolss.c b/source3/rpc_server/srv_spoolss.c index bf11bc6914..cf5b4fb3f8 100644 --- a/source3/rpc_server/srv_spoolss.c +++ b/source3/rpc_server/srv_spoolss.c @@ -898,31 +898,7 @@ static bool api_spoolss_enumprintprocessors(pipes_struct *p) static bool api_spoolss_addprintprocessor(pipes_struct *p) { - SPOOL_Q_ADDPRINTPROCESSOR q_u; - SPOOL_R_ADDPRINTPROCESSOR r_u; - prs_struct *data = &p->in_data.data; - prs_struct *rdata = &p->out_data.rdata; - - ZERO_STRUCT(q_u); - ZERO_STRUCT(r_u); - - if(!spoolss_io_q_addprintprocessor("", &q_u, data, 0)) { - DEBUG(0,("spoolss_io_q_addprintprocessor: unable to unmarshall SPOOL_Q_ADDPRINTPROCESSOR.\n")); - return False; - } - - /* for now, just indicate success and ignore the add. We'll - automatically set the winprint processor for printer - entries later. Used to debug the LexMark Optra S 1855 PCL - driver --jerry */ - r_u.status = WERR_OK; - - if(!spoolss_io_r_addprintprocessor("", &r_u, rdata, 0)) { - DEBUG(0,("spoolss_io_r_addprintprocessor: unable to marshall SPOOL_R_ADDPRINTPROCESSOR.\n")); - return False; - } - - return True; + return proxy_spoolss_call(p, NDR_SPOOLSS_ADDPRINTPROCESSOR); } /**************************************************************************** diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c index 31ab2ca43d..04bbc97279 100644 --- a/source3/rpc_server/srv_spoolss_nt.c +++ b/source3/rpc_server/srv_spoolss_nt.c @@ -9978,6 +9978,22 @@ WERROR _spoolss_xcvdataport(pipes_struct *p, SPOOL_Q_XCVDATAPORT *q_u, SPOOL_R_X return WERR_INVALID_PRINT_MONITOR; } + +/**************************************************************** + _spoolss_AddPrintProcessor +****************************************************************/ + +WERROR _spoolss_AddPrintProcessor(pipes_struct *p, + struct spoolss_AddPrintProcessor *r) +{ + /* for now, just indicate success and ignore the add. We'll + automatically set the winprint processor for printer + entries later. Used to debug the LexMark Optra S 1855 PCL + driver --jerry */ + + return WERR_OK; +} + /**************************************************************** _spoolss_EnumPrinters ****************************************************************/ @@ -10110,17 +10126,6 @@ WERROR _spoolss_GetPrinterDriverDirectory(pipes_struct *p, return WERR_NOT_SUPPORTED; } -/**************************************************************** - _spoolss_AddPrintProcessor -****************************************************************/ - -WERROR _spoolss_AddPrintProcessor(pipes_struct *p, - struct spoolss_AddPrintProcessor *r) -{ - p->rng_fault_state = true; - return WERR_NOT_SUPPORTED; -} - /**************************************************************** _spoolss_EnumPrintProcessors ****************************************************************/ -- cgit From d87891ea3e1cf0c4e4d16ceb5b6b0a7c65cedf3f Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Mon, 9 Feb 2009 15:32:34 +0100 Subject: s3-spoolss: remove old spoolss_AddPrintProcessor. Guenther --- source3/include/proto.h | 2 -- source3/include/rpc_spoolss.h | 17 ------------- source3/rpc_parse/parse_spoolss.c | 51 --------------------------------------- 3 files changed, 70 deletions(-) diff --git a/source3/include/proto.h b/source3/include/proto.h index 5009e6dcdb..670fb492f9 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -5985,8 +5985,6 @@ bool spoolss_io_q_getprinterdriverdir(const char *desc, SPOOL_Q_GETPRINTERDRIVER bool spoolss_io_r_getprinterdriverdir(const char *desc, SPOOL_R_GETPRINTERDRIVERDIR *r_u, prs_struct *ps, int depth); bool spoolss_io_r_enumprintprocessors(const char *desc, SPOOL_R_ENUMPRINTPROCESSORS *r_u, prs_struct *ps, int depth); bool spoolss_io_q_enumprintprocessors(const char *desc, SPOOL_Q_ENUMPRINTPROCESSORS *q_u, prs_struct *ps, int depth); -bool spoolss_io_q_addprintprocessor(const char *desc, SPOOL_Q_ADDPRINTPROCESSOR *q_u, prs_struct *ps, int depth); -bool spoolss_io_r_addprintprocessor(const char *desc, SPOOL_R_ADDPRINTPROCESSOR *r_u, prs_struct *ps, int depth); bool spoolss_io_r_enumprintprocdatatypes(const char *desc, SPOOL_R_ENUMPRINTPROCDATATYPES *r_u, prs_struct *ps, int depth); bool spoolss_io_q_enumprintprocdatatypes(const char *desc, SPOOL_Q_ENUMPRINTPROCDATATYPES *q_u, prs_struct *ps, int depth); bool spoolss_io_q_enumprintmonitors(const char *desc, SPOOL_Q_ENUMPRINTMONITORS *q_u, prs_struct *ps, int depth); diff --git a/source3/include/rpc_spoolss.h b/source3/include/rpc_spoolss.h index feabd3fff7..b159263921 100644 --- a/source3/include/rpc_spoolss.h +++ b/source3/include/rpc_spoolss.h @@ -1395,23 +1395,6 @@ typedef struct spool_r_getprinterdriverdirectory } SPOOL_R_GETPRINTERDRIVERDIR; -typedef struct spool_q_addprintprocessor -{ - uint32 server_ptr; - UNISTR2 server; - UNISTR2 environment; - UNISTR2 path; - UNISTR2 name; -} -SPOOL_Q_ADDPRINTPROCESSOR; - -typedef struct spool_r_addprintprocessor -{ - WERROR status; -} -SPOOL_R_ADDPRINTPROCESSOR; - - typedef struct spool_q_enumprintprocessors { uint32 name_ptr; diff --git a/source3/rpc_parse/parse_spoolss.c b/source3/rpc_parse/parse_spoolss.c index 84b764eeab..fbb001f7dc 100644 --- a/source3/rpc_parse/parse_spoolss.c +++ b/source3/rpc_parse/parse_spoolss.c @@ -5013,57 +5013,6 @@ bool spoolss_io_q_enumprintprocessors(const char *desc, SPOOL_Q_ENUMPRINTPROCESS /******************************************************************* ********************************************************************/ -bool spoolss_io_q_addprintprocessor(const char *desc, SPOOL_Q_ADDPRINTPROCESSOR *q_u, prs_struct *ps, int depth) -{ - prs_debug(ps, depth, desc, "spoolss_io_q_addprintprocessor"); - depth++; - - if (!prs_align(ps)) - return False; - - if (!prs_uint32("server_ptr", ps, depth, &q_u->server_ptr)) - return False; - if (!smb_io_unistr2("server", &q_u->server, q_u->server_ptr, ps, depth)) - return False; - - if (!prs_align(ps)) - return False; - if (!smb_io_unistr2("environment", &q_u->environment, True, ps, depth)) - return False; - - if (!prs_align(ps)) - return False; - if (!smb_io_unistr2("path", &q_u->path, True, ps, depth)) - return False; - - if (!prs_align(ps)) - return False; - if (!smb_io_unistr2("name", &q_u->name, True, ps, depth)) - return False; - - return True; -} - -/******************************************************************* -********************************************************************/ - -bool spoolss_io_r_addprintprocessor(const char *desc, SPOOL_R_ADDPRINTPROCESSOR *r_u, prs_struct *ps, int depth) -{ - prs_debug(ps, depth, desc, "spoolss_io_r_addprintproicessor"); - depth++; - - if (!prs_align(ps)) - return False; - - if (!prs_werror("status", ps, depth, &r_u->status)) - return False; - - return True; -} - -/******************************************************************* -********************************************************************/ - bool spoolss_io_r_enumprintprocdatatypes(const char *desc, SPOOL_R_ENUMPRINTPROCDATATYPES *r_u, prs_struct *ps, int depth) { prs_debug(ps, depth, desc, "spoolss_io_r_enumprintprocdatatypes"); -- cgit From d2b8fb99eedcfa16e1f68d3ca99df08e4503a598 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Mon, 9 Feb 2009 13:34:35 +0100 Subject: s3-spoolss: use rpccli_spoolss_ReplyClosePrinter. Guenther --- source3/rpc_server/srv_spoolss_nt.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c index 04bbc97279..ec1a9a81da 100644 --- a/source3/rpc_server/srv_spoolss_nt.c +++ b/source3/rpc_server/srv_spoolss_nt.c @@ -150,6 +150,7 @@ static void free_spool_notify_option(SPOOL_NOTIFY_OPTION **pp) static void srv_spoolss_replycloseprinter(int snum, POLICY_HND *handle) { WERROR result; + NTSTATUS status; /* * Tell the specific printing tdb we no longer want messages for this printer @@ -165,11 +166,10 @@ static void srv_spoolss_replycloseprinter(int snum, POLICY_HND *handle) return; } - result = rpccli_spoolss_reply_close_printer(notify_cli_pipe, - talloc_tos(), - handle); - - if (!W_ERROR_IS_OK(result)) + status = rpccli_spoolss_ReplyClosePrinter(notify_cli_pipe, talloc_tos(), + handle, + &result); + if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(result)) DEBUG(0,("srv_spoolss_replycloseprinter: reply_close_printer failed [%s].\n", win_errstr(result))); -- cgit From 3b4bf2f8a9c5150d03ea083e6db7d15035697806 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Mon, 9 Feb 2009 13:35:05 +0100 Subject: s3-spoolss: remove old spoolss_ReplyClosePrinter. Guenther --- source3/include/proto.h | 5 ---- source3/include/rpc_spoolss.h | 13 -------- source3/rpc_client/cli_spoolss_notify.c | 29 ------------------ source3/rpc_parse/parse_spoolss.c | 53 --------------------------------- 4 files changed, 100 deletions(-) diff --git a/source3/include/proto.h b/source3/include/proto.h index 670fb492f9..530361fcbf 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -5507,8 +5507,6 @@ WERROR rpccli_spoolss_enumprinterkey(struct rpc_pipe_client *cli, TALLOC_CTX *me WERROR rpccli_spoolss_reply_open_printer(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *printer, uint32 printerlocal, uint32 type, POLICY_HND *handle); -WERROR rpccli_spoolss_reply_close_printer(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - POLICY_HND *handle); WERROR rpccli_spoolss_routerreplyprinter(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, POLICY_HND *pol, uint32 condition, uint32 change_id); WERROR rpccli_spoolss_rrpcn(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, @@ -6025,9 +6023,6 @@ bool make_spoolss_q_routerreplyprinter(SPOOL_Q_ROUTERREPLYPRINTER *q_u, POLICY_H uint32 condition, uint32 change_id); bool spoolss_io_q_routerreplyprinter (const char *desc, SPOOL_Q_ROUTERREPLYPRINTER *q_u, prs_struct *ps, int depth); bool spoolss_io_r_routerreplyprinter (const char *desc, SPOOL_R_ROUTERREPLYPRINTER *r_u, prs_struct *ps, int depth); -bool make_spoolss_q_reply_closeprinter(SPOOL_Q_REPLYCLOSEPRINTER *q_u, POLICY_HND *hnd); -bool spoolss_io_q_replycloseprinter(const char *desc, SPOOL_Q_REPLYCLOSEPRINTER *q_u, prs_struct *ps, int depth); -bool spoolss_io_r_replycloseprinter(const char *desc, SPOOL_R_REPLYCLOSEPRINTER *r_u, prs_struct *ps, int depth); bool make_spoolss_q_reply_rrpcn(SPOOL_Q_REPLY_RRPCN *q_u, POLICY_HND *hnd, uint32 change_low, uint32 change_high, SPOOL_NOTIFY_INFO *info); diff --git a/source3/include/rpc_spoolss.h b/source3/include/rpc_spoolss.h index b159263921..9fa60db1e1 100644 --- a/source3/include/rpc_spoolss.h +++ b/source3/include/rpc_spoolss.h @@ -1618,19 +1618,6 @@ typedef struct spool_r_routerreplyprinter } SPOOL_R_ROUTERREPLYPRINTER; -typedef struct spool_q_replycloseprinter -{ - POLICY_HND handle; -} -SPOOL_Q_REPLYCLOSEPRINTER; - -typedef struct spool_r_replycloseprinter -{ - POLICY_HND handle; - WERROR status; -} -SPOOL_R_REPLYCLOSEPRINTER; - typedef struct spool_q_rrpcn { POLICY_HND handle; diff --git a/source3/rpc_client/cli_spoolss_notify.c b/source3/rpc_client/cli_spoolss_notify.c index 5440f76248..8e528eedd4 100644 --- a/source3/rpc_client/cli_spoolss_notify.c +++ b/source3/rpc_client/cli_spoolss_notify.c @@ -65,35 +65,6 @@ WERROR rpccli_spoolss_reply_open_printer(struct rpc_pipe_client *cli, TALLOC_CTX return result; } -/* Close a back-channel notification connection */ - -WERROR rpccli_spoolss_reply_close_printer(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - POLICY_HND *handle) -{ - prs_struct qbuf, rbuf; - SPOOL_Q_REPLYCLOSEPRINTER q; - SPOOL_R_REPLYCLOSEPRINTER r; - WERROR result = W_ERROR(ERRgeneral); - - /* Initialise input parameters */ - - make_spoolss_q_reply_closeprinter(&q, handle); - - /* Marshall data and send request */ - - CLI_DO_RPC_WERR( cli, mem_ctx, &syntax_spoolss, SPOOLSS_REPLYCLOSEPRINTER, - q, r, - qbuf, rbuf, - spoolss_io_q_replycloseprinter, - spoolss_io_r_replycloseprinter, - WERR_GENERAL_FAILURE ); - - /* Return result */ - - result = r.status; - return result; -} - /********************************************************************* This SPOOLSS_ROUTERREPLYPRINTER function is used to send a change notification event when the registration **did not** use diff --git a/source3/rpc_parse/parse_spoolss.c b/source3/rpc_parse/parse_spoolss.c index fbb001f7dc..5558e2fb71 100644 --- a/source3/rpc_parse/parse_spoolss.c +++ b/source3/rpc_parse/parse_spoolss.c @@ -5643,59 +5643,6 @@ bool spoolss_io_r_routerreplyprinter (const char *desc, SPOOL_R_ROUTERREPLYPRINT return True; } -/******************************************************************* - * init a structure. - ********************************************************************/ - -bool make_spoolss_q_reply_closeprinter(SPOOL_Q_REPLYCLOSEPRINTER *q_u, POLICY_HND *hnd) -{ - if (q_u == NULL) - return False; - - memcpy(&q_u->handle, hnd, sizeof(q_u->handle)); - - return True; -} - -/******************************************************************* - Parse a SPOOL_Q_REPLYCLOSEPRINTER structure. -********************************************************************/ - -bool spoolss_io_q_replycloseprinter(const char *desc, SPOOL_Q_REPLYCLOSEPRINTER *q_u, prs_struct *ps, int depth) -{ - prs_debug(ps, depth, desc, "spoolss_io_q_replycloseprinter"); - depth++; - - if(!prs_align(ps)) - return False; - - if(!smb_io_pol_hnd("printer handle",&q_u->handle,ps,depth)) - return False; - - return True; -} - -/******************************************************************* - Parse a SPOOL_R_REPLYCLOSEPRINTER structure. -********************************************************************/ - -bool spoolss_io_r_replycloseprinter(const char *desc, SPOOL_R_REPLYCLOSEPRINTER *r_u, prs_struct *ps, int depth) -{ - prs_debug(ps, depth, desc, "spoolss_io_r_replycloseprinter"); - depth++; - - if (!prs_align(ps)) - return False; - - if(!smb_io_pol_hnd("printer handle",&r_u->handle,ps,depth)) - return False; - - if (!prs_werror("status", ps, depth, &r_u->status)) - return False; - - return True; -} - #if 0 /* JERRY - not currently used but could be :-) */ /******************************************************************* -- cgit From a734c85c287ccf3280e7cefe69fae6b772b4ea8d Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Mon, 9 Feb 2009 15:00:49 +0100 Subject: s3-spoolss: remove old rpccli_spoolss_routerreplyprinter. Guenther --- source3/include/proto.h | 6 --- source3/include/rpc_spoolss.h | 16 -------- source3/rpc_client/cli_spoolss_notify.c | 34 ----------------- source3/rpc_parse/parse_spoolss.c | 67 --------------------------------- 4 files changed, 123 deletions(-) diff --git a/source3/include/proto.h b/source3/include/proto.h index 530361fcbf..537eb98ffc 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -5507,8 +5507,6 @@ WERROR rpccli_spoolss_enumprinterkey(struct rpc_pipe_client *cli, TALLOC_CTX *me WERROR rpccli_spoolss_reply_open_printer(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const char *printer, uint32 printerlocal, uint32 type, POLICY_HND *handle); -WERROR rpccli_spoolss_routerreplyprinter(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - POLICY_HND *pol, uint32 condition, uint32 change_id); WERROR rpccli_spoolss_rrpcn(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, POLICY_HND *pol, uint32 notify_data_len, SPOOL_NOTIFY_INFO_DATA *notify_data, @@ -6019,10 +6017,6 @@ bool make_spoolss_q_replyopenprinter(SPOOL_Q_REPLYOPENPRINTER *q_u, const fstring string, uint32 printer, uint32 type); bool spoolss_io_q_replyopenprinter(const char *desc, SPOOL_Q_REPLYOPENPRINTER *q_u, prs_struct *ps, int depth); bool spoolss_io_r_replyopenprinter(const char *desc, SPOOL_R_REPLYOPENPRINTER *r_u, prs_struct *ps, int depth); -bool make_spoolss_q_routerreplyprinter(SPOOL_Q_ROUTERREPLYPRINTER *q_u, POLICY_HND *hnd, - uint32 condition, uint32 change_id); -bool spoolss_io_q_routerreplyprinter (const char *desc, SPOOL_Q_ROUTERREPLYPRINTER *q_u, prs_struct *ps, int depth); -bool spoolss_io_r_routerreplyprinter (const char *desc, SPOOL_R_ROUTERREPLYPRINTER *r_u, prs_struct *ps, int depth); bool make_spoolss_q_reply_rrpcn(SPOOL_Q_REPLY_RRPCN *q_u, POLICY_HND *hnd, uint32 change_low, uint32 change_high, SPOOL_NOTIFY_INFO *info); diff --git a/source3/include/rpc_spoolss.h b/source3/include/rpc_spoolss.h index 9fa60db1e1..15814d4348 100644 --- a/source3/include/rpc_spoolss.h +++ b/source3/include/rpc_spoolss.h @@ -1602,22 +1602,6 @@ typedef struct spool_r_replyopenprinter } SPOOL_R_REPLYOPENPRINTER; -typedef struct spool_q_routerreplyprinter -{ - POLICY_HND handle; - uint32 condition; - uint32 unknown1; /* 0x00000001 */ - uint32 change_id; - uint8 unknown2[5]; /* 0x0000000001 */ -} -SPOOL_Q_ROUTERREPLYPRINTER; - -typedef struct spool_r_routerreplyprinter -{ - WERROR status; -} -SPOOL_R_ROUTERREPLYPRINTER; - typedef struct spool_q_rrpcn { POLICY_HND handle; diff --git a/source3/rpc_client/cli_spoolss_notify.c b/source3/rpc_client/cli_spoolss_notify.c index 8e528eedd4..11152752e9 100644 --- a/source3/rpc_client/cli_spoolss_notify.c +++ b/source3/rpc_client/cli_spoolss_notify.c @@ -65,40 +65,6 @@ WERROR rpccli_spoolss_reply_open_printer(struct rpc_pipe_client *cli, TALLOC_CTX return result; } -/********************************************************************* - This SPOOLSS_ROUTERREPLYPRINTER function is used to send a change - notification event when the registration **did not** use - SPOOL_NOTIFY_OPTION_TYPE structure to specify the events to monitor. - Also see cli_spolss_reply_rrpcn() - *********************************************************************/ - -WERROR rpccli_spoolss_routerreplyprinter(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, - POLICY_HND *pol, uint32 condition, uint32 change_id) -{ - prs_struct qbuf, rbuf; - SPOOL_Q_ROUTERREPLYPRINTER q; - SPOOL_R_ROUTERREPLYPRINTER r; - WERROR result = W_ERROR(ERRgeneral); - - /* Initialise input parameters */ - - make_spoolss_q_routerreplyprinter(&q, pol, condition, change_id); - - /* Marshall data and send request */ - - CLI_DO_RPC_WERR( cli, mem_ctx, &syntax_spoolss, SPOOLSS_ROUTERREPLYPRINTER, - q, r, - qbuf, rbuf, - spoolss_io_q_routerreplyprinter, - spoolss_io_r_routerreplyprinter, - WERR_GENERAL_FAILURE ); - - /* Return output parameters */ - - result = r.status; - return result; -} - /********************************************************************* This SPOOLSS_REPLY_RRPCN function is used to send a change notification event when the registration **did** use diff --git a/source3/rpc_parse/parse_spoolss.c b/source3/rpc_parse/parse_spoolss.c index 5558e2fb71..d0afb99081 100644 --- a/source3/rpc_parse/parse_spoolss.c +++ b/source3/rpc_parse/parse_spoolss.c @@ -5576,73 +5576,6 @@ bool spoolss_io_r_replyopenprinter(const char *desc, SPOOL_R_REPLYOPENPRINTER *r return True; } -/******************************************************************* - * init a structure. - ********************************************************************/ -bool make_spoolss_q_routerreplyprinter(SPOOL_Q_ROUTERREPLYPRINTER *q_u, POLICY_HND *hnd, - uint32 condition, uint32 change_id) -{ - - memcpy(&q_u->handle, hnd, sizeof(q_u->handle)); - - q_u->condition = condition; - q_u->change_id = change_id; - - /* magic values */ - q_u->unknown1 = 0x1; - memset(q_u->unknown2, 0x0, 5); - q_u->unknown2[0] = 0x1; - - return True; -} - -/******************************************************************* - Parse a SPOOL_Q_ROUTERREPLYPRINTER structure. -********************************************************************/ -bool spoolss_io_q_routerreplyprinter (const char *desc, SPOOL_Q_ROUTERREPLYPRINTER *q_u, prs_struct *ps, int depth) -{ - - prs_debug(ps, depth, desc, "spoolss_io_q_routerreplyprinter"); - depth++; - - if (!prs_align(ps)) - return False; - - if(!smb_io_pol_hnd("printer handle",&q_u->handle,ps,depth)) - return False; - - if (!prs_uint32("condition", ps, depth, &q_u->condition)) - return False; - - if (!prs_uint32("unknown1", ps, depth, &q_u->unknown1)) - return False; - - if (!prs_uint32("change_id", ps, depth, &q_u->change_id)) - return False; - - if (!prs_uint8s(False, "dev_private", ps, depth, q_u->unknown2, 5)) - return False; - - return True; -} - -/******************************************************************* - Parse a SPOOL_R_ROUTERREPLYPRINTER structure. -********************************************************************/ -bool spoolss_io_r_routerreplyprinter (const char *desc, SPOOL_R_ROUTERREPLYPRINTER *r_u, prs_struct *ps, int depth) -{ - prs_debug(ps, depth, desc, "spoolss_io_r_routerreplyprinter"); - depth++; - - if (!prs_align(ps)) - return False; - - if (!prs_werror("status", ps, depth, &r_u->status)) - return False; - - return True; -} - #if 0 /* JERRY - not currently used but could be :-) */ /******************************************************************* -- cgit