| 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
|
| |
|
| |
|
|
|
|
|
|
|
| |
This allows registered plugins to execute code when loaded. This will
also allow the Lua support code to be a plugin.
Closes: https://todo.sr.ht/~sircmpwn/koushin/54
|
|
|
|
| |
Closes: https://todo.sr.ht/~sircmpwn/koushin/46
|
| |
|
| |
|
| |
|
|
|
|
| |
Closes: https://todo.sr.ht/~sircmpwn/koushin/49
|
|
|
|
|
|
|
|
|
| |
koushin now takes a list of upstream URLs instead of an IMAP and SMTP
URL. This allows to specify upstream server URLs for plugins. In the
future, this will allow for auto-discovering upstream servers based on a
single domain name.
References: https://todo.sr.ht/~sircmpwn/koushin/49
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
There's no way around having a global mutex, because we need to update
the HTTP routes when reloading plugins. During reload we need to lock
the whole server.
Closes: https://todo.sr.ht/~sircmpwn/koushin/43
|
|
|
|
|
| |
This only reloads templates for now. In the future it'll also reload
Lua plugins.
|
|
|
|
| |
This will be useful to implement hot reload.
|
|
|
|
|
| |
Disallows loading external ressources. Providers can override it with
their reverse proxy settings.
|
|
|
|
|
| |
Now that all templates are provided by plugins, there's no need to have
a public/ directory. Themes can be in /themes instead of /public/themes.
|
|
|
|
|
|
| |
This plugin offers base IMAP/SMTP functionality.
References: https://todo.sr.ht/~sircmpwn/koushin/39
|
|
|
|
| |
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.
|
|
|
|
| |
This allows plugins to access it.
|
|
|
|
| |
References: https://todo.sr.ht/~sircmpwn/koushin/6
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
References: https://todo.sr.ht/~sircmpwn/koushin/1
|
|
|
|
|
|
|
| |
This allows to go back and forth between the mailbox view and the
message view.
References: https://todo.sr.ht/~sircmpwn/koushin/22
|
|
|
|
| |
References: https://todo.sr.ht/~sircmpwn/koushin/22
|
| |
|
| |
|
| |
|
|
|
|
| |
References: https://todo.sr.ht/~sircmpwn/koushin/19
|
|
|
|
| |
Closes: https://todo.sr.ht/~sircmpwn/koushin/14
|
|
|
|
|
|
|
| |
HTTP requests can be processed in parallel, but we only have one IMAP
connection per session.
Closes: https://todo.sr.ht/~sircmpwn/koushin/12
|
| |
|