[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [gnunet] branch master updated: cache PF support results fr
From: |
gnunet |
Subject: |
[GNUnet-SVN] [gnunet] branch master updated: cache PF support results from OS probe (#5553) |
Date: |
Sat, 02 Mar 2019 11:17:35 +0100 |
This is an automated email from the git hooks/post-receive script.
grothoff pushed a commit to branch master
in repository gnunet.
The following commit(s) were added to refs/heads/master by this push:
new 54d83ad05 cache PF support results from OS probe (#5553)
54d83ad05 is described below
commit 54d83ad059519ca03971b79b8410540d9438b5a8
Author: Christian Grothoff <address@hidden>
AuthorDate: Sat Mar 2 11:17:27 2019 +0100
cache PF support results from OS probe (#5553)
---
src/util/network.c | 58 +++++++++++++++++++++++++++++++++++++++++++++---------
1 file changed, 49 insertions(+), 9 deletions(-)
diff --git a/src/util/network.c b/src/util/network.c
index c236292b7..90f8c8640 100644
--- a/src/util/network.c
+++ b/src/util/network.c
@@ -83,24 +83,64 @@ struct GNUNET_NETWORK_Handle
int
GNUNET_NETWORK_test_pf (int pf)
{
+ static int cache_v4 = -1;
+ static int cache_v6 = -1;
+ static int cache_un = -1;
int s;
+ int ret;
+ switch (pf)
+ {
+ case PF_INET:
+ if (-1 != cache_v4)
+ return cache_v4;
+ break;
+ case PF_INET6:
+ if (-1 != cache_v6)
+ return cache_v6;
+ break;
+#ifdef PF_UNIX
+ case PF_UNIX:
+ if (-1 != cache_un)
+ return cache_un;
+ break;
+#endif
+ }
s = socket (pf, SOCK_STREAM, 0);
if (-1 == s)
{
- if (EAFNOSUPPORT == errno)
- return GNUNET_NO;
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
- "Failed to create test socket: %s\n",
- STRERROR (errno));
- return GNUNET_SYSERR;
+ if (EAFNOSUPPORT != errno)
+ {
+ GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING,
+ "socket");
+ return GNUNET_SYSERR;
+ }
+ ret = GNUNET_NO;
}
+ else
+ {
#if WINDOWS
- closesocket (s);
+ closesocket (s);
#else
- close (s);
+ close (s);
#endif
- return GNUNET_OK;
+ ret = GNUNET_OK;
+ }
+ switch (pf)
+ {
+ case PF_INET:
+ cache_v4 = ret;
+ break;
+ case PF_INET6:
+ cache_v6 = ret;
+ break;
+#ifdef PF_UNIX
+ case PF_UNIX:
+ cache_un = ret;
+ break;
+#endif
+ }
+ return ret;
}
--
To stop receiving notification emails like this one, please contact
address@hidden
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] [gnunet] branch master updated: cache PF support results from OS probe (#5553),
gnunet <=