Re: [libvirt] [PATCH 1/3] Add virRunWithHook.

2010-01-13 Thread Daniel P. Berrange
On Wed, Jan 13, 2010 at 01:25:05AM -0500, Laine Stump wrote:
 Similar to virExecWithHook, but waits for child to exit. Useful for
 doing things like setuid after the fork but before the exec.
 ---
  src/util/util.c |   25 ++---
  src/util/util.h |3 +++
  2 files changed, 21 insertions(+), 7 deletions(-)
 
 diff --git a/src/util/util.c b/src/util/util.c
 index 44a4b2f..1d493de 100644
 --- a/src/util/util.c
 +++ b/src/util/util.c
 @@ -792,9 +792,11 @@ error:
   * only if the command could not be run.
   */
  int
 -virRun(virConnectPtr conn,
 -   const char *const*argv,
 -   int *status) {
 +virRunWithHook(virConnectPtr conn,
 +   const char *const*argv,
 +   virExecHook hook,
 +   void *data,
 +   int *status) {
  pid_t childpid;
  int exitstatus, execret, waitret;
  int ret = -1;
 @@ -811,7 +813,7 @@ virRun(virConnectPtr conn,
  
  if ((execret = __virExec(conn, argv, NULL, NULL,
   childpid, -1, outfd, errfd,
 - VIR_EXEC_NONE, NULL, NULL, NULL))  0) {
 + VIR_EXEC_NONE, hook, data, NULL))  0) {
  ret = execret;
  goto error;
  }
 @@ -867,9 +869,11 @@ virRun(virConnectPtr conn,
  #else /* __MINGW32__ */
  
  int
 -virRun(virConnectPtr conn,
 -   const char *const *argv ATTRIBUTE_UNUSED,
 -   int *status)
 +virRunWithHook(virConnectPtr conn,
 +   const char *const *argv ATTRIBUTE_UNUSED,
 +   virExecHook hook ATTRIBUTE_UNUSED,
 +   void *data ATTRIBUTE_UNUSED,
 +   int *status)
  {
  if (status)
  *status = ENOTSUP;
 @@ -895,6 +899,13 @@ virExec(virConnectPtr conn,
  
  #endif /* __MINGW32__ */
  
 +int
 +virRun(virConnectPtr conn,
 +   const char *const*argv,
 +   int *status) {
 +return virRunWithHook(conn, argv, NULL, NULL, status);
 +}
 +
  /* Like gnulib's fread_file, but read no more than the specified maximum
 number of bytes.  If the length of the input is = max_len, and
 upon error while reading that data, it works just like fread_file.  */
 diff --git a/src/util/util.h b/src/util/util.h
 index d556daa..5e70038 100644
 --- a/src/util/util.h
 +++ b/src/util/util.h
 @@ -81,6 +81,9 @@ int virExec(virConnectPtr conn,
  int *errfd,
  int flags) ATTRIBUTE_RETURN_CHECK;
  int virRun(virConnectPtr conn, const char *const*argv, int *status) 
 ATTRIBUTE_RETURN_CHECK;
 +int virRunWithHook(virConnectPtr conn, const char *const*argv,
 +   virExecHook hook, void *data,
 +   int *status) ATTRIBUTE_RETURN_CHECK;
  
  int virFileReadLimFD(int fd, int maxlen, char **buf) ATTRIBUTE_RETURN_CHECK;
  
 -- 

ACK


Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org   -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [PATCH 1/3] Add virRunWithHook.

2010-01-12 Thread Laine Stump
Similar to virExecWithHook, but waits for child to exit. Useful for
doing things like setuid after the fork but before the exec.
---
 src/util/util.c |   25 ++---
 src/util/util.h |3 +++
 2 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/src/util/util.c b/src/util/util.c
index 44a4b2f..1d493de 100644
--- a/src/util/util.c
+++ b/src/util/util.c
@@ -792,9 +792,11 @@ error:
  * only if the command could not be run.
  */
 int
-virRun(virConnectPtr conn,
-   const char *const*argv,
-   int *status) {
+virRunWithHook(virConnectPtr conn,
+   const char *const*argv,
+   virExecHook hook,
+   void *data,
+   int *status) {
 pid_t childpid;
 int exitstatus, execret, waitret;
 int ret = -1;
@@ -811,7 +813,7 @@ virRun(virConnectPtr conn,
 
 if ((execret = __virExec(conn, argv, NULL, NULL,
  childpid, -1, outfd, errfd,
- VIR_EXEC_NONE, NULL, NULL, NULL))  0) {
+ VIR_EXEC_NONE, hook, data, NULL))  0) {
 ret = execret;
 goto error;
 }
@@ -867,9 +869,11 @@ virRun(virConnectPtr conn,
 #else /* __MINGW32__ */
 
 int
-virRun(virConnectPtr conn,
-   const char *const *argv ATTRIBUTE_UNUSED,
-   int *status)
+virRunWithHook(virConnectPtr conn,
+   const char *const *argv ATTRIBUTE_UNUSED,
+   virExecHook hook ATTRIBUTE_UNUSED,
+   void *data ATTRIBUTE_UNUSED,
+   int *status)
 {
 if (status)
 *status = ENOTSUP;
@@ -895,6 +899,13 @@ virExec(virConnectPtr conn,
 
 #endif /* __MINGW32__ */
 
+int
+virRun(virConnectPtr conn,
+   const char *const*argv,
+   int *status) {
+return virRunWithHook(conn, argv, NULL, NULL, status);
+}
+
 /* Like gnulib's fread_file, but read no more than the specified maximum
number of bytes.  If the length of the input is = max_len, and
upon error while reading that data, it works just like fread_file.  */
diff --git a/src/util/util.h b/src/util/util.h
index d556daa..5e70038 100644
--- a/src/util/util.h
+++ b/src/util/util.h
@@ -81,6 +81,9 @@ int virExec(virConnectPtr conn,
 int *errfd,
 int flags) ATTRIBUTE_RETURN_CHECK;
 int virRun(virConnectPtr conn, const char *const*argv, int *status) 
ATTRIBUTE_RETURN_CHECK;
+int virRunWithHook(virConnectPtr conn, const char *const*argv,
+   virExecHook hook, void *data,
+   int *status) ATTRIBUTE_RETURN_CHECK;
 
 int virFileReadLimFD(int fd, int maxlen, char **buf) ATTRIBUTE_RETURN_CHECK;
 
-- 
1.6.6

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH 1/3] Add virRunWithHook.

2010-01-11 Thread Daniel P. Berrange
On Mon, Jan 11, 2010 at 12:46:10AM -0500, Laine Stump wrote:
 Similar to virExecWithHook, but waits for child to exit. Useful for
 doing things like setuid after the fork but before the exec.
 ---
  src/util/util.c |   25 ++---
  src/util/util.h |3 +++
  2 files changed, 21 insertions(+), 7 deletions(-)
 
 diff --git a/src/util/util.c b/src/util/util.c
 index 44a4b2f..1d493de 100644
 --- a/src/util/util.c
 +++ b/src/util/util.c
 @@ -792,9 +792,11 @@ error:
   * only if the command could not be run.
   */
  int
 -virRun(virConnectPtr conn,
 -   const char *const*argv,
 -   int *status) {
 +virRunWithHook(virConnectPtr conn,
 +   const char *const*argv,
 +   virExecHook hook,
 +   void *data,
 +   int *status) {
  pid_t childpid;
  int exitstatus, execret, waitret;
  int ret = -1;
 @@ -811,7 +813,7 @@ virRun(virConnectPtr conn,
  
  if ((execret = __virExec(conn, argv, NULL, NULL,
   childpid, -1, outfd, errfd,
 - VIR_EXEC_NONE, NULL, NULL, NULL))  0) {
 + VIR_EXEC_NONE, hook, data, NULL))  0) {
  ret = execret;
  goto error;
  }
 @@ -867,9 +869,11 @@ virRun(virConnectPtr conn,
  #else /* __MINGW32__ */
  
  int
 -virRun(virConnectPtr conn,
 -   const char *const *argv ATTRIBUTE_UNUSED,
 -   int *status)
 +virRunWithHook(virConnectPtr conn,
 +   const char *const *argv ATTRIBUTE_UNUSED,
 +   virExecHook hook ATTRIBUTE_UNUSED,
 +   void *data ATTRIBUTE_UNUSED,
 +   int *status)
  {
  if (status)
  *status = ENOTSUP;
 @@ -895,6 +899,13 @@ virExec(virConnectPtr conn,
  
  #endif /* __MINGW32__ */
  
 +int
 +virRun(virConnectPtr conn,
 +   const char *const*argv,
 +   int *status) {
 +return virRunWithHook(conn, argv, NULL, NULL, status);
 +}
 +
  /* Like gnulib's fread_file, but read no more than the specified maximum
 number of bytes.  If the length of the input is = max_len, and
 upon error while reading that data, it works just like fread_file.  */
 diff --git a/src/util/util.h b/src/util/util.h
 index d556daa..5e70038 100644
 --- a/src/util/util.h
 +++ b/src/util/util.h
 @@ -81,6 +81,9 @@ int virExec(virConnectPtr conn,
  int *errfd,
  int flags) ATTRIBUTE_RETURN_CHECK;
  int virRun(virConnectPtr conn, const char *const*argv, int *status) 
 ATTRIBUTE_RETURN_CHECK;
 +int virRunWithHook(virConnectPtr conn, const char *const*argv,
 +   virExecHook hook, void *data,
 +   int *status) ATTRIBUTE_RETURN_CHECK;
  
  int virFileReadLimFD(int fd, int maxlen, char **buf) ATTRIBUTE_RETURN_CHECK;
  

ACK

Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org   -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [PATCH 1/3] Add virRunWithHook.

2010-01-10 Thread Laine Stump
Similar to virExecWithHook, but waits for child to exit. Useful for
doing things like setuid after the fork but before the exec.
---
 src/util/util.c |   25 ++---
 src/util/util.h |3 +++
 2 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/src/util/util.c b/src/util/util.c
index 44a4b2f..1d493de 100644
--- a/src/util/util.c
+++ b/src/util/util.c
@@ -792,9 +792,11 @@ error:
  * only if the command could not be run.
  */
 int
-virRun(virConnectPtr conn,
-   const char *const*argv,
-   int *status) {
+virRunWithHook(virConnectPtr conn,
+   const char *const*argv,
+   virExecHook hook,
+   void *data,
+   int *status) {
 pid_t childpid;
 int exitstatus, execret, waitret;
 int ret = -1;
@@ -811,7 +813,7 @@ virRun(virConnectPtr conn,
 
 if ((execret = __virExec(conn, argv, NULL, NULL,
  childpid, -1, outfd, errfd,
- VIR_EXEC_NONE, NULL, NULL, NULL))  0) {
+ VIR_EXEC_NONE, hook, data, NULL))  0) {
 ret = execret;
 goto error;
 }
@@ -867,9 +869,11 @@ virRun(virConnectPtr conn,
 #else /* __MINGW32__ */
 
 int
-virRun(virConnectPtr conn,
-   const char *const *argv ATTRIBUTE_UNUSED,
-   int *status)
+virRunWithHook(virConnectPtr conn,
+   const char *const *argv ATTRIBUTE_UNUSED,
+   virExecHook hook ATTRIBUTE_UNUSED,
+   void *data ATTRIBUTE_UNUSED,
+   int *status)
 {
 if (status)
 *status = ENOTSUP;
@@ -895,6 +899,13 @@ virExec(virConnectPtr conn,
 
 #endif /* __MINGW32__ */
 
+int
+virRun(virConnectPtr conn,
+   const char *const*argv,
+   int *status) {
+return virRunWithHook(conn, argv, NULL, NULL, status);
+}
+
 /* Like gnulib's fread_file, but read no more than the specified maximum
number of bytes.  If the length of the input is = max_len, and
upon error while reading that data, it works just like fread_file.  */
diff --git a/src/util/util.h b/src/util/util.h
index d556daa..5e70038 100644
--- a/src/util/util.h
+++ b/src/util/util.h
@@ -81,6 +81,9 @@ int virExec(virConnectPtr conn,
 int *errfd,
 int flags) ATTRIBUTE_RETURN_CHECK;
 int virRun(virConnectPtr conn, const char *const*argv, int *status) 
ATTRIBUTE_RETURN_CHECK;
+int virRunWithHook(virConnectPtr conn, const char *const*argv,
+   virExecHook hook, void *data,
+   int *status) ATTRIBUTE_RETURN_CHECK;
 
 int virFileReadLimFD(int fd, int maxlen, char **buf) ATTRIBUTE_RETURN_CHECK;
 
-- 
1.6.6

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list