Rename client to irc
This commit is contained in:
		
							parent
							
								
									b163492552
								
							
						
					
					
						commit
						35589a5624
					
				
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							@ -3,7 +3,7 @@ CFLAGS += -Wall -Wextra -Wpedantic
 | 
				
			|||||||
CFLAGS += -I/usr/local/include
 | 
					CFLAGS += -I/usr/local/include
 | 
				
			||||||
LDFLAGS += -L/usr/local/lib
 | 
					LDFLAGS += -L/usr/local/lib
 | 
				
			||||||
LDLIBS = -lcursesw -ltls
 | 
					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
 | 
					all: tags chat
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4
									
								
								chat.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								chat.c
									
									
									
									
									
								
							@ -71,7 +71,7 @@ int main(int argc, char *argv[]) {
 | 
				
			|||||||
	uiChat("Traveling...");
 | 
						uiChat("Traveling...");
 | 
				
			||||||
	uiDraw();
 | 
						uiDraw();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	int sock = clientConnect(host, port, webPass);
 | 
						int sock = ircConnect(host, port, webPass);
 | 
				
			||||||
	free(host);
 | 
						free(host);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	struct pollfd fds[2] = {
 | 
						struct pollfd fds[2] = {
 | 
				
			||||||
@ -87,7 +87,7 @@ int main(int argc, char *argv[]) {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (fds[0].revents) uiRead();
 | 
							if (fds[0].revents) uiRead();
 | 
				
			||||||
		if (fds[1].revents) clientRead();
 | 
							if (fds[1].revents) ircRead();
 | 
				
			||||||
		uiDraw();
 | 
							uiDraw();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										8
									
								
								chat.h
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								chat.h
									
									
									
									
									
								
							@ -28,12 +28,12 @@ struct {
 | 
				
			|||||||
	char *chan;
 | 
						char *chan;
 | 
				
			||||||
} chat;
 | 
					} chat;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int clientConnect(const char *host, const char *port, const char *webPass);
 | 
					int ircConnect(const char *host, const char *port, const char *webPass);
 | 
				
			||||||
void clientRead(void);
 | 
					void ircRead(void);
 | 
				
			||||||
void clientWrite(const char *ptr, size_t len);
 | 
					void ircWrite(const char *ptr, size_t len);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
__attribute__((format(printf, 1, 2)))
 | 
					__attribute__((format(printf, 1, 2)))
 | 
				
			||||||
void clientFmt(const char *format, ...);
 | 
					void ircFmt(const char *format, ...);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void uiInit(void);
 | 
					void uiInit(void);
 | 
				
			||||||
void uiHide(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) {
 | 
					static void handlePing(char *prefix, char *params) {
 | 
				
			||||||
	(void)prefix;
 | 
						(void)prefix;
 | 
				
			||||||
	clientFmt("PONG %s\r\n", params);
 | 
						ircFmt("PONG %s\r\n", params);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void handle432(char *prefix, char *params) {
 | 
					static void handle432(char *prefix, char *params) {
 | 
				
			||||||
@ -70,7 +70,7 @@ static void handle001(char *prefix, char *params) {
 | 
				
			|||||||
		free(chat.nick);
 | 
							free(chat.nick);
 | 
				
			||||||
		chat.nick = strdup(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) {
 | 
					static void handleJoin(char *prefix, char *params) {
 | 
				
			||||||
@ -149,7 +149,7 @@ static void handle366(char *prefix, char *params) {
 | 
				
			|||||||
	(void)prefix;
 | 
						(void)prefix;
 | 
				
			||||||
	shift(¶ms);
 | 
						shift(¶ms);
 | 
				
			||||||
	char *chan = shift(¶ms);
 | 
						char *chan = shift(¶ms);
 | 
				
			||||||
	clientFmt("WHO %s\r\n", chan);
 | 
						ircFmt("WHO %s\r\n", chan);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static char whoBuf[4096];
 | 
					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" : "")
 | 
							(action ? "\1ACTION " : ""), mesg, (action ? "\1" : "")
 | 
				
			||||||
	);
 | 
						);
 | 
				
			||||||
	if (!line) err(EX_OSERR, "asprintf");
 | 
						if (!line) err(EX_OSERR, "asprintf");
 | 
				
			||||||
	clientFmt("%s\r\n", &line[send]);
 | 
						ircFmt("%s\r\n", &line[send]);
 | 
				
			||||||
	handle(line);
 | 
						handle(line);
 | 
				
			||||||
	free(line);
 | 
						free(line);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -58,7 +58,7 @@ static void inputMe(wchar_t *params) {
 | 
				
			|||||||
static void inputNick(wchar_t *params) {
 | 
					static void inputNick(wchar_t *params) {
 | 
				
			||||||
	wchar_t *nick = wcssep(¶ms, L" ");
 | 
						wchar_t *nick = wcssep(¶ms, L" ");
 | 
				
			||||||
	if (nick) {
 | 
						if (nick) {
 | 
				
			||||||
		clientFmt("NICK %ls\r\n", nick);
 | 
							ircFmt("NICK %ls\r\n", nick);
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		uiChat("/nick requires a name");
 | 
							uiChat("/nick requires a name");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@ -66,14 +66,14 @@ static void inputNick(wchar_t *params) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
static void inputWho(wchar_t *params) {
 | 
					static void inputWho(wchar_t *params) {
 | 
				
			||||||
	(void)params;
 | 
						(void)params;
 | 
				
			||||||
	clientFmt("WHO %s\r\n", chat.chan);
 | 
						ircFmt("WHO %s\r\n", chat.chan);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void inputQuit(wchar_t *params) {
 | 
					static void inputQuit(wchar_t *params) {
 | 
				
			||||||
	if (params) {
 | 
						if (params) {
 | 
				
			||||||
		clientFmt("QUIT :%ls\r\n", params);
 | 
							ircFmt("QUIT :%ls\r\n", params);
 | 
				
			||||||
	} else {
 | 
						} 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);
 | 
						int len = strlen(ssh);
 | 
				
			||||||
	const char *sp = strchr(ssh, ' ');
 | 
						const char *sp = strchr(ssh, ' ');
 | 
				
			||||||
	if (sp) len = sp - ssh;
 | 
						if (sp) len = sp - ssh;
 | 
				
			||||||
	clientFmt(
 | 
						ircFmt(
 | 
				
			||||||
		"WEBIRC %s %s %.*s %.*s\r\n",
 | 
							"WEBIRC %s %s %.*s %.*s\r\n",
 | 
				
			||||||
		pass, chat.user, len, ssh, len, ssh
 | 
							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;
 | 
						int error;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	struct tls_config *config = tls_config_new();
 | 
						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 (error) err(EX_PROTOCOL, "tls_connect");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (webPass) webirc(webPass);
 | 
						if (webPass) webirc(webPass);
 | 
				
			||||||
	clientFmt("NICK %s\r\n", chat.nick);
 | 
						ircFmt("NICK %s\r\n", chat.nick);
 | 
				
			||||||
	clientFmt("USER %s 0 * :%s\r\n", chat.user, chat.nick);
 | 
						ircFmt("USER %s 0 * :%s\r\n", chat.user, chat.nick);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return sock;
 | 
						return sock;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void clientWrite(const char *ptr, size_t len) {
 | 
					void ircWrite(const char *ptr, size_t len) {
 | 
				
			||||||
	while (len) {
 | 
						while (len) {
 | 
				
			||||||
		ssize_t ret = tls_write(client, ptr, len);
 | 
							ssize_t ret = tls_write(client, ptr, len);
 | 
				
			||||||
		if (ret == TLS_WANT_POLLIN || ret == TLS_WANT_POLLOUT) continue;
 | 
							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;
 | 
						char *buf;
 | 
				
			||||||
	va_list ap;
 | 
						va_list ap;
 | 
				
			||||||
	va_start(ap, format);
 | 
						va_start(ap, format);
 | 
				
			||||||
@ -100,14 +100,14 @@ void clientFmt(const char *format, ...) {
 | 
				
			|||||||
	va_end(ap);
 | 
						va_end(ap);
 | 
				
			||||||
	if (!buf) err(EX_OSERR, "vasprintf");
 | 
						if (!buf) err(EX_OSERR, "vasprintf");
 | 
				
			||||||
	if (chat.verbose) uiFmt("<<< %.*s", len - 2, buf);
 | 
						if (chat.verbose) uiFmt("<<< %.*s", len - 2, buf);
 | 
				
			||||||
	clientWrite(buf, len);
 | 
						ircWrite(buf, len);
 | 
				
			||||||
	free(buf);
 | 
						free(buf);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void clientRead(void) {
 | 
					static char buf[4096];
 | 
				
			||||||
	static char buf[4096];
 | 
					static size_t len;
 | 
				
			||||||
	static size_t len;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ircRead(void) {
 | 
				
			||||||
	ssize_t read = tls_read(client, &buf[len], sizeof(buf) - len);
 | 
						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 < 0) errx(EX_IOERR, "tls_read: %s", tls_error(client));
 | 
				
			||||||
	if (!read) {
 | 
						if (!read) {
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user