summaryrefslogtreecommitdiffstats
path: root/usr.sbin/jail/jail.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/jail/jail.c')
-rw-r--r--usr.sbin/jail/jail.c32
1 files changed, 25 insertions, 7 deletions
diff --git a/usr.sbin/jail/jail.c b/usr.sbin/jail/jail.c
index 513a3b8..227280f 100644
--- a/usr.sbin/jail/jail.c
+++ b/usr.sbin/jail/jail.c
@@ -62,6 +62,8 @@ static void clear_persist(struct cfjail *j);
static int update_jail(struct cfjail *j);
static int rdtun_params(struct cfjail *j, int dofail);
static void running_jid(struct cfjail *j, int dflag);
+static void jail_quoted_warnx(const struct cfjail *j, const char *name_msg,
+ const char *noname_msg);
static int jailparam_set_note(const struct cfjail *j, struct jailparam *jp,
unsigned njp, int flags);
static void print_jail(FILE *fp, struct cfjail *j, int oldcl);
@@ -317,10 +319,10 @@ main(int argc, char **argv)
error = 0;
if (op == JF_STOP) {
for (i = 0; i < argc; i++)
- if (start_state(argv[i], op, Rflag) < 0)
+ if (start_state(argv[i], docf, op, Rflag) < 0)
error = 1;
} else {
- if (start_state(docf ? argv[0] : NULL, op, 0) < 0)
+ if (start_state(argv[0], docf, op, 0) < 0)
exit(1);
}
@@ -376,7 +378,8 @@ main(int argc, char **argv)
break;
case JF_SET_RESTART:
if (j->jid < 0) {
- warnx("\"%s\" not found", j->name);
+ jail_quoted_warnx(j, "not found",
+ "no jail specified");
failed(j);
continue;
}
@@ -396,7 +399,8 @@ main(int argc, char **argv)
if (j->comparam == NULL) {
if (j->jid > 0 &&
!(j->flags & (JF_DEPEND | JF_WILD))) {
- warnx("\"%s\" already exists", j->name);
+ jail_quoted_warnx(j, "already exists",
+ NULL);
failed(j);
continue;
}
@@ -420,7 +424,8 @@ main(int argc, char **argv)
case JF_SET:
if (j->jid < 0 && !(j->flags & JF_DEPEND)) {
- warnx("\"%s\" not found", j->name);
+ jail_quoted_warnx(j, "not found",
+ "no jail specified");
failed(j);
continue;
}
@@ -444,8 +449,8 @@ main(int argc, char **argv)
if (j->jid < 0) {
if (!(j->flags & (JF_DEPEND | JF_WILD))
&& verbose >= 0)
- warnx("\"%s\" not found",
- j->name);
+ jail_quoted_warnx(j,
+ "not found", NULL);
goto jail_remove_done;
}
j->comparam = stopcommands;
@@ -834,6 +839,19 @@ running_jid(struct cfjail *j, int dflag)
j->jid = jail_get(jiov, 2, dflag ? JAIL_DYING : 0);
}
+static void
+jail_quoted_warnx(const struct cfjail *j, const char *name_msg,
+ const char *noname_msg)
+{
+ const char *pval;
+
+ if ((pval = j->name) || (pval = string_param(j->intparams[KP_JID])) ||
+ (pval = string_param(j->intparams[KP_NAME])))
+ warnx("\"%s\" %s", pval, name_msg);
+ else
+ warnx("%s", noname_msg);
+}
+
/*
* Set jail parameters and possible print them out.
*/
OpenPOWER on IntegriCloud