From 9ac038817ea75db29ccf7d6d149483eeaa88ecb6 Mon Sep 17 00:00:00 2001
From: Jean-François Micouleau <jfm@samba.org>
Date: Mon, 3 May 1999 22:00:33 +0000
Subject: Changed the RPC api definition now first arg is a pipe_struct

found some memory leak in the spoolss code.

	Jean Francois
(This used to be commit 958591abd1645aaa459540a232231d380d879219)
---
 source3/Makefile.in           |  6 ++++--
 source3/include/ntdomain.h    |  3 ++-
 source3/include/proto.h       | 32 +++++++++++++++++++++++++++++++-
 source3/include/rpc_spoolss.h |  4 ++--
 source3/include/smb.h         |  2 +-
 5 files changed, 40 insertions(+), 7 deletions(-)

diff --git a/source3/Makefile.in b/source3/Makefile.in
index 51539f4302..51558de749 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -142,7 +142,7 @@ RPC_PARSE_OBJ = rpc_parse/parse_lsa.o rpc_parse/parse_misc.o \
                 rpc_parse/parse_samr.o rpc_parse/parse_srv.o \
                 rpc_parse/parse_wks.o rpc_parse/parse_sec.o \
                 rpc_parse/parse_svc.o rpc_parse/parse_at.o \
-		rpc_parse/parse_spoolss.o
+		rpc_parse/parse_spoolss.o rpc_parse/parse_eventlog.o
 
 RPC_CLIENT_OBJ = \
 		rpc_client/cli_login.o    \
@@ -154,7 +154,8 @@ RPC_CLIENT_OBJ = \
 		rpc_client/cli_srvsvc.o   \
 		rpc_client/cli_svcctl.o \
 		rpc_client/cli_samr.o   \
-		rpc_client/cli_atsvc.o
+		rpc_client/cli_atsvc.o \
+		rpc_client/cli_eventlog.o
 
 
 LOCKING_OBJ = locking/locking.o locking/locking_shm.o locking/locking_slow.o \
@@ -248,6 +249,7 @@ RPCCLIENT_OBJ = rpcclient/rpcclient.o \
              rpcclient/cmd_svcctl.o \
              rpcclient/cmd_netlogon.o \
              rpcclient/cmd_atsvc.o \
+             rpcclient/cmd_eventlog.o \
              $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) $(LIB_OBJ) \
              $(RPC_CLIENT_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_OBJ)
 
diff --git a/source3/include/ntdomain.h b/source3/include/ntdomain.h
index cfd1cc37b3..ce4d1ed148 100644
--- a/source3/include/ntdomain.h
+++ b/source3/include/ntdomain.h
@@ -44,6 +44,7 @@
 #include "rpc_wkssvc.h"
 #include "rpc_atsvc.h"
 #include "rpc_spoolss.h"
+#include "rpc_eventlog.h"
 
 /* 
  * A bunch of stuff that was put into smb.h
@@ -110,7 +111,7 @@ struct api_struct
 {  
   char *name;
   uint8 opnum;
-  void (*fn) (uint16 vuid, prs_struct*, prs_struct*);
+  void (*fn) (pipes_struct*, prs_struct*, prs_struct*);
 };
 
 struct mem_desc
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 13e75421c3..b12787fecb 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1580,7 +1580,7 @@ struct passgrp_ops *unix_initialise_password_grp(void);
 /*The following definitions come from  printing/nt_printing.c  */
 
 int get_ntforms(nt_forms_struct **list);
-int get_ntdrivers(fstring **list, char *architecture);
+int get_ntdrivers(connection_struct *conn, fstring **list, char *architecture);
 void get_short_archi(char *short_archi, char *long_archi);
 void dump_a_param(NT_PRINTER_PARAM *param);
 BOOL add_a_specific_param(NT_PRINTER_INFO_LEVEL_2 *info_2, NT_PRINTER_PARAM *param);
