The branch, master has been updated
       via  df9e7c7 lib: Remove global xfile.h includes
       via  c06b78d lib: Move x_fgets_slash to xfile.c
       via  8742d23 lib: Apply an overflow check
       via  3a8bf02 lib: Reformat x_fgets_slash
       via  1314db0 lib: Rename fgets_slash to x_fgets_slash
       via  cd9d957 s3:spoolss: Improve debug messages in 
construct_printer_driver
       via  f5154f2 s3:spoolss: Return error when there is no driver assigned
       via  e95012b s4-torture: add test to compare PRINTER_INFO_STRESS version 
and OSVersion
       via  17bc142 s3-spoolss: set the defaults for os_version defines 
globally.
       via  3fa5884 s3-spoolss: also set new os_major,minor,build values in 
printer info 0
       via  b9d73fb s3:spoolss: Set default OS Version to Windows Server 2003 
R2 SP2
      from  a0783e8 s3/smbd: fix the last resort check that sets the file type 
attribute

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit df9e7c7ae55da5df1f55be194dff86896897de4a
Author: Volker Lendecke <[email protected]>
Date:   Wed Nov 16 17:17:25 2016 +0000

    lib: Remove global xfile.h includes
    
    This makes it more obvious where this legacy code is used
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>
    
    Autobuild-User(master): Jeremy Allison <[email protected]>
    Autobuild-Date(master): Sun Nov 20 06:23:19 CET 2016 on sn-devel-144

commit c06b78d0be5066c7e56c7715798f5a7b0b676451
Author: Volker Lendecke <[email protected]>
Date:   Wed Nov 16 16:54:38 2016 +0000

    lib: Move x_fgets_slash to xfile.c
    
    This makes it easier to remove the global #include xfile.h
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit 8742d239b2ee0d4dd3219c140081f722644044ae
Author: Volker Lendecke <[email protected]>
Date:   Wed Nov 16 15:53:45 2016 +0000

    lib: Apply an overflow check
    
    Very unlikely here, as the realloc will have failed long before, but
    still I would like to check overflow.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit 3a8bf0222ac163ddda07130ca10cbe602404a944
Author: Volker Lendecke <[email protected]>
Date:   Wed Nov 16 15:47:08 2016 +0000

    lib: Reformat x_fgets_slash
    
    This is so old code that I'd like to move somewhere else next, but before
    that I'd like to clean it up a bit.
    
    No code change, just indentation changed and some {} added.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit 1314db09dde650e651c9079d746c70c9dcd09b35
Author: Volker Lendecke <[email protected]>
Date:   Wed Nov 16 15:39:21 2016 +0000

    lib: Rename fgets_slash to x_fgets_slash
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit cd9d957adb579811a9273861033ec9abb9c16678
Author: Andreas Schneider <[email protected]>
Date:   Wed Nov 16 15:31:16 2016 +0100

    s3:spoolss: Improve debug messages in construct_printer_driver
    
    Signed-off-by: Andreas Schneider <[email protected]>
    Reviewed-by: Guenther Deschner <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit f5154f2eb735df52d1d18bb7552ff650eb20861b
Author: Andreas Schneider <[email protected]>
Date:   Wed Nov 16 15:29:34 2016 +0100

    s3:spoolss: Return error when there is no driver assigned
    
    If you create a new printer in Samba, there is no driver assinged.
    Detect that early and return the right error code.
    
    Signed-off-by: Andreas Schneider <[email protected]>
    Reviewed-by: Guenther Deschner <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit e95012b01f0008123bad60bc3ba17412da5308e6
Author: Günther Deschner <[email protected]>
Date:   Fri Nov 18 11:59:05 2016 +0100

    s4-torture: add test to compare PRINTER_INFO_STRESS version and OSVersion
    
    Guenther
    
    Signed-off-by: Guenther Deschner <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit 17bc1427f0d032cc47509c2e95ea2d5524fb7f53
Author: Günther Deschner <[email protected]>
Date:   Wed Nov 16 19:24:37 2016 +0100

    s3-spoolss: set the defaults for os_version defines globally.
    
    Guenther
    
    Signed-off-by: Guenther Deschner <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit 3fa58844d2dc77c845d4df560e870ff994f1c53e
