Lines Matching refs:limits

323 	nvlist_t *limits, *nvl;
326 if (cap_limit_get(chan, &limits) < 0)
328 if (limits == NULL) {
329 limits = nvlist_create(0);
331 if (nvlist_exists_nvlist(limits, "cmds"))
332 nvlist_free_nvlist(limits, "cmds");
337 nvlist_move_nvlist(limits, "cmds", nvl);
338 return (cap_limit_set(chan, limits));
345 nvlist_t *limits, *nvl;
348 if (cap_limit_get(chan, &limits) < 0)
350 if (limits == NULL) {
351 limits = nvlist_create(0);
353 if (nvlist_exists_nvlist(limits, "fields"))
354 nvlist_free_nvlist(limits, "fields");
359 nvlist_move_nvlist(limits, "fields", nvl);
360 return (cap_limit_set(chan, limits));
367 nvlist_t *limits, *users;
372 if (cap_limit_get(chan, &limits) < 0)
374 if (limits == NULL) {
375 limits = nvlist_create(0);
377 if (nvlist_exists_nvlist(limits, "users"))
378 nvlist_free_nvlist(limits, "users");
391 nvlist_move_nvlist(limits, "users", users);
392 return (cap_limit_set(chan, limits));
400 pwd_allowed_cmd(const nvlist_t *limits, const char *cmd)
403 if (limits == NULL)
410 if (!nvlist_exists_nvlist(limits, "cmds"))
413 limits = nvlist_get_nvlist(limits, "cmds");
414 return (nvlist_exists_null(limits, cmd));
436 pwd_allowed_user(const nvlist_t *limits, const char *uname, uid_t uid)
442 if (limits == NULL)
448 if (!nvlist_exists_nvlist(limits, "users"))
451 limits = nvlist_get_nvlist(limits, "users");
453 while ((name = nvlist_next(limits, &type, &cookie)) != NULL) {
457 nvlist_get_number(limits, name) == (uint64_t)uid) {
463 strcmp(nvlist_get_string(limits, name),
506 pwd_allowed_field(const nvlist_t *limits, const char *field)
509 if (limits == NULL)
515 if (!nvlist_exists_nvlist(limits, "fields"))
518 limits = nvlist_get_nvlist(limits, "fields");
519 return (nvlist_exists_null(limits, field));
541 pwd_pack(const nvlist_t *limits, const struct passwd *pwd, nvlist_t *nvl)
551 if (!pwd_allowed_user(limits, pwd->pw_name, pwd->pw_uid))
556 if (pwd_allowed_field(limits, "pw_name")) {
562 if (pwd_allowed_field(limits, "pw_uid")) {
568 if (pwd_allowed_field(limits, "pw_gid")) {
574 if (pwd_allowed_field(limits, "pw_change")) {
580 if (pwd_allowed_field(limits, "pw_passwd")) {
586 if (pwd_allowed_field(limits, "pw_class")) {
592 if (pwd_allowed_field(limits, "pw_gecos")) {
598 if (pwd_allowed_field(limits, "pw_dir")) {
604 if (pwd_allowed_field(limits, "pw_shell")) {
610 if (pwd_allowed_field(limits, "pw_expire")) {
622 pwd_getpwent(const nvlist_t *limits, const nvlist_t *nvlin __unused,
632 if (pwd_pack(limits, pwd, nvlout))
640 pwd_getpwnam(const nvlist_t *limits, const nvlist_t *nvlin, nvlist_t *nvlout)
655 (void)pwd_pack(limits, pwd, nvlout);
661 pwd_getpwuid(const nvlist_t *limits, const nvlist_t *nvlin, nvlist_t *nvlout)
676 (void)pwd_pack(limits, pwd, nvlout);
682 pwd_setpassent(const nvlist_t *limits __unused, const nvlist_t *nvlin,
696 pwd_setpwent(const nvlist_t *limits __unused, const nvlist_t *nvlin __unused,
706 pwd_endpwent(const nvlist_t *limits __unused, const nvlist_t *nvlin __unused,
718 const nvlist_t *limits;
740 limits = nvlist_get_nvlist(newlimits, name);
742 error = pwd_allowed_cmds(oldlimits, limits);
744 error = pwd_allowed_fields(oldlimits, limits);
746 error = pwd_allowed_users(oldlimits, limits);
757 pwd_command(const char *cmd, const nvlist_t *limits, nvlist_t *nvlin,
762 if (!pwd_allowed_cmd(limits, cmd))
766 error = pwd_getpwent(limits, nvlin, nvlout);
768 error = pwd_getpwnam(limits, nvlin, nvlout);
770 error = pwd_getpwuid(limits, nvlin, nvlout);
772 error = pwd_setpassent(limits, nvlin, nvlout);
774 error = pwd_setpwent(limits, nvlin, nvlout);
776 error = pwd_endpwent(limits, nvlin, nvlout);