1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00
Commit Graph

50 Commits

Author SHA1 Message Date
Andrew Tridgell
c7ddd6b2aa support a new value() attribute that allows us to auto-fill certain
elements. Used at the moment for string lengths.

the regular expression isn't right, but it works for the case I need.
Perl expert needed :)
0001-01-01 00:00:00 +00:00
Tim Potter
4a6f192ff8 Fix bug in generation of function ndr_pull code generation. This patch
makes the code symmetric with the ndr_push code.
0001-01-01 00:00:00 +00:00
Andrew Tridgell
f0a8f063a6 it turns out that all MS servers ignore the artifact struct_len fields
in OpenPolicy and OpenPolicy2, so we don't in fact need the
[struct_len] attribute. This makes our IDL much closer to the MS IDL.
0001-01-01 00:00:00 +00:00
Andrew Tridgell
e66daf5273 * make pidl.pl exit with an error on a parse error
* fixed a buffers/scalars bug in structures
0001-01-01 00:00:00 +00:00
Andrew Tridgell
cf880a8312 fixed another problem with pointers to arrays in structures 0001-01-01 00:00:00 +00:00
Andrew Tridgell
7b0f2ccf07 fixed the handling of unions of pointers 0001-01-01 00:00:00 +00:00
Andrew Tridgell
b5888b5315 * differentiate between pointers and non-pointers in switch_is union
elements in structures

* layout the pull/push/print generated functions with all push
  together, all pull together etc, as this makes for easier debugging

(note that I have no redirected commit messages for pidl to the
samba-cvs mailing list, so you may be seeing these messages for the
first time. See the pidl cvs repository for details on pidl)
0001-01-01 00:00:00 +00:00
Andrew Tridgell
22e1502350 I think we now handle conformant arrays in structures correctly - the
test cases pass
0001-01-01 00:00:00 +00:00
Andrew Tridgell
673e7bcdc2 handle constant sized arrays 0001-01-01 00:00:00 +00:00
Andrew Tridgell
259d5d7a0e added support for 8 byte aligned HYPER_T 0001-01-01 00:00:00 +00:00
Andrew Tridgell
ce15cc87fb fixed the NDR structure alignment rules
still not perfect, but works for all the cases I have seen so far
0001-01-01 00:00:00 +00:00
Andrew Tridgell
a29145df04 fixed handling on pointers to arrays of structures in unions 0001-01-01 00:00:00 +00:00
Andrew Tridgell
73b5300755 automatic printing of unions 0001-01-01 00:00:00 +00:00
Andrew Tridgell
81d6181172 automatically generate ndr_print_*() functions for every IDL
structure. This allows easy debug and test tool writing without having
to write functions that print every element of complex structures.
0001-01-01 00:00:00 +00:00
Andrew Tridgell
54613574bc - added support for the pull side of unions
- don't generate parse functions for pull/push functions that are not
  used
0001-01-01 00:00:00 +00:00
Andrew Tridgell
4df59bcff5 much cleaner handling of the different types of variables 0001-01-01 00:00:00 +00:00
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.
0001-01-01 00:00:00 +00:00
Andrew Tridgell
33d9b75783 - handle void functions
- bettenicer handling of PROPERTIES

- handle size_is() on an out variable that refers to an in variable
0001-01-01 00:00:00 +00:00
Andrew Tridgell
7bb45a21ae added support for arrays as function arguments and for unistr_noterm 0001-01-01 00:00:00 +00:00
Andrew Tridgell
25be8dafda added fixes for the pushing of arrays and handling non-ref pointers in
function arguments
0001-01-01 00:00:00 +00:00
Andrew Tridgell
cba9df9aa4 - include includes.h
- fix ref ptrs in push

- add NTSTATUS return
0001-01-01 00:00:00 +00:00
Andrew Tridgell
96e269fefe - generate both the pull and push side
- fixed lots of bugs
0001-01-01 00:00:00 +00:00
Andrew Tridgell
8e865508a6 a bit of a tidy up before I add the ndr_pull_*() side of things 0001-01-01 00:00:00 +00:00
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
0001-01-01 00:00:00 +00:00
Tim Potter
23a9812987 Added "return offset;" to end of generated function.
We're getting really close now!  Ethereal can properly decode OpenPolicy
requests and responses using pidl generated code.  QueryInfoPolicy
is nearly working.
0001-01-01 00:00:00 +00:00
Tim Potter
e35c62267f Fix for pointers to structures in function args. 0001-01-01 00:00:00 +00:00
Tim Potter
42a688ea1c Misc fixes:
- pass correct args when doing arrays of scalar vs buffer types
 - add NULL data argument to all calls
 - get rid of unecessary curly brackets
 - typos
