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;