Undo blocked servers cache list
This commit is contained in:
parent
e7ada7435f
commit
6c750bcaed
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,4 +1,3 @@
|
|||||||
bin/
|
bin/
|
||||||
config.yml
|
config.yml
|
||||||
.DS_Store
|
.DS_Store
|
||||||
blocked-servers.json
|
|
||||||
@ -38,6 +38,8 @@ func init() {
|
|||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.Println("Successfully retrieved EULA blocked servers")
|
||||||
|
|
||||||
if instanceID := os.Getenv("INSTANCE_ID"); len(instanceID) > 0 {
|
if instanceID := os.Getenv("INSTANCE_ID"); len(instanceID) > 0 {
|
||||||
value, err := strconv.ParseUint(instanceID, 10, 16)
|
value, err := strconv.ParseUint(instanceID, 10, 16)
|
||||||
|
|
||||||
|
|||||||
63
src/util.go
63
src/util.go
@ -4,16 +4,12 @@ import (
|
|||||||
"crypto/sha1"
|
"crypto/sha1"
|
||||||
_ "embed"
|
_ "embed"
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
|
||||||
"regexp"
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -22,11 +18,6 @@ var (
|
|||||||
ipAddressRegExp = regexp.MustCompile(`^\d{1,3}(\.\d{1,3}){3}$`)
|
ipAddressRegExp = regexp.MustCompile(`^\d{1,3}(\.\d{1,3}){3}$`)
|
||||||
)
|
)
|
||||||
|
|
||||||
type BlockedServersFile struct {
|
|
||||||
LastUpdated time.Time `json:"last_updated"`
|
|
||||||
Servers []string `json:"servers"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func Contains[T comparable](arr []T, v T) bool {
|
func Contains[T comparable](arr []T, v T) bool {
|
||||||
for _, value := range arr {
|
for _, value := range arr {
|
||||||
if v == value {
|
if v == value {
|
||||||
@ -38,36 +29,6 @@ func Contains[T comparable](arr []T, v T) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func GetBlockedServerList() error {
|
func GetBlockedServerList() error {
|
||||||
f, err := os.OpenFile("blocked-servers.json", os.O_CREATE|os.O_RDWR, 0777)
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
defer f.Close()
|
|
||||||
|
|
||||||
data, err := ioutil.ReadAll(f)
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(data) > 0 {
|
|
||||||
var blockedServersFile BlockedServersFile
|
|
||||||
|
|
||||||
if err = json.Unmarshal(data, &blockedServersFile); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if time.Since(blockedServersFile.LastUpdated).Hours() < 24 {
|
|
||||||
blockedServersMutex.Lock()
|
|
||||||
blockedServers = blockedServersFile.Servers
|
|
||||||
blockedServersMutex.Unlock()
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
resp, err := http.Get("https://sessionserver.mojang.com/blockedservers")
|
resp, err := http.Get("https://sessionserver.mojang.com/blockedservers")
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -78,8 +39,6 @@ func GetBlockedServerList() error {
|
|||||||
return fmt.Errorf("unexpected status code: %d", resp.StatusCode)
|
return fmt.Errorf("unexpected status code: %d", resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Println("Successfully retrieved EULA blocked servers")
|
|
||||||
|
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
|
|
||||||
body, err := ioutil.ReadAll(resp.Body)
|
body, err := ioutil.ReadAll(resp.Body)
|
||||||
@ -90,27 +49,9 @@ func GetBlockedServerList() error {
|
|||||||
|
|
||||||
blockedServersMutex.Lock()
|
blockedServersMutex.Lock()
|
||||||
blockedServers = strings.Split(string(body), "\n")
|
blockedServers = strings.Split(string(body), "\n")
|
||||||
|
blockedServersMutex.Unlock()
|
||||||
|
|
||||||
defer blockedServersMutex.Unlock()
|
return nil
|
||||||
|
|
||||||
if data, err = json.Marshal(BlockedServersFile{
|
|
||||||
LastUpdated: time.Now(),
|
|
||||||
Servers: blockedServers,
|
|
||||||
}); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if err = f.Truncate(0); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if _, err = f.Seek(0, 0); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = f.Write(data)
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func IsBlockedAddress(address string) bool {
|
func IsBlockedAddress(address string) bool {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user