diff options
author | Andreas Schneider <asn@samba.org> | 2011-03-02 10:56:46 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2011-03-08 11:41:30 +0100 |
commit | 4b8dd08a3859c0b7dd2085898266ef5bbdbc3420 (patch) | |
tree | 076fe204fcd3e8e6c2c46e6d53a1810cfc5b464e /source3/rpc_server/srv_pipe.c | |
parent | 5ce12e0beb65765b7e4bcef7f8d9b1963bd53e52 (diff) | |
download | samba-4b8dd08a3859c0b7dd2085898266ef5bbdbc3420.tar.gz samba-4b8dd08a3859c0b7dd2085898266ef5bbdbc3420.tar.bz2 samba-4b8dd08a3859c0b7dd2085898266ef5bbdbc3420.zip |
s3-rpc_server: Add server support for NCALRPC system user pipe.
Signed-off-by: Günther Deschner <gd@samba.org>
Diffstat (limited to 'source3/rpc_server/srv_pipe.c')
-rw-r--r-- | source3/rpc_server/srv_pipe.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/source3/rpc_server/srv_pipe.c b/source3/rpc_server/srv_pipe.c index e062e63a30..8af3b319ec 100644 --- a/source3/rpc_server/srv_pipe.c +++ b/source3/rpc_server/srv_pipe.c @@ -987,6 +987,9 @@ static bool api_pipe_bind_req(struct pipes_struct *p, case DCERPC_AUTH_LEVEL_PRIVACY: p->auth.auth_level = DCERPC_AUTH_LEVEL_PRIVACY; break; + case DCERPC_AUTH_LEVEL_NONE: + p->auth.auth_level = DCERPC_AUTH_LEVEL_NONE; + break; default: DEBUG(0, ("Unexpected auth level (%u).\n", (unsigned int)auth_info.auth_level )); @@ -1023,6 +1026,25 @@ static bool api_pipe_bind_req(struct pipes_struct *p, } break; + case DCERPC_AUTH_TYPE_NCALRPC_AS_SYSTEM: + if (p->transport == NCALRPC && p->system_user) { + status = make_session_info_system(p, + &p->session_info); + if (!NT_STATUS_IS_OK(status)) { + goto err_exit; + } + + auth_resp = data_blob_talloc(pkt, + "NCALRPC_AUTH_OK", + 15); + + p->auth.auth_type = DCERPC_AUTH_TYPE_NCALRPC_AS_SYSTEM; + p->pipe_bound = true; + } else { + goto err_exit; + } + break; + case DCERPC_AUTH_TYPE_NONE: break; |