1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-14 01:57:53 +03:00

495 Commits

Author SHA1 Message Date
Andrew Tridgell
39add48158 initial implementation of dcerpc over tcp. RPC-EPMAPPER works, now to
add epm_Map calls and support the rest of the pipes
-
Andrew Tridgell
8bce61b8af * prepared the dcerpc subsystem for adding the RPC over TCP transport
* fixed a uninitialised variable bug in pidl (found by valgrind)
-
Andrew Tridgell
0fedafd7a0 removed the STFS specific flags in the Makefile.
Jim, we are going to need to redo the STFS backend as a module, as
otherwise maintaining it outside of the samba.org tree will become too
awkward.
-
Andrew Tridgell
570ad78525 added tests for epm_Map endpointer map calls -
Andrew Tridgell
4203019698 give far more detail in the EPMAPPER results -
Andrew Tridgell
4a6034f2e3 make sure we don't try to update a constant -
Andrew Tridgell
00f9b0e120 added tests for the remaining calls on the rpc management interface -
Andrew Tridgell
f94bc07990 added the dcerpc remote management interfaces as mgmt.idl, and wrote a
test suite. The test suite dumps all of the interfaces available on
all pipes. There sure are a lot more interfaces on w2k3 than w2k !
-
Andrew Tridgell
6b262ca37c * better diagnostics in ndrdump
* added samr_Connect2()
-
Andrew Tridgell
229a325c3c 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.
-
Tim Potter
152af383b8 Modify WINREG test program to recursively enumerate keys in all known
hives.  Limit the recursion depth to ensure the test doesn't run too long.
-
Tim Potter
40ccaeefed Removed unused variable. -
Tim Potter
b4792b7b31 Check NT_STATUS code from dcerpc call function before checking the
WERROR code.
-
Tim Potter
7ae329e663 Add a strlen_m_term() function for returning the length of a string
including the termination.  Using value(strlen_m((r->name)+1)*2) gives
the wrong answer for the NULL string.
-
Andrew Tridgell
d8d17be290 fixed the handling of value() attributes on scalars in IDL that
reference other elements of the same structure
-
Tim Potter
634ea43720 Actually call right function name. -
Tim Potter
cc71bd2a90 Call enumkey for tridge. -
Tim Potter
8f154f8b9f String termination fix.
Re-arrange winreg tests - currently it's failing with an input validation
error on tridge's test pull/push test code.
-
Tim Potter
1f56d4cd04 Strings in the winreg pipe are terminated. -
Andrew Tridgell
92bcad0258 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.
-
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
48276c768b get rid of some more unused headers -
Andrew Tridgell
f6bb118799 by using a single proto.h we gain another factor of 4 in the speed of
"make proto"
-
Andrew Tridgell
1c980e6c4e final bit of tidyup and speedup -
Andrew Tridgell
9ea02c51d4 much faster inner loop and neater code -
Andrew Tridgell
945ada7e7e fixed loadparm handling properly -
Andrew Tridgell
e58384eb53 nicer base type handling -
Andrew Tridgell
04eb12b56c reduced the number of magic types we need in mkproto.pl
In general I prefer "struct foo" to just "foo" for most
structures. There are exceptions.
-
Andrew Tridgell
db6d7daaef we don't need awk now -
Andrew Tridgell
f11f757c87 get rid of our awk scripts -
Andrew Tridgell
9386326868 changed to perl for mkproto, patch from vance -
Andrew Tridgell
60be15d306 added support for enumerated types in IDL files. This makes unions
easier to work with.
-
Andrew Tridgell
344a6e1682 added support for 'const' in IDL files. This makes it easy to define
symbolic names for bitfields etc.
-
Andrew Tridgell
c1b708708e added the beginnings of an IDL validator, to give clearer errors when
IDL is not valid
-
Andrew Tridgell
60ced76160 * fixed null terminated string handling
* fixed nested relative offsets in push functions

the spoolss torture test now passes!
-
Andrew Tridgell
4aea2d79dd * fixed handling of relative subcontext unions
* fixed GetPrinter in spoolss after OpenPrinter
-
Andrew Tridgell
201cb6116d dfs torture test now passes -
Andrew Tridgell
9d5078962f * fixed NDR flag inheritance across push subcontexts
* don't consider not doing lsa_QueryInfoPolicy level 11 a failure
   (w2k3 doesn't have this level, w2k does)

 * on a NDR validation failure dump the failed data at level 3
-
Andrew Tridgell
11c0fe548e * 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
-
Andrew Tridgell
8ecf720206 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
-
Andrew Tridgell
4e174564ae * you can't have two parameters with the same name (pidl doesn't enforce
that currently, but will in a couple of hours when I've finished my
   NDR validator code)

 * only a pointer can be [ref]
-
Tim Potter
5cba48252a Convert all NTSTATUS return codes to WERROR.
Implement all OpenXXX calls, EnumKey, OpenKey, QueryInfoKey.

Started EnumValue but it doesn't work yet.
-
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
5962f1cffa added some explanations for epmapper IDL and dom_sid2 -
Andrew Tridgell
bc2fbc79cc fixed a bug with pushing non-pointer unions -
Andrew Tridgell
0eff7c519b fix a smbtorture memory leak -
Andrew Tridgell
4022e71075 cleaner handling of relative pointers to strings -
Andrew Tridgell
b1863f897f don't ignore .h files here -
Andrew Tridgell
ff883d1cba forgot to commit this, sorry -
Andrew Tridgell
f90e5db8f9 print out the UUIDs from the end point mapper -