DCERPC: Difference between revisions

From SambaWiki
(source4: change callers to explicit check r.out.result for NTSTATUS based functions)
(Some thinks are already done now)
Line 18: Line 18:
* DCERPC callbacks http://msdn.microsoft.com/en-us/library/cc243711%28PROT.10%29.aspx
* DCERPC callbacks http://msdn.microsoft.com/en-us/library/cc243711%28PROT.10%29.aspx


=== DCERPC merge/ TODO ===
=== DCERPC merge/ DONE ===


* pidl: generic client stub bindings based on 'struct dcerpc_binding_handle'
* pidl: generic client stub bindings based on 'struct dcerpc_binding_handle'
* source4: change callers to explicit check r.out.result for NTSTATUS based functions
* source4: change callers to explicit check r.out.result for NTSTATUS based functions
* librpc/dcerpc: generic 'struct dcerpc_binding_handle' based infrastructure for DCERPC Calls
* librpc/dcerpc: generic 'struct dcerpc_binding_handle' based infrastructure for DCERPC Calls
* source4/librpc: provide a dcerpc_binding_handle implementation on the current 'dcerpc_pipe' infrastructure
* source4/librpc: provide a dcerpc_binding_handle implementation on top the current 'dcerpc_pipe' infrastructure
* pidl: remove old Samba4 style stub bindings
* pidl: remove old Samba4 style stub bindings
* source4/irpc: provide a dcerpc_binding_handle implementation to hide IRPC specific details.
* source3/rpc_client: provide a dcerpc_binding_handle implementation on the current 'rpc_pipe_client' infrastructure
* source3/rpc_client: provide a dcerpc_binding_handle implementation on the current 'rpc_pipe_client' infrastructure

=== DCERPC merge/ TODO ===

* source4/irpc: provide a dcerpc_binding_handle implementation to hide IRPC specific details.
* source3: convert the callers to use the dcerpc_binding_handle based stubs
* source3: convert the callers to use the dcerpc_binding_handle based stubs
* source3/rpc_client: hide rpc_cli_transport infrastructure behind a tstream implementation.
* source3/rpc_client: hide rpc_cli_transport infrastructure behind a tstream implementation.

Revision as of 09:29, 30 August 2010

DCERPC / Overview

The samba DCERPC infrastructure should support all protocol features described in:

Samba3 vs. Samba4

We have two separate (both incomplete) implementations of DCERPC (server and client side). The aim is to merge the good parts of both implementations together and extend the result to be more feature complete.

DCERPC Design Goals

Base the whole infrastructure on talloc, tevent and tstream. All internals are fully async. This will allow us to support also the most complex problems like:

DCERPC merge/ DONE

  • pidl: generic client stub bindings based on 'struct dcerpc_binding_handle'
  • source4: change callers to explicit check r.out.result for NTSTATUS based functions
  • librpc/dcerpc: generic 'struct dcerpc_binding_handle' based infrastructure for DCERPC Calls
  • source4/librpc: provide a dcerpc_binding_handle implementation on top the current 'dcerpc_pipe' infrastructure
  • pidl: remove old Samba4 style stub bindings
  • source3/rpc_client: provide a dcerpc_binding_handle implementation on the current 'rpc_pipe_client' infrastructure

DCERPC merge/ TODO

  • source4/irpc: provide a dcerpc_binding_handle implementation to hide IRPC specific details.
  • source3: convert the callers to use the dcerpc_binding_handle based stubs
  • source3/rpc_client: hide rpc_cli_transport infrastructure behind a tstream implementation.
  • source4/librpc: replace dcerpc_transport infrastructure by using tstream as interface to the low level transport.
  • start to think about how we can have a common code base between the dcerpc_binding_handle layer and the tstream layer...
  • start to think about how to make the server part more generic...
  • ...