cdef extern from "<sys/types.h>" nogil: pass cdef extern from "<sys/socket.h>" namespace "" nogil: ctypedef long socklen_t ctypedef unsigned short sa_family_t ctypedef struct sockaddr: sa_family_t sa_family char sa_data[14] ctypedef struct sockaddr_storage: sa_family_t ss_family ctypedef struct iovec: void *iov_base size_t iov_len ctypedef struct msghdr: void *msg_name socklen_t msg_namelen iovec *msg_iov int msg_iovlen void *msg_control socklen_t msg_controllen int msg_flags ctypedef struct cmsghdr: socklen_t cmsg_len int cmsg_level int cmsg_type int accept(int, sockaddr *, socklen_t *) int bind(int, const sockaddr *, socklen_t) int connect(int, const sockaddr *, socklen_t) int getpeername(int, sockaddr *, socklen_t *) int getsockname(int, sockaddr *, socklen_t *) int getsockopt(int, int, int, void *, socklen_t *) int listen(int, int) ssize_t recv(int, void *, size_t, int) ssize_t recvfrom(int, void *, size_t, int, sockaddr *, socklen_t *) ssize_t recvmsg(int, msghdr *, int) ssize_t send(int, const void *, size_t, int) ssize_t sendmsg(int, const msghdr *, int) ssize_t sendto(int, const void *, size_t, int, const sockaddr *, socklen_t) int setsockopt(int, int, int, const void *, socklen_t) int shutdown(int, int) int sockatmark(int) int socket(int, int, int) int socketpair(int, int, int, int [2]) cdef extern from "<unistd.h>" namespace "" nogil: int close(int fd) cdef extern from "<netdb.h>" nogil: ctypedef struct addrinfo: int ai_flags int ai_family int ai_socktype int ai_protocol socklen_t ai_addrlen sockaddr *ai_addr char *ai_canonname addrinfo *ai_next void freeaddrinfo(addrinfo *) int getaddrinfo(const char *, const char *, const addrinfo *, addrinfo **) const char *gai_strerror(int) cdef extern from "<netinet/in.h>" nogil: ctypedef struct in_addr: unsigned long s_addr ctypedef struct sockaddr_in: sa_family_t sin_family unsigned short sin_port in_addr sin_addr char sin_zero[8] ctypedef struct in6_addr: unsigned char s6_addr[16] ctypedef struct sockaddr_in6: sa_family_t sin6_family unsigned short sin6_port unsigned long sin6_flowinfo in6_addr sin6_addr unsigned long sin6_scope_id enum: INET6_ADDRSTRLEN unsigned long htonl(unsigned long hostlong) unsigned short htons(unsigned short hostshort) unsigned long ntohl(unsigned long netlong) unsigned short ntohs(unsigned short netshort) cdef extern from "<arpa/inet.h>" nogil: const char *inet_ntop(int af, const void *src, char *dst, socklen_t size) int inet_pton(int af, const char *src, void *dst);