mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-07-19 01:26:22 +00:00
sk: Support SO_NO_CHECK option
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
parent
9988c38daa
commit
293eca3127
3 changed files with 12 additions and 1 deletions
|
|
@ -14,4 +14,5 @@ message sk_opts_entry {
|
|||
optional bool so_passcred = 11;
|
||||
optional bool so_passsec = 12;
|
||||
optional bool so_dontroute = 13;
|
||||
optional bool so_no_check = 14;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -105,6 +105,11 @@ int restore_socket_opts(int sk, SkOptsEntry *soe)
|
|||
pr_debug("\tset dontroute for socket\n");
|
||||
ret |= restore_opt(sk, SOL_SOCKET, SO_DONTROUTE, &val);
|
||||
}
|
||||
if (soe->has_so_no_check && soe->so_no_check) {
|
||||
val = 1;
|
||||
pr_debug("\tset no_check for socket\n");
|
||||
ret |= restore_opt(sk, SOL_SOCKET, SO_NO_CHECK, &val);
|
||||
}
|
||||
|
||||
tv.tv_sec = soe->so_snd_tmo_sec;
|
||||
tv.tv_usec = soe->so_snd_tmo_usec;
|
||||
|
|
@ -175,6 +180,10 @@ int dump_socket_opts(int sk, SkOptsEntry *soe)
|
|||
soe->has_so_dontroute = true;
|
||||
soe->so_dontroute = val ? true : false;
|
||||
|
||||
ret |= dump_opt(sk, SOL_SOCKET, SO_NO_CHECK, &val);
|
||||
soe->has_so_no_check = true;
|
||||
soe->so_no_check = val ? true : false;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ const char *test_author = "Pavel Emelyanov <xemul@parallels.com>";
|
|||
#define TEST_PORT 59687
|
||||
#define TEST_ADDR INADDR_ANY
|
||||
|
||||
#define NOPTS 6
|
||||
#define NOPTS 7
|
||||
|
||||
int main(int argc, char ** argv)
|
||||
{
|
||||
|
|
@ -25,6 +25,7 @@ int main(int argc, char ** argv)
|
|||
vname[3] = SO_PASSCRED;
|
||||
vname[4] = SO_PASSSEC;
|
||||
vname[5] = SO_DONTROUTE;
|
||||
vname[6] = SO_NO_CHECK;
|
||||
|
||||
test_init(argc, argv);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue