diff options
-rw-r--r-- | server/src/configuration.cc | 4 | ||||
-rw-r--r-- | server/src/configuration.h | 6 | ||||
-rw-r--r-- | server/src/widgetgenerator.cc | 16 |
3 files changed, 17 insertions, 9 deletions
diff --git a/server/src/configuration.cc b/server/src/configuration.cc index 8883e30..20d1c75 100644 --- a/server/src/configuration.cc +++ b/server/src/configuration.cc @@ -33,8 +33,8 @@ std::string Conf::server_group = "pracro"; std::string Conf::journal_commit_addr = "localhost"; port_t Conf::journal_commit_port = 18112; -unsigned int Conf::db_max_ttl = 60 * 60 * 24; -unsigned int Conf::pentominos_max_ttl = 60 * 60 * 24; +time_t Conf::db_max_ttl = 60 * 60 * 24; +time_t Conf::pentominos_max_ttl = 60 * 60 * 24; std::string pentominos_addr = "localhost"; port_t pentominos_potr = 11108; diff --git a/server/src/configuration.h b/server/src/configuration.h index 09d8139..eacac14 100644 --- a/server/src/configuration.h +++ b/server/src/configuration.h @@ -28,6 +28,8 @@ #define __ARTEFACT_CONFIGURATION_H__ #include <string> + +#include <time.h> #include <sys/types.h> typedef uint16_t port_t; @@ -40,8 +42,8 @@ namespace Conf { extern std::string journal_commit_addr; extern port_t journal_commit_port; - extern unsigned int db_max_ttl; - extern unsigned int pentominos_max_ttl; + extern time_t db_max_ttl; + extern time_t pentominos_max_ttl; extern std::string pentominos_addr; extern port_t pentominos_port; diff --git a/server/src/widgetgenerator.cc b/server/src/widgetgenerator.cc index 32fdaba..e9a8fee 100644 --- a/server/src/widgetgenerator.cc +++ b/server/src/widgetgenerator.cc @@ -26,6 +26,8 @@ */ #include "widgetgenerator.h" +#include "configuration.h" + static std::string send_macro_widget(Macro ¯o, Widget &widget, std::string tabs, @@ -57,9 +59,11 @@ static std::string send_macro_widget(Macro ¯o, if(luamap != "") { Value value = mapper.map(luamap); - widget.attributes["value"] = value.value; - timestamp = value.timestamp; - prefilled = "pentominos"; + if(value.timestamp > time(NULL) - Conf::pentominos_max_ttl) { + widget.attributes["value"] = value.value; + timestamp = value.timestamp; + prefilled = "pentominos"; + } } // widget.attributes.erase(widget.attributes.find("map")); } @@ -67,8 +71,10 @@ static std::string send_macro_widget(Macro ¯o, // Check if there is a previously stored value in the db... if(values.find(widget.attributes["name"]) != values.end() && (prefilled == "" || values[widget.attributes["name"]].timestamp > timestamp)) { - widget.attributes["value"] = values[widget.attributes["name"]].value; - prefilled = "pracro"; + if(values[widget.attributes["name"]].timestamp > time(NULL) - Conf::db_max_ttl) { + widget.attributes["value"] = values[widget.attributes["name"]].value; + prefilled = "pracro"; + } } while(p != widget.attributes.end()) { |