From d40bc7dc8e9939ffb11e4f71e56376928c28b015 Mon Sep 17 00:00:00 2001 From: arzumify Date: Mon, 4 Nov 2024 17:09:45 +0000 Subject: [PATCH] Fixed a bug where setting compression would crash the server on local routes, fixed some useless never-will-happen eventualities Signed-off-by: arzumify --- main.go | 56 ++++++++++----------------------------- services-src/auth/main.go | 9 ++----- 2 files changed, 16 insertions(+), 49 deletions(-) diff --git a/main.go b/main.go index 4f16f6e..cdb6b34 100644 --- a/main.go +++ b/main.go @@ -644,22 +644,6 @@ func tryAuthAccess(message library.InterServiceMessage) { service, ok := activeServices[uuid.MustParse("00000000-0000-0000-0000-000000000004")] if ok { service.Inbox <- message - } else if !ok { - // Send error message - service, ok := activeServices[message.ServiceID] - if ok { - service.Inbox <- library.InterServiceMessage{ - ServiceID: uuid.MustParse("00000000-0000-0000-0000-000000000001"), - ForServiceID: message.ServiceID, - MessageType: 1, - SentAt: time.Now(), - Message: errors.New("authentication service not found"), - } - } else { - // This should never happen - slog.Error("Bit flip error: Impossible service ID. Move away from radiation or use ECC memory.") - os.Exit(1) - } } else { // Send error message service, ok := activeServices[message.ServiceID] @@ -669,7 +653,7 @@ func tryAuthAccess(message library.InterServiceMessage) { ForServiceID: message.ServiceID, MessageType: 1, SentAt: time.Now(), - Message: errors.New("authentication service not yet available"), + Message: errors.New("authentication service not found"), } } else { // This should never happen @@ -704,22 +688,6 @@ func tryStorageAccess(message library.InterServiceMessage) { service, ok := activeServices[uuid.MustParse("00000000-0000-0000-0000-000000000003")] if ok { service.Inbox <- message - } else if !ok { - // Send error message - service, ok := activeServices[message.ServiceID] - if ok { - service.Inbox <- library.InterServiceMessage{ - ServiceID: uuid.MustParse("00000000-0000-0000-0000-000000000001"), - ForServiceID: message.ServiceID, - MessageType: 1, - SentAt: time.Now(), - Message: errors.New("blob storage service not found"), - } - } else { - // This should never happen - slog.Error("Bit flip error: Impossible service ID. Move away from radiation or use ECC memory.") - os.Exit(1) - } } else { // Send error message service, ok := activeServices[message.ServiceID] @@ -729,7 +697,7 @@ func tryStorageAccess(message library.InterServiceMessage) { ForServiceID: message.ServiceID, MessageType: 1, SentAt: time.Now(), - Message: errors.New("blob storage is not yet available"), + Message: errors.New("blob storage service not found"), } } else { // This should never happen @@ -915,20 +883,19 @@ func parseConfig(path string) Config { func iterateThroughSubdomains(globalOutbox chan library.InterServiceMessage) { for _, route := range config.Routes { - var subdomainRouter *chi.Mux - // Create the subdomain router if route.Compression.Level != 0 { compression[route.Subdomain] = CompressionSettings{ Level: int(route.Compression.Level), Algorithm: route.Compression.Algorithm, } - } else { - subdomainRouter = chi.NewRouter() - subdomainRouter.NotFound(func(w http.ResponseWriter, r *http.Request) { - serverError(w, 404) - }) } + // Create the subdomain router + subdomainRouter := chi.NewRouter() + subdomainRouter.NotFound(func(w http.ResponseWriter, r *http.Request) { + serverError(w, 404) + }) + subdomains[route.Subdomain] = subdomainRouter subdomains[route.Subdomain].Use(logger) subdomains[route.Subdomain].Use(serverChanger) @@ -1158,6 +1125,11 @@ func main() { // Start the HTTP server err = http.ListenAndServe(config.Global.IP+":"+config.Global.HTTPPort, http.HandlerFunc(hostRouter)) - slog.Error("Error starting server: " + err.Error()) + if err != nil { + slog.Error("Error starting server: " + err.Error()) + } else { + // This should never happen + slog.Error("Bit flip error: Impossible service ID. Move away from radiation or use ECC memory.") + } os.Exit(1) } diff --git a/services-src/auth/main.go b/services-src/auth/main.go index 677ebf6..536d05f 100644 --- a/services-src/auth/main.go +++ b/services-src/auth/main.go @@ -189,11 +189,6 @@ func Main(information library.ServiceInitializationInformation) { identifier := information.Configuration["identifier"].(string) adminKey := information.Configuration["adminKey"].(string) - var err error - if err != nil { - logFunc(err.Error(), 3, information) - } - // Initiate a connection to the database // Call service ID 1 to get the database connection information information.Outbox <- library.InterServiceMessage{ @@ -246,7 +241,7 @@ func Main(information library.ServiceInitializationInformation) { } } // Set up the in-memory cache - mem, err = sql.Open("sqlite3", "file:"+ServiceInformation.ServiceID.String()+"?mode=memory&cache=shared") + mem, err := sql.Open("sqlite3", "file:"+ServiceInformation.ServiceID.String()+"?mode=memory&cache=shared") if err != nil { logFunc(err.Error(), 3, information) } @@ -295,7 +290,7 @@ func Main(information library.ServiceInitializationInformation) { // Set up the signing keys // Check if the global table has the keys - err = conn.DB.QueryRow("SELECT key FROM global LIMIT 1").Scan(&privateKey) + err := conn.DB.QueryRow("SELECT key FROM global LIMIT 1").Scan(&privateKey) if err != nil { if errors.Is(err, sql.ErrNoRows) { // Generate a new key