r7614: convert move_driver_to_download_area() to return WERROR in order to provide...
authorGerald Carter <jerry@samba.org>
Wed, 15 Jun 2005 17:03:34 +0000 (17:03 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 15:57:16 +0000 (10:57 -0500)
(This used to be commit c98e17446afffc4b12f1a31f6e5cce517fc0a95b)

source3/printing/nt_printing.c
source3/rpc_server/srv_spoolss_nt.c

index a92b7114083ed4af571232143b4566d7ae808f93..6b037689a2136dfab2fe203bb1ca13dc24ffd255 100644 (file)
@@ -1561,7 +1561,7 @@ static char* ffmt(unsigned char *c){
 
 /****************************************************************************
 ****************************************************************************/
-BOOL move_driver_to_download_area(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, uint32 level, 
+WERROR move_driver_to_download_area(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, uint32 level, 
                                  struct current_user *user, WERROR *perr)
 {
        NT_PRINTER_DRIVER_INFO_LEVEL_3 *driver;
@@ -1592,7 +1592,7 @@ BOOL move_driver_to_download_area(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract,
                driver = &converted_driver;
        } else {
                DEBUG(0,("move_driver_to_download_area: Unknown info level (%u)\n", (unsigned int)level ));
-               return False;
+               return WERR_UNKNOWN_LEVEL;
        }
 
        architecture = get_short_archi(driver->environment);
@@ -1611,7 +1611,7 @@ BOOL move_driver_to_download_area(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract,
        if (conn == NULL) {
                DEBUG(0,("move_driver_to_download_area: Unable to connect\n"));
                *perr = ntstatus_to_werror(nt_status);
-               return False;
+               return WERR_NO_SUCH_SHARE;
        }
 
        /*
@@ -1620,7 +1620,7 @@ BOOL move_driver_to_download_area(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract,
 
        if (!become_user(conn, conn->vuid)) {
                DEBUG(0,("move_driver_to_download_area: Can't become user!\n"));
-               return False;
+               return WERR_ACCESS_DENIED;
        }
 
        /*
@@ -1778,7 +1778,7 @@ BOOL move_driver_to_download_area(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract,
        close_cnum(conn, user->vuid);
        unbecome_user();
 
-       return ver == -1 ? False : True;
+       return ver != -1 ? WERR_OK : WERR_UNKNOWN_PRINTER_DRIVER;
 }
 
 /****************************************************************************
index 39c294fa45c45f68d675865e791f8323785b2ad8..972f6e97302008fa9bb9cb3f0b1566f0deaa0466 100644 (file)
@@ -7628,9 +7628,7 @@ WERROR _spoolss_addprinterdriver(pipes_struct *p, SPOOL_Q_ADDPRINTERDRIVER *q_u,
                goto done;
 
        DEBUG(5,("Moving driver to final destination\n"));
-       if(!move_driver_to_download_area(driver, level, &user, &err)) {
-               if (W_ERROR_IS_OK(err))
-                       err = WERR_ACCESS_DENIED;
+       if( !W_ERROR_IS_OK(err = move_driver_to_download_area(driver, level, &user, &err)) ) {
                goto done;
        }