diff options
author | Jean-François Micouleau <jfm@samba.org> | 1999-05-03 21:52:29 +0000 |
---|---|---|
committer | Jean-François Micouleau <jfm@samba.org> | 1999-05-03 21:52:29 +0000 |
commit | 60c211a3abd5eadb359db5f02941f32e2d881e52 (patch) | |
tree | 9372eb8073495bc12c2fac159247753e2693e685 /source3/rpcclient/cmd_eventlog.c | |
parent | e3a888d5a935047367e531321981cbed8618c5a3 (diff) | |
download | samba-60c211a3abd5eadb359db5f02941f32e2d881e52.tar.gz samba-60c211a3abd5eadb359db5f02941f32e2d881e52.tar.bz2 samba-60c211a3abd5eadb359db5f02941f32e2d881e52.zip |
Added a new command to rpcclient: eventlog <log> where <log> is System,
Security or Application. That's a crude equivalent to the eventviewer.
Jean Francois
(This used to be commit 66b4b896fbcabb964a427d0c0aa2f57997e0f6bb)
Diffstat (limited to 'source3/rpcclient/cmd_eventlog.c')
-rw-r--r-- | source3/rpcclient/cmd_eventlog.c | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/source3/rpcclient/cmd_eventlog.c b/source3/rpcclient/cmd_eventlog.c new file mode 100644 index 0000000000..e6e10c44eb --- /dev/null +++ b/source3/rpcclient/cmd_eventlog.c @@ -0,0 +1,94 @@ +/* + Unix SMB/Netbios implementation. + Version 2.1. + Copyright (C) Luke Kenneth Casson Leighton 1996-1999, + Copyright (C) Andrew Tridgell 1994-1999, + 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 + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + + +#ifdef SYSLOG +#undef SYSLOG +#endif + +#include "includes.h" +#include "nterr.h" + +extern int DEBUGLEVEL; + +#define DEBUG_TESTING + +extern struct cli_state *smb_cli; +extern FILE* out_hnd; + + +/**************************************************************************** +****************************************************************************/ +void cmd_eventlog(struct client_info *info) +{ + uint16 nt_pipe_fnum; + BOOL res = True; + POLICY_HND hnd; + uint32 number; + uint32 flags; + uint32 offset; + uint32 num_of_bytes; + EVENTLOGRECORD ev; + + fstring journal; + fstring temp; + + flags=EVENTLOG_READ_SEQUENTIAL|EVENTLOG_READ_BACKWARD; + + while (next_token(NULL, temp, NULL, sizeof(temp))) + { + fstrcpy(journal, temp); + } + + /* open scheduler session. */ + res = res ? cli_nt_session_open(smb_cli, PIPE_EVENTLOG, &nt_pipe_fnum) : False; + + res = res ? do_event_open(smb_cli, nt_pipe_fnum, journal, &hnd) : False; + + res = res ? do_event_numofeventlogrec(smb_cli, nt_pipe_fnum, &hnd, &number) : False; + + fprintf(out_hnd, "Number of events: %d\n", number); + + display_eventlog_eventrecord(out_hnd, ACTION_HEADER, &ev); + + for (offset=0; offset<number; offset++) + { + num_of_bytes=0; + + /* try once with a empty buffer */ + res = res ? do_event_readeventlog(smb_cli, nt_pipe_fnum, &hnd, number, + flags, offset, &num_of_bytes, &ev) : False; + + /* and try again with the correct size */ + res = res ? do_event_readeventlog(smb_cli, nt_pipe_fnum, &hnd, number, + flags, offset, &num_of_bytes, &ev) : False; + + display_eventlog_eventrecord(out_hnd, ACTION_ENUMERATE, &ev); + } + + display_eventlog_eventrecord(out_hnd, ACTION_FOOTER, &ev); + + res = res ? do_event_close(smb_cli, nt_pipe_fnum, &hnd): False; + + /* close the session */ + cli_nt_session_close(smb_cli, nt_pipe_fnum); +} |