moved at command over to new abstract connection system. matthew, you
authorLuke Leighton <lkcl@samba.org>
Sat, 27 Nov 1999 22:58:11 +0000 (22:58 +0000)
committerLuke Leighton <lkcl@samba.org>
Sat, 27 Nov 1999 22:58:11 +0000 (22:58 +0000)
initialised dest_wks _after_ using it in at_soon() :-) so i fixed this :)
(This used to be commit 0aaf0c9c80b4a506955065e822a356b1c43a5ac5)

source3/rpc_client/cli_atsvc.c
source3/rpcclient/cmd_atsvc.c

index ba18a36313c0e0366c0a8cfbc9fefd239d7e0dda..9ba87e6e4a22ef4424304bed61f38efaa091e67f 100644 (file)
@@ -28,8 +28,8 @@ extern int DEBUGLEVEL;
 /****************************************************************************
 add a job to the scheduler
 ****************************************************************************/
-BOOL at_add_job(struct cli_state *cli, uint16 fnum, 
-               char *server_name, AT_JOB_INFO *info, char *command,
+BOOL at_add_job(
+               char *srv_name, AT_JOB_INFO *info, char *command,
                uint32 *jobid)
 {
        prs_struct rbuf;
@@ -37,6 +37,13 @@ BOOL at_add_job(struct cli_state *cli, uint16 fnum,
        AT_Q_ADD_JOB q_a;
        BOOL p = False;
 
+       struct cli_connection *con = NULL;
+
+       if (!cli_connection_init(srv_name, PIPE_ATSVC, &con))
+       {
+               return False;
+       }
+
        prs_init(&buf , 1024, 4, SAFETY_MARGIN, False);
        prs_init(&rbuf, 0   , 4, SAFETY_MARGIN, True );
 
@@ -45,13 +52,13 @@ BOOL at_add_job(struct cli_state *cli, uint16 fnum,
        DEBUG(4,("Scheduler Add Job\n"));
 
        /* store the parameters */
-       make_at_q_add_job(&q_a, server_name, info, command);
+       make_at_q_add_job(&q_a, srv_name, info, command);
 
        /* turn parameters into data stream */
        at_io_q_add_job("", &q_a, &buf, 0);
 
        /* send the data on \PIPE\ */
-       if (rpc_api_pipe_req(cli, fnum, AT_ADD_JOB, &buf, &rbuf))
+       if (rpc_con_pipe_req(con, AT_ADD_JOB, &buf, &rbuf))
        {
                AT_R_ADD_JOB r_a;
 
@@ -74,20 +81,28 @@ BOOL at_add_job(struct cli_state *cli, uint16 fnum,
        prs_mem_free(&rbuf);
        prs_mem_free(&buf );
 
+       cli_connection_unlink(con);
+
        return p;
 }
 
 /****************************************************************************
 dequeue a job
 ****************************************************************************/
-BOOL at_del_job(struct cli_state *cli, uint16 fnum, 
-               char *server_name, uint32 min_jobid, uint32 max_jobid)
+BOOL at_del_job( char *srv_name, uint32 min_jobid, uint32 max_jobid)
 {
        prs_struct rbuf;
        prs_struct buf; 
        AT_Q_DEL_JOB q_d;
        BOOL p = False;
 
+       struct cli_connection *con = NULL;
+
+       if (!cli_connection_init(srv_name, PIPE_ATSVC, &con))
+       {
+               return False;
+       }
+
        prs_init(&buf , 1024, 4, SAFETY_MARGIN, False);
        prs_init(&rbuf, 0   , 4, SAFETY_MARGIN, True );
 
@@ -96,13 +111,13 @@ BOOL at_del_job(struct cli_state *cli, uint16 fnum,
        DEBUG(4,("Scheduler Delete Job\n"));
 
        /* store the parameters */
-       make_at_q_del_job(&q_d, server_name, min_jobid, max_jobid);
+       make_at_q_del_job(&q_d, srv_name, min_jobid, max_jobid);
 
        /* turn parameters into data stream */
        at_io_q_del_job("", &q_d, &buf, 0);
 
        /* send the data on \PIPE\ */
-       if (rpc_api_pipe_req(cli, fnum, AT_DEL_JOB, &buf, &rbuf))
+       if (rpc_con_pipe_req(con, AT_DEL_JOB, &buf, &rbuf))
        {
                AT_R_DEL_JOB r_d;
 
@@ -120,14 +135,15 @@ BOOL at_del_job(struct cli_state *cli, uint16 fnum,
        prs_mem_free(&rbuf);
        prs_mem_free(&buf );
 
+       cli_connection_unlink(con);
+
        return p;
 }
 
 /****************************************************************************
 enumerate scheduled jobs
 ****************************************************************************/
-BOOL at_enum_jobs(struct cli_state *cli, uint16 fnum, 
-                 char *server_name, uint32 *num_jobs,
+BOOL at_enum_jobs( char *srv_name, uint32 *num_jobs,
                  AT_ENUM_INFO *jobs, char ***commands)
 {
        prs_struct rbuf;
@@ -135,6 +151,13 @@ BOOL at_enum_jobs(struct cli_state *cli, uint16 fnum,
        AT_Q_ENUM_JOBS q_e;
        BOOL p = False;
 
+       struct cli_connection *con = NULL;
+
+       if (!cli_connection_init(srv_name, PIPE_ATSVC, &con))
+       {
+               return False;
+       }
+
        prs_init(&buf , 1024, 4, SAFETY_MARGIN, False);
        prs_init(&rbuf, 0   , 4, SAFETY_MARGIN, True );
 
@@ -143,13 +166,13 @@ BOOL at_enum_jobs(struct cli_state *cli, uint16 fnum,
        DEBUG(4,("Scheduler Enumerate Jobs\n"));
 
        /* store the parameters */
-       make_at_q_enum_jobs(&q_e, server_name);
+       make_at_q_enum_jobs(&q_e, srv_name);
 
        /* turn parameters into data stream */
        at_io_q_enum_jobs("", &q_e, &buf, 0);
 
        /* send the data on \PIPE\ */
-       if (rpc_api_pipe_req(cli, fnum, AT_ENUM_JOBS, &buf, &rbuf))
+       if (rpc_con_pipe_req(con, AT_ENUM_JOBS, &buf, &rbuf))
        {
                AT_R_ENUM_JOBS r_e;
 
@@ -186,13 +209,15 @@ BOOL at_enum_jobs(struct cli_state *cli, uint16 fnum,
        prs_mem_free(&rbuf);
        prs_mem_free(&buf );
 
+       cli_connection_unlink(con);
+
        return p;
 }
 
 /****************************************************************************
 query job information
 ****************************************************************************/
-BOOL at_query_job(struct cli_state *cli, uint16 fnum, char *server_name,
+BOOL at_query_job(char *srv_name,
                  uint32 jobid, AT_JOB_INFO *job, fstring command)
 {
        prs_struct rbuf;
@@ -200,6 +225,13 @@ BOOL at_query_job(struct cli_state *cli, uint16 fnum, char *server_name,
        AT_Q_QUERY_JOB q_q;
        BOOL p = False;
 
+       struct cli_connection *con = NULL;
+
+       if (!cli_connection_init(srv_name, PIPE_ATSVC, &con))
+       {
+               return False;
+       }
+
        prs_init(&buf , 1024, 4, SAFETY_MARGIN, False);
        prs_init(&rbuf, 0   , 4, SAFETY_MARGIN, True );
 
@@ -208,13 +240,13 @@ BOOL at_query_job(struct cli_state *cli, uint16 fnum, char *server_name,
        DEBUG(4,("Scheduler Query Job\n"));
 
        /* store the parameters */
-       make_at_q_query_job(&q_q, server_name, jobid);
+       make_at_q_query_job(&q_q, srv_name, jobid);
 
        /* turn parameters into data stream */
        at_io_q_query_job("", &q_q, &buf, 0);
 
        /* send the data on \PIPE\ */
-       if (rpc_api_pipe_req(cli, fnum, AT_QUERY_JOB, &buf, &rbuf))
+       if (rpc_con_pipe_req(con, AT_QUERY_JOB, &buf, &rbuf))
        {
                AT_R_QUERY_JOB r_q;
 
@@ -239,5 +271,7 @@ BOOL at_query_job(struct cli_state *cli, uint16 fnum, char *server_name,
        prs_mem_free(&rbuf);
        prs_mem_free(&buf );
 
+       cli_connection_unlink(con);
+
        return p;
 }
index 39dc5213cf638d5a8c6b98635090e7fe662d5acd..547ca960536778f5e30bddc8252d798797772d97 100644 (file)
@@ -33,7 +33,6 @@ extern int DEBUGLEVEL;
 
 #define DEBUG_TESTING
 
-extern struct cli_state *smb_cli;
 extern FILE* out_hnd;
 
 
@@ -160,7 +159,6 @@ scheduler add job
 ****************************************************************************/
 void cmd_at(struct client_info *info, int argc, char *argv[])
 {
-       uint16 nt_pipe_fnum;
        fstring dest_wks;
        BOOL add = False;
        BOOL del = False;
@@ -173,6 +171,10 @@ void cmd_at(struct client_info *info, int argc, char *argv[])
        uint8 flags = JOB_NONINTERACTIVE;
        pstring command;
 
+       safe_strcpy(dest_wks, "\\\\", sizeof(dest_wks));
+       safe_strcat(dest_wks, info->dest_host, sizeof(dest_wks));
+       strupper(dest_wks);
+
         while (argc > 1)
        {
                argc--;
@@ -289,14 +291,6 @@ void cmd_at(struct client_info *info, int argc, char *argv[])
                return;
        }
 
-       safe_strcpy(dest_wks, "\\\\", sizeof(dest_wks));
-       safe_strcat(dest_wks, info->dest_host, sizeof(dest_wks));
-       strupper(dest_wks);
-
-       /* open scheduler session. */
-       if (!cli_nt_session_open(smb_cli, PIPE_ATSVC, &nt_pipe_fnum))
-               return;
-
        if (add) /* add job */
        {
                AT_JOB_INFO job;
@@ -311,8 +305,7 @@ void cmd_at(struct client_info *info, int argc, char *argv[])
                display_at_job_info(out_hnd, ACTION_ENUMERATE, &job, command);
                display_at_job_info(out_hnd, ACTION_FOOTER   , &job, command);
 
-               if (at_add_job(smb_cli, nt_pipe_fnum, dest_wks, &job,
-                                    command, &jobid))
+               if (at_add_job(dest_wks, &job, command, &jobid))
                {
                        fprintf(out_hnd, "\tJob ID:      %d\n\n", jobid);
                }
@@ -322,14 +315,12 @@ void cmd_at(struct client_info *info, int argc, char *argv[])
                if (jobid == -1)
                {
                        fprintf(out_hnd, "\tDeleting all jobs.\n\n");
-                       at_del_job(smb_cli, nt_pipe_fnum, dest_wks,
-                                  0, 0xffffffff);
+                       at_del_job(dest_wks, 0, 0xffffffff);
                }
                else
                {
                        fprintf(out_hnd, "\tDeleting job %d.\n\n", jobid);
-                       at_del_job(smb_cli, nt_pipe_fnum, dest_wks,
-                                  jobid, jobid);
+                       at_del_job(dest_wks, jobid, jobid);
                }
 
        }
@@ -339,8 +330,7 @@ void cmd_at(struct client_info *info, int argc, char *argv[])
                char **commands;
                uint32 num_jobs;
 
-               if (at_enum_jobs(smb_cli, nt_pipe_fnum, dest_wks, &num_jobs,
-                            jobs, &commands))
+               if (at_enum_jobs(dest_wks, &num_jobs, jobs, &commands))
                {
                        display_at_enum_info(out_hnd, ACTION_HEADER   , num_jobs, jobs, commands);
                        display_at_enum_info(out_hnd, ACTION_ENUMERATE, num_jobs, jobs, commands);
@@ -353,14 +343,11 @@ void cmd_at(struct client_info *info, int argc, char *argv[])
        {
                AT_JOB_INFO job;
                
-               if (at_query_job(smb_cli, nt_pipe_fnum, dest_wks, jobid, &job, command))
+               if (at_query_job(dest_wks, jobid, &job, command))
                {
                        display_at_job_info(out_hnd, ACTION_HEADER   , &job, command);
                        display_at_job_info(out_hnd, ACTION_ENUMERATE, &job, command);
                        display_at_job_info(out_hnd, ACTION_FOOTER   , &job, command);
                }
        }
-
-       /* close the session */
-       cli_nt_session_close(smb_cli, nt_pipe_fnum);
 }