mirror of
https://github.com/safing/portmaster
synced 2025-09-02 02:29:12 +00:00
Remove dnsonly and adapt main to new convenience method
This commit is contained in:
parent
e66e449008
commit
35c7f4955b
2 changed files with 9 additions and 160 deletions
55
dnsonly.go
55
dnsonly.go
|
@ -1,55 +0,0 @@
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"os"
|
|
||||||
"os/signal"
|
|
||||||
"runtime"
|
|
||||||
"syscall"
|
|
||||||
|
|
||||||
"github.com/safing/portbase/info"
|
|
||||||
"github.com/safing/portbase/log"
|
|
||||||
"github.com/safing/portbase/modules"
|
|
||||||
|
|
||||||
// include packages here
|
|
||||||
_ "github.com/safing/portmaster/nameserver/only"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
|
|
||||||
runtime.GOMAXPROCS(4)
|
|
||||||
|
|
||||||
// Set Info
|
|
||||||
info.Set("Portmaster (DNS only)", "0.2.0", "AGPLv3", false)
|
|
||||||
|
|
||||||
// Start
|
|
||||||
err := modules.Start()
|
|
||||||
if err != nil {
|
|
||||||
if err == modules.ErrCleanExit {
|
|
||||||
os.Exit(0)
|
|
||||||
} else {
|
|
||||||
modules.Shutdown()
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Shutdown
|
|
||||||
// catch interrupt for clean shutdown
|
|
||||||
signalCh := make(chan os.Signal)
|
|
||||||
signal.Notify(
|
|
||||||
signalCh,
|
|
||||||
os.Interrupt,
|
|
||||||
syscall.SIGHUP,
|
|
||||||
syscall.SIGINT,
|
|
||||||
syscall.SIGTERM,
|
|
||||||
syscall.SIGQUIT,
|
|
||||||
)
|
|
||||||
select {
|
|
||||||
case <-signalCh:
|
|
||||||
fmt.Println(" <INTERRUPT>")
|
|
||||||
log.Warning("main: program was interrupted, shutting down.")
|
|
||||||
modules.Shutdown()
|
|
||||||
case <-modules.ShuttingDown():
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
108
main.go
108
main.go
|
@ -1,18 +1,10 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bufio"
|
|
||||||
"flag"
|
|
||||||
"fmt"
|
|
||||||
"os"
|
"os"
|
||||||
"os/signal"
|
|
||||||
"runtime/pprof"
|
|
||||||
"syscall"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/safing/portbase/info"
|
"github.com/safing/portbase/info"
|
||||||
"github.com/safing/portbase/log"
|
"github.com/safing/portbase/run"
|
||||||
"github.com/safing/portbase/modules"
|
|
||||||
|
|
||||||
// include packages here
|
// include packages here
|
||||||
_ "github.com/safing/portmaster/core"
|
_ "github.com/safing/portmaster/core"
|
||||||
|
@ -21,102 +13,14 @@ import (
|
||||||
_ "github.com/safing/portmaster/ui"
|
_ "github.com/safing/portmaster/ui"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
|
||||||
printStackOnExit bool
|
|
||||||
enableInputSignals bool
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
flag.BoolVar(&printStackOnExit, "print-stack-on-exit", false, "prints the stack before of shutting down")
|
|
||||||
flag.BoolVar(&enableInputSignals, "input-signals", false, "emulate signals using stdin")
|
|
||||||
}
|
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
// Set Info
|
/*go func() {
|
||||||
info.Set("Portmaster", "0.3.9", "AGPLv3", true)
|
|
||||||
|
|
||||||
// Start
|
|
||||||
err := modules.Start()
|
|
||||||
if err != nil {
|
|
||||||
if err == modules.ErrCleanExit {
|
|
||||||
os.Exit(0)
|
|
||||||
} else {
|
|
||||||
modules.Shutdown()
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Shutdown
|
|
||||||
// catch interrupt for clean shutdown
|
|
||||||
signalCh := make(chan os.Signal)
|
|
||||||
if enableInputSignals {
|
|
||||||
go inputSignals(signalCh)
|
|
||||||
}
|
|
||||||
signal.Notify(
|
|
||||||
signalCh,
|
|
||||||
os.Interrupt,
|
|
||||||
os.Kill,
|
|
||||||
syscall.SIGHUP,
|
|
||||||
syscall.SIGINT,
|
|
||||||
syscall.SIGTERM,
|
|
||||||
syscall.SIGQUIT,
|
|
||||||
)
|
|
||||||
select {
|
|
||||||
case <-signalCh:
|
|
||||||
|
|
||||||
fmt.Println(" <INTERRUPT>")
|
|
||||||
log.Warning("main: program was interrupted, shutting down.")
|
|
||||||
|
|
||||||
// catch signals during shutdown
|
|
||||||
go func() {
|
|
||||||
for {
|
|
||||||
<-signalCh
|
|
||||||
fmt.Println(" <INTERRUPT> again, but already shutting down")
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
if printStackOnExit {
|
|
||||||
fmt.Println("=== PRINTING TRACES ===")
|
|
||||||
fmt.Println("=== GOROUTINES ===")
|
|
||||||
pprof.Lookup("goroutine").WriteTo(os.Stdout, 1)
|
|
||||||
fmt.Println("=== BLOCKING ===")
|
|
||||||
pprof.Lookup("block").WriteTo(os.Stdout, 1)
|
|
||||||
fmt.Println("=== MUTEXES ===")
|
|
||||||
pprof.Lookup("mutex").WriteTo(os.Stdout, 1)
|
|
||||||
fmt.Println("=== END TRACES ===")
|
|
||||||
}
|
|
||||||
|
|
||||||
go func() {
|
|
||||||
time.Sleep(10 * time.Second)
|
time.Sleep(10 * time.Second)
|
||||||
fmt.Fprintln(os.Stderr, "===== TAKING TOO LONG FOR SHUTDOWN - PRINTING STACK TRACES =====")
|
fmt.Fprintln(os.Stderr, "===== TAKING TOO LONG FOR SHUTDOWN - PRINTING STACK TRACES =====")
|
||||||
pprof.Lookup("goroutine").WriteTo(os.Stderr, 1)
|
_ = pprof.Lookup("goroutine").WriteTo(os.Stderr, 2)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}()
|
}()*/
|
||||||
|
|
||||||
err := modules.Shutdown()
|
info.Set("Portmaster", "0.3.9", "AGPLv3", true)
|
||||||
if err != nil {
|
os.Exit(run.Run())
|
||||||
os.Exit(1)
|
|
||||||
} else {
|
|
||||||
os.Exit(0)
|
|
||||||
}
|
|
||||||
|
|
||||||
case <-modules.ShuttingDown():
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func inputSignals(signalCh chan os.Signal) {
|
|
||||||
scanner := bufio.NewScanner(os.Stdin)
|
|
||||||
for scanner.Scan() {
|
|
||||||
switch scanner.Text() {
|
|
||||||
case "SIGHUP":
|
|
||||||
signalCh <- syscall.SIGHUP
|
|
||||||
case "SIGINT":
|
|
||||||
signalCh <- syscall.SIGINT
|
|
||||||
case "SIGQUIT":
|
|
||||||
signalCh <- syscall.SIGQUIT
|
|
||||||
case "SIGTERM":
|
|
||||||
signalCh <- syscall.SIGTERM
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue