about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--chat.c1
-rw-r--r--chat.h1
-rw-r--r--irc.c6
3 files changed, 8 insertions, 0 deletions
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);
+}