]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
build: don't hand-roll cloexec code
authorEric Blake <eblake@redhat.com>
Thu, 7 Jul 2011 23:42:05 +0000 (17:42 -0600)
committerEric Blake <eblake@redhat.com>
Wed, 13 Jul 2011 23:44:08 +0000 (17:44 -0600)
No need to repeat common code.

* bootstrap.conf (gnulib_modules): Import calloc-posix.
* src/util/bridge.c (brInit): Use virSetCloseExec.
(brSetInterfaceUp): Adjust flags name.
* src/uml/uml_driver.c (umlSetCloseExec): Delete.
(umlStartVMDaemon): Use util version instead.

bootstrap.conf
src/uml/uml_driver.c
src/util/bridge.c

index 3c3d0e07deee7d6a309e113be571bacdb511e8b2..2fc457e8acc138569141512f4f16b4144bfa27f8 100644 (file)
@@ -27,6 +27,7 @@ byteswap
 c-ctype
 c-strcase
 c-strcasestr
+calloc-posix
 canonicalize-lgpl
 chown
 close
index da91687c102f233b56aaa311669f025b29cbfb0d..6eede55b40354b147407ec00dac987e300963481 100644 (file)
@@ -114,19 +114,6 @@ static int umlOpenMonitor(struct uml_driver *driver,
 static int umlReadPidFile(struct uml_driver *driver,
                           virDomainObjPtr vm);
 
-static int umlSetCloseExec(int fd) {
-    int flags;
-    if ((flags = fcntl(fd, F_GETFD)) < 0)
-        goto error;
-    flags |= FD_CLOEXEC;
-    if ((fcntl(fd, F_SETFD, flags)) < 0)
-        goto error;
-    return 0;
- error:
-    VIR_ERROR(_("Failed to set close-on-exec file descriptor flag"));
-    return -1;
-}
-
 static int umlStartVMDaemon(virConnectPtr conn,
                             struct uml_driver *driver,
                             virDomainObjPtr vm);
@@ -889,9 +876,9 @@ static int umlStartVMDaemon(virConnectPtr conn,
     }
     VIR_FREE(logfile);
 
-    if (umlSetCloseExec(logfd) < 0) {
-        virReportSystemError(errno,
-                             "%s", _("Unable to set VM logfile close-on-exec flag"));
+    if (virSetCloseExec(logfd) < 0) {
+        virReportSystemError(errno, "%s",
+                             _("Unable to set VM logfile close-on-exec flag"));
         VIR_FORCE_CLOSE(logfd);
         return -1;
     }
index 7204e64827ad45c240591dfc204842748743260c..0f4b6397f3f84ec28f5f54046777b2f42d50b848 100644 (file)
@@ -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;
     }
 
     (*ctlp)->fd = fd;
@@ -599,7 +590,7 @@ brSetInterfaceUp(brControl *ctl,
                  int up)
 {
     struct ifreq ifr;
-    int flags;
+    int ifflags;
 
     if (!ctl || !ifname)
         return EINVAL;
@@ -612,10 +603,10 @@ brSetInterfaceUp(brControl *ctl,
     if (ioctl(ctl->fd, SIOCGIFFLAGS, &ifr) < 0)
         return errno;
 
-    flags = up ? (ifr.ifr_flags | IFF_UP) : (ifr.ifr_flags & ~IFF_UP);
+    ifflags = up ? (ifr.ifr_flags | IFF_UP) : (ifr.ifr_flags & ~IFF_UP);
 
-    if (ifr.ifr_flags != flags) {
-        ifr.ifr_flags = flags;
+    if (ifr.ifr_flags != ifflags) {
+        ifr.ifr_flags = ifflags;
 
         if (ioctl(ctl->fd, SIOCSIFFLAGS, &ifr) < 0)
             return errno;