summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2004-04-11 10:33:05 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:51:11 -0500
commit88b841befe1eb4157e7de6e0421e1699293a91d0 (patch)
treee5a7b3d29f23d6fae068f674ea1ee4f0d811c96c
parent3287bd9364c4214e41cd87167dc8d7a768a9edc2 (diff)
downloadsamba-88b841befe1eb4157e7de6e0421e1699293a91d0.tar.gz
samba-88b841befe1eb4157e7de6e0421e1699293a91d0.tar.bz2
samba-88b841befe1eb4157e7de6e0421e1699293a91d0.zip
r160: Fix msdfs proxy. Could others please also test this, this code is soo
cluttered. I've tested with w2k and xp with msdfs proxy and normal msdfs root, but I would like others to also look at the code. Thanks, Volker (This used to be commit c31feb045a3d9a6bc1dfd0377a74d93354e8034a)
-rw-r--r--source3/msdfs/msdfs.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/source3/msdfs/msdfs.c b/source3/msdfs/msdfs.c
index 2ac7bda175..c66f0477a8 100644
--- a/source3/msdfs/msdfs.c
+++ b/source3/msdfs/msdfs.c
@@ -495,15 +495,13 @@ BOOL get_referred_path(char *pathname, struct junction_map *jucn,
*/
if (dp.reqpath[0] == '\0') {
- return self_ref(pathname, jucn, consumedcntp, self_referralp);
- }
-
- pstrcpy(conn_path, lp_pathname(snum));
- if (!create_conn_struct(conn, snum, conn_path))
- return False;
- if (*lp_msdfs_proxy(snum) != '\0') {
struct referral* ref;
+
+ if (*lp_msdfs_proxy(snum) == '\0')
+ return self_ref(pathname, jucn, consumedcntp,
+ self_referralp);
+
jucn->referral_count = 1;
if ((ref = (struct referral*) malloc(sizeof(struct referral))) == NULL) {
DEBUG(0, ("malloc failed for referral\n"));
@@ -522,6 +520,10 @@ BOOL get_referred_path(char *pathname, struct junction_map *jucn,
goto out;
}
+ pstrcpy(conn_path, lp_pathname(snum));
+ if (!create_conn_struct(conn, snum, conn_path))
+ return False;
+
/* If not remote & not a self referral, return False */
if (!resolve_dfs_path(pathname, &dp, conn, False,
&jucn->referral_list, &jucn->referral_count,