diff options
author | Jakub Kicinski <jakub.kicinski@netronome.com> | 2019-08-01 17:36:02 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-08-05 16:15:30 -0400 |
commit | cd114d2e81f632104b3f1e804104060b97337410 (patch) | |
tree | ca3c4fc7202e38616e4d3ac060e34a36bef41a36 /tools | |
parent | 5d92e631b8be8965a90c144320f06e096081a551 (diff) |
selftests/tls: add a litmus test for the socket reuse through shutdown
Make sure that shutdown never works, and at the same time document how
I tested to came to the conclusion that currently reuse is not possible.
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/testing/selftests/net/tls.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tools/testing/selftests/net/tls.c b/tools/testing/selftests/net/tls.c index d995e6503b1a..4c285b6e1db8 100644 --- a/tools/testing/selftests/net/tls.c +++ b/tools/testing/selftests/net/tls.c | |||
@@ -984,6 +984,30 @@ TEST_F(tls, shutdown_unsent) | |||
984 | shutdown(self->cfd, SHUT_RDWR); | 984 | shutdown(self->cfd, SHUT_RDWR); |
985 | } | 985 | } |
986 | 986 | ||
987 | TEST_F(tls, shutdown_reuse) | ||
988 | { | ||
989 | struct sockaddr_in addr; | ||
990 | int ret; | ||
991 | |||
992 | shutdown(self->fd, SHUT_RDWR); | ||
993 | shutdown(self->cfd, SHUT_RDWR); | ||
994 | close(self->cfd); | ||
995 | |||
996 | addr.sin_family = AF_INET; | ||
997 | addr.sin_addr.s_addr = htonl(INADDR_ANY); | ||
998 | addr.sin_port = 0; | ||
999 | |||
1000 | ret = bind(self->fd, &addr, sizeof(addr)); | ||
1001 | EXPECT_EQ(ret, 0); | ||
1002 | ret = listen(self->fd, 10); | ||
1003 | EXPECT_EQ(ret, -1); | ||
1004 | EXPECT_EQ(errno, EINVAL); | ||
1005 | |||
1006 | ret = connect(self->fd, &addr, sizeof(addr)); | ||
1007 | EXPECT_EQ(ret, -1); | ||
1008 | EXPECT_EQ(errno, EISCONN); | ||
1009 | } | ||
1010 | |||
987 | TEST(non_established) { | 1011 | TEST(non_established) { |
988 | struct tls12_crypto_info_aes_gcm_256 tls12; | 1012 | struct tls12_crypto_info_aes_gcm_256 tls12; |
989 | struct sockaddr_in addr; | 1013 | struct sockaddr_in addr; |