Lines Matching refs:limits

322 	nvlist_t *limits, *nvl;
325 if (cap_limit_get(chan, &limits) < 0)
327 if (limits == NULL) {
328 limits = nvlist_create(0);
330 if (nvlist_exists_nvlist(limits, "cmds"))
331 nvlist_free_nvlist(limits, "cmds");
336 nvlist_move_nvlist(limits, "cmds", nvl);
337 return (cap_limit_set(chan, limits));
344 nvlist_t *limits, *nvl;
347 if (cap_limit_get(chan, &limits) < 0)
349 if (limits == NULL) {
350 limits = nvlist_create(0);
352 if (nvlist_exists_nvlist(limits, "fields"))
353 nvlist_free_nvlist(limits, "fields");
358 nvlist_move_nvlist(limits, "fields", nvl);
359 return (cap_limit_set(chan, limits));
366 nvlist_t *limits, *users;
371 if (cap_limit_get(chan, &limits) < 0)
373 if (limits == NULL) {
374 limits = nvlist_create(0);
376 if (nvlist_exists_nvlist(limits, "users"))
377 nvlist_free_nvlist(limits, "users");
390 nvlist_move_nvlist(limits, "users", users);
391 return (cap_limit_set(chan, limits));
399 pwd_allowed_cmd(const nvlist_t *limits, const char *cmd)
402 if (limits == NULL)
409 if (!nvlist_exists_nvlist(limits, "cmds"))
412 limits = nvlist_get_nvlist(limits, "cmds");
413 return (nvlist_exists_null(limits, cmd));
435 pwd_allowed_user(const nvlist_t *limits, const char *uname, uid_t uid)
441 if (limits == NULL)
447 if (!nvlist_exists_nvlist(limits, "users"))
450 limits = nvlist_get_nvlist(limits, "users");
452 while ((name = nvlist_next(limits, &type, &cookie)) != NULL) {
456 nvlist_get_number(limits, name) == (uint64_t)uid) {
462 strcmp(nvlist_get_string(limits, name),
505 pwd_allowed_field(const nvlist_t *limits, const char *field)
508 if (limits == NULL)
514 if (!nvlist_exists_nvlist(limits, "fields"))
517 limits = nvlist_get_nvlist(limits, "fields");
518 return (nvlist_exists_null(limits, field));
540 pwd_pack(const nvlist_t *limits, const struct passwd *pwd, nvlist_t *nvl)
550 if (!pwd_allowed_user(limits, pwd->pw_name, pwd->pw_uid))
555 if (pwd_allowed_field(limits, "pw_name")) {
561 if (pwd_allowed_field(limits, "pw_uid")) {
567 if (pwd_allowed_field(limits, "pw_gid")) {
573 if (pwd_allowed_field(limits, "pw_change")) {
579 if (pwd_allowed_field(limits, "pw_passwd")) {
585 if (pwd_allowed_field(limits, "pw_class")) {
591 if (pwd_allowed_field(limits, "pw_gecos")) {
597 if (pwd_allowed_field(limits, "pw_dir")) {
603 if (pwd_allowed_field(limits, "pw_shell")) {
609 if (pwd_allowed_field(limits, "pw_expire")) {
621 pwd_getpwent(const nvlist_t *limits, const nvlist_t *nvlin __unused,
631 if (pwd_pack(limits, pwd, nvlout))
639 pwd_getpwnam(const nvlist_t *limits, const nvlist_t *nvlin, nvlist_t *nvlout)
654 (void)pwd_pack(limits, pwd, nvlout);
660 pwd_getpwuid(const nvlist_t *limits, const nvlist_t *nvlin, nvlist_t *nvlout)
675 (void)pwd_pack(limits, pwd, nvlout);
681 pwd_setpassent(const nvlist_t *limits __unused, const nvlist_t *nvlin,
695 pwd_setpwent(const nvlist_t *limits __unused, const nvlist_t *nvlin __unused,
705 pwd_endpwent(const nvlist_t *limits __unused, const nvlist_t *nvlin __unused,
717 const nvlist_t *limits;
739 limits = nvlist_get_nvlist(newlimits, name);
741 error = pwd_allowed_cmds(oldlimits, limits);
743 error = pwd_allowed_fields(oldlimits, limits);
745 error = pwd_allowed_users(oldlimits, limits);
756 pwd_command(const char *cmd, const nvlist_t *limits, nvlist_t *nvlin,
761 if (!pwd_allowed_cmd(limits, cmd))
765 error = pwd_getpwent(limits, nvlin, nvlout);
767 error = pwd_getpwnam(limits, nvlin, nvlout);
769 error = pwd_getpwuid(limits, nvlin, nvlout);
771 error = pwd_setpassent(limits, nvlin, nvlout);
773 error = pwd_setpwent(limits, nvlin, nvlout);
775 error = pwd_endpwent(limits, nvlin, nvlout);