Merge 213e1d7b0f0981e68e4181b7c209a984b710eb6e into d74e7f8313bbd726ebfd1908a182fdbdf751fcdb

This commit is contained in:
Pmoranga 2025-06-16 14:17:05 +08:00 committed by GitHub
commit 74377882c4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 17 additions and 6 deletions

View File

@ -288,6 +288,17 @@ func extractFromArchive(archive, path string) error {
log.Fatalf("extractFromArchive: Mkdir() failed: %s", err.Error()) log.Fatalf("extractFromArchive: Mkdir() failed: %s", err.Error())
} }
case tar.TypeReg: case tar.TypeReg:
s := strings.Split(header.Name, "/")
dir := ""
for len(s) > 1 {
dir, s = dir+"/"+s[0], s[1:]
if _, err := os.Stat(path + dir); os.IsNotExist(err) {
if err := os.Mkdir(path+dir, 0755); err != nil {
log.Fatalf("extractFromArchive: Mkdir() subdir failed: %s", err.Error())
}
}
}
outFile, err := os.Create(path + "/" + header.Name) outFile, err := os.Create(path + "/" + header.Name)
if err != nil { if err != nil {
log.Fatalf("extractFromArchive: Create() failed: %s", err.Error()) log.Fatalf("extractFromArchive: Create() failed: %s", err.Error())

10
main.go
View File

@ -527,6 +527,11 @@ func main() {
ovpnAdmin.mgmtInterfaces[parts[0]] = parts[len(parts)-1] ovpnAdmin.mgmtInterfaces[parts[0]] = parts[len(parts)-1]
} }
if ovpnAdmin.role == "slave" {
ovpnAdmin.syncDataFromMaster()
go ovpnAdmin.syncWithMaster()
}
ovpnAdmin.mgmtSetTimeFormat() ovpnAdmin.mgmtSetTimeFormat()
ovpnAdmin.registerMetrics() ovpnAdmin.registerMetrics()
@ -554,11 +559,6 @@ func main() {
ovpnAdmin.modules = append(ovpnAdmin.modules, "ccd") ovpnAdmin.modules = append(ovpnAdmin.modules, "ccd")
} }
if ovpnAdmin.role == "slave" {
ovpnAdmin.syncDataFromMaster()
go ovpnAdmin.syncWithMaster()
}
ovpnAdmin.templates = packr.New("template", "./templates") ovpnAdmin.templates = packr.New("template", "./templates")
staticBox := packr.New("static", "./frontend/static") staticBox := packr.New("static", "./frontend/static")

View File

@ -15,7 +15,7 @@ if [ -e "$SERVER_CERT" ]; then
else else
if [ ${OVPN_ROLE:-"master"} = "slave" ]; then if [ ${OVPN_ROLE:-"master"} = "slave" ]; then
echo "Waiting for initial sync data from master" echo "Waiting for initial sync data from master"
while [ $(wget -q localhost/api/sync/last/try -O - | wc -m) -lt 1 ] while [ $(wget -q localhost:${OVPN_LISTEN_PORT:-8080}/api/sync/last/try -O - | wc -m) -lt 1 ]
do do
sleep 5 sleep 5
done done