Author: Günther Deschner <[email protected]>
Date:   Wed Nov 16 19:17:55 2016 +0100

    s3-spoolss: also set new os_major,minor,build values in printer info 0
    
    Guenther
    
    Signed-off-by: Guenther Deschner <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit b9d73fb4cba0f651b35aa21c5dee4bddf6cf5d89
Author: Andreas Schneider <[email protected]>
Date:   Wed Nov 9 13:17:27 2016 +0100

    s3:spoolss: Set default OS Version to Windows Server 2003 R2 SP2
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12416
    
    Signed-off-by: Andreas Schneider <[email protected]>
    Reviewed-by: Guenther Deschner <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

-----------------------------------------------------------------------

Summary of changes:
 lib/util/samba_util.h                       |  8 ---
 lib/util/util_file.c                        | 80 ------------------------
 lib/util/xfile.c                            | 94 +++++++++++++++++++++++++++++
 lib/util/xfile.h                            |  7 +++
 libcli/nbt/lmhosts.c                        |  2 +-
 libcli/smbreadline/smbreadline.c            |  1 +
 source3/auth/user_util.c                    |  3 +-
 source3/client/client.c                     |  1 +
 source3/include/includes.h                  |  1 -
 source3/lib/popt_common.c                   |  1 +
 source3/modules/vfs_expand_msdfs.c          |  1 +
 source3/nmbd/nmbd.h                         |  1 +
 source3/nmbd/nmbd_synclists.c               |  2 +-
 source3/nmbd/nmbd_winsserver.c              |  2 +-
 source3/printing/print_aix.c                |  3 +-
 source3/printing/print_standard.c           |  4 +-
 source3/rpc_server/spoolss/srv_spoolss_nt.c | 57 +++++++++++++----
 source3/rpc_server/svcctl/srv_svcctl_reg.c  |  1 +
 source3/utils/ntlm_auth.c                   |  1 +
 source3/winbindd/idmap_hash/mapfile.c       |  1 +
 source4/include/includes.h                  |  1 -
 source4/torture/rpc/spoolss.c               | 53 ++++++++++++++++
 source4/utils/ntlm_auth.c                   |  1 +
 23 files changed, 218 insertions(+), 108 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/util/samba_util.h b/lib/util/samba_util.h
index 416fde8..7863555 100644
--- a/lib/util/samba_util.h
+++ b/lib/util/samba_util.h
@@ -46,7 +46,6 @@ extern const char *panic_action;
 
 #include "lib/util/time.h"
 #include "lib/util/data_blob.h"
-#include "lib/util/xfile.h"
 #include "lib/util/byteorder.h"
 #include "lib/util/talloc_stack.h"
 
@@ -333,13 +332,6 @@ const char **str_list_make_v3_const(TALLOC_CTX *mem_ctx,
 
 
 /**
-read a line from a file with possible \ continuation chars. 
-Blanks at the start or end of a line are stripped.
-The string will be allocated if s2 is NULL
-**/
-_PUBLIC_ char *fgets_slash(char *s2,int maxlen,XFILE *f);
-
-/**
  * Read one line (data until next newline or eof) and allocate it 
  */
 _PUBLIC_ char *afdgets(int fd, TALLOC_CTX *mem_ctx, size_t hint);
diff --git a/lib/util/util_file.c b/lib/util/util_file.c
index 1ec3582..4948afb 100644
--- a/lib/util/util_file.c
+++ b/lib/util/util_file.c
@@ -27,86 +27,6 @@
 #include "lib/util/debug.h"
 
 /**
- * @file
- * @brief File-related utility functions
- */
-
-/**
-read a line from a file with possible \ continuation chars.
-Blanks at the start or end of a line are stripped.
-The string will be allocated if s2 is NULL
-**/
-_PUBLIC_ char *fgets_slash(char *s2,int maxlen,XFILE *f)
-{
-  char *s=s2;
-  int len = 0;
-  int c;
-  bool start_of_line = true;
-
-  if (x_feof(f))
-    return(NULL);
-
-  if (maxlen <2) return(NULL);
-
-  if (!s2)
-    {
-      maxlen = MIN(maxlen,8);
-      s = (char *)malloc(maxlen);
-    }
-
-  if (!s) return(NULL);
-
-  *s = 0;
-
-  while (len < maxlen-1)
-    {
-      c = x_getc(f);
-      switch (c)
-       {
-       case '\r':
-         break;
-       case '\n':
-         while (len > 0 && s[len-1] == ' ')
-           {
-             s[--len] = 0;
-           }
-         if (len > 0 && s[len-1] == '\\')
-           {
-             s[--len] = 0;
-             start_of_line = true;
-             break;
-           }
-         return(s);
-       case EOF:
-         if (len <= 0 && !s2)
-           SAFE_FREE(s);
-         return(len>0?s:NULL);
-       case ' ':
-         if (start_of_line)
-           break;
-         /* fall through */
-       default:
-         start_of_line = false;
-         s[len++] = c;
-         s[len] = 0;
-       }
-      if (!s2 && len > maxlen-3)
-       {
-         char *t;
-
-         maxlen *= 2;
-         t = realloc_p(s, char, maxlen);
-         if (!t) {
-           DEBUG(0,("fgets_slash: failed to expand buffer!\n"));
-           SAFE_FREE(s);
-           return(NULL);
-         } else s = t;
-       }
-    }
-  return(s);
-}
-
-/**
  * Read one line (data until next newline or eof) and allocate it
  */
 _PUBLIC_ char *afdgets(int fd, TALLOC_CTX *mem_ctx, size_t hint)
diff --git a/lib/util/xfile.c b/lib/util/xfile.c
index 62dd121..b22cb98 100644
--- a/lib/util/xfile.c
+++ b/lib/util/xfile.c
@@ -37,6 +37,8 @@
 #include "system/filesys.h"
 #include "memory.h"
 #include "xfile.h"
+#include "lib/util/debug.h"
+#include "lib/util/samba_util.h"
 
 #define XBUFSIZE BUFSIZ
 
@@ -428,3 +430,95 @@ XFILE *x_fdup(const XFILE *f)
        x_setvbuf(ret, NULL, X_IOFBF, XBUFSIZE);
        return ret;
 }
+
+/**
+ * @file
+ * @brief File-related utility functions
+ */
+
+/**
+read a line from a file with possible \ continuation chars.
+Blanks at the start or end of a line are stripped.
+The string will be allocated if s2 is NULL
+**/
+char *x_fgets_slash(char *s2,int maxlen,XFILE *f)
+{
+       char *s=s2;
+       int len = 0;
+       int c;
+       bool start_of_line = true;
+
+       if (x_feof(f)) {
+               return(NULL);
+       }
+
+       if (maxlen <2) {
+               return(NULL);
+       }
+
+       if (!s2) {
+               maxlen = MIN(maxlen,8);
+               s = (char *)malloc(maxlen);
+       }
+
+       if (!s) {
+               return(NULL);
+       }
+
+       *s = 0;
+
+       while (len < maxlen-1) {
+               c = x_getc(f);
+               switch (c)
+               {
+                   case '\r':
+                           break;
+                   case '\n':
+                           while (len > 0 && s[len-1] == ' ') {
+                                   s[--len] = 0;
+                           }
+                           if (len > 0 && s[len-1] == '\\') {
+                                   s[--len] = 0;
+                                   start_of_line = true;
+                                   break;
+                           }
+                           return(s);
+                   case EOF:
+                           if (len <= 0 && !s2) {
+                                   SAFE_FREE(s);
+                           }
+                           return(len>0?s:NULL);
+                   case ' ':
+                           if (start_of_line) {
+                                   break;
+                           }
+                           /* fall through */
+                   default:
+                           start_of_line = false;
+                           s[len++] = c;
+                           s[len] = 0;
+               }
+               if (!s2 && len > maxlen-3) {
+                       int m;
+                       char *t;
+
+                       m = maxlen * 2;
+                       if (m < maxlen) {
+                               DBG_ERR("length overflow");
+                               SAFE_FREE(s);
+                               return NULL;
+                       }
+                       maxlen = m;
+
+                       t = realloc_p(s, char, maxlen);
+                       if (!t) {
+                               DBG_ERR("failed to expand buffer!\n");
+                               SAFE_FREE(s);
+                               return(NULL);
+                       }
+
+                       s = t;
+               }
+       }
+       return(s);
+}
diff --git a/lib/util/xfile.h b/lib/util/xfile.h
index f52596d..5fb6341 100644
--- a/lib/util/xfile.h
+++ b/lib/util/xfile.h
@@ -104,4 +104,11 @@ off_t x_tseek(XFILE *f, off_t offset, int whence);
 
 XFILE *x_fdup(const XFILE *f);
 
