[samba-tng] dce/rpc "thread" context

Nicolas Williams Nicolas.Williams at wdr.com
Tue Feb 8 15:24:17 GMT 2000


On Tue, 8 Feb 2000, Luke Kenneth Casson Leighton wrote:
> ok, i finally came up with a scheme to maintain smbd vuid "thread"-like 
> context across smbd->msrpcd boundaries. 
> 
> funnily enough, it's also (i hope!) suitable for use in creating a system 
> to potentially map multiple smbds to one msrpcd, because there is 
> sufficient info transferred to allow user-security-context switching. 
> we'll have to see. 
> 
> the basic idea is that smbd sends incoming msrpc pdus on loopback with a 
> context_id in the header (DCE/RPC header). _or_ is passes-through a 
> context_id from an outside connection (a _real_ context_id from a real, 
> remote DCE/RPC connection). 
> 
> either way, the context_id is used to reference a lookup table, to map to 
> the [smbd pid, smbd vuid] tuple for the user-security-context. 
> 
> each _new_ context_id that is encountered will need a new entry in the 
> lookup table to created, and this is what creates a new pipes_struct. 
> 
> i removed all the lookup table usage (pipes_struct) in msrpcd, because i 
> didn't know what to do with it (!!!!). 
> 
> now i have to put it all back :) 
> 
> luke 

Luke, I've been thinking about this too lately.

Doing this sort of thing will indeed allow you to have one set of MSRPC
daemons for all smbds running (as opposed to one set of MSRPC daemons
for _each_ smbd). This will result in a huge gain in resources and
performance.

But, If I remember correctly, the context_id you're talking about is a
16-bit item. How do you plan to uniquely map two larger items (PID &
VUID) from disparate instances of smbd into these 16-bit context_ids?

I think you'll find it easier to just encapsulate the DCE/RPC data with
a simple frame that contains the PID and VUID.

Nico
-DISCLAIMER: an automatically appended disclaimer may follow. By posting-
-to a public e-mail mailing list I hereby grant permission to distribute-
-and copy this message.-

This message contains confidential information and is intended only 
for the individual named.  If you are not the named addressee you 
should not disseminate, distribute or copy this e-mail.  Please 
notify the sender immediately by e-mail if you have received this 
e-mail by mistake and delete this e-mail from your system.

E-mail transmission cannot be guaranteed to be secure or error-free 
as information could be intercepted, corrupted, lost, destroyed, 
arrive late or incomplete, or contain viruses.  The sender therefore 
does not accept liability for any errors or omissions in the contents 
of this message which arise as a result of e-mail transmission.  If 
verification is required please request a hard-copy version.  This 
message is provided for informational purposes and should not be 
construed as a solicitation or offer to buy or sell any securities or 
related financial instruments.



More information about the samba-technical mailing list