| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This one is a bit of a doozy. A summary of the changes:
- Session has grown storage for attachments which have been uploaded but
not yet sent.
- The list of attachments on a message is refcounted so that we can
clean up the temporary files only after it's done with - i.e. after
copying to Sent and after all of the SMTP attempts are done.
- Abandoned attachments are cleared out on process shutdown.
Future work:
- Add a limit to the maximum number of pending attachments the user can
have in the session.
- Periodically clean out abandoned attachments?
|
| |
|
| |
|
| |
|
|
|
|
| |
References: https://todo.sr.ht/~sircmpwn/koushin/5
|
| |
|
|
|
|
|
|
|
|
| |
The timer channel may already have been drained by `case <-timer.C`. In
this case, we need not to drain it again or we'll block forever.
To fix this, stop draining the timer channel. Since we're not going to
use the timer again anyway, it should be fine.
|
| |
|
|
|
|
|
| |
This is not 100% idiot-proof, but still makes it mroe difficult for
plugins to steal credentials.
|
| |
|
| |
|
|
|
|
|
| |
This gives more flexibility in Session for optimizations, e.g. keep the
SMTP connection around for some time if possible.
|
| |
|
|
|
|
|
|
| |
This plugin offers base IMAP/SMTP functionality.
References: https://todo.sr.ht/~sircmpwn/koushin/39
|
|
|
|
| |
Fixes: f07ab5263246 ("Add docs")
|
| |
|
|
|
|
| |
And unexport a few internal functions.
|
|
|
|
| |
This isn't intended to be used by plugins.
|
|
|
|
|
|
|
| |
I'm uneasy exposing the token to plugins, I prefer to hide it if
possible to prevent mis-use.
This change allows plugins to logout users.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The session manager has been upgraded to deal with reconnections.
Each session has its own expiration timer. Each time a request is
received, the expiration timer is reset.
A session can be closed (this is used when the user wants to logout).
When the IMAP connection is closed by the server, it's set to nil in the
session. The next time an IMAP command needs to be issued, the
connection is re-established.
Closes: https://todo.sr.ht/~sircmpwn/koushin/30
|
|
|
|
|
| |
This will allow SessionManager to re-connect when the IMAP server logs
the user out.
|
|
|