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

109 Commits

Author SHA1 Message Date
Andrew Tridgell
a6cf6cada9 added netr_LogonSamLogon() and test code
(This used to be commit 4fa3ad3ecbfd8f8663fcdfaba9a7db481e303f2b)
2003-12-01 09:28:10 +00:00
Andrew Tridgell
5b46116923 added netr_ServerReqChallenge and cleaned up byte array printing
(This used to be commit bb42107dccf3a384a4a5c029b4d2752e0898d7cb)
2003-12-01 03:19:43 +00:00
Andrew Tridgell
b0531a38cc started adding netlogon IDL and test suite
(This used to be commit 3d64eefb464d09fb6e84d6139f801887a278cf86)
2003-12-01 01:41:38 +00:00
Andrew Tridgell
606514b077 make sure there is at least one valid interface in an IDL file
(This used to be commit 86ab394806a5f9dfc20fabda071d72ca29703f62)
2003-11-28 05:32:40 +00:00
Andrew Tridgell
ba33beec05 * added a bunch of placeholder IDL files
* allow for an interface to list its endpoints in the IDL file, so we
   can automatically make the server listen on the right pipes, and
   can scan pipes more easily (I don't take advantage of this yet,
   just putting the infrastructure in place)
(This used to be commit c8b8480244b4ab6204403dc65e92e4317b410a84)
2003-11-28 05:20:11 +00:00
Andrew Tridgell
07fdc2c73e * 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)
(This used to be commit a2bdf0be0119023df3c2b9ea515ed355020f2625)
2003-11-28 03:47:45 +00:00
Andrew Tridgell
df5949efb4 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.
(This used to be commit ccd9ddeed679baa6cbb05ac728b381b50420e00f)
2003-11-28 00:48:05 +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
fffd741a7a added auto-determination of the DCERPC over TCP port number by asking
the servers endpoint mapper
(This used to be commit 4abf5376b00f580eb69196e55a792cc7eb4c9880)
2003-11-26 03:36:17 +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
bbb11d4a0d * prepared the dcerpc subsystem for adding the RPC over TCP transport
* fixed a uninitialised variable bug in pidl (found by valgrind)
(This used to be commit 8bce61b8af6351c72c0dd84dc61b49d8aeb1fbbd)
2003-11-24 11:45:33 +00:00
Andrew Tridgell
7d36545d33 give far more detail in the EPMAPPER results
(This used to be commit 420301969820ffaa0a87b091c7a79372c99cb658)
2003-11-24 05:28:10 +00:00
Andrew Tridgell
3114289c64 make sure we don't try to update a constant
(This used to be commit 4a6034f2e37d1050364fc167f1b71b5c806dfdc9)
2003-11-24 03:31:03 +00:00
Andrew Tridgell
e4773b184c added tests for the remaining calls on the rpc management interface
(This used to be commit 00f9b0e12061c175334f96805ca8333f28f74d91)
2003-11-24 03:21:49 +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
1b9452ffc5 fixed the handling of value() attributes on scalars in IDL that
reference other elements of the same structure
(This used to be commit d8d17be290730670bad0fea91188d394160cb879)
2003-11-23 07:14:17 +00:00
Andrew Tridgell
800d3e0134 ooh, this is fun!
I have recoded the core dcerpc packet structures (all the PDUs etc) in
terms of IDL, which means we now use pidl to generate all the code for
handling the most basic dcerpc packets. This is not normally possible
as it isn't completely valid NDR, but pidl has a number of extensions
that make it quite easy.

This also means we get the server side dcerpc
marshalling/unmarshalling code for free.
(This used to be commit 92bcad02587c3c1b31b523ee9fa46658a6cef9ff)
2003-11-23 06:28:12 +00:00
Andrew Tridgell
02dc7536dd save about 35% of the time for "make idl" by processing multiple IDL
files at once, which means less perl startup time.
(This used to be commit 64b2c67e479ddc754d18f752d347ba22a6d77682)
2003-11-23 03:42:20 +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
277322b9d4 added the beginnings of an IDL validator, to give clearer errors when
IDL is not valid
(This used to be commit c1b708708e262350d697829d444d0fb6a981a80f)
2003-11-22 12:25:20 +00:00
Andrew Tridgell
677fb26deb * fixed handling of relative subcontext unions
* fixed GetPrinter in spoolss after OpenPrinter
(This used to be commit 4aea2d79dd6b14e0fdfafd2236849ece01839ce0)
2003-11-22 10:37:00 +00:00
Andrew Tridgell
175e947579 * enable RPC/NDR validation in all smbtorture code
* allow us to distinguish between null arrays and zero length arrays,
   by making the allocation size a minimum of 1 on array pull
(This used to be commit 11c0fe548ecfb03424f51e1354b86d4692e8f07c)
2003-11-22 08:41:40 +00:00
Andrew Tridgell
86a604429e a fairly major upgrade to the dcerpc system
* added a NDR validator. The way it works is that when the
   DCERPC_DEBUG_VALIDATE_* flags are set the dcerpc system will
   perform NDR buffer validation. On sending a request the packet is
   first marshalled, then unmarahslled, then marshalled again, and it is
   confirmed that the two marshalling results are idential. This
   ensures that our pull and push routines are absolutely in sync, so
   that we can be very confident that if a routine works in the client
   then the corresponding routine must work on the server side. A
   similar validation is performed on all replies.

 * a result of this change is that pidl is fussier about the [ref]
   tag. You can only use it on pointers (which is the only place it
   makes sense)

 * fixed a basic alignment bug in the push side of the NDR code

 * added server side pull/push support. Our dcerpc system is now fully
   ready to be used on the server side.

 * fixed the relative offset pointer list. It must be traversed in
   reverse order on push

 * added automatic value setting for the size parameter in outgoing
   SdBuf structures.

 * expanded the ndr debugging code to always give a message on any
   failure

 * fixed the subcontext push code

 * fixed some memory leaks in smbtorture RPC tests
(This used to be commit 8ecf720206a2eef3f8ea7cbdb1f460664a5dba9a)
2003-11-22 08:11:32 +00:00
Andrew Tridgell
3f2598abad added Parse::RecDescent module into pidl to ensure we all use the same
version. This should fix the problems Richard was seeing.
(This used to be commit 76c24a5cb09b096a9cb490f3bb42af0b9d0f5fa9)
2003-11-22 01:40:24 +00:00
Andrew Tridgell
0a0f8b5e3a fixed a bug with pushing non-pointer unions
(This used to be commit bc2fbc79cc7c0308934f351b067a88b4b397de37)
2003-11-21 22:34:45 +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
d869d8c8eb ignore generated idl.pm
(This used to be commit e9d18ecc2d513dc7aba9a0545808a95893544fe6)
2003-11-20 22:51:02 +00:00
Andrew Tridgell
15776970a5 we now use a copy of pidl inside the samba4 source tree at
source/build/pidl/

I imported the code using direct respository manipulation to preserve
the commit history
(This used to be commit 2ed87a52ccc343c281e29f5a18f3f99fe06beb28)
2003-11-20 22:46:01 +00:00
Andrew Tridgell
5d77cda1dc make sure we don't try to use c++ style variable declaration
(This used to be commit 9fee73793171e2cd295899ec0db8bcecfa95ca72)
2003-11-20 07:28:59 +00:00
Andrew Tridgell
e2254cc18f fixed pushing structures containing pointers inside unions
(This used to be commit bb30f42cd4e20d53066634727347a601b4eb562e)
2003-11-20 07:07:09 +00:00
Andrew Tridgell
08026ca1e0 a bit neater way of emitting code
(This used to be commit 964c3237215b36f5768b98c19689ddc43cf86cac)
2003-11-20 06:34:18 +00:00
Andrew Tridgell
9fb8ee5765 * cope with pidl not being in $HOME/pidl
* cope with empty structures in unions
(This used to be commit a706ff78937bea64acd28381466770749566399f)
2003-11-20 05:39:54 +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
cde87e39c6 avoid compiler warnings for unused variables with [relative] pointers
(This used to be commit 786566e53c22d8d0813cf006a70aef8508bba4dd)
2003-11-20 02:06:25 +00:00
Andrew Tridgell
52461a3d14 its LoadStructure() in util.pm that doesn't like strict perl - any
perl gurus out there know why?
(This used to be commit a1d9afc92fce52a76c0a233513b2cb24f0cb9cf5)
2003-11-20 02:03:36 +00:00
Andrew Tridgell
427bb5541b damn, "use strict;" in util.pm breaks pidl - but why?
(This used to be commit 8f54792392ccaa6c1464ed8ec90e44c0048b5ee2)
2003-11-20 01:55:32 +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
5d4bfbd30d switched to a new way of handling unions, so that we can handle
alignment correctly for unions that have non-uint16 discriminants

added recursive structure alignment. This gets quite hairy, but I
think I've got it mostly right.
(This used to be commit c0d96f87ea633b1372a383f705aaf4ed3099b4a7)
2003-11-19 22:11:17 +00:00
Andrew Tridgell
d60fe82970 slightly more accurate structure alignment code - I need to do proper
recursive alignment soon
(This used to be commit d3838c3668d5acb4aee86e3dd5b8d7d23bc842ff)
2003-11-19 07:29:55 +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
cb22240eb4 support the 'default' case in IDL unions
(This used to be commit 7f3f274cdc0f22324049952f2b744902a6fdf652)
2003-11-18 03:25:51 +00:00
Andrew Tridgell
7b185ccb32 auto-generate top-level debug print functions when a flag is set on
the dcerpc pipe. This saves lots of code in each test suite.
(This used to be commit db74a03d15d96d7f8bd751b8f857cc5b2be7d4c2)
2003-11-18 01:17:10 +00:00
Andrew Tridgell
fb53302c8e auto-generate functions for printing top-level function
parameters. You can choose to print just the [in] parameters, just the
[out] parameters or both
(This used to be commit 6afc3a465e3fc568636ff52975a6d339f8bc3179)
2003-11-17 11:53:12 +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
fa83432e10 * support inline arrays
* add enough to allow security descriptors to be IDL described

* added "noprint" property to allow fancy printing for specific
  functions
(This used to be commit 08df20c8bed57bbb9a9a907c807ad850382fd4e8)
2003-11-17 06:25:51 +00:00
Andrew Tridgell
ff9558bdf9 handle non-NTSTATUS return types
(This used to be commit 5832a1447c1d757a89d1f09324144132f9427cb1)
2003-11-17 02:57:04 +00:00