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

47 Commits

Author SHA1 Message Date
Jelmer Vernooij
a469a5fefb r5319: Make some more alignment code generic, move NDR-specific stuff to
parser.pm (now renamed to ndr.pm).
2007-10-10 13:09:41 -05:00
Tim Potter
a1c98101e4 r5073: Call new autogenerator function for swig stuff instead of old one. 2007-10-10 13:09:20 -05:00
Stefan Metzmacher
030bfd8d7f r5044: fix pidl--swig
metze
2007-10-10 13:09:17 -05:00
Tim Potter
425b988541 r5024: Fix build. 2007-10-10 13:09:14 -05:00
Tim Potter
c252a286ef r5019: Some tweaks to building the swig .i files. 2007-10-10 13:09:14 -05:00
Tim Potter
d39cb7ecb4 r4599: Remove some duplicated code in pidl.pl.
Start working on adding support for bitmaps and enums.

In progress tweaks for arrays of structures.
2007-10-10 13:08:32 -05:00
Tim Potter
7007522f83 r4469: Version n + 1 of the pidl ethereal parser generator. This version is
based on the idea of manipulating the .c and .h files generated by
parser.pm with perl regexps and glueing it all together to make an
ethereal plugin.

I thought this was a pretty crazy idea to start off with but it has
turned out to be not as complicated as I thought and has the huge advantage
of not duplicating any of the difficult code in parser.pm.
2007-10-10 13:07:54 -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
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
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
8e25117103 r3442: Add support for the "call_as" and "local" attributes. 2007-10-10 13:05:11 -05:00
Tim Potter
35ff140b43 r2777: Correctly abort if an idl file fails to parse. Bloody perl... 2007-10-10 12:59:32 -05:00
Jelmer Vernooij
e364e46a88 r2704: Complain about 'object interfaces' that don't have version 0.0 (the standard
doesn't allow them to! I think the idea is that you just create a new
interface that inherits your old interface, thus ensuring backwards-compatibility)
Re-enable to validator
2007-10-10 12:59:24 -05:00
Tim Potter
fd31ae38df r2253: Add test program, as small example of what's going on. 2007-10-10 12:58:35 -05:00
Tim Potter
68b10c4aee r2223: Include autogenerated header file for idl file we are processing with
--eparser.
2007-10-10 12:58:32 -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
Tim Potter
5c3c3d3e72 r1083: Generate prototypes for structs and unions marked "public" in the idl.
Delete various hacks to work around not doing this before.
2007-10-10 12:56:37 -05:00
Jelmer Vernooij
3df8ff6cf1 r955: Update debian package rules... builds now 2007-10-10 12:56:22 -05:00
Tim Potter
6739cd5fdd r948: Tridge suggested that the best way to write the ethereal parser is to
base it on the generator for the ndr pull/push code rather than trying
to get all the alignment and other junk sorted out by hand.

This commit (nearly) gets eparser to the same state it previously was
but based on parser.pm.  We correctly parse simple types, strings and
sids.
2007-10-10 12:56:21 -05:00
Tim Potter
0c1069b56e r602: Autogenerated packet-dcerpc-samr.c now compiles! 2007-10-10 12:51:50 -05:00
Tim Potter
d0383e9a7a r600: Get rid of trailing whitespace which freaks out emacs' fontification. 2007-10-10 12:51:49 -05:00
Tim Potter
993a18dd35 r550: Remove clientfns.pm module - it was a bad idea.
Start to resurrect eparser.pm for auto-generating ethereal dissectors
for rpc.
2007-10-10 12:51:47 -05:00
Andrew Tridgell
cafc8a5e76 r363: nicer error handling in pidl 2007-10-10 12:51:35 -05:00
Tim Potter
65692c9a93 r356: Start of auto-generated client functions. Tridge can you take a look
and tell me what you think?  Output does not compile yet.
2007-10-10 12:51:34 -05:00
Andrew Tridgell
68e71d7497 added "pidl.pl --template" to dump a rough template to save typing
when starting a pipe. Thanks to metze for a script that gave the idea.

do something like this to use it:

  pidl.pl --parse --template librpc/idl/XXX.idl > rpc_server/XXX/rpc_XXX.c

then fill in the functions in rpc_XXX.c
-
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
4e1a5a21a4 don't save the intermediate form to disk unless we need to -
Andrew Tridgell
76f48affe5 make pidl a little less verbose -
Andrew Tridgell
4bbaffeb44 re-wrote pidl to use Parse::Yapp instead of Parse::RecDescent, This
makes pidl about 3x faster, and also gives us much better error
reporting and a more standard grammer definition that will be much
easier to code in lex/yacc if we want to do so at a later
date. (Parse::Yapp uses essentially the same grammer file as lex/yacc)

It also means we no longer need Parse::RecDescent, which should make
pidl much more portable.
-
Andrew Tridgell
a2bdf0be01 * support multiple interfaces in one IDL file in pidl
* make far more generated functions static

 * get rid of gen_rpc, and include the client calls in ndr_*.c

 * added placeholder IDL for a number of intefaces (dcom, wzcsvc, browser etc)
-
Andrew Tridgell
ccd9ddeed6 added auto-generation of the IDL interface tables. This makes two less
places that need to be edited when someone adds a new IDL file.
-
Andrew Tridgell
64b2c67e47 save about 35% of the time for "make idl" by processing multiple IDL
files at once, which means less perl startup time.
-
Andrew Tridgell
c1b708708e added the beginnings of an IDL validator, to give clearer errors when
IDL is not valid
-
Andrew Tridgell
76c24a5cb0 added Parse::RecDescent module into pidl to ensure we all use the same
version. This should fix the problems Richard was seeing.
-
Andrew Tridgell
964c323721 a bit neater way of emitting code -
Andrew Tridgell
a706ff7893 * cope with pidl not being in $HOME/pidl
* cope with empty structures in unions
-
Andrew Tridgell
a291dd835f use a precompiled grammer in pidl. This speeds up pidl by about a
factor of 2 on my system.
-
Andrew Tridgell
08df20c8be * support inline arrays
* add enough to allow security descriptors to be IDL described

* added "noprint" property to allow fancy printing for specific
  functions
-
Andrew Tridgell
e66daf5273 * make pidl.pl exit with an error on a parse error
* fixed a buffers/scalars bug in structures
-
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
566476b3ff added a module for auto-generating the client calls. We can now go
from IDL file to working Samba4 RPC client library in a completely
automated fashion.
-
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
-
Tim Potter
e1f191a9dc Added --eparser to call ethereal parser generator. -
Andrew Tridgell
a9b1e03b33 beginnings of the C parser generator -
Andrew Tridgell
649e8ca0bb fixed help -
Andrew Tridgell
14135ed6bb first version -