Author: jpeach
Date: 2006-01-03 06:29:14 +0000 (Tue, 03 Jan 2006)
New Revision: 12690

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=12690

Log:
Allow the administrator to configure the DFS referral timeout for
each share.

Modified:
   branches/tmp/jpeach-cluster/source/param/loadparm.c
   branches/tmp/jpeach-cluster/source/smbd/msdfs.c


Changeset:
Modified: branches/tmp/jpeach-cluster/source/param/loadparm.c
===================================================================
--- branches/tmp/jpeach-cluster/source/param/loadparm.c 2006-01-03 06:25:10 UTC 
(rev 12689)
+++ branches/tmp/jpeach-cluster/source/param/loadparm.c 2006-01-03 06:29:14 UTC 
(rev 12690)
@@ -414,6 +414,7 @@
        BOOL bInheritPerms;
        BOOL bInheritACLS;
        BOOL bMSDfsRoot;
+       int  bMSDfsTTL;
        BOOL bUseClientDriver;
        BOOL bDefaultDevmode;
        BOOL bForcePrintername;
@@ -540,6 +541,7 @@
        False,                  /* bInheritPerms */
        False,                  /* bInheritACLS */
        False,                  /* bMSDfsRoot */
+       REFERRAL_TTL,           /* bMSDfsTTL */
        False,                  /* bUseClientDriver */
        False,                  /* bDefaultDevmode */
        False,                  /* bForcePrintername */
@@ -1173,6 +1175,7 @@
 
 
        {"msdfs root", P_BOOL, P_LOCAL, &sDefault.bMSDfsRoot, NULL, NULL, 
FLAG_ADVANCED | FLAG_SHARE}, 
+       {"msdfs referral ttl", P_INTEGER, P_LOCAL, &sDefault.bMSDfsTTL, NULL, 
NULL, FLAG_ADVANCED | FLAG_SHARE},
        {"msdfs proxy", P_STRING, P_LOCAL, &sDefault.szMSDfsProxy, NULL, NULL, 
FLAG_ADVANCED | FLAG_SHARE}, 
        {"host msdfs", P_BOOL, P_GLOBAL, &Globals.bHostMSDfs, NULL, NULL, 
FLAG_ADVANCED}, 
 
@@ -1864,6 +1867,7 @@
 FN_LOCAL_STRING(lp_hide_files, szHideFiles)
 FN_LOCAL_STRING(lp_veto_oplocks, szVetoOplockFiles)
 FN_LOCAL_BOOL(lp_msdfs_root, bMSDfsRoot)
+FN_LOCAL_INTEGER(lp_msdfs_referral_ttl, bMSDfsTTL)
 FN_LOCAL_BOOL(lp_autoloaded, autoloaded)
 FN_LOCAL_BOOL(lp_preexec_close, bPreexecClose)
 FN_LOCAL_BOOL(lp_rootpreexec_close, bRootpreexecClose)

Modified: branches/tmp/jpeach-cluster/source/smbd/msdfs.c
===================================================================
--- branches/tmp/jpeach-cluster/source/smbd/msdfs.c     2006-01-03 06:25:10 UTC 
(rev 12689)
+++ branches/tmp/jpeach-cluster/source/smbd/msdfs.c     2006-01-03 06:29:14 UTC 
(rev 12690)
@@ -163,7 +163,7 @@
  A valid referral is of the form: msdfs:server1\share1,server2\share2
  **********************************************************************/
 
-static BOOL parse_symlink(char* buf,struct referral** preflist, 
+static BOOL parse_symlink(const connection_struct * conn, char* buf,struct 
referral** preflist,
                                 int* refcount)
 {
        pstring temp;
@@ -212,7 +212,7 @@
                pstrcpy(reflist[i].alternate_path, "\\");
                pstrcat(reflist[i].alternate_path, p);
                reflist[i].proximity = 0;
-               reflist[i].ttl = REFERRAL_TTL;
+               reflist[i].ttl = lp_msdfs_referral_ttl(SNUM(conn));
                DEBUG(10, ("parse_symlink: Created alt path: %s\n", 
reflist[i].alternate_path));
        }
 
@@ -256,7 +256,7 @@
 
                referral[referral_len] = '\0';
                DEBUG(5,("is_msdfs_link: %s -> %s\n",path,referral));
-               if (parse_symlink(referral, reflistp, refcnt))
+               if (parse_symlink(conn, referral, reflistp, refcnt))
                        return True;
        }
        return False;

Reply via email to