+/**
+read a line from a file with possible \ continuation chars.
+Blanks at the start or end of a line are stripped.
+The string will be allocated if s2 is NULL
+**/
+_PUBLIC_ char *x_fgets_slash(char *s2,int maxlen,XFILE *f);
+
 #endif /* _XFILE_H_ */
diff --git a/libcli/nbt/lmhosts.c b/libcli/nbt/lmhosts.c
index 3e746f0..e68dc08 100644
--- a/libcli/nbt/lmhosts.c
+++ b/libcli/nbt/lmhosts.c
@@ -66,7 +66,7 @@ bool getlmhostsent(TALLOC_CTX *ctx, XFILE *fp, char 
**pp_name, int *name_type,
 
                *name_type = -1;
 
-               if (!fgets_slash(line,sizeof(line),fp)) {
+               if (!x_fgets_slash(line,sizeof(line),fp)) {
                        continue;
                }
 
diff --git a/libcli/smbreadline/smbreadline.c b/libcli/smbreadline/smbreadline.c
index c585554..8be6e48 100644
--- a/libcli/smbreadline/smbreadline.c
+++ b/libcli/smbreadline/smbreadline.c
@@ -24,6 +24,7 @@
 #include "system/select.h"
 #include "system/readline.h"
 #include "libcli/smbreadline/smbreadline.h"
+#include "lib/util/xfile.h"
 
 #undef malloc
 
diff --git a/source3/auth/user_util.c b/source3/auth/user_util.c
index d5c61b2..f3cf499 100644
--- a/source3/auth/user_util.c
+++ b/source3/auth/user_util.c
@@ -22,6 +22,7 @@
 #include "includes.h"
 #include "system/filesys.h"
 #include "auth.h"
+#include "lib/util/xfile.h"
 
 /*******************************************************************
  Map a username from a dos name to a unix name by looking in the username
@@ -361,7 +362,7 @@ bool map_username(TALLOC_CTX *ctx, const char *user_in, 
char **p_user_out)
 
        DEBUG(4,("Scanning username map %s\n",mapfile));
 
-       while((s=fgets_slash(buf,sizeof(buf),f))!=NULL) {
+       while((s=x_fgets_slash(buf,sizeof(buf),f))!=NULL) {
                char *unixname = s;
                char *dosname = strchr_m(unixname,'=');
                char **dosuserlist;
diff --git a/source3/client/client.c b/source3/client/client.c
index ded7971..65696f9 100644
--- a/source3/client/client.c
+++ b/source3/client/client.c
@@ -39,6 +39,7 @@
 #include "libsmb/nmblib.h"
 #include "include/ntioctl.h"
 #include "../libcli/smb/smbXcli_base.h"
+#include "lib/util/xfile.h"
 
 #ifndef REGISTER
 #define REGISTER 0
diff --git a/source3/include/includes.h b/source3/include/includes.h
index 234a564..a436427 100644
--- a/source3/include/includes.h
+++ b/source3/include/includes.h
@@ -303,7 +303,6 @@ typedef char fstring[FSTRING_LEN];
 /* Lists, trees, caching, database... */
 #include "../lib/util/samba_util.h"
 #include "../lib/util/util_net.h"
-#include "../lib/util/xfile.h"
 #include "../lib/util/memory.h"
 #include "../lib/util/attr.h"
 #include "../lib/util/tsort.h"
diff --git a/source3/lib/popt_common.c b/source3/lib/popt_common.c
index 6c1515b..f74543f 100644
--- a/source3/lib/popt_common.c
+++ b/source3/lib/popt_common.c
@@ -24,6 +24,7 @@
 #include "system/filesys.h"
 #include "popt_common.h"
 #include "lib/param/param.h"
+#include "lib/util/xfile.h"
 
 /* Handle command line options:
  *             -d,--debuglevel 
diff --git a/source3/modules/vfs_expand_msdfs.c 
b/source3/modules/vfs_expand_msdfs.c
index eaf96e0..40c57c2 100644
--- a/source3/modules/vfs_expand_msdfs.c
+++ b/source3/modules/vfs_expand_msdfs.c
@@ -24,6 +24,7 @@
 #include "smbd/globals.h"
 #include "auth.h"
 #include "../lib/tsocket/tsocket.h"
+#include "lib/util/xfile.h"
 
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_VFS
diff --git a/source3/nmbd/nmbd.h b/source3/nmbd/nmbd.h
index 47940e1..f2086a5 100644
--- a/source3/nmbd/nmbd.h
+++ b/source3/nmbd/nmbd.h
@@ -25,6 +25,7 @@
 #define SYNC_DNS 1
 #endif
 
+#include "lib/util/xfile.h"
 #include "libsmb/nmblib.h"
 #include "nmbd/nmbd_proto.h"
 
diff --git a/source3/nmbd/nmbd_synclists.c b/source3/nmbd/nmbd_synclists.c
index f3e524d..1c2b04d 100644
--- a/source3/nmbd/nmbd_synclists.c
+++ b/source3/nmbd/nmbd_synclists.c
@@ -262,7 +262,7 @@ static void complete_sync(struct sync_record *s)
        while (!x_feof(f)) {
                TALLOC_CTX *frame = NULL;
 
-               if (!fgets_slash(line,sizeof(line),f))
+               if (!x_fgets_slash(line,sizeof(line),f))
                        continue;
 
                ptr = line;
diff --git a/source3/nmbd/nmbd_winsserver.c b/source3/nmbd/nmbd_winsserver.c
index cdec10e..cd4ff42 100644
--- a/source3/nmbd/nmbd_winsserver.c
+++ b/source3/nmbd/nmbd_winsserver.c
@@ -655,7 +655,7 @@ bool initialise_wins(void)
 
                /* Read a line from the wins.dat file. Strips whitespace
                        from the beginning and end of the line.  */
-               if (!fgets_slash(line,sizeof(line),fp)) {
+               if (!x_fgets_slash(line,sizeof(line),fp)) {
                        continue;
                }
 
diff --git a/source3/printing/print_aix.c b/source3/printing/print_aix.c
index 927a71b..7b5a1e3 100644
--- a/source3/printing/print_aix.c
+++ b/source3/printing/print_aix.c
@@ -27,6 +27,7 @@
 #include "includes.h"
 #include "system/filesys.h"
 #include "printing/pcap.h"
+#include "lib/util/xfile.h"
 
 #ifdef AIX
 bool aix_cache_reload(struct pcap_cache **_pcache)
@@ -52,7 +53,7 @@ bool aix_cache_reload(struct pcap_cache **_pcache)
 
        iEtat = 0;
        /* scan qconfig file for searching <printername>:       */
-       for (;(line = fgets_slash(NULL, 1024, pfile)); free(line)) {
+       for (;(line = x_fgets_slash(NULL, 1024, pfile)); free(line)) {
                bool ok;
 
                if (*line == '*' || *line == 0)
diff --git a/source3/printing/print_standard.c 
b/source3/printing/print_standard.c
index 140ca70..4404aeb 100644
--- a/source3/printing/print_standard.c
+++ b/source3/printing/print_standard.c
@@ -57,6 +57,7 @@
 #include "includes.h"
 #include "system/filesys.h"
 #include "printing/pcap.h"
+#include "lib/util/xfile.h"
 
 /* handle standard printcap - moved from pcap_printer_fn() */
 bool std_pcap_cache_reload(const char *pcap_name, struct pcap_cache **_pcache)
@@ -73,7 +74,8 @@ bool std_pcap_cache_reload(const char *pcap_name, struct 
pcap_cache **_pcache)
                return false;
        }
 
-       for (; (pcap_line = fgets_slash(NULL, 1024, pcap_file)) != NULL; 
free(pcap_line)) {
+       for (; (pcap_line = x_fgets_slash(NULL, 1024, pcap_file)) != NULL;
+            free(pcap_line)) {
                char *name = NULL;
                char *comment = NULL;
                char *p, *q;
diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c 
b/source3/rpc_server/spoolss/srv_spoolss_nt.c
index deb87a3..2b28332 100644
--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c
+++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c
@@ -76,6 +76,10 @@
 #define MAX_OPEN_PRINTER_EXS 50
 #endif
 
+#define GLOBAL_SPOOLSS_OS_MAJOR_DEFAULT 5
+#define GLOBAL_SPOOLSS_OS_MINOR_DEFAULT 2
+#define GLOBAL_SPOOLSS_OS_BUILD_DEFAULT 3790
+
 struct notify_back_channel;
 
 /* structure to store the printer handles */
@@ -2344,13 +2348,22 @@ static WERROR getprinterdata_printer_server(TALLOC_CTX 
*mem_ctx,
                enum ndr_err_code ndr_err;
                struct spoolss_OSVersion os;
 
+               /*
+                * Set the default OSVersion to:
+                *
+                *     Windows Server 2003R2 SP2 (5.2.3790)
+                *
+                * used to be Windows 2000 (5.0.2195)
+                */
                os.major                = lp_parm_int(GLOBAL_SECTION_SNUM,
-                                                     "spoolss", "os_major", 5);
-                                                     /* Windows 2000 == 5.0 */
+                                                     "spoolss", "os_major",
+                                                     
GLOBAL_SPOOLSS_OS_MAJOR_DEFAULT);
                os.minor                = lp_parm_int(GLOBAL_SECTION_SNUM,
-                                                     "spoolss", "os_minor", 0);
+                                                     "spoolss", "os_minor",
+                                                     
GLOBAL_SPOOLSS_OS_MINOR_DEFAULT);
                os.build                = lp_parm_int(GLOBAL_SECTION_SNUM,
-                                                     "spoolss", "os_build", 
2195);
+                                                     "spoolss", "os_build",
+                                                     
GLOBAL_SPOOLSS_OS_BUILD_DEFAULT);
                os.extra_string         = "";   /* leave extra string empty */
 
                ndr_err = ndr_push_struct_blob(&blob, mem_ctx, &os,
@@ -3864,6 +3877,7 @@ static WERROR construct_printer_info0(TALLOC_CTX *mem_ctx,
        struct timeval setuptime;
        print_status_struct status;
        WERROR result;
+       int os_major, os_minor, os_build;
 
        result = create_printername(mem_ctx, servername, info2->printername, 
&r->printername);
        if (!W_ERROR_IS_OK(result)) {
@@ -3910,9 +3924,22 @@ static WERROR construct_printer_info0(TALLOC_CTX 
*mem_ctx,
         */
        r->global_counter               = session_counter->counter;
        r->total_pages                  = 0;
+
        /* in 2.2 we reported ourselves as 0x0004 and 0x0565 */
-       SSVAL(&r->version, 0, 0x0005); /* NT 5 */
-       SSVAL(&r->version, 2, 0x0893); /* build 2195 */
+       os_major = lp_parm_int(GLOBAL_SECTION_SNUM,
+                              "spoolss", "os_major",
+                              GLOBAL_SPOOLSS_OS_MAJOR_DEFAULT);
+       os_minor = lp_parm_int(GLOBAL_SECTION_SNUM,
+                              "spoolss", "os_minor",
+                              GLOBAL_SPOOLSS_OS_MINOR_DEFAULT);
+       os_build = lp_parm_int(GLOBAL_SECTION_SNUM,
+                              "spoolss", "os_build",
+                              GLOBAL_SPOOLSS_OS_BUILD_DEFAULT);
+
+       SCVAL(&r->version, 0, os_major);
+       SCVAL(&r->version, 1, os_minor);
+       SSVAL(&r->version, 2, os_build);
+
        r->free_build                   = SPOOLSS_RELEASE_BUILD;
        r->spooling                     = 0;
        r->max_spooling                 = 0;
@@ -5668,21 +5695,27 @@ static WERROR 
construct_printer_driver_info_level(TALLOC_CTX *mem_ctx,
        result = winreg_get_printer(tmp_ctx, b,
                                    lp_const_servicename(snum),
                                    &pinfo2);
-
-       DEBUG(8,("construct_printer_driver_info_level: status: %s\n",
-               win_errstr(result)));
-


-- 
Samba Shared Repository

Reply via email to