summary refs log tree commit diff
diff options
context:
space:
mode:
authorC. McEnroe2020-02-13 01:01:23 -0500
committerC. McEnroe2020-02-13 01:01:23 -0500
commit0a772ff13908dc23ab957f168e0e3ef51ea755f1 (patch)
tree28ebe24d025a923e63235ded19f04e3728b246aa
parent9bed890aa889dad4c46b6d18fff8cbdac9feab1a (diff)
Explicitly close the TLS connection
Just to be nice.
-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);
+}