1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-28 17:47:29 +03:00

35 Commits

Author SHA1 Message Date
Jelmer Vernooij
5ba8169109 r21584: Support for tagged types has landed!
It's now possible to use "struct foo" without a typedef in IDL files.

echo_info4 is the first type that's been converted.
(This used to be commit 3ac68e858df9b53cf5e0a84741916214a53b3121)
2007-10-10 14:49:00 -05:00
Jelmer Vernooij
19afd52444 r21489: Remove accidently committed test idl.
(This used to be commit 268915961d0b2766eb9a4e106fdf5cfdf68de07e)
2007-10-10 14:48:43 -05:00
Jelmer Vernooij
a074602362 r21487: Fix warning when using anonymous types, initial work on nested type support in ejs.
(This used to be commit a396c5de12cd958fe0457fa5372e539132ad7ed9)
2007-10-10 14:48:42 -05:00
Jelmer Vernooij
cd9057a0bb r18639: Get rid of the keepref support
(This used to be commit d1364ef0cd8f1a64f44476476323ab390ac4de48)
2007-10-10 14:18:59 -05:00
Jelmer Vernooij
d9b4bdd5bb r18565: Fix echo.idl to be Samba3-, MIDL and midlc compatible
(This used to be commit ab0a798c57564901f0adcd8aedc1ef0928e79edd)
2007-10-10 14:18:47 -05:00
Jelmer Vernooij
9727b061f3 r15776: Don't generate ref pointers in Samba4-generated code. There is no point
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)
2007-10-10 14:08:18 -05:00
Jelmer Vernooij
d86da81304 r15653: Remove idl_types.h include where possible. Remove
types from .h file that are now in pidls' aliases list.
(This used to be commit fadb9529ec7e1208b9f58a4e8b633d5a50633e82)
2007-10-10 14:08:03 -05:00
Jelmer Vernooij
327a9ac650 r7729: Small fixes to the charset stuff.
(This used to be commit 5122b9f608399a6c90521e2f8bd96154755fe397)
2007-10-10 13:18:27 -05:00
Jelmer Vernooij
82dfe0b29b r7702: Implement [charset()] attribute.
(This used to be commit 7012e10bb6252a7e602e80f05c914a783610088c)
2007-10-10 13:18:23 -05:00
Jelmer Vernooij
03c2d642a6 r7159: Improve the messages from pidl's validator module.
Change the IDL file for the echo interface to match the one we use for
Windows. The only thing different between the two files currently is the
names of the scalar types and the handling of strings.
(This used to be commit b264c61061d222347919837600adf809fbadfb13)
2007-10-10 13:17:21 -05:00
Jelmer Vernooij
50d2bf0066 r7029: Make array support in pidl similar to that in other IDL compilers. We 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)
2007-10-10 13:17:07 -05:00
Jelmer Vernooij
e427f58622 r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
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)
2007-10-10 13:17:01 -05:00
Andrew Bartlett
df64302213 r5902: A rather large change...
I wanted to add a simple 'workstation' argument to the DCERPC
authenticated binding calls, but this patch kind of grew from there.

With SCHANNEL, the 'workstation' name (the netbios name of the client)
matters, as this is what ties the session between the NETLOGON ops and
the SCHANNEL bind.  This changes a lot of files, and these will again
be changed when jelmer does the credentials work.

I also correct some schannel IDL to distinguish between workstation
names and account names.  The distinction matters for domain trust
accounts.

Issues in handling this (issues with lifetime of talloc pointers)
caused me to change the 'creds_CredentialsState' and 'struct
dcerpc_binding' pointers to always be talloc()ed pointers.

In the schannel DB, we now store both the domain and computername, and
query on both.  This should ensure we fault correctly when the domain
is specified incorrectly in the SCHANNEL bind.

In the RPC-SCHANNEL test, I finally fixed a bug that vl pointed out,
where the comment claimed we re-used a connection, but in fact we made
a new connection.

This was achived by breaking apart some of the
dcerpc_secondary_connection() logic.

The addition of workstation handling was also propogated to NTLMSSP
and GENSEC, for completeness.

The RPC-SAMSYNC test has been cleaned up a little, using a loop over
usernames/passwords rather than manually expanded tests.  This will be
expanded further (the code in #if 0 in this patch) to use a newly
created user account for testing.

In making this test pass test_rpc.sh, I found a bug in the RPC-ECHO
server, caused by the removal of [ref] and the assoicated pointer from
the IDL.  This has been re-added, until the underlying pidl issues are
solved.
(This used to be commit 824289dcc20908ddec957a4a892a103eec2da9b9)
2007-10-10 13:11:07 -05:00
Jelmer Vernooij
ffae01d432 r5672: Use switch_type() and the token storage mechanism for unions:
- Makes union handling less special
 - Allows unions in arrays, etc
 - Compatible with midl
 - Pidl will warn about switch_type() and the type of the switch_is() variable being different
(This used to be commit dc6b4ffc82a191631bc16a4b93a4916a39183ec6)
2007-10-10 13:10:58 -05:00
Jelmer Vernooij
631aa1f0ef r5661: Be a little stricter on syntax regarding arrays. A pointer to an
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)
2007-10-10 13:10:57 -05:00
Jelmer Vernooij
64112074e9 r5465: Add support to multiple levels of pointers in pidl.
Also add a new function to echo.idl that tests this behaviour.
(This used to be commit e5eb5e847e75f2b7b041a66f84d9b919ddf27739)
2007-10-10 13:10:48 -05:00
Jelmer Vernooij
8ce2133e2c r5450: Add test function for "embedded" conformant arrays
(This used to be commit 900477226ddd0644626827d66cd45624f02b636b)
2007-10-10 13:10:47 -05:00
Jelmer Vernooij
e90c93402b r5362: Add pointer_default() support to pidl. pointer_default()
is assumed to be "ptr" if not specified (just like midl).

