summaryrefslogtreecommitdiff
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);
+}