
2011/7/8 Eric Blake <eblake@redhat.com>:
No need to repeat common code.
* src/util/bridge.c (brInit): Use virSetCloseExec. (brSetInterfaceUp): Prefer unsigned flags. * src/uml/uml_driver.c (umlSetCloseExec): Delete. (umlStartVMDaemon): Use util version instead. ---
v2: new patch
src/uml/uml_driver.c | 19 +++---------------- src/util/bridge.c | 19 +++++-------------- 2 files changed, 8 insertions(+), 30 deletions(-)
diff --git a/src/util/bridge.c b/src/util/bridge.c index 7204e64..a6b5768 100644 --- a/src/util/bridge.c +++ b/src/util/bridge.c @@ -72,25 +72,16 @@ int brInit(brControl **ctlp) { int fd; - int flags;
if (!ctlp || *ctlp) return EINVAL;
fd = socket(AF_INET, SOCK_STREAM, 0); - if (fd < 0) - return errno; - - if ((flags = fcntl(fd, F_GETFD)) < 0 || - fcntl(fd, F_SETFD, flags | FD_CLOEXEC) < 0) { - int err = errno; - VIR_FORCE_CLOSE(fd); - return err; - } - - if (VIR_ALLOC(*ctlp) < 0) { + if (fd < 0 || + virSetCloseExec(fd) < 0 || + VIR_ALLOC(*ctlp) < 0) { VIR_FORCE_CLOSE(fd); - return ENOMEM; + return errno; }
Is it guaranteed that calloc will set ENOMEM, or do we need some gnulib module to guarantee this?
(*ctlp)->fd = fd; @@ -599,7 +590,7 @@ brSetInterfaceUp(brControl *ctl, int up) { struct ifreq ifr; - int flags; + unsigned int flags;
flags is used used with ifr.ifr_flags that is signed (actually it's a short). So I'd prefer renaming it to ifflags and keep it as int. ACK, with that questions/comments answered/addressed. -- Matthias Bolte http://photron.blogspot.com