]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
this one's a handle-based one (missed in the first round).
authorLuke Leighton <lkcl@samba.org>
Sat, 27 Nov 1999 22:47:17 +0000 (22:47 +0000)
committerLuke Leighton <lkcl@samba.org>
Sat, 27 Nov 1999 22:47:17 +0000 (22:47 +0000)
(This used to be commit 4c3556fae73c60693355f95f48ac63834ba4dd10)

source3/include/proto.h
source3/rpc_client/cli_eventlog.c
source3/rpc_parse/parse_eventlog.c
source3/rpcclient/cmd_eventlog.c

index a481e2cccd468c5ca4a3d365fea7049087f87251..fac04a152f82a081ec9127945aa6d47d3ba3d80f 100644 (file)
@@ -1804,10 +1804,10 @@ BOOL rpc_con_pipe_req(struct cli_connection *con, uint8 op_num,
 
 /*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, 
+BOOL event_open(const char* srv_name, const char *log, POLICY_HND *hnd);
+BOOL event_close( POLICY_HND *hnd);
+BOOL event_numofeventlogrec( POLICY_HND *hnd, uint32 *number);
+BOOL event_readeventlog(POLICY_HND *hnd, 
                            uint32 number, uint32 flags, uint32 offset, 
                           uint32 *number_of_bytes, EVENTLOGRECORD *ev);
 
@@ -2344,7 +2344,7 @@ BOOL brs_io_r_query_info(char *desc,  BRS_R_QUERY_INFO *r_u, prs_struct *ps, int
 
 /*The following definitions come from  rpc_parse/parse_eventlog.c  */
 
-BOOL make_eventlog_q_open(EVENTLOG_Q_OPEN *q_u, char *journal, char *unk);
+BOOL make_eventlog_q_open(EVENTLOG_Q_OPEN *q_u, const char *journal, char *unk);
 BOOL eventlog_io_q_open(char *desc, EVENTLOG_Q_OPEN *q_u, prs_struct *ps, int depth);
 BOOL eventlog_io_r_open(char *desc, EVENTLOG_R_OPEN *r_u, prs_struct *ps, int depth);
 BOOL make_eventlog_q_close(EVENTLOG_Q_CLOSE *q_u, POLICY_HND *pol);
index bbee485bab48c410ae0ea38c46832515ac9e9c25..85ba30229451943980867a9dd63e6b0e613329f6 100644 (file)
@@ -27,13 +27,20 @@ extern int DEBUGLEVEL;
 
 /****************************************************************************
 ****************************************************************************/
-BOOL do_event_open(struct cli_state *cli, uint16 fnum, char *log, POLICY_HND *hnd)
+BOOL event_open(const char* srv_name, const char *log, POLICY_HND *hnd)
 {
        prs_struct rbuf;
        prs_struct buf; 
        EVENTLOG_Q_OPEN q;
        BOOL p = False;
        BOOL valid_pol = False;
+       
+       struct cli_connection *con = NULL;
+
+       if (!cli_connection_init(srv_name, PIPE_EVENTLOG, &con))
+       {
+               return False;
+       }
 
        prs_init(&buf , 1024, 4, SAFETY_MARGIN, False);
        prs_init(&rbuf, 0   , 4, SAFETY_MARGIN, True );
@@ -45,7 +52,7 @@ BOOL do_event_open(struct cli_state *cli, uint16 fnum, char *log, POLICY_HND *hn
        eventlog_io_q_open("", &q, &buf, 0);
 
        /* send the data on \PIPE\ */
-       if (rpc_api_pipe_req(cli, fnum, EVENTLOG_OPEN, &buf, &rbuf))
+       if (rpc_con_pipe_req(con, EVENTLOG_OPEN, &buf, &rbuf))
        {
                EVENTLOG_R_OPEN r;
 
@@ -55,7 +62,7 @@ BOOL do_event_open(struct cli_state *cli, uint16 fnum, char *log, POLICY_HND *hn
                if (p && r.status != 0)
                {
                        /* report error code */
-                       DEBUG(0,("do_event_open: %s\n", get_nt_error_msg(r.status)));
+                       DEBUG(0,("event_open: %s\n", get_nt_error_msg(r.status)));
                        p = False;
                }
 
@@ -63,7 +70,9 @@ BOOL do_event_open(struct cli_state *cli, uint16 fnum, char *log, POLICY_HND *hn
                {
                        /*copy handle */
                        memcpy(hnd->data, r.pol.data, sizeof(hnd->data));
-                       valid_pol = True;
+                       valid_pol = register_policy_hnd(hnd) &&
+                                   set_policy_con(hnd, con, 
+                                                        cli_connection_unlink);
                }
        }
 
@@ -75,7 +84,7 @@ BOOL do_event_open(struct cli_state *cli, uint16 fnum, char *log, POLICY_HND *hn
 
 /****************************************************************************
 ****************************************************************************/
-BOOL do_event_close(struct cli_state *cli, uint16 fnum, POLICY_HND *hnd)
+BOOL event_close( POLICY_HND *hnd)
 {
        prs_struct rbuf;
        prs_struct buf; 
@@ -92,7 +101,7 @@ BOOL do_event_close(struct cli_state *cli, uint16 fnum, POLICY_HND *hnd)
        eventlog_io_q_close("", &q, &buf, 0);
 
        /* send the data on \PIPE\ */
-       if (rpc_api_pipe_req(cli, fnum, EVENTLOG_CLOSE, &buf, &rbuf))
+       if (rpc_hnd_pipe_req(hnd, EVENTLOG_CLOSE, &buf, &rbuf))
        {
                EVENTLOG_R_CLOSE r;
 
@@ -102,7 +111,7 @@ BOOL do_event_close(struct cli_state *cli, uint16 fnum, POLICY_HND *hnd)
                if (p && r.status != 0)
                {
                        /* report error code */
-                       DEBUG(0,("do_event_close: %s\n", get_nt_error_msg(r.status)));
+                       DEBUG(0,("event_close: %s\n", get_nt_error_msg(r.status)));
                        p = False;
                }
 
@@ -111,12 +120,14 @@ BOOL do_event_close(struct cli_state *cli, uint16 fnum, POLICY_HND *hnd)
        prs_mem_free(&rbuf);
        prs_mem_free(&buf );
 
+       close_policy_hnd(hnd);
+
        return p;
 }
 
 /****************************************************************************
 ****************************************************************************/
-BOOL do_event_numofeventlogrec(struct cli_state *cli, uint16 fnum, POLICY_HND *hnd, uint32 *number)
+BOOL event_numofeventlogrec( POLICY_HND *hnd, uint32 *number)
 {
        prs_struct rbuf;
        prs_struct buf; 
@@ -133,7 +144,7 @@ BOOL do_event_numofeventlogrec(struct cli_state *cli, uint16 fnum, POLICY_HND *h
        eventlog_io_q_numofeventlogrec("", &q, &buf, 0);
 
        /* send the data on \PIPE\ */
-       if (rpc_api_pipe_req(cli, fnum, EVENTLOG_NUMOFEVENTLOGRECORDS, &buf, &rbuf))
+       if (rpc_hnd_pipe_req(hnd, EVENTLOG_NUMOFEVENTLOGRECORDS, &buf, &rbuf))
        {
                EVENTLOG_R_NUMOFEVENTLOGREC r;
 
@@ -143,7 +154,7 @@ BOOL do_event_numofeventlogrec(struct cli_state *cli, uint16 fnum, POLICY_HND *h
                if (p && r.status != 0)
                {
                        /* report error code */
-                       DEBUG(0,("do_event_close: %s\n", get_nt_error_msg(r.status)));
+                       DEBUG(0,("event_close: %s\n", get_nt_error_msg(r.status)));
                        p = False;
                }
 
@@ -161,7 +172,7 @@ BOOL do_event_numofeventlogrec(struct cli_state *cli, uint16 fnum, POLICY_HND *h
 
 /****************************************************************************
 ****************************************************************************/
-BOOL do_event_readeventlog(struct cli_state *cli, uint16 fnum, POLICY_HND *hnd, 
+BOOL event_readeventlog(POLICY_HND *hnd, 
                            uint32 number, uint32 flags, uint32 offset, 
                           uint32 *number_of_bytes, EVENTLOGRECORD *ev)
 {
@@ -181,7 +192,7 @@ BOOL do_event_readeventlog(struct cli_state *cli, uint16 fnum, POLICY_HND *hnd,
        eventlog_io_q_readeventlog("", &q, &buf, 0);
 
        /* send the data on \PIPE\ */
-       if (rpc_api_pipe_req(cli, fnum, EVENTLOG_READEVENTLOG, &buf, &rbuf))
+       if (rpc_hnd_pipe_req(hnd, EVENTLOG_READEVENTLOG, &buf, &rbuf))
        {
                r.event=ev;
                eventlog_io_r_readeventlog("", &r, &rbuf, 0);
index 6cf476711dee2898c33c3fd504265eba11c67b37..0b49ed5da79c65ecb0f4ca32a886b253bafc8c3f 100644 (file)
@@ -27,7 +27,7 @@ extern int DEBUGLEVEL;
 
 /*******************************************************************
 ********************************************************************/  
-BOOL make_eventlog_q_open(EVENTLOG_Q_OPEN *q_u, char *journal, char *unk)
+BOOL make_eventlog_q_open(EVENTLOG_Q_OPEN *q_u, const char *journal, char *unk)
 {
        int len_journal = journal != NULL ? strlen(journal) : 0;
        int len_unk = unk != NULL ? strlen(unk) : 0;
index 2a18645196cea9c1c1dca0d7f30bce505a340ae6..3e86f5bb28be0bac555bf34ad69a5cbc74f6a222 100644 (file)
@@ -32,7 +32,6 @@ extern int DEBUGLEVEL;
 
 #define DEBUG_TESTING
 
-extern struct cli_state *smb_cli;
 extern FILE* out_hnd;
 
 
@@ -40,9 +39,8 @@ extern FILE* out_hnd;
 ****************************************************************************/
 void cmd_eventlog(struct client_info *info, int argc, char *argv[])
 {
-       uint16 nt_pipe_fnum;
-       BOOL res  = True;
-       BOOL res1 = True;
+       BOOL res1  = True;
+       BOOL res = True;
        POLICY_HND hnd;
        uint32 number = 0;
        uint32 flags;
@@ -52,43 +50,43 @@ void cmd_eventlog(struct client_info *info, int argc, char *argv[])
        
        char *journal = NULL;
        
-       flags=EVENTLOG_READ_SEQUENTIAL|EVENTLOG_READ_BACKWARD;
+       fstring srv_name;
+       fstrcpy(srv_name, "\\\\");
+       fstrcat(srv_name, info->dest_host);
+       strupper(srv_name);
+
+       flags = EVENTLOG_READ_SEQUENTIAL|EVENTLOG_READ_BACKWARD;
 
        if (argc > 1)
        {
                journal = argv[1];
        }
 
-       /* open scheduler session. */
-       res1 = res1 ? cli_nt_session_open(smb_cli, PIPE_EVENTLOG, &nt_pipe_fnum) : False;
-
-       res1 = res1 ? do_event_open(smb_cli, nt_pipe_fnum, journal, &hnd) : False;
-
-       res = res1 ? do_event_numofeventlogrec(smb_cli, nt_pipe_fnum, &hnd, &number) : False;
+       res = res ? event_open(srv_name, journal, &hnd) : False;
+       res1 = res ? event_numofeventlogrec(&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 && res; offset++)
+       for (offset = 0; offset < number && res1; 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;
+               res1 = res1 ? event_readeventlog(&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;
+               res1 = res1 ? event_readeventlog(&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);
                        
-       res1 = res1 ? do_event_close(smb_cli, nt_pipe_fnum, &hnd): False;
-
-       /* close the session */
-       cli_nt_session_close(smb_cli, nt_pipe_fnum);
+       res = res ? event_close(&hnd): False;
 }