changeset 744:e3eb6b6b1d66

config: use config file for comment captcha settings Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
date Tue, 13 Oct 2015 15:15:16 -0400
parents bd203cc3a6cb
children bcb553411e13
files README comment.c config.c config.cmake config.h.in req.c
diffstat 6 files changed, 17 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/README	Tue Oct 13 15:04:04 2015 -0400
+++ b/README	Tue Oct 13 15:15:16 2015 -0400
@@ -21,9 +21,6 @@
 				  time before which a submission is
 				  considered a spam
 
-	COMMENT_CAPTCHA_A	- math CAPTCHA first number
-	COMMENT_CAPTCHA_B	- math CAPTCHA second number
-
 	DATA_DIR		- path to data directory
 
 	MATHD_DOOR_PATH		- path for the door used to talk to mathd
--- a/comment.c	Tue Oct 13 15:04:04 2015 -0400
+++ b/comment.c	Tue Oct 13 15:15:16 2015 -0400
@@ -445,9 +445,10 @@
 		return GENERIC_ERR_STR;
 	}
 
-	if (captcha != (COMMENT_CAPTCHA_A + COMMENT_CAPTCHA_B)) {
+	if (captcha != (config.comment_captcha_a + config.comment_captcha_b)) {
 		LOG("Math illiterate was here... got:%lu expected:%lu postid:%d",
-		    captcha, COMMENT_CAPTCHA_A + COMMENT_CAPTCHA_B, id);
+		    captcha, config.comment_captcha_a + config.comment_captcha_b,
+		    id);
 		return CAPTCHA_FAIL;
 	}
 
--- a/config.c	Tue Oct 13 15:04:04 2015 -0400
+++ b/config.c	Tue Oct 13 15:15:16 2015 -0400
@@ -89,6 +89,8 @@
 	struct val *lv;
 	struct str *raw;
 
+	srand(time(NULL));
+
 	exampledotcom = STR_DUP("http://example.com");
 
 	if (fname) {
@@ -113,6 +115,10 @@
 			DEFAULT_COMMENT_MAX_THINK);
 	config_load_u64(lv, CONFIG_COMMENT_MIN_THINK, &config.comment_min_think,
 			DEFAULT_COMMENT_MIN_THINK);
+	config_load_u64(lv, CONFIG_COMMENT_CAPTCHA_A, &config.comment_captcha_a,
+			rand());
+	config_load_u64(lv, CONFIG_COMMENT_CAPTCHA_B, &config.comment_captcha_b,
+			rand());
 	config_load_url(lv, CONFIG_BASE_URL, &config.base_url);
 	config_load_url(lv, CONFIG_BUG_BASE_URL, &config.bug_base_url);
 	config_load_url(lv, CONFIG_WIKI_BASE_URL, &config.wiki_base_url);
@@ -124,6 +130,8 @@
 	printf("config.scgi_threads = %"PRIu64"\n", config.scgi_threads);
 	printf("config.comment_max_think = %"PRIu64"\n", config.comment_max_think);
 	printf("config.comment_min_think = %"PRIu64"\n", config.comment_min_think);
+	printf("config.comment_captcha_a = %"PRIu64"\n", config.comment_captcha_a);
+	printf("config.comment_captcha_b = %"PRIu64"\n", config.comment_captcha_b);
 	printf("config.base_url = %s\n", str_cstr(config.base_url));
 	printf("config.wiki_base_url = %s\n", str_cstr(config.wiki_base_url));
 	printf("config.bug_base_url = %s\n", str_cstr(config.bug_base_url));
--- a/config.cmake	Tue Oct 13 15:04:04 2015 -0400
+++ b/config.cmake	Tue Oct 13 15:15:16 2015 -0400
@@ -17,8 +17,6 @@
 
 set_default(DEFAULT_COMMENT_MAX_THINK	86400)	# 1 day max think time
 set_default(DEFAULT_COMMENT_MIN_THINK	10)	# 10 secs min think time
-set_default(COMMENT_CAPTCHA_A		5)	# first number to add
-set_default(COMMENT_CAPTCHA_B		7)	# second number to add
 
 set_default(DATA_DIR			"data")
 
--- a/config.h.in	Tue Oct 13 15:04:04 2015 -0400
+++ b/config.h.in	Tue Oct 13 15:15:16 2015 -0400
@@ -33,9 +33,6 @@
 #cmakedefine DEFAULT_COMMENT_MAX_THINK	${DEFAULT_COMMENT_MAX_THINK}
 #cmakedefine DEFAULT_COMMENT_MIN_THINK	${DEFAULT_COMMENT_MIN_THINK}
 
-#cmakedefine COMMENT_CAPTCHA_A		${COMMENT_CAPTCHA_A}
-#cmakedefine COMMENT_CAPTCHA_B		${COMMENT_CAPTCHA_B}
-
 #cmakedefine DATA_DIR			"${DATA_DIR}"
 
 #cmakedefine MATHD_DOOR_PATH		"${MATHD_DOOR_PATH}"
@@ -61,6 +58,8 @@
 #define CONFIG_SCGI_THREADS		"scgi-threads"
 #define CONFIG_COMMENT_MAX_THINK	"comment-max-think"
 #define CONFIG_COMMENT_MIN_THINK	"comment-min-think"
+#define CONFIG_COMMENT_CAPTCHA_A	"comment-captcha-a"
+#define CONFIG_COMMENT_CAPTCHA_B	"comment-captcha-b"
 #define CONFIG_BASE_URL			"base-url"
 #define CONFIG_BUG_BASE_URL		"bug-base-url"
 #define CONFIG_WIKI_BASE_URL		"wiki-base-url"
@@ -77,6 +76,8 @@
 	uint64_t scgi_threads;
 	uint64_t comment_max_think;
 	uint64_t comment_min_think;
+	uint64_t comment_captcha_a;
+	uint64_t comment_captcha_b;
 	struct str *base_url;
 	struct str *bug_base_url;
 	struct str *wiki_base_url;
--- a/req.c	Tue Oct 13 15:04:04 2015 -0400
+++ b/req.c	Tue Oct 13 15:15:16 2015 -0400
@@ -76,8 +76,8 @@
 	vars_set_str(&req->vars, "generatorversion", version_string);
 	vars_set_str(&req->vars, "baseurl", str_cstr(config.base_url));
 	vars_set_int(&req->vars, "now", gettime());
-	vars_set_int(&req->vars, "captcha_a", COMMENT_CAPTCHA_A);
-	vars_set_int(&req->vars, "captcha_b", COMMENT_CAPTCHA_B);
+	vars_set_int(&req->vars, "captcha_a", config.comment_captcha_a);
+	vars_set_int(&req->vars, "captcha_b", config.comment_captcha_b);
 	vars_set_nvl_array(&req->vars, "posts", NULL, 0);
 
 	req->fmt   = NULL;