X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibpsocket.so_src%2Finclude_exp%2Fsys%2Fsocket.h;h=9c3e3bda39657495c285a4e6d093d2db400ce476;hb=f8cde3fab5eb27ebacf9d76a7ac478a68a36a38b;hp=dc44ec684239b73550bafa158c35059cc2bd491d;hpb=05c45f4a7cf476f6e5d76df2307710d15cd18eb9;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libpsocket.so_src/include_exp/sys/socket.h b/Usermode/Libraries/libpsocket.so_src/include_exp/sys/socket.h index dc44ec68..9c3e3bda 100644 --- a/Usermode/Libraries/libpsocket.so_src/include_exp/sys/socket.h +++ b/Usermode/Libraries/libpsocket.so_src/include_exp/sys/socket.h @@ -9,24 +9,32 @@ #define _SYS_SOCKETS_H_ #include +#ifndef size_t #include // size_t +#endif +#include // uint32_t + +#ifdef __cplusplus +extern "C" { +#endif typedef uint32_t socklen_t; -typedef enum +enum { AF_UNSPEC = 0, AF_PACKET = 1, AF_LOCAL = 2, AF_INET = 4, AF_INET6 = 6, -} sa_family_t; +}; #define AF_UNIX AF_LOCAL +typedef uint8_t sa_family_t; // I would use an enum, but cast issues struct sockaddr { sa_family_t sa_family; - char sa_data[16]; + char sa_data[16+2]; }; struct msghdr @@ -92,15 +100,37 @@ enum enum { SO_REUSEADDR, - SO_LINGER + SO_LINGER, + SO_ERROR, + SO_KEEPALIVE, +}; + +// shutdown how +enum +{ + SHUT_RD, + SHUT_WR, + SHUT_RDWR }; +// flags for send* +//#define MSG_CONFIRM 0x01 +#define MSG_DONTROUTE 0x02 +#define MSG_OOB 0x40 +// flags for recv +#define MSG_PEEK 0x100 + /** * \brief Create a new socket descriptor * \param domain Address family */ extern int socket(int domain, int type, int protocol); +/** + * + */ +extern int shutdown(int socket, int how); + /** * \brief Bind a socket to an address */ @@ -116,10 +146,12 @@ extern int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); */ extern int listen(int sockfd, int backlog); +#define SOMAXCONN 128 // Maximum size of backlog (actually far higher) + /** * \brief Accept an incoming connection */ -extern int accept(int sockfd, struct sockaddr *clientaddr, socklen_t addrlen); +extern int accept(int sockfd, struct sockaddr *clientaddr, socklen_t *addrlen); extern int recvfrom(int sockfd, void *buffer, size_t length, int flags, struct sockaddr *clientaddr, socklen_t *addrlen); extern int recv(int sockfd, void *buffer, size_t length, int flags); @@ -132,5 +164,16 @@ extern int getsockopt(int socket, int level, int option_name, void *option_value extern int getsockname(int socket, struct sockaddr *addr, socklen_t *addrlen); extern int getpeername(int socket, struct sockaddr *addr, socklen_t *addrlen); +extern struct hostent *gethostbyaddr(const void *addr, socklen_t len, int type); +extern void sethostent(int stayopen); +extern void endhostent(void); +extern void herror(const char *s); +extern const char *hstrerror(int err); +extern struct hostent *gethostent(void); + +#ifdef __cplusplus +} +#endif + #endif