1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-14 19:24:43 +03:00

434 Commits

Author SHA1 Message Date
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 -
Andrew Tridgell
d2665f36a7 * 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.
-
Tim Potter
49f1654510 Implement DeleteKey, DeleteValue, FlushKey. -
Tim Potter
c8b87f5feb Start of winreg idl. Implement OpenHKLM, GetVersion and CloseKey. -
Tim Potter
9109cb832a More work on eventlog - still doesn't work. (-: -
Andrew Tridgell
63b9d2803c avoid calling the print routines completely if debug level < 2 -
Andrew Tridgell
53ff3a572a only display really verbose packet dumps when smbtorture is run at
debug level 2 or above. This is more useful for checking that
something hasn't broken without swamping yourself with output.
-
Andrew Tridgell
f4cc593a5c added 4 more levels to samr_QueryDisplayInfo() -
Andrew Tridgell
a5eeb3be05 added support for 'ascstr', a ascii string in MSRPC ! -
Andrew Tridgell
e9d18ecc2d ignore generated idl.pm -
Andrew Tridgell
e7dd116138 Todd Sabin pointed out that a couple of the values I marked as hyper_t
are in fact 4 byte aligned. Create a ULONG8 type in samr for
those. This type should probably be made global later.
-
Andrew Tridgell
2ed87a52cc 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
-