[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r19494 - gnunet/src/util
From: |
gnunet |
Subject: |
[GNUnet-SVN] r19494 - gnunet/src/util |
Date: |
Sat, 28 Jan 2012 15:35:53 +0100 |
Author: grothoff
Date: 2012-01-28 15:35:53 +0100 (Sat, 28 Jan 2012)
New Revision: 19494
Modified:
gnunet/src/util/disk.c
gnunet/src/util/resolver_api.c
Log:
-code deduplication, doxygen fixes
Modified: gnunet/src/util/disk.c
===================================================================
--- gnunet/src/util/disk.c 2012-01-28 14:23:43 UTC (rev 19493)
+++ gnunet/src/util/disk.c 2012-01-28 14:35:53 UTC (rev 19494)
@@ -1,6 +1,6 @@
/*
This file is part of GNUnet.
- (C) 2001, 2002, 2005, 2006, 2009 Christian Grothoff (and other
contributing authors)
+ (C) 2001--2012 Christian Grothoff (and other contributing authors)
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
@@ -1972,6 +1972,7 @@
#endif
}
+
#if WINDOWS
/* Copyright Bob Byrnes <byrnes <at> curl.com>
http://permalink.gmane.org/gmane.os.cygwin.patches/2121
@@ -2110,6 +2111,7 @@
}
#endif
+
/**
* Creates an interprocess channel
*
@@ -2122,18 +2124,9 @@
struct GNUNET_DISK_PipeHandle *
GNUNET_DISK_pipe (int blocking_read, int blocking_write, int inherit_read, int
inherit_write)
{
- struct GNUNET_DISK_PipeHandle *p;
- struct GNUNET_DISK_FileHandle *fds;
-
- p = GNUNET_malloc (sizeof (struct GNUNET_DISK_PipeHandle) +
- 2 * sizeof (struct GNUNET_DISK_FileHandle));
- fds = (struct GNUNET_DISK_FileHandle *) &p[1];
- p->fd[0] = &fds[0];
- p->fd[1] = &fds[1];
#ifndef MINGW
int fd[2];
int ret;
- int flags;
int eno;
ret = pipe (fd);
@@ -2141,58 +2134,14 @@
{
eno = errno;
LOG_STRERROR (GNUNET_ERROR_TYPE_ERROR, "pipe");
- GNUNET_free (p);
errno = eno;
return NULL;
}
- p->fd[0]->fd = fd[0];
- p->fd[1]->fd = fd[1];
- ret = 0;
- if (!blocking_read)
- {
- flags = fcntl (fd[0], F_GETFL);
- flags |= O_NONBLOCK;
- 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;
- }
-
- if (!blocking_write)
- {
- flags = fcntl (fd[1], F_GETFL);
- flags |= O_NONBLOCK;
- 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)
- {
- LOG_STRERROR (GNUNET_ERROR_TYPE_ERROR, "fcntl");
- GNUNET_break (0 == close (p->fd[0]->fd));
- GNUNET_break (0 == close (p->fd[1]->fd));
- GNUNET_free (p);
- errno = eno;
- return NULL;
- }
+ return GNUNET_DISK_pipe_from_fd (blocking_read,
+ blocking_write,
+ fd);
#else
+ struct GNUNET_DISK_PipeHandle *p;
BOOL ret;
HANDLE tmp_handle;
@@ -2249,15 +2198,17 @@
p->fd[1]->oOverlapRead->hEvent = CreateEvent (NULL, FALSE, FALSE, NULL);
p->fd[1]->oOverlapWrite->hEvent = CreateEvent (NULL, FALSE, FALSE, NULL);
-#endif
return p;
+#endif
}
+
/**
* Creates a pipe object from a couple of file descriptors.
* Useful for wrapping existing pipe FDs.
*
- * @param blocking creates an asynchronous pipe if set to GNUNET_NO
+ * @param blocking_read creates an asynchronous pipe for reading if set to
GNUNET_NO
+ * @param blocking_write creates an asynchronous pipe for writing if set to
GNUNET_NO
* @param fd an array of two fd values. One of them may be -1 for read-only or
write-only pipes
*
* @return handle to the new pipe, NULL on error
@@ -2283,32 +2234,48 @@
ret = 0;
if (fd[0] >= 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;
+ }
}
if (fd[1] >= 0)
{
- 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;
+ errno = eno;
LOG_STRERROR (GNUNET_ERROR_TYPE_ERROR, "fcntl");
if (p->fd[0]->fd >= 0)
GNUNET_break (0 == close (p->fd[0]->fd));
@@ -2319,8 +2286,6 @@
return NULL;
}
#else
- BOOL ret;
-
if (fd[0] >= 0)
p->fd[0]->h = _get_osfhandle (fd[0]);
else
@@ -2421,6 +2386,7 @@
return ret;
}
+
/**
* Closes an interprocess channel
*
@@ -2663,6 +2629,7 @@
#endif
}
+
/**
* Closes a named pipe/FIFO
* @param pipe named pipe
Modified: gnunet/src/util/resolver_api.c
===================================================================
--- gnunet/src/util/resolver_api.c 2012-01-28 14:23:43 UTC (rev 19493)
+++ gnunet/src/util/resolver_api.c 2012-01-28 14:35:53 UTC (rev 19494)
@@ -272,8 +272,9 @@
/**
* Convert IP address to string without DNS resolution.
*
- * @param sa the address
- * @param salen number of bytes in sa
+ * @param af address family
+ * @param ip the address
+ * @param ip_len number of bytes in ip
* @return address as a string, NULL on error
*/
static char *
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r19494 - gnunet/src/util,
gnunet <=