mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-01-28 16:27:01 -05:00
attempt to fix compilation on windows
This commit is contained in:
parent
40b965cab1
commit
6048a9a011
@ -37,15 +37,21 @@ RsFdBinInterface::RsFdBinInterface(int file_descriptor)
|
|||||||
|
|
||||||
void RsFdBinInterface::setSocket(int s)
|
void RsFdBinInterface::setSocket(int s)
|
||||||
{
|
{
|
||||||
if(mIsActive != 0)
|
if(mIsActive != 0)
|
||||||
{
|
{
|
||||||
RsErr() << "Changing socket to active FsBioInterface! Canceling all pending R/W data." ;
|
RsErr() << "Changing socket to active FsBioInterface! Canceling all pending R/W data." ;
|
||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
|
#ifndef WINDOWS_SYS
|
||||||
int flags = fcntl(s,F_GETFL);
|
int flags = fcntl(s,F_GETFL);
|
||||||
|
|
||||||
if(!(flags & O_NONBLOCK))
|
if(!(flags & O_NONBLOCK))
|
||||||
throw std::runtime_error("Trying to use a blocking file descriptor in RsFdBinInterface. This is not going to work!");
|
throw std::runtime_error("Trying to use a blocking file descriptor in RsFdBinInterface. This is not going to work!");
|
||||||
|
#else
|
||||||
|
// On windows, there is no way to determine whether a socket is blobking or not, so we set it to non blocking whatsoever.
|
||||||
|
unsigned long int on = 1;
|
||||||
|
ret = ioctlsocket(fd[STDOUT_FILENO], FIONBIO, &on);
|
||||||
|
#endif
|
||||||
|
|
||||||
mCLintConnt = s;
|
mCLintConnt = s;
|
||||||
mIsActive = (s!=0);
|
mIsActive = (s!=0);
|
||||||
|
@ -61,8 +61,13 @@ bool RsTcpSocket::connect()
|
|||||||
}
|
}
|
||||||
mState = CONNECTED;
|
mState = CONNECTED;
|
||||||
|
|
||||||
|
#ifndef WINDOWS_SYS
|
||||||
int flags = fcntl(CreateSocket,F_GETFL);
|
int flags = fcntl(CreateSocket,F_GETFL);
|
||||||
fcntl(CreateSocket, F_SETFL, flags | O_NONBLOCK);
|
fcntl(CreateSocket, F_SETFL, flags | O_NONBLOCK);
|
||||||
|
#else
|
||||||
|
unsigned long int on = 1;
|
||||||
|
ret = ioctlsocket(fd, FIONBIO, &on);
|
||||||
|
#endif
|
||||||
|
|
||||||
setSocket(CreateSocket);
|
setSocket(CreateSocket);
|
||||||
|
|
||||||
|
@ -175,8 +175,13 @@ static bool test_listening_port(const std::string& /*address*/,uint16_t port)
|
|||||||
close(sockfd);
|
close(sockfd);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
#ifndef WINDOWS_SYS
|
||||||
int flags = fcntl(sockfd, F_GETFL);
|
int flags = fcntl(sockfd, F_GETFL);
|
||||||
fcntl(sockfd, F_SETFL, flags | O_NONBLOCK);
|
fcntl(sockfd, F_SETFL, flags | O_NONBLOCK);
|
||||||
|
#else
|
||||||
|
unsigned long int on = 1;
|
||||||
|
ret = ioctlsocket(fd, FIONBIO, &on);
|
||||||
|
#endif
|
||||||
|
|
||||||
int res = listen(sockfd,5);
|
int res = listen(sockfd,5);
|
||||||
|
|
||||||
|
@ -272,9 +272,14 @@ void TorProcess::start()
|
|||||||
}
|
}
|
||||||
|
|
||||||
int flags ;
|
int flags ;
|
||||||
|
#ifndef WINDOWS_SYS
|
||||||
flags = fcntl(fd[STDOUT_FILENO], F_GETFL); fcntl(fd[STDOUT_FILENO], F_SETFL, flags | O_NONBLOCK);
|
flags = fcntl(fd[STDOUT_FILENO], F_GETFL); fcntl(fd[STDOUT_FILENO], F_SETFL, flags | O_NONBLOCK);
|
||||||
flags = fcntl(fd[STDERR_FILENO], F_GETFL); fcntl(fd[STDERR_FILENO], F_SETFL, flags | O_NONBLOCK);
|
flags = fcntl(fd[STDERR_FILENO], F_GETFL); fcntl(fd[STDERR_FILENO], F_SETFL, flags | O_NONBLOCK);
|
||||||
|
#else
|
||||||
|
unsigned long int on = 1;
|
||||||
|
ret = ioctlsocket(fd[STDOUT_FILENO], FIONBIO, &on);
|
||||||
|
ret = ioctlsocket(fd[STDERR_FILENO], FIONBIO, &on);
|
||||||
|
#endif
|
||||||
mStdOutFD = new RsFdBinInterface(fd[STDOUT_FILENO]);
|
mStdOutFD = new RsFdBinInterface(fd[STDOUT_FILENO]);
|
||||||
mStdErrFD = new RsFdBinInterface(fd[STDERR_FILENO]);
|
mStdErrFD = new RsFdBinInterface(fd[STDERR_FILENO]);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user