Age | Commit message (Collapse) | Author | Files | Lines |
|
(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)
|
|
The thing that finally convinced me that minimal includes was worth
pursuing for rpc was a compiler (tcc) that failed to build Samba due
to reaching internal limits of the size of include files. Also the
fact that includes.h.gch was 16MB, which really seems excessive. This
patch brings it back to 12M, which is still too large, but
better. Note that this patch speeds up compile times for both the pch
and non-pch case.
This change also includes the addition iof a "depends()" option in our
IDL files, allowing you to specify that one IDL file depends on
another. This capability was needed for the auto-includes generation.
(This used to be commit b8f5fa8ac8e8725f3d321004f0aedf4246fc6b49)
|
|
the build on systems like solaris with the SunPRO compiler
(This used to be commit fe913ad11bf1c5e9fe04ed769a93b0ea16aa0a34)
|
|
transports.
ncalrpc uses the new config option "ncalrpc dir" for creating unix sockets.
(This used to be commit b15cfbe2512961a199ecb069730d9a19787579f5)
|
|
specifying a endpoint is now also 'endpoint' instead of 'endpoints'. The
default endpoint (if none is specified) is still "ncacn_np:[\\pipe\\ifacename]",
where ifacename is the name of the interface.
Examples:
[
uuid(60a15ec5-4de8-11d7-a637-005056a20182),
endpoint("ncacn_np:[\\pipe\\rpcecho]", "ncacn_ip_tcp:")
]
interface rpcecho
{
void dummy();
}
dcerpc_binding is now converted to ep_description in the server, but I hope to
completely eliminate ep_description later on.
The eventual goal of all these changes is to make it easier to add
transports as I'm going to add support for
ncalrpc (local RPC over named pipes) and ncacn_unix_stream (Unix sockets).
(This used to be commit f3da7c8b443a29b0c656c687a277384ae1353792)
|
|
security descriptor.
(This used to be commit bc5165e40a716fb7c612b32c0b6f03cb2d331d11)
|
|
didn't work with non-NULL registry value names.
Update testsuite to enumerate all keys and values two levels deep.
(This used to be commit c09f0f355ba6a589121588492aa2db5deb7121e0)
|
|
(This used to be commit 9250f745adc22b3f179cf363a9a9a5fba1ec6fc9)
|
|
to clean it up. (-:
(This used to be commit cc646f73b873292eaba152770be9500beff1c988)
|
|
- Samba4-style code in lib/registry (struct registry_key instead of REG_KEY, etc)
- Use hives (like Windows has drives) instead of one root key (like a Unix FS)
- usability fixes in the GTK utilities (autodetect the username,
enable/disable options, etc)
- fix gwsam compile
- several bugfixes in the registry rpc code
- do charset conversion in nt4 registry backend
(This used to be commit 2762ed3b9bf1d67dd54d63e02cddbfd71ea89892)
|
|
- IDL fixes + adding comments
- Start working on dcom infrastructure
(This used to be commit ef0fc269f06c82594c34ad8673c76c5ea099250e)
|
|
http://www.hsc.fr/ressources/articles/win_net_srv
(This used to be commit 8d36dbed8c5bdc82176083b2c6f8d989ae903ba5)
|
|
- moved some sec desc defines into misc.idl
- fixed pw_len field in UserInfo26
- made some pipes available on TCP
- added netr_DsrEnumerateDomainTrusts() to netlogon
- added templates for remaining netlogon IDL calls (from ethereal)
- added a unistr_noterm vs unistr error detector in ndr basic decoder
- added torture test for netr_DsrEnumerateDomainTrusts()
(This used to be commit ae5a5113fb83640dcb9ae4642c1b9eaf28487956)
|
|
(This used to be commit 02ddf78e5563b15cb45ae4bc6234469be0dc0210)
|
|
(This used to be commit 0a67057e9626c1539f964e978537e24544784263)
|