1
0
mirror of https://github.com/samba-team/samba.git synced 2025-11-25 00:23:52 +03:00
Commit Graph

419 Commits

Author SHA1 Message Date
Stefan Metzmacher
a7a6cea112 r4086: - make dcerpc_ndr_request_table_send() the default and rename it to just
dcerpc_ndr_request_send()
- this allows us to call dcerpc_log_packet() when we receive a packet we
  can't parse correctly

metze
2007-10-10 13:06:25 -05:00
Stefan Metzmacher
979c453c4d r4085: print out dcerpc_fault's as names
metze
2007-10-10 13:06:25 -05:00
Stefan Metzmacher
2647b47557 r4076: fix compiler warning
metze
2007-10-10 13:06:23 -05:00
Stefan Metzmacher
7264a2227d r3998: allow const arrays (see next commit to drsuapi.idl)
metze
2007-10-10 13:06:12 -05:00
Stefan Metzmacher
44f168c44d r3956: start to decode the repsFrom and repsTo fileds but not ready
metze
2007-10-10 13:06:07 -05:00
Jelmer Vernooij
98afb504d9 r3898: Work towards local/server DCOM support, start working
on Simple example server side implementation
2007-10-10 13:06:02 -05:00
Jelmer Vernooij
9fca748fe3 r3896: Correct header files in rpc server templates plus
some other minor fixes
2007-10-10 13:06:02 -05:00
Jelmer Vernooij
16d905f6b0 r3881: Split up the LIBNDR_GEN subsystem into NDR_* and RPC_NDR_* subsystems.
This reduces the total size of the samba binaries from 119 Mb to 73 Mb.
Next step will be to have the build system obtain some of this information
by itself, so that we don't have to write ~10 lines per interface manually.
2007-10-10 13:06:01 -05:00
Stefan Metzmacher
db35f3b0f9 r3869: in the NDR encoded replPropertyMetaData attribute in ADS
I see a new 64 bit time field which are seconds since 1601,

this will be mapped to NTTIME by th eparsing code

+#define NTTIME_1sec NTTIME

metze
2007-10-10 13:05:59 -05:00
Jelmer Vernooij
a00bda88e1 r3861: - Put ndr and rpc client code in seperate files
- Add some const
2007-10-10 13:05:58 -05:00
Jelmer Vernooij
3c436590ae r3790: use a registration function that is called from dcerpc_*_init functions
rather then a large table in librpc/gen_ndr/tables.c. This will allow us
to only link in only the required gen_ndr files (speeds up linking quite a
bit, makes binaries smaller).

Each gen_ndr_* file now has a init function that calls the init functions
of the interfaces it contains. I did it this way to keep pidl's code simple,
though it might hurt startup time a bit. I'd be happy to change it if
people like one function better.
2007-10-10 13:05:53 -05:00
Jelmer Vernooij
0d7bb2c40b r3737: - Get rid of the register_subsystem() and register_backend() functions.
- Re-disable tdbtool (it was building fine on my Debian box but other
					machines were having problems)
2007-10-10 13:05:48 -05:00
Jelmer Vernooij
7466947a23 r3689: Large number of COM updates:
- Work on server side and local COM support (should work, just no
	  example classes yet)
 - Use vtables so that local and remote calls can be used transparently
 - Generate 'proxies and stubs' rather then heavily modified code in client.pm and server.pm. proxies (client side code) are generated in proxy.pm, stubs (server side dispatchers) are generated in stubs.pm
 - Support registering classes and interfaces
 - DCOM interfaces no longer have to be in the same IDL file as their
    base interface, which will allow us to split up dcom.idl
2007-10-10 13:05:44 -05:00
Jelmer Vernooij
7484b9be74 r3667: Small COM fixes 2007-10-10 13:05:43 -05:00
Jelmer Vernooij
709f279b19 r3626: More minor DCOM fixes 2007-10-10 13:05:40 -05:00
Jelmer Vernooij
8693344772 r3611: DCOM client support works!!
The torture test DCOM-SIMPLE now successfully does an
IStream_Read and a IStream_Write call.

This test can now be run successfully against the "Simple DCOM" Visual
Studio example.

(You have to quote out line 337 in pidl. pidl complains if the variable
 that contains the array size follows the array. I still need to fix this
 properly)

Next goals:
 - Clean up code
 - Server side support
 - Support custom marshalling
 - Support DCOM interfaces in files other then dcom.idl
2007-10-10 13:05:39 -05:00
Jelmer Vernooij
54e1e5edca r3606: More DCOM fixes:
- OXID tables work now. IOXIDResolver is used if there is used for getting a STRINGBINDING if none is known yet
 - Add custom dissectors for STRINGARRAY and DUALSTRINGARRAY. If there's a way to get rid of these later on (by supporting them thru pidl somehow), I'd be happy to use that instead of doing it manually.

I can now get to the point where we have created an object and are connected to
it. The only thing left to do is being able to set the Object UUID properly..
2007-10-10 13:05:38 -05:00
Jelmer Vernooij
93eb3cd99c r3601: Lots of smaller DCOM updates and fixes. Adds oxid tables, proper
use of contexts.
2007-10-10 13:05:38 -05:00
Jelmer Vernooij
7a8244761b r3586: Fix some of the issues with the module init functions.
Both subsystems and modules can now have init functions, which can be
specified in .mk files (INIT_FUNCTION = ...)

The build system will define :
 - SUBSYSTEM_init_static_modules that calls the init functions of all statically compiled modules. Failing to load will generate an error which is not fatal
 - BINARY_init_subsystems that calls the init functions (if defined) for the subsystems the binary depends on

This removes the hack with the "static bool Initialised = " and the
"lazy_init" functions
2007-10-10 13:05:36 -05:00
Jelmer Vernooij
77eec3fa18 r3516: dcerpc_epm_map_binding now checks the endpoints it nows first
and then possibly does a epm_Map call().
ncacn_np now also uses dcerpc_epm_map_binding()
2007-10-10 13:05:27 -05:00
Jelmer Vernooij
1104667190 r3515: Fix RemoteActivation correctly this time (-:
Thanks to tridge for some help on this one!
2007-10-10 13:05:27 -05:00
Jelmer Vernooij
c052f2e1ed r3513: Add (the infrastructure for) DCOM support. Contents:
- Support for sending over the object UUID in DCERPC calls
 - Simple torture test for the DCOM "Simple" object
 - Generate extra argument for "object" interfaces in pidl
 - Some stubs for common DCOM functions
2007-10-10 13:05:23 -05:00
Stefan Metzmacher
8251d8b3e5 r3484: - add support for conformant string arrays at the end of a struct
- add support for strings where the length excludes the NULLTERM

metze
2007-10-10 13:05:21 -05:00
Jelmer Vernooij
8e25117103 r3442: Add support for the "call_as" and "local" attributes. 2007-10-10 13:05:11 -05:00
Jelmer Vernooij
05dd840b6f r3440: Add support for "coclass" to the pidl parser - the idl keyword that
describes a COM class.  A coclass is the implementation of one or more
interfaces. It has a UUID referred to as it's CLSID (Class ID).

Also adding an example coclass called "CoffeeMachine". You can give
it a string (or a cup, whatever you like ;-) and it will fill it with
"COFFEE" (kind of the like the echo pipe is for regular RPC). CoffeeMachine's
Windows implementation already works, a torture test for Samba will follow
soon.
2007-10-10 13:05:11 -05:00
Jelmer Vernooij
0873bf2cbe r3432: Support WERROR's in arguments (not just as return type). Some of
the DCOM calls are wrappers around several local calls, so you get things like:

WERROR foobar ( [in] int num_ifaces,
			   [in,size_is(num_ifaces)] IID *ifaces,
			   [out,size_is(num_ifaces)] WERROR *results);
2007-10-10 13:05:10 -05:00
Jelmer Vernooij
edbd789abb r3431: Allow optional semicolon after interface definitions 2007-10-10 13:05:10 -05:00
Andrew Tridgell
b8f5fa8ac8 r3428: switched to using minimal includes for the auto-generated RPC code.
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.
2007-10-10 13:05:09 -05:00
Andrew Tridgell
009488dfe5 r3423: auto-generate prototypes for all external functions in pidl 2007-10-10 13:05:08 -05:00
Tim Potter
12e037dbe3 r3410: Handle conversion of DATA_BLOBs and pointers to DATA_BLOBs from python. 2007-10-10 13:05:06 -05:00
Tim Potter
deaa5159f4 r3406: Don't throw a werror exception for WERR_NO_MORE_ITEMS and WERR_MORE_DATA. 2007-10-10 13:05:06 -05:00
Tim Potter
ee535b6801 r3303: Call pull function for correct type instead of spoolss_PrinterInfo when
unmarshalling arrays.
2007-10-10 13:04:51 -05:00
Andrew Tridgell
4aab2cb210 r3282: some C pre-processors don't like expressions like
uuid(1ff70682-0a51-30e8-076d-740be8cee98b) so we now accept
uuid("1ff70682-0a51-30e8-076d-740be8cee98b") in pidl, and
automagically add quotes only if needed
2007-10-10 13:04:49 -05:00
Andrew Tridgell
00ff1ca1d2 r3281: some compilers can't handle empty structures, so for empty IDL
structures generate a single _empty_ element in the header
2007-10-10 13:04:49 -05:00
Tim Potter
f490cd719c r3204: Got unpacking of an array of PrinterInfo union elements working. Phew. 2007-10-10 13:04:40 -05:00
Jelmer Vernooij
f3da7c8b44 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).
2007-10-10 13:01:53 -05:00
Tim Potter
9045645ddf r3022: Work on unmarshalling arrays of structs in a buffer (Python string) for
spoolss.  Doesn't quite work yet.
2007-10-10 12:59:59 -05:00
Tim Potter
89da7a9196 r3009: Fix up unmarshall functions to return Python dict instead of a NTSTATUS.
We can now unmarshall a single printer returned from an EnumPrinters.
2007-10-10 12:59:56 -05:00
Tim Potter
4bc497a299 r3001: Expose unmarshalling functions for structures marked "public" in the
idl.  This allows us to pass a buffer of bytes returned from a spoolss
call and convert it to a Python dictionary.  Works for enumprinters level
1!
2007-10-10 12:59:56 -05:00
Tim Potter
558076cc8d r2994: More cleanups. Move the generation of NTSTATUS and WERROR exceptions
from inside a swig %exception block and into the argout typemap.  This
will allow us to wrap functions that don't require exception handling, and
also get rid of some ugly code in dcerpc.i
2007-10-10 12:59:55 -05:00
Jelmer Vernooij
7c823f886a r2990: Add support to pidl for autogenerating ndr_size_*() functions. Adding
the [gensize] property to a struct or union will make pidl generate a
ndr_size_*() function.

(not all nasty bits of NDR are completely covered yet by the
 ndr_size*() functions, support for those will be added when necessary)

I also have a local patch (not applied now) that simplifies the pidl output
and eliminates the number of functions required. It would, however, make
pidl more complex.
2007-10-10 12:59:55 -05:00
Andrew Tridgell
21ed51d47f r2988: this should fix support for negative switch levels in PIDL 2007-10-10 12:59:55 -05:00
Andrew Tridgell
24122eb93e r2987: added support for signed 32 bit integers in pidl 2007-10-10 12:59:54 -05:00
Tim Potter
e6756e3ee0 r2986: Add correct value to dict when generating wrapper for functions that
return WERROR values.

Clean up WERROR vs NTSTATUS handling a bit.
2007-10-10 12:59:54 -05:00
Jelmer Vernooij
ab2a788fe7 r2973: Allow comma's inside parentheses in property arguments 2007-10-10 12:59:53 -05:00
Andrew Tridgell
cc00f9b6b8 r2968: fixed the byte order problem with the new RHS parsing on ncacn_ip_tcp 2007-10-10 12:59:53 -05:00
Tim Potter
15f8f73f8b r2966: Handle conversion of DATA_BLOB fields from Python in a slightly nicer
manner.  I'm hoping to get rid of DATA_BLOB's but for the moment they
make it easy to get some spoolss action happening quickly.
2007-10-10 12:59:52 -05:00
Tim Potter
6a47a079c0 r2963: Handle structures that contain more than one union as members. 2007-10-10 12:59:52 -05:00
Tim Potter
8c9c94d578 r2962: Tweak to get conversion function for pointers to union compiling again. 2007-10-10 12:59:52 -05:00
Andrew Tridgell
2f1e9954e3 r2958: the warnings from the swig code in pidl were totally swamping valid
warnings, making real errors impossible to spot.

this fixes the warnings, and probably fixes some pidl/python bugs as
well.
2007-10-10 12:59:51 -05:00