IndexingDisabled config setting implemented

main
Inga 🏳‍🌈 14 years ago
parent a8d87058bc
commit 29df0e492b
  1. 2
      Builder/IISMainHandler/build.txt
  2. 3
      Common/Config.cs
  3. 19
      Core/Config.cs
  4. 11
      IISMainHandler/handlers/response/RobotsHandler.cs

@ -29,6 +29,8 @@ namespace FLocal.Common {
public readonly string AdminUserName; public readonly string AdminUserName;
public readonly bool IsIndexingDisabled;
protected Config(NameValueCollection data) : base(data) { protected Config(NameValueCollection data) : base(data) {
this.InitTime = DateTime.Now.ToLongTimeString(); this.InitTime = DateTime.Now.ToLongTimeString();
this.mainConnection = new MySQLConnector.Connection(data["ConnectionString"], MySQLConnector.PostgresDBTraits.instance); this.mainConnection = new MySQLConnector.Connection(data["ConnectionString"], MySQLConnector.PostgresDBTraits.instance);
@ -40,6 +42,7 @@ namespace FLocal.Common {
this.UploaderUrl = data["UploaderUrl"]; this.UploaderUrl = data["UploaderUrl"];
this.AdminUserName = data["AdminUserName"]; this.AdminUserName = data["AdminUserName"];
this.ActivityThreshold = TimeSpan.FromMinutes(int.Parse(data["ActivityThreshold"])); this.ActivityThreshold = TimeSpan.FromMinutes(int.Parse(data["ActivityThreshold"]));
this.IsIndexingDisabled = parseBool(data["DisableIndexing"]);
} }
public static void Init(NameValueCollection data) { public static void Init(NameValueCollection data) {

@ -52,5 +52,24 @@ namespace FLocal.Core {
public virtual void Dispose() { public virtual void Dispose() {
} }
protected static bool parseBool(string value) {
switch(value.ToLower().Trim()) {
case "1":
case "true":
case "on":
case "enabled":
case "yes":
return true;
case "0":
case "false":
case "off":
case "disabled":
case "no":
return false;
default:
throw new CriticalException("Cannot parse '" + value + "'");
}
}
} }
} }

@ -6,6 +6,7 @@ using System.Web;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.IO; using System.IO;
using FLocal.Core; using FLocal.Core;
using FLocal.Common;
namespace FLocal.IISHandler.handlers.response { namespace FLocal.IISHandler.handlers.response {
class RobotsHandler : AbstractGetHandler<FLocal.Common.URL.Robots> { class RobotsHandler : AbstractGetHandler<FLocal.Common.URL.Robots> {
@ -18,10 +19,12 @@ namespace FLocal.IISHandler.handlers.response {
protected override IEnumerable<System.Xml.Linq.XElement> getSpecificData(WebContext context) { protected override IEnumerable<System.Xml.Linq.XElement> getSpecificData(WebContext context) {
context.httpresponse.ContentType = "text/plain"; context.httpresponse.ContentType = "text/plain";
context.httpresponse.WriteLine("User-agent: *"); if(Config.instance.IsIndexingDisabled) {
context.httpresponse.WriteLine("Disallow: /"); context.httpresponse.WriteLine("User-agent: *");
foreach(var subnet in context.remoteHost.matchingSubnets) { context.httpresponse.WriteLine("Disallow: /");
context.httpresponse.WriteLine(subnet.ToString()); foreach(var subnet in context.remoteHost.matchingSubnets) {
context.httpresponse.WriteLine(subnet.ToString());
}
} }
throw new SkipXsltTransformException(); throw new SkipXsltTransformException();
} }

Loading…
Cancel
Save