mirror of
https://github.com/samba-team/samba.git
synced 2025-02-28 01:58:17 +03:00
98 lines
3.0 KiB
Diff
98 lines
3.0 KiB
Diff
--- source/param/loadparm.c Wed Oct 9 21:17:05 2002
|
|
+++ source/param/loadparm.c Mon Oct 14 16:33:08 2002
|
|
@@ -386,6 +386,8 @@
|
|
BOOL bInheritPerms;
|
|
BOOL bInheritACLS;
|
|
BOOL bMSDfsRoot;
|
|
+ BOOL bMSDfsProxy;
|
|
+ char *bMSDfsLinkName;
|
|
BOOL bUseClientDriver;
|
|
BOOL bDefaultDevmode;
|
|
BOOL bNTAclSupport;
|
|
@@ -508,6 +510,8 @@
|
|
False, /* bInheritPerms */
|
|
False, /* bInheritACLS */
|
|
False, /* bMSDfsRoot */
|
|
+ False, /* bMSDfsProxy */
|
|
+ NULL, /* bMSDfsLinkName */
|
|
False, /* bUseClientDriver */
|
|
False, /* bDefaultDevmode */
|
|
True, /* bNTAclSupport */
|
|
@@ -1079,6 +1083,8 @@
|
|
|
|
|
|
{"msdfs root", P_BOOL, P_LOCAL, &sDefault.bMSDfsRoot, NULL, NULL, FLAG_SHARE},
|
|
+ {"msdfs proxy", P_BOOL, P_LOCAL, &sDefault.bMSDfsProxy, NULL, NULL, FLAG_SHARE},
|
|
+ {"msdfs link name", P_STRING, P_LOCAL, &sDefault.bMSDfsLinkName, NULL, NULL, FLAG_SHARE},
|
|
{"host msdfs", P_BOOL, P_GLOBAL, &Globals.bHostMSDfs, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
|
|
|
|
{"Winbind options", P_SEP, P_SEPARATOR},
|
|
@@ -1730,6 +1736,8 @@
|
|
FN_LOCAL_STRING(lp_veto_oplocks, szVetoOplockFiles)
|
|
FN_LOCAL_STRING(lp_driverlocation, szPrinterDriverLocation)
|
|
FN_LOCAL_BOOL(lp_msdfs_root, bMSDfsRoot)
|
|
+FN_LOCAL_BOOL(lp_msdfs_proxy, bMSDfsProxy)
|
|
+FN_LOCAL_STRING(lp_msdfs_link_name, bMSDfsLinkName)
|
|
FN_LOCAL_BOOL(lp_autoloaded, autoloaded)
|
|
FN_LOCAL_BOOL(lp_preexec_close, bPreexecClose)
|
|
FN_LOCAL_BOOL(lp_rootpreexec_close, bRootpreexecClose)
|
|
--- source/msdfs/msdfs.c Tue Jul 2 08:34:24 2002
|
|
+++ source/msdfs/msdfs.c Mon Oct 14 16:49:57 2002
|
|
@@ -600,12 +600,38 @@
|
|
int reply_size = 0;
|
|
char *pathnamep = pathname;
|
|
|
|
+ struct connection_struct conns;
|
|
+ struct connection_struct* conn = &conns;
|
|
+ int snum;
|
|
+ pstring conn_path;
|
|
+ struct dfs_path dpi;
|
|
+
|
|
+ struct junction_map junction2;
|
|
+ parse_dfs_path(pathname, &dpi);
|
|
+ pstrcpy(junction2.service_name, dpi.servicename);
|
|
+ snum = lp_servicenumber(junction2.service_name);
|
|
+ create_conn_struct(conn, snum, conn_path);
|
|
+
|
|
+
|
|
ZERO_STRUCT(junction);
|
|
|
|
/* get the junction entry */
|
|
if (!pathnamep)
|
|
return -1;
|
|
|
|
+ if (lp_msdfs_proxy(SNUM(conn))) {
|
|
+ DEBUG(10,("running in proxy mode\n"));
|
|
+ pstrcpy(pathnamep, "\\");
|
|
+ pstrcat(pathnamep, dpi.hostname);
|
|
+ pstrcat(pathnamep, "\\");
|
|
+ pstrcat(pathnamep, dpi.servicename);
|
|
+ pstrcat(pathnamep, "\\");
|
|
+ pstrcat(pathnamep, (char *) lp_msdfs_link_name(SNUM(conn)));
|
|
+ } else {
|
|
+ DEBUG(10,("running in normal mode\n"));
|
|
+ }
|
|
+
|
|
+
|
|
/* Trim pathname sent by client so it begins with only one backslash.
|
|
Two backslashes confuse some dfs clients
|
|
*/
|
|
@@ -631,6 +657,17 @@
|
|
}
|
|
}
|
|
|
|
+ if ( lp_msdfs_proxy(SNUM(conn)) ) {
|
|
+ DEBUG(10,("running in proxy mode\n"));
|
|
+ pstrcpy ( pathnamep, "\\" );
|
|
+ pstrcat ( pathnamep, dpi.hostname);
|
|
+ pstrcat ( pathnamep, "\\" );
|
|
+ pstrcat ( pathnamep, dpi.servicename);
|
|
+ } else {
|
|
+ DEBUG(10,("running in normal mode\n"));
|
|
+ }
|
|
+
|
|
+
|
|
/* create the referral depeding on version */
|
|
DEBUG(10,("max_referral_level :%d\n",max_referral_level));
|
|
if(max_referral_level<2 || max_referral_level>3)
|