Compare commits

...

2 Commits

Author SHA1 Message Date
EnderIce2
5d0e6c4026
Retry connection after EOF count exceeded 2024-05-07 22:09:04 +03:00
EnderIce2
418e53e7f7
Update LICENSE 2024-04-18 17:30:22 +03:00
2 changed files with 17 additions and 5 deletions

View File

@ -1,4 +1,4 @@
Copyright (c) 2023 EnderIce2
Copyright (c) 2024 EnderIce2
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -299,11 +299,13 @@ void ConnectToSocket(int fd)
}
}
HANDLE hOut = NULL;
void PipeBufferInThread(LPVOID lpParam)
{
bridge_thread *bt = (bridge_thread *)lpParam;
print("In thread started using fd %d and pipe %#x\n",
bt->fd, bt->hPipe);
int EOFCount = 0;
while (TRUE)
{
char buffer[1024];
@ -317,12 +319,22 @@ void PipeBufferInThread(LPVOID lpParam)
continue;
}
if (EOFCount > 4)
{
print("EOF count exceeded\n");
RetryNewConnection = TRUE;
TerminateThread(hOut, 0);
break;
}
if (unlikely(read == 0))
{
print("EOF\n");
Sleep(1000);
EOFCount++;
continue;
}
EOFCount = 0;
print("Reading %d bytes from unix pipe: \"", read);
for (int i = 0; i < read; i++)
@ -523,10 +535,10 @@ NewConnection:
(LPVOID)&bt,
0, NULL);
HANDLE hOut = CreateThread(NULL, 0,
(LPTHREAD_START_ROUTINE)PipeBufferOutThread,
(LPVOID)&bt,
0, NULL);
hOut = CreateThread(NULL, 0,
(LPTHREAD_START_ROUTINE)PipeBufferOutThread,
(LPVOID)&bt,
0, NULL);
if (hIn == NULL || hOut == NULL)
{