summaryrefslogtreecommitdiffstats
path: root/source/rpc_parse/parse_creds.c
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>2000-02-06 05:17:28 +0000
committerLuke Leighton <lkcl@samba.org>2000-02-06 05:17:28 +0000
commitcf34c0bec59dfd8b83edf3e111e925ccd3db1226 (patch)
treec68c44f0f3c93c46845e6fd4183b99328d4154d5 /source/rpc_parse/parse_creds.c
parent28aa3f66138b8be02d8198537b0e524b4b6b417b (diff)
downloadsamba-cf34c0bec59dfd8b83edf3e111e925ccd3db1226.tar.gz
samba-cf34c0bec59dfd8b83edf3e111e925ccd3db1226.tar.xz
samba-cf34c0bec59dfd8b83edf3e111e925ccd3db1226.zip
this is probably one of THE most reluctant commits i've ever made.
it's far-reaching, and necessary. this adds a vuser_struct tdb database, with a key [smbd's pid, vuid]. smbd uses it in every instance of standard_sub() and standard_sub_vuser(). that's almost every single SMB call for any IPC$ access. the next stage is to remove sesssetup_user, probably sessetup_user_list too, and review all occurences of standard_sub_basic used by smbd because if they use standard_sub_basic() they might be expecting to read sesssetup_user, and if they do _that_, they should be using standard_sub_vuser() instead. all i wanted was a means to get vuids across to msrpc daemons.
Diffstat (limited to 'source/rpc_parse/parse_creds.c')
-rw-r--r--source/rpc_parse/parse_creds.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/source/rpc_parse/parse_creds.c b/source/rpc_parse/parse_creds.c
index 3e723787689..29a5bb12f0a 100644
--- a/source/rpc_parse/parse_creds.c
+++ b/source/rpc_parse/parse_creds.c
@@ -412,7 +412,8 @@ BOOL creds_io_cmd(char *desc, CREDS_CMD *r_u, prs_struct *ps, int depth)
prs_uint16("version", ps, depth, &(r_u->version));
prs_uint16("command", ps, depth, &(r_u->command));
- prs_uint32("pid ", ps, depth, &(r_u->pid ));
+
+ vuid_io_key("key", &r_u->key, ps, 0);
prs_string("name ", ps, depth, r_u->name, strlen(r_u->name), sizeof(r_u->name));
prs_align(ps);
@@ -434,7 +435,7 @@ BOOL creds_io_cmd(char *desc, CREDS_CMD *r_u, prs_struct *ps, int depth)
BOOL create_ntuser_creds( prs_struct *ps,
const char* name,
uint16 version, uint16 command,
- uint32 pid,
+ const vuser_key *key,
const struct ntuser_creds *ntu,
BOOL reuse)
{
@@ -452,7 +453,7 @@ BOOL create_ntuser_creds( prs_struct *ps,
fstrcpy(cmd.name, name);
cmd.version = version;
cmd.command = command;
- cmd.pid = pid ;
+ cmd.key = *key ;
cmd.ptr_creds = ntu != NULL ? 1 : 0;
cmd.cred = &usr;
@@ -475,7 +476,7 @@ BOOL create_ntuser_creds( prs_struct *ps,
BOOL create_user_creds( prs_struct *ps,
const char* name,
uint16 version, uint16 command,
- uint32 pid,
+ const vuser_key *key,
const struct user_creds *usr)
{
CREDS_CMD cmd;
@@ -488,7 +489,7 @@ BOOL create_user_creds( prs_struct *ps,
fstrcpy(cmd.name, name);
cmd.version = version;
cmd.command = command;
- cmd.pid = pid ;
+ cmd.key = *key;
cmd.ptr_creds = usr != NULL ? 1 : 0;
cmd.cred = usr;