From 9ac038817ea75db29ccf7d6d149483eeaa88ecb6 Mon Sep 17 00:00:00 2001 From: Jean-François Micouleau 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