summaryrefslogtreecommitdiff
path: root/multimedia/vitunes-mplayer/multiuser.diff
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/vitunes-mplayer/multiuser.diff')
-rw-r--r--multimedia/vitunes-mplayer/multiuser.diff57
1 files changed, 57 insertions, 0 deletions
diff --git a/multimedia/vitunes-mplayer/multiuser.diff b/multimedia/vitunes-mplayer/multiuser.diff
new file mode 100644
index 0000000000..cb0b5eedf2
--- /dev/null
+++ b/multimedia/vitunes-mplayer/multiuser.diff
@@ -0,0 +1,57 @@
+diff -Naur vitunes-2.3/socket.c vitunes-2.3.patched/socket.c
+--- vitunes-2.3/socket.c 2012-01-02 16:02:11.000000000 -0500
++++ vitunes-2.3.patched/socket.c 2012-11-25 12:12:05.000000000 -0500
+@@ -19,13 +19,23 @@
+ #include <sys/socket.h>
+ #include <sys/un.h>
+ #include <unistd.h>
++#include <pwd.h>
+
+ #include "socket.h"
+ #include "commands.h"
+
+-#define VITUNES_SOCK "/tmp/.vitunes"
++#define VITUNES_SOCK "/tmp/.vitunes-%s"
+
+
++static char *get_user_name(void) {
++ struct passwd *ent;
++ ent = getpwuid(getuid());
++ if(ent)
++ return ent->pw_name;
++ else
++ return "unknown-user"; /* just in case */
++}
++
+ int
+ sock_send_msg(const char *msg)
+ {
+@@ -38,8 +48,8 @@
+ return -1;
+
+ addr.sun_family = AF_UNIX;
+- strcpy(addr.sun_path, VITUNES_SOCK);
+- addr_len = sizeof(addr.sun_family) + strlen(VITUNES_SOCK) + 1;
++ sprintf(addr.sun_path, VITUNES_SOCK, get_user_name());
++ addr_len = sizeof(addr.sun_family) + strlen(addr.sun_path) + 1;
+
+ if(sendto(ret, msg, strlen(msg), 0, (struct sockaddr *) &addr, addr_len) == -1) {
+ close(ret);
+@@ -58,14 +68,14 @@
+ socklen_t addr_len;
+ int coe = 1;
+
+- unlink(VITUNES_SOCK);
++ sprintf(addr.sun_path, VITUNES_SOCK, get_user_name());
++ unlink(addr.sun_path);
+
+ if((ret = socket(AF_UNIX, SOCK_DGRAM, 0)) == -1)
+ return -1;
+
+ addr.sun_family = AF_UNIX;
+- strcpy(addr.sun_path, VITUNES_SOCK);
+- addr_len = sizeof(addr.sun_family) + strlen(VITUNES_SOCK) + 1;
++ addr_len = sizeof(addr.sun_family) + strlen(addr.sun_path) + 1;
+
+ if(bind(ret, (struct sockaddr *) &addr, addr_len) == -1)
+ return -1;