s3-spoolss: use rpccli_spoolss_ClosePrinter.
[vlendec/samba-autobuild/.git] / source3 / rpcclient / cmd_spoolss.c
index 038acfbcdc89fe3d456b0085714df7633df69422..057fc251230e56ab3a9821925c529671a27b6f83 100644 (file)
@@ -122,7 +122,7 @@ static WERROR cmd_spoolss_open_printer_ex(struct rpc_pipe_client *cli,
 
        if (W_ERROR_IS_OK(werror)) {
                printf("Printer %s opened successfully\n", printername);
-               werror = rpccli_spoolss_close_printer(cli, mem_ctx, &hnd);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &hnd, &werror);
 
                if (!W_ERROR_IS_OK(werror)) {
                        printf("Error closing printer handle! (%s)\n", 
@@ -521,7 +521,7 @@ static WERROR cmd_spoolss_setprinter(struct rpc_pipe_client *cli,
 
  done:
        if (opened_hnd)
-               rpccli_spoolss_close_printer(cli, mem_ctx, &pol);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &pol, NULL);
 
        return result;
 }
@@ -586,7 +586,7 @@ static WERROR cmd_spoolss_setprintername(struct rpc_pipe_client *cli,
 
  done:
        if (opened_hnd)
-               rpccli_spoolss_close_printer(cli, mem_ctx, &pol);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &pol, NULL);
 
        return result;
 }
@@ -665,7 +665,7 @@ static WERROR cmd_spoolss_getprinter(struct rpc_pipe_client *cli,
 
  done: 
        if (opened_hnd) 
-               rpccli_spoolss_close_printer(cli, mem_ctx, &pol);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &pol, NULL);
 
        return result;
 }
@@ -791,7 +791,7 @@ static WERROR cmd_spoolss_getprinterdata(struct rpc_pipe_client *cli,
 
  done: 
        if (opened_hnd) 
-               rpccli_spoolss_close_printer(cli, mem_ctx, &pol);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &pol, NULL);
 
        return result;
 }
@@ -859,7 +859,7 @@ static WERROR cmd_spoolss_getprinterdataex(struct rpc_pipe_client *cli,
 
  done: 
        if (opened_hnd) 
-               rpccli_spoolss_close_printer(cli, mem_ctx, &pol);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &pol, NULL);
 
        return result;
 }
@@ -1055,7 +1055,7 @@ static WERROR cmd_spoolss_getdriver(struct rpc_pipe_client *cli,
        /* Cleanup */
 
        if (opened_hnd)
-               rpccli_spoolss_close_printer (cli, mem_ctx, &pol);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &pol, NULL);
        
        if ( success )
                werror = WERR_OK;
@@ -1490,7 +1490,7 @@ done:
        /* Cleanup */
 
        if (opened_hnd)
-               rpccli_spoolss_close_printer(cli, mem_ctx, &pol);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &pol, NULL);
 
        return result;
 }
@@ -1655,9 +1655,14 @@ static WERROR cmd_spoolss_addform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c
        
        /* Get a printer handle */
 
-       asprintf(&servername, "\\\\%s", cli->desthost);
+       if (asprintf(&servername, "\\\\%s", cli->desthost) == -1) {
+               return WERR_NOMEM;
+       }
        strupper_m(servername);
-       asprintf(&printername, "%s\\%s", servername, argv[1]);
+       if (asprintf(&printername, "%s\\%s", servername, argv[1]) == -1) {
+               SAFE_FREE(servername);
+               return WERR_NOMEM;
+       }
 
        werror = rpccli_spoolss_open_printer_ex(cli, mem_ctx, printername, "", 
                                             PRINTER_ALL_ACCESS, 
@@ -1687,7 +1692,7 @@ static WERROR cmd_spoolss_addform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c
 
  done:
        if (got_handle)
-               rpccli_spoolss_close_printer(cli, mem_ctx, &handle);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
 
        SAFE_FREE(servername);
        SAFE_FREE(printername);
@@ -1716,9 +1721,14 @@ static WERROR cmd_spoolss_setform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c
        
        /* Get a printer handle */
 
-       asprintf(&servername, "\\\\%s", cli->desthost);
+       if (asprintf(&servername, "\\\\%s", cli->desthost)) {
+               return WERR_NOMEM;
+       }
        strupper_m(servername);
-       asprintf(&printername, "%s\\%s", servername, argv[1]);
+       if (asprintf(&printername, "%s\\%s", servername, argv[1]) == -1) {
+               SAFE_FREE(servername);
+               return WERR_NOMEM;
+       }
 
        werror = rpccli_spoolss_open_printer_ex(
                cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, 
@@ -1746,7 +1756,7 @@ static WERROR cmd_spoolss_setform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c
 
  done:
        if (got_handle)
-               rpccli_spoolss_close_printer(cli, mem_ctx, &handle);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
 
        SAFE_FREE(servername);
        SAFE_FREE(printername);
@@ -1813,9 +1823,14 @@ static WERROR cmd_spoolss_getform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c
        
        /* Get a printer handle */
 
-       asprintf(&servername, "\\\\%s", cli->desthost);
+       if (asprintf(&servername, "\\\\%s", cli->desthost) == -1) {
+               return WERR_NOMEM;
+       }
        strupper_m(servername);
-       asprintf(&printername, "%s\\%s", servername, argv[1]);
+       if (asprintf(&printername, "%s\\%s", servername, argv[1])) {
+               SAFE_FREE(servername);
+               return WERR_NOMEM;
+       }
 
        werror = rpccli_spoolss_open_printer_ex(
                cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, 
@@ -1837,7 +1852,7 @@ static WERROR cmd_spoolss_getform(struct rpc_pipe_client *cli, TALLOC_CTX *mem_c
 
  done:
        if (got_handle)
-               rpccli_spoolss_close_printer(cli, mem_ctx, &handle);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
 
        SAFE_FREE(servername);
        SAFE_FREE(printername);
@@ -1866,9 +1881,14 @@ static WERROR cmd_spoolss_deleteform(struct rpc_pipe_client *cli,
        
        /* Get a printer handle */
 
-       asprintf(&servername, "\\\\%s", cli->desthost);
+       if (asprintf(&servername, "\\\\%s", cli->desthost) == -1) {
+               return WERR_NOMEM;
+       }
        strupper_m(servername);
-       asprintf(&printername, "%s\\%s", servername, argv[1]);
+       if (asprintf(&printername, "%s\\%s", servername, argv[1]) == -1) {
+               SAFE_FREE(servername);
+               return WERR_NOMEM;
+       }
 
        werror = rpccli_spoolss_open_printer_ex(
                cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, 
@@ -1885,7 +1905,7 @@ static WERROR cmd_spoolss_deleteform(struct rpc_pipe_client *cli,
 
  done:
        if (got_handle)
-               rpccli_spoolss_close_printer(cli, mem_ctx, &handle);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
 
        SAFE_FREE(servername);
        SAFE_FREE(printername);
@@ -1916,9 +1936,14 @@ static WERROR cmd_spoolss_enum_forms(struct rpc_pipe_client *cli,
        
        /* Get a printer handle */
 
-       asprintf(&servername, "\\\\%s", cli->desthost);
+       if (asprintf(&servername, "\\\\%s", cli->desthost) == -1) {
+               return WERR_NOMEM;
+       }
        strupper_m(servername);
-       asprintf(&printername, "%s\\%s", servername, argv[1]);
+       if (asprintf(&printername, "%s\\%s", servername, argv[1]) == -1) {
+               SAFE_FREE(servername);
+               return WERR_NOMEM;
+       }
 
        werror = rpccli_spoolss_open_printer_ex(
                cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, 
@@ -1946,7 +1971,7 @@ static WERROR cmd_spoolss_enum_forms(struct rpc_pipe_client *cli,
 
  done:
        if (got_handle)
-               rpccli_spoolss_close_printer(cli, mem_ctx, &handle);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
 
        SAFE_FREE(servername);
        SAFE_FREE(printername);
@@ -2117,7 +2142,7 @@ done:
        /* cleanup */
        TALLOC_FREE(tmp_ctx);
        if (opened_hnd)
-               rpccli_spoolss_close_printer(cli, mem_ctx, &pol);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &pol, NULL);
 
        return result;
 }
@@ -2235,7 +2260,7 @@ static WERROR cmd_spoolss_enum_jobs(struct rpc_pipe_client *cli,
        
 done:
        if (got_hnd)
-               rpccli_spoolss_close_printer(cli, mem_ctx, &hnd);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &hnd, NULL);
 
        return result;
 }
@@ -2301,7 +2326,7 @@ static WERROR cmd_spoolss_enum_data( struct rpc_pipe_client *cli,
 
 done:
        if (got_hnd)
-               rpccli_spoolss_close_printer(cli, mem_ctx, &hnd);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &hnd, NULL);
 
        return result;
 }
@@ -2372,7 +2397,7 @@ static WERROR cmd_spoolss_enum_data_ex( struct rpc_pipe_client *cli,
 
 done:
        if (got_hnd)
-               rpccli_spoolss_close_printer(cli, mem_ctx, &hnd);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &hnd, NULL);
 
        return result;
 }
@@ -2452,7 +2477,7 @@ done:
        SAFE_FREE(keylist);
 
        if (got_hnd)
-               rpccli_spoolss_close_printer(cli, mem_ctx, &hnd);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &hnd, NULL);
 
        return result;
 }
@@ -2537,7 +2562,7 @@ static WERROR cmd_spoolss_rffpcnex(struct rpc_pipe_client *cli,
 
 done:          
        if (got_hnd)
-               rpccli_spoolss_close_printer(cli, mem_ctx, &hnd);
+               rpccli_spoolss_ClosePrinter(cli, mem_ctx, &hnd, NULL);
 
        return result;
 }
@@ -2735,8 +2760,8 @@ done:
        /* cleanup */
 
        printf("Closing printers...");
-       rpccli_spoolss_close_printer( cli, mem_ctx, &hPrinter1 );
-       rpccli_spoolss_close_printer( cli2, mem_ctx, &hPrinter2 );
+       rpccli_spoolss_ClosePrinter( cli, mem_ctx, &hPrinter1, NULL );
+       rpccli_spoolss_ClosePrinter( cli2, mem_ctx, &hPrinter2, NULL );
        printf("ok\n");
 
        /* close the second remote connection */