aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* koushin: add Store interfaceSimon Ser2020-01-285-3/+161
| | | | References: https://todo.sr.ht/~sircmpwn/koushin/5
* koushin: rename Session.locker to imapLockerSimon Ser2020-01-281-10/+10
|
* plugins/base: support attachments in draftsSimon Ser2020-01-284-6/+143
| | | | References: https://todo.sr.ht/~sircmpwn/koushin/16
* plugins/base: use BodyStructure.Walk instead of custom logicSimon Ser2020-01-281-46/+20
|
* Add .editorconfigSimon Ser2020-01-246-152/+161
|
* plugins/base: delete previous draftSimon Ser2020-01-242-5/+34
|
* plugins/base: edit draftsSimon Ser2020-01-243-63/+145
| | | | Note that attachments will be lost. This is a TODO.
* plugins/base: add fallback if SPECIAL-USE is unsupportedSimon Ser2020-01-241-20/+36
|
* plugins/base: save message as draftSimon Ser2020-01-244-45/+98
|
* Update docs with new RegisterPluginLoader functionSimon Ser2020-01-211-2/+2
|
* readme: fix example usageSimon Ser2020-01-211-1/+1
|
* Use %q to quote values in format stringsSimon Ser2020-01-201-6/+6
|
* Rename template.go to renderer.goSimon Ser2020-01-201-0/+0
|
* Extract Lua infrastructure into a pluginSimon Ser2020-01-207-24/+32
|
* Add Server.LoggerSimon Ser2020-01-201-0/+5
|
* Introduce PluginLoaderFuncSimon Ser2020-01-204-8/+26
| | | | | | | 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
* go fmtSimon Ser2020-01-201-39/+39
|
* plugins/base: append outgoing messages to Sent mailboxSimon Ser2020-01-204-4/+85
| | | | | | And mark original message as answered. Closes: https://todo.sr.ht/~sircmpwn/koushin/15
* Check IMAP/SMTP servers on startupSimon Ser2020-01-201-0/+12
| | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/46
* plugins/base: remove external resources URLs, sanitize CSSSimon Ser2020-01-204-9/+198
|
* Disable DNS prefetchingSimon Ser2020-01-201-0/+2
|
* Make the text/* part content a []byteSimon Ser2020-01-202-6/+5
|
* Extract HTML sanitizer to its own fileSimon Ser2020-01-202-7/+19
|
* Add polyfill for browsers not supporting srcdocSimon Ser2020-01-202-1/+10
|
* Open e-mail links in new tabSimon Ser2020-01-202-1/+3
|
* Resize e-mail iframe with contentSimon Ser2020-01-204-1/+14
|
* Add support for HTML partsSimon Ser2020-01-205-3/+27
|
* Update dependenciesSimon Ser2020-01-202-26/+25
|
* Fix dangling goroutine on session expirationSimon Ser2020-01-201-3/+1
| | | | | | | | 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.
* go fmtSimon Ser2020-01-203-3/+3
|
* Auto-discover upstream SMTP and IMAP serversSimon Ser2020-01-203-4/+90
| | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/49
* Generalize upstream server URLsSimon Ser2020-01-202-36/+89
| | | | | | | | | 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
* Hide echo bannerReto Brunner2020-01-171-0/+1
|
* Add current path to the global contextDejan Strbac2020-01-161-0/+4
|
* Include flags when fetching items over IMAPDejan Strbac2020-01-161-1/+1
|
* Add Session.SetHTTPBasicAuthSimon Ser2020-01-101-0/+8
| | | | | This is not 100% idiot-proof, but still makes it mroe difficult for plugins to steal credentials.
* Fix panic when injecting a template with nil dataSimon Ser2020-01-101-1/+12
|
* Redirect to original URL after loginSimon Ser2020-01-102-7/+23
|
* Close Lua plugins on reloadSimon Ser2020-01-101-2/+11
|
* cmd/koushin: add -addr flagSimon Ser2020-01-081-1/+3
|
* readme: document hot reloadSimon Ser2020-01-081-0/+6
|
* Implement plugin/template reload on SIGUSR1Simon Ser2020-01-083-39/+60
| | | | | | | | 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
* cmd/koushin: reload on SIGUSR1Simon Ser2020-01-081-1/+16
| | | | References: https://todo.sr.ht/~sircmpwn/koushin/43
* Add Server.ReloadSimon Ser2020-01-083-16/+36
| | | | | This only reloads templates for now. In the future it'll also reload Lua plugins.
* Make New return the ServerSimon Ser2020-01-082-6/+7
| | | | This will be useful to implement hot reload.
* themes/sourcehut: add search input to mailbox viewSimon Ser2019-12-253-0/+14
|
* Fix extra comma in address listSimon Ser2019-12-181-1/+1
|
* Fix header missing from raw e-mail downloadSimon Ser2019-12-181-1/+11
|
* Add a default CSPSimon Ser2019-12-181-0/+7
| | | | | Disallows loading external ressources. Providers can override it with their reverse proxy settings.
* Implement paging for searchSimon Ser2019-12-173-16/+30
|