win32/win32_compat.c: Reformat this file

This file has been reformatted with clang-format --style=file and the Linux
kernel .clang-format style file.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
This commit is contained in:
Bart Van Assche
2021-05-23 12:20:07 -07:00
parent 2a5a0b3291
commit ca9c585ef6

View File

@@ -46,156 +46,142 @@ static int dummy ATTRIBUTE((unused));
/* Windows needs this header file for the implementation of inet_aton() */
#include <ctype.h>
int win32_inet_pton(int af, const char * src, void * dst)
int win32_inet_pton(int af, const char *src, void *dst)
{
struct sockaddr_in sa;
int len = sizeof(SOCKADDR);
int ret = -1;
int strLen = strlen(src) + 1;
struct sockaddr_in sa;
int len = sizeof(SOCKADDR);
int ret = -1;
int strLen = strlen(src) + 1;
#ifdef UNICODE
wchar_t *srcNonConst = (wchar_t *)malloc(strLen*sizeof(wchar_t));
memset(srcNonConst, 0, strLen);
MultiByteToWideChar(CP_ACP, 0, src, -1, srcNonConst, strLen);
wchar_t *srcNonConst = (wchar_t *)malloc(strLen * sizeof(wchar_t));
memset(srcNonConst, 0, strLen);
MultiByteToWideChar(CP_ACP, 0, src, -1, srcNonConst, strLen);
#else
char *srcNonConst = (char *)malloc(strLen);
memset(srcNonConst, 0, strLen);
strncpy(srcNonConst, src, strLen);
char *srcNonConst = (char *)malloc(strLen);
memset(srcNonConst, 0, strLen);
strncpy(srcNonConst, src, strLen);
#endif
if( WSAStringToAddress(srcNonConst,af,NULL,(LPSOCKADDR)&sa,&len) == 0 )
{
ret = 1;
}
else
{
if( WSAGetLastError() == WSAEINVAL )
{
ret = -1;
}
}
free(srcNonConst);
memcpy(dst, &sa.sin_addr, sizeof(struct in_addr));
return ret;
if (WSAStringToAddress(srcNonConst, af, NULL, (LPSOCKADDR)&sa, &len) ==
0) {
ret = 1;
} else {
if (WSAGetLastError() == WSAEINVAL) {
ret = -1;
}
}
free(srcNonConst);
memcpy(dst, &sa.sin_addr, sizeof(struct in_addr));
return ret;
}
int win32_poll(struct pollfd *fds, unsigned int nfds, int timo)
{
struct timeval timeout, *toptr;
fd_set ifds, ofds, efds, *ip, *op;
unsigned int i;
int rc;
struct timeval timeout, *toptr;
fd_set ifds, ofds, efds, *ip, *op;
unsigned int i;
int rc;
// Set up the file-descriptor sets in ifds, ofds and efds.
FD_ZERO(&ifds);
FD_ZERO(&ofds);
FD_ZERO(&efds);
for (i = 0, op = ip = 0; i < nfds; ++i)
{
fds[i].revents = 0;
if(fds[i].events & (POLLIN|POLLPRI))
{
ip = &ifds;
FD_SET(fds[i].fd, ip);
}
if(fds[i].events & POLLOUT)
{
op = &ofds;
FD_SET(fds[i].fd, op);
}
FD_SET(fds[i].fd, &efds);
}
// Set up the file-descriptor sets in ifds, ofds and efds.
FD_ZERO(&ifds);
FD_ZERO(&ofds);
FD_ZERO(&efds);
for (i = 0, op = ip = 0; i < nfds; ++i) {
fds[i].revents = 0;
if (fds[i].events & (POLLIN | POLLPRI)) {
ip = &ifds;
FD_SET(fds[i].fd, ip);
}
if (fds[i].events & POLLOUT) {
op = &ofds;
FD_SET(fds[i].fd, op);
}
FD_SET(fds[i].fd, &efds);
}
// Set up the timeval structure for the timeout parameter
if(timo < 0)
{
toptr = 0;
}
else
{
toptr = &timeout;
timeout.tv_sec = timo / 1000;
timeout.tv_usec = (timo - timeout.tv_sec * 1000) * 1000;
}
// Set up the timeval structure for the timeout parameter
if (timo < 0) {
toptr = 0;
} else {
toptr = &timeout;
timeout.tv_sec = timo / 1000;
timeout.tv_usec = (timo - timeout.tv_sec * 1000) * 1000;
}
#ifdef DEBUG_POLL
printf("Entering select() sec=%ld usec=%ld ip=%lx op=%lx\n",
(long)timeout.tv_sec, (long)timeout.tv_usec, (long)ip, (long)op);
printf("Entering select() sec=%ld usec=%ld ip=%lx op=%lx\n",
(long)timeout.tv_sec, (long)timeout.tv_usec, (long)ip, (long)op);
#endif
rc = select(0, ip, op, &efds, toptr);
rc = select(0, ip, op, &efds, toptr);
#ifdef DEBUG_POLL
printf("Exiting select rc=%d\n", rc);
printf("Exiting select rc=%d\n", rc);
#endif
if(rc <= 0)
return rc;
if (rc <= 0)
return rc;
if(rc > 0)
{
for (i = 0; i < nfds; ++i)
{
int fd = fds[i].fd;
if(fds[i].events & (POLLIN|POLLPRI) && FD_ISSET(fd, &ifds))
fds[i].revents |= POLLIN;
if(fds[i].events & POLLOUT && FD_ISSET(fd, &ofds))
fds[i].revents |= POLLOUT;
if(FD_ISSET(fd, &efds)) // Some error was detected ... should be some way to know.
fds[i].revents |= POLLHUP;
if (rc > 0) {
for (i = 0; i < nfds; ++i) {
int fd = fds[i].fd;
if (fds[i].events & (POLLIN | POLLPRI) &&
FD_ISSET(fd, &ifds))
fds[i].revents |= POLLIN;
if (fds[i].events & POLLOUT && FD_ISSET(fd, &ofds))
fds[i].revents |= POLLOUT;
if (FD_ISSET(fd,
&efds)) // Some error was detected ... should be some way to know.
fds[i].revents |= POLLHUP;
#ifdef DEBUG_POLL
printf("%d %d %d revent = %x\n",
FD_ISSET(fd, &ifds), FD_ISSET(fd, &ofds), FD_ISSET(fd, &efds),
fds[i].revents
);
printf("%d %d %d revent = %x\n", FD_ISSET(fd, &ifds),
FD_ISSET(fd, &ofds), FD_ISSET(fd, &efds),
fds[i].revents);
#endif
}
}
return rc;
}
}
return rc;
}
#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS)
#define DELTA_EPOCH_IN_MICROSECS 11644473600000000Ui64
#define DELTA_EPOCH_IN_MICROSECS 11644473600000000Ui64
#else
#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL
#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL
#endif
struct timezone
{
int tz_minuteswest; /* minutes W of Greenwich */
int tz_dsttime; /* type of dst correction */
struct timezone {
int tz_minuteswest; /* minutes W of Greenwich */
int tz_dsttime; /* type of dst correction */
};
int win32_gettimeofday(struct timeval *tv, struct timezone *tz)
{
FILETIME ft;
unsigned __int64 tmpres = 0;
static int tzflag;
if (NULL != tv)
{
GetSystemTimeAsFileTime(&ft);
tmpres |= ft.dwHighDateTime;
tmpres <<= 32;
tmpres |= ft.dwLowDateTime;
/*converting file time to unix epoch*/
tmpres -= DELTA_EPOCH_IN_MICROSECS;
tmpres /= 10; /*convert into microseconds*/
tv->tv_sec = (long)(tmpres / 1000000UL);
tv->tv_usec = (long)(tmpres % 1000000UL);
}
if (NULL != tz)
{
if (!tzflag)
{
_tzset();
tzflag++;
}
tz->tz_minuteswest = _timezone / 60;
tz->tz_dsttime = _daylight;
}
return 0;
FILETIME ft;
unsigned __int64 tmpres = 0;
static int tzflag;
if (NULL != tv) {
GetSystemTimeAsFileTime(&ft);
tmpres |= ft.dwHighDateTime;
tmpres <<= 32;
tmpres |= ft.dwLowDateTime;
/*converting file time to unix epoch*/
tmpres -= DELTA_EPOCH_IN_MICROSECS;
tmpres /= 10; /*convert into microseconds*/
tv->tv_sec = (long)(tmpres / 1000000UL);
tv->tv_usec = (long)(tmpres % 1000000UL);
}
if (NULL != tz) {
if (!tzflag) {
_tzset();
tzflag++;
}
tz->tz_minuteswest = _timezone / 60;
tz->tz_dsttime = _daylight;
}
return 0;
}
ssize_t win32_readv(int fd, const struct iovec *iov, int iovcnt)