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 <[email protected]>
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 <[email protected]>
Date:   Mon Feb 23 12:47:53 2009 +0100

    s3: re-run make samba3-idl.
    
    Guenther

commit db400032abc48baafaef87d72e6498505642bf34
Author: Günther Deschner <[email protected]>
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 <[email protected]>
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

Reply via email to