struct auth_serversupplied_info *server_info;
char *user; /* name of user who *opened* this connection */
- uid_t uid; /* uid of user who *opened* this connection */
- gid_t gid; /* gid of user who *opened* this connection */
char client_address[INET6_ADDRSTRLEN]; /* String version of client IP address. */
uint16 vuid; /* vuid of user who *opened* this connection, or UID_FIELD_INVALID */
- /* following groups stuff added by ih */
-
- /* This groups info is valid for the user that *opened* the connection */
- size_t ngroups;
- gid_t *groups;
-
time_t lastused;
time_t lastused_count;
bool used;
lp_servicename(SNUM(conn)),
conn->user,
conn->connectpath,
- conn->gid,
+ conn->server_info->gid,
get_smb_user_name(),
"",
str);
lp_servicename(SNUM(conn)),
conn->user,
conn->connectpath,
- conn->gid,
+ conn->server_info->gid,
get_current_username(),
current_user_info.domain,
targethost);
}
return talloc_sub_advanced(ctx,
lp_servicename(SNUM(conn)), conn->user,
- conn->connectpath, conn->gid,
+ conn->connectpath,
+ conn->server_info->gid,
get_current_username(),
current_user_info.domain,
prefix);
repository = talloc_sub_advanced(NULL, lp_servicename(SNUM(conn)),
conn->user,
- conn->connectpath, conn->gid,
+ conn->connectpath,
+ conn->server_info->gid,
get_current_username(),
current_user_info.domain,
recycle_repository(handle));
crec.pid = procid_self();
crec.cnum = conn?conn->cnum:-1;
if (conn) {
- crec.uid = conn->uid;
- crec.gid = conn->gid;
+ crec.uid = conn->server_info->uid;
+ crec.gid = conn->server_info->gid;
strlcpy(crec.servicename, lp_servicename(SNUM(conn)),
sizeof(crec.servicename));
}
lp_servicename(SNUM(conn)),
conn->user,
conn->connectpath,
- conn->gid,
+ conn->server_info->gid,
get_current_username(),
current_user_info.domain,
buf);
lp_servicename(SNUM(conn)),
conn->user,
conn->connectpath,
- conn->gid,
+ conn->server_info->gid,
get_current_username(),
current_user_info.domain,
buf);
lp_servicename(SNUM(conn)),
conn->user,
conn->connectpath,
- conn->gid,
+ conn->server_info->gid,
get_current_username(),
current_user_info.domain,
buf);
lp_servicename(SNUM(conn)),
conn->user,
conn->connectpath,
- conn->gid,
+ conn->server_info->gid,
get_current_username(),
current_user_info.domain,
comment);
conn->vuid = (vuser != NULL) ? vuser->vuid : UID_FIELD_INVALID;
- conn->uid = conn->server_info->uid;
- conn->gid = conn->server_info->gid;
string_set(&conn->user, conn->server_info->unix_name);
{
char *s = talloc_sub_advanced(talloc_tos(),
lp_servicename(SNUM(conn)), conn->user,
- conn->connectpath, conn->gid,
+ conn->connectpath,
+ conn->server_info->gid,
get_current_username(),
current_user_info.domain,
lp_pathname(snum));
if (*lp_rootpreexec(snum)) {
char *cmd = talloc_sub_advanced(talloc_tos(),
lp_servicename(SNUM(conn)), conn->user,
- conn->connectpath, conn->gid,
+ conn->connectpath,
+ conn->server_info->gid,
get_current_username(),
current_user_info.domain,
lp_rootpreexec(snum));
if (*lp_preexec(snum)) {
char *cmd = talloc_sub_advanced(talloc_tos(),
lp_servicename(SNUM(conn)), conn->user,
- conn->connectpath, conn->gid,
+ conn->connectpath,
+ conn->server_info->gid,
get_current_username(),
current_user_info.domain,
lp_preexec(snum));
change_to_user(conn, vuid)) {
char *cmd = talloc_sub_advanced(talloc_tos(),
lp_servicename(SNUM(conn)), conn->user,
- conn->connectpath, conn->gid,
+ conn->connectpath,
+ conn->server_info->gid,
get_current_username(),
current_user_info.domain,
lp_postexec(SNUM(conn)));
if (*lp_rootpostexec(SNUM(conn))) {
char *cmd = talloc_sub_advanced(talloc_tos(),
lp_servicename(SNUM(conn)), conn->user,
- conn->connectpath, conn->gid,
+ conn->connectpath,
+ conn->server_info->gid,
get_current_username(),
current_user_info.domain,
lp_rootpostexec(SNUM(conn)));
*/
if((lp_security() == SEC_SHARE) && (current_user.conn == conn) &&
- (current_user.ut.uid == conn->uid)) {
+ (current_user.ut.uid == conn->server_info->uid)) {
DEBUG(4,("change_to_user: Skipping user change - already "
"user\n"));
return(True);
*/
if (conn->force_user) /* security = share sets this too */ {
- uid = conn->uid;
- gid = conn->gid;
- group_list = conn->groups;
- num_groups = conn->ngroups;
+ uid = conn->server_info->uid;
+ gid = conn->server_info->gid;
+ group_list = conn->server_info->groups;
+ num_groups = conn->server_info->n_groups;
} else if (vuser) {
uid = conn->admin_user ? 0 : vuser->server_info->uid;
gid = conn->server_info->gid;
int i;
for (i = 0; i < num_groups; i++) {
- if (group_list[i] == conn->gid) {
- gid = conn->gid;
+ if (group_list[i] == conn->server_info->gid) {
+ gid = conn->server_info->gid;
gid_to_sid(&conn->server_info->ptok
->user_sids[1], gid);
break;
}
}
} else {
- gid = conn->gid;
+ gid = conn->server_info->gid;
gid_to_sid(&conn->server_info->ptok->user_sids[1],
gid);
}