mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-02 09:01:46 -05:00
* add new function pa_check_in_group()
* abstract credential APis a little bit by introducing HAVE_CREDS and a structure pa_creds * rework credential authentication * fix module-volume-restore and friends for usage in system-wide instance * remove loopback= argument from moulde-*-protocol-tcp since it is a superset of listen= and usually a bad idea anyway since the user shouldn't load the TCP module at all if he doesn't want remote access * rename a few variables in the jack modules to make sure they don't conflict with symbols defined in the system headers * add server address for system-wide daemons to the default server list for the the client libs * update todo git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1109 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
parent
340803b30c
commit
a382492204
24 changed files with 222 additions and 134 deletions
|
|
@ -741,6 +741,20 @@ finish:
|
|||
return ret;
|
||||
}
|
||||
|
||||
int pa_check_in_group(gid_t g) {
|
||||
gid_t gids[NGROUPS_MAX];
|
||||
int r;
|
||||
|
||||
if ((r = getgroups(NGROUPS_MAX, gids)) < 0)
|
||||
return -1;
|
||||
|
||||
for (; r > 0; r--)
|
||||
if (gids[r-1] == g)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#else /* HAVE_GRP_H */
|
||||
|
||||
int pa_own_uid_in_group(const char *name, gid_t *gid) {
|
||||
|
|
@ -752,6 +766,14 @@ int pa_uid_in_group(uid_t uid, const char *name) {
|
|||
return -1;
|
||||
}
|
||||
|
||||
gid_t pa_get_gid_of_group(const char *name) {
|
||||
return (gid_t) -1;
|
||||
}
|
||||
|
||||
int pa_check_in_group(gid_t g) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/* Lock or unlock a file entirely.
|
||||
|
|
@ -909,28 +931,33 @@ FILE *pa_open_config_file(const char *global, const char *local, const char *env
|
|||
return fopen(fn, mode);
|
||||
}
|
||||
|
||||
if (local && pa_get_home_dir(h, sizeof(h))) {
|
||||
FILE *f;
|
||||
char *lfn;
|
||||
|
||||
fn = lfn = pa_sprintf_malloc("%s/%s", h, local);
|
||||
if (local) {
|
||||
const char *e;
|
||||
char *lfn = NULL;
|
||||
|
||||
if ((e = getenv("PULSE_CONFIG_PATH")))
|
||||
fn = lfn = pa_sprintf_malloc("%s/%s", e, local);
|
||||
else if (pa_get_home_dir(h, sizeof(h)))
|
||||
fn = lfn = pa_sprintf_malloc("%s/.pulse/%s", h, local);
|
||||
|
||||
if (lfn) {
|
||||
FILE *f;
|
||||
|
||||
#ifdef OS_IS_WIN32
|
||||
if (!ExpandEnvironmentStrings(lfn, buf, PATH_MAX))
|
||||
return NULL;
|
||||
fn = buf;
|
||||
if (!ExpandEnvironmentStrings(lfn, buf, PATH_MAX))
|
||||
return NULL;
|
||||
fn = buf;
|
||||
#endif
|
||||
|
||||
f = fopen(fn, mode);
|
||||
|
||||
if (f || errno != ENOENT) {
|
||||
if (result)
|
||||
*result = pa_xstrdup(fn);
|
||||
pa_xfree(lfn);
|
||||
return f;
|
||||
}
|
||||
|
||||
if ((f = fopen(fn, mode)) || errno != ENOENT) {
|
||||
if (result)
|
||||
*result = pa_xstrdup(fn);
|
||||
pa_xfree(lfn);
|
||||
return f;
|
||||
}
|
||||
|
||||
pa_xfree(lfn);
|
||||
pa_xfree(lfn);
|
||||
}
|
||||
}
|
||||
|
||||
if (!global) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue