Revert "Choose pipe number on initialize (#250)"

This reverts commit 4824b20f28.
This commit is contained in:
msciotti
2019-01-24 13:23:35 -08:00
parent 4824b20f28
commit c59fd6df20
11 changed files with 19 additions and 25 deletions

View File

@ -12,7 +12,7 @@ struct BaseConnection {
static BaseConnection* Create();
static void Destroy(BaseConnection*&);
bool isOpen{false};
bool Open(int pipe);
bool Open();
bool Close();
bool Write(const void* data, size_t length);
bool Read(void* data, size_t length);

View File

@ -49,7 +49,7 @@ static const char* GetTempPath()
c = nullptr;
}
bool BaseConnection::Open(int pipe)
bool BaseConnection::Open()
{
const char* tempPath = GetTempPath();
auto self = reinterpret_cast<BaseConnectionUnix*>(this);
@ -62,7 +62,8 @@ bool BaseConnection::Open(int pipe)
int optval = 1;
setsockopt(self->sock, SOL_SOCKET, SO_NOSIGPIPE, &optval, sizeof(optval));
#endif
for (int pipeNum = pipe; pipeNum < 10; ++pipeNum) {
for (int pipeNum = 0; pipeNum < 10; ++pipeNum) {
snprintf(
PipeAddr.sun_path, sizeof(PipeAddr.sun_path), "%s/discord-ipc-%d", tempPath, pipeNum);
int err = connect(self->sock, (const sockaddr*)&PipeAddr, sizeof(PipeAddr));

View File

@ -6,7 +6,6 @@
#define NOIME
#include <assert.h>
#include <windows.h>
#include <sstream>
int GetProcessId()
{
@ -31,11 +30,11 @@ static BaseConnectionWin Connection;
c = nullptr;
}
bool BaseConnection::Open(int pipe)
bool BaseConnection::Open()
{
wchar_t pipeName[]{L"\\\\?\\pipe\\discord-ipc-0"};
const size_t pipeDigit = sizeof(pipeName) / sizeof(wchar_t) - 2;
pipeName[pipeDigit] += pipe;
pipeName[pipeDigit] = L'0';
auto self = reinterpret_cast<BaseConnectionWin*>(this);
for (;;) {
self->pipe = ::CreateFileW(

View File

@ -273,8 +273,7 @@ static bool DeregisterForEvent(const char* evtName)
extern "C" DISCORD_EXPORT void Discord_Initialize(const char* applicationId,
DiscordEventHandlers* handlers,
int autoRegister,
const char* optionalSteamId,
int pipe)
const char* optionalSteamId)
{
IoThread = new (std::nothrow) IoThreadHolder();
if (IoThread == nullptr) {
@ -309,7 +308,7 @@ extern "C" DISCORD_EXPORT void Discord_Initialize(const char* applicationId,
return;
}
Connection = RpcConnection::Create(applicationId, pipe);
Connection = RpcConnection::Create(applicationId);
Connection->onConnect = [](JsonDocument& readyMessage) {
Discord_UpdateHandlers(&QueuedHandlers);
if (QueuedPresence.length > 0) {

View File

@ -6,11 +6,10 @@
static const int RpcVersion = 1;
static RpcConnection Instance;
/*static*/ RpcConnection* RpcConnection::Create(const char* applicationId, int pipe)
/*static*/ RpcConnection* RpcConnection::Create(const char* applicationId)
{
Instance.connection = BaseConnection::Create();
StringCopy(Instance.appId, applicationId);
Instance.pipe = pipe;
return &Instance;
}
@ -27,7 +26,7 @@ void RpcConnection::Open()
return;
}
if (state == State::Disconnected && !connection->Open(Instance.pipe)) {
if (state == State::Disconnected && !connection->Open()) {
return;
}

View File

@ -43,12 +43,11 @@ struct RpcConnection {
void (*onConnect)(JsonDocument& message){nullptr};
void (*onDisconnect)(int errorCode, const char* message){nullptr};
char appId[64]{};
int pipe;
int lastErrorCode{0};
char lastErrorMessage[256]{};
RpcConnection::MessageFrame sendFrame;
static RpcConnection* Create(const char* applicationId, int pipe);
static RpcConnection* Create(const char* applicationId);
static void Destroy(RpcConnection*&);
inline bool IsOpen() const { return state == State::Connected; }