summaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
Diffstat (limited to 'pkg')
-rw-r--r--pkg/config/config.go4
-rw-r--r--pkg/helper/helper.go13
2 files changed, 16 insertions, 1 deletions
diff --git a/pkg/config/config.go b/pkg/config/config.go
index b7987e4..4228dae 100644
--- a/pkg/config/config.go
+++ b/pkg/config/config.go
@@ -1,6 +1,6 @@
// Code generated by go generate; DO NOT EDIT.
// This file was generated by vendorize.py
-// At 2019-10-11 16:05:25
+// At 2020-04-14 18:42:06
package config
@@ -18,6 +18,8 @@ const (
GeolocationAPI = "https://api.black.riseup.net:9001/json"
)
+var Version string
+
/*
CaCert : a string containing a representation of the provider CA, used to
diff --git a/pkg/helper/helper.go b/pkg/helper/helper.go
index b5404c2..b5b90bb 100644
--- a/pkg/helper/helper.go
+++ b/pkg/helper/helper.go
@@ -13,9 +13,16 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
+// This helper is intended to be long-lived, and run with administrator privileges.
+// It will launch a http server and expose a REST API to control OpenVPN and the firewall.
+// At the moment, it is only used in Darwin and Windows - although it could also be used in GNU/Linux systems (but we use the one-shot bitmask-root wrapper in GNU/Linux instead).
+// In Windows, this helper will run on the first available port after the standard one (7171).
+// In other systems, the 7171 port is hardcoded.
+
package helper
import (
+ "0xacab.org/leap/bitmask-vpn/pkg/config"
"encoding/json"
"log"
"net/http"
@@ -33,6 +40,7 @@ func runCommandServer(bindAddr string) {
http.HandleFunc("/firewall/start", firewallStartHandler)
http.HandleFunc("/firewall/stop", firewallStopHandler)
http.HandleFunc("/firewall/isup", firewallIsUpHandler)
+ http.HandleFunc("/version", versionHandler)
log.Fatal(http.ListenAndServe(bindAddr, nil))
}
@@ -136,6 +144,11 @@ func firewallIsUpHandler(w http.ResponseWriter, r *http.Request) {
}
}
+func versionHandler(w http.ResponseWriter, r *http.Request) {
+ w.Write([]byte(config.ApplicationName + "/" + config.Version + "\n"))
+ w.WriteHeader(http.StatusOK)
+}
+
func getArgs(r *http.Request) ([]string, error) {
args := []string{}
decoder := json.NewDecoder(r.Body)