diff options
Diffstat (limited to 'tests/protocol-set-allowlist.c')
-rw-r--r-- | tests/protocol-set-allowlist.c | 77 |
1 files changed, 36 insertions, 41 deletions
diff --git a/tests/protocol-set-allowlist.c b/tests/protocol-set-allowlist.c index 50afe39ef6..f75261e4f7 100644 --- a/tests/protocol-set-allowlist.c +++ b/tests/protocol-set-allowlist.c @@ -57,17 +57,16 @@ _fail("Assertion `" #cond "` failed: " format "\n", ##__VA_ARGS__) #define _check(cond) if (!(cond)) _fail("Assertion `" #cond "` failed.") -unsigned parse_port(const char* port_str); -gnutls_protocol_t parse_protocol(const char* name); +unsigned parse_port(const char *port_str); +gnutls_protocol_t parse_protocol(const char *name); void test_echo_server(gnutls_session_t session); -void cmd_connect(const char* ca_file, unsigned port); -void cmd_protocol_set_disabled(const char* name); -void cmd_protocol_set_enabled(const char* name); +void cmd_connect(const char *ca_file, unsigned port); +void cmd_protocol_set_disabled(const char *name); +void cmd_protocol_set_enabled(const char *name); void cmd_reinit(void); -const char* unprefix(const char* s, const char* prefix); +const char *unprefix(const char *s, const char *prefix); - -unsigned parse_port(const char* port_str) +unsigned parse_port(const char *port_str) { unsigned port; errno = 0; @@ -77,8 +76,7 @@ unsigned parse_port(const char* port_str) return port; } - -gnutls_protocol_t parse_protocol(const char* name) +gnutls_protocol_t parse_protocol(const char *name) { gnutls_protocol_t p; p = gnutls_protocol_get_id(name); @@ -86,7 +84,6 @@ gnutls_protocol_t parse_protocol(const char* name) return p; } - void test_echo_server(gnutls_session_t session) { const char buf_out[] = "1234567\n"; @@ -96,30 +93,30 @@ void test_echo_server(gnutls_session_t session) int r; do { - r = gnutls_record_send(session, buf_out + wr, LEN - wr); + r = gnutls_record_send(session, buf_out + wr, LEN - wr); if (r == GNUTLS_E_AGAIN || r == GNUTLS_E_INTERRUPTED) continue; _assert(r > 0, "error in send: %s\n", gnutls_strerror(r)); wr += r; - } while(r > 0 && wr < LEN); + } while (r > 0 && wr < LEN); _assert(wr == LEN, "error sending all data (%u/%u)\n", wr, LEN); do { - r = gnutls_record_recv(session, buf_in + rd, LEN - rd); + r = gnutls_record_recv(session, buf_in + rd, LEN - rd); if (r == GNUTLS_E_AGAIN || r == GNUTLS_E_INTERRUPTED) continue; _assert(r > 0, "error in recv: %s\n", gnutls_strerror(r)); rd += r; - } while(r > 0 && rd < LEN); + } while (r > 0 && rd < LEN); _assert(rd == LEN, "error receiving all data (%u/%u)\n", rd, LEN); _assert(!gnutls_record_check_pending(session), "data left unreceived"); _assert(!memcmp(buf_in, buf_out, LEN), "send/recv data mismatch\n"); } -void cmd_connect(const char* ca_file, unsigned port) +void cmd_connect(const char *ca_file, unsigned port) { - char* desc; + char *desc; int sock, r; gnutls_session_t session; gnutls_certificate_credentials_t cred; @@ -134,19 +131,22 @@ void cmd_connect(const char* ca_file, unsigned port) } _check(gnutls_server_name_set(session, GNUTLS_NAME_DNS, - "example.com", strlen("example.com")) >= 0); + "example.com", + strlen("example.com")) >= 0); gnutls_session_set_verify_cert(session, "example.com", 0); _check(gnutls_certificate_allocate_credentials(&cred) >= 0); _check(gnutls_certificate_set_x509_trust_file(cred, - ca_file, GNUTLS_X509_FMT_PEM) == 1); - _check(gnutls_credentials_set(session, - GNUTLS_CRD_CERTIFICATE, cred) >= 0); + ca_file, + GNUTLS_X509_FMT_PEM) == + 1); + _check(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, cred) >= + 0); sock = tcp_connect("127.0.0.1", port); _assert(sock != -1, "Connection to 127.0.0.1:%u has failed!", port); _assert(setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, - &sock_flags, sizeof(int)) == 0, "setsockopt failed"); + &sock_flags, sizeof(int)) == 0, "setsockopt failed"); gnutls_transport_set_int(session, sock); gnutls_handshake_set_timeout(session, GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT); @@ -170,29 +170,26 @@ void cmd_connect(const char* ca_file, unsigned port) gnutls_deinit(session); } - -void cmd_protocol_set_disabled(const char* name) +void cmd_protocol_set_disabled(const char *name) { int ret; ret = gnutls_protocol_set_enabled(parse_protocol(name), 0); printf("protocol_set_disabled %s -> %s\n", name, - ret == 0 ? "OK" : - ret == GNUTLS_E_INVALID_REQUEST ? "INVALID_REQUEST" : - gnutls_strerror(ret)); + ret == 0 ? "OK" : + ret == GNUTLS_E_INVALID_REQUEST ? "INVALID_REQUEST" : + gnutls_strerror(ret)); } - -void cmd_protocol_set_enabled(const char* name) +void cmd_protocol_set_enabled(const char *name) { int ret; ret = gnutls_protocol_set_enabled(parse_protocol(name), 1); printf("protocol_set_enabled %s -> %s\n", name, - ret == 0 ? "OK" : - ret == GNUTLS_E_INVALID_REQUEST ? "INVALID_REQUEST" : - gnutls_strerror(ret)); + ret == 0 ? "OK" : + ret == GNUTLS_E_INVALID_REQUEST ? "INVALID_REQUEST" : + gnutls_strerror(ret)); } - void cmd_reinit(void) { int ret; @@ -201,25 +198,23 @@ void cmd_reinit(void) printf("reinit -> %s\n", ret == 0 ? "OK" : gnutls_strerror(ret)); } - // Returns 0 if `s` doesn't start with `prefix`, pointer past prefix otherwise. -const char* unprefix(const char* s, const char* prefix) +const char *unprefix(const char *s, const char *prefix) { while (*s && *prefix && *s == *prefix) s++, prefix++; return *prefix ? NULL : s; } - #define MAX_CMD_LEN 127 void doit(void) { unsigned port; - const char* port_str; - const char* ca_file; - const char* p; + const char *port_str; + const char *ca_file; + const char *p; char cmd_buf[MAX_CMD_LEN + 1]; - char* e; + char *e; ca_file = getenv("TEST_SERVER_CA"); _assert(ca_file, "TEST_SERVER_CA is not set"); @@ -247,7 +242,7 @@ void doit(void) _fail("Unknown command `%s`\n", p); else _fail("Invalid line `%s`, does not start with `> `\n", - cmd_buf); + cmd_buf); } exit(0); |