Age | Commit message (Collapse) | Author | Files | Lines |
|
- added server side support for schannel type 23. This allows WinXP to establish a schannel connection
to Samba4 as an ADS DC
- added client side support for schannel type 23, but disabled it as currently the client
code has now way of getting the fully qualified domain name (which is needed)
- report dcerpc faults in the server code in the log
(This used to be commit 55e0b014fe14ca8811b55887208a1c3147ddb0d2)
|
|
(This used to be commit f18dc9eb887034171dcf28a1f309a69e9088604e)
|
|
samr. The array handling is a bit of a mess though.
(This used to be commit 7ff7737832e0e5877ce8bcf329a123a2bce05370)
|
|
in,out,ref vars
(This used to be commit dffe9165164a111313d744d942645ad2df83d5f3)
|
|
Merged across populating %needed with hf index members for functions
from old version of eparser.
(This used to be commit fc3c5d6fabf397106520ed25a564229ee4853521)
|
|
(This used to be commit 595b6e0f2c9832b3e4a8eaa24d64f32d6a693ff3)
|
|
to storing data in structure members.
(This used to be commit 60942eaa3a8a56b5823bfcb736d25c00b17fec50)
|
|
closer to what ethereal does. Also try to keep as much of the generated
structure wrt pointers/structs/alignment as possible.
(This used to be commit 8ad93f03d64befdee67a1b0a0ff9d7c3dfaac9ea)
|
|
(This used to be commit 12c7d3a464fea87c3289f2914ee9696a17ce5a81)
|
|
(This used to be commit 3df8ff6cf111c6601554bffb411506bd43f726c7)
|
|
(This used to be commit 877f7c32a89218fb59adc48bd2c2f331b9600d12)
|
|
remaining parse function names.
Add some debug comments in parser output to aid in debugging.
(This used to be commit 8225a3245a2b399ea4a9d8515e299ae5f10dff8c)
|
|
base it on the generator for the ndr pull/push code rather than trying
to get all the alignment and other junk sorted out by hand.
This commit (nearly) gets eparser to the same state it previously was
but based on parser.pm. We correctly parse simple types, strings and
sids.
(This used to be commit 6739cd5fdd353c575626cbfbc6339a8a6908daf7)
|
|
(This used to be commit ee65e43d4dd0bf78a877b918991aa60f44f435b5)
|
|
(This used to be commit 20cc981e3338200aea6e005ed69dbe5b5b102bbb)
|
|
structures. This was suggested by metze recently.
I checked on the build farm and all the machines we have support 64
bit ints, and support the LL suffix for 64 bit constants. I suspect
some won't support strtoll() and related functions, so we will
probably need replacements for those.
(This used to be commit 9a9244a1c66654c12abe4379661cba83a73c4c21)
|
|
way to do this.
(This used to be commit c63cb50ca56cb69f7ef39f9828afa61f324f2832)
|
|
(This used to be commit 1517ef3a986ec213d33b624fbbe8071600cc5b61)
|
|
(This used to be commit f7b23156681f12805f0c7f242f0c436d102023f4)
|
|
(This used to be commit 1ece224c9a25731a8c392cf378968273c0072ecf)
|
|
for structures.
Instead of trying to parse everything to produce output in the right
order, generate parser in two steps: 1) gather information and register
names, fields, types etc. 2) generate output using data from step 1.
(This used to be commit 03863a2ca88c374e168d579e7e4f78877160215c)
|
|
Start working on parsing structs.
(This used to be commit d162dcb52f96b1adfac7123201d31c07ee5c90d6)
|
|
Start parsing for parsing unions, structs and enums.
Don't display field type in display name.
(This used to be commit e170d9c3dc5d7abcdba9af98f61f36bb118a96fd)
|
|
samr calls - only the ones that take policy handles and uint32s.
(This used to be commit d6e30faeec097822c9cdcc9e4270d0adc139cea8)
|
|
syntax errors (some editors parse these strings and jump to the erroneous
line directly)
(This used to be commit 6857efacccb1af69abd46e8867a0b4b3c26801db)
|
|
(This used to be commit ca39c567ed7ed40c7abe7526f6e563e7bf2789bb)
|
|
metze
(This used to be commit 8e2c08f8c7f9481d64b87e7d45e98bc48661efbb)
|
|
(fix some build farm hosts)
metze
(This used to be commit 8735a393c19711cc0f0cf392684d523b1abd2878)
|
|
- start handing idl string types
- comments
- generate field types
- code to select field types and bases
(This used to be commit 3d4148c07c46d5d99bd91e1985540cc4e59db2bc)
|
|
(This used to be commit 209f5a25a950e8780e9512b71fbb12b1cdbe1a17)
|
|
(This used to be commit 0c1069b56e7c80e2b428f6a6b550eacd5ac3d762)
|
|
(This used to be commit d0383e9a7a0a5bee9a52ddc81d5f89c9f01c269b)
|
|
handle types.
(This used to be commit 1e02ccd94edc87f4107d21f7f778f1a88c9e197d)
|
|
again. Still a few problems left though.
(This used to be commit e921a5879f8a5a867dce61e684a0010a5dab9472)
|
|
Start to resurrect eparser.pm for auto-generating ethereal dissectors
for rpc.
(This used to be commit 993a18dd35fb0b09c088eb2bb38d3e14ff755130)
|
|
servers. Previously the server pipe code needed to return the RPC
level status (nearly always "OK") and separately set the function call
return using r->out.result. All the programmers writing servers
(metze, jelmer and me) were often getting this wrong, by doing things
like "return NT_STATUS_NO_MEMORY" which was really quite meaningless
as there is no code like that at the dcerpc level.
I have now modified pidl to generate the necessary boilerplate so that
just returning the status you want from the function will work. So for
a NTSTATUS function you return NT_STATUS_XXX and from a WERROR
function you return WERR_XXX. If you really want to generate a DCERPC
level fault rather than just a return value in your function then you
should use the DCESRV_FAULT() macro which will correctly generate a
fault for you.
As a side effect, this also adds automatic type checking of all of our
server side rpc functions, which was impossible with the old API. When
I changed the API I found and fixed quite a few functions with the
wrong type information, so this is definately useful.
I have also changed the server side template generation to generate a
DCERPC "operation range error" by default when you have not yet filled
in a server side function. This allows us to correctly implement
functions in any order in our rpc pipe servers and give the client the
right information about the fault.
(This used to be commit a4df5c7cf88891a78d82c8d6d7f058d8485e73f0)
|
|
use it only for debugging in a local tree
metze
(This used to be commit 7c53e05b4874143e8e8cd0034ab5a6a986e7994c)
|
|
(This used to be commit cafc8a5e763834a26432c467abfe84f140bb7d80)
|
|
and tell me what you think? Output does not compile yet.
(This used to be commit 65692c9a9301329ad93628778e3d8f9188a67059)
|
|
a dcesrv module and also use the autogenerated boilerplate
you can just use:
#define DCESRV_INTERFACE_<UPPERCASE_INTERFACE_NAME>_BIND <interface_name>_bind
#define DCESRV_INTERFACE_<UPPERCASE_INTERFACE_NAME>_UNBIND <interface_name>_unbind
the prototype for the functions are the same as in
struct dcesrv_interface {
...
/* this function is called when the client binds to this interface */
NTSTATUS (*bind)(struct dcesrv_call_state *, const struct dcesrv_interface *);
/* this function is called when the client disconnects the endpoint */
void (*unbind)(struct dcesrv_connection *, const struct dcesrv_interface *);
...
};
e.g.
#define DCESRV_INTERFACE_WINREG_BIND winreg_bind
#define DCESRV_INTERFACE_WINREG_UNBIND winreg_unbind
metze
(This used to be commit ae97f5f50b0d00889f29e1903513cee88891545d)
|
|
(This used to be commit 11717ae912449bde596ff6cf7d8fddcc86548f15)
|
|
metze
(This used to be commit 5ac4f878687eb0fa95a2e5830a8372168a27d3b3)
|
|
- implement the interface_by_name() and interface_by_uuid() hooks
for the autogenerated dcerpc server boilerplates.
metze
(This used to be commit 0b6a291eb4b353259ad5b72f8731a5504d9dc8c7)
|
|
metze
(This used to be commit 61ec710518469876ccc48d57b5fee5d6ead3d482)
|
|
so it now apears in the text section of
'size librpc/gen_ndr/tables.o'
metze
(This used to be commit f3b917402aeb9d749abf2df34413e61b71fd5fff)
|
|
(This used to be commit 866ef2edab91996964c8b43dbdd417f5908a00e1)
|
|
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)
|
|
pointers are arrays
(This used to be commit e67cbfff6c1041671711e4f73894e6e13151d57e)
|
|
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)
|
|
function
(This used to be commit d18a08a870aa9ee12ed2913775b70d1b8a09c84b)
|