diff options
author | Stefan Metzmacher <metze@samba.org> | 2019-04-30 14:21:22 +0200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2019-06-21 08:49:19 +0000 |
commit | 6fc7cc15048673d109042d7b40684ed63eb4ff9e (patch) | |
tree | d1b682b719bf07f5a2ce5ff313c0e3acc448c6cd | |
parent | 6d958af0b4cb6fd45cfda0298243859b3b043c6f (diff) | |
download | samba-6fc7cc15048673d109042d7b40684ed63eb4ff9e.tar.gz |
dnsp.idl: fix the dnsp_dns_addr_array definition
The endian changes are needed in order to get the following result
from the blobs Windows generated (see the torture test):
AddrArray: ARRAY(3)
AddrArray: struct dnsp_dns_addr
family : 0x0002 (2)
port : 0x0035 (53)
ipv4 : 172.31.99.33
ipv6 : 0000:0000:0000:0000:0000:0000:0000:0000
[MS-DNSP] states that the port is supposed to be ignored, but it's still
good to decode it as port '53' (0x0035) instead of '13568' (0x3500).
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13969
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
-rw-r--r-- | librpc/idl/dnsp.idl | 5 | ||||
-rw-r--r-- | selftest/knownfail.d/dnsp | 1 | ||||
-rw-r--r-- | source4/torture/ndr/dnsp.c | 1 |
3 files changed, 4 insertions, 3 deletions
diff --git a/librpc/idl/dnsp.idl b/librpc/idl/dnsp.idl index 55bac150990..3c35017a81b 100644 --- a/librpc/idl/dnsp.idl +++ b/librpc/idl/dnsp.idl @@ -174,8 +174,8 @@ interface dnsp typedef struct { uint16 family; - uint16 port; - ipv4address ipv4; + [flag(NDR_BIG_ENDIAN)] uint16 port; + [flag(NDR_BIG_ENDIAN)] ipv4address ipv4; ipv6address ipv6; uint8 pad[8]; uint32 unused[8]; @@ -187,6 +187,7 @@ interface dnsp uint32 Tag; uint16 Family; uint16 Reserved0; + uint32 Flags; uint32 MatchFlag; uint32 Reserved1; uint32 Reserved2; diff --git a/selftest/knownfail.d/dnsp b/selftest/knownfail.d/dnsp index 195feb4ca01..21254070882 100644 --- a/selftest/knownfail.d/dnsp +++ b/selftest/knownfail.d/dnsp @@ -1,2 +1 @@ -^samba4.local.ndr.*dnsp_DnsProperty_ZONE_MASTER_SERVERS_DA ^samba4.local.ndr.*dnsp_DnsProperty_DELETED_FROM_HOSTNAME diff --git a/source4/torture/ndr/dnsp.c b/source4/torture/ndr/dnsp.c index 83d8346eb4f..abe24b38b54 100644 --- a/source4/torture/ndr/dnsp.c +++ b/source4/torture/ndr/dnsp.c @@ -217,6 +217,7 @@ static bool dnsp_dnsProperty_addr_array_check(struct torture_context *tctx, torture_assert_int_equal(tctx, da->Tag, 0, "Tag"); torture_assert_int_equal(tctx, da->Family, 0, "Family"); torture_assert_int_equal(tctx, da->Reserved0, 0, "Reserved0"); + torture_assert_int_equal(tctx, da->Flags, 0, "Flags"); torture_assert_int_equal(tctx, da->MatchFlag, 0, "MatchFlag"); torture_assert_int_equal(tctx, da->Reserved1, 0, "Reserved1"); torture_assert_int_equal(tctx, da->Reserved2, 0, "Reserved2"); |