Previous checkin did not make sense. We can not have a union without having the
union case value stored as a separate variable or else the receiving side will
not know how to decode the packet.
Therefore it can not be a union at all. Instead we have a REF pointer to a ulong
holding the number of elements, then a unique pointer to a conformant array
of structures.
Thus, the content of the reply packet for function_24 as well as
dsrolegetprimarydomaininfo can not be
[ref] PRIMARY_DOMAIN_INFO_EX_UNION *pdi;
but instead MUST be
long num_entries;
[unique][size_is(num_entries)] PRIMARY_DOMAIN_INFO_EX *pdi;
svn path=/trunk/; revision=6559
Additional cleanups added when no longer nessecary to pass through two levels of pointers to get to the DOMAIN_CONTROLLER_INFO structure in the code.
svn path=/trunk/; revision=6550
the same long name, short name, or filter name, and abort if there are.
Fix the duplicate names that found (and another name error found while
fixing one of those errors).
svn path=/trunk/; revision=6425
UNIX-style "time_t" values (seconds since January 1, 1970, 00:00:00 GMT
- yes, GMT, not local time as in UTIME values).
They also appear to require 4-byte alignment.
svn path=/trunk/; revision=5855
Added names for all structure fields and fixed up bottom half of the structure which was completely broken and wrong.
Added IDL definition for this structure. Implementors may want to look at it.
svn path=/trunk/; revision=5829
Changed the name of SAM_ACCOUNT_INFO to the real name : DELTA_USER
also fixed some bugs in this structure. Surprised that ethereal could
dissect this structure at all previously since the structure description was
broken. Pure luck I guess.
Other implementors of NETLOGON would benefit from looking at ethereal source
in the future since it seems the public IDL definitions for this interface is
very buggy.
svn path=/trunk/; revision=5823
static, and add a new "packet-data.h" to declare "proto_data".
Display escape sequences in octal in the IAPP dissector, as is now done
in the RADIUS dissector.
svn path=/trunk/; revision=5441
"packet-dcerpc-nt.c", and registers "dcerpc_smb_init()" as an
initialization routine. Take the ett_ registration out of the latter
routine, and also take out the "do this only once" stuff.
Get rid of the initialization routines for netlogon, samr, and spoolss;
they just call "dcerpc_smb_init()", which is now an initialization
routine of its own.
The policy hash initialization should be done before every capture, so
it should be done in an initialization routine, and should not do any
"do this only once" stuff. It should also be called only once before
every capture, rather than 3 times.
The ett_ initialization should, however, be done at the same time all
other ett_ initialization is done - at protocol registration time - so
it should be done in a "proto_register_" routine.
This fixes a bug I saw wherein
1) the tree for Unicode strings was open by default
and
2) if you closed one and then exited, Ethereal would crash.
The problem is that "proto_register_subtree_array()" doesn't expand the
array, it just bumps the number of registered ett_ values; the array is
allocated in "proto_init()". As such, if you register ett_ values with
"proto_register_subtree_array()" *after* "proto_init()" is called - and,
even for the first capture, initialization routines are called after
"proto_init()" is called - you will get ett_ numbers that go past the
number of elements in the array.
Move the declaration of "ett_nt_unicode_string" to "packet-dcerpc-nt.h",
as it's exported from "packet-dcerpc-nt.c".
Get rid of the declaration of "dcerpc_smb_init()" in
"packet-dcerpc-nt.h", and make it static, as it's no longer called from
outside "packet-dcerpc-nt.c".
svn path=/trunk/; revision=5196