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
path: root/check
diff options
context:
space:
mode:
authorjpadkins <jacobpadkins@gmail.com>2017-05-18 19:01:45 +0300
committerjpadkins <jacobpadkins@gmail.com>2017-05-18 19:01:45 +0300
commit042e280de37be379d4966a6afb7cf62b79eedf83 (patch)
tree6b261e83c4843581830d78394ad0fdd2118afc56 /check
parent0fa7e8f3762431c468da1e5b8b17ff070d9be1de (diff)
Dirty commit: Fixed typo.
Diffstat (limited to 'check')
-rw-r--r--check/magma/servers/camel/camel_check_network.c2
-rw-r--r--check/magma/servers/smtp/smtp_check.c10
-rw-r--r--check/magma/servers/smtp/smtp_check.h2
-rw-r--r--check/magma/servers/smtp/smtp_check_network.c47
4 files changed, 50 insertions, 11 deletions
diff --git a/check/magma/servers/camel/camel_check_network.c b/check/magma/servers/camel/camel_check_network.c
index 9e86b01b..71e86d11 100644
--- a/check/magma/servers/camel/camel_check_network.c
+++ b/check/magma/servers/camel/camel_check_network.c
@@ -1189,7 +1189,7 @@ bool_t check_camel_basic_sthread(bool_t secure, stringer_t *errmsg) {
chr_command = "{\"id\":18,\"method\":\"contacts.list\",\"params\":{\"folderID\":%u}}";
// Construct the command string.
- if (!(st_sprint(command, chr_commands, folder_ids[0]))) {
+ if (!(st_sprint(command, chr_command, folder_ids[0]))) {
st_sprint(errmsg, "Failed to create command string. { command # = 16 }");
return false;
diff --git a/check/magma/servers/smtp/smtp_check.c b/check/magma/servers/smtp/smtp_check.c
index 27fb1a46..b4fd6035 100644
--- a/check/magma/servers/smtp/smtp_check.c
+++ b/check/magma/servers/smtp/smtp_check.c
@@ -191,7 +191,7 @@ START_TEST (check_smtp_network_starttls_ad_s) {
}
END_TEST
-START_TEST (check_smtp_network_domain_wildcard_s) {
+START_TEST (check_smtp_network_wildcard_s) {
log_disable();
bool_t outcome = true;
@@ -203,13 +203,13 @@ START_TEST (check_smtp_network_domain_wildcard_s) {
st_sprint(errmsg, "No SMTP servers were configured and available for testing for both TCP and TLS.");
outcome = false;
}
- else if (status() && (!check_smtp_network_domain_wildcard_sthread(errmsg, tcp_server->network.port) ||
- !check_smtp_network_domain_wildcard_sthread(errmsg, tls_server->network.port))) {
+ else if (status() && (!check_smtp_network_wildcard_sthread(errmsg, tcp_server->network.port) ||
+ !check_smtp_network_wildcard_sthread(errmsg, tls_server->network.port))) {
outcome = false;
}
- log_test("SMTP / NETWORK / DOMAIN WILDCARD / SINGLE THREADED:", errmsg);
+ log_test("SMTP / NETWORK / WILDCARD / SINGLE THREADED:", errmsg);
ck_assert_msg(outcome, st_char_get(errmsg));
}
@@ -229,7 +229,7 @@ Suite * suite_check_smtp(void) {
suite_check_testcase(s, "SMTP", "SMTP Network Auth Login/S", check_smtp_network_auth_login_s);
suite_check_testcase(s, "SMTP", "SMTP Network Outbound Quota/S", check_smtp_network_outbound_quota_s);
suite_check_testcase(s, "SMTP", "SMTP Network STARTTLS Ad/S", check_smtp_network_starttls_ad_s);
- suite_check_testcase(s, "SMTP", "SMTP Network Domain Wildcard/S", check_smtp_network_domain_wildcard_s);
+ suite_check_testcase(s, "SMTP", "SMTP Network Wildcard/S", check_smtp_network_wildcard_s);
return s;
}
diff --git a/check/magma/servers/smtp/smtp_check.h b/check/magma/servers/smtp/smtp_check.h
index 491325cb..5036b30e 100644
--- a/check/magma/servers/smtp/smtp_check.h
+++ b/check/magma/servers/smtp/smtp_check.h
@@ -26,7 +26,7 @@ bool_t check_smtp_network_basic_sthread(stringer_t *errmsg, uint32_t port, bool_
bool_t check_smtp_network_auth_sthread(stringer_t *errmsg, uint32_t port, bool_t login);
bool_t check_smtp_network_outbound_quota_sthread(stringer_t *errmsg, uint32_t port, bool_t secure);
bool_t check_smtp_network_starttls_ad_sthread(stringer_t *errmsg, uint32_t tcp_port, uint32_t tls_port);
-bool_t check_smtp_network_domain_wildcard_sthread(stringer_t *errmsg, uint32_t port);
+bool_t check_smtp_network_wildcard_sthread(stringer_t *errmsg, uint32_t port);
Suite * suite_check_smtp(void);
diff --git a/check/magma/servers/smtp/smtp_check_network.c b/check/magma/servers/smtp/smtp_check_network.c
index 63cea945..00cce8e5 100644
--- a/check/magma/servers/smtp/smtp_check_network.c
+++ b/check/magma/servers/smtp/smtp_check_network.c
@@ -405,12 +405,51 @@ bool_t check_smtp_network_starttls_ad_sthread(stringer_t *errmsg, uint32_t tcp_p
return true;
}
-bool_t check_smtp_network_domain_wildcard_sthread(stringer_t *errmsg, uint32_t port) {
+bool_t check_smtp_network_wildcard_sthread(stringer_t *errmsg, uint32_t port) {
- st_sprint(errmsg, "This test needs to be implemented");
+ size_t location = 0;
+ client_t *client = NULL;
- // Create a stringer_t holding a email address with a wildcard in the domain.
+ // Connect the client.
+ if (!(client = client_connect("localhost", port)) || client_read_line(client) <= 0 ||
+ client_status(client) != 1 || st_cmp_cs_starts(&(client->line), NULLER("220")) ||
+ !st_search_cs(&(client->line), NULLER(" ESMTP "), &location)) {
+ st_sprint(errmsg, "Failed to connect with the SMTP server.");
+ client_close(client);
+ return false;
+ }
+ // Issue EHLO.
+ else if (client_write(client, PLACER("EHLO localhost\r\n", 16)) != 16 || !check_smtp_client_read_end(client) ||
+ client_status(client) != 1 || st_cmp_cs_starts(&(client->line), NULLER("250"))) {
- return false;
+ st_sprint(errmsg, "Failed to return successful status after EHLO.");
+ client_close(client);
+ return false;
+ }
+ // Issue AUTH for the magma user.
+ else if (check_smtp_client_auth_login(client, NULLER("bWFnbWE="), NULLER("cGFzc3dvcmQ="))) {
+
+ st_sprint(errmsg, "Failed to authenticate.");
+ client_close(client);
+ return false;
+ }
+ // Try sending mail to with a wildcard in the destination address.
+ else if (!check_smtp_client_mail_rcpt_data(client, "magma@lavabit.com", "princess*@example.com", errmsg) ||
+ client_print(client, ".\r\n") != 3 || !check_smtp_client_read_end(client) || client_status(client) != 1 ||
+ st_cmp_cs_starts(&(client->line), NULLER("250"))) {
+
+ if (st_empty(errmsg)) st_sprint(errmsg, "Failed to return successful status after sending mail.");
+ client_close(client);
+ return false;
+ }
+ // Submit QUIT and cleanup.
+ else if (!check_smtp_client_quit(client, errmsg)) {
+
+ client_close(client);
+ return false;
+ }
+
+ client_close(client);
+ return true;
}