bool afs_login(connection_struct *conn)
{
- extern userdom_struct current_user_info;
- extern struct current_user current_user;
DATA_BLOB ticket;
char *afs_username = NULL;
char *cell = NULL;
afs_username = talloc_sub_advanced(ctx,
SNUM(conn), conn->user,
conn->connectpath, conn->gid,
- get_current_username(),
- current_user_info.domain,
+ conn->server_info->sanitized_username,
+ pdb_get_domain(conn->server_info->sam_account),
afs_username);
if (!afs_username) {
return false;
}
- user_sid = ¤t_user.nt_user_token->user_sids[0];
+ user_sid = &conn->server_info->ptok->user_sids[0];
afs_username = talloc_string_sub(talloc_tos(),
afs_username,
"%s",
conn->server_info->unix_name,
conn->connectpath,
conn->server_info->gid,
- get_current_username(),
+ conn->server_info->sanitized_username,
current_user_info.domain,
targethost);
#include "includes.h"
-extern userdom_struct current_user_info;
-
static int vfs_full_audit_debug_level = DBGC_VFS;
struct vfs_full_audit_private_data {
conn->server_info->unix_name,
conn->connectpath,
conn->server_info->gid,
- get_current_username(),
- current_user_info.domain,
+ conn->server_info->sanitized_username,
+ pdb_get_domain(conn->server_info->sam_account),
prefix);
}
conn->server_info->unix_name,
conn->connectpath,
conn->server_info->gid,
- get_current_username(),
+ conn->server_info->sanitized_username,
current_user_info.domain,
recycle_repository(handle));
ALLOC_CHECK(repository, done);
conn->server_info->unix_name,
conn->connectpath,
conn->server_info->gid,
- get_current_username(),
+ conn->server_info->sanitized_username,
pdb_get_domain(conn->server_info->sam_account),
buf);
if (!buf) {
conn->server_info->unix_name,
conn->connectpath,
conn->server_info->gid,
- get_current_username(),
+ conn->server_info->sanitized_username,
pdb_get_domain(conn->server_info->sam_account),
buf);
if (!buf) {
conn->server_info->unix_name,
conn->connectpath,
conn->server_info->gid,
- get_current_username(),
+ conn->server_info->sanitized_username,
pdb_get_domain(conn->server_info->sam_account),
buf);
}
conn->server_info->unix_name,
conn->connectpath,
conn->server_info->gid,
- get_current_username(),
+ conn->server_info->sanitized_username,
pdb_get_domain(conn->server_info->sam_account),
comment);
if (comment) {
return NT_STATUS_OK;
}
+ if (!( strequal(pdp->servicename, lp_servicename(SNUM(conn)))
+ || (strequal(pdp->servicename, HOMES_NAME)
+ && strequal(lp_servicename(SNUM(conn)),
+ conn->server_info->sanitized_username) )) ) {
+
+ /* The given sharename doesn't match this connection. */
+ TALLOC_FREE(pdp);
+
+ return NT_STATUS_OBJECT_PATH_NOT_FOUND;
+ }
+
status = dfs_path_lookup(ctx, conn, path_in, pdp,
search_wcard_flag, NULL, NULL);
if (!NT_STATUS_IS_OK(status)) {
conn->server_info->unix_name,
conn->connectpath,
conn->server_info->gid,
- get_current_username(),
- current_user_info.domain,
+ conn->server_info->sanitized_username,
+ pdb_get_domain(conn->server_info->sam_account),
lp_pathname(snum));
if (!s) {
conn_free(conn);
conn->server_info->unix_name,
conn->connectpath,
conn->server_info->gid,
- get_current_username(),
- current_user_info.domain,
+ conn->server_info->sanitized_username,
+ pdb_get_domain(conn->server_info->sam_account),
lp_rootpreexec(snum));
DEBUG(5,("cmd=%s\n",cmd));
ret = smbrun(cmd,NULL);
conn->server_info->unix_name,
conn->connectpath,
conn->server_info->gid,
- get_current_username(),
- current_user_info.domain,
+ conn->server_info->sanitized_username,
+ pdb_get_domain(conn->server_info->sam_account),
lp_preexec(snum));
ret = smbrun(cmd,NULL);
TALLOC_FREE(cmd);
conn->server_info->unix_name,
conn->connectpath,
conn->server_info->gid,
- get_current_username(),
- current_user_info.domain,
+ conn->server_info->sanitized_username,
+ pdb_get_domain(conn->server_info->sam_account),
lp_postexec(SNUM(conn)));
smbrun(cmd,NULL);
TALLOC_FREE(cmd);
conn->server_info->unix_name,
conn->connectpath,
conn->server_info->gid,
- get_current_username(),
- current_user_info.domain,
+ conn->server_info->sanitized_username,
+ pdb_get_domain(conn->server_info->sam_account),
lp_rootpostexec(SNUM(conn)));
smbrun(cmd,NULL);
TALLOC_FREE(cmd);