Blame esound-0.2.38-multi-user.patch
|
|
b44619b |
--- esound-0.2.36.orig/util.c
|
|
|
b44619b |
+++ esound-0.2.36/util.c
|
|
|
b44619b |
@@ -5,6 +5,7 @@
|
|
|
b44619b |
#include <stdlib.h>
|
|
|
b44619b |
#include <string.h>
|
|
|
b44619b |
#include <unistd.h>
|
|
|
b44619b |
+#include <stdio.h>
|
|
|
b44619b |
|
|
|
b44619b |
/* Run-time check for IPv6 support */
|
|
|
b44619b |
int
|
|
|
b44619b |
@@ -23,22 +24,18 @@
|
|
|
b44619b |
const char*
|
|
|
b44619b |
esd_get_socket_dirname (void)
|
|
|
b44619b |
{
|
|
|
b44619b |
- const char *audiodev;
|
|
|
b44619b |
+ const char *audiodev = NULL;
|
|
|
b44619b |
static char *dirname = NULL;
|
|
|
b44619b |
|
|
|
b44619b |
- if (dirname == NULL) {
|
|
|
b44619b |
- if (!(audiodev = getenv("AUDIODEV"))) {
|
|
|
b44619b |
- audiodev = "";
|
|
|
b44619b |
- } else {
|
|
|
b44619b |
- char *newdev = strrchr(audiodev, '/');
|
|
|
b44619b |
- if (newdev != NULL) {
|
|
|
b44619b |
- audiodev = newdev++;
|
|
|
b44619b |
- }
|
|
|
b44619b |
- }
|
|
|
b44619b |
- dirname = malloc(strlen(audiodev) + sizeof("/tmp/.esd"));
|
|
|
b44619b |
- strcpy(dirname, "/tmp/.esd");
|
|
|
b44619b |
- strcat(dirname, audiodev);
|
|
|
b44619b |
- }
|
|
|
b44619b |
+ if ((audiodev = getenv("AUDIODEV"))) {
|
|
|
b44619b |
+ char *newdev = strrchr(audiodev, '/');
|
|
|
b44619b |
+ if (newdev != NULL) {
|
|
|
b44619b |
+ audiodev = newdev++;
|
|
|
b44619b |
+ }
|
|
|
b44619b |
+ } else
|
|
|
b44619b |
+ audiodev = "";
|
|
|
b44619b |
+ dirname = malloc(strlen(audiodev) + 40);
|
|
|
b44619b |
+ sprintf (dirname, "/tmp/.esd%s-%i", audiodev, getuid());
|
|
|
b44619b |
|
|
|
b44619b |
return dirname;
|
|
|
b44619b |
}
|