1
0
mirror of https://github.com/samba-team/samba.git synced 2025-12-14 20:23:54 +03:00
Commit Graph

136 Commits

Author SHA1 Message Date
Andrew Tridgell
570ad78525 added tests for epm_Map endpointer map calls -
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
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
60ced76160 * fixed null terminated string handling
* fixed nested relative offsets in push functions

the spoolss torture test now passes!
-
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
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.
-
Andrew Tridgell
f4cc593a5c added 4 more levels to samr_QueryDisplayInfo() -
Andrew Tridgell
f8397cbc85 added samr_LookupNames() and test code -
Andrew Tridgell
af07ca7fbc EnumPrinterData in spoolss now works -
Andrew Tridgell
c69161bdb1 * use the new auto-generated debug code method.
* add a couple more info levels to wkssvc
-
Andrew Tridgell
33bb878562 * add another WERR err code
* use the top-level function argument printing to show more detail in
   RPC-* tests
-
Andrew Tridgell
d5a15257fd security descriptors are no longer a "special" type, they are handled
using the [relative] property

this also fixes level3 of PrinterInfo (a relative secdesc)
-
Andrew Tridgell
8301a6b6ad * more info levels for EnumPrinter
* use WERROR return type in spoolss EnumPrinter
-
Andrew Tridgell
060421c7dc nicer method of handling spoolss EnumPrinters
this also handles the return of several printers (an array of relative
subcontexts)
-
Andrew Tridgell
69c6017c94 use nstring and [relative] to support levels 1 and 2 of EnumPrinters
fully
-
Andrew Tridgell
e18dba7d5a added support for level1 of EnumPrinters in spoolss. This uses a
number of "magic" add-ons to IDL to make it less painful, hopefully
this will make IDL generation useful for horrible systems like spoolss
-
Andrew Tridgell
05ed2f6dc9 use the "subcontext" magic flag for sec_desc_buf -
Andrew Tridgell
5e852f694c added samr_UserInfo2 and samr_UserInfo3 -
Andrew Tridgell
1f93cbc1d5 added lsa_QuerySecObj() and the necessary sec_desc_buf supporting code
also adding printing of security descriptors
-
Andrew Tridgell
9ad28f6ddb * added levels 4, 200 and 300 to NetDfsEnum. 200 and 300 don't work
properly, I'm still investigating that.

* changed dcerpc fault status code to NT_STATUS_NETWORK_WRITE_FAULT,
  which I think is a better mapping
-
Andrew Tridgell
f32641f73f we can now do a level1 NetDfsEnum() -
Andrew Tridgell
095ab42cbd * fixed conformant arrays in structures
* expanded the rpcecho test

* started adding the NETDFS pipe
-
Andrew Tridgell
2cc354bd82 lsa_PrivilegeSet seems to be a very strange beast indeed. It has a
constant sized array of size 1 at the end?
-
Andrew Tridgell
b2ced24fc0 added 9 more info levels to lsa_QueryInfoPolicy -
Andrew Tridgell
b754ad2eae added QueryPolicyInfo/PrimaryDomainInfo idl and test code -
Andrew Tridgell
7e7cb97593 support lsa_AuditEventsInfo -
Andrew Tridgell
e81040a902 start using automatic union printing -
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.
-
Andrew Tridgell
5b2d577969 started adding support for lsa_QueryInfoPolicy -
Andrew Tridgell
1b7a7bc464 converted the rpcecho pipe to use IDL -
Andrew Tridgell
fba3a7ad22 lsa_LookupNames now works -
Andrew Tridgell
afa1ff5f08 added idl, generated code and test code for lsa_LookupSids -
Andrew Tridgell
47a17e5a08 - more generation fixes
- added auto-generation from the Makefile. Only called when you run "make idl"
-
Andrew Tridgell
3983b2aee7 - corrected some lsa idl
- updated lsa parse code from pidl
-
Andrew Tridgell
6b222d3b65 another major bit of restructuring of rpc in Samba4. Mostly moving
files around, but also added the first bits of auto-generated code for
the lsa pipe.

I haven't updated the Makefile to call pidl yet, so for now the code
was cut-and-pasted into librpc/ndr/ndr_lsa.c manually
-