diff options
-rw-r--r-- | source3/Makefile.in | 1 | ||||
-rw-r--r-- | source3/torture/proto.h | 1 | ||||
-rw-r--r-- | source3/torture/test_smbsock_any_connect.c | 46 | ||||
-rw-r--r-- | source3/torture/torture.c | 1 |
4 files changed, 49 insertions, 0 deletions
diff --git a/source3/Makefile.in b/source3/Makefile.in index 477ecaaf03..3e49869a1b 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -1199,6 +1199,7 @@ SMBTORTURE_OBJ1 = torture/torture.o torture/nbio.o torture/scanner.o torture/uta torture/denytest.o torture/mangle_test.o \ torture/nbench.o \ torture/test_async_echo.o \ + torture/test_smbsock_any_connect.o \ torture/test_posix_append.o SMBTORTURE_OBJ = $(SMBTORTURE_OBJ1) $(PARAM_OBJ) $(TLDAP_OBJ) \ diff --git a/source3/torture/proto.h b/source3/torture/proto.h index 63004345ca..a22113e7c6 100644 --- a/source3/torture/proto.h +++ b/source3/torture/proto.h @@ -85,5 +85,6 @@ bool run_posix_append(int dummy); bool run_nbench2(int dummy); bool run_async_echo(int dummy); +bool run_smb_any_connect(int dummy); #endif /* __TORTURE_H__ */ diff --git a/source3/torture/test_smbsock_any_connect.c b/source3/torture/test_smbsock_any_connect.c new file mode 100644 index 0000000000..4ebb4f9b39 --- /dev/null +++ b/source3/torture/test_smbsock_any_connect.c @@ -0,0 +1,46 @@ +/* + Unix SMB/CIFS implementation. + Test the smb_any_connect functionality + Copyright (C) Volker Lendecke 2010 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "includes.h" +#include "torture/proto.h" + +bool run_smb_any_connect(int dummy) +{ + int fd; + NTSTATUS status; + struct sockaddr_storage addrs[5]; + size_t chosen_index; + uint16_t port; + + interpret_string_addr(&addrs[0], "192.168.99.5", 0); + interpret_string_addr(&addrs[1], "192.168.99.6", 0); + interpret_string_addr(&addrs[2], "192.168.99.7", 0); + interpret_string_addr(&addrs[3], "192.168.99.8", 0); + interpret_string_addr(&addrs[4], "192.168.99.9", 0); + + status = smbsock_any_connect(addrs, NULL, ARRAY_SIZE(addrs), &fd, + &chosen_index, &port); + + d_printf("smbsock_any_connect returned %s (fd %d)\n", + nt_errstr(status), NT_STATUS_IS_OK(status) ? fd : -1); + if (NT_STATUS_IS_OK(status)) { + close(fd); + } + return true; +} diff --git a/source3/torture/torture.c b/source3/torture/torture.c index f1f2e99760..2eb2566681 100644 --- a/source3/torture/torture.c +++ b/source3/torture/torture.c @@ -7849,6 +7849,7 @@ static struct { { "STREAMERROR", run_streamerror }, { "NOTIFY-BENCH", run_notify_bench }, { "BAD-NBT-SESSION", run_bad_nbt_session }, + { "SMB-ANY-CONNECT", run_smb_any_connect }, { "LOCAL-SUBSTITUTE", run_local_substitute, 0}, { "LOCAL-GENCACHE", run_local_gencache, 0}, { "LOCAL-TALLOC-DICT", run_local_talloc_dict, 0}, |