summaryrefslogtreecommitdiff
path: root/source3/rpc_server/srv_pipe.c
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2011-03-02 10:56:46 +0100
committerGünther Deschner <gd@samba.org>2011-03-08 11:41:30 +0100
commit4b8dd08a3859c0b7dd2085898266ef5bbdbc3420 (patch)
tree076fe204fcd3e8e6c2c46e6d53a1810cfc5b464e /source3/rpc_server/srv_pipe.c
parent5ce12e0beb65765b7e4bcef7f8d9b1963bd53e52 (diff)
downloadsamba-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.c22
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;