Age | Commit message (Collapse) | Author | Files | Lines |
|
(This used to be commit 3fd750bd54f150ff62fd8165406bd26d03d624cf)
|
|
Guenther
(This used to be commit 4468b1cc49bd4a92c08aeb76419abfe00791b2c2)
|
|
Guenther
(This used to be commit 767867c3ee126c3832750d1b1e7de81005c4eaff)
|
|
(This used to be commit 61cb52b65b9be2fd09a5c5a02536600c0ac500f7)
|
|
Samba3's IDL.
(This used to be commit 15a4b81ba0b5eeb25126a0b1a7bea7d3bf921ab2)
|
|
(This used to be commit 83a47e30b59f5289cdcb68ba54aa236795bc42b2)
|
|
they test is broken at the moment.
(This used to be commit 8f039a25cd75e4acdaec0afce3cc159b0abe99ec)
|
|
pidl bug,
so there are still two tests commented out.
(This used to be commit b7f6ec5c1cf6f782991b0f4f05283d6da2c2dfe8)
|
|
(This used to be commit 4d52b429261de6712e25d9db9d3be597ff1d74b8)
|
|
general. Since
we're running the testsuite mainly against ourselves, we only check that the
push/pull functions work in our own environment, not whether they generate/parse
the same data that other systems do.
This commit adds the infrastructure for a testsuite for just the marshalling
code. The idea is that you provide a data blob, a function name and a function
to check the resulting struct for correctness.
(This used to be commit 9bd2421e44dcfcaf08ad61cf25bb7714cf885517)
|
|
(This used to be commit e8cdfd0a61354b7a5da43c27e9af4695cfa168d6)
|
|
(This used to be commit 736330d23b1f723d3564043c0670dbd6bee3742f)
|
|
(This used to be commit 48e6df59444a78dc268b84c5f94787de09d41908)
|
|
(This used to be commit 347ae9628202ca4de4318ef8156999239aad9192)
|
|
(This used to be commit d1364ef0cd8f1a64f44476476323ab390ac4de48)
|
|
Jerry, there is a big difference on the wire between these two:
[out] uint32 x;
and
[out] uint32 *x;
if you change from
[out] uint32 x;
then you need to change to:
[out,ref] uint32 *x;
otherwise it changes the format on the wire, which means we are no
longer compatible with MS servers.
but be aware that even if you change to a ref ptr, you also need to
change all the client code to set all the return variables in the out
part of the structure. That's why I don't like the MIDL restriction of
forcing the use of ref pointers for output variables - it makes life
much harder when writing client code, and makes the code much more
error prone (just look at all the extra code needed to make this work
again).
I know we could auto-allocate these variables in the generated client
side NDR code, but if we did that then we would have no way of doing a
_real_ ref out pointer, which we really wanted to set to some already
allocated variable.
So please hold off on changing our idl to use the MIDL convention for
output variables until Jelmer and I have had a good "chat" about this :-)
(This used to be commit 555aed43ba3c08360ca7fa921622b80732a7f657)
|
|
(This used to be commit 694677dafefdd94fa0a9bed93efab70c528dcb26)
|
|
(This used to be commit d03aaecdcd62ecf2910f0d0570184a0c42874574)
|
|
in having pointers for outgoing data when you can already modify the top-level
element.
This can be overridden (temporarily) by specifying the new "keepref"
attribute. Once we've removed keepref from all IDL files, I'll remove this
attribute as well.
(This used to be commit bdc6dd37503ced8322a671d225122ccffbb8bfec)
|
|
types from .h file that are now in pidls' aliases list.
(This used to be commit fadb9529ec7e1208b9f58a4e8b633d5a50633e82)
|
|
try to include just the BASENAME.h files (containing only structs)
(This used to be commit 3dd477ca5147f28a962b8437e2611a8222d706bd)
|
|
metze
(This used to be commit 79293227d6186ba15177603ede2b8d8b33e16d3a)
|
|
work again. The automatic value() is fine for the length, but cannot
be used for the size as the size is not the number of bytes being
sent, but the number of bytes that the server is allowed to use in the
reply
(This used to be commit 46e91f269c83707863a726e716325eade38e1142)
|
|
the other interfaces.
(This used to be commit 8eb582b5780188b6304c560b3e84fd7d75c483f8)
|
|
(This used to be commit 99444c129d08fe3e3e381b04c2da5ea5c9c10270)
|
|
(This used to be commit 7e057e6bdaf82bf8acdfc5d656dd75f367e70bf2)
|
|
- fixed winreg_GetKeySecurity() to use a sec_info field correctly
- simplied the winreg torture code, removing the separate opens for
each hive
- added torture cleanup code in winreg test
- added 'create with security descriptor' in the winreg torture test
(This used to be commit f20695decd587f7b6bbdbd4861441bd19ab85078)
|
|
descriptor. To keep it simple I just use normal IDL buffers for now,
avoiding the complex methods metze used in spoolss. We might change
that later
Also added decoding of the security_descriptor in
winreg_GetKeySecurity() in smbtorture
(This used to be commit 439f34a9621e2e96329c30cfed8d78b8fdfbd8a2)
|
|
debug logs
- got rid of winreg_Time, as its just a NTTIME
(This used to be commit 198aff894eb63e6731daf68474d23a2abe21fbb9)
|
|
(This used to be commit 8aff6a0bd808358162b646514d996ad432bfb70d)
|
|
calls. The previous IDL was just a workaround for the limitations of
our older rpc infrastructure. Now that Jelmer has added much improved
string support using the charset keyword we can correctly implemenent
the unusual winreg string buffers.
Jelmer, note the little comment I put on winreg_StringBuf() about why
I couldn't use [value()] for the length field.
This also fixes EnumKey() and EnumValue() to use NTTIME fields for the
last_changed_time. I don't know why we were using a pair of uint32's,
as it is just a NTTIME.
(This used to be commit 8354b016122cc4f3cff042b3ada1de07e1614eb7)
|
|
metze
(This used to be commit 475b413cfea03c749535df8e100f0339ffecf590)
|
|
- map the result code from rpc calls into the ejs objects
- treat winreg_String like lsa_String, hiding the length elements
(This used to be commit 2f6311c9a34db46f9a4b1f31e865a373b15702bf)
|
|
actually a uint16 * without the [string] attribute, a la the the
system_name argument to samr_Connect().
Initialising the pointer to NULL is sufficient and we still pass the
RPC-WINREG test against win2k3.
(This used to be commit 407d962dacf7c833b36cb739e48fe97226968a34)
|
|
they slightly changed the semantics of value() in pidl, which broke
a optimisation hack in some of our IDL files.
I've changed the idl files to remove the hack for now. Sometime we
need to find a better way to handle these :-)
(This used to be commit 765f75ea630b13b1605409ff47a52cc11a1e496b)
|
|
us somewhat cleaner IDL.
(This used to be commit b7b01bccd101654d1f5ec83cba9dea7e9431d6ce)
|
|
should
now able to use constructions like these:
[size_is(20)] int *x; -> Pointer to array of 20 ints
[size_is(20)] int x[]; -> Array of 20 ints
[size_is(20)] int *x[]; -> Array of 20 pointers to ints
[size_is(20,)] int *x[] -> Array of 20 pointers to ints
[size_is(,20)] int *x[]; -> Pointer to array of 20 ints
[size_is(,20)] int **x; -> Pointer to pointer to array of 20 ints
[size_is(20)] int x[][30]; -> 20 blocks of 30 ints
(This used to be commit ecf583da71c2f80be124c17fccdcb284b47e0695)
|
|
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
|
|
Implement push side of NDR_LEN4|NDR_NOTERM strings (pull side was already present)
(This used to be commit ea61ec1122841716ed5d90085ba79e7bf691bd6a)
|
|
used to be)
Add oxid mapping table support in DCOM
(This used to be commit e193555f0eec2dda8c8760e9668181200fef0a1e)
|
|
array can now only be :
type *name[];
rather then :
type *name;
which was supported in the past. Warnings will be given when the first
syntax is used. Reasons for this change in behaviour include improved
readability and the fact that the second format makes dealing with multiple
levels of pointers harder.
(This used to be commit a416de5825c540fd3741731c4be05e9a659a6fdb)
|
|
(This used to be commit 3538130bf5d656ed4b0e2c84294e995814860e34)
|
|
IDL for NotifyChangeKeyValue
(This used to be commit a40214243136ed5208a1bec494ad1fbf821524ba)
|
|
Support CreateKey in the RPC registry backend
(This used to be commit ad8d9e6f73619332d93c38a1879233e199e8ba25)
|
|
when dangerous tests are enabled.
(This used to be commit a763bd838558bdd7bcab3ca7ee91c1846d7a950f)
|
|
Initialisation data pointer in QueryValue torture test
(This used to be commit 72618dfe95c785d3a3a71cc4a70b59696f2d418e)
|
|
(This used to be commit 1c49de51aeb6041a3b53b8da7dc8e2bcf089bfe0)
|
|
of arrays.
(This used to be commit b47e203a054e26d5d0c133a3c3b8d9502bd6ac69)
|
|
QueryValue
(This used to be commit 659d0295314c6a070698fc81223044f4d7366993)
|
|
Thanks to Michael Allen for some hints on what was wrong with the previous IDL.
(This used to be commit 0fa6d847433eb281eaff15b8be4a26f898689f0a)
|