aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2025-02-16 02:31:16 +0800
committerRunxi Yu <me@runxiyu.org>2025-02-16 02:31:16 +0800
commite274e949e6f8fc442e8c464ff1a294edd61ba8e0 (patch)
treeaa139ee5373153c67072271f194f6ad68690d389
parentrepo_index: Add HTTP clone along with SSH (diff)
downloadforge-e274e949e6f8fc442e8c464ff1a294edd61ba8e0.tar.gz
forge-e274e949e6f8fc442e8c464ff1a294edd61ba8e0.tar.zst
forge-e274e949e6f8fc442e8c464ff1a294edd61ba8e0.zip
*.go: Fix missing error handling
-rw-r--r--http_handle_repo_info.go3
-rw-r--r--http_server.go10
-rw-r--r--misc.go1
3 files changed, 12 insertions, 2 deletions
diff --git a/http_handle_repo_info.go b/http_handle_repo_info.go
index 5bc0b76..4dd1c8d 100644
--- a/http_handle_repo_info.go
+++ b/http_handle_repo_info.go
@@ -23,6 +23,9 @@ func handle_repo_info(w http.ResponseWriter, r *http.Request, params map[string]
fs_loader := server.NewFilesystemLoader(billy_fs)
transport := server.NewServer(fs_loader)
upload_pack_session, err := transport.NewUploadPackSession(endpoint, nil)
+ if err != nil {
+ return err
+ }
advertised_references, err := upload_pack_session.AdvertisedReferencesContext(r.Context())
if err != nil {
return err
diff --git a/http_server.go b/http_server.go
index 1a4d0a3..948117d 100644
--- a/http_server.go
+++ b/http_server.go
@@ -131,9 +131,15 @@ func (router *http_router_t) ServeHTTP(w http.ResponseWriter, r *http.Request) {
repo_feature := segments[separator_index+3]
switch repo_feature {
case "info":
- handle_repo_info(w, r, params)
+ err = handle_repo_info(w, r, params)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ }
case "git-upload-pack":
- handle_upload_pack(w, r, params)
+ err = handle_upload_pack(w, r, params)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ }
case "tree":
params["rest"] = strings.Join(segments[separator_index+4:], "/")
if len(segments) < separator_index+5 && redirect_with_slash(w, r) {
diff --git a/misc.go b/misc.go
index 5077b83..558f906 100644
--- a/misc.go
+++ b/misc.go
@@ -13,6 +13,7 @@ type name_desc_t struct {
var err_environ_no_separator = errors.New("No separator found in environ line")
func environ_to_map(environ_strings []string) (result map[string]string, err error) {
+ result = make(map[string]string)
for _, environ_string := range environ_strings {
key, value, found := strings.Cut(environ_string, "=")
if !found {