new: asking confirmation when the session is closed with CTRL+C / SIGINT

(closes #319)
This commit is contained in:
evilsocket 2018-08-20 16:45:54 +02:00
commit 924387faf2
No known key found for this signature in database
GPG key ID: 1564D7F30393A456
2 changed files with 15 additions and 4 deletions

14
main.go
View file

@ -4,6 +4,7 @@ import (
"fmt"
"io"
"os"
"strings"
"github.com/bettercap/bettercap/core"
"github.com/bettercap/bettercap/log"
@ -90,8 +91,19 @@ func main() {
if err != nil {
if err == io.EOF {
continue
} else if err.Error() == "Interrupt" {
var ans string
fmt.Printf("Are you sure you want to quit this session? y/n ")
fmt.Scan(&ans)
if strings.ToLower(ans) == "y" {
sess.Run("exit")
os.Exit(0)
}
continue
} else {
log.Fatal("%s", err)
}
log.Fatal("%s", err)
}
for _, cmd := range session.ParseCommands(line) {

View file

@ -347,9 +347,8 @@ func (s *Session) startNetMon() {
}
func (s *Session) setupSignals() {
c := make(chan os.Signal, 1)
signal.Notify(c, os.Interrupt)
signal.Notify(c, syscall.SIGTERM)
c := make(chan os.Signal)
signal.Notify(c, os.Interrupt, syscall.SIGTERM)
go func() {
<-c
fmt.Println()