Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:p_conrad
netqmail
auto_uids.c
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File auto_uids.c of Package netqmail
/* * (C) 2011 Peter Conrad <conrad@quisquis.de> * * This file is licensed under the terms of the * GNU General Public License Version 2. A copy of these terms should be * enclosed as "gpl-2.0.txt" in the package containing this file. */ #include <sys/types.h> #include <grp.h> #include <pwd.h> #include "qlx.h" static int have_uida = 0, uida; static int have_uidd = 0, uidd; static int have_uidl = 0, uidl; static int have_uido = 0, uido; static int have_uidp = 0, uidp; static int have_uidq = 0, uidq; static int have_uidr = 0, uidr; static int have_uids = 0, uids; static int have_gidq = 0, gidq; static int have_gidn = 0, gidn; static int get_auto_uid(const char *uname) { struct passwd *pwent = getpwnam(uname); if (pwent) { return pwent->pw_uid; } _exit(QLX_EXECPW); } static int get_auto_gid(const char *gname) { struct group *ent = getgrnam(gname); if (ent) { return ent->gr_gid; } _exit(QLX_EXECPW); } #define GET_AUTO_UID(type,name) \ int get_auto_uid##type() { \ if (!have_uid##type) { \ uid##type = get_auto_uid(name); \ have_uid##type = 1; \ } \ return uid##type; \ } GET_AUTO_UID(a, "alias") GET_AUTO_UID(d, "qmaild") GET_AUTO_UID(l, "qmaill") GET_AUTO_UID(o, "root") GET_AUTO_UID(p, "qmailp") GET_AUTO_UID(q, "qmailq") GET_AUTO_UID(r, "qmailr") GET_AUTO_UID(s, "qmails") #define GET_AUTO_GID(type,name) \ int get_auto_gid##type() { \ if (!have_gid##type) { \ gid##type = get_auto_gid(name); \ have_gid##type = 1; \ } \ return gid##type; \ } GET_AUTO_GID(n, "nofiles") GET_AUTO_GID(q, "mail") #undef GET_AUTO_UID #undef GET_AUTO_GID
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor