Skip to content
Snippets Groups Projects
Unverified Commit 5b6bb5ce authored by meskio's avatar meskio :tent: Committed by Kali Kaneko
Browse files

[bug] accept corrupted pid files

A corrupted pid file, or a file that contains something else than a pid
number used to block bitmask-vpn from launch. Now if the file contains
something that is not expected it will log it and rewrite it.

I refactor de code so the pid file will be released on quit instead of
initialization.

- Resolves: #349
parent 0a45a565
No related branches found
No related tags found
No related merge requests found
...@@ -11,6 +11,7 @@ import ( ...@@ -11,6 +11,7 @@ import (
"0xacab.org/leap/bitmask-vpn/pkg/bitmask" "0xacab.org/leap/bitmask-vpn/pkg/bitmask"
"0xacab.org/leap/bitmask-vpn/pkg/config/version" "0xacab.org/leap/bitmask-vpn/pkg/config/version"
"0xacab.org/leap/bitmask-vpn/pkg/pid"
"0xacab.org/leap/bitmask-vpn/pkg/pickle" "0xacab.org/leap/bitmask-vpn/pkg/pickle"
) )
...@@ -56,6 +57,7 @@ func Quit() { ...@@ -56,6 +57,7 @@ func Quit() {
if ctx.bm != nil { if ctx.bm != nil {
ctx.bm.Close() ctx.bm.Close()
} }
pid.ReleasePID()
} }
func DonateAccepted() { func DonateAccepted() {
......
...@@ -7,6 +7,7 @@ import ( ...@@ -7,6 +7,7 @@ import (
"0xacab.org/leap/bitmask-vpn/pkg/bitmask" "0xacab.org/leap/bitmask-vpn/pkg/bitmask"
"0xacab.org/leap/bitmask-vpn/pkg/config" "0xacab.org/leap/bitmask-vpn/pkg/config"
"0xacab.org/leap/bitmask-vpn/pkg/config/version" "0xacab.org/leap/bitmask-vpn/pkg/config/version"
"0xacab.org/leap/bitmask-vpn/pkg/pid"
) )
// initializeContext initializes an empty connStatus and assigns it to the // initializeContext initializes an empty connStatus and assigns it to the
...@@ -52,6 +53,13 @@ func initializeBitmask(errCh chan string, opts *InitOpts) { ...@@ -52,6 +53,13 @@ func initializeBitmask(errCh chan string, opts *InitOpts) {
bitmask.InitializeLogger() bitmask.InitializeLogger()
ctx.cfg = config.ParseConfig() ctx.cfg = config.ParseConfig()
err := pid.AcquirePID()
if err != nil {
log.Println("Error acquiring PID:", err)
errCh <- err.Error()
return
}
b, err := bitmask.InitializeBitmask(opts.SkipLaunch) b, err := bitmask.InitializeBitmask(opts.SkipLaunch)
if err != nil { if err != nil {
log.Println("error: cannot initialize bitmask") log.Println("error: cannot initialize bitmask")
......
...@@ -26,7 +26,6 @@ import ( ...@@ -26,7 +26,6 @@ import (
"golang.org/x/text/message" "golang.org/x/text/message"
"0xacab.org/leap/bitmask-vpn/pkg/config" "0xacab.org/leap/bitmask-vpn/pkg/config"
"0xacab.org/leap/bitmask-vpn/pkg/pid"
"0xacab.org/leap/bitmask-vpn/pkg/vpn" "0xacab.org/leap/bitmask-vpn/pkg/vpn"
) )
...@@ -107,13 +106,6 @@ func InitializeBitmask(skipLaunch bool) (Bitmask, error) { ...@@ -107,13 +106,6 @@ func InitializeBitmask(skipLaunch bool) (Bitmask, error) {
os.MkdirAll(config.Path, os.ModePerm) os.MkdirAll(config.Path, os.ModePerm)
} }
err := pid.AcquirePID()
if err != nil {
log.Println("Error acquiring PID:", err)
return nil, err
}
defer pid.ReleasePID()
conf := config.ParseConfig() conf := config.ParseConfig()
conf.Printer = initPrinter() conf.Printer = initPrinter()
......
...@@ -35,7 +35,7 @@ func AcquirePID() error { ...@@ -35,7 +35,7 @@ func AcquirePID() error {
pid := syscall.Getpid() pid := syscall.Getpid()
current, err := getPID() current, err := getPID()
if err != nil { if err != nil {
return err log.Print("Error reading pid file:", err)
} }
if current != pid && pidRunning(current) { if current != pid && pidRunning(current) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment