Lines Matching full:limits
368 nvlist_t *limits, *nvl; in cap_grp_limit_cmds() local
371 if (cap_limit_get(chan, &limits) < 0) in cap_grp_limit_cmds()
373 if (limits == NULL) { in cap_grp_limit_cmds()
374 limits = nvlist_create(0); in cap_grp_limit_cmds()
376 if (nvlist_exists_nvlist(limits, "cmds")) in cap_grp_limit_cmds()
377 nvlist_free_nvlist(limits, "cmds"); in cap_grp_limit_cmds()
382 nvlist_move_nvlist(limits, "cmds", nvl); in cap_grp_limit_cmds()
383 return (cap_limit_set(chan, limits)); in cap_grp_limit_cmds()
390 nvlist_t *limits, *nvl; in cap_grp_limit_fields() local
393 if (cap_limit_get(chan, &limits) < 0) in cap_grp_limit_fields()
395 if (limits == NULL) { in cap_grp_limit_fields()
396 limits = nvlist_create(0); in cap_grp_limit_fields()
398 if (nvlist_exists_nvlist(limits, "fields")) in cap_grp_limit_fields()
399 nvlist_free_nvlist(limits, "fields"); in cap_grp_limit_fields()
404 nvlist_move_nvlist(limits, "fields", nvl); in cap_grp_limit_fields()
405 return (cap_limit_set(chan, limits)); in cap_grp_limit_fields()
412 nvlist_t *limits, *groups; in cap_grp_limit_groups() local
417 if (cap_limit_get(chan, &limits) < 0) in cap_grp_limit_groups()
419 if (limits == NULL) { in cap_grp_limit_groups()
420 limits = nvlist_create(0); in cap_grp_limit_groups()
422 if (nvlist_exists_nvlist(limits, "groups")) in cap_grp_limit_groups()
423 nvlist_free_nvlist(limits, "groups"); in cap_grp_limit_groups()
436 nvlist_move_nvlist(limits, "groups", groups); in cap_grp_limit_groups()
437 return (cap_limit_set(chan, limits)); in cap_grp_limit_groups()
444 grp_allowed_cmd(const nvlist_t *limits, const char *cmd) in grp_allowed_cmd() argument
447 if (limits == NULL) in grp_allowed_cmd()
454 if (!nvlist_exists_nvlist(limits, "cmds")) in grp_allowed_cmd()
457 limits = nvlist_get_nvlist(limits, "cmds"); in grp_allowed_cmd()
458 return (nvlist_exists_null(limits, cmd)); in grp_allowed_cmd()
480 grp_allowed_group(const nvlist_t *limits, const char *gname, gid_t gid) in grp_allowed_group() argument
486 if (limits == NULL) in grp_allowed_group()
492 if (!nvlist_exists_nvlist(limits, "groups")) in grp_allowed_group()
495 limits = nvlist_get_nvlist(limits, "groups"); in grp_allowed_group()
497 while ((name = nvlist_next(limits, &type, &cookie)) != NULL) { in grp_allowed_group()
501 nvlist_get_number(limits, name) == (uint64_t)gid) { in grp_allowed_group()
507 strcmp(nvlist_get_string(limits, name), in grp_allowed_group()
550 grp_allowed_field(const nvlist_t *limits, const char *field) in grp_allowed_field() argument
553 if (limits == NULL) in grp_allowed_field()
559 if (!nvlist_exists_nvlist(limits, "fields")) in grp_allowed_field()
562 limits = nvlist_get_nvlist(limits, "fields"); in grp_allowed_field()
563 return (nvlist_exists_null(limits, field)); in grp_allowed_field()
585 grp_pack(const nvlist_t *limits, const struct group *grp, nvlist_t *nvl) in grp_pack() argument
596 if (!grp_allowed_group(limits, grp->gr_name, grp->gr_gid)) in grp_pack()
599 if (grp_allowed_field(limits, "gr_name")) in grp_pack()
603 if (grp_allowed_field(limits, "gr_passwd")) in grp_pack()
607 if (grp_allowed_field(limits, "gr_gid")) in grp_pack()
611 if (grp_allowed_field(limits, "gr_mem") && grp->gr_mem[0] != NULL) { in grp_pack()
627 grp_getgrent(const nvlist_t *limits, const nvlist_t *nvlin __unused, in grp_getgrent() argument
637 if (grp_pack(limits, grp, nvlout)) in grp_getgrent()
645 grp_getgrnam(const nvlist_t *limits, const nvlist_t *nvlin, nvlist_t *nvlout) in grp_getgrnam() argument
660 (void)grp_pack(limits, grp, nvlout); in grp_getgrnam()
666 grp_getgrgid(const nvlist_t *limits, const nvlist_t *nvlin, nvlist_t *nvlout) in grp_getgrgid() argument
681 (void)grp_pack(limits, grp, nvlout); in grp_getgrgid()
687 grp_setgroupent(const nvlist_t *limits __unused, const nvlist_t *nvlin, in grp_setgroupent()
701 grp_setgrent(const nvlist_t *limits __unused, const nvlist_t *nvlin __unused, in grp_setgrent()
711 grp_endgrent(const nvlist_t *limits __unused, const nvlist_t *nvlin __unused, in grp_endgrent()
723 const nvlist_t *limits; in grp_limit() local
745 limits = nvlist_get_nvlist(newlimits, name); in grp_limit()
747 error = grp_allowed_cmds(oldlimits, limits); in grp_limit()
749 error = grp_allowed_fields(oldlimits, limits); in grp_limit()
751 error = grp_allowed_groups(oldlimits, limits); in grp_limit()
762 grp_command(const char *cmd, const nvlist_t *limits, nvlist_t *nvlin, in grp_command() argument
767 if (!grp_allowed_cmd(limits, cmd)) in grp_command()
771 error = grp_getgrent(limits, nvlin, nvlout); in grp_command()
773 error = grp_getgrnam(limits, nvlin, nvlout); in grp_command()
775 error = grp_getgrgid(limits, nvlin, nvlout); in grp_command()
777 error = grp_setgroupent(limits, nvlin, nvlout); in grp_command()
779 error = grp_setgrent(limits, nvlin, nvlout); in grp_command()
781 error = grp_endgrent(limits, nvlin, nvlout); in grp_command()