|
@@ -86,21 +86,20 @@ static void run() { |
|
|
DEFER({close(fd);}); |
|
|
DEFER({close(fd);}); |
|
|
|
|
|
|
|
|
// Get socket path |
|
|
// Get socket path |
|
|
const char* env = getenv("XDG_RUNTIME_DIR"); |
|
|
|
|
|
if (!env) |
|
|
|
|
|
env = getenv("TMPDIR"); |
|
|
|
|
|
if (!env) |
|
|
|
|
|
env = getenv("TMP"); |
|
|
|
|
|
if (!env) |
|
|
|
|
|
env = getenv("TEMP"); |
|
|
|
|
|
if (!env) |
|
|
|
|
|
env = "/tmp"; |
|
|
|
|
|
std::string path = std::string() + env + "/discord-ipc-0"; |
|
|
|
|
|
|
|
|
const char* dir = getenv("XDG_RUNTIME_DIR"); |
|
|
|
|
|
if (!dir) |
|
|
|
|
|
dir = getenv("TMPDIR"); |
|
|
|
|
|
if (!dir) |
|
|
|
|
|
dir = getenv("TMP"); |
|
|
|
|
|
if (!dir) |
|
|
|
|
|
dir = getenv("TEMP"); |
|
|
|
|
|
if (!dir) |
|
|
|
|
|
dir = "/tmp"; |
|
|
|
|
|
|
|
|
// Connect to socket |
|
|
// Connect to socket |
|
|
struct sockaddr_un addr; |
|
|
struct sockaddr_un addr; |
|
|
addr.sun_family = AF_UNIX; |
|
|
addr.sun_family = AF_UNIX; |
|
|
snprintf(addr.sun_path, sizeof(addr.sun_path), "%s", path.c_str()); |
|
|
|
|
|
|
|
|
snprintf(addr.sun_path, sizeof(addr.sun_path), "%s/discord-ipc-0", dir); |
|
|
if (connect(fd, (struct sockaddr*) &addr, sizeof(addr))) { |
|
|
if (connect(fd, (struct sockaddr*) &addr, sizeof(addr))) { |
|
|
// Fail silently since this just means Discord isn't open. |
|
|
// Fail silently since this just means Discord isn't open. |
|
|
// WARN("Could not bind Discord socket"); |
|
|
// WARN("Could not bind Discord socket"); |
|
|