diff options
| -rw-r--r-- | chat.c | 10 | ||||
| -rw-r--r-- | chat.h | 4 | ||||
| -rw-r--r-- | irc.c | 12 | 
3 files changed, 18 insertions, 8 deletions
| @@ -55,17 +55,19 @@ static char *prompt(const char *prompt) {  int main(int argc, char *argv[]) {  	char *host = NULL;  	const char *port = "6697"; -	const char *webPass = NULL; +	const char *pass = NULL; +	const char *webirc = NULL;  	int opt; -	while (0 < (opt = getopt(argc, argv, "h:j:n:p:vw:"))) { +	while (0 < (opt = getopt(argc, argv, "W:h:j:n:p:vw:"))) {  		switch (opt) { +			break; case 'W': webirc = optarg;  			break; case 'h': host = strdup(optarg);  			break; case 'j': chat.chan = strdup(optarg);  			break; case 'n': chat.nick = strdup(optarg);  			break; case 'p': port = optarg;  			break; case 'v': chat.verbose = true; -			break; case 'w': webPass = optarg; +			break; case 'w': pass = optarg;  			break; default:  return EX_USAGE;  		}  	} @@ -82,7 +84,7 @@ int main(int argc, char *argv[]) {  	uiLog(L"Traveling...");  	uiDraw(); -	int sock = ircConnect(host, port, webPass); +	int sock = ircConnect(host, port, pass, webirc);  	free(host);  	struct pollfd fds[2] = { @@ -41,7 +41,9 @@ enum {  	IRC_UNDERLINE = 037,  }; -int ircConnect(const char *host, const char *port, const char *webPass); +int ircConnect( +	const char *host, const char *port, const char *pass, const char *webPass +);  void ircRead(void);  void ircWrite(const char *ptr, size_t len); @@ -43,7 +43,9 @@ static void webirc(const char *pass) {  	);  } -int ircConnect(const char *host, const char *port, const char *webPass) { +int ircConnect( +	const char *host, const char *port, const char *pass, const char *webPass +) {  	int error;  	struct tls_config *config = tls_config_new(); @@ -80,8 +82,12 @@ int ircConnect(const char *host, const char *port, const char *webPass) {  	if (error) err(EX_PROTOCOL, "tls_connect");  	if (webPass) webirc(webPass); -	ircFmt("NICK %s\r\n", chat.nick); -	ircFmt("USER %s 0 * :%s\r\n", chat.user, chat.nick); +	if (pass) ircFmt("PASS :%s\r\n", pass); +	ircFmt( +		"NICK %s\r\n" +		"USER %s 0 * :%s\r\n", +		chat.nick, chat.user, chat.nick +	);  	return sock;  } | 
