From 34ef6ee5a76cac3408fd03a14c3d97ffdc0b7305 Mon Sep 17 00:00:00 2001 From: Noah Pederson Date: Sat, 28 Dec 2019 14:25:43 -0500 Subject: Adds insecure flag to skip certificate validation Usage: catgirl -! -h ... --- chat.c | 3 ++- chat.h | 1 + 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; -- cgit 1.4.1