From 1d3fb447d53e5e061edd04f5b3ddecfd5cb99e9c Mon Sep 17 00:00:00 2001 From: Thomas Schoebel-Theuer Date: Thu, 10 May 2018 09:29:06 +0200 Subject: [PATCH] net: make mars_accept_socket() options dynamic --- kernel/mars_net.c | 6 ++++-- kernel/mars_net.h | 4 +++- kernel/mars_server.c | 4 +++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/kernel/mars_net.c b/kernel/mars_net.c index 919b52d1..1d3db62d 100644 --- a/kernel/mars_net.c +++ b/kernel/mars_net.c @@ -258,7 +258,9 @@ final: } EXPORT_SYMBOL_GPL(mars_create_socket); -int mars_accept_socket(struct mars_socket *new_msock, struct mars_socket *old_msock) +int mars_accept_socket(struct mars_socket *new_msock, + struct mars_socket *old_msock, + struct mars_tcp_params *params) { int status = -ENOENT; struct socket *new_socket = NULL; @@ -284,7 +286,7 @@ int mars_accept_socket(struct mars_socket *new_msock, struct mars_socket *old_ms MARS_IO("old#%d status = %d file = %p flags = 0x%x\n", old_msock->s_debug_nr, status, new_socket->file, new_socket->file ? new_socket->file->f_flags : 0); - _set_socketopts(new_socket, &default_tcp_params); + _set_socketopts(new_socket, params); memset(new_msock, 0, sizeof(struct mars_socket)); new_msock->s_socket = new_socket; diff --git a/kernel/mars_net.h b/kernel/mars_net.h index ceddf4e6..0748a2ba 100644 --- a/kernel/mars_net.h +++ b/kernel/mars_net.h @@ -124,7 +124,9 @@ extern int mars_create_socket(struct mars_socket *msock, struct sockaddr_storage *addr, struct mars_tcp_params *params, bool is_server); -extern int mars_accept_socket(struct mars_socket *new_msock, struct mars_socket *old_msock); +extern int mars_accept_socket(struct mars_socket *new_msock, + struct mars_socket *old_msock, + struct mars_tcp_params *params); extern bool mars_get_socket(struct mars_socket *msock); extern void mars_put_socket(struct mars_socket *msock); extern void mars_shutdown_socket(struct mars_socket *msock); diff --git a/kernel/mars_server.c b/kernel/mars_server.c index df8429d9..c9afcf43 100644 --- a/kernel/mars_server.c +++ b/kernel/mars_server.c @@ -858,7 +858,9 @@ static int _server_thread(void *data) continue; } - status = mars_accept_socket(&handler_socket, my_socket); + status = mars_accept_socket(&handler_socket, + my_socket, + &default_tcp_params); if (unlikely(status < 0 || !mars_socket_is_alive(&handler_socket))) { brick_msleep(500); if (status == -EAGAIN)