Lines Matching defs:limits

369 	nvlist_t *limits, *nvl;
372 if (cap_limit_get(chan, &limits) < 0)
374 if (limits == NULL) {
375 limits = nvlist_create(0);
377 if (nvlist_exists_nvlist(limits, "cmds"))
378 nvlist_free_nvlist(limits, "cmds");
383 nvlist_move_nvlist(limits, "cmds", nvl);
384 return (cap_limit_set(chan, limits));
391 nvlist_t *limits, *nvl;
394 if (cap_limit_get(chan, &limits) < 0)
396 if (limits == NULL) {
397 limits = nvlist_create(0);
399 if (nvlist_exists_nvlist(limits, "fields"))
400 nvlist_free_nvlist(limits, "fields");
405 nvlist_move_nvlist(limits, "fields", nvl);
406 return (cap_limit_set(chan, limits));
413 nvlist_t *limits, *groups;
418 if (cap_limit_get(chan, &limits) < 0)
420 if (limits == NULL) {
421 limits = nvlist_create(0);
423 if (nvlist_exists_nvlist(limits, "groups"))
424 nvlist_free_nvlist(limits, "groups");
437 nvlist_move_nvlist(limits, "groups", groups);
438 return (cap_limit_set(chan, limits));
445 grp_allowed_cmd(const nvlist_t *limits, const char *cmd)
448 if (limits == NULL)
455 if (!nvlist_exists_nvlist(limits, "cmds"))
458 limits = nvlist_get_nvlist(limits, "cmds");
459 return (nvlist_exists_null(limits, cmd));
481 grp_allowed_group(const nvlist_t *limits, const char *gname, gid_t gid)
487 if (limits == NULL)
493 if (!nvlist_exists_nvlist(limits, "groups"))
496 limits = nvlist_get_nvlist(limits, "groups");
498 while ((name = nvlist_next(limits, &type, &cookie)) != NULL) {
502 nvlist_get_number(limits, name) == (uint64_t)gid) {
508 strcmp(nvlist_get_string(limits, name),
551 grp_allowed_field(const nvlist_t *limits, const char *field)
554 if (limits == NULL)
560 if (!nvlist_exists_nvlist(limits, "fields"))
563 limits = nvlist_get_nvlist(limits, "fields");
564 return (nvlist_exists_null(limits, field));
586 grp_pack(const nvlist_t *limits, const struct group *grp, nvlist_t *nvl)
597 if (!grp_allowed_group(limits, grp->gr_name, grp->gr_gid))
600 if (grp_allowed_field(limits, "gr_name"))
604 if (grp_allowed_field(limits, "gr_passwd"))
608 if (grp_allowed_field(limits, "gr_gid"))
612 if (grp_allowed_field(limits, "gr_mem") && grp->gr_mem[0] != NULL) {
628 grp_getgrent(const nvlist_t *limits, const nvlist_t *nvlin __unused,
638 if (grp_pack(limits, grp, nvlout))
646 grp_getgrnam(const nvlist_t *limits, const nvlist_t *nvlin, nvlist_t *nvlout)
661 (void)grp_pack(limits, grp, nvlout);
667 grp_getgrgid(const nvlist_t *limits, const nvlist_t *nvlin, nvlist_t *nvlout)
682 (void)grp_pack(limits, grp, nvlout);
688 grp_setgroupent(const nvlist_t *limits __unused, const nvlist_t *nvlin,
702 grp_setgrent(const nvlist_t *limits __unused, const nvlist_t *nvlin __unused,
712 grp_endgrent(const nvlist_t *limits __unused, const nvlist_t *nvlin __unused,
724 const nvlist_t *limits;
746 limits = nvlist_get_nvlist(newlimits, name);
748 error = grp_allowed_cmds(oldlimits, limits);
750 error = grp_allowed_fields(oldlimits, limits);
752 error = grp_allowed_groups(oldlimits, limits);
763 grp_command(const char *cmd, const nvlist_t *limits, nvlist_t *nvlin,
768 if (!grp_allowed_cmd(limits, cmd))
772 error = grp_getgrent(limits, nvlin, nvlout);
774 error = grp_getgrnam(limits, nvlin, nvlout);
776 error = grp_getgrgid(limits, nvlin, nvlout);
778 error = grp_setgroupent(limits, nvlin, nvlout);
780 error = grp_setgrent(limits, nvlin, nvlout);
782 error = grp_endgrent(limits, nvlin, nvlout);