Age | Commit message (Collapse) | Author | Files | Lines |
|
(This used to be commit 399f95536bf64890284a51e4a2bbb7a15c91c3be)
|
|
1.) We now register endpoint servers add startup via register_backend()
and later use the smb.conf 'dcerpc endpoint servers' parameter to setup the dcesrv_context
2.) each endpoint server can register at context creation time as much interfaces as it wants
(multiple interfaces on one endpoint are supported!)
(NOTE: there's a difference between 'endpoint server' and 'endpoint'!
for details look at rpc_server/dcesrv_server.h)
3.) one endpoint can have a security descriptor registered to it self
this will be checked in the future when a client wants to connect
to an smb pipe endpoint.
4.) we now have a 'remote' endpoint server, which works like the ntvfs_cifs module
it takes this options in the [globals] section:
dcerpc remote:interfaces = srvsvc, winreg, w32time, epmapper
dcerpc remote:binding = ...
dcerpc remote:user = ...
dcerpc remote:password = ...
5.) we currently have tree endpoint servers: epmapper, rpcecho and remote
the default for the 'dcerpc endpiont servers = epmapper, rpcecho'
for testing you can also do
dcerpc endpoint servers = rpcecho, remote, epmapper
dcerpc remote:interfaces = srvsvc, samr, netlogon
6,) please notice the the epmapper now only returns NO_ENTRIES
(but I think we'll find a solution for this too:-)
7.) also there're some other stuff left, but step by step :-)
This patch also includes updates for the
register_subsystem() , ntvfs_init(), and some other funtions
to check for duplicate subsystem registration
metze
(hmmm, my first large commit...I hope it works as supposed :-)
(This used to be commit 917e45dafd5be4c2cd90ff425b8d6f8403122349)
|
|
(This used to be commit 1f89d89954a3501e08efa97d1276ba9bb2d2305f)
|
|
we needed to adjust the alignment of [relative] buffers for this to
work. I wonder if they are always 4 byte aligned?
(This used to be commit 9cd0a0b8b976e62c6da71b7e55cba5b38483620d)
|
|
(This used to be commit abe7ffcece5fcb75b0cf5633dd5871fa3e3c1723)
|
|
(This used to be commit 7895796ef8a0dfe5de1404e630b2489fdec39a56)
|
|
msrpc).
this was easier than I expected!
(This used to be commit a0a51af6b746b1f82faaa49d33c17fea9d708fb0)
|
|
This adds support for bigendian rpc in the client. I have installed
SUN pcnetlink locally and am using it to test the samba4 rpc
code. This allows us to easily find places where we have stuffed up
the types (such as 2 uint16 versus a uint32), as testing both
big-endian and little-endian easily shows which is correct. I have now
used this to fix several bugs like that in the samba4 IDL.
In order to make this work I also had to redefine a GUID as a true
structure, not a blob. From the pcnetlink wire it is clear that it is
indeed defined as a structure (the byte order changes). This required
changing lots of Samba code to use a GUID as a structure.
I also had to fix the if_version code in dcerpc syntax IDs, as it
turns out they are a single uint32 not two uint16s.
The big-endian support is a bit ugly at the moment, and breaks the
layering in some places. More work is needed, especially on the server
side.
(This used to be commit bb1af644a5a7b188290ce36232f255da0e5d66d2)
|
|
(This used to be commit 370512f6644507ed0457de71ab5a50207e00e750)
|
|
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)
|
|
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)
|
|
(This used to be commit bb42107dccf3a384a4a5c029b4d2752e0898d7cb)
|
|
(This used to be commit 3d64eefb464d09fb6e84d6139f801887a278cf86)
|
|
(This used to be commit a818439b5915fd70b8aa3d3045f658b3f59a6bea)
|
|
(This used to be commit a06cbbbf1fa1e873bb13bc86d14694b2af791e22)
|
|
places that need to be edited when someone adds a new IDL file.
(This used to be commit ccd9ddeed679baa6cbb05ac728b381b50420e00f)
|
|
(This used to be commit 822750592cffb175aa7afb268bc7cb47bbab47e4)
|
|
* moved ntlmssp code into libcli/auth/, and updated to latest ntlmssp
code from samba3 (thanks Andrew! the new interface is great)
* added signing/ntlmssp support in the dcerpc code
* added a dcerpc_auth.c module for the various dcerpc auth mechanisms
(This used to be commit c18c9b5585a3e5f7868562820c14f7cb529cdbcd)
|
|
(This used to be commit 570ad78525ffcc116842270b62ba41c86c2a018d)
|
|
(This used to be commit 00f9b0e12061c175334f96805ca8333f28f74d91)
|
|
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 !
(This used to be commit f94bc079902d725b63155d8d2de5bf408c6e7335)
|
|
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)
|
|
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)
|
|
* fixed nested relative offsets in push functions
the spoolss torture test now passes!
(This used to be commit 60ced76160e4f4e2b511ebbeec31130c8ebcdd22)
|
|
* 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
(This used to be commit 9d5078962f0f8aef3360dea4c4774cf8de1fdc26)
|
|
* 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)
|
|
(This used to be commit 5962f1cffa9273cc06c8a3c4a112f3ce94b84dae)
|
|
(This used to be commit 4022e710755a61a3439f739a78fa6965b9b7788e)
|
|
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)
|
|
(This used to be commit c8b87f5feb7756c7a5b38135517788c9f4ade36f)
|
|
(This used to be commit 63b9d2803c9e5b44680a72b127f6a58eb44a3c60)
|
|
debug level 2 or above. This is more useful for checking that
something hasn't broken without swamping yourself with output.
(This used to be commit 53ff3a572a23c2f45c5d503255bc6b535ca99134)
|
|
(This used to be commit f4cc593a5c7d75adaced2c33dd83c2ec741751be)
|
|
(This used to be commit 99fff7b1e24ee7231fa41ca9cb85382637f2b2b0)
|
|
* "make clean" now removed the generated files
(This used to be commit 683259a4dd30861ed24e8e5df918c8725ae13800)
|
|
(This used to be commit 49c72d42766a55e2833c004e721a47115000626b)
|
|
cross-checking of all settable fields
(This used to be commit 3337906d52e95c127d64f81f9fc99aeb8a8d1ce6)
|
|
* added per-field testing of SetUserInfo
* fixed strlen_m()
(This used to be commit 26238b0f8a5752bb0f611c4aa492b964e419209a)
|
|
cope with the 'samrtorturetest' user already existing in the samr test
(to cope with previously failed runs)
(This used to be commit 47128b3d50b3481175a8b2580624316a4f7677db)
|
|
(This used to be commit ab4056e25ccfde5136ff3a1cd5d1efa78f1eee1b)
|
|
(This used to be commit 9810e6f180564247dee584d197180d394b208c24)
|
|
(This used to be commit 274058486766f7a1094918702e7bc225aa938b2e)
|
|
(This used to be commit c32c33a791dd42676ca7fa47aae264e8d8ea8339)
|
|
(This used to be commit f8397cbc8554b721093b8ae6ac6fb26d0ee9a7cf)
|
|
(This used to be commit 4b901bd717a48daae24d8f7738169ac3cc5ba7fa)
|
|
(This used to be commit af07ca7fbcb4118f2415218d0c48798119b7c6b2)
|
|
* use empty defaults instead of a dummy empty structure
(This used to be commit 555a340d3c0697b147799bc0a6615e01e196daf6)
|
|
(This used to be commit 42639a8f66e8d4241b24935772552f235f863096)
|
|
alignment correctly for unions that have non-uint16 discriminants
fixed the union handling in srvsvc.idl. (metze, please take a look at
the changes, your IDL did match what was one the wire in most cases,
but isn't the way IDL is usually coded)
(This used to be commit 7b5d0287298e8505e0ec7b22d75d9f9a8a610031)
|
|
cases. We fail one of the alignment tests.
(This used to be commit 5bb21e57b844e98cc8f1dc264bc45097c08329e3)
|