From ff0fbe914e2cb10c7df4819a68c5103588abd69f Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Fri, 11 Dec 2020 00:35:35 -0500 Subject: Add imapIdle Handles re-IDLE-ing every 29 minutes and returns the first response it gets. --- imap.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'imap.c') diff --git a/imap.c b/imap.c index e21141d..e875595 100644 --- a/imap.c +++ b/imap.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -265,3 +266,24 @@ struct Resp imapResp(struct IMAP *imap) { return resp; } + +struct Resp imapIdle(struct IMAP *imap, enum Atom tag) { + for (;;) { + fprintf(imap->w, "%s IDLE\r\n", Atoms[tag]); + struct Resp resp = imapResp(imap); + if (resp.tag != AtomContinue) { + fprintf(imap->w, "DONE\r\n"); + return resp; + } + respFree(resp); + + struct pollfd pfd = { .fd = imap->sock, .events = POLLIN }; + int ready = poll(&pfd, 1, 29 * 60 * 1000); + if (ready < 0) err(EX_IOERR, "poll"); + + fprintf(imap->w, "DONE\r\n"); + resp = imapResp(imap); + if (ready || resp.tag != tag) return resp; + respFree(resp); + } +} -- cgit 1.4.1 7e8aeef4f14cc42ee00f333bf585556484'>tree commit diff
Commit message (Collapse)Author
2018-04-03Add some albums from recentlyJune McEnroe
2018-04-03Add Saltland Light of MercyJune McEnroe
2018-04-03Add Jessica Moss GlaciersJune McEnroe
2018-04-03Add BNNY RBBTJune McEnroe
2018-04-03Add DepthsJune McEnroe
2018-04-03Add new Saltland previewJune McEnroe
2018-04-03Add BenjiJune McEnroe
2018-04-03Add Mouth MoodsJune McEnroe
2018-04-03Add Those Who Walk AwayJune McEnroe
2018-04-03Add Some TunesJune McEnroe
2018-04-03Add Pas pire popJune McEnroe
2018-04-03Add I Give You PowerJune McEnroe
2018-04-03Add Jenny GoGoJune McEnroe
2018-04-03Add KKB Fish BowlJune McEnroe
2018-04-03Add new Avec le soleil album previewJune McEnroe
2018-04-03Add Julien Baker as recent new musicJune McEnroe
2018-04-03Add recent new musicJune McEnroe