summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorJakub Kicinski <jakub.kicinski@netronome.com>2019-08-01 17:36:02 -0400
committerDavid S. Miller <davem@davemloft.net>2019-08-05 16:15:30 -0400
commitcd114d2e81f632104b3f1e804104060b97337410 (patch)
treeca3c4fc7202e38616e4d3ac060e34a36bef41a36 /tools
parent5d92e631b8be8965a90c144320f06e096081a551 (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.c24
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
987TEST_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
987TEST(non_established) { 1011TEST(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;