diff options
author | Stefan Metzmacher <metze@samba.org> | 2007-02-19 00:28:11 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:48:35 -0500 |
commit | ad7e7249b6d6e2e37868ff13236a60cfbadb7ef0 (patch) | |
tree | 2c902b0e4bfe748c992f8692bd2f16a73c2baaa3 /source4/librpc/idl | |
parent | 5340489807985b3bb4c10eacfa701d643ee7a36c (diff) | |
download | samba-ad7e7249b6d6e2e37868ff13236a60cfbadb7ef0.tar.gz samba-ad7e7249b6d6e2e37868ff13236a60cfbadb7ef0.tar.bz2 samba-ad7e7249b6d6e2e37868ff13236a60cfbadb7ef0.zip |
r21441: create a union for the PrimaryKerberosBlob content
so that ndr_pull will fail if version isn't 3 and we notice
if the format changes...
metze
(This used to be commit 91f7a094cfd04405c224b9579146d814cba507b3)
Diffstat (limited to 'source4/librpc/idl')
-rw-r--r-- | source4/librpc/idl/drsblobs.idl | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/source4/librpc/idl/drsblobs.idl b/source4/librpc/idl/drsblobs.idl index ec2e2163f1..3b912548a2 100644 --- a/source4/librpc/idl/drsblobs.idl +++ b/source4/librpc/idl/drsblobs.idl @@ -270,17 +270,25 @@ interface drsblobs { [value(0)] uint32 unknown2; } package_PrimaryKerberosKey; - typedef [public] struct { - [value(3)] uint32 version; - uint16 num_keys1; - uint16 num_keys2; + typedef struct { + uint16 num_keys; + uint16 num_old_keys; package_PrimaryKerberosString salt; [value(0)] uint32 unknown1; [value(0)] uint32 unknown2; - package_PrimaryKerberosKey keys1[num_keys1]; - package_PrimaryKerberosKey keys2[num_keys2]; - udlong unknown3_1[num_keys1]; - udlong unknown3_2[num_keys2]; + package_PrimaryKerberosKey keys[num_keys]; + package_PrimaryKerberosKey old_keys[num_old_keys]; + udlong unknown3[num_keys]; + udlong unknown3_old[num_old_keys]; + } package_PrimaryKerberosCtr3; + + typedef [nodiscriminant] union { + [case(3)] package_PrimaryKerberosCtr3 ctr3; + } package_PrimaryKerberosCtr; + + typedef [public] struct { + [value(3)] uint32 version; + [switch_is(version)] package_PrimaryKerberosCtr ctr; } package_PrimaryKerberosBlob; void decode_PrimaryKerberos( |