diff --git a/Makefile b/Makefile index d707ee3..26c70a1 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ CFLAGS += -Wall -Wextra -Wpedantic CFLAGS += -I/usr/local/include LDFLAGS += -L/usr/local/lib LDLIBS = -lcursesw -ltls -OBJS = chat.o client.o handle.o input.o ui.o +OBJS = chat.o handle.o input.o irc.o ui.o all: tags chat diff --git a/chat.c b/chat.c index ab0d4d7..f52bc3a 100644 --- a/chat.c +++ b/chat.c @@ -71,7 +71,7 @@ int main(int argc, char *argv[]) { uiChat("Traveling..."); uiDraw(); - int sock = clientConnect(host, port, webPass); + int sock = ircConnect(host, port, webPass); free(host); struct pollfd fds[2] = { @@ -87,7 +87,7 @@ int main(int argc, char *argv[]) { } if (fds[0].revents) uiRead(); - if (fds[1].revents) clientRead(); + if (fds[1].revents) ircRead(); uiDraw(); } } diff --git a/chat.h b/chat.h index 4c1cff4..04e3c6b 100644 --- a/chat.h +++ b/chat.h @@ -28,12 +28,12 @@ struct { char *chan; } chat; -int clientConnect(const char *host, const char *port, const char *webPass); -void clientRead(void); -void clientWrite(const char *ptr, size_t len); +int ircConnect(const char *host, const char *port, const char *webPass); +void ircRead(void); +void ircWrite(const char *ptr, size_t len); __attribute__((format(printf, 1, 2))) -void clientFmt(const char *format, ...); +void ircFmt(const char *format, ...); void uiInit(void); void uiHide(void); diff --git a/handle.c b/handle.c index ba3cb00..7bbf3e7 100644 --- a/handle.c +++ b/handle.c @@ -50,7 +50,7 @@ static char *shift(char **params) { static void handlePing(char *prefix, char *params) { (void)prefix; - clientFmt("PONG %s\r\n", params); + ircFmt("PONG %s\r\n", params); } static void handle432(char *prefix, char *params) { @@ -70,7 +70,7 @@ static void handle001(char *prefix, char *params) { free(chat.nick); chat.nick = strdup(nick); } - clientFmt("JOIN %s\r\n", chat.chan); + ircFmt("JOIN %s\r\n", chat.chan); } static void handleJoin(char *prefix, char *params) { @@ -149,7 +149,7 @@ static void handle366(char *prefix, char *params) { (void)prefix; shift(¶ms); char *chan = shift(¶ms); - clientFmt("WHO %s\r\n", chan); + ircFmt("WHO %s\r\n", chan); } static char whoBuf[4096]; diff --git a/input.c b/input.c index 12f214e..53957ec 100644 --- a/input.c +++ b/input.c @@ -44,7 +44,7 @@ static void privmsg(bool action, const wchar_t *mesg) { (action ? "\1ACTION " : ""), mesg, (action ? "\1" : "") ); if (!line) err(EX_OSERR, "asprintf"); - clientFmt("%s\r\n", &line[send]); + ircFmt("%s\r\n", &line[send]); handle(line); free(line); } @@ -58,7 +58,7 @@ static void inputMe(wchar_t *params) { static void inputNick(wchar_t *params) { wchar_t *nick = wcssep(¶ms, L" "); if (nick) { - clientFmt("NICK %ls\r\n", nick); + ircFmt("NICK %ls\r\n", nick); } else { uiChat("/nick requires a name"); } @@ -66,14 +66,14 @@ static void inputNick(wchar_t *params) { static void inputWho(wchar_t *params) { (void)params; - clientFmt("WHO %s\r\n", chat.chan); + ircFmt("WHO %s\r\n", chat.chan); } static void inputQuit(wchar_t *params) { if (params) { - clientFmt("QUIT :%ls\r\n", params); + ircFmt("QUIT :%ls\r\n", params); } else { - clientFmt("QUIT :Goodbye\r\n"); + ircFmt("QUIT :Goodbye\r\n"); } } diff --git a/client.c b/irc.c similarity index 89% rename from client.c rename to irc.c index 64f14cf..02a9f64 100644 --- a/client.c +++ b/irc.c @@ -36,13 +36,13 @@ static void webirc(const char *pass) { int len = strlen(ssh); const char *sp = strchr(ssh, ' '); if (sp) len = sp - ssh; - clientFmt( + ircFmt( "WEBIRC %s %s %.*s %.*s\r\n", pass, chat.user, len, ssh, len, ssh ); } -int clientConnect(const char *host, const char *port, const char *webPass) { +int ircConnect(const char *host, const char *port, const char *webPass) { int error; struct tls_config *config = tls_config_new(); @@ -76,13 +76,13 @@ int clientConnect(const char *host, const char *port, const char *webPass) { if (error) err(EX_PROTOCOL, "tls_connect"); if (webPass) webirc(webPass); - clientFmt("NICK %s\r\n", chat.nick); - clientFmt("USER %s 0 * :%s\r\n", chat.user, chat.nick); + ircFmt("NICK %s\r\n", chat.nick); + ircFmt("USER %s 0 * :%s\r\n", chat.user, chat.nick); return sock; } -void clientWrite(const char *ptr, size_t len) { +void ircWrite(const char *ptr, size_t len) { while (len) { ssize_t ret = tls_write(client, ptr, len); if (ret == TLS_WANT_POLLIN || ret == TLS_WANT_POLLOUT) continue; @@ -92,7 +92,7 @@ void clientWrite(const char *ptr, size_t len) { } } -void clientFmt(const char *format, ...) { +void ircFmt(const char *format, ...) { char *buf; va_list ap; va_start(ap, format); @@ -100,14 +100,14 @@ void clientFmt(const char *format, ...) { va_end(ap); if (!buf) err(EX_OSERR, "vasprintf"); if (chat.verbose) uiFmt("<<< %.*s", len - 2, buf); - clientWrite(buf, len); + ircWrite(buf, len); free(buf); } -void clientRead(void) { - static char buf[4096]; - static size_t len; +static char buf[4096]; +static size_t len; +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) {