mirror of
https://github.com/azukaar/Cosmos-Server.git
synced 2025-12-19 02:51:06 -06:00
[release] v0.17.0-unstable23
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
## Version 0.17.0
|
||||
- Added RClone integration to manage and mount remote storage
|
||||
- Added network shares for SFTP, NFS, WebDAV, and S3, with support for remote storages and smart-shield integration
|
||||
- Added zip and deb packages for docker-less distribution
|
||||
- Added zip packages for docker-less distribution
|
||||
- Added TCP/UDP socket proxying
|
||||
- TCP/UDP proxying includes smart-shield protections, constellation support, geoblocking, and monitoring
|
||||
- Added terminal shortcut on the top right header
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cosmos-server",
|
||||
"version": "0.17.0-unstable22",
|
||||
"version": "0.17.0-unstable23",
|
||||
"description": "",
|
||||
"main": "test-server.js",
|
||||
"bugs": {
|
||||
|
||||
@@ -176,7 +176,7 @@ func PushSetMetric(key string, value int, def DataDef) {
|
||||
defer func() { <-lock }()
|
||||
|
||||
if def.Decumulate || def.DecumulatePos {
|
||||
if lastInserted[key] != 0 {
|
||||
if lastInserted[key] != 0 && lastInserted[key] > value {
|
||||
value = value - lastInserted[key]
|
||||
if def.DecumulatePos && value < 0 {
|
||||
value = 0
|
||||
|
||||
@@ -346,7 +346,7 @@ func InitInternalSocketProxy() {
|
||||
routesList = append(routesList, routes...)
|
||||
|
||||
for _, route := range routesList {
|
||||
if route.UseHost && strings.Contains(route.Host, ":") {
|
||||
if route.UseHost && strings.Contains(route.Host, ":") && !route.Disabled {
|
||||
hostname := route.Host
|
||||
port := strings.Split(hostname, ":")[1]
|
||||
// if port is a number
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
"path/filepath"
|
||||
"bufio"
|
||||
"strings"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
type ReleaseAsset struct {
|
||||
@@ -136,6 +137,39 @@ func cleanUpUpdateFiles() {
|
||||
// if cosmos-laumcher.updated exists, rename it to cosmos-launcher
|
||||
updatedPath := currentFolder + "/cosmos-launcher.updated"
|
||||
if _, err := os.Stat(updatedPath); err == nil {
|
||||
os.Rename(updatedPath, currentFolder + "/cosmos-launcher")
|
||||
// get old permissions
|
||||
var perms os.FileMode
|
||||
if info, err := os.Stat(currentFolder + "/cosmos-launcher"); err == nil {
|
||||
perms = info.Mode()
|
||||
} else {
|
||||
fmt.Println("Update: Failed to get old permissions:", err)
|
||||
}
|
||||
// get old owner
|
||||
var owner int
|
||||
if info, err := os.Stat(currentFolder + "/cosmos-launcher"); err == nil {
|
||||
owner = int(info.Sys().(*syscall.Stat_t).Uid)
|
||||
} else {
|
||||
fmt.Println("Update: Failed to get old owner:", err)
|
||||
}
|
||||
|
||||
err := os.Rename(updatedPath, currentFolder + "/cosmos-launcher")
|
||||
if err != nil {
|
||||
fmt.Println("Update: Failed to rename cosmos-launcher.updated:", err)
|
||||
}
|
||||
|
||||
// set old permissions
|
||||
if perms != 0 {
|
||||
err = os.Chmod(currentFolder + "/cosmos-launcher", perms)
|
||||
if err != nil {
|
||||
fmt.Println("Update: Failed to set old permissions:", err)
|
||||
}
|
||||
}
|
||||
// set old owner
|
||||
if owner != 0 {
|
||||
err = os.Chown(currentFolder + "/cosmos-launcher", owner, -1)
|
||||
if err != nil {
|
||||
fmt.Println("Update: Failed to set old owner:", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,6 @@ package utils
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
@@ -53,14 +52,14 @@ func InitLogs() {
|
||||
}
|
||||
|
||||
// Create a multi-writer to log to both file and stdout
|
||||
multiWriter := io.MultiWriter(ljLogger, os.Stdout)
|
||||
// multiWriter := io.MultiWriter(ljLogger, os.Stdout)
|
||||
|
||||
// Create a multi-writer for errors to log to both file and stderr
|
||||
errorWriter := io.MultiWriter(ljLogger, os.Stderr)
|
||||
// errorWriter := io.MultiWriter(ljLogger, os.Stderr)
|
||||
|
||||
// Create loggers
|
||||
logger = log.New(multiWriter, "", log.Ldate|log.Ltime)
|
||||
errorLogger = log.New(errorWriter, "", log.Ldate|log.Ltime)
|
||||
logger = log.New(ljLogger, "", log.Ldate|log.Ltime)
|
||||
errorLogger = log.New(ljLogger, "", log.Ldate|log.Ltime)
|
||||
}
|
||||
|
||||
func RawLogMessage(level LogLevel, prefix, prefixColor, color, message string) {
|
||||
@@ -68,8 +67,9 @@ func RawLogMessage(level LogLevel, prefix, prefixColor, color, message string) {
|
||||
if ll <= level {
|
||||
logString := prefixColor + Bold + prefix + Reset + " " + color + message + Reset
|
||||
|
||||
log.Println(logString)
|
||||
|
||||
if logger == nil || errorLogger == nil {
|
||||
log.Println(logString)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -86,15 +86,15 @@ func Debug(message string) {
|
||||
}
|
||||
|
||||
func Log(message string) {
|
||||
RawLogMessage(INFO, "[INFO ]", bBlue, nBlue, message)
|
||||
RawLogMessage(INFO, "[INFO] ", bBlue, nBlue, message)
|
||||
}
|
||||
|
||||
func LogReq(message string) {
|
||||
RawLogMessage(INFO, "[REQ ]", bGreen, nGreen, message)
|
||||
RawLogMessage(INFO, "[REQ] ", bGreen, nGreen, message)
|
||||
}
|
||||
|
||||
func Warn(message string) {
|
||||
RawLogMessage(WARNING, "[WARN ]", bYellow, nYellow, message)
|
||||
RawLogMessage(WARNING, "[WARN] ", bYellow, nYellow, message)
|
||||
}
|
||||
|
||||
func Error(message string, err error) {
|
||||
@@ -137,7 +137,9 @@ func Fatal(message string, err error) {
|
||||
if err != nil {
|
||||
errStr = err.Error()
|
||||
}
|
||||
errorLogger.Fatal(bRed + "[FATAL]" + Reset + " " + nRed + message + " : " + errStr + Reset)
|
||||
RawLogMessage(FATAL, "[FATAL]", bRed, nRed, message+" : "+errStr)
|
||||
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
func DoWarn(format string, a ...interface{}) string {
|
||||
|
||||
Reference in New Issue
Block a user