mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
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 <berrange@redhat.com>
This commit is contained in:
parent
391ac4d990
commit
7d84ca4649
@ -200,6 +200,7 @@ virFileWrapperFdNew(int *fd, const char *name, unsigned int flags)
|
|||||||
bool output = false;
|
bool output = false;
|
||||||
int pipefd[2] = { -1, -1 };
|
int pipefd[2] = { -1, -1 };
|
||||||
int mode = -1;
|
int mode = -1;
|
||||||
|
char *iohelper_path = NULL;
|
||||||
|
|
||||||
if (!flags) {
|
if (!flags) {
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
@ -243,8 +244,15 @@ virFileWrapperFdNew(int *fd, const char *name, unsigned int flags)
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret->cmd = virCommandNewArgList(LIBEXECDIR "/libvirt_iohelper",
|
if (!(iohelper_path = virFileFindResource("libvirt_iohelper",
|
||||||
name, "0", NULL);
|
"src",
|
||||||
|
LIBEXECDIR)))
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
ret->cmd = virCommandNewArgList(iohelper_path, name, "0", NULL);
|
||||||
|
|
||||||
|
VIR_FREE(iohelper_path);
|
||||||
|
|
||||||
if (output) {
|
if (output) {
|
||||||
virCommandSetInputFD(ret->cmd, pipefd[0]);
|
virCommandSetInputFD(ret->cmd, pipefd[0]);
|
||||||
virCommandSetOutputFD(ret->cmd, fd);
|
virCommandSetOutputFD(ret->cmd, fd);
|
||||||
@ -275,6 +283,7 @@ virFileWrapperFdNew(int *fd, const char *name, unsigned int flags)
|
|||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
|
VIR_FREE(iohelper_path);
|
||||||
VIR_FORCE_CLOSE(pipefd[0]);
|
VIR_FORCE_CLOSE(pipefd[0]);
|
||||||
VIR_FORCE_CLOSE(pipefd[1]);
|
VIR_FORCE_CLOSE(pipefd[1]);
|
||||||
virFileWrapperFdFree(ret);
|
virFileWrapperFdFree(ret);
|
||||||
|
Loading…
Reference in New Issue
Block a user