The branch, master has been updated
       via  3d6860018f018e8ad4a8ed1ea8a2cc8f9c639254 (commit)
       via  7f35c3be69bc86b9efd8cc91713a8747b7bad95f (commit)
       via  2038da6897dcbdefbf3b596f049757b6c5e0761c (commit)
       via  b3b06a8b7b8765db85349a5dd14234f878978748 (commit)
      from  6a6eb90803dc47140fda1984e148a98f4bb898da (commit)

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


- Log -----------------------------------------------------------------
commit 3d6860018f018e8ad4a8ed1ea8a2cc8f9c639254
Author: Günther Deschner <[email protected]>
Date:   Sat Nov 15 01:29:21 2008 +0100

    s3-spoolss: remove old _spoolss_WritePrinter.
    
    Guenther

commit 7f35c3be69bc86b9efd8cc91713a8747b7bad95f
Author: Günther Deschner <[email protected]>
Date:   Sat Nov 15 01:27:44 2008 +0100

    s3-spoolss: use pidl for _spoolss_WritePrinter.
    
    Guenther

commit 2038da6897dcbdefbf3b596f049757b6c5e0761c
Author: Günther Deschner <[email protected]>
Date:   Sat Feb 7 02:08:15 2009 +0100

    s3-spoolss: some cosmetics in debug statements.
    
    Guenther

commit b3b06a8b7b8765db85349a5dd14234f878978748
Author: Günther Deschner <[email protected]>
Date:   Sat Feb 7 02:33:48 2009 +0100

    s4-smbtorture: fix test_EnumJobs in spoolss win test.
    
    Guenther

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

Summary of changes:
 source3/include/proto.h             |    9 -----
 source3/include/rpc_spoolss.h       |   16 --------
 source3/rpc_client/cli_spoolss.c    |   29 ---------------
 source3/rpc_parse/parse_spoolss.c   |   68 -----------------------------------
 source3/rpc_server/srv_spoolss.c    |   22 +-----------
 source3/rpc_server/srv_spoolss_nt.c |   45 ++++++++++-------------
 source4/torture/rpc/spoolss_win.c   |    2 +
 7 files changed, 23 insertions(+), 168 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/include/proto.h b/source3/include/proto.h
index 6b4a252..f07e31c 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -5513,9 +5513,6 @@ WERROR rpccli_spoolss_enumprinterdata(struct 
rpc_pipe_client *cli, TALLOC_CTX *m
 WERROR rpccli_spoolss_enumprinterdataex(struct rpc_pipe_client *cli, 
TALLOC_CTX *mem_ctx,
                                     POLICY_HND *hnd, const char *keyname, 
                                     REGVAL_CTR *ctr);
-WERROR rpccli_spoolss_writeprinter(struct rpc_pipe_client *cli, TALLOC_CTX 
*mem_ctx,
-                               POLICY_HND *hnd, uint32 data_size, char *data,
-                               uint32 *num_written);
 WERROR rpccli_spoolss_deleteprinterdata(struct rpc_pipe_client *cli, 
TALLOC_CTX *mem_ctx,
                                     POLICY_HND *hnd, char *valuename);
 WERROR rpccli_spoolss_deleteprinterdataex(struct rpc_pipe_client *cli, 
TALLOC_CTX *mem_ctx,
@@ -5879,8 +5876,6 @@ bool spoolss_io_q_deleteprinterdriverex(const char *desc, 
SPOOL_Q_DELETEPRINTERD
 bool spoolss_io_r_deleteprinterdriverex(const char *desc, 
SPOOL_R_DELETEPRINTERDRIVEREX *r_u, prs_struct *ps, int depth);
 bool spoolss_io_q_startdocprinter(const char *desc, SPOOL_Q_STARTDOCPRINTER 
*q_u, prs_struct *ps, int depth);
 bool spoolss_io_r_startdocprinter(const char *desc, SPOOL_R_STARTDOCPRINTER 
*r_u, prs_struct *ps, int depth);
-bool spoolss_io_q_writeprinter(const char *desc, SPOOL_Q_WRITEPRINTER *q_u, 
prs_struct *ps, int depth);
-bool spoolss_io_r_writeprinter(const char *desc, SPOOL_R_WRITEPRINTER *r_u, 
prs_struct *ps, int depth);
 bool spoolss_io_q_rffpcnex(const char *desc, SPOOL_Q_RFFPCNEX *q_u, prs_struct 
*ps, int depth);
 bool spoolss_io_r_rffpcnex(const char *desc, SPOOL_R_RFFPCNEX *r_u, prs_struct 
*ps, int depth);
 bool spoolss_io_q_rfnpcnex(const char *desc, SPOOL_Q_RFNPCNEX *q_u, prs_struct 
*ps, int depth);
@@ -6129,9 +6124,6 @@ bool 
make_spoolss_q_startdocprinter(SPOOL_Q_STARTDOCPRINTER *q_u,
                                    POLICY_HND *handle, uint32 level,
                                    char *docname, char *outputfile,
                                    char *datatype);
-bool make_spoolss_q_writeprinter(SPOOL_Q_WRITEPRINTER *q_u, 
-                                POLICY_HND *handle, uint32 data_size,
-                                char *data);
 bool make_spoolss_q_deleteprinterdata(SPOOL_Q_DELETEPRINTERDATA *q_u, 
                                 POLICY_HND *handle, char *valuename);
 bool make_spoolss_q_deleteprinterdataex(SPOOL_Q_DELETEPRINTERDATAEX *q_u, 
@@ -6346,7 +6338,6 @@ WERROR _spoolss_enumprinters( pipes_struct *p, 
SPOOL_Q_ENUMPRINTERS *q_u, SPOOL_
 WERROR _spoolss_getprinter(pipes_struct *p, SPOOL_Q_GETPRINTER *q_u, 
SPOOL_R_GETPRINTER *r_u);
 WERROR _spoolss_getprinterdriver2(pipes_struct *p, SPOOL_Q_GETPRINTERDRIVER2 
*q_u, SPOOL_R_GETPRINTERDRIVER2 *r_u);
 WERROR _spoolss_startdocprinter(pipes_struct *p, SPOOL_Q_STARTDOCPRINTER *q_u, 
SPOOL_R_STARTDOCPRINTER *r_u);
-WERROR _spoolss_writeprinter(pipes_struct *p, SPOOL_Q_WRITEPRINTER *q_u, 
SPOOL_R_WRITEPRINTER *r_u);
 WERROR add_port_hook(TALLOC_CTX *ctx, NT_USER_TOKEN *token, const char 
*portname, const char *uri );
 bool add_printer_hook(TALLOC_CTX *ctx, NT_USER_TOKEN *token, 
NT_PRINTER_INFO_LEVEL *printer);
 WERROR _spoolss_setprinter(pipes_struct *p, SPOOL_Q_SETPRINTER *q_u, 
SPOOL_R_SETPRINTER *r_u);
diff --git a/source3/include/rpc_spoolss.h b/source3/include/rpc_spoolss.h
index c1c24cf..6655635 100644
--- a/source3/include/rpc_spoolss.h
+++ b/source3/include/rpc_spoolss.h
@@ -617,22 +617,6 @@ typedef struct spool_r_startdocprinter
 }
 SPOOL_R_STARTDOCPRINTER;
 
-typedef struct spool_q_writeprinter
-{
-       POLICY_HND handle;
-       uint32 buffer_size;
-       uint8 *buffer;
-       uint32 buffer_size2;
-}
-SPOOL_Q_WRITEPRINTER;
-
-typedef struct spool_r_writeprinter
-{
-       uint32 buffer_written;
-       WERROR status;
-}
-SPOOL_R_WRITEPRINTER;
-
 typedef struct spool_notify_option
 {
        uint32 version;
diff --git a/source3/rpc_client/cli_spoolss.c b/source3/rpc_client/cli_spoolss.c
index d429315..bdb48a4 100644
--- a/source3/rpc_client/cli_spoolss.c
+++ b/source3/rpc_client/cli_spoolss.c
@@ -1788,35 +1788,6 @@ WERROR rpccli_spoolss_enumprinterdataex(struct 
rpc_pipe_client *cli, TALLOC_CTX
 /**********************************************************************
 **********************************************************************/
 
-WERROR rpccli_spoolss_writeprinter(struct rpc_pipe_client *cli, TALLOC_CTX 
*mem_ctx,
-                               POLICY_HND *hnd, uint32 data_size, char *data,
-                               uint32 *num_written)
-{
-       prs_struct qbuf, rbuf;
-       SPOOL_Q_WRITEPRINTER in;
-       SPOOL_R_WRITEPRINTER out;
-
-       ZERO_STRUCT(in);
-       ZERO_STRUCT(out);
-
-        make_spoolss_q_writeprinter( &in, hnd, data_size, data );
-
-       CLI_DO_RPC_WERR( cli, mem_ctx, &syntax_spoolss, SPOOLSS_WRITEPRINTER,
-                   in, out, 
-                   qbuf, rbuf,
-                   spoolss_io_q_writeprinter,
-                   spoolss_io_r_writeprinter, 
-                   WERR_GENERAL_FAILURE );
-                   
-       if (num_written)
-               *num_written = out.buffer_written;
-               
-       return out.status;
-}
-
-/**********************************************************************
-**********************************************************************/
-
 WERROR rpccli_spoolss_deleteprinterdata(struct rpc_pipe_client *cli, 
TALLOC_CTX *mem_ctx,
                                     POLICY_HND *hnd, char *valuename)
 {
diff --git a/source3/rpc_parse/parse_spoolss.c 
b/source3/rpc_parse/parse_spoolss.c
index 01b8156..815b1b6 100644
--- a/source3/rpc_parse/parse_spoolss.c
+++ b/source3/rpc_parse/parse_spoolss.c
@@ -1627,60 +1627,6 @@ bool spoolss_io_r_startdocprinter(const char *desc, 
SPOOL_R_STARTDOCPRINTER *r_u
 
 /*******************************************************************
  * read a structure.
- * called from spoolss_q_writeprinter (srv_spoolss.c)
- ********************************************************************/
-
-bool spoolss_io_q_writeprinter(const char *desc, SPOOL_Q_WRITEPRINTER *q_u, 
prs_struct *ps, int depth)
-{
-       if (q_u == NULL) return False;
-
-       prs_debug(ps, depth, desc, "spoolss_io_q_writeprinter");
-       depth++;
-
-       if(!prs_align(ps))
-               return False;
-
-       if(!smb_io_pol_hnd("printer handle",&q_u->handle,ps,depth))
-               return False;
-       if(!prs_uint32("buffer_size", ps, depth, &q_u->buffer_size))
-               return False;
-       
-       if (q_u->buffer_size!=0)
-       {
-               if (UNMARSHALLING(ps))
-                       q_u->buffer=PRS_ALLOC_MEM(ps, uint8, q_u->buffer_size);
-               if(q_u->buffer == NULL)
-                       return False;   
-               if(!prs_uint8s(True, "buffer", ps, depth, q_u->buffer, 
q_u->buffer_size))
-                       return False;
-       }
-       if(!prs_align(ps))
-               return False;
-       if(!prs_uint32("buffer_size2", ps, depth, &q_u->buffer_size2))
-               return False;
-
-       return True;
-}
-
-/*******************************************************************
- * write a structure.
- * called from spoolss_r_writeprinter (srv_spoolss.c)
- ********************************************************************/
-
-bool spoolss_io_r_writeprinter(const char *desc, SPOOL_R_WRITEPRINTER *r_u, 
prs_struct *ps, int depth)
-{
-       prs_debug(ps, depth, desc, "spoolss_io_r_writeprinter");
-       depth++;
-       if(!prs_uint32("buffer_written", ps, depth, &r_u->buffer_written))
-               return False;
-       if(!prs_werror("status", ps, depth, &r_u->status))
-               return False;
-
-       return True;
-}
-
-/*******************************************************************
- * read a structure.
  * called from spoolss_q_rffpcnex (srv_spoolss.c)
  ********************************************************************/
 
@@ -7158,20 +7104,6 @@ bool 
make_spoolss_q_startdocprinter(SPOOL_Q_STARTDOCPRINTER *q_u,
  * init a structure.
  ********************************************************************/
 
-bool make_spoolss_q_writeprinter(SPOOL_Q_WRITEPRINTER *q_u, 
-                                POLICY_HND *handle, uint32 data_size,
-                                char *data)
-{
-        memcpy(&q_u->handle, handle, sizeof(POLICY_HND));
-       q_u->buffer_size = q_u->buffer_size2 = data_size;
-       q_u->buffer = (unsigned char *)data;
-       return True;
-}
-
-/*******************************************************************
- * init a structure.
- ********************************************************************/
-
 bool make_spoolss_q_deleteprinterdata(SPOOL_Q_DELETEPRINTERDATA *q_u, 
                                 POLICY_HND *handle, char *valuename)
 {
diff --git a/source3/rpc_server/srv_spoolss.c b/source3/rpc_server/srv_spoolss.c
index 4e86e19..dd8bf0d 100644
--- a/source3/rpc_server/srv_spoolss.c
+++ b/source3/rpc_server/srv_spoolss.c
@@ -463,27 +463,7 @@ static bool api_spoolss_enddocprinter(pipes_struct *p)
 
 static bool api_spoolss_writeprinter(pipes_struct *p)
 {
-       SPOOL_Q_WRITEPRINTER q_u;
-       SPOOL_R_WRITEPRINTER r_u;
-       prs_struct *data = &p->in_data.data;
-       prs_struct *rdata = &p->out_data.rdata;
-
-       ZERO_STRUCT(q_u);
-       ZERO_STRUCT(r_u);
-
-       if(!spoolss_io_q_writeprinter("", &q_u, data, 0)) {
-               DEBUG(0,("spoolss_io_q_writeprinter: unable to unmarshall 
SPOOL_Q_WRITEPRINTER.\n"));
-               return False;
-       }
-
-       r_u.status = _spoolss_writeprinter(p, &q_u, &r_u);
-
-       if(!spoolss_io_r_writeprinter("",&r_u,rdata,0)) {
-               DEBUG(0,("spoolss_io_r_writeprinter: unable to marshall 
SPOOL_R_WRITEPRINTER.\n"));
-               return False;
-       }
-
-       return True;
+       return proxy_spoolss_call(p, NDR_SPOOLSS_WRITEPRINTER);
 }
 
 /****************************************************************************
diff --git a/source3/rpc_server/srv_spoolss_nt.c 
b/source3/rpc_server/srv_spoolss_nt.c
index 2643fe6..fd1babe 100644
--- a/source3/rpc_server/srv_spoolss_nt.c
+++ b/source3/rpc_server/srv_spoolss_nt.c
@@ -5792,7 +5792,8 @@ WERROR _spoolss_StartPagePrinter(pipes_struct *p,
        Printer_entry *Printer = find_printer_index_by_hnd(p, handle);
 
        if (!Printer) {
-               DEBUG(3,("Error in startpageprinter printer handle\n"));
+               DEBUG(3,("_spoolss_StartPagePrinter: "
+                       "Error in startpageprinter printer handle\n"));
                return WERR_BADFID;
        }
 
@@ -5813,7 +5814,8 @@ WERROR _spoolss_EndPagePrinter(pipes_struct *p,
        Printer_entry *Printer = find_printer_index_by_hnd(p, handle);
 
        if (!Printer) {
-               DEBUG(2,("_spoolss_endpageprinter: Invalid handle 
(%s:%u:%u).\n",OUR_HANDLE(handle)));
+               DEBUG(2,("_spoolss_EndPagePrinter: Invalid handle 
(%s:%u:%u).\n",
+                       OUR_HANDLE(handle)));
                return WERR_BADFID;
        }
 
@@ -5900,21 +5902,24 @@ WERROR _spoolss_EndDocPrinter(pipes_struct *p,
        return _spoolss_enddocprinter_internal(p, handle);
 }
 
-/****************************************************************************
-****************************************************************************/
+/****************************************************************
+ _spoolss_WritePrinter
+****************************************************************/
 
-WERROR _spoolss_writeprinter(pipes_struct *p, SPOOL_Q_WRITEPRINTER *q_u, 
SPOOL_R_WRITEPRINTER *r_u)
+WERROR _spoolss_WritePrinter(pipes_struct *p,
+                            struct spoolss_WritePrinter *r)
 {
-       POLICY_HND *handle = &q_u->handle;
-       uint32 buffer_size = q_u->buffer_size;
-       uint8 *buffer = q_u->buffer;
-       uint32 *buffer_written = &q_u->buffer_size2;
+       POLICY_HND *handle = r->in.handle;
+       uint32 buffer_size = r->in._data_size;
+       uint8 *buffer = r->in.data.data;
+       uint32 *buffer_written = &r->in._data_size;
        int snum;
        Printer_entry *Printer = find_printer_index_by_hnd(p, handle);
 
        if (!Printer) {
-               DEBUG(2,("_spoolss_writeprinter: Invalid handle 
(%s:%u:%u)\n",OUR_HANDLE(handle)));
-               r_u->buffer_written = q_u->buffer_size2;
+               DEBUG(2,("_spoolss_WritePrinter: Invalid handle (%s:%u:%u)\n",
+                       OUR_HANDLE(handle)));
+               *r->out.num_written = r->in._data_size;
                return WERR_BADFID;
        }
 
@@ -5924,14 +5929,14 @@ WERROR _spoolss_writeprinter(pipes_struct *p, 
SPOOL_Q_WRITEPRINTER *q_u, SPOOL_R
        (*buffer_written) = (uint32)print_job_write(snum, Printer->jobid, 
(const char *)buffer,
                                        (SMB_OFF_T)-1, (size_t)buffer_size);
        if (*buffer_written == (uint32)-1) {
-               r_u->buffer_written = 0;
+               *r->out.num_written = 0;
                if (errno == ENOSPC)
                        return WERR_NO_SPOOL_SPACE;
                else
                        return WERR_ACCESS_DENIED;
        }
 
-       r_u->buffer_written = q_u->buffer_size2;
+       *r->out.num_written = r->in._data_size;
 
        return WERR_OK;
 }
@@ -5997,7 +6002,8 @@ WERROR _spoolss_AbortPrinter(pipes_struct *p,
        WERROR          errcode = WERR_OK;
 
        if (!Printer) {
-               DEBUG(2,("_spoolss_abortprinter: Invalid handle 
(%s:%u:%u)\n",OUR_HANDLE(handle)));
+               DEBUG(2,("_spoolss_AbortPrinter: Invalid handle (%s:%u:%u)\n",
+                       OUR_HANDLE(handle)));
                return WERR_BADFID;
        }
 
@@ -10137,17 +10143,6 @@ WERROR _spoolss_StartDocPrinter(pipes_struct *p,
 }
 
 /****************************************************************
- _spoolss_WritePrinter
-****************************************************************/
-
-WERROR _spoolss_WritePrinter(pipes_struct *p,
-                            struct spoolss_WritePrinter *r)
-{
-       p->rng_fault_state = true;
-       return WERR_NOT_SUPPORTED;
-}
-
-/****************************************************************
  _spoolss_ReadPrinter
 ****************************************************************/
 
diff --git a/source4/torture/rpc/spoolss_win.c 
b/source4/torture/rpc/spoolss_win.c
index ab5adef..df0ab65 100644
--- a/source4/torture/rpc/spoolss_win.c
+++ b/source4/torture/rpc/spoolss_win.c
@@ -260,6 +260,7 @@ static bool test_EnumJobs(struct torture_context *tctx,
        NTSTATUS status;
        struct spoolss_EnumJobs ej;
        DATA_BLOB blob = data_blob_talloc_zero(tctx, 1024);
+       uint32_t needed;
 
        torture_comment(tctx, "Test EnumJobs\n");
 
@@ -267,6 +268,7 @@ static bool test_EnumJobs(struct torture_context *tctx,
        ej.in.level = 2;
        ej.in.buffer = &blob;
        ej.in.offered = 1024;
+       ej.out.needed = &needed;
 
        status = dcerpc_spoolss_EnumJobs(p, tctx, &ej);
        torture_assert_ntstatus_ok(tctx, status, "EnumJobs failed");


-- 
Samba Shared Repository

Reply via email to