From 159aed508045fc56755bc406414440511fb0a04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=98=B8=EF=B8=8F?= <29265684+buffermet@users.noreply.github.com> Date: Sat, 23 Nov 2024 15:49:05 +0100 Subject: [PATCH] Implement session script onExit call. --- session/session_core_handlers.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/session/session_core_handlers.go b/session/session_core_handlers.go index 2b47f641..9d71e7a0 100644 --- a/session/session_core_handlers.go +++ b/session/session_core_handlers.go @@ -13,11 +13,14 @@ import ( "time" "github.com/bettercap/bettercap/v2/core" + "github.com/bettercap/bettercap/v2/log" "github.com/bettercap/bettercap/v2/network" "github.com/bettercap/readline" "github.com/evilsocket/islazy/str" "github.com/evilsocket/islazy/tui" + + "github.com/robertkrimen/otto" ) func (s *Session) generalHelp() { @@ -155,6 +158,14 @@ func (s *Session) activeHandler(args []string, sess *Session) error { } func (s *Session) exitHandler(args []string, sess *Session) error { + if s.script != nil { + if s.script.Plugin.HasFunc("onExit") { + if _, err := s.script.Plugin.Call("onExit"); err != nil { + log.Error("Error while executing onExit callback: %s", "\nTraceback:\n "+err.(*otto.Error).String()) + } + } + } + // notify any listener that the session is about to end s.Events.Add("session.stopped", nil)