From 042e280de37be379d4966a6afb7cf62b79eedf83 Mon Sep 17 00:00:00 2001 From: jpadkins Date: Thu, 18 May 2017 11:01:45 -0500 Subject: Dirty commit: Fixed typo. --- check/magma/servers/camel/camel_check_network.c | 2 +- check/magma/servers/smtp/smtp_check.c | 10 +++--- check/magma/servers/smtp/smtp_check.h | 2 +- check/magma/servers/smtp/smtp_check_network.c | 47 ++++++++++++++++++++++--- 4 files changed, 50 insertions(+), 11 deletions(-) (limited to 'check') 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; } -- cgit v1.2.3