diff options
author | Noah Pederson | 2019-12-28 14:25:43 -0500 |
---|---|---|
committer | C. McEnroe | 2019-12-28 14:42:28 -0500 |
commit | 34ef6ee5a76cac3408fd03a14c3d97ffdc0b7305 (patch) | |
tree | 2fee7a2f41754e5b926be935b699003fb7111d48 | |
parent | 2e61779082e70848fb34c04f7f5df77e500bd7e0 (diff) |
Adds insecure flag to skip certificate validation
Usage: catgirl -! -h ...
-rw-r--r-- | chat.c | 3 | ||||
-rw-r--r-- | chat.h | 1 | ||||
-rw-r--r-- | irc.c | 5 |
3 files changed, 7 insertions, 2 deletions
diff --git a/chat.c b/chat.c index b3e4b58..3a1cfe9 100644 --- a/chat.c +++ b/chat.c @@ -53,8 +53,9 @@ int main(int argc, char *argv[]) { setlocale(LC_CTYPE, ""); int opt; - while (0 < (opt = getopt(argc, argv, "NPRa:h:j:k:l:n:p:r:u:vw:"))) { + while (0 < (opt = getopt(argc, argv, "!NPRa:h:j:k:l:n:p:r:u:vw:"))) { switch (opt) { + break; case '!': self.insecure = true; break; case 'N': self.notify = true; break; case 'P': self.nick = prompt("Name: "); break; case 'R': self.limit = true; diff --git a/chat.h b/chat.h index ee7a087..01bab21 100644 --- a/chat.h +++ b/chat.h @@ -34,6 +34,7 @@ typedef unsigned uint; typedef unsigned char byte; struct { + bool insecure; char *host; char *port; char *auth; diff --git a/irc.c b/irc.c index 66ffddb..56a5dc0 100644 --- a/irc.c +++ b/irc.c @@ -42,6 +42,10 @@ int ircConnect(void) { if (!client) errx(EX_SOFTWARE, "tls_client"); error = tls_configure(client, config); + if (self.insecure) { + tls_config_insecure_noverifycert(config); + tls_config_insecure_noverifyname(config); + } if (error) errx(EX_SOFTWARE, "tls_configure: %s", tls_error(client)); tls_config_free(config); @@ -58,7 +62,6 @@ int ircConnect(void) { for (struct addrinfo *ai = head; ai; ai = ai->ai_next) { sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); if (sock < 0) err(EX_OSERR, "socket"); - error = connect(sock, ai->ai_addr, ai->ai_addrlen); if (!error) break; |