diff options
author | Eugene Syromyatnikov <evgsyr@gmail.com> | 2022-07-28 18:39:19 +0200 |
---|---|---|
committer | Dmitry V. Levin <ldv@strace.io> | 2022-07-31 21:03:01 +0000 |
commit | 1e681af2c9951910917ddd673e839e7e774e2073 (patch) | |
tree | 10aaf5b6e817f7445b4e88dc754d6f3887b2b7df | |
parent | 1db1753842a864a1c27dc68793732a5304b89b95 (diff) | |
download | strace-1e681af2c9951910917ddd673e839e7e774e2073.tar.gz |
inet: implement SO_RCVMARK socket option decoding
* src/xlat/sock_options.in (SO_RCVMARK): New constant, introduced
by Linux commit v5.19-rc1~159^2~237.
* src/xlat/sock_options.in (print_getsockopt. print_setsockopt) <case
SO_RCVMARK>: Handle as an int-like socket option.
* tests/sockopt-sol_socket.c: Update expected output.
-rw-r--r-- | src/net.c | 2 | ||||
-rwxr-xr-x | src/xlat/sock_options.in | 8 | ||||
-rw-r--r-- | tests/sockopt-sol_socket.c | 3 |
3 files changed, 12 insertions, 1 deletions
@@ -840,6 +840,7 @@ print_getsockopt(struct tcb *const tcp, const unsigned int level, case SO_PREFER_BUSY_POLL: case SO_BUSY_POLL_BUDGET: case SO_RESERVE_MEM: + case SO_RCVMARK: if (rlen >= (int) sizeof(int)) printnum_int(tcp, addr, "%d"); else @@ -1105,6 +1106,7 @@ print_setsockopt(struct tcb *const tcp, const unsigned int level, case SO_PREFER_BUSY_POLL: case SO_BUSY_POLL_BUDGET: case SO_RESERVE_MEM: + case SO_RCVMARK: if (len < (int) sizeof(int)) printaddr(addr); else diff --git a/src/xlat/sock_options.in b/src/xlat/sock_options.in index b2053c409..942cbc7db 100755 --- a/src/xlat/sock_options.in +++ b/src/xlat/sock_options.in @@ -551,3 +551,11 @@ SO_RESERVE_MEM 16455 #else SO_RESERVE_MEM 73 #endif + +#if defined __sparc__ +SO_RCVMARK 84 +#elif defined __hppa__ +SO_RCVMARK 16457 +#else +SO_RCVMARK 75 +#endif diff --git a/tests/sockopt-sol_socket.c b/tests/sockopt-sol_socket.c index 131a84d29..d2c4254a5 100644 --- a/tests/sockopt-sol_socket.c +++ b/tests/sockopt-sol_socket.c @@ -133,7 +133,8 @@ main(void) { ARG_STR(SO_NETNS_COOKIE), /* TODO */ }, { ARG_STR(SO_BUF_LOCK), /* TODO */ }, { ARG_STR(SO_RESERVE_MEM), .optsz = sizeof(int) }, - { 74, NULL }, + { ARG_STR(SO_RCVMARK), .optsz = sizeof(int) }, + { 76, NULL }, { -1, NULL }, }; |