Adds insecure flag to skip certificate validation

Usage:

    catgirl -! -h ...
weechat-hashes
Noah Pederson 2019-12-28 14:25:43 -05:00 committed by C. McEnroe
parent 2e61779082
commit 34ef6ee5a7
3 changed files with 7 additions and 2 deletions

3
chat.c
View File

@ -53,8 +53,9 @@ int main(int argc, char *argv[]) {
setlocale(LC_CTYPE, ""); setlocale(LC_CTYPE, "");
int opt; 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) { switch (opt) {
break; case '!': self.insecure = true;
break; case 'N': self.notify = true; break; case 'N': self.notify = true;
break; case 'P': self.nick = prompt("Name: "); break; case 'P': self.nick = prompt("Name: ");
break; case 'R': self.limit = true; break; case 'R': self.limit = true;

1
chat.h
View File

@ -34,6 +34,7 @@ typedef unsigned uint;
typedef unsigned char byte; typedef unsigned char byte;
struct { struct {
bool insecure;
char *host; char *host;
char *port; char *port;
char *auth; char *auth;

5
irc.c
View File

@ -42,6 +42,10 @@ int ircConnect(void) {
if (!client) errx(EX_SOFTWARE, "tls_client"); if (!client) errx(EX_SOFTWARE, "tls_client");
error = tls_configure(client, config); 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)); if (error) errx(EX_SOFTWARE, "tls_configure: %s", tls_error(client));
tls_config_free(config); tls_config_free(config);
@ -58,7 +62,6 @@ int ircConnect(void) {
for (struct addrinfo *ai = head; ai; ai = ai->ai_next) { for (struct addrinfo *ai = head; ai; ai = ai->ai_next) {
sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
if (sock < 0) err(EX_OSERR, "socket"); if (sock < 0) err(EX_OSERR, "socket");
error = connect(sock, ai->ai_addr, ai->ai_addrlen); error = connect(sock, ai->ai_addr, ai->ai_addrlen);
if (!error) break; if (!error) break;