summaryrefslogtreecommitdiff
path: root/source3/smbd/msdfs.c
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2011-09-24 05:28:08 +0200
committerVolker Lendecke <vl@samba.org>2011-09-26 14:59:12 +0200
commit649437af3db39d4c5fd9807066619ee9d7f05985 (patch)
tree54007914b0a8e35556bd612227dd5769b142ffea /source3/smbd/msdfs.c
parentc74de09d81fca9f5a744d0f28e302224052c34af (diff)
downloadsamba-649437af3db39d4c5fd9807066619ee9d7f05985.tar.gz
samba-649437af3db39d4c5fd9807066619ee9d7f05985.tar.bz2
samba-649437af3db39d4c5fd9807066619ee9d7f05985.zip
s3: Remove the smbd_server_conn ref from parse_dfs_path
Diffstat (limited to 'source3/smbd/msdfs.c')
-rw-r--r--source3/smbd/msdfs.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c
index 702dd1d28d..7d0b78256e 100644
--- a/source3/smbd/msdfs.c
+++ b/source3/smbd/msdfs.c
@@ -53,10 +53,10 @@
static NTSTATUS parse_dfs_path(connection_struct *conn,
const char *pathname,
bool allow_wcards,
+ bool allow_broken_path,
struct dfs_path *pdp, /* MUST BE TALLOCED */
bool *ppath_contains_wcard)
{
- struct smbd_server_connection *sconn = smbd_server_conn;
char *pathname_local;
char *p,*temp;
char *servicename;
@@ -84,7 +84,7 @@ static NTSTATUS parse_dfs_path(connection_struct *conn,
sepchar = pdp->posix_path ? '/' : '\\';
- if (!sconn->using_smb2 && (*pathname != sepchar)) {
+ if (allow_broken_path && (*pathname != sepchar)) {
DEBUG(10,("parse_dfs_path: path %s doesn't start with %c\n",
pathname, sepchar ));
/*
@@ -729,7 +729,8 @@ static NTSTATUS dfs_redirect(TALLOC_CTX *ctx,
return NT_STATUS_NO_MEMORY;
}
- status = parse_dfs_path(conn, path_in, search_wcard_flag, pdp,
+ status = parse_dfs_path(conn, path_in, search_wcard_flag,
+ !smbd_server_conn->using_smb2, pdp,
ppath_contains_wcard);
if (!NT_STATUS_IS_OK(status)) {
TALLOC_FREE(pdp);
@@ -865,7 +866,8 @@ NTSTATUS get_referred_path(TALLOC_CTX *ctx,
*self_referralp = False;
- status = parse_dfs_path(NULL, dfs_path, False, pdp, &dummy);
+ status = parse_dfs_path(NULL, dfs_path, False,
+ !smbd_server_conn->using_smb2, pdp, &dummy);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
@@ -1355,7 +1357,8 @@ bool create_junction(TALLOC_CTX *ctx,
if (!pdp) {
return False;
}
- status = parse_dfs_path(NULL, dfs_path, False, pdp, &dummy);
+ status = parse_dfs_path(NULL, dfs_path, False,
+ !smbd_server_conn->using_smb2, pdp, &dummy);
if (!NT_STATUS_IS_OK(status)) {
return False;
}