The validator will warn when "ptr" is used at the moment, because
pidl only supports unique, ref and relative at the moment.
(This used to be commit 31bed62a9a6f7830f523d509b67970648d40aaef)
2007-10-10 13:09:46 -05:00
Andrew Tridgell
1e42cacf6a r5036: changed HYPER_T to the more standard "hyper"
(This used to be commit 1d1a9c11ee681540ef8a1029409bb24fc26f976c)
2007-10-10 13:09:15 -05:00
Andrew Tridgell
7588a01cb6 r4520: added a enum test function to the echo pipe
(This used to be commit f9e0aa1ab1faac039893db241819907c9c4bb510)
2007-10-10 13:08:17 -05:00
Andrew Tridgell
2bf6dff983 r3283: converted to quoted uuid() defines in all our IDL. This should help
the build on systems like solaris with the SunPRO compiler
(This used to be commit fe913ad11bf1c5e9fe04ed769a93b0ea16aa0a34)
2007-10-10 13:04:50 -05:00
Jelmer Vernooij
40c5a1d99f r3162: Add client-side support for the ncalrpc: and ncacn_unix_stream: transports.
ncalrpc uses the new config option "ncalrpc dir" for creating unix sockets.
(This used to be commit b15cfbe2512961a199ecb069730d9a19787579f5)
2007-10-10 13:02:27 -05:00
Jelmer Vernooij
31403d548e r3043: Use binding strings for specifying endpoints. The property for
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)
2007-10-10 13:01:53 -05:00
Andrew Tridgell
f891ff694b r2105: added a TestSleep() operation to the echo pipe and extended the
RPC-ECHO test to use it to test asynchronous rpc operations.
(This used to be commit a5eb6cad5050928fab593e1f9a82fbfba589120c)
2007-10-10 12:58:25 -05:00
Jelmer Vernooij
d3e8a74551 r1838: Updates from the airplane:
- IDL fixes + adding comments
 - Start working on dcom infrastructure
(This used to be commit ef0fc269f06c82594c34ad8673c76c5ea099250e)
2007-10-10 12:58:00 -05:00
Andrew Tridgell
f6eb8342cb added auto-generation of the server side boilerplate code for each
pipe.

The server side code gets generated as librpc/gen_ndr/ndr_NAME_s.c and
gets included in the pipe module
(This used to be commit bd3dcfe5820489a838e19b244266bd9126af5eb4)
2003-12-14 13:22:12 +00:00
Andrew Tridgell
d262b8c3c7 completed the linkage between the endpoint mapper and the dcerpc
server endpoints. We can now successfully setup listening endpoints on
high ports, then use our endpoint mapper redirect incoming clients to
the right port.

also greatly cleanup the rpc over tcp session handling.
(This used to be commit 593bc29bbe0e46d356d001160e8a3332a88f2fa8)
2003-12-13 23:25:15 +00:00
Andrew Tridgell
a465add90f * changed the way strings are handled in pidl to a much more general
interface. We now support an arbitrary set of flags to each parser,
  and these can be used to control the string types. I have provided
  some common IDL string types in librpc/idl/idl_types.h which needs to
  be included in every IDL file.

* added IDL for the endpoint mapper. Added a test suite that enumerates
  all endpoints on the server.
(This used to be commit d2665f36a75b482ff82733f72ffac938c2acf87a)
2003-11-21 13:14:17 +00:00
Andrew Tridgell
8a8b2da9c9 make the echo idl match the win32 IDL again
(This used to be commit 4b901bd717a48daae24d8f7738169ac3cc5ba7fa)
2003-11-20 01:32:43 +00:00
Andrew Tridgell
10ee36bede switched to a new way of handling unions, so that we can handle
alignment correctly for unions that have non-uint16 discriminants

fixed the union handling in srvsvc.idl. (metze, please take a look at
the changes, your IDL did match what was one the wire in most cases,
but isn't the way IDL is usually coded)
(This used to be commit 7b5d0287298e8505e0ec7b22d75d9f9a8a610031)
2003-11-19 22:10:20 +00:00
Andrew Tridgell
1941b5cef0 started to expand the echo tests to include more interesting test
cases. We fail one of the alignment tests.
(This used to be commit 5bb21e57b844e98cc8f1dc264bc45097c08329e3)
2003-11-19 12:03:11 +00:00
Andrew Tridgell
e62c5c9a8d use [subcontext] to make GetPrinter a bit easier in smbtorture
(This used to be commit a5140985d8f57695b4165c72af217092da6fae5f)
2003-11-17 09:34:19 +00:00
Andrew Tridgell
e8a3825ebc we can now do a level1 NetDfsEnum()
(This used to be commit f32641f73f7ff12b797378b3b533603ff1d526b5)
2003-11-14 07:20:46 +00:00
Andrew Tridgell
3031937d56 * fixed conformant arrays in structures
* expanded the rpcecho test

* started adding the NETDFS pipe
(This used to be commit 095ab42cbdd5c1c5ab753e2eb275742ba822c8b9)
2003-11-13 09:26:53 +00:00
Andrew Tridgell
2f6adaadbb i forgot to commit the rpcecho idl file
(This used to be commit 6c50589a9c19bf14afd2ef9a2170561b336f469e)
2003-11-09 08:31:36 +00:00