summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2010-08-05 15:20:13 +1000
committerAndrew Tridgell <tridge@samba.org>2010-08-05 17:31:28 +1000
commit2883bc94c76bc54187bb9bd0db1a36dd482a0aea (patch)
treefbb19c7b2aeccfae8a95ef18c739dddfd562b91a
parente7a6a3ec0da01666c8e0c9772007ce7146df9d75 (diff)
downloadsamba-2883bc94c76bc54187bb9bd0db1a36dd482a0aea.tar.gz
samba-2883bc94c76bc54187bb9bd0db1a36dd482a0aea.tar.bz2
samba-2883bc94c76bc54187bb9bd0db1a36dd482a0aea.zip
dns: first version of dsnRecord parser
-rw-r--r--librpc/idl/dnsp.idl45
-rw-r--r--librpc/idl/wscript_build2
-rwxr-xr-xsource4/librpc/wscript_build7
3 files changed, 52 insertions, 2 deletions
diff --git a/librpc/idl/dnsp.idl b/librpc/idl/dnsp.idl
new file mode 100644
index 0000000000..23b1bef813
--- /dev/null
+++ b/librpc/idl/dnsp.idl
@@ -0,0 +1,45 @@
+#include "idl_types.h"
+
+/*
+ IDL structures for DNSP structures
+
+ See [MS-DNSP].pdf in MCPP for details
+*/
+
+import "misc.idl";
+
+/*
+ note that this is not a real RPC interface. We are just using PIDL
+ to save us a lot of tedious hand parsing of the dnsRecord
+ attribute. The uuid is randomly generated.
+ */
+[
+ uuid("bdd66e9e-d45f-4202-85c0-6132edc4f30a"),
+ version(0.0),
+ pointer_default(unique),
+ helpstring("DNSP interfaces")
+]
+
+interface dnsp
+{
+ /* this is the format for the dnsRecord attribute in the DNS
+ partitions in AD */
+ typedef [public] struct {
+ uint16 wDataLength;
+ uint16 wType;
+ uint32 dwFlags;
+ uint32 dwSerial;
+ uint32 dwTtlSeconds;
+ uint32 dwTimeStamp;
+ uint32 dwReserved;
+ [flag(NDR_BIG_ENDIAN)] ipv4address ip;
+ } dnsp_DnssrvRpcRecord;
+
+
+ /*
+ this is a convenience hook for ndrdump
+ */
+ void decode_DnssrvRpcRecord(
+ [in] dnsp_DnssrvRpcRecord blob
+ );
+}
diff --git a/librpc/idl/wscript_build b/librpc/idl/wscript_build
index c5be1b7447..89bd83e955 100644
--- a/librpc/idl/wscript_build
+++ b/librpc/idl/wscript_build
@@ -20,6 +20,6 @@ bld.SAMBA_PIDL_LIST('PIDL',
output_dir='../gen_ndr')
bld.SAMBA_PIDL_LIST('PIDL',
- 'rap.idl idmap.idl',
+ 'rap.idl idmap.idl dnsp.idl',
options='--header --ndr-parser',
output_dir='../gen_ndr')
diff --git a/source4/librpc/wscript_build b/source4/librpc/wscript_build
index b21647ad16..07d840b6f9 100755
--- a/source4/librpc/wscript_build
+++ b/source4/librpc/wscript_build
@@ -335,6 +335,11 @@ bld.SAMBA_SUBSYSTEM('NDR_NTLMSSP',
public_deps='LIBNDR NDR_STANDARD'
)
+bld.SAMBA_SUBSYSTEM('NDR_DNSP',
+ source='../../librpc/gen_ndr/ndr_dnsp.c',
+ public_deps='LIBNDR'
+ )
+
bld.SAMBA_LIBRARY('NDR_STANDARD',
source='../../librpc/gen_ndr/ndr_echo.c ../../librpc/gen_ndr/ndr_lsa.c ../../librpc/gen_ndr/ndr_samr.c ../../librpc/ndr/ndr_netlogon.c ../../librpc/gen_ndr/ndr_netlogon.c ../../librpc/gen_ndr/ndr_dfs.c ../../librpc/gen_ndr/ndr_atsvc.c ../../librpc/gen_ndr/ndr_wkssvc.c ../../librpc/gen_ndr/ndr_srvsvc.c ../../librpc/ndr/ndr_svcctl.c ../../librpc/gen_ndr/ndr_svcctl.c ../../librpc/gen_ndr/ndr_winreg.c ../../librpc/gen_ndr/ndr_initshutdown.c ../../librpc/gen_ndr/ndr_eventlog.c ../../librpc/gen_ndr/ndr_ntsvcs.c',
@@ -351,7 +356,7 @@ bld.SAMBA_PIDL_TABLES('GEN_NDR_TABLES', 'gen_ndr/tables.c')
bld.SAMBA_SUBSYSTEM('NDR_TABLE',
source='../../librpc/ndr/ndr_table.c gen_ndr/tables.c',
- public_deps='NDR_STANDARD NDR_AUDIOSRV NDR_DSBACKUP NDR_EFS NDR_DRSUAPI NDR_POLICYAGENT NDR_UNIXINFO NDR_SPOOLSS NDR_EPMAPPER NDR_DBGIDL NDR_DSSETUP NDR_MSGSVC NDR_WINSIF NDR_MGMT NDR_PROTECTED_STORAGE NDR_OXIDRESOLVER NDR_REMACT NDR_WZCSVC NDR_BROWSER NDR_W32TIME NDR_SCERPC NDR_TRKWKS NDR_KEYSVC NDR_KRB5PAC NDR_XATTR NDR_SCHANNEL NDR_ROT NDR_DRSBLOBS NDR_NBT NDR_WINSREPL NDR_SECURITY NDR_DNSSERVER NDR_WINSTATION NDR_IRPC NDR_OPENDB NDR_SASL_HELPERS NDR_NOTIFY NDR_WINBIND NDR_FRSRPC NDR_FRSAPI NDR_FRSTRANS NDR_NFS4ACL NDR_NTP_SIGND NDR_DCOM NDR_WMI NDR_NAMED_PIPE_AUTH NDR_NTLMSSP NDR_DFSBLOBS',
+ public_deps='NDR_STANDARD NDR_AUDIOSRV NDR_DSBACKUP NDR_EFS NDR_DRSUAPI NDR_POLICYAGENT NDR_UNIXINFO NDR_SPOOLSS NDR_EPMAPPER NDR_DBGIDL NDR_DSSETUP NDR_MSGSVC NDR_WINSIF NDR_MGMT NDR_PROTECTED_STORAGE NDR_OXIDRESOLVER NDR_REMACT NDR_WZCSVC NDR_BROWSER NDR_W32TIME NDR_SCERPC NDR_TRKWKS NDR_KEYSVC NDR_KRB5PAC NDR_XATTR NDR_SCHANNEL NDR_ROT NDR_DRSBLOBS NDR_NBT NDR_WINSREPL NDR_SECURITY NDR_DNSSERVER NDR_WINSTATION NDR_IRPC NDR_OPENDB NDR_SASL_HELPERS NDR_NOTIFY NDR_WINBIND NDR_FRSRPC NDR_FRSAPI NDR_FRSTRANS NDR_NFS4ACL NDR_NTP_SIGND NDR_DCOM NDR_WMI NDR_NAMED_PIPE_AUTH NDR_NTLMSSP NDR_DFSBLOBS NDR_DNSP',
depends_on='GEN_NDR_TABLES'
)