gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r19493 - gnunet/src/util


From: gnunet
Subject: [GNUnet-SVN] r19493 - gnunet/src/util
Date: Sat, 28 Jan 2012 15:23:43 +0100

Author: grothoff
Date: 2012-01-28 15:23:43 +0100 (Sat, 28 Jan 2012)
New Revision: 19493

Modified:
   gnunet/src/util/disk.c
Log:
-fix error reporting, remove unnecessary syscalls on some paths

Modified: gnunet/src/util/disk.c
===================================================================
--- gnunet/src/util/disk.c      2012-01-28 14:17:44 UTC (rev 19492)
+++ gnunet/src/util/disk.c      2012-01-28 14:23:43 UTC (rev 19493)
@@ -2148,28 +2148,43 @@
   p->fd[0]->fd = fd[0];
   p->fd[1]->fd = fd[1];
   ret = 0;
-  flags = fcntl (fd[0], F_GETFL);
   if (!blocking_read)
+  {
+    flags = fcntl (fd[0], F_GETFL);
     flags |= O_NONBLOCK;
-  if (0 > fcntl (fd[0], F_SETFL, flags))
-    ret = -1;
+    if (0 > fcntl (fd[0], F_SETFL, flags))
+    {
+      ret = -1;
+      eno = errno;
+    }
+  }
   flags = fcntl (fd[0], F_GETFD);
   flags |= FD_CLOEXEC;
   if (0 > fcntl (fd[0], F_SETFD, flags))
+  {
     ret = -1;
+    eno = errno;
+  }
 
-  flags = fcntl (fd[1], F_GETFL);
   if (!blocking_write)
+  {
+    flags = fcntl (fd[1], F_GETFL);
     flags |= O_NONBLOCK;
-  if (0 > fcntl (fd[1], F_SETFL, flags))
-    ret = -1;
+    if (0 > fcntl (fd[1], F_SETFL, flags))
+    {
+      ret = -1;
+      eno = errno;
+    }
+  }
   flags = fcntl (fd[1], F_GETFD);
   flags |= FD_CLOEXEC;
   if (0 > fcntl (fd[1], F_SETFD, flags))
+  {
     ret = -1;
+    eno = errno;
+  }
   if (ret == -1)
   {
-    eno = errno;
     LOG_STRERROR (GNUNET_ERROR_TYPE_ERROR, "fcntl");
     GNUNET_break (0 == close (p->fd[0]->fd));
     GNUNET_break (0 == close (p->fd[1]->fd));




reply via email to

[Prev in Thread] Current Thread [Next in Thread]