0001-01-01 00:00:00 +00:00
Tim Potter
79e56e719c wchar_t is a scalar. 0001-01-01 00:00:00 +00:00
Tim Potter
83ada5447b Convert a bunch of "prs_foo()" to "offset = prs_foo()"
Return offset from function request and response code.
0001-01-01 00:00:00 +00:00
Tim Potter
f6f5b8a718 Removed old commented-out code.
Generate code for parsing arrays.

We're nearly ready to start generating real code!
0001-01-01 00:00:00 +00:00
Tim Potter
eb3dbe113f Reinvented has_properties() function lost after HD crash. )-:
Fixed up handling of pointer to scalar type.
0001-01-01 00:00:00 +00:00
Tim Potter
2670f1f8e1 Made hyper a simple type.
Changed dissect_ to prs_ to avoid name conflicts.
0001-01-01 00:00:00 +00:00
Tim Potter
802c219bab Moved processing of function arguments and structure elements
back in to ParseElement()

is_simple_type() -> is_scalar_type()

Added more types to scalar type list.

Pass scalars/buffers flag down to ParseElement()
0001-01-01 00:00:00 +00:00
Tim Potter
bb5bab5817 Don't pass down drep (data representation) arg from top level fn.
Decided to use tridge's PARSE_SCALARS and PARSE_BUFFERS pattern for
generating code for structures and function calls.  For functions, dissect
sub-structures with PARSE_SCALARS|PARSE_BUFFERS.  For arrays and structures
in structures (?) use PARSE_SCALARS on each element of the structure then
PARSE_BUFFERS.

Determine whether a type is a "simple" type or a struct/union.
0001-01-01 00:00:00 +00:00
Tim Potter
e5ca478614 Don't pass decorative name to policy handle or ntstatus dissectors.
Pass drep (data representation?) field down from dcerpc dissector.  This is
whether the packet is big or little endian.
0001-01-01 00:00:00 +00:00
Tim Potter
fbfe0795a9 Decorate some of the parse functions with element names. This is starting
to get closer to be compilable code!
0001-01-01 00:00:00 +00:00
Tim Potter
b045bbec59 Start generating some ethereal code that may actually compile with
fewer tweaks.
0001-01-01 00:00:00 +00:00
Tim Potter
ac71046754 Start generating code for unions. 0001-01-01 00:00:00 +00:00
Tim Potter
c2fa746c47 Ignore *.pidl 0001-01-01 00:00:00 +00:00
Tim Potter
952b47dc23 Renamed functions from Dump* to Parse* 0001-01-01 00:00:00 +00:00
Tim Potter
84fe4a000c Initial version of ethereal parser generator. Works with test.idl
but not much else!
0001-01-01 00:00:00 +00:00
Tim Potter
e1f191a9dc Added --eparser to call ethereal parser generator. 0001-01-01 00:00:00 +00:00
Andrew Tridgell
39e8894fb2 forgot a file 0001-01-01 00:00:00 +00:00
Andrew Tridgell
24ec2f1f81 changed auto-generated comment for headers 0001-01-01 00:00:00 +00:00
Andrew Tridgell
a9b1e03b33 beginnings of the C parser generator 0001-01-01 00:00:00 +00:00
Andrew Tridgell
406458b2fc added header generation 0001-01-01 00:00:00 +00:00
Andrew Tridgell
649e8ca0bb fixed help 0001-01-01 00:00:00 +00:00
Andrew Tridgell
6831c000a3 added a comment 0001-01-01 00:00:00 +00:00
Andrew Tridgell
4a9953f55b - fixed FlattenHash bug
- better handling of .. in filenames
0001-01-01 00:00:00 +00:00
Andrew Tridgell
14135ed6bb first version 0001-01-01 00:00:00 +00:00