9#ifndef SQUID_COMPAT_SOCKET_H
10#define SQUID_COMPAT_SOCKET_H
13#include <sys/socket.h>
20int xbind(
int socketFd,
const struct sockaddr *sa,
socklen_t saLength);
26int xgetsockopt(
int socketFd,
int level,
int optionName,
void * optionValue,
socklen_t * optionLength);
32int xlisten(
int socketFd,
int backlog);
35ssize_t
xrecv(
int socketFd,
void * buf,
size_t bufLength,
int flags);
38ssize_t
xrecvfrom(
int socketFd,
void * buf,
size_t bufLength,
int flags,
struct sockaddr * from,
socklen_t * fromLength);
41ssize_t
xsend(
int socketFd,
const void * buf,
size_t bufLength,
int flags);
44ssize_t
xsendto(
int socketFd,
const void * buf,
size_t bufLength,
int flags,
const struct sockaddr * to,
socklen_t toLength);
50int xsocket(
int domain,
int type,
int protocol);
59#if !(_SQUID_WINDOWS_ || _SQUID_MINGW_)
64 return accept(socketFd, sa, saLength);
70 return bind(socketFd, sa, saLength);
76 return connect(socketFd, sa, saLength);
82 return getsockname(socketFd, sa, saLength);
88 return listen(socketFd, backlog);
94 return getsockopt(socketFd, level, optionName, optionValue, optionLength);
98xrecv(
int socketFd,
void * buf,
size_t bufLength,
int flags)
100 return recv(socketFd, buf, bufLength, flags);
104xrecvfrom(
int socketFd,
void * buf,
size_t bufLength,
int flags,
struct sockaddr * from,
socklen_t * fromLength)
106 return recvfrom(socketFd, buf, bufLength, flags, from, fromLength);
110xsend(
int socketFd,
const void * buf,
size_t bufLength,
int flags)
112 return send(socketFd, buf, bufLength, flags);
116xsendto(
int socketFd,
const void * buf,
size_t bufLength,
int flags,
const struct sockaddr * to,
socklen_t l)
118 return sendto(socketFd, buf, bufLength, flags, to, l);
124 return setsockopt(socketFd, level, option, value, valueLength);
130 return socket(domain, type, protocol);
135static_assert(SOCKET_ERROR == -1);
138isValidSocketHandle(intptr_t handle)
140 return handle != intptr_t(INVALID_HANDLE_VALUE);
int xsocket(int domain, int type, int protocol)
POSIX socket(2) equivalent.
ssize_t xsendto(int socketFd, const void *buf, size_t bufLength, int flags, const struct sockaddr *to, socklen_t toLength)
POSIX sendto(2) equivalent.
int xbind(int socketFd, const struct sockaddr *sa, socklen_t saLength)
POSIX bind(2) equivalent.
ssize_t xrecv(int socketFd, void *buf, size_t bufLength, int flags)
POSIX recv(2) equivalent.
ssize_t xsend(int socketFd, const void *buf, size_t bufLength, int flags)
POSIX send(2) equivalent.
ssize_t xrecvfrom(int socketFd, void *buf, size_t bufLength, int flags, struct sockaddr *from, socklen_t *fromLength)
POSIX recvfrom(2) equivalent.
int xgetsockopt(int socketFd, int level, int optionName, void *optionValue, socklen_t *optionLength)
POSIX getsockopt(2) equivalent.
int xgetsockname(int socketFd, struct sockaddr *sa, socklen_t *saLength)
POSIX getsockname(2) equivalent.
int xaccept(int socketFd, struct sockaddr *sa, socklen_t *saLength)
POSIX accept(2) equivalent.
int xsetsockopt(int socketFd, int level, int option, const void *value, socklen_t valueLength)
POSIX setsockopt(2) equivalent.
int xconnect(int socketFd, const struct sockaddr *sa, socklen_t saLength)
POSIX connect(2) equivalent.
int xlisten(int socketFd, int backlog)
POSIX listen(2) equivalent.