[SCM] Samba Shared Repository - branch master updated -
release-4-0-0alpha6-1078-gdc0bf17
Günther Deschner
gd at samba.org
Mon Feb 23 11:49:15 GMT 2009
The branch, master has been updated
via dc0bf17ac130764f3bbdc2d07de4a0fb54a761d2 (commit)
via e2ab5a155cd8b20d1dce91fa2f31d840c673a3b6 (commit)
via db400032abc48baafaef87d72e6498505642bf34 (commit)
via 672eb22bc1ee6ee7d3372655f0847f676727643a (commit)
from cd6ae0de52164dd6f50b3614f2511acb3eb15993 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit dc0bf17ac130764f3bbdc2d07de4a0fb54a761d2
Author: Günther Deschner <gd at samba.org>
Date: Mon Feb 23 10:29:46 2009 +0100
s3-rpcclient: use correct clientname in spoolss_RemoteFindFirstPrinterChangeNotifyEx command.
Guenther
commit e2ab5a155cd8b20d1dce91fa2f31d840c673a3b6
Author: Günther Deschner <gd at samba.org>
Date: Mon Feb 23 12:47:53 2009 +0100
s3: re-run make samba3-idl.
Guenther
commit db400032abc48baafaef87d72e6498505642bf34
Author: Günther Deschner <gd at samba.org>
Date: Mon Feb 23 11:50:27 2009 +0100
spoolss: spoolss_NotifyData contains a devmode container, not devmode pointer.
Guenther
commit 672eb22bc1ee6ee7d3372655f0847f676727643a
Author: Günther Deschner <gd at samba.org>
Date: Sat Feb 21 23:11:49 2009 +0100
spoolss: fix some PRINTER_CHANGE_ defines (and add a new windows 7 flag).
Guenther
-----------------------------------------------------------------------
Summary of changes:
librpc/gen_ndr/ndr_spoolss.c | 30 ++++++------------------------
librpc/gen_ndr/spoolss.h | 11 ++++++-----
librpc/idl/spoolss.idl | 19 +++++++------------
source3/rpcclient/cmd_spoolss.c | 9 ++++++++-
4 files changed, 27 insertions(+), 42 deletions(-)
Changeset truncated at 500 lines:
diff --git a/librpc/gen_ndr/ndr_spoolss.c b/librpc/gen_ndr/ndr_spoolss.c
index b0d5366..242041f 100644
--- a/librpc/gen_ndr/ndr_spoolss.c
+++ b/librpc/gen_ndr/ndr_spoolss.c
@@ -13053,6 +13053,7 @@ _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const
ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
@@ -13445,7 +13446,7 @@ static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int n
break; }
case 3: {
- NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
+ NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
break; }
case 4: {
@@ -13471,9 +13472,7 @@ static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int n
break;
case 3:
- if (r->devmode) {
- NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
- }
+ NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
break;
case 4:
@@ -13495,7 +13494,6 @@ static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int n
{
int level;
uint32_t _level;
- TALLOC_CTX *_mem_save_devmode_0;
level = ndr_pull_get_switch_value(ndr, r);
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
@@ -13515,13 +13513,7 @@ static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int n
break; }
case 3: {
- uint32_t _ptr_devmode;
- NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
- if (_ptr_devmode) {
- NDR_PULL_ALLOC(ndr, r->devmode);
- } else {
- r->devmode = NULL;
- }
+ NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
break; }
case 4: {
@@ -13546,12 +13538,7 @@ static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int n
break;
case 3:
- if (r->devmode) {
- _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
- NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
- NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
- NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
- }
+ NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
break;
case 4:
@@ -13594,12 +13581,7 @@ _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *na
break;
case 3:
- ndr_print_ptr(ndr, "devmode", r->devmode);
- ndr->depth++;
- if (r->devmode) {
- ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
- }
- ndr->depth--;
+ ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
break;
case 4:
diff --git a/librpc/gen_ndr/spoolss.h b/librpc/gen_ndr/spoolss.h
index 756a992..150bf04 100644
--- a/librpc/gen_ndr/spoolss.h
+++ b/librpc/gen_ndr/spoolss.h
@@ -10,13 +10,13 @@
#define PRINTER_ENUM_ICONMASK ( (PRINTER_ENUM_ICON1|PRINTER_ENUM_ICON2|PRINTER_ENUM_ICON3|PRINTER_ENUM_ICON4|PRINTER_ENUM_ICON5|PRINTER_ENUM_ICON6|PRINTER_ENUM_ICON7|PRINTER_ENUM_ICON8) )
#define SPOOLSS_ARCHITECTURE_NT_X86 ( "Windows NT x86" )
-#define PRINTER_CHANGE_PRINTER ( (PRINTER_CHANGE_ADD_PRINTER|PRINTER_CHANGE_SET_PRINTER|PRINTER_CHANGE_DELETE_PRINTER|PRINTER_CHANGE_FAILED_CONNECTION_PRINTER) )
-#define PRINTER_CHANGE_JOB ( (PRINTER_CHANGE_ADD_JOB|PRINTER_CHANGE_SET_JOB|PRINTER_CHANGE_DELETE_JOB|PRINTER_CHANGE_WRITE_JOB) )
+#define PRINTER_CHANGE_PRINTER ( 0x000000FF )
+#define PRINTER_CHANGE_JOB ( 0x0000FF00 )
#define PRINTER_CHANGE_FORM ( (PRINTER_CHANGE_ADD_FORM|PRINTER_CHANGE_SET_FORM|PRINTER_CHANGE_DELETE_FORM) )
#define PRINTER_CHANGE_PORT ( (PRINTER_CHANGE_ADD_PORT|PRINTER_CHANGE_CONFIGURE_PORT|PRINTER_CHANGE_DELETE_PORT) )
-#define PRINTER_CHANGE_PRINT_PROCESSOR ( (PRINTER_CHANGE_ADD_PRINT_PROCESSOR|PRINTER_CHANGE_DELETE_PRINT_PROCESSOR) )
+#define PRINTER_CHANGE_PRINT_PROCESSOR ( 0x07000000 )
#define PRINTER_CHANGE_PRINTER_DRIVER ( (PRINTER_CHANGE_ADD_PRINTER_DRIVER|PRINTER_CHANGE_SET_PRINTER_DRIVER|PRINTER_CHANGE_DELETE_PRINTER_DRIVER) )
-#define PRINTER_CHANGE_ALL ( (PRINTER_CHANGE_JOB|PRINTER_CHANGE_FORM|PRINTER_CHANGE_PORT|PRINTER_CHANGE_PRINT_PROCESSOR|PRINTER_CHANGE_PRINTER_DRIVER) )
+#define PRINTER_CHANGE_ALL ( (PRINTER_CHANGE_PRINTER|PRINTER_CHANGE_JOB|PRINTER_CHANGE_FORM|PRINTER_CHANGE_PORT|PRINTER_CHANGE_PRINT_PROCESSOR|PRINTER_CHANGE_PRINTER_DRIVER) )
#define SERVER_ALL_ACCESS ( SEC_STD_REQUIRED|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE )
#define SERVER_READ ( SEC_STD_READ_CONTROL|SERVER_ACCESS_ENUMERATE )
#define SERVER_WRITE ( STANDARD_RIGHTS_WRITE_ACCESS|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE )
@@ -984,6 +984,7 @@ union spoolss_MonitorInfo {
#define PRINTER_CHANGE_DELETE_PORT ( 0x00400000 )
#define PRINTER_CHANGE_ADD_PRINT_PROCESSOR ( 0x01000000 )
#define PRINTER_CHANGE_DELETE_PRINT_PROCESSOR ( 0x04000000 )
+#define PRINTER_CHANGE_SERVER ( 0x08000000 )
#define PRINTER_CHANGE_ADD_PRINTER_DRIVER ( 0x10000000 )
#define PRINTER_CHANGE_SET_PRINTER_DRIVER ( 0x20000000 )
#define PRINTER_CHANGE_DELETE_PRINTER_DRIVER ( 0x40000000 )
@@ -1109,7 +1110,7 @@ enum spoolss_NotifyTable
union spoolss_NotifyData {
uint32_t integer[2];/* [case] */
struct spoolss_NotifyString string;/* [case(2)] */
- struct spoolss_DeviceMode *devmode;/* [unique,case(3)] */
+ struct spoolss_DevmodeContainer devmode;/* [case(3)] */
struct spoolss_TimeCtr time;/* [case(4)] */
struct sec_desc_buf sd;/* [case(5)] */
}/* [switch_type(uint32)] */;
diff --git a/librpc/idl/spoolss.idl b/librpc/idl/spoolss.idl
index b441f17..17d4802 100644
--- a/librpc/idl/spoolss.idl
+++ b/librpc/idl/spoolss.idl
@@ -1530,21 +1530,16 @@ import "misc.idl", "security.idl", "winreg.idl";
PRINTER_CHANGE_DELETE_PORT = 0x00400000,
PRINTER_CHANGE_ADD_PRINT_PROCESSOR = 0x01000000,
PRINTER_CHANGE_DELETE_PRINT_PROCESSOR = 0x04000000,
+ PRINTER_CHANGE_SERVER = 0x08000000,
PRINTER_CHANGE_ADD_PRINTER_DRIVER = 0x10000000,
PRINTER_CHANGE_SET_PRINTER_DRIVER = 0x20000000,
PRINTER_CHANGE_DELETE_PRINTER_DRIVER = 0x40000000,
PRINTER_CHANGE_TIMEOUT = 0x80000000
} spoolss_PrinterChangeFlags;
- const int PRINTER_CHANGE_PRINTER = (PRINTER_CHANGE_ADD_PRINTER |
- PRINTER_CHANGE_SET_PRINTER |
- PRINTER_CHANGE_DELETE_PRINTER |
- PRINTER_CHANGE_FAILED_CONNECTION_PRINTER); /* 0x000000FF */
+ const int PRINTER_CHANGE_PRINTER = 0x000000FF;
- const int PRINTER_CHANGE_JOB = (PRINTER_CHANGE_ADD_JOB |
- PRINTER_CHANGE_SET_JOB |
- PRINTER_CHANGE_DELETE_JOB |
- PRINTER_CHANGE_WRITE_JOB); /* 0x0000FF00 */
+ const int PRINTER_CHANGE_JOB = 0x0000FF00;
const int PRINTER_CHANGE_FORM = (PRINTER_CHANGE_ADD_FORM |
PRINTER_CHANGE_SET_FORM |
@@ -1554,14 +1549,14 @@ import "misc.idl", "security.idl", "winreg.idl";
PRINTER_CHANGE_CONFIGURE_PORT |
PRINTER_CHANGE_DELETE_PORT); /* 0x00700000 */
- const int PRINTER_CHANGE_PRINT_PROCESSOR = (PRINTER_CHANGE_ADD_PRINT_PROCESSOR |
- PRINTER_CHANGE_DELETE_PRINT_PROCESSOR); /* 0x07000000 */
+ const int PRINTER_CHANGE_PRINT_PROCESSOR = 0x07000000;
const int PRINTER_CHANGE_PRINTER_DRIVER = (PRINTER_CHANGE_ADD_PRINTER_DRIVER |
PRINTER_CHANGE_SET_PRINTER_DRIVER |
PRINTER_CHANGE_DELETE_PRINTER_DRIVER); /* 0x70000000 */
- const int PRINTER_CHANGE_ALL = (PRINTER_CHANGE_JOB |
+ const int PRINTER_CHANGE_ALL = (PRINTER_CHANGE_PRINTER |
+ PRINTER_CHANGE_JOB |
PRINTER_CHANGE_FORM |
PRINTER_CHANGE_PORT |
PRINTER_CHANGE_PRINT_PROCESSOR |
@@ -1683,7 +1678,7 @@ import "misc.idl", "security.idl", "winreg.idl";
typedef [switch_type(uint32)] union {
[case(1)] uint32 integer[2];
[case(2)] spoolss_NotifyString string;
- [case(3)] spoolss_DeviceMode *devmode;
+ [case(3)] spoolss_DevmodeContainer devmode;
[case(4)] spoolss_TimeCtr time;
[case(5)] sec_desc_buf sd;
} spoolss_NotifyData;
diff --git a/source3/rpcclient/cmd_spoolss.c b/source3/rpcclient/cmd_spoolss.c
index 944bac7..bb9d0e6 100644
--- a/source3/rpcclient/cmd_spoolss.c
+++ b/source3/rpcclient/cmd_spoolss.c
@@ -2526,6 +2526,7 @@ static WERROR cmd_spoolss_rffpcnex(struct rpc_pipe_client *cli,
const char **argv)
{
const char *printername;
+ const char *clientname;
POLICY_HND hnd;
bool got_hnd = False;
WERROR result;
@@ -2582,13 +2583,19 @@ static WERROR cmd_spoolss_rffpcnex(struct rpc_pipe_client *cli,
}
option.types[1].fields[0] = JOB_NOTIFY_PRINTER_NAME;
+ clientname = talloc_asprintf(mem_ctx, "\\\\%s", global_myname());
+ if (!clientname) {
+ result = WERR_NOMEM;
+ goto done;
+ }
+
/* Send rffpcnex */
status = rpccli_spoolss_RemoteFindFirstPrinterChangeNotifyEx(cli, mem_ctx,
&hnd,
0,
0,
- cli->srv_name_slash,
+ clientname,
123,
&option,
&result);
--
Samba Shared Repository
More information about the samba-cvs
mailing list