X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=Usermode%2FLibraries%2Flibpsocket.so_src%2Fsocket.c;h=e2521ad39ac6133567ee7217f34c0d8202f2c37d;hb=e91f60e14b8857312238d729fa580d6ab44ba27a;hp=913f72f733a35fcfa48f23710046effb1900b955;hpb=d0b4559f2936f6d9f06be0f7c3c51527a480ec0d;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libpsocket.so_src/socket.c b/Usermode/Libraries/libpsocket.so_src/socket.c index 913f72f7..e2521ad3 100644 --- a/Usermode/Libraries/libpsocket.so_src/socket.c +++ b/Usermode/Libraries/libpsocket.so_src/socket.c @@ -6,10 +6,11 @@ * - sys/socket.h calls */ #include -#include +#include #include // malloc/free #include #include +#include "common.h" #define MAXFD 32 @@ -55,7 +56,7 @@ int socket(int domain, int type, int protocol) si = _GetInfo(0); if( !si ) return -1; - int fd = open("/Devices/null", O_RDWR); + int fd = _SysOpen("/Devices/null", OPENFLAG_RDWR); if( fd == -1 ) return -1; giNumPreinit ++; @@ -167,7 +168,7 @@ void _CommitServer(int sockfd) else path = mkstr("/Devices/ip/*%i/%s", si->local->sa_family, file); - reopen(si->fd, path, O_RDWR); + _SysReopen(si->fd, path, OPENFLAG_RDWR); // TODO: Error-check free(path); @@ -191,10 +192,11 @@ int accept(int sockfd, struct sockaddr *clientaddr, socklen_t addrlen) int child; - child = _SysOpenChild(sockfd, "", O_RDWR); + child = _SysOpenChild(sockfd, "", OPENFLAG_RDWR); if( child == -1 ) return -1; - ioctl(child, 8, clientaddr); + _SysIOCtl(child, 8, clientaddr); + return child; } @@ -203,25 +205,46 @@ int recvfrom(int sockfd, void *buffer, size_t length, int flags, struct sockaddr { _CommitClient(sockfd); // TODO: Determine socket type (TCP/UDP) and use a bounce-buffer for UDP - return read(sockfd, buffer, length); + return _SysRead(sockfd, buffer, length); } int recv(int sockfd, void *buffer, size_t length, int flags) { _CommitClient(sockfd); - return read(sockfd, buffer, length); + return _SysRead(sockfd, buffer, length); } int sendto(int sockfd, const void *buffer, size_t length, int flags, const struct sockaddr *clientaddr, socklen_t addrlen) { _CommitClient(sockfd); // TODO: Determine socket type (TCP/UDP) and use a bounce-buffer for UDP - return write(sockfd, buffer, length); + return _SysWrite(sockfd, buffer, length); } int send(int sockfd, void *buffer, size_t length, int flags) { _CommitClient(sockfd); - return write(sockfd, buffer, length); + return _SysWrite(sockfd, buffer, length); +} + + +int setsockopt(int socket, int level, int option_name, const void *option_value, socklen_t option_len) +{ + return 0; +} + +int getsockopt(int socket, int level, int option_name, void *option_value, socklen_t *option_len) +{ + return 0; +} + +int getsockname(int socket, struct sockaddr *addr, socklen_t *addrlen) +{ + return 0; +} + +int getpeername(int socket, struct sockaddr *addr, socklen_t *addrlen) +{ + return 0; }