From 400e85d674c7bf962cfad69dc0f9097bec29df14 Mon Sep 17 00:00:00 2001 From: Dave Murphy Date: Wed, 28 Dec 2016 18:27:51 +0000 Subject: [PATCH] __alloc_handle changes for dkA r46 space for device specific storage in FILE struct is now allocated in __alloc_handle --- libctru/source/services/soc/soc_accept.c | 15 +++++---------- libctru/source/services/soc/soc_socket.c | 7 ++----- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/libctru/source/services/soc/soc_accept.c b/libctru/source/services/soc/soc_accept.c index b009975..0826277 100644 --- a/libctru/source/services/soc/soc_accept.c +++ b/libctru/source/services/soc/soc_accept.c @@ -8,7 +8,6 @@ int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen) int ret = 0; int tmp_addrlen = 0x1c; int fd, dev; - __handle *handle; u32 *cmdbuf = getThreadCommandBuffer(); u8 tmpaddr[0x1c]; u32 saved_threadstorage[2]; @@ -25,15 +24,8 @@ int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen) return -1; } - fd = __alloc_handle(sizeof(__handle) + sizeof(Handle)); - if(fd < 0) { - errno = ENOMEM; - return -1; - } - - handle = __get_handle(fd); - handle->device = dev; - handle->fileStruct = ((void *)handle) + sizeof(__handle); + fd = __alloc_handle(dev); + if(fd < 0) return fd; memset(tmpaddr, 0, 0x1c); @@ -79,7 +71,10 @@ int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen) return -1; } else + { + __handle *handle = __get_handle(fd); *(Handle*)handle->fileStruct = ret; + } return fd; } diff --git a/libctru/source/services/soc/soc_socket.c b/libctru/source/services/soc/soc_socket.c index 9ee007f..dcff6bf 100644 --- a/libctru/source/services/soc/soc_socket.c +++ b/libctru/source/services/soc/soc_socket.c @@ -37,11 +37,8 @@ int socket(int domain, int type, int protocol) return -1; } - fd = __alloc_handle(sizeof(__handle) + sizeof(Handle)); - if(fd < 0) { - errno = ENOMEM; - return -1; - } + fd = __alloc_handle(dev); + if(fd < 0) return fd; handle = __get_handle(fd); handle->device = dev;