@@ -1639,6 +1639,15 @@ BOOL at_enum_jobs(struct cli_state *cli, uint16 fnum,
 BOOL at_query_job(struct cli_state *cli, uint16 fnum, char *server_name,
 		  uint32 jobid, AT_JOB_INFO *job, fstring command);
 
+/*The following definitions come from  rpc_client/cli_eventlog.c  */
+
+BOOL do_event_open(struct cli_state *cli, uint16 fnum, char *log, POLICY_HND *hnd);
+BOOL do_event_close(struct cli_state *cli, uint16 fnum, POLICY_HND *hnd);
+BOOL do_event_numofeventlogrec(struct cli_state *cli, uint16 fnum, POLICY_HND *hnd, uint32 *number);
+BOOL do_event_readeventlog(struct cli_state *cli, uint16 fnum, POLICY_HND *hnd, 
+                           uint32 number, uint32 flags, uint32 offset, 
+			   uint32 *number_of_bytes, EVENTLOGRECORD *ev);
+
 /*The following definitions come from  rpc_client/cli_login.c  */
 
 BOOL cli_nt_setup_creds(struct cli_state *cli, uint16 fnum,
@@ -1964,6 +1973,22 @@ void make_at_q_query_job(AT_Q_QUERY_JOB *q_q, char *server, uint32 jobid);
 void at_io_q_query_job(char *desc, AT_Q_QUERY_JOB *q_q, prs_struct *ps, int depth);
 void at_io_r_query_job(char *desc, AT_R_QUERY_JOB *r_q, prs_struct *ps, int depth);
 
+/*The following definitions come from  rpc_parse/parse_eventlog.c  */
+
+void make_eventlog_q_open(EVENTLOG_Q_OPEN *q_u, char *journal);
+void eventlog_io_q_open(char *desc, EVENTLOG_Q_OPEN *q_u, prs_struct *ps, int depth);
+void eventlog_io_r_open(char *desc, EVENTLOG_R_OPEN *r_u, prs_struct *ps, int depth);
+void make_eventlog_q_close(EVENTLOG_Q_CLOSE *q_u, POLICY_HND *pol);
+void eventlog_io_q_close(char *desc, EVENTLOG_Q_CLOSE *q_u, prs_struct *ps, int depth);
+void eventlog_io_r_close(char *desc, EVENTLOG_R_CLOSE *r_u, prs_struct *ps, int depth);
+void make_eventlog_q_numofeventlogrec(EVENTLOG_Q_NUMOFEVENTLOGREC *q_u, POLICY_HND *pol);
+void eventlog_io_q_numofeventlogrec(char *desc,EVENTLOG_Q_NUMOFEVENTLOGREC  *q_u, prs_struct *ps, int depth);
+void eventlog_io_r_numofeventlogrec(char *desc, EVENTLOG_R_NUMOFEVENTLOGREC *r_u, prs_struct *ps, int depth);
+void make_eventlog_q_readeventlog(EVENTLOG_Q_READEVENTLOG *q_u, POLICY_HND *pol,
+                                  uint32 flags, uint32 offset, uint32 number_of_bytes);
+void eventlog_io_q_readeventlog(char *desc, EVENTLOG_Q_READEVENTLOG *q_u, prs_struct *ps, int depth);
+void eventlog_io_r_readeventlog(char *desc, EVENTLOG_R_READEVENTLOG *r_u, prs_struct *ps, int depth);
+
 /*The following definitions come from  rpc_parse/parse_lsa.c  */
 
 void make_lsa_trans_name(LSA_TRANS_NAME *trn, UNISTR2 *uni_name,
@@ -3027,6 +3052,10 @@ BOOL api_wkssvc_rpc(pipes_struct *p, prs_struct *data);
 
 void cmd_at(struct client_info *info);
 
+/*The following definitions come from  rpcclient/cmd_eventlog.c  */
+
+void cmd_eventlog(struct client_info *info);
+
 /*The following definitions come from  rpcclient/cmd_lsarpc.c  */
 
 void cmd_lsa_query_info(struct client_info *info);
@@ -3167,6 +3196,7 @@ void display_at_enum_info(FILE *out_hnd, enum action_type action,
 		     uint32 num_jobs, AT_ENUM_INFO *jobs, fstring *commands);
 void display_at_job_info(FILE *out_hnd, enum action_type action,
 		     AT_JOB_INFO *job, fstring command);
+void display_eventlog_eventrecord(FILE *out_hnd, enum action_type action, EVENTLOGRECORD *ev);
 
 /*The following definitions come from  rpcclient/rpcclient.c  */
 
diff --git a/source3/include/rpc_spoolss.h b/source3/include/rpc_spoolss.h
index 91c018a669..f8e7efe81b 100755
--- a/source3/include/rpc_spoolss.h
+++ b/source3/include/rpc_spoolss.h
@@ -4,7 +4,7 @@
    SMB parameters and setup
    Copyright (C) Andrew Tridgell 1992-1998
    Copyright (C) Luke Kenneth Casson Leighton 1996-1998
-   Copyright (C) Jean Francois Micouleau 1998
+   Copyright (C) Jean Francois Micouleau 1998-1999
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -854,7 +854,7 @@ struct s_notify_info_data_table
 	uint16 field;
 	char   *name;
 	uint32 size;
-	void   (*fn) (int snum, SPOOL_NOTIFY_INFO_DATA *data, print_queue_struct *queue, NT_PRINTER_INFO_LEVEL *printer);
+	void   (*fn) (connection_struct *conn, int snum, SPOOL_NOTIFY_INFO_DATA *data, print_queue_struct *queue, NT_PRINTER_INFO_LEVEL *printer);
 };
 
 typedef struct spool_q_getprinterdriver2
diff --git a/source3/include/smb.h b/source3/include/smb.h
index 24f95baaa5..e69051304a 100644
--- a/source3/include/smb.h
+++ b/source3/include/smb.h
@@ -364,7 +364,7 @@ typedef char fstring[FSTRING_LEN];
 #define PIPE_LSARPC   "\\PIPE\\lsarpc"
 #define PIPE_ATSVC    "\\PIPE\\atsvc"
 #define PIPE_SPOOLSS  "\\pipe\\spoolss"
-
+#define PIPE_EVENTLOG "\\PIPE\\EVENTLOG"
 
 /* 64 bit time (100usec) since ????? - cifs6.txt, section 3.5, page 30 */
 typedef struct nttime_info
-- 
cgit