Fix for bug #199 (xp driver uploads). Needed to support
authorGerald Carter <jerry@samba.org>
Thu, 3 Jul 2003 17:18:07 +0000 (17:18 +0000)
committerGerald Carter <jerry@samba.org>
Thu, 3 Jul 2003 17:18:07 +0000 (17:18 +0000)
the "OSVersion" print server data value.
(This used to be commit 02bc7be1ac6b75bf6559ea684bbc89ab3e19402e)

source3/rpc_server/srv_spoolss_nt.c

index 217d2cbaea1f9ee5aca10638b108591cd9d346ef..deca2ad8bb4ad5c95a91cefd65a91afb102ae909 100644 (file)
@@ -2339,7 +2339,6 @@ static WERROR getprinterdata_printer_server(TALLOC_CTX *ctx, fstring value, uint
                return WERR_OK;
        }
 
-#if 0  /* JERRY */     
        /* REG_BINARY
         *  uint32 size          = 0x114
         *  uint32 major         = 5
@@ -2348,14 +2347,23 @@ static WERROR getprinterdata_printer_server(TALLOC_CTX *ctx, fstring value, uint
         *  extra unicode string = e.g. "Service Pack 3"
         */
        if (!StrCaseCmp(value, "OSVersion")) {
-               *type = 0x4;
-               if((*data = (uint8 *)talloc(ctx, 4*sizeof(uint8) )) == NULL)
+               *type = 0x3;
+               *needed = 0x114;
+
+               if((*data = (uint8 *)talloc(ctx, (*needed)*sizeof(uint8) )) == NULL)
                        return WERR_NOMEM;
-               SIVAL(*data, 0, 2);
-               *needed = 0x4;
+               ZERO_STRUCTP( *data );
+               
+               SIVAL(*data, 0, *needed);       /* size */
+               SIVAL(*data, 4, 5);             /* Windows 2000 == 5.0 */
+               SIVAL(*data, 8, 0);
+               SIVAL(*data, 12, 2195);         /* build */
+               
+               /* leave extra string empty */
+               
                return WERR_OK;
        }
-#endif
+
 
        if (!StrCaseCmp(value, "DefaultSpoolDirectory")) {
                fstring string;