Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/lavabit/magma.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjpadkins <jacobpadkins@gmail.com>2017-03-10 20:03:04 +0300
committerjpadkins <jacobpadkins@gmail.com>2017-03-10 20:03:04 +0300
commit299492c50991f62dff009d7cd24cf42ec38ec62c (patch)
tree0844f23693e656e60a57aa76b3a63c9a438d49e1 /check/magma/servers
parentd3be2ea03c18997d65c6afe9024d18a788956437 (diff)
Added a regex test
Diffstat (limited to 'check/magma/servers')
-rw-r--r--check/magma/servers/smtp/checkers_check.c25
-rw-r--r--check/magma/servers/smtp/smtp_check.c3
-rw-r--r--check/magma/servers/smtp/smtp_check.h1
3 files changed, 27 insertions, 2 deletions
diff --git a/check/magma/servers/smtp/checkers_check.c b/check/magma/servers/smtp/checkers_check.c
index e9c51b2f..21ce3488 100644
--- a/check/magma/servers/smtp/checkers_check.c
+++ b/check/magma/servers/smtp/checkers_check.c
@@ -88,6 +88,30 @@ bool_t check_smtp_checkers_greylist_sthread(stringer_t *errmsg) {
return true;
}
+bool_t check_smtp_checkers_regex_sthread(stringer_t *errmsg) {
+
+ chr_t *expressions[] = {
+ "http\\:\\/\\/www\\.lavabit\\.com\\ ",
+ "lavabit\\ ",
+ "expr\\ with\\ spaces",
+ "expr\\ with\\ trailing\\ backslash\\ ",
+ "\\ levabit\\ ",
+ "\\*\\*\\ regex\\ with\\ wildcards\\ \\*",
+ "regex\\ \\*\\ with\\ \\*\\ wildcards"
+ };
+ struct re_pattern_buffer regbuff;
+ mm_wipe(&regbuff, sizeof(struct re_pattern_buffer));
+
+ for (size_t i = 0; i < (sizeof(expressions)/sizeof(chr_t*)); i++) {
+ if (regcomp(&regbuff, expressions[i], REG_ICASE) != 0) {
+ st_sprint(errmsg, "Regular expression compilation failed. { expression = %s }", expressions[i]);
+ return false;;
+ }
+ }
+
+ return true;
+}
+
bool_t check_smtp_checkers_filters_sthread(stringer_t *errmsg, int_t action, int_t expected) {
multi_t key = mt_get_null();
@@ -189,7 +213,6 @@ bool_t check_smtp_checkers_filters_sthread(stringer_t *errmsg, int_t action, int
}
inx_cleanup(prefs.filters);
- st_cleanup(message);
return true;
}
diff --git a/check/magma/servers/smtp/smtp_check.c b/check/magma/servers/smtp/smtp_check.c
index 8efa8372..9a649b17 100644
--- a/check/magma/servers/smtp/smtp_check.c
+++ b/check/magma/servers/smtp/smtp_check.c
@@ -60,7 +60,8 @@ START_TEST (check_smtp_checkers_filters_s) {
bool_t outcome = true;
stringer_t *errmsg = MANAGEDBUF(1024);
- if (status()) outcome = check_smtp_checkers_filters_sthread(errmsg, SMTP_FILTER_ACTION_DELETE, -2);
+ if (status()) outcome = check_smtp_checkers_regex_sthread(errmsg);
+ if (status() && outcome) outcome = check_smtp_checkers_filters_sthread(errmsg, SMTP_FILTER_ACTION_DELETE, -2);
if (status() && outcome) outcome = check_smtp_checkers_filters_sthread(errmsg, SMTP_FILTER_ACTION_MOVE, 2);
if (status() && outcome) outcome = check_smtp_checkers_filters_sthread(errmsg, SMTP_FILTER_ACTION_LABEL, 3);
if (status() && outcome) outcome = check_smtp_checkers_filters_sthread(errmsg, SMTP_FILTER_ACTION_MARK_READ, 4);
diff --git a/check/magma/servers/smtp/smtp_check.h b/check/magma/servers/smtp/smtp_check.h
index e684064c..9e27bee4 100644
--- a/check/magma/servers/smtp/smtp_check.h
+++ b/check/magma/servers/smtp/smtp_check.h
@@ -12,6 +12,7 @@ bool_t check_smtp_accept_message_sthread(stringer_t *errmsg);
/// checkers_check.c
bool_t check_smtp_checkers_greylist_sthread(stringer_t *errmsg);
+bool_t check_smtp_checkers_regex_sthread(stringer_t *errmsg);
bool_t check_smtp_checkers_filters_sthread(stringer_t *errmsg, int_t action, int_t expected);
/// smtp_check_network.c