By default abduco attempts to launch dvtm if `abduco -c` is run with no
command argument. I didn't have dvtm installed, so the resulting error
message was:
server-execvp: No such file or directory
My first thought was that abduco was implicitly relying on a program
called 'server-execvp'. Anyway, I made a simple fix to include the
command name given to execvp(3) as part of the error message.
$ abduco -c test
server-execvp: dvtm: No such file or directory
$ abduco -c test badname
server-execvp: badname: No such file or directory
>From a7075936e6f2c422a6439ac85c9139c5a0c0cbef Mon Sep 17 00:00:00 2001
From: Brandon Mulcahy <[email protected]>
Date: Sat, 8 Nov 2014 12:42:57 -0500
Subject: [PATCH] Use more descriptive execvp error message
---
abduco.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/abduco.c b/abduco.c
index 3b3733d..63162a8 100644
--- a/abduco.c
+++ b/abduco.c
@@ -311,7 +311,8 @@ static bool create_session(const char *name, char * const argv[]) {
fcntl(client_pipe[1], F_SETFD, FD_CLOEXEC);
fcntl(server_pipe[1], F_SETFD, FD_CLOEXEC);
execvp(argv[0], argv);
- snprintf(errormsg, sizeof(errormsg), "server-execvp: %s\n", strerror(errno));
+ snprintf(errormsg, sizeof(errormsg), "server-execvp: %s: %s\n",
+ argv[0], strerror(errno));
write_all(client_pipe[1], errormsg, strlen(errormsg));
write_all(server_pipe[1], errormsg, strlen(errormsg));
close(client_pipe[1]);
--
2.1.2