gctl_get_class, gctl_get_geom and gctl_get_provider: provide feedback
when the requested argument is missing. Reviewed by: cem MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D25738
This commit is contained in:
parent
9d6d8bf8c7
commit
0ab851aac3
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=363410
@ -396,12 +396,15 @@ gctl_get_class(struct gctl_req *req, char const *arg)
|
|||||||
struct g_class *cp;
|
struct g_class *cp;
|
||||||
|
|
||||||
p = gctl_get_asciiparam(req, arg);
|
p = gctl_get_asciiparam(req, arg);
|
||||||
if (p == NULL)
|
if (p == NULL) {
|
||||||
|
gctl_error(req, "Missing %s argument", arg);
|
||||||
return (NULL);
|
return (NULL);
|
||||||
|
}
|
||||||
LIST_FOREACH(cp, &g_classes, class) {
|
LIST_FOREACH(cp, &g_classes, class) {
|
||||||
if (!strcmp(p, cp->name))
|
if (!strcmp(p, cp->name))
|
||||||
return (cp);
|
return (cp);
|
||||||
}
|
}
|
||||||
|
gctl_error(req, "Class not found: \"%s\"", p);
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -413,8 +416,10 @@ gctl_get_geom(struct gctl_req *req, struct g_class *mpr, char const *arg)
|
|||||||
struct g_geom *gp;
|
struct g_geom *gp;
|
||||||
|
|
||||||
p = gctl_get_asciiparam(req, arg);
|
p = gctl_get_asciiparam(req, arg);
|
||||||
if (p == NULL)
|
if (p == NULL) {
|
||||||
|
gctl_error(req, "Missing %s argument", arg);
|
||||||
return (NULL);
|
return (NULL);
|
||||||
|
}
|
||||||
LIST_FOREACH(mp, &g_classes, class) {
|
LIST_FOREACH(mp, &g_classes, class) {
|
||||||
if (mpr != NULL && mpr != mp)
|
if (mpr != NULL && mpr != mp)
|
||||||
continue;
|
continue;
|
||||||
@ -434,8 +439,10 @@ gctl_get_provider(struct gctl_req *req, char const *arg)
|
|||||||
struct g_provider *pp;
|
struct g_provider *pp;
|
||||||
|
|
||||||
p = gctl_get_asciiparam(req, arg);
|
p = gctl_get_asciiparam(req, arg);
|
||||||
if (p == NULL)
|
if (p == NULL) {
|
||||||
|
gctl_error(req, "Missing '%s' argument", arg);
|
||||||
return (NULL);
|
return (NULL);
|
||||||
|
}
|
||||||
pp = g_provider_by_name(p);
|
pp = g_provider_by_name(p);
|
||||||
if (pp != NULL)
|
if (pp != NULL)
|
||||||
return (pp);
|
return (pp);
|
||||||
@ -453,10 +460,8 @@ g_ctl_req(void *arg, int flag __unused)
|
|||||||
g_topology_assert();
|
g_topology_assert();
|
||||||
req = arg;
|
req = arg;
|
||||||
mp = gctl_get_class(req, "class");
|
mp = gctl_get_class(req, "class");
|
||||||
if (mp == NULL) {
|
if (mp == NULL)
|
||||||
gctl_error(req, "Class not found");
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
if (mp->ctlreq == NULL) {
|
if (mp->ctlreq == NULL) {
|
||||||
gctl_error(req, "Class takes no requests");
|
gctl_error(req, "Class takes no requests");
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user