Lines Matching refs:cmd

44 static int execute_remote(command_t *cmd, int (*func)(command_t *cmd));
45 static int process_jailspec(command_t *cmd, const char *spec);
50 command_t cmd; in main() local
55 rc = process_cmd(&cmd, stdout, ac, av); in main()
56 cmd.cmdline = 1; /* commanded from front-end */ in main()
57 cmd.commanded = 1; /* commanded action (vs automatic) */ in main()
59 rc = execute_cmd(&cmd); in main()
60 free_cmd(&cmd); in main()
66 process_cmd(command_t *cmd, FILE *fp, int ac, char **av) in process_cmd() argument
77 bzero(cmd, sizeof(*cmd)); in process_cmd()
78 cmd->fp = fp; /* error and output reporting */ in process_cmd()
79 cmd->logfd = -1; in process_cmd()
80 sreplace(&cmd->piddir, "/var/run"); /* must not be NULL */ in process_cmd()
81 cmd->termkill_timo = -1; /* will use default value */ in process_cmd()
82 cmd->orig_ac = ac; in process_cmd()
83 cmd->orig_av = av; in process_cmd()
84 cmd->empty_label = 1; in process_cmd()
93 cmd->debug = 1; in process_cmd()
94 cmd->foreground = 1; in process_cmd()
97 cmd->foreground = 1; in process_cmd()
100 execute_help(cmd); in process_cmd()
104 sreplace(&cmd->piddir, optarg); in process_cmd()
107 cmd->restart_some = 1; in process_cmd()
108 cmd->restart_all = 0; in process_cmd()
109 cmd->restart_timo = strtol(optarg, NULL, 0); in process_cmd()
112 cmd->restart_some = 0; in process_cmd()
113 cmd->restart_all = 1; in process_cmd()
114 cmd->restart_timo = strtol(optarg, NULL, 0); in process_cmd()
117 cmd->exit_mode = 1; in process_cmd()
120 cmd->sync_mode = 1; in process_cmd()
123 cmd->termkill_timo = strtoul(optarg, NULL, 0); in process_cmd()
137 cmd->uid_mode = 1; in process_cmd()
138 sfree(&cmd->pwent.pw_name); in process_cmd()
139 sfree(&cmd->pwent.pw_passwd); in process_cmd()
140 sfree(&cmd->pwent.pw_class); in process_cmd()
141 sfree(&cmd->pwent.pw_gecos); in process_cmd()
142 sfree(&cmd->pwent.pw_dir); in process_cmd()
143 sfree(&cmd->pwent.pw_shell); in process_cmd()
144 cmd->pwent = *pwent; in process_cmd()
145 sdup(&cmd->pwent.pw_name); in process_cmd()
146 sdup(&cmd->pwent.pw_passwd); in process_cmd()
147 sdup(&cmd->pwent.pw_class); in process_cmd()
148 sdup(&cmd->pwent.pw_gecos); in process_cmd()
149 sdup(&cmd->pwent.pw_dir); in process_cmd()
150 sdup(&cmd->pwent.pw_shell); in process_cmd()
165 cmd->gid_mode = 1; in process_cmd()
166 sfree(&cmd->grent.gr_name); in process_cmd()
167 sfree(&cmd->grent.gr_passwd); in process_cmd()
168 afree(&cmd->grent.gr_mem); in process_cmd()
169 cmd->grent = *grent; in process_cmd()
170 sdup(&cmd->grent.gr_name); in process_cmd()
171 sdup(&cmd->grent.gr_passwd); in process_cmd()
172 adup(&cmd->grent.gr_mem); in process_cmd()
198 cmd->groups[i++] = grent->gr_gid; in process_cmd()
204 cmd->ngroups = i; in process_cmd()
207 sreplace(&cmd->logfile, optarg); in process_cmd()
210 sreplace(&cmd->rootdir, optarg); in process_cmd()
213 cmd->mountdev = 1; in process_cmd()
216 sreplace(&cmd->jaildir, optarg); in process_cmd()
219 rc = process_jailspec(cmd, optarg); in process_cmd()
224 sreplace(&cmd->proctitle, optarg); in process_cmd()
227 cmd->restart_per = 60; in process_cmd()
229 &cmd->restart_count, in process_cmd()
230 &cmd->restart_per) < 1) { in process_cmd()
250 cmd->directive = strdup(av[i]); in process_cmd()
253 cmd->empty_label = 0; in process_cmd()
255 sfree(&cmd->label); in process_cmd()
257 cmd->label = strdup(av[i]); in process_cmd()
259 cmd->ext_av = av + i; in process_cmd()
260 cmd->ext_ac = ac - i; in process_cmd()
261 adup(&cmd->ext_av); in process_cmd()
276 execute_cmd(command_t *cmd) in execute_cmd() argument
281 directive = cmd->directive; in execute_cmd()
289 if (cmd->empty_label) { in execute_cmd()
296 fprintf(cmd->fp, in execute_cmd()
310 rc = execute_init(cmd); in execute_cmd()
312 rc = execute_help(cmd); in execute_cmd()
314 rc = execute_remote(cmd, execute_start); in execute_cmd()
316 rc = execute_remote(cmd, execute_stop); in execute_cmd()
318 cmd->restart_some = 0; in execute_cmd()
319 cmd->restart_all = 1; in execute_cmd()
320 rc = execute_remote(cmd, execute_stop); in execute_cmd()
322 rc = execute_remote(cmd, execute_restart); in execute_cmd()
324 cmd->restart_some = 0; in execute_cmd()
325 cmd->restart_all = 1; /* stop everything */ in execute_cmd()
326 cmd->force_remove_files = 1; in execute_cmd()
327 rc = execute_remote(cmd, execute_exit); in execute_cmd()
329 cmd->restart_some = 0; in execute_cmd()
330 cmd->restart_all = 1; /* stop everything */ in execute_cmd()
331 cmd->termkill_timo = 0; /* force immediate SIGKILL */ in execute_cmd()
332 cmd->force_remove_files = 1; in execute_cmd()
333 rc = execute_remote(cmd, execute_exit); in execute_cmd()
335 rc = execute_remote(cmd, execute_list); in execute_cmd()
337 rc = execute_remote(cmd, execute_status); in execute_cmd()
339 rc = execute_remote(cmd, execute_log); in execute_cmd()
341 cmd->tail_mode = 1; in execute_cmd()
342 rc = execute_remote(cmd, execute_log); in execute_cmd()
344 cmd->tail_mode = 2; in execute_cmd()
345 rc = execute_remote(cmd, execute_log); in execute_cmd()
347 rc = execute_remote(cmd, execute_logfile); in execute_cmd()
349 fprintf(cmd->fp, "Unknown directive: %s\n", directive); in execute_cmd()
357 execute_remote(command_t *cmd, int (*func)(command_t *cmd)) in execute_remote() argument
372 if (cmd->cmdline == 0) { in execute_remote()
373 return (func(cmd)); in execute_remote()
380 if ((dir = opendir(cmd->piddir)) == NULL) { in execute_remote()
381 fprintf(cmd->fp, "Unable to scan \"%s\"\n", cmd->piddir); in execute_remote()
386 cmdlen = (cmd->label ? strlen(cmd->label) : 0); in execute_remote()
416 (cmdlen <= len && strncmp(cmd->label, plab, cmdlen) == 0)) { in execute_remote()
417 remote_execute(cmd, plab); in execute_remote()
432 free_cmd(command_t *cmd) in free_cmd() argument
434 sfree(&cmd->piddir); in free_cmd()
436 sfree(&cmd->pwent.pw_name); in free_cmd()
437 sfree(&cmd->pwent.pw_passwd); in free_cmd()
438 sfree(&cmd->pwent.pw_class); in free_cmd()
439 sfree(&cmd->pwent.pw_gecos); in free_cmd()
440 sfree(&cmd->pwent.pw_dir); in free_cmd()
441 sfree(&cmd->pwent.pw_shell); in free_cmd()
443 sfree(&cmd->grent.gr_name); in free_cmd()
444 sfree(&cmd->grent.gr_passwd); in free_cmd()
445 afree(&cmd->grent.gr_mem); in free_cmd()
447 sfree(&cmd->logfile); in free_cmd()
448 sfree(&cmd->rootdir); in free_cmd()
449 sfree(&cmd->jaildir); in free_cmd()
450 sfree(&cmd->proctitle); in free_cmd()
451 sfree(&cmd->directive); in free_cmd()
452 sfree(&cmd->label); in free_cmd()
453 afree(&cmd->ext_av); in free_cmd()
455 if (cmd->logfd >= 0) { in free_cmd()
456 close(cmd->logfd); in free_cmd()
457 cmd->logfd = -1; in free_cmd()
460 bzero(cmd, sizeof(*cmd)); in free_cmd()
465 process_jailspec(command_t *cmd, const char *spec) in process_jailspec() argument
474 cmd->jail_clean = 1; in process_jailspec()
478 fprintf(cmd->fp, "jail-spec '%s' not understood\n", in process_jailspec()