diff --git a/chat.c b/chat.c index dbd2784..284302d 100644 --- a/chat.c +++ b/chat.c @@ -269,5 +269,6 @@ int main(int argc, char *argv[]) { }; handle(msg); + ircClose(); uiHide(); } diff --git a/chat.h b/chat.h index fb7bf61..f0dc6cb 100644 --- a/chat.h +++ b/chat.h @@ -130,6 +130,7 @@ void ircRecv(void); void ircSend(const char *ptr, size_t len); void ircFormat(const char *format, ...) __attribute__((format(printf, 1, 2))); +void ircClose(void); extern struct Replies { size_t join; diff --git a/irc.c b/irc.c index 3ecc582..dd36f10 100644 --- a/irc.c +++ b/irc.c @@ -273,3 +273,9 @@ void ircRecv(void) { len -= line - buf; memmove(buf, line, len); } + +void ircClose(void) { + int error = tls_close(client); + if (error) errx(EX_IOERR, "tls_close: %s", tls_error(client)); + tls_free(client); +}