Updates, now working again.
This commit is contained in:
parent
e7f3aba195
commit
f96b0e7695
@ -13,8 +13,6 @@ struct irc_conn
|
||||
{
|
||||
FILE *srv_fd;
|
||||
|
||||
|
||||
|
||||
char nick[32];
|
||||
char *admin;
|
||||
char host[256];
|
||||
@ -34,4 +32,4 @@ void irc_privmsg(struct irc_conn *bot, char *to, char *fmt, ...);
|
||||
void irc_raw(struct irc_conn *bot, char *fmt, ...);
|
||||
void irc_parse_raw(struct irc_conn *bot, char *raw);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
@ -59,8 +59,9 @@ void irc_connect(struct irc_conn *bot)
|
||||
void irc_auth(struct irc_conn *bot)
|
||||
{
|
||||
irc_raw(bot, "NICK %s", bot->nick);
|
||||
irc_raw(bot, "USER %s localhost %s :xbot (v0.1) - developed by @Dark_Aaron", bot->nick, bot->host);
|
||||
irc_raw(bot, "USER %s \" %s :xbot (v0.1) - developed by @Dark_Aaron", bot->nick, bot->host);
|
||||
fflush(bot->srv_fd);
|
||||
setbuf(bot->srv_fd, NULL);
|
||||
}
|
||||
|
||||
void irc_notice(struct irc_conn *bot, char *to, char *fmt, ...)
|
||||
@ -163,4 +164,4 @@ void irc_parse_raw(struct irc_conn *bot, char *raw)
|
||||
strlcpy(bot->nick, text, sizeof bot->nick);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
36
src/main.c
36
src/main.c
@ -8,15 +8,22 @@
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/select.h>
|
||||
#include <time.h>
|
||||
#include <errno.h>
|
||||
#include "config.h"
|
||||
#include "irc.h"
|
||||
#include "util.h"
|
||||
#include "events.h"
|
||||
|
||||
|
||||
static time_t trespond;
|
||||
|
||||
int main()
|
||||
{
|
||||
int n;
|
||||
fd_set rd;
|
||||
struct irc_conn bot;
|
||||
struct timeval tv;
|
||||
|
||||
init_events();
|
||||
|
||||
@ -31,8 +38,34 @@ int main()
|
||||
for (;;)
|
||||
{
|
||||
FD_ZERO(&rd);
|
||||
FD_SET(0, &rd);
|
||||
FD_SET(fileno(bot.srv_fd), &rd);
|
||||
|
||||
tv.tv_sec = 120;
|
||||
tv.tv_usec = 0;
|
||||
n = select(fileno(bot.srv_fd) + 1, &rd, 0, 0, &tv);
|
||||
|
||||
if (n < 0)
|
||||
{
|
||||
if (errno == EINTR)
|
||||
continue;
|
||||
|
||||
eprint("xbot: error on select()\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
else if (n == 0)
|
||||
{
|
||||
if (time(NULL) - trespond >= 300)
|
||||
{
|
||||
eprint("xbot shutting down: parse timeout\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
irc_raw(&bot, "PING %s", bot.host);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (FD_ISSET(fileno(bot.srv_fd), &rd))
|
||||
{
|
||||
if (fgets(bot.in, sizeof bot.in, bot.srv_fd) == NULL)
|
||||
@ -42,8 +75,9 @@ int main()
|
||||
}
|
||||
|
||||
irc_parse_raw(&bot, bot.in);
|
||||
trespond = time(NULL);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user