diff options
author | June McEnroe <june@causal.agency> | 2018-08-09 00:24:49 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2018-08-09 00:24:49 -0400 |
commit | a64f1a4ea2962e534673e27d85d92703c64201b0 (patch) | |
tree | 1bcf8ffdf2ae7280b406fe021619e9c61b83de6b /irc.c | |
parent | Add commands to tab complete (diff) | |
download | test-a64f1a4ea2962e534673e27d85d92703c64201b0.tar.gz test-a64f1a4ea2962e534673e27d85d92703c64201b0.zip |
Add URL detection, listing and opening
Might also add /copy, like /open.
Diffstat (limited to 'irc.c')
-rw-r--r-- | irc.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/irc.c b/irc.c index 02a9f64..b718b13 100644 --- a/irc.c +++ b/irc.c @@ -15,16 +15,17 @@ */ #include <err.h> +#include <fcntl.h> +#include <netdb.h> +#include <netinet/in.h> #include <stdarg.h> #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <sys/socket.h> #include <sysexits.h> #include <tls.h> #include <unistd.h> -#include <netdb.h> -#include <netinet/in.h> -#include <sys/socket.h> #include "chat.h" @@ -68,6 +69,9 @@ int ircConnect(const char *host, const char *port, const char *webPass) { int sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); if (sock < 0) err(EX_OSERR, "socket"); + error = fcntl(sock, F_SETFD, FD_CLOEXEC); + if (error) err(EX_IOERR, "fcntl"); + error = connect(sock, ai->ai_addr, ai->ai_addrlen); if (error) err(EX_UNAVAILABLE, "connect"); freeaddrinfo(ai); @@ -111,7 +115,7 @@ void ircRead(void) { ssize_t read = tls_read(client, &buf[len], sizeof(buf) - len); if (read < 0) errx(EX_IOERR, "tls_read: %s", tls_error(client)); if (!read) { - uiHide(); + uiExit(); exit(EX_OK); } len += read; |