fixed enumprinterdata.
authorJean-François Micouleau <jfm@samba.org>
Tue, 7 Mar 2000 09:06:03 +0000 (09:06 +0000)
committerJean-François Micouleau <jfm@samba.org>
Tue, 7 Mar 2000 09:06:03 +0000 (09:06 +0000)
J.F.

source/include/nterr.h
source/printing/nt_printing.c
source/rpc_server/srv_spoolss_nt.c

index 87935091195316b1470b8302a556950438bdc6f8..df2cde61f70d9e494ec899d25e803fd6d1a9ae45 100644 (file)
@@ -3,10 +3,17 @@
 
 #define STATUS_BUFFER_OVERFLOW            (5)
 #define STATUS_MORE_ENTRIES           (0x105)
+
+/* Win32 Error codes. */
+
+#define ERROR_ACCESS_DENIED              (5)
 #define ERROR_INVALID_HANDLE             (6)
 #define ERROR_INVALID_PARAMETER                 (87)
 #define ERROR_INSUFFICIENT_BUFFER      (122)
-#define STATUS_1804                   (1804)
+#define ERROR_INVALID_NAME             (123)
+#define ERROR_NO_MORE_ITEMS            (259)
+#define ERROR_INVALID_PRINTER_NAME     (1801)
+#define ERROR_INVALID_DATATYPE        (1804)
 
 /* these are the NT error codes less than 1000. They are here for when
    we start supporting NT error codes in Samba. They were extracted
index a880184f3df5e5ec83fe54d05b98dad4475d88d1..061b41e123125037448abfc5614354ca18c9c538 100644 (file)
@@ -1272,17 +1272,16 @@ BOOL get_specific_param_by_index(NT_PRINTER_INFO_LEVEL printer, uint32 level, ui
                i++;
        }
        
-       if (param != NULL)
-       {
-               /* exited because it exist */
-               *type=param->type;              
-               StrnCpy(value, param->value, sizeof(value)-1);
-               *data=(uint8 *)malloc(param->data_len*sizeof(uint8));
-               memcpy(*data, param->data, param->data_len);
-               *len=param->data_len;
-               return (True);
-       }
-       return (False);
+       if (param == NULL)
+               return False;
+
+       /* exited because it exist */
+       *type=param->type;              
+       StrnCpy(value, param->value, sizeof(fstring)-1);
+       *data=(uint8 *)malloc(param->data_len*sizeof(uint8));
+       memcpy(*data, param->data, param->data_len);
+       *len=param->data_len;
+       return True;
 }
 
 /****************************************************************************
index 9d465ca145217f8a70da477f92950d965d646a85..f15fc751819a907356b9f8eaedc8504d25077606 100644 (file)
@@ -2483,7 +2483,7 @@ uint32 _spoolss_startdocprinter( const POLICY_HND *handle, uint32 level,
                if (strcmp(datatype, "RAW") != 0)
                {
                        (*jobid)=0;
-                       return STATUS_1804;
+                       return ERROR_INVALID_DATATYPE;
                }               
        }                
        
@@ -3674,7 +3674,7 @@ uint32 _spoolss_enumprinterdata(const POLICY_HND *handle, uint32 index,
  
        if (!get_specific_param_by_index(printer, 2, index, value, &data, &type, &data_len)) {
                free_a_printer(printer, 2);
-               return 0x0103; /* ERROR_NO_MORE_ITEMS */
+               return ERROR_NO_MORE_ITEMS;
        }
                        
        /*