diff options
author | Rafal Szczesniak <mimir@samba.org> | 2005-06-21 20:22:38 +0000 |
---|---|---|
committer | Rafal Szczesniak <mimir@samba.org> | 2005-06-21 20:22:38 +0000 |
commit | d1e49124daad2a6ebb91ac266ea2385d51b2c987 (patch) | |
tree | 60f86475187acd67d47463fe4087bac53946bd55 /source/torture/libnet | |
parent | 3c1a204e051bbd2a0b59cab0604bfb7833c9bf2a (diff) | |
download | samba-d1e49124daad2a6ebb91ac266ea2385d51b2c987.tar.gz samba-d1e49124daad2a6ebb91ac266ea2385d51b2c987.tar.xz samba-d1e49124daad2a6ebb91ac266ea2385d51b2c987.zip |
r7816: Implementation of "shortcut" function for those (probably many) who
don't like to bother with netbios type names when looking for common
types: hosts (servers) and domain controllers. Also, apropriate tests
rafal
Diffstat (limited to 'source/torture/libnet')
-rw-r--r-- | source/torture/libnet/libnet_lookup.c | 58 |
1 files changed, 54 insertions, 4 deletions
diff --git a/source/torture/libnet/libnet_lookup.c b/source/torture/libnet/libnet_lookup.c index 058d43574c1..b101f629602 100644 --- a/source/torture/libnet/libnet_lookup.c +++ b/source/torture/libnet/libnet_lookup.c @@ -32,21 +32,71 @@ BOOL torture_lookup(void) TALLOC_CTX *mem_ctx; struct libnet_Lookup lookup; const char address[16]; - const char* methods[] = { "wins", "bcast", NULL }; + const char** methods = lp_name_resolve_order(); - mem_ctx = talloc_init("test_userinfo"); + mem_ctx = talloc_init("test_lookup"); lookup.in.hostname = lp_netbios_name(); - lookup.in.methods = NULL; - lookup.in.type = NBT_NAME_SERVER; + lookup.in.methods = lp_name_resolve_order(); + lookup.in.type = NBT_NAME_CLIENT; lookup.out.address = (const char**)&address; status = libnet_Lookup(mem_ctx, &lookup); if (!NT_STATUS_IS_OK(status)) { + printf("Couldn't lookup name %s: %s\n", lookup.in.hostname, nt_errstr(status)); + return False; + } + + return True; +} + + +BOOL torture_lookup_host(void) +{ + NTSTATUS status; + TALLOC_CTX *mem_ctx; + struct libnet_Lookup lookup; + const char address[16]; + const char** methods = lp_name_resolve_order(); + + mem_ctx = talloc_init("test_lookup_host"); + + lookup.in.hostname = lp_netbios_name(); + lookup.in.methods = lp_name_resolve_order(); + lookup.out.address = (const char**)&address; + + status = libnet_LookupHost(mem_ctx, &lookup); + + if (!NT_STATUS_IS_OK(status)) { printf("Couldn't lookup host %s: %s\n", lookup.in.hostname, nt_errstr(status)); return False; } return True; } + + +BOOL torture_lookup_pdc(void) +{ + NTSTATUS status; + TALLOC_CTX *mem_ctx; + struct libnet_Lookup lookup; + const char address[16]; + const char** methods = lp_name_resolve_order(); + + mem_ctx = talloc_init("test_lookup_pdc"); + + lookup.in.hostname = lp_workgroup(); + lookup.in.methods = lp_name_resolve_order(); + lookup.out.address = (const char**)&address; + + status = libnet_LookupPdc(mem_ctx, &lookup); + + if (!NT_STATUS_IS_OK(status)) { + printf("Couldn't lookup pdc %s: %s\n", lookup.in.hostname, nt_errstr(status)); + return False; + } + + return True; +} |