This patch adds the possibility to supply a non-0
file descriptor for communucation, instead of the
default-created pipe. The pipe gets duplicated, so
the caller can free it's handles.
This is usefull for async communication over sockets.
Signed-off-by: Erik Faye-Lund <redacted>
---
run-command.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/run-command.c b/run-command.c
index e5a0e06..98771ef 100644
--- a/run-command.c
+++ b/run-command.c
@@ -327,7 +327,10 @@ int start_async(struct async *async)
{
int pipe_out[2];
- if (pipe(pipe_out) < 0)
+ if (async->out) {
+ pipe_out[0] = dup(async->out);
+ pipe_out[1] = dup(async->out);
+ } else if (pipe(pipe_out) < 0)
return error("cannot create pipe: %s", strerror(errno));
async->out = pipe_out[0];
--
1.6.5.rc2.7.g4f8d3