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);
53#if !defined(MSG_DONTWAIT) && defined(MSG_NONBLOCK)
54#define MSG_DONTWAIT MSG_NONBLOCK
62#if !(_SQUID_WINDOWS_ || _SQUID_MINGW_)
67 return accept(socketFd, sa, saLength);
73 return bind(socketFd, sa, saLength);
79 return connect(socketFd, sa, saLength);
85 return getsockname(socketFd, sa, saLength);
91 return listen(socketFd, backlog);
97 return getsockopt(socketFd, level, optionName, optionValue, optionLength);
101xrecv(
int socketFd,
void * buf,
size_t bufLength,
int flags)
103 return recv(socketFd, buf, bufLength, flags);
107xrecvfrom(
int socketFd,
void * buf,
size_t bufLength,
int flags,
struct sockaddr * from,
socklen_t * fromLength)
109 return recvfrom(socketFd, buf, bufLength, flags, from, fromLength);
113xsend(
int socketFd,
const void * buf,
size_t bufLength,
int flags)
115 return send(socketFd, buf, bufLength, flags);
119xsendto(
int socketFd,
const void * buf,
size_t bufLength,
int flags,
const struct sockaddr * to,
socklen_t l)
121 return sendto(socketFd, buf, bufLength, flags, to, l);
127 return setsockopt(socketFd, level, option, value, valueLength);
133 return socket(domain, type, protocol);
138static_assert(SOCKET_ERROR == -1);
141isValidSocketHandle(intptr_t handle)
143 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.