parent
dbdf13b51a
commit
d1fea96e86
10
chat.c
10
chat.c
|
@ -55,17 +55,19 @@ static char *prompt(const char *prompt) {
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
char *host = NULL;
|
char *host = NULL;
|
||||||
const char *port = "6697";
|
const char *port = "6697";
|
||||||
const char *webPass = NULL;
|
const char *pass = NULL;
|
||||||
|
const char *webirc = NULL;
|
||||||
|
|
||||||
int opt;
|
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) {
|
switch (opt) {
|
||||||
|
break; case 'W': webirc = optarg;
|
||||||
break; case 'h': host = strdup(optarg);
|
break; case 'h': host = strdup(optarg);
|
||||||
break; case 'j': chat.chan = strdup(optarg);
|
break; case 'j': chat.chan = strdup(optarg);
|
||||||
break; case 'n': chat.nick = strdup(optarg);
|
break; case 'n': chat.nick = strdup(optarg);
|
||||||
break; case 'p': port = optarg;
|
break; case 'p': port = optarg;
|
||||||
break; case 'v': chat.verbose = true;
|
break; case 'v': chat.verbose = true;
|
||||||
break; case 'w': webPass = optarg;
|
break; case 'w': pass = optarg;
|
||||||
break; default: return EX_USAGE;
|
break; default: return EX_USAGE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -82,7 +84,7 @@ int main(int argc, char *argv[]) {
|
||||||
uiLog(L"Traveling...");
|
uiLog(L"Traveling...");
|
||||||
uiDraw();
|
uiDraw();
|
||||||
|
|
||||||
int sock = ircConnect(host, port, webPass);
|
int sock = ircConnect(host, port, pass, webirc);
|
||||||
free(host);
|
free(host);
|
||||||
|
|
||||||
struct pollfd fds[2] = {
|
struct pollfd fds[2] = {
|
||||||
|
|
4
chat.h
4
chat.h
|
@ -41,7 +41,9 @@ enum {
|
||||||
IRC_UNDERLINE = 037,
|
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 ircRead(void);
|
||||||
void ircWrite(const char *ptr, size_t len);
|
void ircWrite(const char *ptr, size_t len);
|
||||||
|
|
||||||
|
|
12
irc.c
12
irc.c
|
@ -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;
|
int error;
|
||||||
|
|
||||||
struct tls_config *config = tls_config_new();
|
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 (error) err(EX_PROTOCOL, "tls_connect");
|
||||||
|
|
||||||
if (webPass) webirc(webPass);
|
if (webPass) webirc(webPass);
|
||||||
ircFmt("NICK %s\r\n", chat.nick);
|
if (pass) ircFmt("PASS :%s\r\n", pass);
|
||||||
ircFmt("USER %s 0 * :%s\r\n", chat.user, chat.nick);
|
ircFmt(
|
||||||
|
"NICK %s\r\n"
|
||||||
|
"USER %s 0 * :%s\r\n",
|
||||||
|
chat.nick, chat.user, chat.nick
|
||||||
|
);
|
||||||
|
|
||||||
return sock;
|
return sock;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue