From: Nehal J Wani Date: Tue, 25 Mar 2014 08:23:12 +0000 (+0530) Subject: Use virFileFindResource to locate iohelper for virFileWrapperFdNew X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=7d84ca46491b77ab64a988898fa7be80f12a9983;p=libvirt.git Use virFileFindResource to locate iohelper for virFileWrapperFdNew Instead of hardcoding LIBEXECDIR as the location of the libvirt_iohelper binary, use virFileFindResource to optionally find it in the current build directory. Signed-off-by: Daniel P. Berrange --- diff --git a/src/util/virfile.c b/src/util/virfile.c index 4e2ff32810..da4e0a0c51 100644 --- a/src/util/virfile.c +++ b/src/util/virfile.c @@ -200,6 +200,7 @@ virFileWrapperFdNew(int *fd, const char *name, unsigned int flags) bool output = false; int pipefd[2] = { -1, -1 }; int mode = -1; + char *iohelper_path = NULL; if (!flags) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -243,8 +244,15 @@ virFileWrapperFdNew(int *fd, const char *name, unsigned int flags) goto error; } - ret->cmd = virCommandNewArgList(LIBEXECDIR "/libvirt_iohelper", - name, "0", NULL); + if (!(iohelper_path = virFileFindResource("libvirt_iohelper", + "src", + LIBEXECDIR))) + goto error; + + ret->cmd = virCommandNewArgList(iohelper_path, name, "0", NULL); + + VIR_FREE(iohelper_path); + if (output) { virCommandSetInputFD(ret->cmd, pipefd[0]); virCommandSetOutputFD(ret->cmd, fd); @@ -275,6 +283,7 @@ virFileWrapperFdNew(int *fd, const char *name, unsigned int flags) return ret; error: + VIR_FREE(iohelper_path); VIR_FORCE_CLOSE(pipefd[0]); VIR_FORCE_CLOSE(pipefd[1]); virFileWrapperFdFree(ret);