git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 6/8] Refactor run_command error handling in receive-pack

From
Shawn O. Pearce <spearce@spearce.org>
Date
Mar 10, 2007, 08:28 UTC
Message-ID
<20070310082811.GF4133@spearce.org>

I'm pulling the error handling used to decode the result of run_command up into a new function so that I can reuse it. No changes, just a simple code movement.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
 receive-pack.c |   43 ++++++++++++++++++++++++-------------------
 1 files changed, 24 insertions(+), 19 deletions(-)
diff --git a/receive-pack.c b/receive-pack.c
index 675c88f..e147076 100644
--- a/receive-pack.c
+++ b/receive-pack.c
@@ -71,6 +71,29 @@ static const char update_hook[] = "hooks/update";
 static const char pre_receive_hook[] = "hooks/pre-receive";
 static const char post_receive_hook[] = "hooks/post-receive";
 
+static int hook_status(int code, const char *hook_name)
+{
+	switch (code) {
+	case 0:
+		return 0;
+	case -ERR_RUN_COMMAND_FORK:
+		return error("hook fork failed");
+	case -ERR_RUN_COMMAND_EXEC:
+		return error("hook execute failed");
+	case -ERR_RUN_COMMAND_WAITPID:
+		return error("waitpid failed");
+	case -ERR_RUN_COMMAND_WAITPID_WRONG_PID:
+		return error("waitpid is confused");
+	case -ERR_RUN_COMMAND_WAITPID_SIGNAL:
+		return error("%s died of signal", hook_name);
+	case -ERR_RUN_COMMAND_WAITPID_NOEXIT:
+		return error("%s died strangely", hook_name);
+	default:
+		error("%s exited with error code %d", hook_name, -code);
+		return -code;
+	}
+}
+
 static int run_hook(const char *hook_name,
 	struct command *first_cmd,
 	int single)
@@ -108,25 +131,7 @@ static int run_hook(const char *hook_name,
 		free((char*)argv[argc]);
 	free(argv);
 
-	switch (code) {
-	case 0:
-		return 0;
-	case -ERR_RUN_COMMAND_FORK:
-		return error("hook fork failed");
-	case -ERR_RUN_COMMAND_EXEC:
-		return error("hook execute failed");
-	case -ERR_RUN_COMMAND_WAITPID:
-		return error("waitpid failed");
-	case -ERR_RUN_COMMAND_WAITPID_WRONG_PID:
-		return error("waitpid is confused");
-	case -ERR_RUN_COMMAND_WAITPID_SIGNAL:
-		return error("%s died of signal", hook_name);
-	case -ERR_RUN_COMMAND_WAITPID_NOEXIT:
-		return error("%s died strangely", hook_name);
-	default:
-		error("%s exited with error code %d", hook_name, -code);
-		return -code;
-	}
+	return hook_status(code, hook_name);
 }
 
 static const char *update(struct command *cmd)
-- 
1.5.0.3.942.g299f
Message 1 of 1 in “Refactor run_command error handling in receive-pack”
  1. 6/8 Refactor run_command error handling in receive-packShawn O. Pearce, Mar 10, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.