1
0
mirror of https://github.com/samba-team/samba.git synced 2025-06-25 19:17:10 +03:00

55 Commits

Author SHA1 Message Date
Stefan Metzmacher
9c9404e638 r4553: fix typo
metze
(This used to be commit 6f75a06b8691dd0d684a51b7851696613c6a6b11)
2007-10-10 13:08:26 -05:00
Stefan Metzmacher
e3fd874341 r4551: add support for a pidl extensions
'declare bitmap foo1;'
'declare enum foo2;'

and also allow

typedef [public] bitmap ...
typedef [public] enum ...

you need to a forward declaration of bitmaps and enums

when you want to use them in another idl file,
and you need to make the real declaration to be public

see the next commit to samr.idl and netlogon.idl

metze
(This used to be commit a8d61aa47388b82595ee02b9cfd35f15afb93c2a)
2007-10-10 13:08:26 -05:00
Stefan Metzmacher
ecd9557922 r4540: sync enum and bitmap code
metze
(This used to be commit 2f3aea72ee7d9d90f7b910d11bdd1e96f9f0ebe1)
2007-10-10 13:08:19 -05:00
Stefan Metzmacher
d0da601ff7 r4535: add full support for
typedef bitmap {
    FLAG1 = 0x01
} fooflags;

typedef struct {
    fooflags flags;
}

metze
(This used to be commit 052a7d4f9a3a178149c65a616fdfd87152dff7eb)
2007-10-10 13:08:19 -05:00
Andrew Tridgell
58d9adf409 r4526: - much simpler (and more accurate!) ndr_size_*() code generation. It
is less efficient, but I really doubt that matters.

- use enum in epmapper.idl for protocol type

- added support for "enum8bit" flag, used in epmapper.idl
(This used to be commit 1a24a50384b7f588844cd012f1218ca242ca4507)
2007-10-10 13:08:18 -05:00
Andrew Tridgell
b90c0850fc r4521: fixed up the handling of PROPERTIES elements after the change to support enum
(This used to be commit dee8eff2590be58c59b0db089fcca4af3e011c42)
2007-10-10 13:08:18 -05:00
Andrew Tridgell
3acf026603 r4518: added proper support for "typedef enum" in pidl. We can now use enums as types in switch
statements and variable types, and the value will be printed with its string name and value
(This used to be commit 1852033f2ec7584657d586e44d25a280959e4d81)
2007-10-10 13:08:17 -05:00
Tim Potter
9681464dc8 r4468: Don't be a slacker and leave out parameter names when generating
prototypes for ndr push/pull/print functions.
(This used to be commit 1fe95ad1720f48a353ec77178e303b437bb13fed)
2007-10-10 13:07:54 -05:00
Stefan Metzmacher
ee0d68dc30 r3998: allow const arrays (see next commit to drsuapi.idl)
metze
(This used to be commit 7264a2227d7a1881db01964d0d713c144eb77152)
2007-10-10 13:06:12 -05:00
Jelmer Vernooij
a0fa682faa r3861: - Put ndr and rpc client code in seperate files
- Add some const
(This used to be commit a00bda88e1b6abdc36e5aa8c2a35f64855f67c96)
2007-10-10 13:05:58 -05:00
Jelmer Vernooij
79c5d73a71 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
(This used to be commit 7466947a23985f9bb15209b67880f7b94dc515c8)
2007-10-10 13:05:44 -05:00
Jelmer Vernooij
0d696dc0e9 r3667: Small COM fixes
(This used to be commit 7484b9be7423ccd7e37432951700939e8a53d513)
2007-10-10 13:05:43 -05:00
Jelmer Vernooij
8c2e179d47 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
(This used to be commit 8693344772a9b700533179f4bacfe27ec27dfcfe)
2007-10-10 13:05:39 -05:00
Jelmer Vernooij
485df40bf9 r3601: Lots of smaller DCOM updates and fixes. Adds oxid tables, proper
use of contexts.
(This used to be commit 93eb3cd99c4fb065a69eabcead0c33804259c976)
2007-10-10 13:05:38 -05:00
Jelmer Vernooij
71db46ea66 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
(This used to be commit 7a8244761bfdfdfb48f8264d76951ebdfbf7bd8a)
2007-10-10 13:05:36 -05:00
Jelmer Vernooij
6d3c74a67b 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
(This used to be commit c052f2e1edd816206d8974af3140cec7ef97a70c)
2007-10-10 13:05:23 -05:00
Jelmer Vernooij
9f14afa12c r3442: Add support for the "call_as" and "local" attributes.
(This used to be commit 8e25117103b0339441bc6328176ed34034005528)
2007-10-10 13:05:11 -05:00
Andrew Tridgell
90067934cd 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.
(This used to be commit b8f5fa8ac8e8725f3d321004f0aedf4246fc6b49)
2007-10-10 13:05:09 -05:00
Andrew Tridgell
2c52f52e02 r3423: auto-generate prototypes for all external functions in pidl
(This used to be commit 009488dfe55f5219b24c30222b1a8bf411a7e939)
2007-10-10 13:05:08 -05:00
Andrew Tridgell
1a7a5c66f5 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
(This used to be commit 4aab2cb210eb9678bb72aebb33dcf6fd499206c1)
2007-10-10 13:04:49 -05:00
Andrew Tridgell
ba450de07c r3281: some compilers can't handle empty structures, so for empty IDL
structures generate a single _empty_ element in the header
(This used to be commit 00ff1ca1d284bb698e98c773b18a29695e927605)
2007-10-10 13:04:49 -05:00
Stefan Metzmacher
f547d2c4c3 r1909: nicer format
metze
(This used to be commit e9e5fb2cb0b428de11d8e91da8b44394b6221a43)
2007-10-10 12:58:10 -05:00
Jelmer Vernooij
daa7c98409 r1786: Add support for the 'helpstring' attribute on interfaces
(This used to be commit 85fb26a05d57e58795b0c0ffa93dc9e0fa902431)
2007-10-10 12:57:56 -05:00
Jelmer Vernooij
1d3b81e6c0 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
(This used to be commit 45c3d0036b8510102816f9cdff9210098259cc5f)
2007-10-10 12:57:51 -05:00
Jelmer Vernooij
e079b4fce1 r1700: make version default to 0.0 (same as midl)
(This used to be commit b380324c938d0c5069dce02e468c92e24363a36b)
2007-10-10 12:57:49 -05:00
Stefan Metzmacher
7e6cf43756 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 :-)
(This used to be commit 917e45dafd5be4c2cd90ff425b8d6f8403122349)
2004-01-08 22:55:27 +00:00
Andrew Tridgell
24c22aef90 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.
(This used to be commit bb1af644a5a7b188290ce36232f255da0e5d66d2)
2003-12-16 09:02:58 +00:00
Andrew Tridgell
1413faae58 the out substructure is not empty if there is a return from the
function
(This used to be commit d18a08a870aa9ee12ed2913775b70d1b8a09c84b)
2003-12-16 04:15:51 +00:00
Andrew Tridgell
e2ffb64d7a some compilers can't handle structures with no elements. Generate
dummy elements if need be.
(This used to be commit b6fdc984023a76a6c77d03cb3ec12c6c18d215a6)
2003-12-16 03:44:32 +00:00
Andrew Tridgell
a90db73efd make pidl no longer dependent on Data::Dumper, which isn't installed
on some systems
(This used to be commit a4aa9168c0f80cf6e758c380d41335db50d06869)
2003-12-15 08:58:00 +00: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
d65f0095c9 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.
(This used to be commit 983c0e9683fa9666a6e055d1776ebeef8cd2e700)
2003-12-02 03:06:21 +00:00
Andrew Tridgell
ab3d728b7e 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 :)
(This used to be commit f5821b2468a0c46d0e5590de59562926d746c349)
2003-11-27 05:34:28 +00:00
Andrew Tridgell
06942f3ddb added some paranoid checking for enums
(This used to be commit 3492f37b0bf14797514f1dc603f518bf5b801c3c)
2003-11-26 01:13:00 +00:00
Andrew Tridgell
3d0e6b3835 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.
(This used to be commit 229a325c3cf0d4dc1e910ed32e1d7391040aeba1)
2003-11-23 13:44:19 +00:00
Andrew Tridgell
868555bca5 added support for enumerated types in IDL files. This makes unions
easier to work with.
(This used to be commit 60be15d306e7b65efdd27df02250c0264996ccf3)
2003-11-22 22:53:08 +00:00
Andrew Tridgell
e79e6bc472 added support for 'const' in IDL files. This makes it easy to define
symbolic names for bitfields etc.
(This used to be commit 344a6e1682cc1afab24735e73d05cf15f6eb9816)
2003-11-22 22:09:10 +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
9fc7be869b added support for 'ascstr', a ascii string in MSRPC !
(This used to be commit a5eeb3be0577e0ce91ac1f6e641782e4acbbda07)
2003-11-21 02:19:09 +00:00
Andrew Tridgell
b2fd4284b6 use a precompiled grammer in pidl. This speeds up pidl by about a
factor of 2 on my system.
(This used to be commit a291dd835f68ae5a109670b1d1ca1a48b2aacfb6)
2003-11-20 04:36:09 +00:00
Andrew Tridgell
91b960e22b use strict perl package everywhere for error checking
(This used to be commit 3b7a4b70a321a1e8e378b8c5cc1e87a1c3399e91)
2003-11-20 01:43:35 +00:00
Andrew Tridgell
cd3c6c3cc7 * added a 'lstring' type for spoolss
* added some notes on type equivalents in NOTES.txt
(This used to be commit a44d952fcb7ebf85d3072b622e5656dcf25cfbb0)
2003-11-20 01:27:17 +00:00
Andrew Tridgell
fd15fc58e7 * added support for empty case elements (including default cases)
* changed to midl syntax using [case(x)] instead of case(x)
(This used to be commit 6ecdb25e137c25e6bf9a7037a4eb602ae1afc514)
2003-11-20 00:57:00 +00:00
Andrew Tridgell
3425f1bfe4 auto-generate the pipe UUID version and name
(This used to be commit cdba426e62a5b30263b75f53f97b191da224a55f)
2003-11-18 04:59:29 +00:00
Andrew Tridgell
c562794e74 started documenting the extension to IDL that pidl implements
(This used to be commit 22b5418a53149b42e71fd887866f75cdd53b81af)
2003-11-17 09:32:57 +00:00
Andrew Tridgell
c4b7585288 * the beginnings of non-constant fixed arrays
* added relative pointers support
(This used to be commit 4a34a4f29cf8ab79582ce7b503da907df7b4d209)
2003-11-16 13:48:05 +00:00
Andrew Tridgell
0c5759a4b2 added support for "relstr", structure and union properties and public
functions
(This used to be commit fb2f8c6bffdaacdddbb7fb82439af70e17ce9a4b)
2003-11-16 11:34:32 +00:00
Andrew Tridgell
ff02537261 I think we now handle conformant arrays in structures correctly - the
test cases pass
(This used to be commit 22e15023509f8f1682865d72765e79f41ab7d149)
2003-11-13 09:23:58 +00:00
Andrew Tridgell
be443f914a - added support for the pull side of unions
- don't generate parse functions for pull/push functions that are not
  used
(This used to be commit 54613574bcd8b365c13848c6aa9366cadeb5da0e)
2003-11-11 01:59:28 +00:00
Andrew Tridgell
db7012397f much cleaner handling of the different types of variables
(This used to be commit 4df59bcff56a00e413fbde1a40ffebcb16763d3c)
2003-11-10 11:33:21 +00:00