diff options
author | Andrew Tridgell <tridge@samba.org> | 2010-08-05 15:20:13 +1000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2010-08-05 17:31:28 +1000 |
commit | 2883bc94c76bc54187bb9bd0db1a36dd482a0aea (patch) | |
tree | fbb19c7b2aeccfae8a95ef18c739dddfd562b91a | |
parent | e7a6a3ec0da01666c8e0c9772007ce7146df9d75 (diff) | |
download | samba-2883bc94c76bc54187bb9bd0db1a36dd482a0aea.tar.gz samba-2883bc94c76bc54187bb9bd0db1a36dd482a0aea.tar.bz2 samba-2883bc94c76bc54187bb9bd0db1a36dd482a0aea.zip |
dns: first version of dsnRecord parser
-rw-r--r-- | librpc/idl/dnsp.idl | 45 | ||||
-rw-r--r-- | librpc/idl/wscript_build | 2 | ||||
-rwxr-xr-x | source4/librpc/wscript_build | 7 |
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' ) |