Rename client to irc
parent
b163492552
commit
35589a5624
2
Makefile
2
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
|
||||
|
||||
|
|
4
chat.c
4
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();
|
||||
}
|
||||
}
|
||||
|
|
8
chat.h
8
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);
|
||||
|
|
6
handle.c
6
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];
|
||||
|
|
10
input.c
10
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");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
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) {
|
Loading…
Reference in New Issue