diff --git a/drivers/char/socket.c b/drivers/char/socket.c index 71133413..80e97b99 100755 --- a/drivers/char/socket.c +++ b/drivers/char/socket.c @@ -75,7 +75,8 @@ static int socket_close(fildes_t* file) { int ret = 0; #if defined(CONFIG_LWIP) && LWIP_SOCKET - //ret = lwip_close(file->offset); + kprintf("CLOSE LWIP_FD: %i ", file->offset); + ret = lwip_close(file->offset); if (ret < 0) ret = -errno; #endif diff --git a/kernel/syscall.c b/kernel/syscall.c index 529fc7f3..2da84494 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -226,6 +226,8 @@ int syscall_handler(uint32_t sys_nr, ...) } case __NR_close: { int fd = va_arg(vl, int); + kprintf("CLOSE: %i and Tid: %i ..", fd, per_core(current_task)); + if (fd >= 0) ret = sys_close(fd); break; @@ -288,8 +290,7 @@ int syscall_handler(uint32_t sys_nr, ...) ret = -ENOTSOCK; break; } - - ret = lwip_close(per_core(current_task)->fildes_table[fd].offset); + //ret = lwip_close(per_core(current_task)->fildes_table[fd].offset); if (ret < 0) ret = -errno; break; diff --git a/newlib/examples/server.c b/newlib/examples/server.c index 35e09e43..73d648d5 100644 --- a/newlib/examples/server.c +++ b/newlib/examples/server.c @@ -65,7 +65,7 @@ int main(int argc, char* argv[]) exit(1); } write(sockd2, msg, strlen(msg)+1); - close(sockd2); + //close(sockd2); } return 0;