feat(handlers): add duplicate login check and improve request handling

refactor: move postLog package to root directory and enhance logging
fix(frpc): improve request parsing and type handling for instance creation
chore: update config paths and enable debug mode
This commit is contained in:
2026-02-27 21:04:08 +08:00
parent 7e163b5216
commit 962a36d74f
7 changed files with 112 additions and 27 deletions
+15 -15
View File
@@ -6,7 +6,7 @@ import (
"net/http"
"os"
"os/signal"
"super-frpc/modules"
"super-frpc/postLog"
"syscall"
"time"
)
@@ -23,31 +23,31 @@ func main() {
"configDir": "./configs"
}`
if err := os.WriteFile(*configPath, []byte(defaultConfig), 0644); err != nil {
postLog.Fatal(fmt.Sprintf("failed to create default config file: %v", err))
postLog.Fatal(fmt.Sprintf("Failed to create default config file: %v", err))
}
postLog.Info(fmt.Sprintf("created default config file at %s", *configPath))
postLog.Info(fmt.Sprintf("Created default config file at %s", *configPath))
}
config, err := LoadConfig(*configPath)
if err != nil {
postLog.Fatal(fmt.Sprintf("failed to load config: %v", err))
postLog.Fatal(fmt.Sprintf("Failed to load config: %v", err))
}
// Initialize logger with debug mode
postLog.SetDebugMode(config.Debug)
if err := InitDatabase(*dbPath); err != nil {
postLog.Fatal(fmt.Sprintf("failed to initialize database: %v", err))
postLog.Fatal(fmt.Sprintf("Failed to initialize database: %v", err))
}
postLog.Info("database initialized successfully")
postLog.Info("Database initialized successfully")
if err := InitFrpcDatabase(*dbPath); err != nil {
postLog.Warning(fmt.Sprintf("failed to initialize frpc database: %v", err))
postLog.Warning(fmt.Sprintf("Failed to initialize frpc database: %v", err))
}
_, err = GetConfig()
if err != nil {
postLog.Fatal(fmt.Sprintf("failed to get config: %v", err))
postLog.Fatal(fmt.Sprintf("Failed to get config: %v", err))
}
setupRoutes()
@@ -61,9 +61,9 @@ func main() {
}
go func() {
postLog.Info(fmt.Sprintf("server starting on %s", addr))
postLog.Info(fmt.Sprintf("Server starting on %s", addr))
if err := server.ListenAndServe(); err != nil && err != http.ErrServerClosed {
postLog.Fatal(fmt.Sprintf("failed to start server: %v", err))
postLog.Fatal(fmt.Sprintf("Failed to start server: %v", err))
}
}()
@@ -71,19 +71,19 @@ func main() {
signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
<-quit
postLog.Info("shutting down server...")
postLog.Info("Shutting down server...")
if err := server.Close(); err != nil {
postLog.Error(fmt.Sprintf("server closed with error: %v", err))
postLog.Error(fmt.Sprintf("Server closed with error: %v", err))
}
if err := CloseDatabase(); err != nil {
postLog.Error(fmt.Sprintf("error closing database: %v", err))
postLog.Error(fmt.Sprintf("Error closing database: %v", err))
}
if err := CloseFrpcDatabase(); err != nil {
postLog.Error(fmt.Sprintf("error closing frpc database: %v", err))
postLog.Error(fmt.Sprintf("Error closing frpc database: %v", err))
}
postLog.Info("server stopped")
postLog.Info("Server stopped")
}