X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibpsocket.so_src%2Finclude_exp%2Fsys%2Fsocket.h;h=deb1f51e7e3de3f63fc43c9faa5a2f7e9ccc9bc0;hb=cee190b0244cf8c1389f82237f0c1457eb2c0e7f;hp=adc5a871d3a0f8c1544e4066ebf3072d60255c1a;hpb=d0b4559f2936f6d9f06be0f7c3c51527a480ec0d;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 adc5a871..deb1f51e 100644 --- a/Usermode/Libraries/libpsocket.so_src/include_exp/sys/socket.h +++ b/Usermode/Libraries/libpsocket.so_src/include_exp/sys/socket.h @@ -9,7 +9,10 @@ #define _SYS_SOCKETS_H_ #include +#ifndef size_t #include // size_t +#endif +#include // uint32_t typedef uint32_t socklen_t; @@ -17,14 +20,16 @@ typedef enum { AF_UNSPEC = 0, AF_PACKET = 1, + AF_LOCAL = 2, AF_INET = 4, AF_INET6 = 6, } sa_family_t; +#define AF_UNIX AF_LOCAL struct sockaddr { sa_family_t sa_family; - char sa_data[16]; + char sa_data[16+2]; }; struct msghdr @@ -71,6 +76,7 @@ enum eSocketTypes */ enum eSocketDomains { + PF_UNSPEC, PF_LOCAL, //!< Machine-local comms PF_INET, //!< IPv4 PF_INET6, //!< IPv6 @@ -78,12 +84,48 @@ enum eSocketDomains }; #define PF_UNIX PF_LOCAL +// getsockopt/setsockopt level +enum +{ + SOL_SOCKET +}; + + +// SOL_SOCKET getsockopt/setsockopt names +enum +{ + SO_REUSEADDR, + 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 */ @@ -102,7 +144,7 @@ extern int listen(int sockfd, int backlog); /** * \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); @@ -112,5 +154,15 @@ extern int send(int sockfd, void *buffer, size_t length, int flags); extern int setsockopt(int socket, int level, int option_name, const void *option_value, socklen_t option_len); extern int getsockopt(int socket, int level, int option_name, void *option_value, socklen_t *option_len); +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); + #endif