summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2019-04-30 14:21:22 +0200
committerAndrew Bartlett <abartlet@samba.org>2019-06-21 08:49:19 +0000
commit6fc7cc15048673d109042d7b40684ed63eb4ff9e (patch)
treed1b682b719bf07f5a2ce5ff313c0e3acc448c6cd
parent6d958af0b4cb6fd45cfda0298243859b3b043c6f (diff)
downloadsamba-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.idl5
-rw-r--r--selftest/knownfail.d/dnsp1
-rw-r--r--source4/torture/ndr/dnsp.c1
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");