]> Chaos Git - corbenik/ctrulib.git/commitdiff
Fix soc_read/soc_write.
authormtheall <pigman46@gmail.com>
Tue, 27 Jan 2015 23:06:30 +0000 (17:06 -0600)
committermtheall <pigman46@gmail.com>
Tue, 27 Jan 2015 23:06:30 +0000 (17:06 -0600)
libctru/source/services/soc/soc_common.h
libctru/source/services/soc/soc_init.c
libctru/source/services/soc/soc_recvfrom.c
libctru/source/services/soc/soc_sendto.c

index 87c592a9e0b8372b03b8d9cedd4d344b28803dd4..a9fd779efefaa188c4ae08a97a5f9cf41da6dc64 100644 (file)
@@ -3,6 +3,7 @@
 #include <errno.h>
 #include <string.h>
 #include <sys/iosupport.h>
+#include <sys/socket.h>
 #include <3ds/types.h>
 #include <3ds/svc.h>
 #include <3ds/srv.h>
@@ -29,3 +30,7 @@ soc_get_fd(int fd)
 }
 
 s32 _net_convert_error(s32 sock_retval);
+
+ssize_t soc_recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);
+
+ssize_t soc_sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen);
index c28e1de88782f343d5088434c438b9ae06274593..9f5a88f27659305dd17b28535c97f2da19cfa001 100644 (file)
@@ -166,7 +166,7 @@ soc_write(struct _reent *r,
           size_t        len)
 {
        Handle sockfd = *(Handle*)fd;
-       return send(sockfd, ptr, len, 0);
+       return soc_sendto(sockfd, ptr, len, 0, NULL, 0);
 }
 
 static ssize_t
@@ -176,5 +176,5 @@ soc_read(struct _reent *r,
          size_t        len)
 {
        Handle sockfd = *(Handle*)fd;
-       return recv(sockfd, ptr, len, 0);
+       return soc_recvfrom(sockfd, ptr, len, 0, NULL, 0);
 }
index 8480c5f062aa95c5ea2a9ea81bfb0b54aa749a4e..f9b206abf64607a85293a7930d541088f30590ae 100644 (file)
@@ -118,6 +118,12 @@ ssize_t socuipc_cmd8(int sockfd, void *buf, size_t len, int flags, struct sockad
        return ret;
 }
 
+ssize_t soc_recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen)
+{
+       if(len < 0x2000)
+               return socuipc_cmd8(sockfd, buf, len, flags, src_addr, addrlen);
+       return socuipc_cmd7(sockfd, buf, len, flags, src_addr, addrlen);
+}
 
 ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen)
 {
@@ -127,7 +133,5 @@ ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *
                return -1;
        }
 
-       if(len < 0x2000)
-               return socuipc_cmd8(sockfd, buf, len, flags, src_addr, addrlen);
-       return socuipc_cmd7(sockfd, buf, len, flags, src_addr, addrlen);
+       return soc_recvfrom(sockfd, buf, len, flags, src_addr, addrlen);
 }
index 7183c11d0fc06685c1ff6caa465aaf164464c160..4b84749228b5c63ef0842acb471e6ca77eb71a0f 100644 (file)
@@ -110,6 +110,13 @@ ssize_t socuipc_cmda(int sockfd, const void *buf, size_t len, int flags, const s
        return ret;
 }
 
+ssize_t soc_sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen)
+{
+       if(len < 0x2000)
+               return socuipc_cmda(sockfd, buf, len, flags, dest_addr, addrlen);
+       return socuipc_cmd9(sockfd, buf, len, flags, dest_addr, addrlen);
+}
+
 ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen)
 {
        sockfd = soc_get_fd(sockfd);
@@ -118,7 +125,5 @@ ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct
                return -1;
        }
 
-       if(len < 0x2000)
-               return socuipc_cmda(sockfd, buf, len, flags, dest_addr, addrlen);
-       return socuipc_cmd9(sockfd, buf, len, flags, dest_addr, addrlen);
+       return soc_sendto(sockfd, buf, len, flags, dest_addr, addrlen);
 }