summaryrefslogtreecommitdiff
path: root/source3/rpcclient/cmd_atsvc.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/rpcclient/cmd_atsvc.c')
-rw-r--r--source3/rpcclient/cmd_atsvc.c46
1 files changed, 26 insertions, 20 deletions
diff --git a/source3/rpcclient/cmd_atsvc.c b/source3/rpcclient/cmd_atsvc.c
index b10c55ad8a..5c5986eaa0 100644
--- a/source3/rpcclient/cmd_atsvc.c
+++ b/source3/rpcclient/cmd_atsvc.c
@@ -169,7 +169,6 @@ scheduler add job
void cmd_at(struct client_info *info, int argc, char *argv[])
{
uint16 nt_pipe_fnum;
- pstring temp;
fstring dest_wks;
BOOL add = False;
BOOL del = False;
@@ -182,33 +181,36 @@ void cmd_at(struct client_info *info, int argc, char *argv[])
uint8 flags = JOB_NONINTERACTIVE;
pstring command;
- while (next_token(NULL, temp, NULL, sizeof(temp)))
+ while (argc > 1)
{
- if (checkopt(temp, "DELETE", NULL))
+ argc--;
+ argv++;
+
+ if (checkopt(argv[0], "DELETE", NULL))
{
del = True;
continue;
}
- else if (checkopt(temp, "YES", NULL))
+ else if (checkopt(argv[0], "YES", NULL))
{
/* Compatibility */
continue;
}
- jobid = strtol(temp, &p, 10);
+ jobid = strtol(argv[0], &p, 10);
if (*p == 0) /* Entirely numeric field */
continue;
- if (!strcasecmp(temp, "NOW"))
+ if (!strcasecmp(argv[0], "NOW"))
{
if (!at_soon(dest_wks, &hours, &minutes, &seconds))
{
return;
}
}
- else if (sscanf(temp, "%d:%d:%d", &hours, &minutes, &seconds) >= 2)
+ else if (sscanf(argv[0], "%d:%d:%d", &hours, &minutes, &seconds) >= 2)
{
- p = strchr(temp, 0);
+ p = strchr(argv[0], 0);
if (!strcasecmp(p-2, "AM"))
{
@@ -236,24 +238,26 @@ void cmd_at(struct client_info *info, int argc, char *argv[])
command[0] = 0;
p = NULL;
- if (!next_token(NULL, temp, NULL, sizeof(temp)))
- break;
+ if (argc <= 1) break;
+ argc--;
+ argv++;
- if (checkopt(temp, "INTERACTIVE", NULL))
+ if (checkopt(argv[0], "INTERACTIVE", NULL))
{
flags &= ~JOB_NONINTERACTIVE;
- if (!next_token(NULL, temp, NULL, sizeof(temp)))
- break;
+ if (argc <= 1) break;
+ argc--;
+ argv++;
}
- if (checkopt(temp, "EVERY", &p))
+ if (checkopt(argv[0], "EVERY", &p))
{
flags |= JOB_PERIODIC;
}
else
{
- checkopt(temp, "NEXT", &p);
+ checkopt(argv[0], "NEXT", &p);
}
if (p != NULL)
@@ -268,16 +272,18 @@ void cmd_at(struct client_info *info, int argc, char *argv[])
weekdays = 0x7F;
}
- if (!next_token(NULL, temp, NULL, sizeof(temp)))
- break;
+ if (argc <= 1) break;
+ argc--;
+ argv++;
}
while (True)
{
- safe_strcat(command, temp, sizeof(command));
+ safe_strcat(command, argv[0], sizeof(command));
- if (!next_token(NULL, temp, NULL, sizeof(temp)))
- break;
+ if (argc <= 1) break;
+ argc--;
+ argv++;
safe_strcat(command, " ", sizeof(command));
}