/* * Copyright © 2017 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #include #include #include const gchar *g_get_user_name(void) { // The normal glib version parses pwent entries return g_getenv("TEST_USER"); } struct group *getgrnam(const char *group_name) { static struct group rv = {NULL, NULL, 0, NULL}; g_free(rv.gr_name); g_strfreev(rv.gr_mem); rv.gr_name = g_strdup(group_name); rv.gr_passwd = NULL; rv.gr_gid = 9999; rv.gr_mem = NULL; if (g_strcmp0(group_name, "nopasswdlogin") == 0) { rv.gr_mem = g_strsplit(g_getenv("TEST_NOPASSWD_USERS"), ",", 0); } return &rv; }