diff options
Diffstat (limited to 'src/gsmd/usock.c')
-rw-r--r-- | src/gsmd/usock.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/gsmd/usock.c b/src/gsmd/usock.c index f258fd6..41814c8 100644 --- a/src/gsmd/usock.c +++ b/src/gsmd/usock.c @@ -1734,7 +1734,14 @@ int usock_init(struct gsmd *g) memset(&sun, 0, sizeof(sun)); sun.sun_family = AF_UNIX; - memcpy(sun.sun_path, GSMD_UNIX_SOCKET, sizeof(GSMD_UNIX_SOCKET)); + if (g->instance == 0) { + memcpy(sun.sun_path, GSMD_UNIX_SOCKET, + sizeof(GSMD_UNIX_SOCKET)); + } else { + sun.sun_path[0] = '\0'; + snprintf(sun.sun_path+1, sizeof(sun.sun_path)-1, "gsmd.%u", + g->instance); + } rc = bind(fd, (struct sockaddr *)&sun, sizeof(sun)); if (rc < 0) { |