aboutsummaryrefslogtreecommitdiff
path: root/cmd/web/util.go
diff options
context:
space:
mode:
authorMitchell Riedstra <mitch@riedstra.dev>2021-04-03 13:09:45 -0400
committerMitchell Riedstra <mitch@riedstra.dev>2021-04-03 13:09:45 -0400
commit1fcb5ee549fa7ba4b7bfa7e62c15dbb8a01c38b5 (patch)
treea7030830b9df35ec761d34a48453ba9108e673dc /cmd/web/util.go
parentae22addfc7984a147aeb80ab14c6b2833a7dc4b2 (diff)
downloadsteam-export-1fcb5ee549fa7ba4b7bfa7e62c15dbb8a01c38b5.tar.gz
steam-export-1fcb5ee549fa7ba4b7bfa7e62c15dbb8a01c38b5.tar.xz
Some changes to make supporting a demo environment easier. Docker compose demo.
Diffstat (limited to 'cmd/web/util.go')
-rw-r--r--cmd/web/util.go34
1 files changed, 32 insertions, 2 deletions
diff --git a/cmd/web/util.go b/cmd/web/util.go
index 2c32922..454912f 100644
--- a/cmd/web/util.go
+++ b/cmd/web/util.go
@@ -1,6 +1,7 @@
package main
import (
+ "fmt"
"io"
"net"
"net/http"
@@ -22,9 +23,38 @@ func UnauthorizedIfNotLocal(h http.Handler) http.Handler {
})
}
+var isLocalCIDR = "127.0.0.1/8"
+
func isLocal(addr string) bool {
- _, localNet, _ := net.ParseCIDR("127.0.0.1/8")
- return localNet.Contains(net.ParseIP(strings.Split(addr, ":")[0]))
+ if strings.Contains(isLocalCIDR, ",") {
+ for _, cidr := range strings.Split(isLocalCIDR, ",") {
+ _, localNet, err := net.ParseCIDR(cidr)
+ if err != nil {
+ panic(err)
+ }
+ if localNet.Contains(net.ParseIP(strings.Split(addr, ":")[0])) {
+ return true
+ }
+ }
+
+ return false
+ } else {
+ _, localNet, err := net.ParseCIDR(isLocalCIDR)
+ if err != nil {
+ panic(err)
+ }
+ return localNet.Contains(net.ParseIP(strings.Split(addr, ":")[0]))
+ }
+}
+
+var shareLink = ""
+
+func getShareLink() string {
+ if shareLink != "" {
+ return shareLink
+ }
+
+ return fmt.Sprintf("http://%s:%s/", GetHostIP(), getPort())
}
// GetHostIP attempts to guess the IP address of the current machine and