From a9d5e405fd9334602c8c74b18558fd0db54a4036 Mon Sep 17 00:00:00 2001
From: Runxi Yu <me@runxiyu.org>
Date: Thu, 13 Feb 2025 22:58:37 +0800
Subject: [PATCH] http_{server,handle_login}.go: Fix missing error handling

---
 http_handle_login.go |  5 +++++
 http_server.go       | 10 +++++++++-

diff --git a/http_handle_login.go b/http_handle_login.go
index 2d2dbf6cd86f20a6bc119fe5d417e811dc23a426..0785ecc35dfd9f9eacba9aa3138cc1144b6c10f3 100644
--- a/http_handle_login.go
+++ b/http_handle_login.go
@@ -57,6 +57,11 @@ 		return
 	}
 
 	cookie_value, err := random_urlsafe_string(16)
+	if err != nil {
+		http.Error(w, "Error getting random string: "+err.Error(), http.StatusInternalServerError)
+		return
+	}
+
 	now := time.Now()
 	expiry := now.Add(time.Duration(config.HTTP.CookieExpiry) * time.Second)
 
diff --git a/http_server.go b/http_server.go
index 5970cf78682df90b5a9f5fe31e08967257ff6a63..0787ea97467901df354525126634516141ecd421 100644
--- a/http_server.go
+++ b/http_server.go
@@ -8,6 +8,7 @@ 	"strconv"
 	"strings"
 
 	"go.lindenii.runxiyu.org/lindenii-common/clog"
+	"github.com/jackc/pgx/v5"
 )
 
 type http_router_t struct{}
@@ -48,8 +49,15 @@ 	}
 
 	params := make(map[string]any)
 	params["global"] = global_data
-	var _user_id int
+	var _user_id int  // 0 for none
 	_user_id, params["username"], err = get_user_info_from_request(r)
+	if errors.Is(err, http.ErrNoCookie) {
+	} else if errors.Is(err, pgx.ErrNoRows) {
+	} else if err != nil {
+		http.Error(w, "Error getting user info from request: "+err.Error(), http.StatusInternalServerError)
+		return
+	}
+
 	if _user_id == 0 {
 		params["user_id"] = ""
 	} else {

-- 
2.48.1