From 98eb7f44f39218037f7809dca5d71d1f638f75c0 Mon Sep 17 00:00:00 2001 From: Hugo Santos Date: Sun, 20 May 2007 17:02:27 +0000 Subject: [PATCH] TCP: getsockopt was missing. fixes #1225 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21176 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../kernel/drivers/network/stack/kernel_stack.cpp | 12 +++++------- src/add-ons/kernel/network/protocols/tcp/tcp.cpp | 14 +++++++++++++- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/add-ons/kernel/drivers/network/stack/kernel_stack.cpp b/src/add-ons/kernel/drivers/network/stack/kernel_stack.cpp index 882daa6c86..1866fb4c9f 100644 --- a/src/add-ons/kernel/drivers/network/stack/kernel_stack.cpp +++ b/src/add-ons/kernel/drivers/network/stack/kernel_stack.cpp @@ -151,13 +151,12 @@ opcode_name(int op) const char *name; } *ci, commands_info[] = { C2N(NET_STACK_SOCKET), + C2N(NET_STACK_GET_COOKIE), + C2N(NET_STACK_CONTROL_NET_MODULE), + C2N(NET_STACK_GET_NEXT_STAT), C2N(NET_STACK_BIND), - C2N(NET_STACK_RECVFROM), - C2N(NET_STACK_RECV), - C2N(NET_STACK_RECVMSG), - C2N(NET_STACK_SENDTO), + C2N(NET_STACK_RECEIVE), C2N(NET_STACK_SEND), - C2N(NET_STACK_SENDMSG), C2N(NET_STACK_LISTEN), C2N(NET_STACK_ACCEPT), C2N(NET_STACK_CONNECT), @@ -166,9 +165,8 @@ opcode_name(int op) C2N(NET_STACK_SETSOCKOPT), C2N(NET_STACK_GETSOCKNAME), C2N(NET_STACK_GETPEERNAME), - C2N(NET_STACK_GET_COOKIE), + C2N(NET_STACK_SOCKETPAIR), C2N(NET_STACK_NOTIFY_SOCKET_EVENT), - C2N(NET_STACK_CONTROL_NET_MODULE), // Userland IPC-specific opcodes // C2N(NET_STACK_OPEN), diff --git a/src/add-ons/kernel/network/protocols/tcp/tcp.cpp b/src/add-ons/kernel/network/protocols/tcp/tcp.cpp index 15fb7e3e74..86e9c413eb 100644 --- a/src/add-ons/kernel/network/protocols/tcp/tcp.cpp +++ b/src/add-ons/kernel/network/protocols/tcp/tcp.cpp @@ -467,6 +467,18 @@ tcp_control(net_protocol *_protocol, int level, int option, void *value, } +status_t +tcp_getsockopt(net_protocol *_protocol, int level, int option, void *value, + int *_length) +{ + TCPEndpoint *protocol = (TCPEndpoint *)_protocol; + + /* TODO getting IPPROTO_TCP options is missing */ + return protocol->next->module->getsockopt(protocol->next, level, option, + value, _length); +} + + status_t tcp_setsockopt(net_protocol *_protocol, int level, int option, const void *_value, int length) @@ -770,7 +782,7 @@ net_protocol_module_info sTCPModule = { tcp_connect, tcp_accept, tcp_control, - NULL, // getsockopt + tcp_getsockopt, tcp_setsockopt, tcp_bind, tcp_unbind,