dns: first version of dsnRecord parser
authorAndrew Tridgell <tridge@samba.org>
Thu, 5 Aug 2010 05:20:13 +0000 (15:20 +1000)
committerAndrew Tridgell <tridge@samba.org>
Thu, 5 Aug 2010 07:31:28 +0000 (17:31 +1000)
librpc/idl/dnsp.idl [new file with mode: 0644]
librpc/idl/wscript_build
source4/librpc/wscript_build

diff --git a/librpc/idl/dnsp.idl b/librpc/idl/dnsp.idl
new file mode 100644 (file)
index 0000000..23b1bef
--- /dev/null
@@ -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
+               );
+}
index c5be1b7447c8955ab3aafeb1d1c57da9ae8d88d3..89bd83e95556bfc1384a27718d355ed1da886076 100644 (file)
@@ -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')
index b21647ad1605b10380cf8d0b97d4cdaadb1433b0..07d840b6f9f49cfa2466c71378df2dfaacbe046e 100755 (executable)
@@ -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'
        )