| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
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
|
| |
|
| |
|
|
|
|
|
| |
This is required for authenticating with the SMTP server when composing
a new message.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|