summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorC. McEnroe2020-03-17 11:58:50 -0400
committerC. McEnroe2020-03-17 11:58:50 -0400
commit1d5c4a5e346f0a295818441eb37697be283130ec (patch)
tree2489786631df84fcacca766a4917d4002298ab59
parent2f53f75892494eb2f2177a21f4cbaf92a6d7ab06 (diff)
Send blank line after 10 minutes idle
Without this, I was having catgirl "time out" from pounce's POV, but without catgirl noticing anything... I still don't understand this. Been using this fix for a couple weeks though and it stopped happening, and it's otherwise harmless, but yikes.
-rw-r--r--chat.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/chat.c b/chat.c
index fa1240a..e998812 100644
--- a/chat.c
+++ b/chat.c
@@ -264,7 +264,7 @@ int main(int argc, char *argv[]) {
{ .events = POLLIN, .fd = execPipe[0] },
};
while (!self.quit) {
- int nfds = poll(fds, (self.restricted ? 2 : ARRAY_LEN(fds)), -1);
+ int nfds = poll(fds, (self.restricted ? 2 : ARRAY_LEN(fds)), 600000);
if (nfds < 0 && errno != EINTR) err(EX_IOERR, "poll");
if (nfds > 0) {
if (fds[0].revents) uiRead();
@@ -273,6 +273,11 @@ int main(int argc, char *argv[]) {
if (fds[3].revents) execRead();
}
+ // XXX: Socket seems to just stop working when connected to something
+ // like pounce which sends no pings and there is no activity for a long
+ // time, so just send something...
+ if (!nfds) ircFormat("\r\n");
+
if (signals[SIGHUP]) self.quit = "zzz";
if (signals[SIGINT] || signals[SIGTERM]) break;