1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-04 17:47:26 +03:00

286 Commits

Author SHA1 Message Date
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
6deece83dc don't rely on the ability of perl 5.6.x to remove elements from arrays
using delete(). This makes pidl portable back to perl 5.0.
(This used to be commit 9175293535246f55f50f52501ec451c951a94eb1)
2003-12-16 03:21:34 +00:00
Andrew Tridgell
d313dab5ee cope with different cpp formatting on some systems, and make sure we
don't loop forever if we get a cpp format line we don't understand
(This used to be commit 003c6c493b1babadb1f7c4eb54babed394bd42a9)
2003-12-16 00:38:33 +00:00
Andrew Tridgell
c0149d86c5 use the @CPP@ value from configure if possible when determining cpp in
pidl
(This used to be commit c47e88dabfc62db7533d2d39c7f1010b4188d2ea)
2003-12-15 22:06:18 +00:00
Andrew Tridgell
65c8e3685a lets see if "cc -E" keeps more of the build farm happy then "cpp"
We'll probably need a configure entry for this
(This used to be commit 66e648f20ffd34e2cff1b94003db9974d2bac318)
2003-12-15 21:55:42 +00:00
Andrew Tridgell
43e52cc177 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
(This used to be commit 68e71d7497ddc7b8239fc4bd7cb3e780a1f53a39)
2003-12-15 10:55:10 +00:00
Andrew Tridgell
0a61036257 patch from metze with updates to srvsvc and changes to pidl to allow
for the server rpc boilerplate to correctly generate for multiple
interfaces on an endpoint
(This used to be commit 56143689ecf623e8a6ef5c453e6ad1ca9404411c)
2003-12-15 09:18:53 +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
ba523d895a fixed the handling of zero-length top level arrays in pidl
(This used to be commit fa45529af72090c2604708a651d5e5714a844d72)
2003-12-15 01:07:08 +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
Simo Sorce
4cd6b8a64b typo
(This used to be commit 2afbd1e0005517d8ceb584ccbf8a85c4527cb866)
2003-12-14 12:27:51 +00:00
Simo Sorce
b356f3e43e reduce double explanation of FIXED ARRAYS
(This used to be commit 6f33109b102d41d98ffd536fe2234fbaae85b02e)
2003-12-14 12:04:55 +00:00
Andrew Tridgell
e2898c098f fix _ptr_ declaration
(This used to be commit 5fed4681edc93405a8b39080adfe72af8beea65d)
2003-12-14 08:44:38 +00:00
Andrew Tridgell
869df3adbd handle the auto-allocation of [ref] output arrays in pidl. This
can simplify rpc servers a lot.
(This used to be commit 28fa62d63d020052a0d2f467f3f9cc6344aaf0ce)
2003-12-12 04:18:21 +00:00
Andrew Tridgell
16309de71d * the RPC-ECHO pipe now works in smbd, as long as the data sizes
don't cause fragmented pdus (I'll add fragments shortly)

 * change data_blob_talloc() to not zero memory when the 2nd argument
   is NULL. The zeroing just masks bugs, and can't even allow a DOS
   attack

 * modified pidl to ensure that [ref] arguments to the out side of
   functions are allocated when parsing the in side. This allows rpc
   backends to assume that [ref] variables are all setup. Doesn't work
   correctly for [ref] arrays yet

 * changed DLIST_ADD_END() to take the type instead of a tmp
   variable. This means you don't need to declare a silly tmp variable in
   the caller
(This used to be commit 46e0a358198eeb9af1907ee2a29025d3ab23b6d1)
2003-12-12 03:59:09 +00:00
Andrew Tridgell
e5ed18db65 more portable array of endpoints code from pidl
(This used to be commit c598590a117d4281c530cded4bf9dae16ac1ee76)
2003-12-10 23:49:55 +00:00
Andrew Tridgell
8fa36b1fbc some systems don't have "which" and some systems don't have the "-nt"
flag to test. It's amazing that systems like that are ever sold.
(This used to be commit fe91635da87104544946983c7c63d5c584db614a)
2003-12-08 07:37:38 +00:00
Andrew Tridgell
2773e54c98 commit idl.pm now, as many build farm machines don't have 'yapp'
(This used to be commit 2b1300386dc8a3e3e802c8b1dafdbea286cfbb46)
2003-12-08 02:55:28 +00:00
Andrew Tridgell
58714e6bda * reduced the number of grammer conflicts a lot using (arbitrary)
precedence rules

 * build a standalone parser. When we come to distributing Samba4 we
   can just include idl.pm and other developers won't need Parse::Yapp
   installed

 * avoid the recursive make in most cases in build_idl.sh
(This used to be commit be2c2be459d1bed41c113590e70711cb89ad12b9)
2003-12-08 02:24:40 +00:00
Andrew Tridgell
daeffe3f11 don't save the intermediate form to disk unless we need to
(This used to be commit 4e1a5a21a4c8da0d2a23d5ba02168eac1987c260)
2003-12-07 23:47:35 +00:00
Andrew Tridgell
dbf4b65d49 a bit more speed and better line matching in errors
(This used to be commit 788f6c44dbae48e13c9eeaca3bfa3ac7efbbd4e2)
2003-12-07 13:51:23 +00:00
Andrew Tridgell
4e1bac41f4 make pidl a little less verbose
(This used to be commit 76f48affe5d1e8fd96d5dc9af2ec1059f3dd741c)
2003-12-07 13:39:45 +00:00
Andrew Tridgell
55d2c54e03 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.
(This used to be commit 4bbaffeb44dca99ad8c0245beb1fddbe01557215)
2003-12-07 13:38:07 +00:00
Andrew Tridgell
399496d9d9 netr_DatabaseSync() now works fully for databases 0, 1 and 2
(This used to be commit c4c09e9413d3886e030e98739121bbae81f80ca5)
2003-12-02 04:59:18 +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
06ae424835 * netr_ServerPasswordSet() now works - the test suite changes the
machine account password.

  * neater handling on value() options in IDL. The auto-print code
    will now display the right value so you don't need to initialise
    it in your C code
(This used to be commit 3dd978b12bb5571fba4e1839c0f7ee60cf729aa2)
2003-12-02 00:31:54 +00:00
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