<value type="default">2195</value>
<value type="example">7601</value>
</samba:parameter>
+
+<samba:parameter name="spoolss_client: os_major"
+ context="G"
+ type="integer"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>Windows might require a new os version number. This option allows
+ to modify the build number. The complete default version number is:
+ 6.1.7007 (Windows 7 and Windows Server 2008 R2).
+ </para>
+</description>
+<value type="default">6</value>
+</samba:parameter>
+
+<samba:parameter name="spoolss_client: os_minor"
+ context="G"
+ type="integer"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>Windows might require a new os version number. This option allows
+ to modify the build number. The complete default version number is:
+ 6.1.7007 (Windows 7 and Windows Server 2008 R2).
+ </para>
+</description>
+<value type="default">1</value>
+</samba:parameter>
+
+<samba:parameter name="spoolss_client: os_build"
+ context="G"
+ type="integer"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>Windows might require a new os version number. This option allows
+ to modify the build number. The complete default version number is:
+ 6.1.7007 (Windows 7 and Windows Server 2008 R2).
+ </para>
+</description>
+<value type="default">7007</value>
+</samba:parameter>
#include "rpc_client/cli_spoolss.h"
#include "auth/gensec/gensec.h"
#include "auth/credentials/credentials.h"
+#include "rpc_client/init_spoolss.h"
/**********************************************************************
convencience wrapper around rpccli_spoolss_OpenPrinterEx
ZERO_STRUCT(devmode_ctr);
- level1.size = 28;
- level1.client = talloc_asprintf(mem_ctx, "\\\\%s", lp_netbios_name());
- W_ERROR_HAVE_NO_MEMORY(level1.client);
- level1.user = cli_credentials_get_username(creds);
- level1.build = 1381;
- level1.major = 2;
- level1.minor = 0;
- level1.processor = 0;
+ werror = spoolss_init_spoolss_UserLevel1(mem_ctx,
+ cli_credentials_get_username(creds),
+ &level1);
+ if (!W_ERROR_IS_OK(werror)) {
+ return werror;
+ }
userlevel_ctr.level = 1;
userlevel_ctr.user_info.level1 = &level1;
ZERO_STRUCT(devmode_ctr);
ZERO_STRUCT(secdesc_ctr);
- level1.size = 28;
- level1.build = 1381;
- level1.major = 2;
- level1.minor = 0;
- level1.processor = 0;
- level1.client = talloc_asprintf(mem_ctx, "\\\\%s", lp_netbios_name());
- W_ERROR_HAVE_NO_MEMORY(level1.client);
- level1.user = cli_credentials_get_username(creds);
+ result = spoolss_init_spoolss_UserLevel1(mem_ctx,
+ cli_credentials_get_username(creds),
+ &level1);
+ if (!W_ERROR_IS_OK(result)) {
+ return result;
+ }
userlevel_ctr.level = 1;
userlevel_ctr.user_info.level1 = &level1;
return NULL;
}
}
+
+#define GLOBAL_SPOOLSS_CLIENT_OS_MAJOR_DEFAULT 2
+#define GLOBAL_SPOOLSS_CLIENT_OS_MINOR_DEFAULT 0
+#define GLOBAL_SPOOLSS_CLIENT_OS_BUILD_DEFAULT 1381
+
+WERROR spoolss_init_spoolss_UserLevel1(TALLOC_CTX *mem_ctx,
+ const char *username,
+ struct spoolss_UserLevel1 *r)
+{
+ ZERO_STRUCTP(r);
+
+ r->size = 28;
+ r->client = talloc_asprintf(mem_ctx, "\\\\%s", lp_netbios_name());
+ W_ERROR_HAVE_NO_MEMORY(r->client);
+ r->user = talloc_strdup(mem_ctx, username);
+ W_ERROR_HAVE_NO_MEMORY(r->user);
+ r->processor = 0;
+
+ r->major = lp_parm_int(GLOBAL_SECTION_SNUM,
+ "spoolss_client", "os_major",
+ GLOBAL_SPOOLSS_CLIENT_OS_MAJOR_DEFAULT);
+ r->minor = lp_parm_int(GLOBAL_SECTION_SNUM,
+ "spoolss_client", "os_minor",
+ GLOBAL_SPOOLSS_CLIENT_OS_MINOR_DEFAULT);
+ r->build = lp_parm_int(GLOBAL_SECTION_SNUM,
+ "spoolss_client", "os_build",
+ GLOBAL_SPOOLSS_CLIENT_OS_BUILD_DEFAULT);
+
+ return WERR_OK;
+}
WERROR spoolss_create_default_secdesc(TALLOC_CTX *mem_ctx,
struct spoolss_security_descriptor **secdesc);
const char *spoolss_get_short_filesys_environment(const char *environment);
+WERROR spoolss_init_spoolss_UserLevel1(TALLOC_CTX *mem_ctx,
+ const char *username,
+ struct spoolss_UserLevel1 *r);
#endif /* _RPC_CLIENT_INIT_SPOOLSS_H_ */