diff options
author | Stefan Metzmacher <metze@samba.org> | 2010-02-01 14:55:14 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2010-02-01 15:32:36 +0100 |
commit | 70779a46a7b7f6e5c00eba048dbf653d86bc07d4 (patch) | |
tree | 32a9ffd51ed7d5468024df18385d8641365448f1 /source4/torture | |
parent | c1d8dc01fc6f0fa3a22a405419917d880b832761 (diff) | |
download | samba-70779a46a7b7f6e5c00eba048dbf653d86bc07d4.tar.gz |
s4:NBT-WINS: pass the expected rcode of the name registration to the test code
metze
Diffstat (limited to 'source4/torture')
-rw-r--r-- | source4/torture/nbt/wins.c | 57 |
1 files changed, 39 insertions, 18 deletions
diff --git a/source4/torture/nbt/wins.c b/source4/torture/nbt/wins.c index d69c518aa35..092215e2f11 100644 --- a/source4/torture/nbt/wins.c +++ b/source4/torture/nbt/wins.c @@ -49,7 +49,8 @@ */ static bool nbt_test_wins_name(struct torture_context *tctx, const char *address, struct nbt_name *name, uint16_t nb_flags, - bool try_low_port) + bool try_low_port, + uint8_t register_rcode) { struct nbt_name_register_wins io; struct nbt_name_register name_register; @@ -200,7 +201,11 @@ static bool nbt_test_wins_name(struct torture_context *tctx, const char *address torture_assert_ntstatus_ok(tctx, status, talloc_asprintf(tctx, "Bad response from %s for name register", address)); CHECK_STRING(tctx, io.out.wins_server, address); - CHECK_VALUE(tctx, io.out.rcode, 0); + CHECK_VALUE(tctx, io.out.rcode, register_rcode); + + if (register_rcode != NBT_RCODE_OK) { + return true; + } if (name->type != NBT_NAME_MASTER && name->type != NBT_NAME_LOGON && @@ -418,54 +423,70 @@ static bool nbt_test_wins(struct torture_context *tctx) name.type = NBT_NAME_CLIENT; name.scope = NULL; - ret &= nbt_test_wins_name(tctx, address, &name, NBT_NODE_H, true); + ret &= nbt_test_wins_name(tctx, address, &name, + NBT_NODE_H, true, NBT_RCODE_OK); name.type = NBT_NAME_MASTER; - ret &= nbt_test_wins_name(tctx, address, &name, NBT_NODE_H, false); + ret &= nbt_test_wins_name(tctx, address, &name, + NBT_NODE_H, false, NBT_RCODE_OK); - ret &= nbt_test_wins_name(tctx, address, &name, NBT_NODE_H | NBT_NM_GROUP, false); + ret &= nbt_test_wins_name(tctx, address, &name, + NBT_NODE_H | NBT_NM_GROUP, false, NBT_RCODE_OK); name.type = NBT_NAME_SERVER; - ret &= nbt_test_wins_name(tctx, address, &name, NBT_NODE_H, true); + ret &= nbt_test_wins_name(tctx, address, &name, + NBT_NODE_H, true, NBT_RCODE_OK); name.type = NBT_NAME_LOGON; - ret &= nbt_test_wins_name(tctx, address, &name, NBT_NODE_H | NBT_NM_GROUP, false); + ret &= nbt_test_wins_name(tctx, address, &name, + NBT_NODE_H | NBT_NM_GROUP, false, NBT_RCODE_OK); name.type = NBT_NAME_BROWSER; - ret &= nbt_test_wins_name(tctx, address, &name, NBT_NODE_H | NBT_NM_GROUP, false); + ret &= nbt_test_wins_name(tctx, address, &name, + NBT_NODE_H | NBT_NM_GROUP, false, NBT_RCODE_OK); name.type = NBT_NAME_PDC; - ret &= nbt_test_wins_name(tctx, address, &name, NBT_NODE_H, true); + ret &= nbt_test_wins_name(tctx, address, &name, + NBT_NODE_H, true, NBT_RCODE_OK); name.type = 0xBF; - ret &= nbt_test_wins_name(tctx, address, &name, NBT_NODE_H, true); + ret &= nbt_test_wins_name(tctx, address, &name, + NBT_NODE_H, true, NBT_RCODE_OK); name.type = 0xBE; - ret &= nbt_test_wins_name(tctx, address, &name, NBT_NODE_H, false); + ret &= nbt_test_wins_name(tctx, address, &name, + NBT_NODE_H, false, NBT_RCODE_OK); name.scope = "example"; name.type = 0x72; - ret &= nbt_test_wins_name(tctx, address, &name, NBT_NODE_H, true); + ret &= nbt_test_wins_name(tctx, address, &name, + NBT_NODE_H, true, NBT_RCODE_OK); name.scope = "example"; name.type = 0x71; - ret &= nbt_test_wins_name(tctx, address, &name, NBT_NODE_H | NBT_NM_GROUP, false); + ret &= nbt_test_wins_name(tctx, address, &name, + NBT_NODE_H | NBT_NM_GROUP, false, NBT_RCODE_OK); name.scope = "foo.example.com"; name.type = 0x72; - ret &= nbt_test_wins_name(tctx, address, &name, NBT_NODE_H, false); + ret &= nbt_test_wins_name(tctx, address, &name, + NBT_NODE_H, false, NBT_RCODE_OK); name.name = talloc_asprintf(tctx, "_T\01-%5u.foo", r); - ret &= nbt_test_wins_name(tctx, address, &name, NBT_NODE_H, false); + ret &= nbt_test_wins_name(tctx, address, &name, + NBT_NODE_H, false, NBT_RCODE_OK); name.name = ""; - ret &= nbt_test_wins_name(tctx, address, &name, NBT_NODE_H, false); + ret &= nbt_test_wins_name(tctx, address, &name, + NBT_NODE_H, false, NBT_RCODE_OK); name.name = talloc_asprintf(tctx, "."); - ret &= nbt_test_wins_name(tctx, address, &name, NBT_NODE_H, false); + ret &= nbt_test_wins_name(tctx, address, &name, + NBT_NODE_H, false, NBT_RCODE_OK); name.name = talloc_asprintf(tctx, "%5u-\377\200\300FOO", r); - ret &= nbt_test_wins_name(tctx, address, &name, NBT_NODE_H, false); + ret &= nbt_test_wins_name(tctx, address, &name, + NBT_NODE_H, false, NBT_RCODE_OK); return ret; } |