diff options
author | Thorvald Natvig <slicer@users.sourceforge.net> | 2008-04-22 18:44:46 +0400 |
---|---|---|
committer | Thorvald Natvig <slicer@users.sourceforge.net> | 2008-04-22 18:44:46 +0400 |
commit | 625825dfa99568a40bf41191b41413eafc556777 (patch) | |
tree | 36baa9123c48295f89e76210692f5bb77dca2903 /overlay_gl | |
parent | ebe7e0ed71ac5ecf9e028884f50619de68cdcca6 (diff) |
Add UID to shared memory and semaphore names on *nix, to allow multiple users at the same time.
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@1101 05730e5d-ab1b-0410-a4ac-84af385074fa
Diffstat (limited to 'overlay_gl')
-rw-r--r-- | overlay_gl/overlay.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/overlay_gl/overlay.c b/overlay_gl/overlay.c index 2545ae43f..325d1e5e6 100644 --- a/overlay_gl/overlay.c +++ b/overlay_gl/overlay.c @@ -93,8 +93,13 @@ static void resolveOpenGL() { static void resolveSM() { static bool warned_sm = false; static bool warned_ver = false; + + char memname[256]; + char semname[256]; + snprintf(memname, 256, "/MumbleOverlayMem.%d", getuid()); + snprintf(semname, 256, "/MumbleOverlaySem.%d", getuid()); - int fd = shm_open("/MumbleOverlayMem", O_RDWR, 0600); + int fd = shm_open(memname, O_RDWR, 0600); if (fd >= 0) { sm = (struct SharedMem *)(mmap(NULL, sizeof(struct SharedMem), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0)); if (sm == (void *)(-1)) { @@ -117,7 +122,7 @@ static void resolveSM() { sm = NULL; close(fd); } else { - sem = sem_open("/MumbleOverlaySem", 0); + sem = sem_open(semname, 0); if (sem == SEM_FAILED) { munmap(sm, sizeof(struct SharedMem)); sm = NULL; @@ -138,7 +143,7 @@ static void resolveSM() { } __attribute__((format(printf, 1, 2))) -void ods(const char *format, ...) { +static void ods(const char *format, ...) { if (!bDebug) { if (! sm || !sm->bDebug) return; @@ -421,7 +426,7 @@ __GLXextFuncPtr glXGetProcAddressARB(const GLubyte * func) { } __attribute__((constructor)) -void initializeLibrary() { +static void initializeLibrary() { if (odlsym) return; |