aboutsummaryrefslogtreecommitdiffstats
path: root/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'server.go')
-rw-r--r--server.go13
1 files changed, 11 insertions, 2 deletions
diff --git a/server.go b/server.go
index 71a891b..473d889 100644
--- a/server.go
+++ b/server.go
@@ -18,8 +18,9 @@ type Server struct {
e *echo.Echo
Sessions *SessionManager
- mutex sync.RWMutex // used for server reload
- plugins []Plugin
+ mutex sync.RWMutex // used for server reload
+ plugins []Plugin
+ luaPlugins []Plugin
imap struct {
host string
@@ -98,7 +99,15 @@ func (s *Server) load() error {
s.mutex.Lock()
defer s.mutex.Unlock()
+ // Close previous Lua plugins
+ for _, p := range s.luaPlugins {
+ if err := p.Close(); err != nil {
+ s.e.Logger.Printf("Failed to unload plugin '%v': %v", p.Name(), err)
+ }
+ }
+
s.plugins = plugins
+ s.luaPlugins = luaPlugins
s.e.Renderer = renderer
for _, p := range plugins {