diff server/config.h @ 0:a4671277546c tip

created the repository for the thymian project
author ferencd
date Tue, 17 Aug 2021 11:19:54 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/server/config.h	Tue Aug 17 11:19:54 2021 +0200
@@ -0,0 +1,72 @@
+#ifndef CONFIG
+#define CONFIG
+
+#include <stdint.h>
+
+class config final
+{
+public:
+
+    config();
+
+    static config& instance();
+
+    bool valid() const {return m_valid;}
+
+    struct c_flood final
+    {
+        // How many times a host can request from us in a second before we decide that it is flooding us.
+        int max_offense_per_second  = 100;
+
+        // How many times do we accept a flooding offense/second before we consider to put the host on a ban list
+        int max_accepted_offenses   = 10;
+
+        //how long time must pass after the first offense in order to really put the host on ban list
+        double max_offense_time     = 60.0;
+
+        // the default time an offenser gets kicked out, 1 minute
+        int default_suspension_time = 60;
+    };
+
+    struct c_server final
+    {
+        // how many seconds do we allow for a host to be invisible before we switch it'sstatus to red on the dashboard
+        int max_offline_seconds_allowed = 10;
+
+        // how many seconds do we allow for waiting for a client to appear before showing an error message
+        int max_client_notconnected_seconds_allowed = 60;
+
+        // how many seconds do we allow for waiting for a client to appear before showing an error message
+        int max_client_grace_seconds = 60;
+
+        // how many extra grace seconds can a client get
+        int max_extra_grace_seconds = 60;
+
+        // how many seconds when we check in the pending query handling if a host has checked out or not
+        int host_logout_check_seconds = 5;
+
+        // how many grace seconds do we allow to a host when dealing with query
+        int host_grace_time_extension = 10;
+
+        // how many seconds must pass before we consider the host to be offline
+        int host_offline_confirmed_seconds = 360;
+
+        // how many seconds must pass before we suspect the host to be offline
+        int host_offline_suspect_seconds = 10;
+
+        // initially we support 50MB as download
+        uint64_t max_download_support = 52428800;
+    };
+
+public:
+
+    c_flood flood;
+    c_server server;
+
+private:
+
+    bool m_valid;
+};
+
+#endif // CONFIG
+