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

36 Commits

Author SHA1 Message Date
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
Stefan Metzmacher
e9e5fb2cb0 r1909: nicer format
metze
2007-10-10 12:58:10 -05:00
Jelmer Vernooij
85fb26a05d r1786: Add support for the 'helpstring' attribute on interfaces 2007-10-10 12:57:56 -05:00
Jelmer Vernooij
45c3d0036b r1736: - Pidl updates:
- Support for "object oriented" interfaces in pidl
 - Support for inherited interfaces in pidl
 - Simplification of the support for properties on an interface
- Start on dcom rpc torture tests
2007-10-10 12:57:51 -05:00
Jelmer Vernooij
b380324c93 r1700: make version default to 0.0 (same as midl) 2007-10-10 12:57:49 -05:00
Stefan Metzmacher
917e45dafd This patch adds a better dcerpc server infastructure.
1.) We now register endpoint servers add startup via register_backend()
    and later use the smb.conf 'dcerpc endpoint servers' parameter to setup the dcesrv_context

2.) each endpoint server can register at context creation time as much interfaces as it wants
    (multiple interfaces on one endpoint are supported!)
    (NOTE:  there's a difference between 'endpoint server' and 'endpoint'!
	    for details look at rpc_server/dcesrv_server.h)

3.) one endpoint can have a security descriptor registered to it self
    this will be checked in the future when a client wants to connect
    to an smb pipe endpoint.

4.) we now have a 'remote' endpoint server, which works like the ntvfs_cifs module
    it takes this options in the [globals] section:

    dcerpc remote:interfaces = srvsvc, winreg, w32time, epmapper
    dcerpc remote:binding = ...
    dcerpc remote:user = ...
    dcerpc remote:password = ...

5.) we currently have tree endpoint servers: epmapper, rpcecho and remote

    the default for the 'dcerpc endpiont servers = epmapper, rpcecho'

    for testing you can also do
    dcerpc endpoint servers = rpcecho, remote, epmapper
    dcerpc remote:interfaces = srvsvc, samr, netlogon

6,) please notice the the epmapper now only returns NO_ENTRIES
    (but I think we'll find a solution for this too:-)

7.) also there're some other stuff left, but step by step :-)

This patch also includes updates for the
register_subsystem() , ntvfs_init(), and some other funtions
to check for duplicate subsystem registration


metze

(hmmm, my first large commit...I hope it works as supposed :-)
-
Andrew Tridgell
bb1af644a5 a fairly large commit!
This adds support for bigendian rpc in the client. I have installed
SUN pcnetlink locally and am using it to test the samba4 rpc
code. This allows us to easily find places where we have stuffed up
the types (such as 2 uint16 versus a uint32), as testing both
big-endian and little-endian easily shows which is correct. I have now
used this to fix several bugs like that in the samba4 IDL.

In order to make this work I also had to redefine a GUID as a true
structure, not a blob. From the pcnetlink wire it is clear that it is
indeed defined as a structure (the byte order changes). This required
changing lots of Samba code to use a GUID as a structure.

I also had to fix the if_version code in dcerpc syntax IDs, as it
turns out they are a single uint32 not two uint16s.

The big-endian support is a bit ugly at the moment, and breaks the
layering in some places. More work is needed, especially on the server
side.
-
Andrew Tridgell
d18a08a870 the out substructure is not empty if there is a return from the
function
-
Andrew Tridgell
b6fdc98402 some compilers can't handle structures with no elements. Generate
dummy elements if need be.
-
Andrew Tridgell
a4aa9168c0 make pidl no longer dependent on Data::Dumper, which isn't installed
on some systems
-
Andrew Tridgell
bd3dcfe582 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
-
Andrew Tridgell
983c0e9683 added netr_DatabaseSync(). It doesn't work as I haven't done schannel
yet, but at least the request is understood by w2k3

Also modified pidl to allow multiple branches in a union to have the
same element. This is used in netlogon.
-
Andrew Tridgell
f5821b2468 added an rpc scanner. This prints messages like this:
uuid 82273fdc-e32a-18c3-3f78-827929dc23ea  version 0x0000:0x0000  'eventlog'
        24 calls available
        WARNING: local IDL defines 4 calls

when all the WARNINGs are gone then we know we have all the calls :)
-
Andrew Tridgell
3492f37b0b added some paranoid checking for enums -
Andrew Tridgell
229a325c3c added a tool called 'ndrdump' that allows you to dump NDR data
according to the current IDL taking the data from a file. In
combination with a little hack to ethereal to extract data this is a
quite powerful IDL development tool.
-
Andrew Tridgell
60be15d306 added support for enumerated types in IDL files. This makes unions
easier to work with.
-
Andrew Tridgell
344a6e1682 added support for 'const' in IDL files. This makes it easy to define
symbolic names for bitfields etc.
-
Andrew Tridgell
d2665f36a7 * 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.
-
Andrew Tridgell
a5eeb3be05 added support for 'ascstr', a ascii string in MSRPC ! -
Andrew Tridgell
a291dd835f use a precompiled grammer in pidl. This speeds up pidl by about a
factor of 2 on my system.
-
Andrew Tridgell
3b7a4b70a3 use strict perl package everywhere for error checking -
Andrew Tridgell
a44d952fcb * added a 'lstring' type for spoolss
* added some notes on type equivalents in NOTES.txt
-
Andrew Tridgell
6ecdb25e13 * added support for empty case elements (including default cases)
* changed to midl syntax using [case(x)] instead of case(x)
-
Andrew Tridgell
cdba426e62 auto-generate the pipe UUID version and name -
Andrew Tridgell
22b5418a53 started documenting the extension to IDL that pidl implements -
Andrew Tridgell
4a34a4f29c * the beginnings of non-constant fixed arrays
* added relative pointers support
-
Andrew Tridgell
fb2f8c6bff added support for "relstr", structure and union properties and public
functions
-
Andrew Tridgell
22e1502350 I think we now handle conformant arrays in structures correctly - the
test cases pass
-
Andrew Tridgell
54613574bc - added support for the pull side of unions
- don't generate parse functions for pull/push functions that are not
  used
-
Andrew Tridgell
4df59bcff5 much cleaner handling of the different types of variables -
Andrew Tridgell
33d9b75783 - handle void functions
- bettenicer handling of PROPERTIES

- handle size_is() on an out variable that refers to an in variable
-
Andrew Tridgell
cba9df9aa4 - include includes.h
- fix ref ptrs in push

- add NTSTATUS return
-
Andrew Tridgell
42cd6904f5 updated pidl to auto-generate the ndr_push_*() functions for the
Samba4 rpc framework

not complete, but sufficient for a number of lsa functions
-
Andrew Tridgell
24ec2f1f81 changed auto-generated comment for headers -
Andrew Tridgell
406458b2fc added header generation -