Lines Matching refs:j

61 static void clear_persist(struct cfjail *j);
62 static int update_jail(struct cfjail *j);
63 static int rdtun_params(struct cfjail *j, int dofail);
64 static void running_jid(struct cfjail *j);
65 static void jail_quoted_warnx(const struct cfjail *j, const char *name_msg,
67 static int jailparam_set_note(const struct cfjail *j, struct jailparam *jp,
69 static void print_jail(FILE *fp, struct cfjail *j, int oldcl, int running);
168 struct cfjail *j; in main() local
419 while ((j = next_jail())) in main()
421 if (j->flags & JF_FAILED) { in main()
423 if (j->comparam == NULL) { in main()
424 dep_done(j, 0); in main()
428 if (!(j->flags & JF_PARAMS)) in main()
430 j->flags |= JF_PARAMS; in main()
432 add_param(j, NULL, IP_ALLOW_DYING, NULL); in main()
433 if (check_intparams(j) < 0) in main()
435 if ((j->flags & (JF_START | JF_SET)) && in main()
436 import_params(j) < 0) in main()
439 if (j->intparams[IP_ALLOW_DYING] && !dying_warned) { in main()
444 if (!j->jid) in main()
445 running_jid(j); in main()
446 if (finish_command(j)) in main()
449 switch (j->flags & JF_OP_MASK) { in main()
455 j->flags = j->jid < 0 in main()
456 ? (j->flags & JF_CLEANUP) | JF_START : JF_SET; in main()
459 if (j->jid < 0 && !(j->flags & JF_CLEANUP)) { in main()
460 jail_quoted_warnx(j, "not found", in main()
462 failed(j); in main()
465 j->flags = rdtun_params(j, 0) in main()
466 ? (j->flags & JF_CLEANUP) | JF_RESTART : JF_SET; in main()
467 if (j->flags == JF_RESTART) in main()
468 dep_reset(j); in main()
471 j->flags = j->jid < 0 ? JF_START : rdtun_params(j, 0) in main()
472 ? (j->flags & JF_CLEANUP) | JF_RESTART : JF_SET; in main()
473 if (j->flags == JF_RESTART) in main()
474 dep_reset(j); in main()
477 switch (j->flags & JF_OP_MASK) { in main()
479 if (j->comparam == NULL) { in main()
480 if (j->jid > 0 && in main()
481 !(j->flags & (JF_DEPEND | JF_WILD))) { in main()
482 jail_quoted_warnx(j, "already exists", in main()
484 failed(j); in main()
487 if (dep_check(j)) in main()
489 if (j->jid > 0) in main()
491 if (j->flags & JF_CLEANUP) { in main()
492 j->flags |= JF_STOP; in main()
493 j->comparam = cleancommands; in main()
495 j->comparam = startcommands; in main()
496 j->comparam = startcommands; in main()
497 j->comstring = NULL; in main()
499 if (next_command(j)) in main()
501 if (j->flags & JF_STOP) in main()
504 clear_persist(j); in main()
506 print_jail(jfp, j, oldcl, 1); in main()
507 dep_done(j, 0); in main()
511 if (j->jid < 0 && !(j->flags & JF_DEPEND)) { in main()
512 jail_quoted_warnx(j, "not found", in main()
514 failed(j); in main()
517 if (dep_check(j)) in main()
519 if (!(j->flags & JF_DEPEND)) { in main()
520 if (rdtun_params(j, 1) < 0 || in main()
521 update_jail(j) < 0) in main()
523 if (verbose >= 0 && (j->name || verbose > 0)) in main()
524 jail_note(j, "updated\n"); in main()
526 dep_done(j, 0); in main()
531 if (j->comparam == NULL) { in main()
532 if (dep_check(j)) in main()
534 if (j->flags & JF_CLEANUP) { in main()
535 j->comparam = j->jid < 0 in main()
537 } else if (j->jid < 0) { in main()
538 if (!(j->flags & (JF_DEPEND|JF_WILD))) { in main()
540 jail_quoted_warnx(j, in main()
542 failed(j); in main()
547 j->comparam = stopcommands; in main()
548 j->comstring = NULL; in main()
549 } else if ((j->flags & JF_FAILED) && j->jid > 0) in main()
551 if (next_command(j)) in main()
554 dep_done(j, 0); in main()
555 if ((j->flags & (JF_START | JF_FAILED)) == JF_START) { in main()
556 j->comparam = NULL; in main()
557 j->flags &= ~(JF_STOP | JF_CLEANUP); in main()
558 dep_reset(j); in main()
559 requeue(j, j->ndeps ? &depend : &ready); in main()
574 failed(struct cfjail *j) in failed() argument
576 j->flags |= JF_FAILED; in failed()
577 TAILQ_REMOVE(j->queue, j, tq); in failed()
578 TAILQ_INSERT_HEAD(&ready, j, tq); in failed()
579 j->queue = &ready; in failed()
622 jail_note(const struct cfjail *j, const char *fmt, ...) in jail_note() argument
635 if (j->name) in jail_note()
636 printf("%s: %s", j->name, cs); in jail_note()
645 jail_warnx(const struct cfjail *j, const char *fmt, ...) in jail_warnx() argument
658 if (j->name) in jail_warnx()
659 warnx("%s: %s", j->name, cs); in jail_warnx()
668 create_jail(struct cfjail *j) in create_jail() argument
679 if ((path = string_param(j->intparams[KP_PATH]))) { in create_jail()
680 if (j->name != NULL && path[0] != '/') { in create_jail()
681 jail_warnx(j, "path %s: not an absolute pathname", in create_jail()
686 jail_warnx(j, "path %s: %s", path, strerror(errno)); in create_jail()
690 jail_warnx(j, "path %s: %s", path, strerror(ENOTDIR)); in create_jail()
699 dopersist = !bool_param(j->intparams[KP_PERSIST]) && in create_jail()
700 (j->intparams[IP_EXEC_START] || j->intparams[IP_COMMAND] || in create_jail()
701 j->intparams[IP_EXEC_POSTSTART]); in create_jail()
703 alloca((j->njp + dopersist) * sizeof(struct jailparam)); in create_jail()
705 jail_warnx(j, "%s", jail_errmsg); in create_jail()
708 for (jp = j->jp; jp < j->jp + j->njp; jp++) in create_jail()
713 j->jid = jailparam_set_note(j, setparams, ns, JAIL_CREATE); in create_jail()
714 if (j->jid < 0) { in create_jail()
715 jail_warnx(j, "%s", jail_errmsg); in create_jail()
716 failed(j); in create_jail()
720 if (j->jid > 0) in create_jail()
721 j->flags |= JF_PERSIST; in create_jail()
723 return j->jid; in create_jail()
730 clear_persist(struct cfjail *j) in clear_persist() argument
735 if (!(j->flags & JF_PERSIST)) in clear_persist()
737 j->flags &= ~JF_PERSIST; in clear_persist()
740 jiov[1].iov_base = &j->jid; in clear_persist()
741 jiov[1].iov_len = sizeof(j->jid); in clear_persist()
748 jail_note(j, "jail_set(JAIL_UPDATE) jid=%d nopersist%s%s\n", in clear_persist()
749 j->jid, jid < 0 ? ": " : "", in clear_persist()
757 update_jail(struct cfjail *j) in update_jail() argument
763 for (jp = j->jp; jp < j->jp + j->njp; jp++) in update_jail()
770 jailparam_import_raw(sjp, &j->jid, sizeof j->jid) < 0) { in update_jail()
771 jail_warnx(j, "%s", jail_errmsg); in update_jail()
772 failed(j); in update_jail()
775 for (jp = j->jp; jp < j->jp + j->njp; jp++) in update_jail()
779 jid = jailparam_set_note(j, setparams, ns, JAIL_UPDATE); in update_jail()
781 jail_warnx(j, "%s", jail_errmsg); in update_jail()
782 failed(j); in update_jail()
792 rdtun_params(struct cfjail *j, int dofail) in rdtun_params() argument
799 if (j->flags & JF_RDTUN) in rdtun_params()
801 j->flags |= JF_RDTUN; in rdtun_params()
803 for (jp = j->jp; jp < j->jp + j->njp; jp++) in rdtun_params()
810 jailparam_import_raw(rtjp, &j->jid, sizeof j->jid) < 0) { in rdtun_params()
811 jail_warnx(j, "%s", jail_errmsg); in rdtun_params()
814 for (jp = j->jp; jp < j->jp + j->njp; jp++) in rdtun_params()
822 for (jp = j->jp; rtjp < rtparams + nrt; jp++) { in rdtun_params()
844 jail_warnx(j, "%s cannot be " in rdtun_params()
847 failed(j); in rdtun_params()
867 running_jid(struct cfjail *j) in running_jid() argument
874 if ((pval = string_param(j->intparams[KP_JID]))) { in running_jid()
876 j->jid = -1; in running_jid()
883 } else if ((pval = string_param(j->intparams[KP_NAME]))) { in running_jid()
890 j->jid = -1; in running_jid()
893 j->jid = jail_get(jiov, 2, 0); in running_jid()
897 jail_quoted_warnx(const struct cfjail *j, const char *name_msg, in jail_quoted_warnx() argument
902 if ((pval = j->name) || (pval = string_param(j->intparams[KP_JID])) || in jail_quoted_warnx()
903 (pval = string_param(j->intparams[KP_NAME]))) in jail_quoted_warnx()
913 jailparam_set_note(const struct cfjail *j, struct jailparam *jp, unsigned njp, in jailparam_set_note() argument
922 jail_note(j, "jail_set(%s)", in jailparam_set_note()
947 print_jail(FILE *fp, struct cfjail *j, int oldcl, int running) in print_jail() argument
954 fprintf(fp, "%d%s", j->jid, separator); in print_jail()
955 print_param(fp, j->intparams[KP_PATH], ',', 0); in print_jail()
957 print_param(fp, j->intparams[KP_HOST_HOSTNAME], ',', 0); in print_jail()
960 print_param(fp, j->intparams[KP_IP4_ADDR], ',', 0); in print_jail()
962 if (j->intparams[KP_IP4_ADDR] && in print_jail()
963 !TAILQ_EMPTY(&j->intparams[KP_IP4_ADDR]->val) && in print_jail()
964 j->intparams[KP_IP6_ADDR] && in print_jail()
965 !TAILQ_EMPTY(&j->intparams[KP_IP6_ADDR]->val)) in print_jail()
970 print_param(fp, j->intparams[KP_IP6_ADDR], ',', 0); in print_jail()
973 print_param(fp, j->intparams[IP_COMMAND], ' ', 0); in print_jail()
977 fprintf(fp, "jid=%d", j->jid); in print_jail()
980 TAILQ_FOREACH(p, &j->params, tq) in print_jail()
998 struct cfjail *j; in show_jails() local
1000 TAILQ_FOREACH(j, &cfjails, tq) in show_jails()
1001 print_jail(stdout, j, 0, 0); in show_jails()