aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--configure.ac57
-rw-r--r--contrib/branding/logo/lynXified-amirouche-anonymous-v3.pngbin0 -> 71137 bytes
-rw-r--r--contrib/branding/logo/lynXified-amirouche-v3.svg918
-rw-r--r--contrib/packages/guix/guix-env-gillmann.scm151
-rw-r--r--contrib/packages/guix/guix-env-py2.scm158
-rw-r--r--doc/documentation/chapters/user.texi6
-rw-r--r--doc/documentation/gnunet.texi8
-rw-r--r--po/POTFILES.in124
-rw-r--r--src/arm/test_arm_api_data.conf2
-rw-r--r--src/ats/ats_api_performance.c8
-rw-r--r--src/ats/plugin_ats_mlp.c1
-rw-r--r--src/ats/plugin_ats_proportional.c2
-rw-r--r--src/cadet/cadet_test_lib.c5
-rw-r--r--src/cadet/gnunet-cadet.c5
-rw-r--r--src/core/test_core_api_data.conf2
-rw-r--r--src/core/test_core_api_send_to_self.conf2
-rw-r--r--src/datastore/plugin_datastore_sqlite.c3
-rw-r--r--src/dv/test_transport_blacklist_data.conf2
-rw-r--r--src/dv/test_transport_dv_data.conf2
-rw-r--r--src/fs/fs_api.c2
-rw-r--r--src/fs/gnunet-service-fs_pr.c2
-rw-r--r--src/fs/test_fs_defaults.conf2
-rw-r--r--src/gns/gnunet-gns-proxy.c2
-rw-r--r--src/gns/gnunet-service-gns_interceptor.c2
-rw-r--r--src/gns/nss/nss_gns.c2
-rw-r--r--src/gnsrecord/gnsrecord_serialization.c35
-rw-r--r--src/include/gnunet_common.h6
-rw-r--r--src/multicast/gnunet-service-multicast.c6
-rw-r--r--src/namecache/gnunet-service-namecache.c19
-rw-r--r--src/namecache/namecache_api.c8
-rw-r--r--src/namestore/test_namestore_api_lookup_shadow.c2
-rw-r--r--src/namestore/test_namestore_api_lookup_shadow_filter.c2
-rw-r--r--src/namestore/test_namestore_api_sqlite.conf1
-rw-r--r--src/nat/test_nat_test_data.conf2
-rw-r--r--src/rps/gnunet-rps-profiler.c27
-rw-r--r--src/rps/gnunet-rps.c12
-rw-r--r--src/rps/rps-test_util.c5
-rw-r--r--src/rps/test_rps.conf23
-rw-r--r--src/template/template.conf6
-rw-r--r--src/testbed/test_testbed_api_statistics.conf2
-rw-r--r--src/testbed/testbed_api_topology.c4
-rw-r--r--src/testing/test_testing_sharedservices.conf2
-rw-r--r--src/transport/test_plugin_transport_data.conf18
-rw-r--r--src/transport/test_quota_compliance_data.conf12
-rw-r--r--src/transport/test_quota_compliance_http_asymmetric_peer1.conf10
-rw-r--r--src/transport/test_quota_compliance_http_asymmetric_peer2.conf12
-rw-r--r--src/transport/test_quota_compliance_http_peer1.conf10
-rw-r--r--src/transport/test_quota_compliance_http_peer2.conf12
-rw-r--r--src/transport/test_quota_compliance_https_asymmetric_peer1.conf10
-rw-r--r--src/transport/test_quota_compliance_https_asymmetric_peer2.conf12
-rw-r--r--src/transport/test_quota_compliance_https_peer1.conf10
-rw-r--r--src/transport/test_quota_compliance_https_peer2.conf12
-rw-r--r--src/transport/test_quota_compliance_tcp_asymmetric_peer1.conf14
-rw-r--r--src/transport/test_quota_compliance_tcp_peer1.conf14
-rw-r--r--src/transport/test_quota_compliance_udp_peer1.conf12
-rw-r--r--src/transport/test_quota_compliance_udp_peer2.conf12
-rw-r--r--src/transport/test_quota_compliance_unix_asymmetric_peer1.conf12
-rw-r--r--src/transport/test_quota_compliance_unix_asymmetric_peer2.conf12
-rw-r--r--src/transport/test_quota_compliance_unix_peer1.conf10
-rw-r--r--src/transport/test_quota_compliance_unix_peer2.conf12
-rw-r--r--src/transport/test_transport_api_data.conf4
-rw-r--r--src/transport/test_transport_api_reliability_tcp_nat_peer1.conf2
-rw-r--r--src/transport/test_transport_api_tcp_nat_peer1.conf2
-rw-r--r--src/util/Makefile.am3
-rw-r--r--src/util/common_logging.c4
-rw-r--r--src/util/disk.c21
-rw-r--r--src/util/gnunet-service-resolver.c269
-rw-r--r--src/util/resolver.h27
-rw-r--r--src/util/resolver_api.c37
-rw-r--r--src/util/test_resolver_api.c2
71 files changed, 1923 insertions, 295 deletions
diff --git a/.gitignore b/.gitignore
index 46dc14a98..0959a9597 100644
--- a/.gitignore
+++ b/.gitignore
@@ -41,7 +41,6 @@ INSTALL
41confdefs.h 41confdefs.h
42confdefs.c 42confdefs.c
43confdefs.err 43confdefs.err
44guix-env-gillmann.scm
45src/namestore/test_namestore_api_zone_to_name 44src/namestore/test_namestore_api_zone_to_name
46src/credential/gnunet-credential 45src/credential/gnunet-credential
47src/credential/gnunet-service-credential 46src/credential/gnunet-service-credential
diff --git a/configure.ac b/configure.ac
index 204859556..c8e316416 100644
--- a/configure.ac
+++ b/configure.ac
@@ -58,7 +58,7 @@ fi
58# Use Linux interface name unless the OS has a different preference 58# Use Linux interface name unless the OS has a different preference
59DEFAULT_INTERFACE="\"eth0\"" 59DEFAULT_INTERFACE="\"eth0\""
60 60
61funcstocheck="getnameinfo gethostname gethostbyname gethostbyaddr getaddrinfo" 61funcstocheck="getnameinfo gethostname gethostbyname gethostbyaddr getaddrinfo getaddrinfo_a"
62 62
63# Srcdir in a form that native compiler understands (i.e. DOS path on W32) 63# Srcdir in a form that native compiler understands (i.e. DOS path on W32)
64native_srcdir=$srcdir 64native_srcdir=$srcdir
@@ -213,10 +213,19 @@ else
213AC_MSG_WARN([warning: 'iptables' not found.]) 213AC_MSG_WARN([warning: 'iptables' not found.])
214fi 214fi
215 215
216
217AC_CHECK_PROG(VAR_IFCONFIG_BINARY, ifconfig, true, false) 216AC_CHECK_PROG(VAR_IFCONFIG_BINARY, ifconfig, true, false)
218AC_MSG_WARN([warning: 'ifconfig' not found.]) 217AC_MSG_WARN([warning: 'ifconfig' not found.])
219 218
219# miniupnpc / upnpc binary is a soft runtime requirement
220AC_PATH_TARGET_TOOL(VAR_UPNPC_BINARY, upnpc, false)
221
222if test x"$VAR_UPNPC_BINARY" != x"false"
223then
224AC_DEFINE_UNQUOTED([UPNPC], "$VAR_UPNPC_BINARY", [Path to upnpc binary])
225else
226AC_MSG_WARN([warning: 'upnpc' binary not found.])
227fi
228
220AC_CHECK_MEMBER(struct tm.tm_gmtoff, 229AC_CHECK_MEMBER(struct tm.tm_gmtoff,
221 [AC_DEFINE(HAVE_TM_GMTOFF, 1, 230 [AC_DEFINE(HAVE_TM_GMTOFF, 1,
222 [Define if struct tm has the tm_gmtoff member.])], 231 [Define if struct tm has the tm_gmtoff member.])],
@@ -230,6 +239,10 @@ AC_CHECK_DECLS([_stati64])
230# will be more selective! 239# will be more selective!
231SAVE_LIBS=$LIBS 240SAVE_LIBS=$LIBS
232 241
242have_addrinfo_a=0
243AC_CHECK_LIB(anl, getaddrinfo_a, [have_addrinfo_a=1 AC_DEFINE(HAVE_GETADDRINFO_A,1,[getaddrinfo_a supported])])
244AM_CONDITIONAL(HAVE_GETADDRINFO_A, [test "$have_addrinfo_a" = 1])
245
233# tests only run on Windows 246# tests only run on Windows
234if test "x$build_target" = "xmingw" 247if test "x$build_target" = "xmingw"
235then 248then
@@ -409,7 +422,32 @@ fi
409 422
410# check for jansson library 423# check for jansson library
411jansson=0 424jansson=0
412AC_CHECK_HEADER([jansson.h],jansson=1) 425AC_MSG_CHECKING(for libjansson)
426AC_ARG_WITH(jansson,
427 [ --with-jansson=PFX base of libjansson installation],
428 [AC_MSG_RESULT([$with_jansson])
429 case $with_jansson in
430 no)
431 ;;
432 yes)
433 AC_CHECK_HEADERS(jansson.h,
434 AC_CHECK_LIB([jansson], [json_loads],
435 jansson=1))
436 ;;
437 *)
438 LDFLAGS="-L$with_jansson/lib $LDFLAGS"
439 CPPFLAGS="-I$with_jansson/include $CPPFLAGS"
440 AC_CHECK_HEADERS(jansson.h,
441 AC_CHECK_LIB([jansson], [json_loads],
442 EXT_LIB_PATH="-L$with_jansson/lib $EXT_LIB_PATH"
443 jansson=1))
444 ;;
445 esac
446 ],
447 [AC_MSG_RESULT([--with-jansson not specified])
448 AC_CHECK_HEADERS(jansson.h,
449 AC_CHECK_LIB([jansson], [json_loads],
450 jansson=1))])
413AM_CONDITIONAL(HAVE_JANSSON, [test "$jansson" = 1]) 451AM_CONDITIONAL(HAVE_JANSSON, [test "$jansson" = 1])
414if test "x$jansson" = x1 452if test "x$jansson" = x1
415then 453then
@@ -418,6 +456,7 @@ else
418 AC_DEFINE([HAVE_JANSSON],[0],[Lacking jansson library]) 456 AC_DEFINE([HAVE_JANSSON],[0],[Lacking jansson library])
419fi 457fi
420 458
459
421# check for libpulse(audio) library 460# check for libpulse(audio) library
422pulse=0 461pulse=0
423AC_CHECK_LIB(pulse,pa_stream_peek, 462AC_CHECK_LIB(pulse,pa_stream_peek,
@@ -1511,7 +1550,7 @@ AC_LINK_IFELSE(
1511 ],[ 1550 ],[
1512 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available]) 1551 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available])
1513 ],[ 1552 ],[
1514 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],1,[Define this if getaddrinfo() is available]) 1553 AC_DEFINE_UNQUOTED([HAVE_GETADDRINFO],0,[Define this if getaddrinfo() is available])
1515 ]) 1554 ])
1516 1555
1517else 1556else
@@ -1781,6 +1820,10 @@ then
1781 AC_MSG_NOTICE([WARNING: jansson library not found. json support will not be compiled.]) 1820 AC_MSG_NOTICE([WARNING: jansson library not found. json support will not be compiled.])
1782fi 1821fi
1783 1822
1823#
1824# FIXME: `some modules' -> be more specific which exact modules.
1825#
1826
1784# warn user if iptables is not found 1827# warn user if iptables is not found
1785if test "$VAR_IPTABLES_BINARY" = "false" 1828if test "$VAR_IPTABLES_BINARY" = "false"
1786then 1829then
@@ -1793,6 +1836,12 @@ then
1793AC_MSG_NOTICE([WARNING: ifconfig not found. some modules may not have full functionality.]) 1836AC_MSG_NOTICE([WARNING: ifconfig not found. some modules may not have full functionality.])
1794fi 1837fi
1795 1838
1839# warn user if upnpc binary is not found
1840if test "$VAR_UPNPC_BINARY" = "false"
1841then
1842AC_MSG_NOTICE([WARNING: upnpc binary not found. some modules may not have full functionality.])
1843fi
1844
1796#gnutls 1845#gnutls
1797if test x$gnutls != xtrue 1846if test x$gnutls != xtrue
1798then 1847then
diff --git a/contrib/branding/logo/lynXified-amirouche-anonymous-v3.png b/contrib/branding/logo/lynXified-amirouche-anonymous-v3.png
new file mode 100644
index 000000000..52d7b24fd
--- /dev/null
+++ b/contrib/branding/logo/lynXified-amirouche-anonymous-v3.png
Binary files differ
diff --git a/contrib/branding/logo/lynXified-amirouche-v3.svg b/contrib/branding/logo/lynXified-amirouche-v3.svg
new file mode 100644
index 000000000..b8dd1ac67
--- /dev/null
+++ b/contrib/branding/logo/lynXified-amirouche-v3.svg
@@ -0,0 +1,918 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!-- Created with Inkscape (http://www.inkscape.org/) -->
3
4<svg
5 xmlns:dc="http://purl.org/dc/elements/1.1/"
6 xmlns:cc="http://creativecommons.org/ns#"
7 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8 xmlns:svg="http://www.w3.org/2000/svg"
9 xmlns="http://www.w3.org/2000/svg"
10 xmlns:xlink="http://www.w3.org/1999/xlink"
11 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
12 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
13 width="400"
14 height="300"
15 id="svg2"
16 version="1.1"
17 inkscape:version="0.92.2 5c3e80d, 2017-08-06"
18 sodipodi:docname="lynXified-amirouche-v3.svg"
19 inkscape:export-filename="lynXified-amirouche-anonymous-v3.png"
20 inkscape:export-xdpi="192"
21 inkscape:export-ydpi="192">
22 <title
23 id="title3310">Guix System Distribution (Logo)</title>
24 <defs
25 id="defs4">
26 <linearGradient
27 id="gnunet">
28 <stop
29 id="stop9516"
30 offset="0"
31 style="stop-color:#ff0000;stop-opacity:0.58431375;" />
32 <stop
33 id="stop9518"
34 offset="1"
35 style="stop-color:#ffcc00;stop-opacity:1;" />
36 </linearGradient>
37 <inkscape:path-effect
38 effect="vonkoch"
39 id="path-effect8912"
40 is_visible="true"
41 ref_path="m 386.97986,1494.3277 h 79.02013"
42 generator="m 386.97986,1552.8408 h 26.34004 m 26.34005,0 h 26.34004"
43 similar_only="false"
44 nbgenerations="1"
45 drawall="true"
46 maxComplexity="1000" />
47 <linearGradient
48 id="linearGradient4094">
49 <stop
50 id="stop4096"
51 offset="0"
52 style="stop-color:#232323;stop-opacity:1;" />
53 <stop
54 id="stop4098"
55 offset="1"
56 style="stop-color:#4d4d4d;stop-opacity:1;" />
57 </linearGradient>
58 <linearGradient
59 id="linearGradient4014">
60 <stop
61 id="stop4016"
62 offset="0"
63 style="stop-color:#a0a0a0;stop-opacity:1;" />
64 <stop
65 id="stop4018"
66 offset="1"
67 style="stop-color:#ffffff;stop-opacity:1;" />
68 </linearGradient>
69 <linearGradient
70 id="linearGradient4678">
71 <stop
72 id="stop4680"
73 offset="0"
74 style="stop-color:#e5e5e5;stop-opacity:1;" />
75 <stop
76 id="stop4682"
77 offset="1"
78 style="stop-color:#d3cdcd;stop-opacity:1;" />
79 </linearGradient>
80 <linearGradient
81 id="linearGradient4341">
82 <stop
83 style="stop-color:#333333;stop-opacity:1;"
84 offset="0"
85 id="stop4343" />
86 <stop
87 style="stop-color:#484848;stop-opacity:1;"
88 offset="1"
89 id="stop4345" />
90 </linearGradient>
91 <linearGradient
92 id="linearGradient4696-5">
93 <stop
94 style="stop-color:#ffb638;stop-opacity:1;"
95 offset="0"
96 id="stop4698-6" />
97 <stop
98 style="stop-color:#f0ae26;stop-opacity:1;"
99 offset="1"
100 id="stop4700-2" />
101 </linearGradient>
102 <linearGradient
103 id="linearGradient4702-3-6">
104 <stop
105 style="stop-color:#ff0000;stop-opacity:0.58431375;"
106 offset="0"
107 id="stop4704-1" />
108 <stop
109 style="stop-color:#ffcc00;stop-opacity:1;"
110 offset="1"
111 id="stop4706-8" />
112 </linearGradient>
113 <color-profile
114 id="color-profile26"
115 xlink:href="/usr/share/color/icc/ghostscript/ps_cmyk.icc"
116 name="Artifex-PS-CMYK-Profile" />
117 <linearGradient
118 inkscape:collect="always"
119 xlink:href="#linearGradient4702-3-6"
120 id="linearGradient3138"
121 gradientUnits="userSpaceOnUse"
122 gradientTransform="matrix(-0.88803314,0,0,0.88803314,595.57001,1106.9291)"
123 x1="142.96875"
124 y1="63.65625"
125 x2="177.04297"
126 y2="69.791016" />
127 <linearGradient
128 inkscape:collect="always"
129 xlink:href="#linearGradient4696-5"
130 id="linearGradient3141"
131 gradientUnits="userSpaceOnUse"
132 gradientTransform="matrix(-0.49726789,0,0,0.49726789,555.31016,722.70088)"
133 x1="108.08774"
134 y1="1025.709"
135 x2="80.655251"
136 y2="1043.709" />
137 <linearGradient
138 inkscape:collect="always"
139 xlink:href="#linearGradient4702-3-6"
140 id="linearGradient3144"
141 gradientUnits="userSpaceOnUse"
142 gradientTransform="matrix(0.88803314,0,0,0.88803314,415.18739,350.00262)"
143 x1="113.5146"
144 y1="1004.8033"
145 x2="78.000107"
146 y2="922.07178" />
147 <linearGradient
148 inkscape:collect="always"
149 xlink:href="#linearGradient4702-3-6"
150 id="linearGradient3148"
151 gradientUnits="userSpaceOnUse"
152 gradientTransform="matrix(0.88803314,0,0,0.88803314,415.2161,1106.9294)"
153 x1="142.96875"
154 y1="63.65625"
155 x2="176.60477"
156 y2="70.667412" />
157 <linearGradient
158 inkscape:collect="always"
159 xlink:href="#linearGradient4702-3-6"
160 id="linearGradient3780"
161 gradientUnits="userSpaceOnUse"
162 gradientTransform="matrix(0.88803314,0,0,0.88803314,415.2161,1106.9294)"
163 x1="142.96875"
164 y1="63.65625"
165 x2="176.60477"
166 y2="70.667412" />
167 <linearGradient
168 inkscape:collect="always"
169 xlink:href="#linearGradient4702-3-6"
170 id="linearGradient3782"
171 gradientUnits="userSpaceOnUse"
172 gradientTransform="matrix(0.88803314,0,0,0.88803314,415.18739,350.00262)"
173 x1="113.5146"
174 y1="1004.8033"
175 x2="78.000107"
176 y2="922.07178" />
177 <linearGradient
178 inkscape:collect="always"
179 xlink:href="#linearGradient4696-5"
180 id="linearGradient3784"
181 gradientUnits="userSpaceOnUse"
182 gradientTransform="matrix(-0.49726789,0,0,0.49726789,555.31016,722.70088)"
183 x1="108.08774"
184 y1="1025.709"
185 x2="80.655251"
186 y2="1043.709" />
187 <linearGradient
188 inkscape:collect="always"
189 xlink:href="#linearGradient4702-3-6"
190 id="linearGradient3786"
191 gradientUnits="userSpaceOnUse"
192 gradientTransform="matrix(-0.88803314,0,0,0.88803314,595.57001,1106.9291)"
193 x1="142.96875"
194 y1="63.65625"
195 x2="177.04297"
196 y2="69.791016" />
197 <filter
198 style="color-interpolation-filters:sRGB"
199 inkscape:label="Cross Blur"
200 id="filter9204">
201 <feColorMatrix
202 in="SourceGraphic"
203 values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 -0.2125 -0.7154 -0.0721 1 0 "
204 result="colormatrix"
205 id="feColorMatrix9194" />
206 <feComposite
207 in="SourceGraphic"
208 in2="colormatrix"
209 operator="arithmetic"
210 k2="1"
211 k3="0"
212 k4="0"
213 result="composite"
214 id="feComposite9196"
215 k1="0" />
216 <feGaussianBlur
217 stdDeviation="5 0.01"
218 result="blur1"
219 id="feGaussianBlur9198" />
220 <feGaussianBlur
221 in="composite"
222 stdDeviation="0.01 5"
223 result="blur2"
224 id="feGaussianBlur9200" />
225 <feBlend
226 in="blur2"
227 in2="blur1"
228 mode="darken"
229 result="blend"
230 id="feBlend9202" />
231 </filter>
232 <filter
233 style="color-interpolation-filters:sRGB"
234 inkscape:label="Blur"
235 id="filter9330">
236 <feGaussianBlur
237 stdDeviation="2 2"
238 result="blur"
239 id="feGaussianBlur9328" />
240 </filter>
241 </defs>
242 <sodipodi:namedview
243 id="base"
244 pagecolor="#ffffff"
245 bordercolor="#e73520"
246 borderopacity="1"
247 inkscape:pageopacity="0.0"
248 inkscape:pageshadow="2"
249 inkscape:zoom="2"
250 inkscape:cx="185.65271"
251 inkscape:cy="142.71577"
252 inkscape:document-units="px"
253 inkscape:current-layer="g950"
254 showgrid="true"
255 inkscape:window-width="1600"
256 inkscape:window-height="835"
257 inkscape:window-x="0"
258 inkscape:window-y="0"
259 inkscape:window-maximized="1"
260 inkscape:showpageshadow="false"
261 showborder="true"
262 borderlayer="true"
263 inkscape:object-nodes="true"
264 inkscape:snap-global="true"
265 showguides="true"
266 inkscape:guide-bbox="true"
267 objecttolerance="20"
268 inkscape:snap-tangential="true"
269 inkscape:snap-perpendicular="true"
270 inkscape:pagecheckerboard="true"
271 fit-margin-top="10"
272 fit-margin-left="10"
273 fit-margin-right="10"
274 fit-margin-bottom="10"
275 inkscape:snap-path-clip="true"
276 inkscape:snap-path-mask="true">
277 <sodipodi:guide
278 position="-307.43549,820.27825"
279 orientation="1,0"
280 id="guide5092"
281 inkscape:locked="false" />
282 <inkscape:grid
283 type="xygrid"
284 id="grid8783"
285 originx="0"
286 originy="0"
287 spacingx="5"
288 spacingy="5" />
289 <sodipodi:guide
290 position="-280.81043,809.79316"
291 orientation="0,1"
292 id="guide8844"
293 inkscape:locked="false" />
294 <sodipodi:guide
295 position="-297.44255,799.75126"
296 orientation="1,0"
297 id="guide8846"
298 inkscape:locked="false" />
299 <sodipodi:guide
300 position="-286.44639,799.75126"
301 orientation="0,1"
302 id="guide8864"
303 inkscape:locked="false" />
304 <sodipodi:guide
305 position="-227.46698,708.44981"
306 orientation="1,0"
307 id="guide8874"
308 inkscape:locked="false" />
309 <sodipodi:guide
310 position="-217.47047,677.79384"
311 orientation="1,0"
312 id="guide8876"
313 inkscape:locked="false" />
314 <sodipodi:guide
315 position="-219.46978,729.7757"
316 orientation="0,1"
317 id="guide8878"
318 inkscape:locked="false" />
319 <sodipodi:guide
320 position="-158.75928,719.78633"
321 orientation="0,1"
322 id="guide8896"
323 inkscape:locked="false" />
324 <sodipodi:guide
325 position="-147.49491,703.61816"
326 orientation="1,0"
327 id="guide8922"
328 inkscape:locked="false" />
329 <sodipodi:guide
330 position="-213.42311,880.00792"
331 orientation="0,1"
332 id="guide8924"
333 inkscape:locked="false" />
334 <sodipodi:guide
335 position="-357.88081,649.83162"
336 orientation="0,1"
337 id="guide8926"
338 inkscape:locked="false" />
339 <sodipodi:guide
340 position="-137.55348,605.74624"
341 orientation="1,0"
342 id="guide8991"
343 inkscape:locked="false" />
344 <sodipodi:guide
345 position="-231.80147,639.67552"
346 orientation="0,1"
347 id="guide8993"
348 inkscape:locked="false" />
349 <sodipodi:guide
350 position="-285.31397,844.81632"
351 orientation="0,1"
352 id="guide9013"
353 inkscape:locked="false" />
354 <sodipodi:guide
355 position="200,352"
356 orientation="1,0"
357 id="guide5070"
358 inkscape:locked="false" />
359 <sodipodi:guide
360 position="50,215"
361 orientation="1,0"
362 id="guide5335"
363 inkscape:locked="false" />
364 <sodipodi:guide
365 position="350,137"
366 orientation="1,0"
367 id="guide5337"
368 inkscape:locked="false" />
369 <sodipodi:guide
370 position="10,275.5"
371 orientation="1,0"
372 id="guide5354"
373 inkscape:locked="false" />
374 <sodipodi:guide
375 position="203.46998,66.733203"
376 orientation="0,1"
377 id="guide5358"
378 inkscape:locked="false" />
379 </sodipodi:namedview>
380 <metadata
381 id="metadata7">
382 <rdf:RDF>
383 <cc:Work
384 rdf:about="">
385 <dc:format>image/svg+xml</dc:format>
386 <dc:type
387 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
388 <dc:title>Guix System Distribution (Logo)</dc:title>
389 <dc:date>2015-02-07</dc:date>
390 <dc:creator>
391 <cc:Agent>
392 <dc:title>Luis Felipe López Acevedo</dc:title>
393 </cc:Agent>
394 </dc:creator>
395 <dc:rights>
396 <cc:Agent>
397 <dc:title>Luis Felipe López Acevedo</dc:title>
398 </cc:Agent>
399 </dc:rights>
400 <cc:license
401 rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
402 <dc:description />
403 </cc:Work>
404 <cc:License
405 rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
406 <cc:permits
407 rdf:resource="http://creativecommons.org/ns#Reproduction" />
408 <cc:permits
409 rdf:resource="http://creativecommons.org/ns#Distribution" />
410 <cc:requires
411 rdf:resource="http://creativecommons.org/ns#Notice" />
412 <cc:requires
413 rdf:resource="http://creativecommons.org/ns#Attribution" />
414 <cc:permits
415 rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
416 <cc:requires
417 rdf:resource="http://creativecommons.org/ns#ShareAlike" />
418 </cc:License>
419 </rdf:RDF>
420 </metadata>
421 <g
422 inkscape:groupmode="layer"
423 id="layer5"
424 inkscape:label="ramen"
425 sodipodi:insensitive="true">
426 <rect
427 style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.45544064;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
428 id="rect942"
429 width="400"
430 height="300"
431 x="-3.7303494e-14"
432 y="1.7330311e-15" />
433 </g>
434 <g
435 inkscape:groupmode="layer"
436 id="layer4"
437 inkscape:label="bg"
438 style="display:inline"
439 transform="translate(0,-47.278107)"
440 sodipodi:insensitive="true">
441 <rect
442 style="display:inline;opacity:1;vector-effect:none;fill:#421111;fill-opacity:1;stroke:none;stroke-width:1.47144902;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
443 id="rect12062"
444 width="380"
445 height="279.99997"
446 x="10"
447 y="57.278107" />
448 </g>
449 <g
450 inkscape:groupmode="layer"
451 id="layer1"
452 inkscape:label="head"
453 style="display:none;opacity:1"
454 transform="translate(0,-47.278107)"
455 sodipodi:insensitive="true">
456 <g
457 transform="matrix(0.40699717,0,0,0.40699717,31.535627,27.300788)"
458 id="layer1-6"
459 inkscape:label="Layer 1"
460 style="fill:#ff0000">
461 <g
462 transform="translate(126.95974,19.57999)"
463 id="Layer_1"
464 style="fill:#ff0000">
465 <g
466 id="g2490"
467 style="fill:#ff0000">
468 <path
469 style="fill:#ff0000;fill-rule:evenodd"
470 d="m 112.993,304.372 c -3.634,0.247 -8.365,1.875 -11.539,7.564 -2.591,4.646 -8.661,5.387 -11.495,4.451 -4.721,-1.56 -10.755,-2.642 -16.6,1.523 -5.845,4.164 -12.157,1.015 -11.05,-6.576 1.107,-7.59 3.849,-14.351 11.127,-18.538 15.895,-9.144 4.848,-15.508 13.572,-24.685 8.741,-9.195 6.81,-12.009 6.52,-24.497 C 63.985,239.176 47.241,230.661 28.544,207.301 9.847,183.94 2.599,164.711 0.661,135.423 -1.277,106.135 0.403,87.154 13.057,62.843 25.711,38.532 39.034,26.829 62.122,14.69 85.21,2.553 107.832,-0.354 128.742,0 c 20.91,0.353 34.843,1.885 46.658,8.626 11.814,6.741 22.622,15.224 29.512,15.285 6.891,0.061 11.582,-1.744 14.931,-4.31 0.894,22.703 -19.539,24.675 -37.819,25.155 -18.281,0.479 -29.514,-7.083 -46.351,-4.27 -16.837,2.813 -44.404,10.475 -57.833,33.85 -13.429,23.375 -13.887,31.638 -12.771,51.24 1.116,19.603 17.988,34.228 27.512,34.387 9.523,0.159 11.649,-2.599 19.985,-8.036 8.337,-5.438 50.896,-58.122 65.418,-69.956 14.523,-11.834 28.854,-15.488 44.328,-15.678 15.474,-0.19 19.428,0.335 31.908,5.45 12.48,5.114 20.149,14.533 30.211,20.291 5.143,-3.027 8.338,-7.547 13.057,-10.996 16.877,-12.335 25.646,-15.659 45.705,-13.707 11.529,1.122 26.066,7.708 34.74,15.25 15.445,13.429 28.205,32.125 38.516,46.328 8.029,11.061 17.477,24.295 30.965,28.432 14.727,4.515 25.809,-14.559 27.436,-25.139 0.922,-5.995 2.125,-11.249 2.135,-17.847 0.01,-6.599 -0.664,-14.607 -2.566,-21.484 -1.902,-6.877 -5.16,-13.72 -8.688,-19.394 -5.742,-9.235 -15.137,-18.899 -24.912,-23.871 -5.486,-2.79 -18.393,-7.863 -26.529,-8.041 -9.969,-0.216 -17.564,3.133 -26.781,3.761 -11.156,0.761 -31.084,3.269 -39.83,-5.35 -5.566,-5.485 -6.266,-9.144 -7.217,-16.296 2.459,2.026 5.898,3.358 8.959,3.617 6.986,0.59 13.527,-5.114 19.166,-8.419 4.645,-2.723 11.223,-7.589 17.324,-10.048 15.676,-6.32 34.932,-6.138 51.48,-4.445 13.264,1.356 30.461,7.257 42.094,13.84 11.688,6.612 22.951,17.761 31.201,28.271 10.379,13.224 16.053,24.57 19.812,41.063 4.805,21.062 6.137,52.702 0.328,73.469 -4.578,16.365 -19.779,41.504 -32.719,53.827 -12.762,12.155 -27.498,18.022 -44.256,21.231 0.656,3.382 0.764,6.536 1.631,9.309 1.232,3.936 3.588,8.324 8.428,6.936 1.93,-0.553 2.963,-1.032 5.508,1.194 2.543,2.226 1.219,10.825 -5.938,14.684 -3.629,1.957 -7.459,2.382 -13.271,2.498 -5.812,0.116 -14.883,0.141 -21.193,-0.964 -6.309,-1.104 -10.078,-6.111 -17.066,-6.895 -10.799,-1.208 -19.068,-9.01 -27.727,-14.59 -3.613,-2.329 -4.832,-2.353 -6.914,-3.53 1.125,3.444 2.625,7.021 3.373,10.332 0.75,3.311 0.43,6.378 0.828,9.028 0.396,2.648 1.131,4.707 1.559,6.855 1.73,1.547 2.283,3.9 5.189,4.64 2.908,0.739 7.461,-0.412 10.436,-0.812 2.975,-0.4 4.969,-2.021 7.303,-1.577 2.336,0.443 4.549,2.115 6.506,3.682 1.957,1.567 3.639,1.796 5.223,5.706 1.584,3.91 3.037,11.917 3.254,17.269 0.217,5.352 -0.383,10.183 -1.969,14.43 -1.586,4.247 -2.98,6.13 -7.275,10.336 -4.295,4.207 -11.289,10.38 -18.268,14.68 1.285,1.903 1.855,3.645 3.859,5.71 2.004,2.066 6.182,4.381 8.041,6.56 1.857,2.179 2.799,3.742 2.826,6.186 0.029,2.443 -0.09,5.619 -2.074,8.283 -4.941,6.633 -10.785,7.821 -17.891,10.941 1.195,7.462 2.17,12.793 0.443,20.244 -0.705,3.036 -2.271,9.92 -6.016,11.686 -3.746,1.766 -10.969,0.911 -15.541,1.637 -4.572,0.727 -7.131,1.417 -10.695,2.125 -2.166,3.131 -5.391,6.586 -6.496,9.392 -1.107,2.807 -0.773,3.813 0.156,6.679 0.929,2.866 4.092,7.039 4.988,10.395 0.896,3.356 1.07,6.969 0.234,10.334 -0.838,3.365 -2.271,5.807 -5.139,8.795 -2.867,2.989 -8.508,5.336 -11.318,7.758 -2.812,2.423 -5.611,2.714 -4.844,6.723 1.055,5.506 9.1,14.436 14.92,16.562 3.488,1.275 8.17,0.873 12.406,-0.915 -0.287,4.703 -4.357,7.873 -7.016,10.996 7.201,-2.059 14.184,-6.001 19.014,-11.226 -1.498,4.538 -6.652,11.823 -14.361,18.22 -7.709,6.397 -7.662,5.088 -11.494,7.633 6.992,1.405 13.494,1.025 18.91,0.052 -2.969,1.637 -7.836,3.939 -14.283,4.616 -6.447,0.676 -10.422,0.198 -16.232,-1.213 -5.811,-1.412 -11.115,-6.694 -18.156,-10.335 0.686,2.612 1.174,5.753 4.135,8.439 2.961,2.686 7.441,4.052 12.203,6.375 -6.062,-0.688 -12.432,-0.896 -18.389,-2.209 -4.41,-0.973 -7.373,-2.005 -10.6,-3.603 -3.225,-1.598 -5.715,-3.929 -8.572,-5.893 1.369,2.615 1.775,5.691 4.105,7.847 2.33,2.156 6.117,2.959 9.18,4.44 -3.195,-0.07 -6.268,0.623 -9.58,-0.21 -3.314,-0.833 -6.422,-2.142 -9.867,-4.68 -3.445,-2.538 -6.998,-5.663 -9.938,-8.858 -2.938,-3.195 -6.566,-7.337 -7.664,-10.283 -1.1,-2.947 0.66,-5.008 0.99,-7.509 -2.029,1.333 -4.525,2.067 -6.084,4.002 -1.559,1.935 -2.941,3.702 -2.251,7.075 0.691,3.373 3.804,7.496 6.005,11.248 -6.568,-5.371 -10.236,-7.439 -11.799,-13.918 -1.463,-6.066 2.322,-11.572 5.199,-16.159 1.429,-2.278 3.567,-4.398 4.903,-6.597 -2.967,-2.903 -6.358,-5.398 -8.901,-8.709 -2.542,-3.31 -3.61,-7.79 -6.205,-10.957 -2.596,-3.168 -6.088,-5.173 -9.129,-7.756 2.673,5.742 7.066,12.785 8.02,17.229 0.953,4.444 -1.069,7.164 -2.646,9.563 -1.578,2.399 -4.124,2.934 -6.539,4.408 -2.415,1.475 -6.171,0.312 -7.61,2.501 -1.438,2.188 -1.824,5.48 -0.449,7.648 l 5.64,8.902 c -2.078,-1.049 -5.658,-4.1 -7.272,-6.264 -1.614,-2.164 -4.09,-4.163 -4.429,-7.089 -0.339,-2.925 -0.504,-5.464 1.391,-8.07 1.896,-2.605 7.086,-3.477 9.409,-5.48 2.323,-2.003 3.626,-3.307 3.493,-5.896 -0.132,-2.589 -2.661,-4.441 -4.835,-6.073 -6.637,-4.978 -15.151,-9.565 -20.787,-15.565 -3.184,-3.39 -4.712,-6.127 -5.352,-8.466 -0.639,-2.338 0.037,-4.162 1.619,-7.038 1.582,-2.877 7.007,-6.718 7.667,-9.843 0.659,-3.124 -2.081,-3.795 -4.554,-4.897 -2.473,-1.102 -7.17,0.565 -9.464,-1.352 -2.293,-1.917 0.674,-5.945 -1.911,-8.154 -2.584,-2.209 -8.499,-0.976 -11.552,-3.352 -3.053,-2.377 -4.315,-5.327 -5.367,-8.775 -1.052,-3.448 -1.171,-7.225 -0.458,-9.722 0.713,-2.497 2.855,-2.934 4.147,-4.228 1.292,-1.294 2.413,-2.367 0.691,-4.297 -1.722,-1.929 -7.365,0.108 -10.609,-2.369 -3.244,-2.477 -1.258,-8.41 -3.552,-10.911 -2.293,-2.501 -6.409,-1.522 -8.581,-2.321 -2.171,-0.799 -3.023,2.02 -4.355,-2.438 -1.332,-4.459 -1.368,-17.75 -3.16,-22.71 -1.792,-4.96 -5.311,-0.335 -6.945,-5.265 -1.634,-4.929 -0.085,-12.812 -0.821,-20.257 l -3.335,-20.257 c -11.634,7.815 -19.314,10.269 -31.813,12.477 -1.043,30.582 -3.916,48.591 6.464,82.52 10.38,33.928 31.387,53.924 59.726,82.649 -37.395,-28.016 -55.248,-50.792 -66.422,-79.97 -11.176,-29.182 -9.03,-53.586 -7.906,-81.686 z M 311.701,292.08 c 2.877,0.129 6.373,0.859 8.393,2.171 2.021,1.312 4.166,2.384 6,4.251 4.576,4.66 8.008,10.28 9.525,16.738 0.967,4.117 1.111,9.397 1.463,14.231 -1.385,-4.468 -2.316,-9.127 -4.289,-13.13 -3.111,-6.312 -8.396,-12.473 -14.959,-15.31 -2.166,-0.938 -3.611,-0.764 -4.803,-0.598 0.533,0.895 1.426,1.645 1.465,2.956 0.039,1.311 -0.254,3.876 -2.477,4.954 -3.584,1.739 -7.568,0.516 -10.336,-1.931 -2.791,-2.466 -3.742,-6.638 -2.281,-10.223 1.741,-4.272 8.375,-4.283 12.299,-4.109 z M 275.629,286 c 0.361,-7.345 3.012,-13.539 9.594,-17.141 3.404,-1.862 8.648,-4.27 13.467,-4.836 4.629,-0.543 15.889,-0.146 22.662,2.945 5.201,2.374 8.744,6.07 13.311,8.771 4.566,2.702 7.814,4.513 12.162,7.543 6.674,4.651 10.586,9.772 15.213,12.842 2.225,1.475 5.355,1.256 8.309,2.158 -2.297,0.682 -5.299,1.434 -7.777,0.642 -3.09,-0.988 -7.41,-3.813 -9.807,-5.838 -4.236,-3.578 -6.432,-5.324 -11.055,-8.023 -2.76,-1.608 -7.305,-3.503 -10.338,-5.481 -3.035,-1.978 -8.303,-6.318 -11.219,-7.787 -3.707,-1.866 -10.381,-2.904 -14.508,-2.783 -5.686,0.166 -13.916,1.104 -18.316,5.096 -4.371,3.968 -6.031,7.459 -5.045,12.612 1.646,-1.896 2.742,-4.278 4.391,-5.688 3.416,-2.918 7.336,-3.059 11.588,-2.506 4.777,0.622 7.182,3.381 8.76,7.916 -1.062,-0.78 -3.014,-2.493 -4.555,-3.024 -3.617,-1.248 -6.352,-0.864 -9.74,0.953 -4,2.146 -2.912,5.322 -3.488,8.854 -0.264,1.629 -0.879,2.941 -1.318,4.412 -1.504,-0.398 -2.895,-1.024 -4.033,-2.152 0.047,1.65 -0.193,3.093 0.145,4.949 0.336,1.855 1.24,4.059 1.859,6.088 -2.785,-2.786 -5.635,-5.38 -7.434,-8.977 -1.801,-3.599 -3.021,-7.593 -2.828,-11.545 z m 4.82,-53.46 c 2.053,-3.047 2.654,-7.721 3.92,-11.521 -0.506,4.813 0.467,10.106 -1.883,13.592 -2.35,3.486 -6.477,2.875 -9.896,3.889 2.66,-2.028 5.805,-2.913 7.859,-5.96 z m -49.151,71.368 c 2.636,-2.134 9.75,-0.428 15.071,-0.047 -3.824,0.979 -7.648,1.959 -11.472,2.938 -0.356,1.301 -0.195,2.792 -1.068,3.901 -0.874,1.11 -2.534,1.521 -3.8,2.28 0.125,-3.418 -1.367,-6.939 1.269,-9.072 z m 37.491,-148.22 c 3.176,1.71 7.207,3.971 10.012,4.041 2.805,0.07 3.539,-1.834 5.189,-2.933 2.596,8.465 5.576,17.766 9.996,25.447 1.852,3.218 3.033,1.722 4.441,4.956 1.406,3.233 2.031,9.812 3.365,13.943 1.336,4.131 3.078,7.171 4.617,10.756 -3.908,-5.537 -8.957,-12.597 -11.135,-17.205 -2.176,-4.607 -0.783,-5.008 -2.545,-9.396 -1.762,-4.388 -5.324,-11.228 -7.986,-16.842 -1.906,0.253 -4.266,0.6 -5.715,0.153 -1.449,-0.447 -1.16,-1.988 -2.469,-2.984 -1.311,-0.996 -3.514,-0.61 -5.35,-2.2 -1.836,-1.589 -2.254,-4.85 -2.42,-7.736 z m -17.101,41.769 c 2.989,-0.262 6.701,0.539 9.5,0.38 2.799,-0.159 4.797,-0.885 7.196,-1.328 -0.445,-4.216 -0.023,-11.962 -3.915,-14.777 -2.514,-1.818 -12.839,-0.449 -15.597,0.146 -6.206,1.338 -13.433,5.042 -19.435,7.358 5.752,-4.018 10.721,-7.742 17.62,-9.816 4.147,-1.247 13.825,-2.868 18.105,-1.712 1.954,0.527 2.349,1.336 3.534,2.992 4.074,5.688 4.062,10.604 5.119,17.23 1.039,1.619 2.146,2.699 2.988,4.369 0.84,1.67 1.316,4.298 1.551,6.446 -1.066,-1.546 -0.414,-3.485 -3.367,-4.636 -2.955,-1.151 -7.479,-0.076 -11.46,0.34 2.902,2.094 4.344,4.111 4.455,8.538 0.13,5.198 -4.271,8.939 -8.866,9.295 -6.379,0.495 -9.668,-0.906 -12.248,-6.358 -1.13,-2.388 -0.311,-5.261 -0.405,-7.589 -7.665,0.533 -7.54,0.283 -13.142,4.954 3.045,4.461 4.963,7.026 9.995,9.695 2.822,1.498 6.017,2.954 9.514,3.549 3.498,0.595 9.235,1.17 12.909,0.606 3.675,-0.564 5.757,-1.613 8.481,-4.132 2.725,-2.52 2.975,-6.128 4.039,-8.98 -0.242,2.745 -0.557,6.241 -1.576,8.232 -3.1,6.053 -8.461,7.847 -14.862,7.867 -6.144,0.02 -13.744,-1.397 -19.46,-3.767 -4.57,-1.894 -12.146,-7.258 -13.944,-11.918 -1.229,-3.184 -0.256,-7.091 -0.385,-10.637 6.328,-4.208 7.894,-3.173 15.381,-4.405 3.132,-0.516 5.286,-1.679 8.275,-1.942 z m -36.861,-28.501 c 0.178,-2.521 0.457,-2.467 0.686,-3.701 -5.765,-1.542 -8.077,2.198 -11.457,9.144 -1.265,2.599 -0.013,4.146 -1.37,5.857 -1.355,1.711 -3.539,1.471 -5.74,3.114 -2.201,1.642 -4.382,4.787 -6.44,6.488 -4.223,3.491 -9.931,5.622 -14.829,7.971 3.345,-2.468 9.836,-6.211 11.936,-9.797 1.114,-1.901 0.949,-5.486 2.683,-7.195 1.733,-1.71 2.34,-2.893 4.578,-3.329 2.238,-0.436 1.338,-3.03 2.06,-5.092 0.722,-2.062 2.16,-3.526 3.69,-5.586 1.53,-2.06 3.46,-5.153 6.481,-6.276 3.021,-1.124 7.732,0.091 10.019,-0.556 2.286,-0.647 0.973,-2.309 2.634,-3.307 1.663,-0.998 4.896,-0.558 7.117,-1.625 3.937,-1.893 5.82,-5.053 8.188,-8.436 0.344,7.282 0.26,12.525 -2.357,19.376 -2.947,7.711 -5.934,12.253 -14.298,16.995 -2.882,1.633 -5.75,2.2 -8.139,3.057 1.393,-1.9 3.387,-2.725 4.18,-5.7 0.791,-2.977 0.2,-8.88 0.378,-11.402 z m 135.038,35.507 c -3.977,0.259 -4.92,-0.264 -8.102,1.98 1.725,2.684 3.449,5.368 5.172,8.052 -0.152,-5.298 0.364,-6.36 2.93,-10.032 z m -10.42,-3.85 c 5.508,-2.346 10.307,-4.244 16.299,-4.619 2.402,-0.151 6.131,0.221 8.557,0.331 2.066,-3.042 4.699,-5.441 5.664,-8.913 0.639,-2.303 0.324,-12.992 -0.807,-15.767 -3.295,-8.076 -6.498,-8.417 -11.033,-13.043 -3.291,-3.355 -3.422,-8.464 -4.406,-14.189 -0.361,-2.103 -1.393,-4.764 -1.877,-6.934 -5.928,-0.999 -12.303,-1.328 -19.123,-0.987 3.307,-3.172 6.504,-6.07 7.453,-10.832 0.947,-4.762 0.176,-10.617 -2.531,-14.887 -2.707,-4.27 -7.031,-7.99 -11,-11.469 -3.971,-3.479 -9.662,-6.351 -13.424,-9.197 4.893,-1.752 9.889,-4.326 14.682,-5.255 12.486,-2.422 23.244,1.282 35.287,8.563 7.002,4.235 12.793,8.258 20.113,15.921 7.318,7.662 16.395,21.717 23.48,30.052 7.085,8.335 12.805,14.927 18.986,19.898 6.182,4.972 11.777,6.388 17.664,9.581 l 9.176,9.744 7.426,-9.189 11.949,1.351 2.469,-13.412 10.967,-3.005 -1.789,-18.08 7.885,-5.596 -5.926,-11.249 6.021,-12.292 -7.85,-14.051 3.027,-13.529 -9.088,-7.745 -1.186,-14.377 -12.678,-4.836 -5.086,-12.508 -14.254,-0.16 -6.992,-9.285 -9.596,0.672 -10.697,-1.165 -6.049,-4.466 -8.779,5.828 -10.623,-5.539 -21.117,8.017 13.766,-11.972 14.262,-2.278 10.926,-2.785 14.756,4.846 12.988,-3.29 12.523,7.403 13.252,-0.733 6.51,11.681 13.195,1.523 7.139,12.987 8.299,4.531 2.203,16.637 7.391,7.01 -3.25,14.557 8.707,11.024 -8.164,11.812 8.73,7.383 -11.16,9.891 11.303,11.771 -13.65,4.402 8.891,12.625 -11.15,1.924 7.312,13.882 -12.566,-0.167 6.33,10.398 -13.783,-1.659 3.297,14.959 -10.416,-9.163 -3.568,18.13 -7.188,-13.018 -3.893,16.237 -8.873,-11.973 0.242,17.026 -9.807,-15.309 c 2.068,8.686 1.654,18.197 7.359,26.386 17.676,-2.392 29.229,-6.846 42.771,-19.877 12.334,-11.868 27.076,-36.613 31.068,-52.308 4.555,-17.91 4.695,-50.85 0.209,-69.084 C 522.282,71.848 516.67,63.462 506.643,49.136 497.059,38.957 487.633,28.204 475.469,20.945 457.613,10.29 434.717,7.417 414.367,7.694 c -11.268,0.154 -18.816,2.318 -25.553,4.768 -11.781,4.284 -21.203,13.629 -33.18,18.247 -3.906,1.505 -7.037,1.552 -10.113,-0.091 3.012,6.026 6.289,8.729 13.801,10.922 5.434,1.586 18.4,0.583 27.326,-0.241 9.582,-0.885 14.58,-3.734 27.621,-3.555 12.736,0.175 22.828,5.013 28.346,8.168 11.385,6.51 19.549,13.732 26.643,25.172 3.896,6.282 6.625,13.37 8.547,20.603 1.922,7.233 2.764,15.334 2.887,22.415 0.123,7.081 -0.418,13.402 -2.15,19.774 -4.051,14.918 -12.988,30.098 -31.346,27.753 -11.234,-1.436 -28.17,-22.522 -33.842,-30.258 C 401.909,115.758 390.133,98.481 375.752,85.479 366.984,77.554 354.979,72.1 343.19,71.021 c -22.117,-2.024 -28.676,2.177 -45.324,15.899 3.387,1.08 6.693,1.676 10.164,3.24 7.703,3.471 14.748,7.957 20.893,13.711 6.439,6.031 9.328,9.848 9.557,18.484 0.152,5.735 -4.566,10.333 -8.891,14.469 -2.646,2.533 -6.148,4.852 -8.291,6.818 -2.84,2.609 -6.357,5.463 -2.789,9.619 1.342,1.562 3.672,2.74 5.637,4.199 3.119,2.315 1.691,10.919 -2.418,13.201 -5.258,2.917 -11.541,2.591 -15.877,-1.314 5.473,-0.819 8.949,-1.545 8.807,-6.022 -0.082,-2.595 -3.381,-4.751 -6.619,-6.227 -7.809,-3.56 -13.707,-3.035 -21.479,-8.627 -7.85,-5.651 -8.023,-8.745 -10.145,-17.617 -3.785,0.396 -7.27,0.483 -12.331,2.159 -5.061,1.675 -10.654,5.663 -15.249,6.65 -11.572,2.49 -13.878,1.752 -20.211,0.113 -11.15,-2.886 -25.668,2.055 -40.09,6.668 -2.398,0.767 -12.097,0.026 -18.626,2.317 -10.084,3.538 -24.233,12.106 -32.405,18.988 -12.382,10.429 -28.654,41.64 -37.848,77.464 -0.966,10.89 2.131,18.227 -4.729,23.546 -6.86,5.319 -6.67,18.946 -8.996,22.768 -2.326,3.821 -5.019,2.132 -10.026,7.499 -5.007,5.367 -7.556,4.47 -7.43,14.618 4.315,-2.837 10.606,-6.135 16.13,-6.334 4.892,-0.177 4.944,6.264 17.5,-6.149 6.715,-6.641 19.616,-6.844 28.567,-9.773 8.952,-2.929 25.083,-8.965 41.239,-27.027 16.156,-18.062 23.887,-37.077 27.02,-64.567 0.499,4.874 1.365,10.371 -0.722,23.816 -2.087,13.445 -6.585,28.546 2.891,46.634 l 5.904,11.269 c -3.515,-4.797 -10.381,-12.622 -12.448,-18.198 l -4.768,-12.863 c -10.667,16.748 -13.119,19.744 -27.937,31.743 -0.59,7.444 -0.735,15.208 1.698,22.331 2.433,7.122 -1.445,15.332 0.406,20.023 1.851,4.691 6.132,2.021 7.53,6.77 1.398,4.749 -0.73,14.138 1.438,18.767 2.168,4.629 7.487,1.82 10.065,3.315 2.578,1.496 3.421,3.546 4.8,5.513 1.378,1.966 -0.539,6.614 2.265,8.123 2.803,1.51 7.176,0.231 10.093,1.68 2.917,1.449 3.36,4.932 2.661,8.053 -0.7,3.121 -3.817,4.553 -5.186,7.726 -1.368,3.174 -1.215,5.383 0.429,8.297 1.644,2.915 5.284,4.52 8.912,5.991 3.628,1.471 8.726,0.645 12.47,2.679 3.744,2.034 7.109,6.087 9.086,9.033 1.977,2.945 2.526,5.023 2.425,8.12 -0.102,3.096 -1.358,6.663 -3.011,9.654 -1.653,2.991 -5.3,6.631 0.394,12.343 5.694,5.711 5.484,3.249 8.746,6.954 -0.355,-6.409 -3.003,-11.63 -1.067,-16.455 1.937,-4.825 7.752,-5.664 10.817,-7.834 3.065,-2.171 4.83,-5.153 7.246,-7.729 -0.035,3.315 0.32,6.879 -0.057,9.375 -0.768,5.075 -2.266,9.58 5.297,10.394 3.407,0.366 6.642,-1.843 10.227,-3.169 -1.878,3.363 -5.144,6.067 -5.635,10.092 -0.491,4.023 0.099,8.443 2.885,12.436 2.787,3.991 7.599,6.955 11.125,9.301 3.525,2.347 5.414,2.535 8.123,3.804 0.133,3.956 -0.646,8.143 -0.195,11.869 0.451,3.726 1.625,7.024 3.779,10.104 2.156,3.081 5.613,4.848 8.869,7.126 -1.785,-4.157 -5.406,-8.101 -5.357,-12.471 0.049,-4.369 1.359,-7.466 5.621,-11.343 4.262,-3.878 14.24,-7.241 18.945,-11.011 4.705,-3.771 6.223,-6.081 7.912,-9.742 1.689,-3.661 1.219,-9.559 1.531,-12.85 1.549,4.61 1.77,6.043 2.273,10.866 0.506,4.824 -2.811,11.59 -4.215,15.161 5.82,-2.811 9.514,-7.304 11.379,-11.695 1.248,0.74 0.619,2.769 1.078,6.679 2.074,-2.064 4.432,-3.652 6.52,-5.6 2.09,-1.946 4.379,-3.658 5.416,-6.375 1.035,-2.717 0.611,-5.606 -0.16,-8.763 -0.771,-3.157 -4.299,-6.818 -6.199,-10.271 -1.898,-3.452 0.336,-6.841 0.207,-11.001 -3.801,-0.653 -7.029,-2.589 -11.398,-1.96 -4.371,0.628 -9.377,5.533 -13.844,5.59 -4.467,0.057 -6.975,-4.128 -10.637,-5.278 -3.662,-1.15 -7.367,-1.024 -11.049,-1.536 4.664,-4.468 22.766,-6.596 35.148,-8.615 10.895,-1.777 21.707,-2.804 32.746,-2.959 4.93,-0.07 11.266,1.558 14.689,0.574 3.426,-0.982 2.695,-3.315 3.711,-5.858 2.842,-7.108 1.441,-13.438 -0.105,-20.596 -9.91,-1.162 -20.236,-2.584 -30.221,-1.817 -9.762,0.75 -21.322,5.391 -31.391,5.705 -8.754,0.272 -21.717,-1.677 -29.234,-6.259 -9.186,-5.599 -16.293,-17.624 -18.816,-21.485 -4.109,-6.289 -9.292,-18.627 -12.446,-24.268 -3.152,-5.641 -3.847,-7.219 -6.47,-9.574 -2.623,-2.354 -6.216,-2.536 -9.323,-3.805 3.582,0.366 7.493,-0.768 10.747,1.098 4.889,2.805 10.361,14.431 13.403,19.49 3.223,-10.804 2.471,-15.052 11.797,-21.144 -7.516,8.424 -7.703,14.805 -9.535,24.723 6.25,10.258 14.939,26.598 26.309,31.132 4.107,1.639 11.16,2.667 15.6,3.216 13.818,1.711 27.146,-2.668 40.717,-6.019 9.92,-2.45 19.986,-1.463 32.051,-0.754 4.096,0.24 13.754,-2.224 15.754,-6.367 1.08,-2.235 1,-4.921 -0.551,-7.303 -1.553,-2.382 -5.689,-3.534 -7.906,-5.678 -2.217,-2.144 -3.492,-4.689 -5.238,-7.034 -9.215,1.768 -16.795,2.447 -23.635,2.633 4.906,-2.021 9.613,-3.174 14.719,-5.171 5.106,-1.997 10.904,-5.275 15.025,-7.995 4.121,-2.721 6.752,-4.299 9.734,-7.465 2.98,-3.168 6.803,-6.431 9,-10.303 2.199,-3.872 2.539,-8.203 2.662,-12.995 0.123,-4.791 -0.084,-11.514 -1.932,-15.374 -1.846,-3.859 -5.406,-5.03 -8.266,-5.943 -2.861,-0.913 -4.82,1.396 -7.795,1.708 -2.977,0.312 -5.758,2.188 -10.062,0.164 -4.304,-2.024 -9.406,-6.144 -13.758,-12.259 -4.35,-6.116 -7.461,-16.112 -11.896,-23.802 -7.645,-13.256 -17.172,-25.639 -26.283,-37.922 -0.75,-3.029 -1.877,-7.215 -2.252,-11.324 -0.654,-7.16 -0.777,-14.598 1.445,-21.578 1.703,-5.347 4.18,-10.995 9.779,-13.188 2.24,-0.878 5.074,-1.226 7.076,-0.484 2.004,0.741 3.969,3.002 3.182,5.614 -0.865,2.872 -2.855,2.95 -4.207,4.4 -2.295,2.46 -3.213,4.265 -4.08,7.332 2.48,-0.04 5.832,-0.229 7.869,0.307 2.658,0.7 5.133,2.462 6.482,6.228 -3.172,-2.813 -4.748,-4.104 -8.707,-4.204 -1.814,-0.045 -4.018,0.604 -6.025,0.906 -0.75,2.44 -1.191,5.432 -2.25,7.32 -1.059,1.888 -3.121,1.435 -3.895,3.641 -0.774,2.202 -0.819,5.788 -0.429,8.683 z m 27.715,-3.307 c 1.215,0.479 1.678,0.584 3.217,1.755 1.539,1.171 3.662,2.34 4.881,5.138 1.221,2.799 1.164,7.127 0.904,8.89 -1.07,-0.314 -2.529,-0.102 -3.639,-1.051 -1.107,-0.949 -1.768,-3.098 -3.188,-4.018 -1.422,-0.919 -2.607,-0.718 -4.178,-0.917 0.807,2.296 1.199,4.593 0.824,6.675 -0.814,4.545 -3.486,6.847 -7.812,7.391 -1.889,0.237 -4.889,-0.385 -6.533,-0.684 0.762,1.702 2.053,3.193 2.816,4.895 3.658,-0.529 6.369,-0.454 8.336,-1.374 1.967,-0.92 4.076,-2.981 6.6,-3.854 2.525,-0.873 4.777,-0.859 7.539,-1.29 -2.176,1.875 -3.604,3.751 -5.777,5.626 1.594,4.633 3.188,9.265 4.781,13.897 3.379,2.114 6.549,3.228 10.807,5.838 4.26,2.611 9.367,7.281 14.914,9.828 5.547,2.547 8.85,3.933 14.646,5.026 5.795,1.093 10.406,5.787 16.109,6.55 5.703,0.763 16.355,0.917 20.75,0.488 4.99,-0.487 11.473,-3.062 12.055,-8.533 -4.184,1.032 -10.574,0.106 -13.801,-7.767 -1.432,-3.496 -0.73,-9.925 -2.922,-14.059 -2.191,-4.135 -5.246,-5.462 -8.896,-10.556 -3.65,-5.094 -9.621,-13.129 -12.973,-19.954 -3.35,-6.824 -4.139,-14.554 -6.973,-20.669 -2.834,-6.114 -7.109,-11.053 -10.422,-15.766 -7.234,-10.3 -13.068,-17.339 -24.986,-22.535 -5.732,-2.499 -12.258,-3.165 -18.387,-4.748 -2.494,1.117 -5.914,2.351 -6.521,5.268 -0.607,2.917 0.559,7.225 2.676,9.415 3.543,3.661 8.793,7.618 10.857,13.437 1.326,3.734 1.711,16.252 0.562,19.649 -1.192,3.527 -3.963,5.66 -6.266,8.009 z m 1.154,29.629 c -1.107,0.955 -1.951,1.936 -3.732,2.729 -1.779,0.793 -4.209,0.998 -6.57,1.588 3.311,5.154 6.789,10.362 9.961,15.781 3.174,5.418 5.924,11.351 8.953,17.025 -0.143,-3.252 0.049,-6.719 -0.424,-9.758 -0.473,-3.038 -1.85,-5.697 -3.215,-10.258 -1.363,-4.561 -3.041,-10.766 -4.973,-17.107 z M 279.229,113.611 c -0.467,5.07 0.391,12.996 1.441,17.96 1.258,5.942 2.469,9.023 7.291,12.603 8.83,6.555 14.467,5.45 21.26,9.251 3.232,1.809 7.328,4.841 8.523,8.046 1.195,3.205 -0.789,6.685 -3.24,8.053 4.287,0.638 9.094,-4.195 7.088,-9.157 -0.988,-2.442 -5.691,-3.53 -7.133,-5.994 -1.439,-2.463 -1.436,-4.999 -0.758,-7.501 1.225,-4.51 10.148,-8.608 13.301,-12.173 4.852,-5.486 6.715,-10.075 3.967,-17.14 -3.859,-9.925 -18.768,-17.889 -27.691,-21.784 -4.086,-1.783 -6.377,-1.91 -9.564,-2.865 6.525,3.824 13.404,6.87 16.705,15.418 2.756,7.139 0.369,9.829 0.461,16.045 0.043,2.882 3.838,4.323 5.523,6.144 1.467,1.583 1.348,2.758 0.176,4.943 -0.129,-1.971 -0.971,-3.442 -2.484,-4.513 -2.498,-1.771 -5.189,-1.39 -6.52,-5.021 -2.02,-5.52 1.986,-10.748 -2.518,-16.946 -3.369,-4.637 -7.85,-9.827 -13.895,-9.963 -2.861,-0.065 -5.012,0.367 -8.068,1.271 l -4.074,-4.903 -0.094,-0.064 C 270.639,87.758 264.969,81.525 253.344,76.327 241.719,71.13 235.99,70.343 222.661,70.639 c -13.329,0.295 -26.557,1.41 -41.995,14.723 -15.437,13.313 -55.224,64.292 -64.873,70.744 -9.648,6.452 -11.785,8.638 -23.841,8.641 C 79.896,164.75 61.08,147.697 60.343,126.385 59.605,105.072 59.309,97.497 74.124,71.822 88.94,46.146 115.78,38.262 135.694,35.6 c 19.915,-2.662 31.882,4.352 46.613,4.385 14.73,0.034 29.288,-2.509 33.581,-14.224 -2.101,1.251 -4.916,2.661 -12.832,2.246 C 195.14,27.592 184.164,18.427 171.817,12.286 159.47,6.146 145.73,5.427 128.107,5.094 110.484,4.761 88.494,6.108 66.708,17.869 44.922,29.63 30.051,42.109 17.415,65.127 4.779,88.146 2.891,106.94 4.928,134.811 c 2.037,27.871 10.633,48.599 27.184,68.998 16.551,20.399 33.092,30.38 62.918,34.091 l 6.279,-27.696 -11.209,16.086 0.277,-17.891 -10.139,12.581 -4.447,-17.062 -8.214,13.679 -4.08,-19.05 -11.903,9.627 3.768,-15.719 -15.75,1.743 7.235,-10.926 -14.361,0.175 L 40.842,168.86 28.1,166.837 38.26,153.57 22.66,148.945 35.576,136.577 22.823,126.184 32.798,118.426 23.47,106.014 33.42,94.431 29.706,79.135 38.155,71.77 40.67,54.289 50.152,49.527 58.31,35.881 73.389,34.28 l 7.44,-12.274 15.145,0.771 14.312,-7.779 14.843,3.457 16.86,-5.092 12.487,2.926 16.296,2.395 15.733,12.58 -24.133,-8.424 -12.14,5.821 -10.035,-6.125 -6.909,4.693 -12.225,1.224 -10.963,-0.708 -7.992,9.756 -16.291,0.168 -5.811,13.143 -14.486,5.082 -1.355,15.107 -10.388,8.138 3.461,14.216 -8.971,14.765 6.882,12.915 -6.773,11.82 9.011,5.88 -2.044,18.998 12.532,3.158 2.823,14.093 13.656,-1.419 8.484,9.656 10.486,-10.239 c 19.116,-9.532 26.988,-14.864 41.886,-30.977 16.959,-18.343 26.679,-35.302 49.269,-47.861 16.202,-9.008 29.417,-12.25 47.617,-9.105 17.088,2.952 22.81,13.202 35.395,24 1.334,-2.415 1.605,-3.055 3.803,-4.833 -0.69,3.136 -1.786,6.389 -2.065,9.405 z"
471 id="path2492"
472 inkscape:connector-curvature="0" />
473 </g>
474 </g>
475 </g>
476 </g>
477 <g
478 inkscape:label="gnu:net grunge"
479 id="g12308"
480 inkscape:groupmode="layer"
481 style="display:none"
482 transform="translate(-387.41463,-589.81931)">
483 <text
484 xml:space="preserve"
485 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.53852463px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03365779px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
486 x="478.95114"
487 y="859.00549"
488 id="text12220"><tspan
489 sodipodi:role="line"
490 id="tspan12218"
491 x="478.95114"
492 y="859.00549"
493 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:36px;font-family:ReservoirGrunge;-inkscape-font-specification:ReservoirGrunge;fill:#ffffff;stroke-width:1.03365779px"
494 dx="0 2.5 2.5 0 -4 2.5 2.5">gnu net</tspan></text>
495 </g>
496 <g
497 transform="translate(-387.41463,-589.81931)"
498 style="display:none"
499 inkscape:groupmode="layer"
500 id="g5346"
501 inkscape:label="gnu:net ubuntu">
502 <text
503 id="text5344"
504 y="859.96057"
505 x="493.95291"
506 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.53852463px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03365779px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
507 xml:space="preserve"><tspan
508 dx="0 0 0"
509 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:49.33333206px;font-family:'Ubuntu Bold';-inkscape-font-specification:'Ubuntu Bold, ';fill:#ffffff;stroke-width:1.03365779px"
510 y="859.96057"
511 x="493.95291"
512 id="tspan5342"
513 sodipodi:role="line">gnu net</tspan></text>
514 </g>
515 <g
516 inkscape:label="gnu:net anonymous"
517 id="g950"
518 inkscape:groupmode="layer"
519 style="display:inline"
520 transform="translate(-387.41463,-589.81931)">
521 <text
522 xml:space="preserve"
523 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16.53852463px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.03365779px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
524 x="507.95291"
525 y="858.71057"
526 id="text948"><tspan
527 sodipodi:role="line"
528 id="tspan946"
529 x="507.95291"
530 y="858.71057"
531 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:50.66666794px;font-family:'Anonymous Pro';-inkscape-font-specification:'Anonymous Pro Bold';fill:#ffffff;stroke-width:1.03365779px"
532 dx="0 -2.5 -3 0 -19.25 -2.5 -3">gnu net</tspan></text>
533 </g>
534 <g
535 inkscape:groupmode="layer"
536 id="layer3"
537 inkscape:label="vertices 2"
538 style="display:inline"
539 transform="translate(0,-47.278107)"
540 sodipodi:insensitive="true">
541 <path
542 style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
543 d="m 51.98603,94.74526 63.6227,34.91188 23.31802,-11.09978 -35.03955,28.74946 11.86161,-17.77468 -53.18435,-5.79678 40.95076,23.69646 25.32406,0.49689 24.19305,3.02495 v 48.02104 l 21.04995,-32.14943 -20.559,-15.87161 32.52749,48.02104 -8.06937,31.38386 -24.94907,-31.76198 24.94907,77.51429 22.25436,-36.69889 21.97354,37.07701 -43.59987,-0.37188 41.32877,-28.87448 22.05899,-21.17152 -19.90986,50.171 -3.71591,-29.60613 -8.57843,-31.7682 -9.69437,24.71516 54.37611,-52.19866 -24.96716,8.94671 -18.39175,19.15282 18.27579,-55.07718 25.20812,27.362 20.66591,-41.35238 -46.00204,14.12783 22.94304,-37.07431 23.05297,23.0777 31.8814,-26.48075 40.07874,-25.58708 -15.26372,39.20869 -24.69305,-13.74039 -55.05634,4.03119 79.62738,9.58108 -56.57441,12.73416"
544 id="path9316"
545 inkscape:connector-curvature="0"
546 sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccc" />
547 <path
548 style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
549 d="m 139.04572,118.81358 37.0456,48.02106"
550 id="path9318"
551 inkscape:connector-curvature="0" />
552 <path
553 style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
554 d="m 128.46126,147.9287 10.96248,-29.11512 12.47454,32.51819"
555 id="path12058"
556 inkscape:connector-curvature="0" />
557 <path
558 style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
559 d="m 252.31652,123.28236 54.69043,-3.64603 -31.75647,27.04795"
560 id="path12250"
561 inkscape:connector-curvature="0"
562 sodipodi:nodetypes="ccc" />
563 <ellipse
564 ry="4.1593032"
565 rx="4.1581793"
566 cy="112.66669"
567 cx="83.343307"
568 id="ellipse12260"
569 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" />
570 <ellipse
571 ry="4.1593032"
572 rx="4.1581793"
573 cy="123.35095"
574 cx="63.064556"
575 id="ellipse12264"
576 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" />
577 <ellipse
578 ry="4.1593032"
579 rx="4.1581793"
580 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
581 id="ellipse12266"
582 cx="139.04277"
583 cy="118.93542" />
584 <ellipse
585 ry="4.1593032"
586 rx="4.1581793"
587 inkscape:transform-center-y="-10.724852"
588 inkscape:transform-center-x="9.5305947"
589 cy="123.78851"
590 cx="252.13518"
591 id="ellipse12292"
592 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" />
593 <ellipse
594 ry="4.1593032"
595 rx="4.1581793"
596 inkscape:transform-center-y="-10.724835"
597 inkscape:transform-center-x="9.5305988"
598 cy="119.55022"
599 cx="307.26297"
600 id="ellipse12296"
601 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" />
602 <path
603 style="fill:none;stroke:#3498db;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.97647059"
604 d="m 52.875,94.278107 10,29.000003 21,-10.5 v 0 0"
605 id="path5311"
606 inkscape:connector-curvature="0" />
607 <path
608 style="fill:none;stroke:#3498db;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.97647059"
609 d="m 102.875,75.278107 -39.5,48.000003 v 0 l -1,2"
610 id="path5313"
611 inkscape:connector-curvature="0" />
612 <path
613 style="fill:none;stroke:#3498db;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
614 d="m 229.75,196.02811 -44,2.625 25.375,17.125 v 0"
615 id="path5331"
616 inkscape:connector-curvature="0" />
617 </g>
618 <g
619 inkscape:groupmode="layer"
620 id="layer2"
621 inkscape:label="vertices 0"
622 style="display:inline;opacity:1"
623 transform="translate(-387.41463,-589.81931)"
624 sodipodi:insensitive="true">
625 <path
626 style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
627 d="m 515.87589,689.71367 24.57107,51.42411"
628 id="path9320"
629 inkscape:connector-curvature="0" />
630 <path
631 style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
632 d="m 574.46842,741.13778 12.85257,40.08057"
633 id="path9322"
634 inkscape:connector-curvature="0" />
635 <path
636 style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
637 d="m 565.39603,772.52162 0.37803,45.75234"
638 id="path9324"
639 inkscape:connector-curvature="0" />
640 <path
641 style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
642 d="m 642.13335,732.06293 -12.09653,36.6775"
643 id="path9326"
644 inkscape:connector-curvature="0" />
645 <path
646 style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
647 d="m 515.87589,690.09178 46.98395,22.0278 10.85256,28.26194"
648 id="path12060"
649 inkscape:connector-curvature="0"
650 sodipodi:nodetypes="ccc" />
651 <path
652 style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
653 d="m 450.10106,666.64844 54.05634,6.0499"
654 id="path12214"
655 inkscape:connector-curvature="0" />
656 <path
657 style="display:inline;fill:#729fcf;fill-rule:evenodd;stroke:#3498db;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
658 d="m 641.75532,730.92859 -2.26809,-64.28015"
659 id="path12206"
660 inkscape:connector-curvature="0" />
661 <path
662 style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
663 d="m 629.28078,768.36231 -12.85255,-66.17074 v 36.6775 z"
664 id="path12208"
665 inkscape:connector-curvature="0" />
666 <path
667 style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
668 d="m 597.52742,757.77501 31.75336,10.5873"
669 id="path12210"
670 inkscape:connector-curvature="0" />
671 <path
672 style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:1.58654225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
673 d="m 540.44696,693.87298 v 48.77728 l 24.57105,30.2495 23.81505,9.45293"
674 id="path12212"
675 inkscape:connector-curvature="0" />
676 <path
677 style="display:inline;fill:none;fill-rule:evenodd;stroke:#3498db;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
678 d="m 564.64001,819.03019 44.98392,-0.37812"
679 id="path12216"
680 inkscape:connector-curvature="0" />
681 <ellipse
682 ry="4.1593032"
683 rx="4.1581793"
684 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
685 id="ellipse12252"
686 cx="587.39447"
687 cy="781.79773" />
688 <ellipse
689 ry="4.1593032"
690 rx="4.1581793"
691 cy="818.74042"
692 cx="609.15759"
693 id="ellipse12254"
694 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" />
695 <ellipse
696 ry="4.1593032"
697 rx="4.1581793"
698 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
699 id="ellipse12256"
700 cx="565.97528"
701 cy="818.74042" />
702 <ellipse
703 ry="4.1593032"
704 rx="4.1581793"
705 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
706 id="ellipse12262"
707 cx="490.92691"
708 cy="689.33545" />
709 <ellipse
710 ry="4.1593032"
711 rx="4.1581793"
712 cy="690.09174"
713 cx="516.25397"
714 id="ellipse12268"
715 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" />
716 <ellipse
717 ry="4.1593032"
718 rx="4.1581793"
719 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
720 id="ellipse12270"
721 cx="561.66821"
722 cy="709.15314" />
723 <ellipse
724 ry="4.1593032"
725 rx="4.1581793"
726 cy="671.6922"
727 cx="502.64844"
728 id="ellipse12272"
729 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" />
730 <ellipse
731 ry="4.1593032"
732 rx="4.1581793"
733 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
734 id="ellipse12274"
735 cx="540.81299"
736 cy="693.37305" />
737 <ellipse
738 ry="4.1593032"
739 rx="4.1581793"
740 cy="741.13794"
741 cx="540.82501"
742 id="ellipse12276"
743 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" />
744 <ellipse
745 ry="4.1593032"
746 rx="4.1581793"
747 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
748 id="ellipse12278"
749 cx="573.51123"
750 cy="741.22632" />
751 <ellipse
752 ry="4.1593032"
753 rx="4.1581793"
754 cy="772.52173"
755 cx="565.39612"
756 id="ellipse12280"
757 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" />
758 <ellipse
759 ry="4.1593032"
760 rx="4.1581793"
761 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
762 id="ellipse12282"
763 cx="606.38373"
764 cy="789.62549"
765 inkscape:transform-center-x="9.5306006"
766 inkscape:transform-center-y="-10.72485" />
767 <ellipse
768 ry="4.1593032"
769 rx="4.1581793"
770 inkscape:transform-center-y="-10.724822"
771 inkscape:transform-center-x="9.5305654"
772 cy="730.17249"
773 cx="641.75543"
774 id="ellipse12284"
775 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" />
776 <ellipse
777 ry="4.1593032"
778 rx="4.1581793"
779 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
780 id="ellipse12286"
781 cx="616.8064"
782 cy="702.94794"
783 inkscape:transform-center-x="9.5305633"
784 inkscape:transform-center-y="-10.724851" />
785 <ellipse
786 ry="4.1593032"
787 rx="4.1581793"
788 inkscape:transform-center-y="-10.724843"
789 inkscape:transform-center-x="9.5305819"
790 cy="738.49109"
791 cx="617.18439"
792 id="ellipse12288"
793 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" />
794 <ellipse
795 ry="4.1593032"
796 rx="4.1581793"
797 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
798 id="ellipse12290"
799 cx="629.03088"
800 cy="768.17493"
801 inkscape:transform-center-x="9.5305949"
802 inkscape:transform-center-y="-10.724827" />
803 <ellipse
804 ry="4.1593032"
805 rx="4.1581793"
806 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
807 id="ellipse12294"
808 cx="662.54626"
809 cy="688.95752"
810 inkscape:transform-center-x="9.5306048"
811 inkscape:transform-center-y="-10.724823" />
812 <ellipse
813 ry="4.1593032"
814 rx="4.1581793"
815 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
816 id="ellipse12298"
817 cx="719.24872"
818 cy="675.72339"
819 inkscape:transform-center-x="9.5305824"
820 inkscape:transform-center-y="-10.724798" />
821 <ellipse
822 ry="4.1593032"
823 rx="4.1581793"
824 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
825 id="ellipse12302"
826 cx="617.18439"
827 cy="738.49109"
828 inkscape:transform-center-x="9.5305819"
829 inkscape:transform-center-y="-10.724843" />
830 <ellipse
831 ry="4.1593032"
832 rx="4.1581793"
833 inkscape:transform-center-y="-10.724843"
834 inkscape:transform-center-x="9.5305819"
835 cy="738.49109"
836 cx="617.24689"
837 id="ellipse12304"
838 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" />
839 <ellipse
840 ry="4.1593032"
841 rx="4.1581793"
842 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
843 id="ellipse12306"
844 cx="598.0033"
845 cy="758.21582"
846 inkscape:transform-center-x="9.5306167"
847 inkscape:transform-center-y="-10.724797" />
848 <ellipse
849 ry="4.1593032"
850 rx="4.1581793"
851 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
852 id="ellipse12258"
853 cx="440.27264"
854 cy="636.84271" />
855 <ellipse
856 ry="4.1593032"
857 rx="4.1581793"
858 inkscape:transform-center-y="-10.724829"
859 inkscape:transform-center-x="9.5306165"
860 cy="636.8053"
861 cx="734.7594"
862 id="ellipse12300"
863 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139" />
864 <ellipse
865 ry="4.1593032"
866 rx="4.1581793"
867 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
868 id="ellipse12258-3"
869 cx="490.28964"
870 cy="617.81934" />
871 <ellipse
872 ry="4.1593032"
873 rx="4.1581793"
874 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
875 id="ellipse12258-3-0"
876 cx="689.78961"
877 cy="617.81934" />
878 <path
879 style="display:inline;fill:none;fill-opacity:1;stroke:#3498db;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.97647059"
880 d="m 439.28963,637.81931 50.5,-19.5 -14.05,28.1 0.925,-1.725 -5.875,11.75 -0.25,-0.75"
881 id="path5161"
882 inkscape:connector-curvature="0"
883 sodipodi:nodetypes="cccccc" />
884 <path
885 style="display:inline;fill:none;stroke:#3498db;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.97647059"
886 d="m 734.78963,636.81931 -40.285,-17.00922 -4.715,-1.99078 29,57.5 v -0.5 0 h 0.5 v 0"
887 id="path5163"
888 inkscape:connector-curvature="0"
889 sodipodi:nodetypes="cccccccc" />
890 </g>
891 <g
892 inkscape:groupmode="layer"
893 id="layer6"
894 inkscape:label="no:des"
895 style="display:inline"
896 sodipodi:insensitive="true">
897 <ellipse
898 transform="translate(-387.41463,-589.81931)"
899 ry="4.1593032"
900 rx="4.1581793"
901 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
902 id="ellipse12282-8-9-0"
903 cx="587.3924"
904 cy="855.64899"
905 inkscape:transform-center-x="9.5306006"
906 inkscape:transform-center-y="-10.72485" />
907 <ellipse
908 transform="translate(-387.41463,-589.81931)"
909 ry="4.1593032"
910 rx="4.1581793"
911 style="display:inline;opacity:1;fill:#3498db;fill-opacity:1;stroke:#3498db;stroke-width:0.39663559;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.97635139"
912 id="ellipse12282-8-9"
913 cx="587.3924"
914 cy="839.31183"
915 inkscape:transform-center-x="9.5306006"
916 inkscape:transform-center-y="-10.72485" />
917 </g>
918</svg>
diff --git a/contrib/packages/guix/guix-env-gillmann.scm b/contrib/packages/guix/guix-env-gillmann.scm
new file mode 100644
index 000000000..4b977c1bb
--- /dev/null
+++ b/contrib/packages/guix/guix-env-gillmann.scm
@@ -0,0 +1,151 @@
1;;; This file is part of GNUnet.
2;;; Copyright (C) 2016, 2017, 2018 GNUnet e.V.
3;;;
4;;; GNUnet is free software; you can redistribute it and/or modify
5;;; it under the terms of the GNU General Public License as published
6;;; by the Free Software Foundation; either version 3, or (at your
7;;; option) any later version.
8;;;
9;;; GNUnet is distributed in the hope that it will be useful, but
10;;; WITHOUT ANY WARRANTY; without even the implied warranty of
11;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12;;; General Public License for more details.
13;;;
14;;; You should have received a copy of the GNU General Public License
15;;; along with GNUnet; see the file COPYING. If not, write to the
16;;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17;;; Boston, MA 02110-1301, USA.
18
19(use-modules
20 (ice-9 popen)
21 (ice-9 match)
22 (ice-9 rdelim)
23 (guix packages)
24 (guix build-system gnu)
25 (guix gexp)
26 ((guix build utils) #:select (with-directory-excursion))
27 (guix git-download)
28 (guix utils) ; current-source-directory
29 (gnu packages)
30 (gnu packages aidc)
31 (gnu packages autotools)
32 (gnu packages backup)
33 (gnu packages base)
34 (gnu packages compression)
35 (gnu packages curl)
36 (gnu packages databases)
37 (gnu packages file)
38 (gnu packages gettext)
39 (gnu packages glib)
40 (gnu packages gnome)
41 (gnu packages gnunet)
42 (gnu packages gnupg)
43 (gnu packages gnuzilla)
44 (gnu packages groff)
45 (gnu packages gstreamer)
46 (gnu packages gtk)
47 (gnu packages guile)
48 (gnu packages image)
49 (gnu packages image-viewers)
50 (gnu packages libidn)
51 (gnu packages libunistring)
52 (gnu packages linux)
53 (gnu packages maths)
54 (gnu packages multiprecision)
55 (gnu packages perl)
56 (gnu packages pkg-config)
57 (gnu packages pulseaudio)
58 (gnu packages python)
59 (gnu packages tex)
60 (gnu packages texinfo)
61 (gnu packages tex)
62 (gnu packages tls)
63 (gnu packages upnp)
64 (gnu packages video)
65 (gnu packages web)
66 (gnu packages xiph)
67 ((guix licenses) #:prefix license:))
68
69(define %source-dir (current-source-directory))
70
71(define gnunet-dev-env
72 (let* ((revision "1")
73 (select? (delay (or (git-predicate
74 (current-source-directory))
75 source-file?))))
76 (package
77 (inherit gnunet)
78 (name "gnunet")
79 (version (string-append "git" revision))
80 (source
81 (local-file
82 (string-append (getcwd))
83 #:recursive? #t))
84 (inputs
85 `(("glpk" ,glpk)
86 ("gnurl" ,gnurl)
87 ("gstreamer" ,gstreamer)
88 ("gst-plugins-base" ,gst-plugins-base)
89 ("gnutls/dane" ,gnutls/dane)
90 ("iptables" ,iptables)
91 ("libextractor" ,libextractor)
92 ("libgcrypt" ,libgcrypt)
93 ("libidn" ,libidn)
94 ("libmicrohttpd" ,libmicrohttpd)
95 ("libltdl" ,libltdl)
96 ("libunistring" ,libunistring)
97 ("openssl" ,openssl)
98 ("opus" ,opus)
99 ("pulseaudio" ,pulseaudio)
100 ("sqlite" ,sqlite)
101 ("postgresql" ,postgresql)
102 ("mariadb" ,mariadb)
103 ("zlib" ,zlib)
104 ("perl" ,perl)
105 ("python-2" ,python-2) ; tests and gnunet-qr
106 ("jansson" ,jansson)
107 ("nss" ,nss)
108 ("glib" ,glib "bin")
109 ("gmp" ,gmp)
110 ("bluez" ,bluez) ; for optional bluetooth feature
111 ("glib" ,glib)
112 ;; ("texlive" ,texlive) ;FIXME: minimize.
113 ("texlive-tiny" ,texlive-tiny) ;; Seems to be enough for _just_ info output.
114 ("miniupnpc" ,miniupnpc)
115 ("libogg" ,libogg)))
116 (native-inputs
117 `(("pkg-config" ,pkg-config)
118 ("autoconf" ,autoconf)
119 ("automake" ,automake)
120 ("gnu-gettext" ,gnu-gettext)
121 ("which" ,which)
122 ("texinfo" ,texinfo-5) ; Debian stable: 5.2
123 ("libtool" ,libtool)))
124 (outputs '("out" "debug"))
125 (arguments
126 `(;#:configure-flags
127 ;;(list (string-append "--with-nssdir=" %output "/lib")
128 ;;"--enable-gcc-hardening"
129 ;;"--enable-linker-hardening"
130 ;;;;"--enable-documentation-only")
131 ;;;"--enable-logging=verbose"
132 ;;;"CFLAGS=-ggdb -O0")
133 #:phases
134 ;; swap check and install phases and set paths to installed bin
135 (modify-phases %standard-phases
136 (add-after 'unpack 'patch-bin-sh
137 (lambda _
138 (for-each (lambda (f) (chmod f #o755))
139 (find-files "po" ""))
140 #t))
141 (add-after 'patch-bin-sh 'bootstrap
142 (lambda _
143 (zero? (system* "sh" "bootstrap"))))
144 ;;(add-before 'build 'chdir
145 ;; (lambda _
146 ;; (chdir "doc/documentation")))
147 (delete 'check)
148 ;; XXX: https://gnunet.org/bugs/view.php?id=4619
149 ))))))
150
151gnunet-dev-env
diff --git a/contrib/packages/guix/guix-env-py2.scm b/contrib/packages/guix/guix-env-py2.scm
new file mode 100644
index 000000000..6085f96a9
--- /dev/null
+++ b/contrib/packages/guix/guix-env-py2.scm
@@ -0,0 +1,158 @@
1;;; This file is part of GNUnet.
2;;; Copyright (C) 2016, 2017, 2018 GNUnet e.V.
3;;;
4;;; GNUnet is free software; you can redistribute it and/or modify
5;;; it under the terms of the GNU General Public License as published
6;;; by the Free Software Foundation; either version 3, or (at your
7;;; option) any later version.
8;;;
9;;; GNUnet is distributed in the hope that it will be useful, but
10;;; WITHOUT ANY WARRANTY; without even the implied warranty of
11;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12;;; General Public License for more details.
13;;;
14;;; You should have received a copy of the GNU General Public License
15;;; along with GNUnet; see the file COPYING. If not, write to the
16;;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17;;; Boston, MA 02110-1301, USA.
18
19(use-modules
20 (ice-9 popen)
21 (ice-9 match)
22 (ice-9 rdelim)
23 (guix packages)
24 (guix build-system gnu)
25 (guix gexp)
26 ((guix build utils) #:select (with-directory-excursion))
27 (guix git-download)
28 (guix utils) ; current-source-directory
29 (gnu packages)
30 (gnu packages aidc)
31 (gnu packages autotools)
32 (gnu packages backup)
33 (gnu packages base)
34 (gnu packages compression)
35 (gnu packages curl)
36 (gnu packages databases)
37 (gnu packages file)
38 (gnu packages gettext)
39 (gnu packages glib)
40 (gnu packages gnome)
41 (gnu packages gnunet)
42 (gnu packages gnupg)
43 (gnu packages gnuzilla)
44 (gnu packages groff)
45 (gnu packages gstreamer)
46 (gnu packages gtk)
47 (gnu packages guile)
48 (gnu packages image)
49 (gnu packages image-viewers)
50 (gnu packages libidn)
51 (gnu packages libunistring)
52 (gnu packages linux)
53 (gnu packages maths)
54 (gnu packages multiprecision)
55 (gnu packages perl)
56 (gnu packages pkg-config)
57 (gnu packages pulseaudio)
58 (gnu packages python)
59 (gnu packages tex)
60 (gnu packages texinfo)
61 (gnu packages tex)
62 (gnu packages tls)
63 (gnu packages upnp)
64 (gnu packages video)
65 (gnu packages web)
66 (gnu packages xiph)
67 ((guix licenses) #:prefix license:))
68
69(define %source-dir (current-source-directory))
70
71(define gnunet-dev-env
72 (let* ((revision "1")
73 (select? (delay (or (git-predicate
74 (current-source-directory))
75 source-file?))))
76 (package
77 (inherit gnunet)
78 (name "gnunet")
79 (version (string-append "git" revision))
80 (source
81 (local-file
82 (string-append (getcwd))
83 #:recursive? #t))
84 (inputs
85 `(("glpk" ,glpk)
86 ("gnurl" ,gnurl)
87 ("gstreamer" ,gstreamer)
88 ("gst-plugins-base" ,gst-plugins-base)
89 ("gnutls/dane" ,gnutls/dane)
90 ("libextractor" ,libextractor)
91 ("libgcrypt" ,libgcrypt)
92 ("libidn" ,libidn)
93 ("libmicrohttpd" ,libmicrohttpd)
94 ("libltdl" ,libltdl)
95 ("libunistring" ,libunistring)
96 ("openssl" ,openssl)
97 ("opus" ,opus)
98 ("pulseaudio" ,pulseaudio)
99 ("sqlite" ,sqlite)
100 ("postgresql" ,postgresql)
101 ("mysql" ,mysql)
102 ("zlib" ,zlib)
103 ("perl" ,perl)
104 ("python-2" ,python-2) ; tests and gnunet-qr
105 ("python2-future" ,python2-future)
106 ("jansson" ,jansson)
107 ("nss" ,nss)
108 ("glib" ,glib "bin")
109 ("gmp" ,gmp)
110 ("bluez" ,bluez) ; for optional bluetooth feature
111 ("glib" ,glib)
112 ;; ("texlive" ,texlive) ;FIXME: minimize.
113 ("texlive-tiny" ,texlive-tiny) ;; Seems to be enough for _just_ info output.
114 ("miniupnpc" ,miniupnpc)
115 ("libogg" ,libogg)))
116 (native-inputs
117 `(("pkg-config" ,pkg-config)
118 ("autoconf" ,autoconf)
119 ("automake" ,automake)
120 ("gnu-gettext" ,gnu-gettext)
121 ("which" ,which)
122 ("texinfo" ,texinfo-5) ; Debian stable: 5.2
123 ("libtool" ,libtool)))
124 (outputs '("out" "debug"))
125 (arguments
126 `(;#:configure-flags
127 ;;(list (string-append "--with-nssdir=" %output "/lib")
128 ;;"--enable-gcc-hardening"
129 ;;"--enable-linker-hardening"
130 ;;;;"--enable-documentation-only")
131 ;;;"--enable-logging=verbose"
132 ;;;"CFLAGS=-ggdb -O0")
133 #:phases
134 ;; swap check and install phases and set paths to installed bin
135 (modify-phases %standard-phases
136 (add-after 'unpack 'patch-bin-sh
137 (lambda _
138 (for-each (lambda (f) (chmod f #o755))
139 (find-files "po" ""))
140 #t))
141 (add-after 'patch-bin-sh 'bootstrap
142 (lambda _
143 (zero? (system* "sh" "bootstrap"))))
144 ;;(add-before 'build 'chdir
145 ;; (lambda _
146 ;; (chdir "doc/documentation")))
147 (delete 'check)
148 ;; XXX: https://gnunet.org/bugs/view.php?id=4619
149 (add-after 'install 'set-path-for-check
150 (lambda* (#:key outputs #:allow-other-keys)
151 (let* ((out (assoc-ref outputs "out"))
152 (bin (string-append out "/bin"))
153 (lib (string-append out "/lib")))
154 (setenv "GNUNET_PREFIX" lib)
155 (setenv "PATH" (string-append (getenv "PATH") ":" bin))
156 (zero? (system* "make" "check")))))))))))
157
158gnunet-dev-env
diff --git a/doc/documentation/chapters/user.texi b/doc/documentation/chapters/user.texi
index 3d4f55e41..f2dc5b35d 100644
--- a/doc/documentation/chapters/user.texi
+++ b/doc/documentation/chapters/user.texi
@@ -1093,10 +1093,12 @@ $ gnunet-publish [-n] [-k KEYWORDS]* [-m TYPE:VALUE] FILENAME
1093@subsubsection Important command-line options 1093@subsubsection Important command-line options
1094@c %**end of header 1094@c %**end of header
1095 1095
1096The option -k is used to specify keywords for the file that 1096The option @code{-k} is used to specify keywords for the file that
1097should be inserted. You can supply any number of keywords, 1097should be inserted. You can supply any number of keywords,
1098and each of the keywords will be sufficient to locate and 1098and each of the keywords will be sufficient to locate and
1099retrieve the file. 1099retrieve the file. Please note that you must use the @code{-k} option
1100more than once -- one for each expression you use as a keyword for
1101the filename.
1100 1102
1101The -m option is used to specify meta-data, such as descriptions. 1103The -m option is used to specify meta-data, such as descriptions.
1102You can use -m multiple times. The TYPE passed must be from the 1104You can use -m multiple times. The TYPE passed must be from the
diff --git a/doc/documentation/gnunet.texi b/doc/documentation/gnunet.texi
index e1847c227..cd2f04399 100644
--- a/doc/documentation/gnunet.texi
+++ b/doc/documentation/gnunet.texi
@@ -43,6 +43,14 @@ Foundation Web site at @url{http://www.gnu.org/licenses/gpl.html}.
43@end copying 43@end copying
44 44
45@c TODO: Improve this and improve https://directory.fsf.org/wiki/Gnunet 45@c TODO: Improve this and improve https://directory.fsf.org/wiki/Gnunet
46@c NOTE FOR TRANSLATORS: Due to en.wikipedia.org being the wikipedia
47@c which is more up to date than others, refrain
48@c from using localized wikipedia unless you are
49@c sure the articles content is good enough. For
50@c example the german wikipedia entry for GNUnet
51@c is in a terrible shape, but the en.wikipedia.org
52@c entry is still acceptable (although in need of
53@c updates).
46 54
47@dircategory Networking 55@dircategory Networking
48@direntry 56@direntry
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 28f51f366..de6bd90e4 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -4,13 +4,21 @@ src/arm/arm_monitor_api.c
4src/arm/gnunet-arm.c 4src/arm/gnunet-arm.c
5src/arm/gnunet-service-arm.c 5src/arm/gnunet-service-arm.c
6src/arm/mockup-service.c 6src/arm/mockup-service.c
7src/ats-tests/ats-testing-experiment.c
8src/ats-tests/ats-testing-log.c
9src/ats-tests/ats-testing-preferences.c
10src/ats-tests/ats-testing-traffic.c
11src/ats-tests/ats-testing.c
12src/ats-tests/gnunet-ats-sim.c
13src/ats-tests/gnunet-solver-eval.c
14src/ats-tool/gnunet-ats.c
7src/ats/ats_api_connectivity.c 15src/ats/ats_api_connectivity.c
8src/ats/ats_api_performance.c 16src/ats/ats_api_performance.c
9src/ats/ats_api_scanner.c 17src/ats/ats_api_scanner.c
10src/ats/ats_api_scheduling.c 18src/ats/ats_api_scheduling.c
11src/ats/gnunet-ats-solver-eval.c 19src/ats/gnunet-ats-solver-eval.c
12src/ats/gnunet-service-ats_addresses.c
13src/ats/gnunet-service-ats.c 20src/ats/gnunet-service-ats.c
21src/ats/gnunet-service-ats_addresses.c
14src/ats/gnunet-service-ats_connectivity.c 22src/ats/gnunet-service-ats_connectivity.c
15src/ats/gnunet-service-ats_normalization.c 23src/ats/gnunet-service-ats_normalization.c
16src/ats/gnunet-service-ats_performance.c 24src/ats/gnunet-service-ats_performance.c
@@ -21,14 +29,6 @@ src/ats/gnunet-service-ats_scheduling.c
21src/ats/plugin_ats_mlp.c 29src/ats/plugin_ats_mlp.c
22src/ats/plugin_ats_proportional.c 30src/ats/plugin_ats_proportional.c
23src/ats/plugin_ats_ril.c 31src/ats/plugin_ats_ril.c
24src/ats-tests/ats-testing.c
25src/ats-tests/ats-testing-experiment.c
26src/ats-tests/ats-testing-log.c
27src/ats-tests/ats-testing-preferences.c
28src/ats-tests/ats-testing-traffic.c
29src/ats-tests/gnunet-ats-sim.c
30src/ats-tests/gnunet-solver-eval.c
31src/ats-tool/gnunet-ats.c
32src/auction/gnunet-auction-create.c 32src/auction/gnunet-auction-create.c
33src/auction/gnunet-auction-info.c 33src/auction/gnunet-auction-info.c
34src/auction/gnunet-auction-join.c 34src/auction/gnunet-auction-join.c
@@ -40,8 +40,8 @@ src/block/plugin_block_test.c
40src/cadet/cadet_api.c 40src/cadet/cadet_api.c
41src/cadet/cadet_test_lib.c 41src/cadet/cadet_test_lib.c
42src/cadet/desirability_table.c 42src/cadet/desirability_table.c
43src/cadet/gnunet-cadet.c
44src/cadet/gnunet-cadet-profiler.c 43src/cadet/gnunet-cadet-profiler.c
44src/cadet/gnunet-cadet.c
45src/cadet/gnunet-service-cadet.c 45src/cadet/gnunet-service-cadet.c
46src/cadet/gnunet-service-cadet_channel.c 46src/cadet/gnunet-service-cadet_channel.c
47src/cadet/gnunet-service-cadet_connection.c 47src/cadet/gnunet-service-cadet_connection.c
@@ -57,15 +57,15 @@ src/consensus/gnunet-service-consensus.c
57src/consensus/plugin_block_consensus.c 57src/consensus/plugin_block_consensus.c
58src/conversation/conversation_api.c 58src/conversation/conversation_api.c
59src/conversation/conversation_api_call.c 59src/conversation/conversation_api_call.c
60src/conversation/gnunet-conversation.c
61src/conversation/gnunet-conversation-test.c 60src/conversation/gnunet-conversation-test.c
62src/conversation/gnunet_gst.c 61src/conversation/gnunet-conversation.c
63src/conversation/gnunet_gst_test.c
64src/conversation/gnunet-helper-audio-playback.c
65src/conversation/gnunet-helper-audio-playback-gst.c 62src/conversation/gnunet-helper-audio-playback-gst.c
66src/conversation/gnunet-helper-audio-record.c 63src/conversation/gnunet-helper-audio-playback.c
67src/conversation/gnunet-helper-audio-record-gst.c 64src/conversation/gnunet-helper-audio-record-gst.c
65src/conversation/gnunet-helper-audio-record.c
68src/conversation/gnunet-service-conversation.c 66src/conversation/gnunet-service-conversation.c
67src/conversation/gnunet_gst.c
68src/conversation/gnunet_gst_test.c
69src/conversation/microphone.c 69src/conversation/microphone.c
70src/conversation/plugin_gnsrecord_conversation.c 70src/conversation/plugin_gnsrecord_conversation.c
71src/conversation/speaker.c 71src/conversation/speaker.c
@@ -102,7 +102,6 @@ src/dht/dht_api.c
102src/dht/dht_test_lib.c 102src/dht/dht_test_lib.c
103src/dht/gnunet-dht-get.c 103src/dht/gnunet-dht-get.c
104src/dht/gnunet-dht-monitor.c 104src/dht/gnunet-dht-monitor.c
105src/dht/gnunet_dht_profiler.c
106src/dht/gnunet-dht-put.c 105src/dht/gnunet-dht-put.c
107src/dht/gnunet-service-dht.c 106src/dht/gnunet-service-dht.c
108src/dht/gnunet-service-dht_clients.c 107src/dht/gnunet-service-dht_clients.c
@@ -111,6 +110,7 @@ src/dht/gnunet-service-dht_hello.c
111src/dht/gnunet-service-dht_neighbours.c 110src/dht/gnunet-service-dht_neighbours.c
112src/dht/gnunet-service-dht_nse.c 111src/dht/gnunet-service-dht_nse.c
113src/dht/gnunet-service-dht_routing.c 112src/dht/gnunet-service-dht_routing.c
113src/dht/gnunet_dht_profiler.c
114src/dht/plugin_block_dht.c 114src/dht/plugin_block_dht.c
115src/dns/dns_api.c 115src/dns/dns_api.c
116src/dns/dnsparser.c 116src/dns/dnsparser.c
@@ -126,8 +126,8 @@ src/dv/gnunet-dv.c
126src/dv/gnunet-service-dv.c 126src/dv/gnunet-service-dv.c
127src/dv/plugin_transport_dv.c 127src/dv/plugin_transport_dv.c
128src/exit/gnunet-daemon-exit.c 128src/exit/gnunet-daemon-exit.c
129src/exit/gnunet-helper-exit.c
130src/exit/gnunet-helper-exit-windows.c 129src/exit/gnunet-helper-exit-windows.c
130src/exit/gnunet-helper-exit.c
131src/fragmentation/defragmentation.c 131src/fragmentation/defragmentation.c
132src/fragmentation/fragmentation.c 132src/fragmentation/fragmentation.c
133src/fs/fs_api.c 133src/fs/fs_api.c
@@ -152,8 +152,8 @@ src/fs/gnunet-auto-share.c
152src/fs/gnunet-daemon-fsprofiler.c 152src/fs/gnunet-daemon-fsprofiler.c
153src/fs/gnunet-directory.c 153src/fs/gnunet-directory.c
154src/fs/gnunet-download.c 154src/fs/gnunet-download.c
155src/fs/gnunet-fs.c
156src/fs/gnunet-fs-profiler.c 155src/fs/gnunet-fs-profiler.c
156src/fs/gnunet-fs.c
157src/fs/gnunet-helper-fs-publish.c 157src/fs/gnunet-helper-fs-publish.c
158src/fs/gnunet-publish.c 158src/fs/gnunet-publish.c
159src/fs/gnunet-search.c 159src/fs/gnunet-search.c
@@ -173,10 +173,10 @@ src/gns/gns_tld_api.c
173src/gns/gnunet-bcd.c 173src/gns/gnunet-bcd.c
174src/gns/gnunet-dns2gns.c 174src/gns/gnunet-dns2gns.c
175src/gns/gnunet-gns-benchmark.c 175src/gns/gnunet-gns-benchmark.c
176src/gns/gnunet-gns.c
177src/gns/gnunet-gns-helper-service-w32.c 176src/gns/gnunet-gns-helper-service-w32.c
178src/gns/gnunet-gns-import.c 177src/gns/gnunet-gns-import.c
179src/gns/gnunet-gns-proxy.c 178src/gns/gnunet-gns-proxy.c
179src/gns/gnunet-gns.c
180src/gns/gnunet-service-gns.c 180src/gns/gnunet-service-gns.c
181src/gns/gnunet-service-gns_interceptor.c 181src/gns/gnunet-service-gns_interceptor.c
182src/gns/gnunet-service-gns_resolver.c 182src/gns/gnunet-service-gns_resolver.c
@@ -185,15 +185,15 @@ src/gns/nss/nss_gns_query.c
185src/gns/plugin_block_gns.c 185src/gns/plugin_block_gns.c
186src/gns/plugin_gnsrecord_gns.c 186src/gns/plugin_gnsrecord_gns.c
187src/gns/plugin_rest_gns.c 187src/gns/plugin_rest_gns.c
188src/gns/w32nsp-install.c
189src/gns/w32nsp-resolve.c
190src/gns/w32nsp-uninstall.c
191src/gns/w32nsp.c
188src/gnsrecord/gnsrecord.c 192src/gnsrecord/gnsrecord.c
189src/gnsrecord/gnsrecord_crypto.c 193src/gnsrecord/gnsrecord_crypto.c
190src/gnsrecord/gnsrecord_misc.c 194src/gnsrecord/gnsrecord_misc.c
191src/gnsrecord/gnsrecord_serialization.c 195src/gnsrecord/gnsrecord_serialization.c
192src/gnsrecord/plugin_gnsrecord_dns.c 196src/gnsrecord/plugin_gnsrecord_dns.c
193src/gns/w32nsp.c
194src/gns/w32nsp-install.c
195src/gns/w32nsp-resolve.c
196src/gns/w32nsp-uninstall.c
197src/hello/address.c 197src/hello/address.c
198src/hello/gnunet-hello.c 198src/hello/gnunet-hello.c
199src/hello/hello.c 199src/hello/hello.c
@@ -202,11 +202,6 @@ src/hostlist/gnunet-daemon-hostlist_client.c
202src/hostlist/gnunet-daemon-hostlist_server.c 202src/hostlist/gnunet-daemon-hostlist_server.c
203src/identity-attribute/identity_attribute.c 203src/identity-attribute/identity_attribute.c
204src/identity-attribute/plugin_identity_attribute_gnuid.c 204src/identity-attribute/plugin_identity_attribute_gnuid.c
205src/identity/gnunet-identity.c
206src/identity/gnunet-service-identity.c
207src/identity/identity_api.c
208src/identity/identity_api_lookup.c
209src/identity/plugin_rest_identity.c
210src/identity-provider/gnunet-idp.c 205src/identity-provider/gnunet-idp.c
211src/identity-provider/gnunet-service-identity-provider.c 206src/identity-provider/gnunet-service-identity-provider.c
212src/identity-provider/identity_provider_api.c 207src/identity-provider/identity_provider_api.c
@@ -215,15 +210,20 @@ src/identity-provider/plugin_gnsrecord_identity_provider.c
215src/identity-provider/plugin_identity_provider_sqlite.c 210src/identity-provider/plugin_identity_provider_sqlite.c
216src/identity-provider/plugin_rest_identity_provider.c 211src/identity-provider/plugin_rest_identity_provider.c
217src/identity-provider/plugin_rest_openid_connect.c 212src/identity-provider/plugin_rest_openid_connect.c
213src/identity/gnunet-identity.c
214src/identity/gnunet-service-identity.c
215src/identity/identity_api.c
216src/identity/identity_api_lookup.c
217src/identity/plugin_rest_identity.c
218src/json/json.c
219src/json/json_generator.c
220src/json/json_helper.c
221src/json/json_mhd.c
218src/jsonapi/jsonapi.c 222src/jsonapi/jsonapi.c
219src/jsonapi/jsonapi_document.c 223src/jsonapi/jsonapi_document.c
220src/jsonapi/jsonapi_error.c 224src/jsonapi/jsonapi_error.c
221src/jsonapi/jsonapi_relationship.c 225src/jsonapi/jsonapi_relationship.c
222src/jsonapi/jsonapi_resource.c 226src/jsonapi/jsonapi_resource.c
223src/json/json.c
224src/json/json_generator.c
225src/json/json_helper.c
226src/json/json_mhd.c
227src/multicast/gnunet-multicast.c 227src/multicast/gnunet-multicast.c
228src/multicast/gnunet-service-multicast.c 228src/multicast/gnunet-service-multicast.c
229src/multicast/multicast_api.c 229src/multicast/multicast_api.c
@@ -237,8 +237,8 @@ src/namecache/namecache_api.c
237src/namecache/plugin_namecache_flat.c 237src/namecache/plugin_namecache_flat.c
238src/namecache/plugin_namecache_postgres.c 238src/namecache/plugin_namecache_postgres.c
239src/namecache/plugin_namecache_sqlite.c 239src/namecache/plugin_namecache_sqlite.c
240src/namestore/gnunet-namestore.c
241src/namestore/gnunet-namestore-fcfsd.c 240src/namestore/gnunet-namestore-fcfsd.c
241src/namestore/gnunet-namestore.c
242src/namestore/gnunet-service-namestore.c 242src/namestore/gnunet-service-namestore.c
243src/namestore/gnunet-zoneimport.c 243src/namestore/gnunet-zoneimport.c
244src/namestore/namestore_api.c 244src/namestore/namestore_api.c
@@ -254,10 +254,10 @@ src/nat-auto/gnunet-service-nat-auto.c
254src/nat-auto/gnunet-service-nat-auto_legacy.c 254src/nat-auto/gnunet-service-nat-auto_legacy.c
255src/nat-auto/nat_auto_api.c 255src/nat-auto/nat_auto_api.c
256src/nat-auto/nat_auto_api_test.c 256src/nat-auto/nat_auto_api_test.c
257src/nat/gnunet-helper-nat-client.c
258src/nat/gnunet-helper-nat-client-windows.c 257src/nat/gnunet-helper-nat-client-windows.c
259src/nat/gnunet-helper-nat-server.c 258src/nat/gnunet-helper-nat-client.c
260src/nat/gnunet-helper-nat-server-windows.c 259src/nat/gnunet-helper-nat-server-windows.c
260src/nat/gnunet-helper-nat-server.c
261src/nat/gnunet-nat.c 261src/nat/gnunet-nat.c
262src/nat/gnunet-service-nat.c 262src/nat/gnunet-service-nat.c
263src/nat/gnunet-service-nat_externalip.c 263src/nat/gnunet-service-nat_externalip.c
@@ -266,15 +266,15 @@ src/nat/gnunet-service-nat_mini.c
266src/nat/gnunet-service-nat_stun.c 266src/nat/gnunet-service-nat_stun.c
267src/nat/nat_api.c 267src/nat/nat_api.c
268src/nat/nat_api_stun.c 268src/nat/nat_api_stun.c
269src/nse/gnunet-nse.c
270src/nse/gnunet-nse-profiler.c 269src/nse/gnunet-nse-profiler.c
270src/nse/gnunet-nse.c
271src/nse/gnunet-service-nse.c 271src/nse/gnunet-service-nse.c
272src/nse/nse_api.c 272src/nse/nse_api.c
273src/peerinfo-tool/gnunet-peerinfo.c
274src/peerinfo-tool/gnunet-peerinfo_plugins.c
273src/peerinfo/gnunet-service-peerinfo.c 275src/peerinfo/gnunet-service-peerinfo.c
274src/peerinfo/peerinfo_api.c 276src/peerinfo/peerinfo_api.c
275src/peerinfo/peerinfo_api_notify.c 277src/peerinfo/peerinfo_api_notify.c
276src/peerinfo-tool/gnunet-peerinfo.c
277src/peerinfo-tool/gnunet-peerinfo_plugins.c
278src/peerstore/gnunet-peerstore.c 278src/peerstore/gnunet-peerstore.c
279src/peerstore/gnunet-service-peerstore.c 279src/peerstore/gnunet-service-peerstore.c
280src/peerstore/peerstore_api.c 280src/peerstore/peerstore_api.c
@@ -319,20 +319,20 @@ src/revocation/gnunet-revocation.c
319src/revocation/gnunet-service-revocation.c 319src/revocation/gnunet-service-revocation.c
320src/revocation/plugin_block_revocation.c 320src/revocation/plugin_block_revocation.c
321src/revocation/revocation_api.c 321src/revocation/revocation_api.c
322src/rps/gnunet-rps.c
323src/rps/gnunet-rps-profiler.c 322src/rps/gnunet-rps-profiler.c
323src/rps/gnunet-rps.c
324src/rps/gnunet-service-rps.c 324src/rps/gnunet-service-rps.c
325src/rps/gnunet-service-rps_custommap.c 325src/rps/gnunet-service-rps_custommap.c
326src/rps/gnunet-service-rps_sampler.c 326src/rps/gnunet-service-rps_sampler.c
327src/rps/gnunet-service-rps_sampler_elem.c 327src/rps/gnunet-service-rps_sampler_elem.c
328src/rps/gnunet-service-rps_view.c 328src/rps/gnunet-service-rps_view.c
329src/rps/rps_api.c
330src/rps/rps-test_util.c 329src/rps/rps-test_util.c
330src/rps/rps_api.c
331src/scalarproduct/gnunet-scalarproduct.c 331src/scalarproduct/gnunet-scalarproduct.c
332src/scalarproduct/gnunet-service-scalarproduct_alice.c
333src/scalarproduct/gnunet-service-scalarproduct_bob.c
334src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c 332src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c
335src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c 333src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c
334src/scalarproduct/gnunet-service-scalarproduct_alice.c
335src/scalarproduct/gnunet-service-scalarproduct_bob.c
336src/scalarproduct/scalarproduct_api.c 336src/scalarproduct/scalarproduct_api.c
337src/secretsharing/gnunet-secretsharing-profiler.c 337src/secretsharing/gnunet-secretsharing-profiler.c
338src/secretsharing/gnunet-service-secretsharing.c 338src/secretsharing/gnunet-service-secretsharing.c
@@ -361,15 +361,16 @@ src/statistics/gnunet-statistics.c
361src/statistics/statistics_api.c 361src/statistics/statistics_api.c
362src/template/gnunet-service-template.c 362src/template/gnunet-service-template.c
363src/template/gnunet-template.c 363src/template/gnunet-template.c
364src/testbed-logger/gnunet-service-testbed-logger.c
365src/testbed-logger/testbed_logger_api.c
364src/testbed/generate-underlay-topology.c 366src/testbed/generate-underlay-topology.c
365src/testbed/gnunet-daemon-latency-logger.c 367src/testbed/gnunet-daemon-latency-logger.c
366src/testbed/gnunet-daemon-testbed-blacklist.c 368src/testbed/gnunet-daemon-testbed-blacklist.c
367src/testbed/gnunet-daemon-testbed-underlay.c 369src/testbed/gnunet-daemon-testbed-underlay.c
368src/testbed/gnunet-helper-testbed.c 370src/testbed/gnunet-helper-testbed.c
369src/testbed/gnunet_mpi_test.c
370src/testbed/gnunet-service-test-barriers.c 371src/testbed/gnunet-service-test-barriers.c
371src/testbed/gnunet-service-testbed_barriers.c
372src/testbed/gnunet-service-testbed.c 372src/testbed/gnunet-service-testbed.c
373src/testbed/gnunet-service-testbed_barriers.c
373src/testbed/gnunet-service-testbed_cache.c 374src/testbed/gnunet-service-testbed_cache.c
374src/testbed/gnunet-service-testbed_connectionpool.c 375src/testbed/gnunet-service-testbed_connectionpool.c
375src/testbed/gnunet-service-testbed_cpustatus.c 376src/testbed/gnunet-service-testbed_cpustatus.c
@@ -377,20 +378,19 @@ src/testbed/gnunet-service-testbed_links.c
377src/testbed/gnunet-service-testbed_meminfo.c 378src/testbed/gnunet-service-testbed_meminfo.c
378src/testbed/gnunet-service-testbed_oc.c 379src/testbed/gnunet-service-testbed_oc.c
379src/testbed/gnunet-service-testbed_peers.c 380src/testbed/gnunet-service-testbed_peers.c
380src/testbed/gnunet_testbed_mpi_spawn.c
381src/testbed/gnunet-testbed-profiler.c 381src/testbed/gnunet-testbed-profiler.c
382src/testbed-logger/gnunet-service-testbed-logger.c 382src/testbed/gnunet_mpi_test.c
383src/testbed-logger/testbed_logger_api.c 383src/testbed/gnunet_testbed_mpi_spawn.c
384src/testbed/testbed_api_barriers.c
385src/testbed/testbed_api.c 384src/testbed/testbed_api.c
385src/testbed/testbed_api_barriers.c
386src/testbed/testbed_api_hosts.c 386src/testbed/testbed_api_hosts.c
387src/testbed/testbed_api_operations.c 387src/testbed/testbed_api_operations.c
388src/testbed/testbed_api_peers.c 388src/testbed/testbed_api_peers.c
389src/testbed/testbed_api_sd.c 389src/testbed/testbed_api_sd.c
390src/testbed/testbed_api_services.c 390src/testbed/testbed_api_services.c
391src/testbed/testbed_api_statistics.c 391src/testbed/testbed_api_statistics.c
392src/testbed/testbed_api_testbed.c
393src/testbed/testbed_api_test.c 392src/testbed/testbed_api_test.c
393src/testbed/testbed_api_testbed.c
394src/testbed/testbed_api_topology.c 394src/testbed/testbed_api_topology.c
395src/testbed/testbed_api_underlay.c 395src/testbed/testbed_api_underlay.c
396src/testing/gnunet-testing.c 396src/testing/gnunet-testing.c
@@ -399,28 +399,28 @@ src/testing/testing.c
399src/topology/friends.c 399src/topology/friends.c
400src/topology/gnunet-daemon-topology.c 400src/topology/gnunet-daemon-topology.c
401src/transport/gnunet-helper-transport-bluetooth.c 401src/transport/gnunet-helper-transport-bluetooth.c
402src/transport/gnunet-helper-transport-wlan.c
403src/transport/gnunet-helper-transport-wlan-dummy.c 402src/transport/gnunet-helper-transport-wlan-dummy.c
404src/transport/gnunet-service-transport_ats.c 403src/transport/gnunet-helper-transport-wlan.c
405src/transport/gnunet-service-transport.c 404src/transport/gnunet-service-transport.c
405src/transport/gnunet-service-transport_ats.c
406src/transport/gnunet-service-transport_hello.c 406src/transport/gnunet-service-transport_hello.c
407src/transport/gnunet-service-transport_manipulation.c 407src/transport/gnunet-service-transport_manipulation.c
408src/transport/gnunet-service-transport_neighbours.c 408src/transport/gnunet-service-transport_neighbours.c
409src/transport/gnunet-service-transport_plugins.c 409src/transport/gnunet-service-transport_plugins.c
410src/transport/gnunet-service-transport_validation.c 410src/transport/gnunet-service-transport_validation.c
411src/transport/gnunet-transport.c
412src/transport/gnunet-transport-certificate-creation.c 411src/transport/gnunet-transport-certificate-creation.c
413src/transport/gnunet-transport-profiler.c 412src/transport/gnunet-transport-profiler.c
414src/transport/gnunet-transport-wlan-receiver.c 413src/transport/gnunet-transport-wlan-receiver.c
415src/transport/gnunet-transport-wlan-sender.c 414src/transport/gnunet-transport-wlan-sender.c
415src/transport/gnunet-transport.c
416src/transport/plugin_transport_http_client.c 416src/transport/plugin_transport_http_client.c
417src/transport/plugin_transport_http_common.c 417src/transport/plugin_transport_http_common.c
418src/transport/plugin_transport_http_server.c 418src/transport/plugin_transport_http_server.c
419src/transport/plugin_transport_smtp.c 419src/transport/plugin_transport_smtp.c
420src/transport/plugin_transport_tcp.c 420src/transport/plugin_transport_tcp.c
421src/transport/plugin_transport_template.c 421src/transport/plugin_transport_template.c
422src/transport/plugin_transport_udp_broadcasting.c
423src/transport/plugin_transport_udp.c 422src/transport/plugin_transport_udp.c
423src/transport/plugin_transport_udp_broadcasting.c
424src/transport/plugin_transport_unix.c 424src/transport/plugin_transport_unix.c
425src/transport/plugin_transport_wlan.c 425src/transport/plugin_transport_wlan.c
426src/transport/plugin_transport_xt.c 426src/transport/plugin_transport_xt.c
@@ -429,6 +429,11 @@ src/transport/tcp_connection_legacy.c
429src/transport/tcp_server_legacy.c 429src/transport/tcp_server_legacy.c
430src/transport/tcp_server_mst_legacy.c 430src/transport/tcp_server_mst_legacy.c
431src/transport/tcp_service_legacy.c 431src/transport/tcp_service_legacy.c
432src/transport/transport-testing-filenames.c
433src/transport/transport-testing-loggers.c
434src/transport/transport-testing-main.c
435src/transport/transport-testing-send.c
436src/transport/transport-testing.c
432src/transport/transport_api_address_to_string.c 437src/transport/transport_api_address_to_string.c
433src/transport/transport_api_blacklist.c 438src/transport/transport_api_blacklist.c
434src/transport/transport_api_core.c 439src/transport/transport_api_core.c
@@ -437,11 +442,6 @@ src/transport/transport_api_manipulation.c
437src/transport/transport_api_monitor_peers.c 442src/transport/transport_api_monitor_peers.c
438src/transport/transport_api_monitor_plugins.c 443src/transport/transport_api_monitor_plugins.c
439src/transport/transport_api_offer_hello.c 444src/transport/transport_api_offer_hello.c
440src/transport/transport-testing.c
441src/transport/transport-testing-filenames.c
442src/transport/transport-testing-loggers.c
443src/transport/transport-testing-main.c
444src/transport/transport-testing-send.c
445src/tun/regex.c 445src/tun/regex.c
446src/tun/tun.c 446src/tun/tun.c
447src/util/bandwidth.c 447src/util/bandwidth.c
@@ -455,8 +455,8 @@ src/util/configuration_loader.c
455src/util/container_bloomfilter.c 455src/util/container_bloomfilter.c
456src/util/container_heap.c 456src/util/container_heap.c
457src/util/container_meta_data.c 457src/util/container_meta_data.c
458src/util/container_multihashmap32.c
459src/util/container_multihashmap.c 458src/util/container_multihashmap.c
459src/util/container_multihashmap32.c
460src/util/container_multipeermap.c 460src/util/container_multipeermap.c
461src/util/container_multishortmap.c 461src/util/container_multishortmap.c
462src/util/crypto_abe.c 462src/util/crypto_abe.c
@@ -476,8 +476,8 @@ src/util/crypto_symmetric.c
476src/util/disk.c 476src/util/disk.c
477src/util/getopt.c 477src/util/getopt.c
478src/util/getopt_helpers.c 478src/util/getopt_helpers.c
479src/util/gnunet-config.c
480src/util/gnunet-config-diff.c 479src/util/gnunet-config-diff.c
480src/util/gnunet-config.c
481src/util/gnunet-ecc.c 481src/util/gnunet-ecc.c
482src/util/gnunet-helper-w32-console.c 482src/util/gnunet-helper-w32-console.c
483src/util/gnunet-resolver.c 483src/util/gnunet-resolver.c
@@ -508,13 +508,13 @@ src/util/time.c
508src/util/w32cat.c 508src/util/w32cat.c
509src/util/win.c 509src/util/win.c
510src/util/winproc.c 510src/util/winproc.c
511src/vpn/gnunet-helper-vpn.c
512src/vpn/gnunet-helper-vpn-windows.c 511src/vpn/gnunet-helper-vpn-windows.c
512src/vpn/gnunet-helper-vpn.c
513src/vpn/gnunet-service-vpn.c 513src/vpn/gnunet-service-vpn.c
514src/vpn/gnunet-vpn.c 514src/vpn/gnunet-vpn.c
515src/vpn/vpn_api.c 515src/vpn/vpn_api.c
516src/zonemaster/gnunet-service-zonemaster.c
517src/zonemaster/gnunet-service-zonemaster-monitor.c 516src/zonemaster/gnunet-service-zonemaster-monitor.c
517src/zonemaster/gnunet-service-zonemaster.c
518src/fs/fs_api.h 518src/fs/fs_api.h
519src/include/gnunet_common.h 519src/include/gnunet_common.h
520src/include/gnunet_mq_lib.h 520src/include/gnunet_mq_lib.h
diff --git a/src/arm/test_arm_api_data.conf b/src/arm/test_arm_api_data.conf
index 276b313b7..fef6cfb40 100644
--- a/src/arm/test_arm_api_data.conf
+++ b/src/arm/test_arm_api_data.conf
@@ -16,7 +16,7 @@ PORT = 23355
16 16
17[do-nothing] 17[do-nothing]
18START_ON_DEMAND = NO 18START_ON_DEMAND = NO
19PORT = 2223 19PORT = 48223
20HOSTNAME = localhost 20HOSTNAME = localhost
21BINARY = /will/be/overwritten/by/test_exponential_backoff 21BINARY = /will/be/overwritten/by/test_exponential_backoff
22ACCEPT_FROM = 127.0.0.1; 22ACCEPT_FROM = 127.0.0.1;
diff --git a/src/ats/ats_api_performance.c b/src/ats/ats_api_performance.c
index caa1da034..0c196ea43 100644
--- a/src/ats/ats_api_performance.c
+++ b/src/ats/ats_api_performance.c
@@ -849,7 +849,7 @@ GNUNET_ATS_performance_change_preference (struct GNUNET_ATS_PerformanceHandle *p
849 count = 0; 849 count = 0;
850 va_start(ap, peer); 850 va_start(ap, peer);
851 while (GNUNET_ATS_PREFERENCE_END != 851 while (GNUNET_ATS_PREFERENCE_END !=
852 (kind = va_arg (ap, enum GNUNET_ATS_PreferenceKind) )) 852 (kind = GNUNET_VA_ARG_ENUM (ap, GNUNET_ATS_PreferenceKind) ))
853 { 853 {
854 switch (kind) 854 switch (kind)
855 { 855 {
@@ -875,7 +875,7 @@ GNUNET_ATS_performance_change_preference (struct GNUNET_ATS_PerformanceHandle *p
875 count = 0; 875 count = 0;
876 va_start(ap, peer); 876 va_start(ap, peer);
877 while (GNUNET_ATS_PREFERENCE_END != (kind = 877 while (GNUNET_ATS_PREFERENCE_END != (kind =
878 va_arg (ap, enum GNUNET_ATS_PreferenceKind) )) 878 GNUNET_VA_ARG_ENUM (ap, GNUNET_ATS_PreferenceKind) ))
879 { 879 {
880 pi[count].preference_kind = htonl (kind); 880 pi[count].preference_kind = htonl (kind);
881 switch (kind) 881 switch (kind)
@@ -927,7 +927,7 @@ GNUNET_ATS_performance_give_feedback (struct GNUNET_ATS_PerformanceHandle *ph,
927 count = 0; 927 count = 0;
928 va_start(ap, scope); 928 va_start(ap, scope);
929 while (GNUNET_ATS_PREFERENCE_END != 929 while (GNUNET_ATS_PREFERENCE_END !=
930 (kind = va_arg (ap, enum GNUNET_ATS_PreferenceKind) )) 930 (kind = GNUNET_VA_ARG_ENUM (ap, GNUNET_ATS_PreferenceKind) ))
931 { 931 {
932 switch (kind) 932 switch (kind)
933 { 933 {
@@ -954,7 +954,7 @@ GNUNET_ATS_performance_give_feedback (struct GNUNET_ATS_PerformanceHandle *ph,
954 count = 0; 954 count = 0;
955 va_start(ap, scope); 955 va_start(ap, scope);
956 while (GNUNET_ATS_PREFERENCE_END != (kind = 956 while (GNUNET_ATS_PREFERENCE_END != (kind =
957 va_arg (ap, enum GNUNET_ATS_PreferenceKind) )) 957 GNUNET_VA_ARG_ENUM (ap, GNUNET_ATS_PreferenceKind) ))
958 { 958 {
959 pi[count].preference_kind = htonl (kind); 959 pi[count].preference_kind = htonl (kind);
960 switch (kind) 960 switch (kind)
diff --git a/src/ats/plugin_ats_mlp.c b/src/ats/plugin_ats_mlp.c
index 7e7594f90..544b8d97f 100644
--- a/src/ats/plugin_ats_mlp.c
+++ b/src/ats/plugin_ats_mlp.c
@@ -1554,6 +1554,7 @@ GAS_mlp_solve_problem (void *solver)
1554 struct GNUNET_TIME_Relative dur_mlp; 1554 struct GNUNET_TIME_Relative dur_mlp;
1555 1555
1556 GNUNET_assert(NULL != solver); 1556 GNUNET_assert(NULL != solver);
1557 dur_lp = GNUNET_TIME_UNIT_ZERO;
1557 1558
1558 if (GNUNET_YES == mlp->stat_bulk_lock) 1559 if (GNUNET_YES == mlp->stat_bulk_lock)
1559 { 1560 {
diff --git a/src/ats/plugin_ats_proportional.c b/src/ats/plugin_ats_proportional.c
index b4ca70dc7..08fb7a9a7 100644
--- a/src/ats/plugin_ats_proportional.c
+++ b/src/ats/plugin_ats_proportional.c
@@ -1005,7 +1005,7 @@ GAS_proportional_address_property_changed (void *solver,
1005static void 1005static void
1006GAS_proportional_address_add (void *solver, 1006GAS_proportional_address_add (void *solver,
1007 struct ATS_Address *address, 1007 struct ATS_Address *address,
1008 enum GNUNET_ATS_Network_Type network) 1008 uint32_t network)
1009{ 1009{
1010 struct GAS_PROPORTIONAL_Handle *s = solver; 1010 struct GAS_PROPORTIONAL_Handle *s = solver;
1011 struct Network *net; 1011 struct Network *net;
diff --git a/src/cadet/cadet_test_lib.c b/src/cadet/cadet_test_lib.c
index 760378c89..1a1c15f48 100644
--- a/src/cadet/cadet_test_lib.c
+++ b/src/cadet/cadet_test_lib.c
@@ -135,6 +135,11 @@ cadet_connect_adapter (void *cls,
135 struct GNUNET_CADET_Handle *h; 135 struct GNUNET_CADET_Handle *h;
136 136
137 h = GNUNET_CADET_connect (cfg); 137 h = GNUNET_CADET_connect (cfg);
138 if (NULL == h)
139 {
140 GNUNET_break(0);
141 return NULL;
142 }
138 if (NULL == ctx->ports) 143 if (NULL == ctx->ports)
139 return h; 144 return h;
140 actx->ports = GNUNET_new_array (ctx->port_count, 145 actx->ports = GNUNET_new_array (ctx->port_count,
diff --git a/src/cadet/gnunet-cadet.c b/src/cadet/gnunet-cadet.c
index 04a595a7b..ed297196e 100644
--- a/src/cadet/gnunet-cadet.c
+++ b/src/cadet/gnunet-cadet.c
@@ -196,6 +196,11 @@ shutdown_task (void *cls)
196{ 196{
197 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 197 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
198 "Shutdown\n"); 198 "Shutdown\n");
199 if (NULL != lp)
200 {
201 GNUNET_CADET_close_port (lp);
202 lp = NULL;
203 }
199 if (NULL != ch) 204 if (NULL != ch)
200 { 205 {
201 GNUNET_CADET_channel_destroy (ch); 206 GNUNET_CADET_channel_destroy (ch);
diff --git a/src/core/test_core_api_data.conf b/src/core/test_core_api_data.conf
index a13cc8706..420849ba9 100644
--- a/src/core/test_core_api_data.conf
+++ b/src/core/test_core_api_data.conf
@@ -6,6 +6,6 @@ WAN_QUOTA_IN = 64 kiB
6WAN_QUOTA_OUT = 64 kiB 6WAN_QUOTA_OUT = 64 kiB
7 7
8[core] 8[core]
9PORT = 2092 9PORT = 52092
10UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-core.sock 10UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-core.sock
11 11
diff --git a/src/core/test_core_api_send_to_self.conf b/src/core/test_core_api_send_to_self.conf
index ad6d4dc60..c2a459bb9 100644
--- a/src/core/test_core_api_send_to_self.conf
+++ b/src/core/test_core_api_send_to_self.conf
@@ -8,7 +8,7 @@ WAN_QUOTA_OUT = 104757600
8 8
9[test-sts] 9[test-sts]
10IMMEDIATE_START = YES 10IMMEDIATE_START = YES
11PORT = 9252 11PORT = 59252
12HOSTNAME = localhost 12HOSTNAME = localhost
13BINARY = test_core_api_send_to_self 13BINARY = test_core_api_send_to_self
14ACCEPT_FROM = 127.0.0.1; 14ACCEPT_FROM = 127.0.0.1;
diff --git a/src/datastore/plugin_datastore_sqlite.c b/src/datastore/plugin_datastore_sqlite.c
index 80960c676..fc1706400 100644
--- a/src/datastore/plugin_datastore_sqlite.c
+++ b/src/datastore/plugin_datastore_sqlite.c
@@ -855,9 +855,10 @@ sqlite_plugin_get_zero_anonymity (void *cls,
855 void *proc_cls) 855 void *proc_cls)
856{ 856{
857 struct Plugin *plugin = cls; 857 struct Plugin *plugin = cls;
858 uint32_t type32 = type;
858 struct GNUNET_SQ_QueryParam params[] = { 859 struct GNUNET_SQ_QueryParam params[] = {
859 GNUNET_SQ_query_param_uint64 (&next_uid), 860 GNUNET_SQ_query_param_uint64 (&next_uid),
860 GNUNET_SQ_query_param_uint32 (&type), 861 GNUNET_SQ_query_param_uint32 (&type32),
861 GNUNET_SQ_query_param_end 862 GNUNET_SQ_query_param_end
862 }; 863 };
863 864
diff --git a/src/dv/test_transport_blacklist_data.conf b/src/dv/test_transport_blacklist_data.conf
index 534a61849..ea55a196b 100644
--- a/src/dv/test_transport_blacklist_data.conf
+++ b/src/dv/test_transport_blacklist_data.conf
@@ -1,5 +1,5 @@
1@INLINE@ template_dv.conf 1@INLINE@ template_dv.conf
2 2
3[transport] 3[transport]
4PORT = 2565 4PORT = 52565
5PLUGINS = tcp 5PLUGINS = tcp
diff --git a/src/dv/test_transport_dv_data.conf b/src/dv/test_transport_dv_data.conf
index 307921ac4..a21fba8a7 100644
--- a/src/dv/test_transport_dv_data.conf
+++ b/src/dv/test_transport_dv_data.conf
@@ -1,7 +1,7 @@
1@INLINE@ template_dv.conf 1@INLINE@ template_dv.conf
2 2
3[transport] 3[transport]
4PORT = 2565 4PORT = 52565
5PLUGINS = tcp dv 5PLUGINS = tcp dv
6#PREFIX = valgrind --leak-check=full --track-fds=yes --leak-resolution=high 6#PREFIX = valgrind --leak-check=full --track-fds=yes --leak-resolution=high
7 7
diff --git a/src/fs/fs_api.c b/src/fs/fs_api.c
index 0857110b1..9b783ba93 100644
--- a/src/fs/fs_api.c
+++ b/src/fs/fs_api.c
@@ -3112,7 +3112,7 @@ GNUNET_FS_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
3112 ret->max_parallel_requests = DEFAULT_MAX_PARALLEL_REQUESTS; 3112 ret->max_parallel_requests = DEFAULT_MAX_PARALLEL_REQUESTS;
3113 ret->avg_block_latency = GNUNET_TIME_UNIT_MINUTES; /* conservative starting point */ 3113 ret->avg_block_latency = GNUNET_TIME_UNIT_MINUTES; /* conservative starting point */
3114 va_start (ap, flags); 3114 va_start (ap, flags);
3115 while (GNUNET_FS_OPTIONS_END != (opt = va_arg (ap, enum GNUNET_FS_OPTIONS))) 3115 while (GNUNET_FS_OPTIONS_END != (opt = GNUNET_VA_ARG_ENUM (ap,GNUNET_FS_OPTIONS)))
3116 { 3116 {
3117 switch (opt) 3117 switch (opt)
3118 { 3118 {
diff --git a/src/fs/gnunet-service-fs_pr.c b/src/fs/gnunet-service-fs_pr.c
index 8c431532f..f1a115cb6 100644
--- a/src/fs/gnunet-service-fs_pr.c
+++ b/src/fs/gnunet-service-fs_pr.c
@@ -1601,7 +1601,7 @@ called_from_on_demand:
1601 GNUNET_BLOCK_get_key (GSF_block_ctx, type, data, size, &query)) 1601 GNUNET_BLOCK_get_key (GSF_block_ctx, type, data, size, &query))
1602 { 1602 {
1603 GNUNET_break (0); 1603 GNUNET_break (0);
1604 GNUNET_DATASTORE_remove (GSF_dsh, key, size, data, -1, -1, 1604 GNUNET_DATASTORE_remove (GSF_dsh, key, size, data, UINT_MAX, UINT_MAX,
1605 NULL, NULL); 1605 NULL, NULL);
1606 start_local_query (pr, 1606 start_local_query (pr,
1607 uid + 1 /* next_uid */, 1607 uid + 1 /* next_uid */,
diff --git a/src/fs/test_fs_defaults.conf b/src/fs/test_fs_defaults.conf
index 42661b25d..6ead78257 100644
--- a/src/fs/test_fs_defaults.conf
+++ b/src/fs/test_fs_defaults.conf
@@ -21,7 +21,7 @@ QUOTA = 100 MB
21 21
22[transport-tcp] 22[transport-tcp]
23BINDTO = 127.0.0.1 23BINDTO = 127.0.0.1
24PORT = 4368 24PORT = 54368
25 25
26[peerinfo] 26[peerinfo]
27NO_IO = YES 27NO_IO = YES
diff --git a/src/gns/gnunet-gns-proxy.c b/src/gns/gnunet-gns-proxy.c
index 08450d995..d66f5c658 100644
--- a/src/gns/gnunet-gns-proxy.c
+++ b/src/gns/gnunet-gns-proxy.c
@@ -1948,7 +1948,7 @@ create_response (void *cls,
1948 s5r); 1948 s5r);
1949 { 1949 {
1950 const char *us; 1950 const char *us;
1951 long upload_size; 1951 long upload_size = 0;
1952 1952
1953 us = MHD_lookup_connection_value (con, 1953 us = MHD_lookup_connection_value (con,
1954 MHD_HEADER_KIND, 1954 MHD_HEADER_KIND,
diff --git a/src/gns/gnunet-service-gns_interceptor.c b/src/gns/gnunet-service-gns_interceptor.c
index ecf4d59f5..42f3e1514 100644
--- a/src/gns/gnunet-service-gns_interceptor.c
+++ b/src/gns/gnunet-service-gns_interceptor.c
@@ -103,7 +103,7 @@ reply_to_dns (void *cls, uint32_t rd_count,
103 unsigned int num_answers; 103 unsigned int num_answers;
104 unsigned int skip_answers; 104 unsigned int skip_answers;
105 unsigned int skip_additional; 105 unsigned int skip_additional;
106 size_t off; 106 size_t off = 0;
107 107
108 /* Put records in the DNS packet */ 108 /* Put records in the DNS packet */
109 num_answers = 0; 109 num_answers = 0;
diff --git a/src/gns/nss/nss_gns.c b/src/gns/nss/nss_gns.c
index 03ac6e09c..9c9233d35 100644
--- a/src/gns/nss/nss_gns.c
+++ b/src/gns/nss/nss_gns.c
@@ -157,7 +157,7 @@ _nss_gns_gethostbyname2_r(
157 * correctly */ 157 * correctly */
158 idx += l; 158 idx += l;
159 159
160 /* Address array address_lenght is always a multiple of 32bits */ 160 /* Address array address_length is always a multiple of 32bits */
161 for (i = 0; i < u.count; i++) 161 for (i = 0; i < u.count; i++)
162 ((char**) (buffer+idx))[i] = buffer+astart+address_length*i; 162 ((char**) (buffer+idx))[i] = buffer+astart+address_length*i;
163 ((char**) (buffer+idx))[i] = NULL; 163 ((char**) (buffer+idx))[i] = NULL;
diff --git a/src/gnsrecord/gnsrecord_serialization.c b/src/gnsrecord/gnsrecord_serialization.c
index adbf02755..934d36102 100644
--- a/src/gnsrecord/gnsrecord_serialization.c
+++ b/src/gnsrecord/gnsrecord_serialization.c
@@ -90,6 +90,9 @@ GNUNET_GNSRECORD_records_get_size (unsigned int rd_count,
90{ 90{
91 size_t ret; 91 size_t ret;
92 92
93 if (0 == rd_count)
94 return 0;
95
93 ret = sizeof (struct NetworkRecord) * rd_count; 96 ret = sizeof (struct NetworkRecord) * rd_count;
94 for (unsigned int i=0;i<rd_count;i++) 97 for (unsigned int i=0;i<rd_count;i++)
95 { 98 {
@@ -120,6 +123,21 @@ GNUNET_GNSRECORD_records_get_size (unsigned int rd_count,
120 GNUNET_break (0); 123 GNUNET_break (0);
121 return -1; 124 return -1;
122 } 125 }
126 //Do not pad PKEY
127 if (GNUNET_GNSRECORD_TYPE_PKEY == rd->record_type)
128 return ret;
129 /**
130 * Efficiently round up to the next
131 * power of 2 for padding
132 * https://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2
133 */
134 ret--;
135 ret |= ret >> 1;
136 ret |= ret >> 2;
137 ret |= ret >> 4;
138 ret |= ret >> 8;
139 ret |= ret >> 16;
140 ret++;
123 return (ssize_t) ret; 141 return (ssize_t) ret;
124} 142}
125 143
@@ -135,9 +153,9 @@ GNUNET_GNSRECORD_records_get_size (unsigned int rd_count,
135 */ 153 */
136ssize_t 154ssize_t
137GNUNET_GNSRECORD_records_serialize (unsigned int rd_count, 155GNUNET_GNSRECORD_records_serialize (unsigned int rd_count,
138 const struct GNUNET_GNSRECORD_Data *rd, 156 const struct GNUNET_GNSRECORD_Data *rd,
139 size_t dest_size, 157 size_t dest_size,
140 char *dest) 158 char *dest)
141{ 159{
142 struct NetworkRecord rec; 160 struct NetworkRecord rec;
143 size_t off; 161 size_t off;
@@ -190,7 +208,10 @@ GNUNET_GNSRECORD_records_serialize (unsigned int rd_count,
190 } 208 }
191#endif 209#endif
192 } 210 }
193 return off; 211 memset (&dest[off],
212 0,
213 dest_size-off);
214 return dest_size;
194} 215}
195 216
196 217
@@ -205,9 +226,9 @@ GNUNET_GNSRECORD_records_serialize (unsigned int rd_count,
205 */ 226 */
206int 227int
207GNUNET_GNSRECORD_records_deserialize (size_t len, 228GNUNET_GNSRECORD_records_deserialize (size_t len,
208 const char *src, 229 const char *src,
209 unsigned int rd_count, 230 unsigned int rd_count,
210 struct GNUNET_GNSRECORD_Data *dest) 231 struct GNUNET_GNSRECORD_Data *dest)
211{ 232{
212 struct NetworkRecord rec; 233 struct NetworkRecord rec;
213 size_t off; 234 size_t off;
diff --git a/src/include/gnunet_common.h b/src/include/gnunet_common.h
index ec91b35ad..b4bf5b0aa 100644
--- a/src/include/gnunet_common.h
+++ b/src/include/gnunet_common.h
@@ -24,6 +24,7 @@
24 * 24 *
25 * @author Christian Grothoff 25 * @author Christian Grothoff
26 * @author Nils Durner 26 * @author Nils Durner
27 * @author Martin Schanzenbach
27 * 28 *
28 * @defgroup logging Logging 29 * @defgroup logging Logging
29 * @see [Documentation](https://gnunet.org/logging) 30 * @see [Documentation](https://gnunet.org/logging)
@@ -112,6 +113,11 @@ extern "C"
112#endif 113#endif
113 114
114/** 115/**
116 * wrap va_arg for enums
117 */
118#define GNUNET_VA_ARG_ENUM(va,X) ((enum X) va_arg (va, int))
119
120/**
115 * @ingroup logging 121 * @ingroup logging
116 * define #GNUNET_EXTRA_LOGGING if using this header outside the GNUnet source 122 * define #GNUNET_EXTRA_LOGGING if using this header outside the GNUnet source
117 * tree where gnunet_config.h is unavailable 123 * tree where gnunet_config.h is unavailable
diff --git a/src/multicast/gnunet-service-multicast.c b/src/multicast/gnunet-service-multicast.c
index cf7dde913..20d29b906 100644
--- a/src/multicast/gnunet-service-multicast.c
+++ b/src/multicast/gnunet-service-multicast.c
@@ -1448,6 +1448,12 @@ check_client_member_join (void *cls,
1448 uint16_t msg_size = ntohs (msg->header.size); 1448 uint16_t msg_size = ntohs (msg->header.size);
1449 struct GNUNET_PeerIdentity *relays = (struct GNUNET_PeerIdentity *) &msg[1]; 1449 struct GNUNET_PeerIdentity *relays = (struct GNUNET_PeerIdentity *) &msg[1];
1450 uint32_t relay_count = ntohl (msg->relay_count); 1450 uint32_t relay_count = ntohl (msg->relay_count);
1451
1452 if (0 == relay_count)
1453 {
1454 GNUNET_break (0);
1455 return GNUNET_SYSERR;
1456 }
1451 if (UINT32_MAX / relay_count < sizeof (*relays)){ 1457 if (UINT32_MAX / relay_count < sizeof (*relays)){
1452 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 1458 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
1453 "relay_count (%lu) * sizeof (*relays) (%lu) exceeds UINT32_MAX!\n", 1459 "relay_count (%lu) * sizeof (*relays) (%lu) exceeds UINT32_MAX!\n",
diff --git a/src/namecache/gnunet-service-namecache.c b/src/namecache/gnunet-service-namecache.c
index cda1267e8..c852aaacc 100644
--- a/src/namecache/gnunet-service-namecache.c
+++ b/src/namecache/gnunet-service-namecache.c
@@ -148,7 +148,11 @@ struct LookupBlockContext
148 * Operation id for the name lookup 148 * Operation id for the name lookup
149 */ 149 */
150 uint32_t request_id; 150 uint32_t request_id;
151 151
152 /**
153 * Lookup status
154 */
155 int status;
152}; 156};
153 157
154 158
@@ -166,7 +170,17 @@ handle_lookup_block_it (void *cls,
166 struct GNUNET_MQ_Envelope *env; 170 struct GNUNET_MQ_Envelope *env;
167 struct LookupBlockResponseMessage *r; 171 struct LookupBlockResponseMessage *r;
168 size_t esize; 172 size_t esize;
173 size_t bsize;
169 174
175 bsize = ntohl (block->purpose.size);
176 if (bsize <
177 (sizeof (struct GNUNET_CRYPTO_EccSignaturePurpose) + sizeof (struct GNUNET_TIME_AbsoluteNBO)))
178 {
179 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
180 "Malformed block.");
181 lnc->status = GNUNET_SYSERR;
182 return;
183 }
170 esize = ntohl (block->purpose.size) 184 esize = ntohl (block->purpose.size)
171 - sizeof (struct GNUNET_CRYPTO_EccSignaturePurpose) 185 - sizeof (struct GNUNET_CRYPTO_EccSignaturePurpose)
172 - sizeof (struct GNUNET_TIME_AbsoluteNBO); 186 - sizeof (struct GNUNET_TIME_AbsoluteNBO);
@@ -209,6 +223,7 @@ handle_lookup_block (void *cls,
209 223
210 lnc.request_id = ntohl (ln_msg->gns_header.r_id); 224 lnc.request_id = ntohl (ln_msg->gns_header.r_id);
211 lnc.nc = nc; 225 lnc.nc = nc;
226 lnc.status = GNUNET_OK;
212 if (GNUNET_SYSERR == 227 if (GNUNET_SYSERR ==
213 (ret = GSN_database->lookup_block (GSN_database->cls, 228 (ret = GSN_database->lookup_block (GSN_database->cls,
214 &ln_msg->query, 229 &ln_msg->query,
@@ -222,7 +237,7 @@ handle_lookup_block (void *cls,
222 GNUNET_SERVICE_client_drop (nc->client); 237 GNUNET_SERVICE_client_drop (nc->client);
223 return; 238 return;
224 } 239 }
225 if (0 == ret) 240 if ((0 == ret) || (GNUNET_SYSERR == lnc.status))
226 { 241 {
227 /* no records match at all, generate empty response */ 242 /* no records match at all, generate empty response */
228 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 243 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
diff --git a/src/namecache/namecache_api.c b/src/namecache/namecache_api.c
index 2bb233da1..2a60a2813 100644
--- a/src/namecache/namecache_api.c
+++ b/src/namecache/namecache_api.c
@@ -483,9 +483,11 @@ GNUNET_NAMECACHE_block_cache (struct GNUNET_NAMECACHE_Handle *h,
483 483
484 if (NULL == h->mq) 484 if (NULL == h->mq)
485 return NULL; 485 return NULL;
486 blen = ntohl (block->purpose.size) 486 blen = ntohl (block->purpose.size);
487 - sizeof (struct GNUNET_TIME_AbsoluteNBO) 487 GNUNET_assert (blen > (sizeof (struct GNUNET_TIME_AbsoluteNBO) +
488 - sizeof (struct GNUNET_CRYPTO_EccSignaturePurpose); 488 sizeof (struct GNUNET_CRYPTO_EccSignaturePurpose)));
489 blen -= (sizeof (struct GNUNET_TIME_AbsoluteNBO) +
490 sizeof (struct GNUNET_CRYPTO_EccSignaturePurpose));
489 rid = get_op_id (h); 491 rid = get_op_id (h);
490 qe = GNUNET_new (struct GNUNET_NAMECACHE_QueueEntry); 492 qe = GNUNET_new (struct GNUNET_NAMECACHE_QueueEntry);
491 qe->nsh = h; 493 qe->nsh = h;
diff --git a/src/namestore/test_namestore_api_lookup_shadow.c b/src/namestore/test_namestore_api_lookup_shadow.c
index ecfd03735..08977712b 100644
--- a/src/namestore/test_namestore_api_lookup_shadow.c
+++ b/src/namestore/test_namestore_api_lookup_shadow.c
@@ -277,9 +277,9 @@ main (int argc, char *argv[])
277 { 277 {
278 res = 1; 278 res = 1;
279 } 279 }
280 GNUNET_free (cfg_name);
281 GNUNET_DISK_purge_cfg_dir (cfg_name, 280 GNUNET_DISK_purge_cfg_dir (cfg_name,
282 "GNUNET_TEST_HOME"); 281 "GNUNET_TEST_HOME");
282 GNUNET_free (cfg_name);
283 return res; 283 return res;
284} 284}
285 285
diff --git a/src/namestore/test_namestore_api_lookup_shadow_filter.c b/src/namestore/test_namestore_api_lookup_shadow_filter.c
index b751ff703..7555f51e7 100644
--- a/src/namestore/test_namestore_api_lookup_shadow_filter.c
+++ b/src/namestore/test_namestore_api_lookup_shadow_filter.c
@@ -352,9 +352,9 @@ main (int argc, char *argv[])
352 { 352 {
353 res = 1; 353 res = 1;
354 } 354 }
355 GNUNET_free (cfg_name);
356 GNUNET_DISK_purge_cfg_dir (cfg_name, 355 GNUNET_DISK_purge_cfg_dir (cfg_name,
357 "GNUNET_TEST_HOME"); 356 "GNUNET_TEST_HOME");
357 GNUNET_free (cfg_name);
358 return res; 358 return res;
359} 359}
360 360
diff --git a/src/namestore/test_namestore_api_sqlite.conf b/src/namestore/test_namestore_api_sqlite.conf
index 82663400a..8c0e557e7 100644
--- a/src/namestore/test_namestore_api_sqlite.conf
+++ b/src/namestore/test_namestore_api_sqlite.conf
@@ -2,6 +2,7 @@
2 2
3[namestore] 3[namestore]
4DATABASE = sqlite 4DATABASE = sqlite
5PREFIX = valgrind --leak-check=full --track-origins=yes --log-file=/tmp/v_log
5 6
6[namestore-sqlite] 7[namestore-sqlite]
7FILENAME = $GNUNET_TEST_HOME/namestore/sqlite_test.db 8FILENAME = $GNUNET_TEST_HOME/namestore/sqlite_test.db
diff --git a/src/nat/test_nat_test_data.conf b/src/nat/test_nat_test_data.conf
index 84de6159e..03850ec06 100644
--- a/src/nat/test_nat_test_data.conf
+++ b/src/nat/test_nat_test_data.conf
@@ -6,7 +6,7 @@ GNUNET_TEST_HOME = $GNUNET_TMP/nat-test
6 6
7[gnunet-nat-server] 7[gnunet-nat-server]
8HOSTNAME = localhost 8HOSTNAME = localhost
9PORT = 12345 9PORT = 57315
10 10
11[nat] 11[nat]
12# Are we behind NAT? 12# Are we behind NAT?
diff --git a/src/rps/gnunet-rps-profiler.c b/src/rps/gnunet-rps-profiler.c
index a0e79e565..16f23e86c 100644
--- a/src/rps/gnunet-rps-profiler.c
+++ b/src/rps/gnunet-rps-profiler.c
@@ -1951,9 +1951,13 @@ static void compute_probabilities (uint32_t peer_idx)
1951 if ((GNUNET_YES == is_in_view (i, peer_idx)) && 1951 if ((GNUNET_YES == is_in_view (i, peer_idx)) &&
1952 (1 <= (0.45 * view_size))) 1952 (1 <= (0.45 * view_size)))
1953 { 1953 {
1954 prob_push = 1.0 * binom (0.45 * view_size, 1) 1954 if (0 == binom (view_size, 0.45 * view_size)) prob_push = 0;
1955 / 1955 else
1956 binom (view_size, 0.45 * view_size); 1956 {
1957 prob_push = 1.0 * binom (0.45 * view_size, 1)
1958 /
1959 binom (view_size, 0.45 * view_size);
1960 }
1957 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 1961 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1958 "\t\t%" PRIu32 " is in %" PRIu32 "'s view, prob: %f\n", 1962 "\t\t%" PRIu32 " is in %" PRIu32 "'s view, prob: %f\n",
1959 peer_idx, 1963 peer_idx,
@@ -2318,6 +2322,7 @@ post_test_shutdown_ready_cb (void *cls,
2318 rps_peer->index); 2322 rps_peer->index);
2319 GNUNET_free (stat_cls); 2323 GNUNET_free (stat_cls);
2320 GNUNET_break (0); 2324 GNUNET_break (0);
2325 return;
2321 } 2326 }
2322 2327
2323 if (NULL != rps_peer->stat_op && 2328 if (NULL != rps_peer->stat_op &&
@@ -2494,7 +2499,6 @@ test_run (void *cls,
2494 struct OpListEntry *entry; 2499 struct OpListEntry *entry;
2495 2500
2496 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "RUN was called\n"); 2501 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "RUN was called\n");
2497 printf ("test 1\n");
2498 2502
2499 /* Check whether we timed out */ 2503 /* Check whether we timed out */
2500 if (n_peers != num_peers || 2504 if (n_peers != num_peers ||
@@ -2578,7 +2582,6 @@ test_run (void *cls,
2578 * 2582 *
2579 * @param argc unused 2583 * @param argc unused
2580 * @param argv unused 2584 * @param argv unused
2581 * @return 0 on success
2582 */ 2585 */
2583static void 2586static void
2584run (void *cls, 2587run (void *cls,
@@ -2635,12 +2638,12 @@ run (void *cls,
2635 } 2638 }
2636 2639
2637 /* Compute number of bits for representing largest peer id */ 2640 /* Compute number of bits for representing largest peer id */
2638 for (bits_needed = 1; (bits_needed << 1) < num_peers - 1; bits_needed++) 2641 for (bits_needed = 1; (1 << bits_needed) < num_peers; bits_needed++)
2639 ; 2642 ;
2640 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 2643 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
2641 "Need %u bits to represent largest peer id %" PRIu32 "\n", 2644 "Need %u bits to represent %" PRIu32 " peers\n",
2642 bits_needed, 2645 bits_needed,
2643 num_peers - 1); 2646 num_peers);
2644 2647
2645 rps_peers = GNUNET_new_array (num_peers, struct RPSPeer); 2648 rps_peers = GNUNET_new_array (num_peers, struct RPSPeer);
2646 peer_map = GNUNET_CONTAINER_multipeermap_create (num_peers, GNUNET_NO); 2649 peer_map = GNUNET_CONTAINER_multipeermap_create (num_peers, GNUNET_NO);
@@ -2654,8 +2657,6 @@ run (void *cls,
2654 with the malicious portion */ 2657 with the malicious portion */
2655 2658
2656 ok = 1; 2659 ok = 1;
2657 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
2658 "before _run()\n");
2659 GNUNET_TESTBED_run (NULL, 2660 GNUNET_TESTBED_run (NULL,
2660 cfg, 2661 cfg,
2661 num_peers, 2662 num_peers,
@@ -2664,10 +2665,6 @@ run (void *cls,
2664 NULL, 2665 NULL,
2665 &test_run, 2666 &test_run,
2666 NULL); 2667 NULL);
2667 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
2668 "after _run()\n");
2669 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
2670 "gnunet-rps-profiler returned.\n");
2671} 2668}
2672 2669
2673/** 2670/**
@@ -2691,7 +2688,7 @@ main (int argc, char *argv[])
2691 GNUNET_GETOPT_option_relative_time ('t', 2688 GNUNET_GETOPT_option_relative_time ('t',
2692 "timeout", 2689 "timeout",
2693 "TIMEOUT", 2690 "TIMEOUT",
2694 gettext_noop ("timeout for DHT PUT and GET requests (default: 1 min)"), 2691 gettext_noop ("timeout for the profiling"),
2695 &timeout), 2692 &timeout),
2696 2693
2697 GNUNET_GETOPT_option_uint ('r', 2694 GNUNET_GETOPT_option_uint ('r',
diff --git a/src/rps/gnunet-rps.c b/src/rps/gnunet-rps.c
index e09277589..739f71dac 100644
--- a/src/rps/gnunet-rps.c
+++ b/src/rps/gnunet-rps.c
@@ -155,7 +155,11 @@ run (void *cls,
155 (!view_update)) 155 (!view_update))
156 { /* Request n PeerIDs */ 156 { /* Request n PeerIDs */
157 /* If number was specified use it, else request single peer. */ 157 /* If number was specified use it, else request single peer. */
158 num_peers = (NULL == args[0]) ? 1 : atoi (args[0]); 158 if (NULL == args[0] ||
159 0 == sscanf (args[0], "%lu", &num_peers))
160 {
161 num_peers = 1;
162 }
159 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 163 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
160 "Requesting %" PRIu64 " PeerIDs\n", num_peers); 164 "Requesting %" PRIu64 " PeerIDs\n", num_peers);
161 req_handle = GNUNET_RPS_request_peers (rps_handle, num_peers, reply_handle, NULL); 165 req_handle = GNUNET_RPS_request_peers (rps_handle, num_peers, reply_handle, NULL);
@@ -163,7 +167,11 @@ run (void *cls,
163 } else if (view_update) 167 } else if (view_update)
164 { 168 {
165 /* Get updates of view */ 169 /* Get updates of view */
166 num_view_updates = (NULL == args[0]) ? 0 : atoi (args[0]); 170 if (NULL == args[0] ||
171 0 == sscanf (args[0], "%lu", &num_view_updates))
172 {
173 num_view_updates = 0;
174 }
167 GNUNET_RPS_view_request (rps_handle, num_view_updates, view_update_handle, NULL); 175 GNUNET_RPS_view_request (rps_handle, num_view_updates, view_update_handle, NULL);
168 if (0 != num_view_updates) 176 if (0 != num_view_updates)
169 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 177 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
diff --git a/src/rps/rps-test_util.c b/src/rps/rps-test_util.c
index 9a1dfe0d8..0ee290e67 100644
--- a/src/rps/rps-test_util.c
+++ b/src/rps/rps-test_util.c
@@ -155,6 +155,9 @@ to_file_raw (const char *file_name, const char *buf, size_t size_buf)
155 155
156 return; 156 return;
157 } 157 }
158 if (GNUNET_YES != GNUNET_DISK_file_close (f))
159 LOG (GNUNET_ERROR_TYPE_WARNING,
160 "Unable to close file\n");
158} 161}
159 162
160void 163void
@@ -384,7 +387,7 @@ store_prefix_file_name (const struct GNUNET_PeerIdentity *peer,
384 const char *prefix) 387 const char *prefix)
385{ 388{
386 unsigned int len_file_name; 389 unsigned int len_file_name;
387 unsigned int out_size; 390 int out_size;
388 char *file_name; 391 char *file_name;
389 const char *pid_long; 392 const char *pid_long;
390 393
diff --git a/src/rps/test_rps.conf b/src/rps/test_rps.conf
index 77a0df2c5..05bb9f444 100644
--- a/src/rps/test_rps.conf
+++ b/src/rps/test_rps.conf
@@ -21,17 +21,24 @@ FILENAME_VALID_PEERS = $GNUNET_DATA_HOME/rps/valid_peers.txt
21# So, 50 is enough for a network of size 50^3 = 125000 21# So, 50 is enough for a network of size 50^3 = 125000
22MINSIZE = 4 22MINSIZE = 4
23 23
24
25
24[testbed] 26[testbed]
25HOSTNAME = localhost 27HOSTNAME = localhost
26 28
27# OPERATION_TIMEOUT = 60 s
28
29# MAX_PARALLEL_TOPOLOGY_CONFIG_OPERATIONS = 100 29# MAX_PARALLEL_TOPOLOGY_CONFIG_OPERATIONS = 100
30OVERLAY_TOPOLOGY = CLIQUE
31#OVERLAY_TOPOLOGY = SMALL_WORLD
32#SCALE_FREE_TOPOLOGY_CAP =
33 30
34# OVERLAY_RANDOM_LINKS = 25 31#OVERLAY_TOPOLOGY = CLIQUE
32
33OVERLAY_TOPOLOGY = SCALE_FREE
34SCALE_FREE_TOPOLOGY_CAP = 100
35SCALE_FREE_TOPOLOGY_M = 2
36
37#OVERLAY_TOPOLOGY = RANDOM
38#OVERLAY_RANDOM_LINKS = 25
39
40#OVERLAY_TOPOLOGY = SMALL_WORLD
41#OVERLAY_RANDOM_LINKS = 25
35 42
36SETUP_TIMEOUT = 2 m 43SETUP_TIMEOUT = 2 m
37 44
@@ -41,12 +48,13 @@ WORKBITS = 0
41[nat] 48[nat]
42# Use addresses from the local network interfaces (inluding loopback, but also others) 49# Use addresses from the local network interfaces (inluding loopback, but also others)
43USE_LOCALADDR = YES 50USE_LOCALADDR = YES
51ENABLE_UPNP = NO
44 52
45# Do we use addresses from localhost address ranges? (::1, 127.0.0.0/8) 53# Do we use addresses from localhost address ranges? (::1, 127.0.0.0/8)
46RETURN_LOCAL_ADDRESSES = YES 54RETURN_LOCAL_ADDRESSES = YES
47 55
48[transport] 56[transport]
49PLUGINS = udp 57PLUGINS = unix
50 58
51[ats] 59[ats]
52# Network specific inbound/outbound quotas 60# Network specific inbound/outbound quotas
@@ -72,7 +80,6 @@ BLUETOOTH_QUOTA_OUT = unlimited
72DISABLE_TRY_CONNECT = YES 80DISABLE_TRY_CONNECT = YES
73 81
74[cadet] 82[cadet]
75DISABLE_TRY_CONNECT = YES
76#OPTIONS=-l /tmp/rps_profiler_logs/cadet-[]-%Y-%m-%d.log 83#OPTIONS=-l /tmp/rps_profiler_logs/cadet-[]-%Y-%m-%d.log
77#PREFIX = valgrind 84#PREFIX = valgrind
78 85
diff --git a/src/template/template.conf b/src/template/template.conf
index e5f675a5d..24b123390 100644
--- a/src/template/template.conf
+++ b/src/template/template.conf
@@ -1,6 +1,10 @@
1[template] 1[template]
2START_ON_DEMAND = NO 2START_ON_DEMAND = NO
3PORT = 9999 3# for tests please come up with numbers that are
4# unlikely to be in use by anyone. we typically
5# use five digit numbers < 65536 with no "beauty"
6# (no repetitions, no sequences, no popularity).
7PORT = 99999
4HOSTNAME = localhost 8HOSTNAME = localhost
5BINARY = gnunet-service-template 9BINARY = gnunet-service-template
6ACCEPT_FROM = 127.0.0.1; 10ACCEPT_FROM = 127.0.0.1;
diff --git a/src/testbed/test_testbed_api_statistics.conf b/src/testbed/test_testbed_api_statistics.conf
index 50d3f2c04..edb2e2057 100644
--- a/src/testbed/test_testbed_api_statistics.conf
+++ b/src/testbed/test_testbed_api_statistics.conf
@@ -6,4 +6,4 @@ MAX_PARALLEL_SERVICE_CONNECTIONS = 2
6 6
7[statistics] 7[statistics]
8START_ON_DEMAND = YES 8START_ON_DEMAND = YES
9PORT = 30 9PORT = 59530
diff --git a/src/testbed/testbed_api_topology.c b/src/testbed/testbed_api_topology.c
index 51a8b979a..114055a07 100644
--- a/src/testbed/testbed_api_topology.c
+++ b/src/testbed/testbed_api_topology.c
@@ -1391,7 +1391,7 @@ GNUNET_TESTBED_overlay_configure_topology_va (void *op_cls,
1391 } 1391 }
1392 do 1392 do
1393 { 1393 {
1394 secondary_option = va_arg (va, enum GNUNET_TESTBED_TopologyOption); 1394 secondary_option = GNUNET_VA_ARG_ENUM (va, GNUNET_TESTBED_TopologyOption);
1395 1395
1396 switch (secondary_option) 1396 switch (secondary_option)
1397 { 1397 {
@@ -1552,7 +1552,7 @@ GNUNET_TESTBED_underlay_construct_ (int num_peers,
1552 tc.type = TOPOLOGYCONTEXT_TYPE_UNDERLAY; 1552 tc.type = TOPOLOGYCONTEXT_TYPE_UNDERLAY;
1553 underlay = &tc.u.underlay; 1553 underlay = &tc.u.underlay;
1554 va_start (vargs, cls); 1554 va_start (vargs, cls);
1555 topology = va_arg (vargs, enum GNUNET_TESTBED_TopologyOption); 1555 topology = GNUNET_VA_ARG_ENUM (vargs, GNUNET_TESTBED_TopologyOption);
1556 switch (topology) 1556 switch (topology)
1557 { 1557 {
1558 case GNUNET_TESTBED_TOPOLOGY_LINE: 1558 case GNUNET_TESTBED_TOPOLOGY_LINE:
diff --git a/src/testing/test_testing_sharedservices.conf b/src/testing/test_testing_sharedservices.conf
index e41e2863c..24ce1b358 100644
--- a/src/testing/test_testing_sharedservices.conf
+++ b/src/testing/test_testing_sharedservices.conf
@@ -2,7 +2,7 @@
2GNUNET_TEST_HOME = $GNUNET_TMP/test-gnunet-testing/ 2GNUNET_TEST_HOME = $GNUNET_TMP/test-gnunet-testing/
3 3
4[testbed-logger] 4[testbed-logger]
5PORT = 15000 5PORT = 59132
6UNIXPATH = $GNUNET_RUNTIME_DIR/testbed-logger.sock 6UNIXPATH = $GNUNET_RUNTIME_DIR/testbed-logger.sock
7DIR = $GNUNET_TMP/testbed-logger 7DIR = $GNUNET_TMP/testbed-logger
8 8
diff --git a/src/transport/test_plugin_transport_data.conf b/src/transport/test_plugin_transport_data.conf
index cbecc56ed..b667a4854 100644
--- a/src/transport/test_plugin_transport_data.conf
+++ b/src/transport/test_plugin_transport_data.conf
@@ -3,10 +3,10 @@
3GNUNET_TEST_HOME = $GNUNET_TMP/test-gnunetd-plugin-transport/ 3GNUNET_TEST_HOME = $GNUNET_TMP/test-gnunetd-plugin-transport/
4 4
5[transport-tcp] 5[transport-tcp]
6PORT = 2400 6PORT = 52400
7 7
8[transport-udp] 8[transport-udp]
9PORT = 2401 9PORT = 52401
10 10
11[transport-wlan] 11[transport-wlan]
12INTERFACE = mon0 12INTERFACE = mon0
@@ -17,29 +17,29 @@ INTERFACE = hci0
17TESTMODE = 1 17TESTMODE = 1
18 18
19[transport-http_server] 19[transport-http_server]
20PORT = 2402 20PORT = 52402
21 21
22[transport-https_server] 22[transport-https_server]
23PORT = 2403 23PORT = 52403
24 24
25[arm] 25[arm]
26PORT = 2360 26PORT = 52360
27UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-arm.sock 27UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-arm.sock
28 28
29[statistics] 29[statistics]
30PORT = 2361 30PORT = 52361
31UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-statistics.sock 31UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-statistics.sock
32 32
33[resolver] 33[resolver]
34PORT = 2362 34PORT = 52362
35UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-resolver.sock 35UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-resolver.sock
36 36
37[peerinfo] 37[peerinfo]
38PORT = 2363 38PORT = 52363
39UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-peerinfo.sock 39UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-peerinfo.sock
40 40
41[transport] 41[transport]
42PORT = 2364 42PORT = 52364
43UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-transport.sock 43UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-transport.sock
44 44
45[nat] 45[nat]
diff --git a/src/transport/test_quota_compliance_data.conf b/src/transport/test_quota_compliance_data.conf
index 47c523bcf..1bc607770 100644
--- a/src/transport/test_quota_compliance_data.conf
+++ b/src/transport/test_quota_compliance_data.conf
@@ -3,22 +3,22 @@
3GNUNET_TEST_HOME = $GNUNET_TMP/test-gnunetd-plugin-transport/ 3GNUNET_TEST_HOME = $GNUNET_TMP/test-gnunetd-plugin-transport/
4 4
5[transport-tcp] 5[transport-tcp]
6PORT = 2368 6PORT = 52368
7TIMEOUT = 5 s 7TIMEOUT = 5 s
8 8
9[arm] 9[arm]
10PORT = 2366 10PORT = 52366
11 11
12[statistics] 12[statistics]
13PORT = 2367 13PORT = 52367
14 14
15[resolver] 15[resolver]
16PORT = 2364 16PORT = 52364
17 17
18[peerinfo] 18[peerinfo]
19PORT = 2369 19PORT = 52369
20 20
21[transport] 21[transport]
22PORT = 2365 22PORT = 52365
23 23
24 24
diff --git a/src/transport/test_quota_compliance_http_asymmetric_peer1.conf b/src/transport/test_quota_compliance_http_asymmetric_peer1.conf
index 201bafd01..b2ff1913f 100644
--- a/src/transport/test_quota_compliance_http_asymmetric_peer1.conf
+++ b/src/transport/test_quota_compliance_http_asymmetric_peer1.conf
@@ -5,23 +5,23 @@ GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer1
5[transport-http_client] 5[transport-http_client]
6 6
7[arm] 7[arm]
8PORT = 4015 8PORT = 54015
9UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_arm_peer1.sock 9UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_arm_peer1.sock
10 10
11[statistics] 11[statistics]
12PORT = 4014 12PORT = 54014
13UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_statistics_peer1.sock 13UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_statistics_peer1.sock
14 14
15[resolver] 15[resolver]
16PORT = 4013 16PORT = 54013
17UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_resolver_peer1.sock 17UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_resolver_peer1.sock
18 18
19[peerinfo] 19[peerinfo]
20PORT = 4012 20PORT = 54012
21UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_peerinfo_peer1.sock 21UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_peerinfo_peer1.sock
22 22
23[transport] 23[transport]
24PORT = 4011 24PORT = 54011
25PLUGINS = http_client 25PLUGINS = http_client
26UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_transport_peer1.sock 26UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_transport_peer1.sock
27 27
diff --git a/src/transport/test_quota_compliance_http_asymmetric_peer2.conf b/src/transport/test_quota_compliance_http_asymmetric_peer2.conf
index cdc10516b..3408d9f2e 100644
--- a/src/transport/test_quota_compliance_http_asymmetric_peer2.conf
+++ b/src/transport/test_quota_compliance_http_asymmetric_peer2.conf
@@ -3,29 +3,29 @@
3GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer2 3GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer2
4 4
5[transport-http_server] 5[transport-http_server]
6PORT = 3010 6PORT = 53010
7USE_IPv6 = NO 7USE_IPv6 = NO
8BINDTO = 127.0.0.1 8BINDTO = 127.0.0.1
9 9
10 10
11[arm] 11[arm]
12PORT = 3015 12PORT = 53015
13UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_arm_peer2.sock 13UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_arm_peer2.sock
14 14
15[statistics] 15[statistics]
16PORT = 3014 16PORT = 53014
17UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_statistics_peer2.sock 17UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_statistics_peer2.sock
18 18
19[resolver] 19[resolver]
20PORT = 3013 20PORT = 53013
21UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_resolver_peer2.sock 21UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_resolver_peer2.sock
22 22
23[peerinfo] 23[peerinfo]
24PORT = 3012 24PORT = 53012
25UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_peerinfo_peer2.sock 25UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_peerinfo_peer2.sock
26 26
27[transport] 27[transport]
28PORT = 3011 28PORT = 53011
29PLUGINS = http_server 29PLUGINS = http_server
30UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_transport_peer2.sock 30UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_transport_peer2.sock
31 31
diff --git a/src/transport/test_quota_compliance_http_peer1.conf b/src/transport/test_quota_compliance_http_peer1.conf
index 201bafd01..b2ff1913f 100644
--- a/src/transport/test_quota_compliance_http_peer1.conf
+++ b/src/transport/test_quota_compliance_http_peer1.conf
@@ -5,23 +5,23 @@ GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer1
5[transport-http_client] 5[transport-http_client]
6 6
7[arm] 7[arm]
8PORT = 4015 8PORT = 54015
9UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_arm_peer1.sock 9UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_arm_peer1.sock
10 10
11[statistics] 11[statistics]
12PORT = 4014 12PORT = 54014
13UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_statistics_peer1.sock 13UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_statistics_peer1.sock
14 14
15[resolver] 15[resolver]
16PORT = 4013 16PORT = 54013
17UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_resolver_peer1.sock 17UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_resolver_peer1.sock
18 18
19[peerinfo] 19[peerinfo]
20PORT = 4012 20PORT = 54012
21UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_peerinfo_peer1.sock 21UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_peerinfo_peer1.sock
22 22
23[transport] 23[transport]
24PORT = 4011 24PORT = 54011
25PLUGINS = http_client 25PLUGINS = http_client
26UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_transport_peer1.sock 26UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_transport_peer1.sock
27 27
diff --git a/src/transport/test_quota_compliance_http_peer2.conf b/src/transport/test_quota_compliance_http_peer2.conf
index cdc10516b..3408d9f2e 100644
--- a/src/transport/test_quota_compliance_http_peer2.conf
+++ b/src/transport/test_quota_compliance_http_peer2.conf
@@ -3,29 +3,29 @@
3GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer2 3GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer2
4 4
5[transport-http_server] 5[transport-http_server]
6PORT = 3010 6PORT = 53010
7USE_IPv6 = NO 7USE_IPv6 = NO
8BINDTO = 127.0.0.1 8BINDTO = 127.0.0.1
9 9
10 10
11[arm] 11[arm]
12PORT = 3015 12PORT = 53015
13UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_arm_peer2.sock 13UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_arm_peer2.sock
14 14
15[statistics] 15[statistics]
16PORT = 3014 16PORT = 53014
17UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_statistics_peer2.sock 17UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_statistics_peer2.sock
18 18
19[resolver] 19[resolver]
20PORT = 3013 20PORT = 53013
21UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_resolver_peer2.sock 21UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_resolver_peer2.sock
22 22
23[peerinfo] 23[peerinfo]
24PORT = 3012 24PORT = 53012
25UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_peerinfo_peer2.sock 25UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_peerinfo_peer2.sock
26 26
27[transport] 27[transport]
28PORT = 3011 28PORT = 53011
29PLUGINS = http_server 29PLUGINS = http_server
30UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_transport_peer2.sock 30UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_http_transport_peer2.sock
31 31
diff --git a/src/transport/test_quota_compliance_https_asymmetric_peer1.conf b/src/transport/test_quota_compliance_https_asymmetric_peer1.conf
index 3e8895665..94aa534ef 100644
--- a/src/transport/test_quota_compliance_https_asymmetric_peer1.conf
+++ b/src/transport/test_quota_compliance_https_asymmetric_peer1.conf
@@ -5,23 +5,23 @@ GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer1/
5[transport-https_client] 5[transport-https_client]
6 6
7[arm] 7[arm]
8PORT = 4006 8PORT = 54006
9UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_arm_peer1.sock 9UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_arm_peer1.sock
10 10
11[statistics] 11[statistics]
12PORT = 4005 12PORT = 54005
13UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_statistics_peer1.sock 13UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_statistics_peer1.sock
14 14
15[resolver] 15[resolver]
16PORT = 4004 16PORT = 54004
17UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_resolver_peer1.sock 17UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_resolver_peer1.sock
18 18
19[peerinfo] 19[peerinfo]
20PORT = 4003 20PORT = 54003
21UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_peerinfo_peer1.sock 21UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_peerinfo_peer1.sock
22 22
23[transport] 23[transport]
24PORT = 4002 24PORT = 54002
25PLUGINS = https_client 25PLUGINS = https_client
26UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_transport_peer1.sock 26UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_transport_peer1.sock
27 27
diff --git a/src/transport/test_quota_compliance_https_asymmetric_peer2.conf b/src/transport/test_quota_compliance_https_asymmetric_peer2.conf
index e0ff8da9f..8fb8861cd 100644
--- a/src/transport/test_quota_compliance_https_asymmetric_peer2.conf
+++ b/src/transport/test_quota_compliance_https_asymmetric_peer2.conf
@@ -3,28 +3,28 @@
3GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer2 3GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer2
4 4
5[transport-https_server] 5[transport-https_server]
6PORT = 3001 6PORT = 53001
7KEY_FILE = https_key_quota_p2.key 7KEY_FILE = https_key_quota_p2.key
8CERT_FILE = https_cert_qutoa_p2.crt 8CERT_FILE = https_cert_qutoa_p2.crt
9 9
10[arm] 10[arm]
11PORT = 3006 11PORT = 53006
12UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_arm_peer2.sock 12UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_arm_peer2.sock
13 13
14[statistics] 14[statistics]
15PORT = 3005 15PORT = 53005
16UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_statistics_peer2.sock 16UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_statistics_peer2.sock
17 17
18[resolver] 18[resolver]
19PORT = 3004 19PORT = 53004
20UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_resolver_peer2.sock 20UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_resolver_peer2.sock
21 21
22[peerinfo] 22[peerinfo]
23PORT = 3003 23PORT = 53003
24UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_peerinfo_peer2.sock 24UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_peerinfo_peer2.sock
25 25
26[transport] 26[transport]
27PORT = 3002 27PORT = 53002
28PLUGINS = https_server 28PLUGINS = https_server
29UNIXPATH = $GNUNET_RUNTIME_DIR/https_transport_peer2.sock 29UNIXPATH = $GNUNET_RUNTIME_DIR/https_transport_peer2.sock
30 30
diff --git a/src/transport/test_quota_compliance_https_peer1.conf b/src/transport/test_quota_compliance_https_peer1.conf
index 3e8895665..94aa534ef 100644
--- a/src/transport/test_quota_compliance_https_peer1.conf
+++ b/src/transport/test_quota_compliance_https_peer1.conf
@@ -5,23 +5,23 @@ GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer1/
5[transport-https_client] 5[transport-https_client]
6 6
7[arm] 7[arm]
8PORT = 4006 8PORT = 54006
9UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_arm_peer1.sock 9UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_arm_peer1.sock
10 10
11[statistics] 11[statistics]
12PORT = 4005 12PORT = 54005
13UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_statistics_peer1.sock 13UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_statistics_peer1.sock
14 14
15[resolver] 15[resolver]
16PORT = 4004 16PORT = 54004
17UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_resolver_peer1.sock 17UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_resolver_peer1.sock
18 18
19[peerinfo] 19[peerinfo]
20PORT = 4003 20PORT = 54003
21UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_peerinfo_peer1.sock 21UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_peerinfo_peer1.sock
22 22
23[transport] 23[transport]
24PORT = 4002 24PORT = 54002
25PLUGINS = https_client 25PLUGINS = https_client
26UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_transport_peer1.sock 26UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_transport_peer1.sock
27 27
diff --git a/src/transport/test_quota_compliance_https_peer2.conf b/src/transport/test_quota_compliance_https_peer2.conf
index e0ff8da9f..8fb8861cd 100644
--- a/src/transport/test_quota_compliance_https_peer2.conf
+++ b/src/transport/test_quota_compliance_https_peer2.conf
@@ -3,28 +3,28 @@
3GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer2 3GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer2
4 4
5[transport-https_server] 5[transport-https_server]
6PORT = 3001 6PORT = 53001
7KEY_FILE = https_key_quota_p2.key 7KEY_FILE = https_key_quota_p2.key
8CERT_FILE = https_cert_qutoa_p2.crt 8CERT_FILE = https_cert_qutoa_p2.crt
9 9
10[arm] 10[arm]
11PORT = 3006 11PORT = 53006
12UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_arm_peer2.sock 12UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_arm_peer2.sock
13 13
14[statistics] 14[statistics]
15PORT = 3005 15PORT = 53005
16UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_statistics_peer2.sock 16UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_statistics_peer2.sock
17 17
18[resolver] 18[resolver]
19PORT = 3004 19PORT = 53004
20UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_resolver_peer2.sock 20UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_resolver_peer2.sock
21 21
22[peerinfo] 22[peerinfo]
23PORT = 3003 23PORT = 53003
24UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_peerinfo_peer2.sock 24UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_https_peerinfo_peer2.sock
25 25
26[transport] 26[transport]
27PORT = 3002 27PORT = 53002
28PLUGINS = https_server 28PLUGINS = https_server
29UNIXPATH = $GNUNET_RUNTIME_DIR/https_transport_peer2.sock 29UNIXPATH = $GNUNET_RUNTIME_DIR/https_transport_peer2.sock
30 30
diff --git a/src/transport/test_quota_compliance_tcp_asymmetric_peer1.conf b/src/transport/test_quota_compliance_tcp_asymmetric_peer1.conf
index 59fbbff5b..0e0cbff24 100644
--- a/src/transport/test_quota_compliance_tcp_asymmetric_peer1.conf
+++ b/src/transport/test_quota_compliance_tcp_asymmetric_peer1.conf
@@ -3,29 +3,29 @@
3GNUNET_TEST_HOME = $GNUNET_TMP/test-transport/quota-tcp-p1/ 3GNUNET_TEST_HOME = $GNUNET_TMP/test-transport/quota-tcp-p1/
4 4
5[transport-tcp] 5[transport-tcp]
6PORT = 4094 6PORT = 54094
7 7
8[transport-udp] 8[transport-udp]
9PORT = 4094 9PORT = 54094
10 10
11[arm] 11[arm]
12PORT = 4087 12PORT = 54087
13UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_arm_peer1.sock 13UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_arm_peer1.sock
14 14
15[statistics] 15[statistics]
16PORT = 4088 16PORT = 54088
17UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_statistics_peer1.sock 17UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_statistics_peer1.sock
18 18
19[resolver] 19[resolver]
20PORT = 4089 20PORT = 54089
21UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_resolver_peer1.sock 21UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_resolver_peer1.sock
22 22
23[peerinfo] 23[peerinfo]
24PORT = 4090 24PORT = 54090
25UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_peerinfo_peer1.sock 25UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_peerinfo_peer1.sock
26 26
27[transport] 27[transport]
28PORT = 4091 28PORT = 54091
29PLUGINS = tcp 29PLUGINS = tcp
30UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_transport_peer1.sock 30UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_transport_peer1.sock
31 31
diff --git a/src/transport/test_quota_compliance_tcp_peer1.conf b/src/transport/test_quota_compliance_tcp_peer1.conf
index 59fbbff5b..0e0cbff24 100644
--- a/src/transport/test_quota_compliance_tcp_peer1.conf
+++ b/src/transport/test_quota_compliance_tcp_peer1.conf
@@ -3,29 +3,29 @@
3GNUNET_TEST_HOME = $GNUNET_TMP/test-transport/quota-tcp-p1/ 3GNUNET_TEST_HOME = $GNUNET_TMP/test-transport/quota-tcp-p1/
4 4
5[transport-tcp] 5[transport-tcp]
6PORT = 4094 6PORT = 54094
7 7
8[transport-udp] 8[transport-udp]
9PORT = 4094 9PORT = 54094
10 10
11[arm] 11[arm]
12PORT = 4087 12PORT = 54087
13UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_arm_peer1.sock 13UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_arm_peer1.sock
14 14
15[statistics] 15[statistics]
16PORT = 4088 16PORT = 54088
17UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_statistics_peer1.sock 17UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_statistics_peer1.sock
18 18
19[resolver] 19[resolver]
20PORT = 4089 20PORT = 54089
21UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_resolver_peer1.sock 21UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_resolver_peer1.sock
22 22
23[peerinfo] 23[peerinfo]
24PORT = 4090 24PORT = 54090
25UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_peerinfo_peer1.sock 25UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_peerinfo_peer1.sock
26 26
27[transport] 27[transport]
28PORT = 4091 28PORT = 54091
29PLUGINS = tcp 29PLUGINS = tcp
30UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_transport_peer1.sock 30UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_tcp_transport_peer1.sock
31 31
diff --git a/src/transport/test_quota_compliance_udp_peer1.conf b/src/transport/test_quota_compliance_udp_peer1.conf
index b7c3159b8..bba75c168 100644
--- a/src/transport/test_quota_compliance_udp_peer1.conf
+++ b/src/transport/test_quota_compliance_udp_peer1.conf
@@ -3,27 +3,27 @@
3GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer1/ 3GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer1/
4 4
5[transport-udp] 5[transport-udp]
6PORT = 4368 6PORT = 54368
7MAX_BPS = 50000000 7MAX_BPS = 50000000
8 8
9[arm] 9[arm]
10PORT = 4087 10PORT = 54087
11UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_arm_peer1.sock 11UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_arm_peer1.sock
12 12
13[statistics] 13[statistics]
14PORT = 4088 14PORT = 54088
15UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_statistics_peer1.sock 15UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_statistics_peer1.sock
16 16
17[resolver] 17[resolver]
18PORT = 4089 18PORT = 54089
19UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_resolver_peer1.sock 19UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_resolver_peer1.sock
20 20
21[peerinfo] 21[peerinfo]
22PORT = 4090 22PORT = 54090
23UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_peerinfo_peer1.sock 23UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_peerinfo_peer1.sock
24 24
25[transport] 25[transport]
26PORT = 4091 26PORT = 54091
27PLUGINS = udp 27PLUGINS = udp
28UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_transport_peer1.sock 28UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_transport_peer1.sock
29 29
diff --git a/src/transport/test_quota_compliance_udp_peer2.conf b/src/transport/test_quota_compliance_udp_peer2.conf
index 70e61db05..1cb04038c 100644
--- a/src/transport/test_quota_compliance_udp_peer2.conf
+++ b/src/transport/test_quota_compliance_udp_peer2.conf
@@ -3,27 +3,27 @@
3GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer2 3GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer2
4 4
5[transport-udp] 5[transport-udp]
6PORT = 3368 6PORT = 53368
7MAX_BPS = 50000000 7MAX_BPS = 50000000
8 8
9[arm] 9[arm]
10PORT = 3087 10PORT = 53087
11UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_arm_peer2.sock 11UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_arm_peer2.sock
12 12
13[statistics] 13[statistics]
14PORT = 3088 14PORT = 53088
15UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_statistics_peer2.sock 15UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_statistics_peer2.sock
16 16
17[resolver] 17[resolver]
18PORT = 3089 18PORT = 53089
19UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_resolver_peer2.sock 19UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_resolver_peer2.sock
20 20
21[peerinfo] 21[peerinfo]
22PORT = 3090 22PORT = 53090
23UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_peerinfo_peer2.sock 23UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_peerinfo_peer2.sock
24 24
25[transport] 25[transport]
26PORT = 3091 26PORT = 53091
27PLUGINS = udp 27PLUGINS = udp
28UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_transport_peer2.sock 28UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_udp_transport_peer2.sock
29 29
diff --git a/src/transport/test_quota_compliance_unix_asymmetric_peer1.conf b/src/transport/test_quota_compliance_unix_asymmetric_peer1.conf
index 8d6073b67..a8ee6d77a 100644
--- a/src/transport/test_quota_compliance_unix_asymmetric_peer1.conf
+++ b/src/transport/test_quota_compliance_unix_asymmetric_peer1.conf
@@ -3,26 +3,26 @@
3GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer1/ 3GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer1/
4 4
5[arm] 5[arm]
6PORT = 4087 6PORT = 54087
7UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_arm_peer1.sock 7UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_arm_peer1.sock
8 8
9[statistics] 9[statistics]
10PORT = 4088 10PORT = 54088
11UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_statistics_peer1.sock 11UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_statistics_peer1.sock
12 12
13[resolver] 13[resolver]
14PORT = 4089 14PORT = 54089
15UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_resolver_peer1.sock 15UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_resolver_peer1.sock
16 16
17[peerinfo] 17[peerinfo]
18PORT = 4090 18PORT = 54090
19UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_peerinfo_peer1.sock 19UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_peerinfo_peer1.sock
20 20
21[transport] 21[transport]
22PORT = 4091 22PORT = 54091
23PLUGINS = unix 23PLUGINS = unix
24UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_transport_peer1.sock 24UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_transport_peer1.sock
25 25
26[transport-unix] 26[transport-unix]
27PORT = 4092 27PORT = 54092
28 28
diff --git a/src/transport/test_quota_compliance_unix_asymmetric_peer2.conf b/src/transport/test_quota_compliance_unix_asymmetric_peer2.conf
index a3a42f739..6edbcac9f 100644
--- a/src/transport/test_quota_compliance_unix_asymmetric_peer2.conf
+++ b/src/transport/test_quota_compliance_unix_asymmetric_peer2.conf
@@ -3,26 +3,26 @@
3GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer2 3GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer2
4 4
5[arm] 5[arm]
6PORT = 3087 6PORT = 53087
7UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_arm_peer2.sock 7UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_arm_peer2.sock
8 8
9[statistics] 9[statistics]
10PORT = 3088 10PORT = 53088
11UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_statistics_peer2.sock 11UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_statistics_peer2.sock
12 12
13[resolver] 13[resolver]
14PORT = 3089 14PORT = 53089
15UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_resolver_peer2.sock 15UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_resolver_peer2.sock
16 16
17[peerinfo] 17[peerinfo]
18PORT = 3090 18PORT = 53090
19UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_peerinfo_peer2.sock 19UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_peerinfo_peer2.sock
20 20
21[transport] 21[transport]
22PORT = 3091 22PORT = 53091
23PLUGINS = unix 23PLUGINS = unix
24UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_transport_peer2.sock 24UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_transport_peer2.sock
25 25
26[transport-unix] 26[transport-unix]
27PORT = 3368 27PORT = 53368
28 28
diff --git a/src/transport/test_quota_compliance_unix_peer1.conf b/src/transport/test_quota_compliance_unix_peer1.conf
index d9255705c..59c8d6d9e 100644
--- a/src/transport/test_quota_compliance_unix_peer1.conf
+++ b/src/transport/test_quota_compliance_unix_peer1.conf
@@ -6,22 +6,22 @@ GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer1/
6PORT = 12120 6PORT = 12120
7 7
8[arm] 8[arm]
9PORT = 4087 9PORT = 54087
10UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_arm_peer1.sock 10UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_arm_peer1.sock
11 11
12[statistics] 12[statistics]
13PORT = 4088 13PORT = 54088
14UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_statistics_peer1.sock 14UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_statistics_peer1.sock
15 15
16[resolver] 16[resolver]
17PORT = 4089 17PORT = 54089
18UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_resolver_peer1.sock 18UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_resolver_peer1.sock
19 19
20[peerinfo] 20[peerinfo]
21PORT = 4090 21PORT = 54090
22UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_peerinfo_peer1.sock 22UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_peerinfo_peer1.sock
23 23
24[transport] 24[transport]
25PORT = 4091 25PORT = 54091
26PLUGINS = unix 26PLUGINS = unix
27UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_transport_peer1.sock 27UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_transport_peer1.sock
diff --git a/src/transport/test_quota_compliance_unix_peer2.conf b/src/transport/test_quota_compliance_unix_peer2.conf
index b7ba15d86..8c2f9989e 100644
--- a/src/transport/test_quota_compliance_unix_peer2.conf
+++ b/src/transport/test_quota_compliance_unix_peer2.conf
@@ -6,26 +6,26 @@ GNUNET_TEST_HOME = $GNUNET_TMP/test_quota_compliance_peer2
6PORT = 12136 6PORT = 12136
7 7
8[arm] 8[arm]
9PORT = 3087 9PORT = 53087
10UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_arm_peer2.sock 10UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_arm_peer2.sock
11 11
12[statistics] 12[statistics]
13PORT = 3088 13PORT = 53088
14UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_statistics_peer2.sock 14UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_statistics_peer2.sock
15 15
16[resolver] 16[resolver]
17PORT = 3089 17PORT = 53089
18UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_resolver_peer2.sock 18UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_resolver_peer2.sock
19 19
20[peerinfo] 20[peerinfo]
21PORT = 3090 21PORT = 53090
22UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_peerinfo_peer2.sock 22UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_peerinfo_peer2.sock
23 23
24[transport] 24[transport]
25PORT = 3091 25PORT = 53091
26PLUGINS = unix 26PLUGINS = unix
27UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_transport_peer2.sock 27UNIXPATH = $GNUNET_RUNTIME_DIR/test_quota_compliance_unix_transport_peer2.sock
28 28
29[transport-unix] 29[transport-unix]
30PORT = 3368 30PORT = 53368
31 31
diff --git a/src/transport/test_transport_api_data.conf b/src/transport/test_transport_api_data.conf
index 58b8e17b0..c06235a0a 100644
--- a/src/transport/test_transport_api_data.conf
+++ b/src/transport/test_transport_api_data.conf
@@ -2,8 +2,8 @@
2[PATHS] 2[PATHS]
3 3
4[transport-tcp] 4[transport-tcp]
5PORT = 2094 5PORT = 52094
6 6
7[transport-udp] 7[transport-udp]
8PORT = 2094 8PORT = 52094
9 9
diff --git a/src/transport/test_transport_api_reliability_tcp_nat_peer1.conf b/src/transport/test_transport_api_reliability_tcp_nat_peer1.conf
index 6aa9dbf22..6a2029b09 100644
--- a/src/transport/test_transport_api_reliability_tcp_nat_peer1.conf
+++ b/src/transport/test_transport_api_reliability_tcp_nat_peer1.conf
@@ -12,7 +12,7 @@ PORT = 0
12TIMEOUT = 5 s 12TIMEOUT = 5 s
13 13
14[arm] 14[arm]
15PORT = 1204 15PORT = 51204
16UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-p1-service-arm.sock 16UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-p1-service-arm.sock
17 17
18[statistics] 18[statistics]
diff --git a/src/transport/test_transport_api_tcp_nat_peer1.conf b/src/transport/test_transport_api_tcp_nat_peer1.conf
index b8d83ce29..fb2fcecc6 100644
--- a/src/transport/test_transport_api_tcp_nat_peer1.conf
+++ b/src/transport/test_transport_api_tcp_nat_peer1.conf
@@ -12,7 +12,7 @@ PORT = 0
12TIMEOUT = 5 s 12TIMEOUT = 5 s
13 13
14[arm] 14[arm]
15PORT = 1204 15PORT = 51204
16UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-p1-service-arm.sock 16UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-p1-service-arm.sock
17 17
18[statistics] 18[statistics]
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
index 208cab07b..4296199db 100644
--- a/src/util/Makefile.am
+++ b/src/util/Makefile.am
@@ -199,6 +199,9 @@ gnunet_service_resolver_SOURCES = \
199gnunet_service_resolver_LDADD = \ 199gnunet_service_resolver_LDADD = \
200 libgnunetutil.la \ 200 libgnunetutil.la \
201 $(GN_LIBINTL) 201 $(GN_LIBINTL)
202if HAVE_GETADDRINFO_A
203gnunet_service_resolver_LDADD += -lanl
204endif
202 205
203 206
204gnunet_resolver_SOURCES = \ 207gnunet_resolver_SOURCES = \
diff --git a/src/util/common_logging.c b/src/util/common_logging.c
index 85e17248b..f875d165d 100644
--- a/src/util/common_logging.c
+++ b/src/util/common_logging.c
@@ -626,6 +626,9 @@ parse_definitions (const char *constname, int force)
626 to_line = INT_MAX; 626 to_line = INT_MAX;
627 } 627 }
628 break; 628 break;
629 default:
630 fprintf(stderr, "ERROR: Unable to parse log defintion: Syntax error.\n");
631 break;
629 } 632 }
630 start = p + 1; 633 start = p + 1;
631 state++; 634 state++;
@@ -652,6 +655,7 @@ parse_definitions (const char *constname, int force)
652 start = p + 1; 655 start = p + 1;
653 break; 656 break;
654 default: 657 default:
658 fprintf(stderr, "ERROR: Unable to parse log defintion: Syntax error.\n");
655 break; 659 break;
656 } 660 }
657 default: 661 default:
diff --git a/src/util/disk.c b/src/util/disk.c
index 31e8f12c6..e0227be70 100644
--- a/src/util/disk.c
+++ b/src/util/disk.c
@@ -830,6 +830,12 @@ GNUNET_DISK_directory_create_for_file (const char *filename)
830 errno = EINVAL; 830 errno = EINVAL;
831 return GNUNET_SYSERR; 831 return GNUNET_SYSERR;
832 } 832 }
833 if (0 == ACCESS (rdir, W_OK))
834 {
835 GNUNET_free (rdir);
836 return GNUNET_OK;
837 }
838
833 len = strlen (rdir); 839 len = strlen (rdir);
834 while ((len > 0) && (rdir[len] != DIR_SEPARATOR)) 840 while ((len > 0) && (rdir[len] != DIR_SEPARATOR))
835 len--; 841 len--;
@@ -1686,16 +1692,19 @@ GNUNET_DISK_file_open (const char *fn,
1686 return NULL; 1692 return NULL;
1687 } 1693 }
1688 if (flags & GNUNET_DISK_OPEN_FAILIFEXISTS) 1694 if (flags & GNUNET_DISK_OPEN_FAILIFEXISTS)
1689 oflags |= (O_CREAT | O_EXCL); 1695 oflags |= (O_CREAT | O_EXCL);
1690 if (flags & GNUNET_DISK_OPEN_TRUNCATE) 1696 if (flags & GNUNET_DISK_OPEN_TRUNCATE)
1691 oflags |= O_TRUNC; 1697 oflags |= O_TRUNC;
1692 if (flags & GNUNET_DISK_OPEN_APPEND) 1698 if (flags & GNUNET_DISK_OPEN_APPEND)
1693 oflags |= O_APPEND; 1699 oflags |= O_APPEND;
1694 if (flags & GNUNET_DISK_OPEN_CREATE) 1700 if(GNUNET_NO == GNUNET_DISK_file_test(fn))
1695 { 1701 {
1696 (void) GNUNET_DISK_directory_create_for_file (expfn); 1702 if (flags & GNUNET_DISK_OPEN_CREATE )
1697 oflags |= O_CREAT; 1703 {
1698 mode = translate_unix_perms (perm); 1704 (void) GNUNET_DISK_directory_create_for_file (expfn);
1705 oflags |= O_CREAT;
1706 mode = translate_unix_perms (perm);
1707 }
1699 } 1708 }
1700 1709
1701 fd = open (expfn, oflags 1710 fd = open (expfn, oflags
diff --git a/src/util/gnunet-service-resolver.c b/src/util/gnunet-service-resolver.c
index d26ec659f..d90d8ec10 100644
--- a/src/util/gnunet-service-resolver.c
+++ b/src/util/gnunet-service-resolver.c
@@ -84,6 +84,16 @@ static struct IPCache *cache_head;
84 */ 84 */
85static struct IPCache *cache_tail; 85static struct IPCache *cache_tail;
86 86
87/**
88 * Pipe for asynchronously notifying about resolve result
89 */
90static struct GNUNET_DISK_PipeHandle *resolve_result_pipe;
91
92/**
93 * Task for reading from resolve_result_pipe
94 */
95static struct GNUNET_SCHEDULER_Task *resolve_result_pipe_task;
96
87 97
88#if HAVE_GETNAMEINFO 98#if HAVE_GETNAMEINFO
89/** 99/**
@@ -223,14 +233,15 @@ notify_service_client_done (void *cls)
223static void 233static void
224get_ip_as_string (struct GNUNET_SERVICE_Client *client, 234get_ip_as_string (struct GNUNET_SERVICE_Client *client,
225 int af, 235 int af,
226 const void *ip) 236 const void *ip,
237 uint32_t request_id)
227{ 238{
228 struct IPCache *pos; 239 struct IPCache *pos;
229 struct IPCache *next; 240 struct IPCache *next;
230 struct GNUNET_TIME_Absolute now; 241 struct GNUNET_TIME_Absolute now;
231 struct GNUNET_MQ_Envelope *env; 242 struct GNUNET_MQ_Envelope *env;
232 struct GNUNET_MQ_Handle *mq; 243 struct GNUNET_MQ_Handle *mq;
233 struct GNUNET_MessageHeader *msg; 244 struct GNUNET_RESOLVER_ResponseMessage *msg;
234 size_t ip_len; 245 size_t ip_len;
235 struct in6_addr ix; 246 struct in6_addr ix;
236 size_t alen; 247 size_t alen;
@@ -304,13 +315,16 @@ get_ip_as_string (struct GNUNET_SERVICE_Client *client,
304 env = GNUNET_MQ_msg_extra (msg, 315 env = GNUNET_MQ_msg_extra (msg,
305 alen, 316 alen,
306 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE); 317 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE);
318 msg->id = request_id;
307 GNUNET_memcpy (&msg[1], 319 GNUNET_memcpy (&msg[1],
308 pos->addr, 320 pos->addr,
309 alen); 321 alen);
310 GNUNET_MQ_send (mq, 322 GNUNET_MQ_send (mq,
311 env); 323 env);
324 // send end message
312 env = GNUNET_MQ_msg (msg, 325 env = GNUNET_MQ_msg (msg,
313 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE); 326 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE);
327 msg->id = request_id;
314 GNUNET_MQ_notify_sent (env, 328 GNUNET_MQ_notify_sent (env,
315 &notify_service_client_done, 329 &notify_service_client_done,
316 client); 330 client);
@@ -319,17 +333,152 @@ get_ip_as_string (struct GNUNET_SERVICE_Client *client,
319} 333}
320 334
321 335
322#if HAVE_GETADDRINFO 336#if HAVE_GETADDRINFO_A
337struct AsyncCls
338{
339 struct gaicb *host;
340 struct sigevent *sig;
341 struct GNUNET_MQ_Handle *mq;
342 uint32_t request_id;
343};
344
345
346static void
347resolve_result_pipe_cb (void *cls)
348{
349 struct AsyncCls *async_cls;
350 struct gaicb *host;
351 struct GNUNET_RESOLVER_ResponseMessage *msg;
352 struct GNUNET_MQ_Envelope *env;
353
354 GNUNET_DISK_file_read (GNUNET_DISK_pipe_handle (resolve_result_pipe,
355 GNUNET_DISK_PIPE_END_READ),
356 &async_cls,
357 sizeof (struct AsyncCls *));
358 resolve_result_pipe_task =
359 GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
360 GNUNET_DISK_pipe_handle (resolve_result_pipe,
361 GNUNET_DISK_PIPE_END_READ),
362 &resolve_result_pipe_cb,
363 NULL);
364 host = async_cls->host;
365 for (struct addrinfo *pos = host->ar_result; pos != NULL; pos = pos->ai_next)
366 {
367 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
368 "Lookup result for hostname %s: %s (request ID %u)\n",
369 host->ar_name,
370 GNUNET_a2s (pos->ai_addr, pos->ai_addrlen),
371 async_cls->request_id);
372 switch (pos->ai_family)
373 {
374 case AF_INET:
375 env = GNUNET_MQ_msg_extra (msg,
376 sizeof (struct in_addr),
377 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE);
378 msg->id = async_cls->request_id;
379 GNUNET_memcpy (&msg[1],
380 &((struct sockaddr_in*) pos->ai_addr)->sin_addr,
381 sizeof (struct in_addr));
382 GNUNET_MQ_send (async_cls->mq,
383 env);
384 break;
385 case AF_INET6:
386 env = GNUNET_MQ_msg_extra (msg,
387 sizeof (struct in6_addr),
388 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE);
389 msg->id = async_cls->request_id;
390 GNUNET_memcpy (&msg[1],
391 &((struct sockaddr_in6*) pos->ai_addr)->sin6_addr,
392 sizeof (struct in6_addr));
393 GNUNET_MQ_send (async_cls->mq,
394 env);
395 break;
396 default:
397 /* unsupported, skip */
398 break;
399 }
400 }
401 // send end message
402 env = GNUNET_MQ_msg (msg,
403 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE);
404 msg->id = async_cls->request_id;
405 GNUNET_MQ_send (async_cls->mq,
406 env);
407 freeaddrinfo (host->ar_result);
408 GNUNET_free ((struct gaicb *)host->ar_request); // free hints
409 GNUNET_free (host);
410 GNUNET_free (async_cls->sig);
411 GNUNET_free (async_cls);
412}
413
414
415static void
416handle_async_result (union sigval val)
417{
418 GNUNET_DISK_file_write (GNUNET_DISK_pipe_handle (resolve_result_pipe,
419 GNUNET_DISK_PIPE_END_WRITE),
420 &val.sival_ptr,
421 sizeof (val.sival_ptr));
422}
423
424
425static int
426getaddrinfo_a_resolve (struct GNUNET_MQ_Handle *mq,
427 const char *hostname,
428 int af,
429 uint32_t request_id)
430{
431 int ret;
432 struct gaicb *host;
433 struct addrinfo *hints;
434 struct sigevent *sig;
435 struct AsyncCls *async_cls;
436
437 host = GNUNET_new (struct gaicb);
438 hints = GNUNET_new (struct addrinfo);
439 sig = GNUNET_new (struct sigevent);
440 async_cls = GNUNET_new (struct AsyncCls);
441 memset (hints,
442 0,
443 sizeof (struct addrinfo));
444 memset (sig,
445 0,
446 sizeof (struct sigevent));
447 hints->ai_family = af;
448 hints->ai_socktype = SOCK_STREAM; /* go for TCP */
449 host->ar_name = hostname;
450 host->ar_service = NULL;
451 host->ar_request = hints;
452 host->ar_result = NULL;
453 sig->sigev_notify = SIGEV_THREAD;
454 sig->sigev_value.sival_ptr = async_cls;
455 sig->sigev_notify_function = &handle_async_result;
456 async_cls->host = host;
457 async_cls->sig = sig;
458 async_cls->mq = mq;
459 async_cls->request_id = request_id;
460 ret = getaddrinfo_a (GAI_NOWAIT,
461 &host,
462 1,
463 sig);
464 if (0 != ret)
465 return GNUNET_SYSERR;
466 return GNUNET_OK;
467}
468
469
470#elif HAVE_GETADDRINFO
323static int 471static int
324getaddrinfo_resolve (struct GNUNET_MQ_Handle *mq, 472getaddrinfo_resolve (struct GNUNET_MQ_Handle *mq,
325 const char *hostname, 473 const char *hostname,
326 int af) 474 int af,
475 uint32_t request_id)
327{ 476{
328 int s; 477 int s;
329 struct addrinfo hints; 478 struct addrinfo hints;
330 struct addrinfo *result; 479 struct addrinfo *result;
331 struct addrinfo *pos; 480 struct addrinfo *pos;
332 struct GNUNET_MessageHeader *msg; 481 struct GNUNET_RESOLVER_ResponseMessage *msg;
333 struct GNUNET_MQ_Envelope *env; 482 struct GNUNET_MQ_Envelope *env;
334 483
335#ifdef WINDOWS 484#ifdef WINDOWS
@@ -340,10 +489,12 @@ getaddrinfo_resolve (struct GNUNET_MQ_Handle *mq,
340 int ret2; 489 int ret2;
341 ret1 = getaddrinfo_resolve (mq, 490 ret1 = getaddrinfo_resolve (mq,
342 hostname, 491 hostname,
343 AF_INET); 492 AF_INET,
493 request_id);
344 ret2 = getaddrinfo_resolve (mq, 494 ret2 = getaddrinfo_resolve (mq,
345 hostname, 495 hostname,
346 AF_INET6); 496 AF_INET6,
497 request_id);
347 if ( (ret1 == GNUNET_OK) || 498 if ( (ret1 == GNUNET_OK) ||
348 (ret2 == GNUNET_OK) ) 499 (ret2 == GNUNET_OK) )
349 return GNUNET_OK; 500 return GNUNET_OK;
@@ -389,6 +540,7 @@ getaddrinfo_resolve (struct GNUNET_MQ_Handle *mq,
389 env = GNUNET_MQ_msg_extra (msg, 540 env = GNUNET_MQ_msg_extra (msg,
390 sizeof (struct in_addr), 541 sizeof (struct in_addr),
391 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE); 542 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE);
543 msg->id = request_id;
392 GNUNET_memcpy (&msg[1], 544 GNUNET_memcpy (&msg[1],
393 &((struct sockaddr_in*) pos->ai_addr)->sin_addr, 545 &((struct sockaddr_in*) pos->ai_addr)->sin_addr,
394 sizeof (struct in_addr)); 546 sizeof (struct in_addr));
@@ -399,6 +551,7 @@ getaddrinfo_resolve (struct GNUNET_MQ_Handle *mq,
399 env = GNUNET_MQ_msg_extra (msg, 551 env = GNUNET_MQ_msg_extra (msg,
400 sizeof (struct in6_addr), 552 sizeof (struct in6_addr),
401 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE); 553 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE);
554 msg->id = request_id;
402 GNUNET_memcpy (&msg[1], 555 GNUNET_memcpy (&msg[1],
403 &((struct sockaddr_in6*) pos->ai_addr)->sin6_addr, 556 &((struct sockaddr_in6*) pos->ai_addr)->sin6_addr,
404 sizeof (struct in6_addr)); 557 sizeof (struct in6_addr));
@@ -421,13 +574,14 @@ getaddrinfo_resolve (struct GNUNET_MQ_Handle *mq,
421static int 574static int
422gethostbyname2_resolve (struct GNUNET_MQ_Handle *mq, 575gethostbyname2_resolve (struct GNUNET_MQ_Handle *mq,
423 const char *hostname, 576 const char *hostname,
424 int af) 577 int af,
578 uint32_t request_id)
425{ 579{
426 struct hostent *hp; 580 struct hostent *hp;
427 int ret1; 581 int ret1;
428 int ret2; 582 int ret2;
429 struct GNUNET_MQ_Envelope *env; 583 struct GNUNET_MQ_Envelope *env;
430 struct GNUNET_MessageHeader *msg; 584 struct GNUNET_RESOLVER_ResponseMessage *msg;
431 585
432#ifdef WINDOWS 586#ifdef WINDOWS
433 /* gethostbyname2() in plibc is a compat dummy that calls gethostbyname(). */ 587 /* gethostbyname2() in plibc is a compat dummy that calls gethostbyname(). */
@@ -438,10 +592,12 @@ gethostbyname2_resolve (struct GNUNET_MQ_Handle *mq,
438 { 592 {
439 ret1 = gethostbyname2_resolve (mq, 593 ret1 = gethostbyname2_resolve (mq,
440 hostname, 594 hostname,
441 AF_INET); 595 AF_INET,
596 request_id);
442 ret2 = gethostbyname2_resolve (mq, 597 ret2 = gethostbyname2_resolve (mq,
443 hostname, 598 hostname,
444 AF_INET6); 599 AF_INET6,
600 request_id);
445 if ( (ret1 == GNUNET_OK) || 601 if ( (ret1 == GNUNET_OK) ||
446 (ret2 == GNUNET_OK) ) 602 (ret2 == GNUNET_OK) )
447 return GNUNET_OK; 603 return GNUNET_OK;
@@ -468,6 +624,7 @@ gethostbyname2_resolve (struct GNUNET_MQ_Handle *mq,
468 env = GNUNET_MQ_msg_extra (msg, 624 env = GNUNET_MQ_msg_extra (msg,
469 hp->h_length, 625 hp->h_length,
470 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE); 626 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE);
627 msg->id = request_id;
471 GNUNET_memcpy (&msg[1], 628 GNUNET_memcpy (&msg[1],
472 hp->h_addr_list[0], 629 hp->h_addr_list[0],
473 hp->h_length); 630 hp->h_length);
@@ -479,6 +636,7 @@ gethostbyname2_resolve (struct GNUNET_MQ_Handle *mq,
479 env = GNUNET_MQ_msg_extra (msg, 636 env = GNUNET_MQ_msg_extra (msg,
480 hp->h_length, 637 hp->h_length,
481 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE); 638 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE);
639 msg->id = request_id;
482 GNUNET_memcpy (&msg[1], 640 GNUNET_memcpy (&msg[1],
483 hp->h_addr_list[0], 641 hp->h_addr_list[0],
484 hp->h_length); 642 hp->h_length);
@@ -497,10 +655,11 @@ gethostbyname2_resolve (struct GNUNET_MQ_Handle *mq,
497 655
498static int 656static int
499gethostbyname_resolve (struct GNUNET_MQ_Handle *mq, 657gethostbyname_resolve (struct GNUNET_MQ_Handle *mq,
500 const char *hostname) 658 const char *hostname,
659 uint32_t request_id)
501{ 660{
502 struct hostent *hp; 661 struct hostent *hp;
503 struct GNUNET_MessageHeader *msg; 662 struct GNUNET_RESOLVER_ResponseMessage *msg;
504 struct GNUNET_MQ_Envelope *env; 663 struct GNUNET_MQ_Envelope *env;
505 664
506 hp = GETHOSTBYNAME (hostname); 665 hp = GETHOSTBYNAME (hostname);
@@ -521,6 +680,7 @@ gethostbyname_resolve (struct GNUNET_MQ_Handle *mq,
521 env = GNUNET_MQ_msg_extra (msg, 680 env = GNUNET_MQ_msg_extra (msg,
522 hp->h_length, 681 hp->h_length,
523 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE); 682 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE);
683 msg->id = request_id;
524 GNUNET_memcpy (&msg[1], 684 GNUNET_memcpy (&msg[1],
525 hp->h_addr_list[0], 685 hp->h_addr_list[0],
526 hp->h_length); 686 hp->h_length);
@@ -541,34 +701,42 @@ gethostbyname_resolve (struct GNUNET_MQ_Handle *mq,
541static void 701static void
542get_ip_from_hostname (struct GNUNET_SERVICE_Client *client, 702get_ip_from_hostname (struct GNUNET_SERVICE_Client *client,
543 const char *hostname, 703 const char *hostname,
544 int af) 704 int af,
705 uint32_t request_id)
545{ 706{
546 int ret;
547 struct GNUNET_MQ_Handle *mq;
548 struct GNUNET_MQ_Envelope *env; 707 struct GNUNET_MQ_Envelope *env;
549 struct GNUNET_MessageHeader *msg; 708 struct GNUNET_RESOLVER_ResponseMessage *msg;
709 struct GNUNET_MQ_Handle *mq;
550 710
551 mq = GNUNET_SERVICE_client_get_mq (client); 711 mq = GNUNET_SERVICE_client_get_mq (client);
552 ret = GNUNET_NO; 712#if HAVE_GETADDRINFO_A
553#if HAVE_GETADDRINFO 713 getaddrinfo_a_resolve (mq,
554 if (ret == GNUNET_NO) 714 hostname,
555 ret = getaddrinfo_resolve (mq, 715 af,
556 hostname, 716 request_id);
557 af); 717 GNUNET_SERVICE_client_continue (client);
718 return;
719#elif HAVE_GETADDRINFO
720 getaddrinfo_resolve (mq,
721 hostname,
722 af,
723 request_id);
558#elif HAVE_GETHOSTBYNAME2 724#elif HAVE_GETHOSTBYNAME2
559 if (ret == GNUNET_NO) 725 gethostbyname2_resolve (mq,
560 ret = gethostbyname2_resolve (mq, 726 hostname,
561 hostname, 727 af,
562 af); 728 request_id);
563#elif HAVE_GETHOSTBYNAME 729#elif HAVE_GETHOSTBYNAME
564 if ( (ret == GNUNET_NO) && 730 if ( ( (af == AF_UNSPEC) ||
565 ( (af == AF_UNSPEC) ||
566 (af == PF_INET) ) ) 731 (af == PF_INET) ) )
567 gethostbyname_resolve (mq, 732 gethostbyname_resolve (mq,
568 hostname); 733 hostname,
734 request_id);
569#endif 735#endif
736 // send end message
570 env = GNUNET_MQ_msg (msg, 737 env = GNUNET_MQ_msg (msg,
571 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE); 738 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE);
739 msg->id = request_id;
572 GNUNET_MQ_notify_sent (env, 740 GNUNET_MQ_notify_sent (env,
573 &notify_service_client_done, 741 &notify_service_client_done,
574 client); 742 client);
@@ -647,21 +815,21 @@ handle_get (void *cls,
647 const void *ip; 815 const void *ip;
648 int direction; 816 int direction;
649 int af; 817 int af;
818 uint32_t id;
650 819
651 direction = ntohl (msg->direction); 820 direction = ntohl (msg->direction);
652 af = ntohl (msg->af); 821 af = ntohl (msg->af);
822 id = ntohl (msg->id);
653 if (GNUNET_NO == direction) 823 if (GNUNET_NO == direction)
654 { 824 {
655 /* IP from hostname */ 825 /* IP from hostname */
656 const char *hostname; 826 const char *hostname;
657 827
658 hostname = (const char *) &msg[1]; 828 hostname = (const char *) &msg[1];
659 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
660 "Resolver asked to look up `%s'.\n",
661 hostname);
662 get_ip_from_hostname (client, 829 get_ip_from_hostname (client,
663 hostname, 830 hostname,
664 af); 831 af,
832 id);
665 return; 833 return;
666 } 834 }
667 ip = &msg[1]; 835 ip = &msg[1];
@@ -671,16 +839,18 @@ handle_get (void *cls,
671 char buf[INET6_ADDRSTRLEN]; 839 char buf[INET6_ADDRSTRLEN];
672 840
673 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 841 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
674 "Resolver asked to look up IP address `%s'.\n", 842 "Resolver asked to look up IP address `%s (request ID %u)'.\n",
675 inet_ntop (af, 843 inet_ntop (af,
676 ip, 844 ip,
677 buf, 845 buf,
678 sizeof (buf))); 846 sizeof (buf)),
847 id);
679 } 848 }
680#endif 849#endif
681 get_ip_as_string (client, 850 get_ip_as_string (client,
682 af, 851 af,
683 ip); 852 ip,
853 id);
684} 854}
685 855
686 856
@@ -700,6 +870,19 @@ connect_cb (void *cls,
700 (void) cls; 870 (void) cls;
701 (void) mq; 871 (void) mq;
702 872
873#if HAVE_GETADDRINFO_A
874 resolve_result_pipe = GNUNET_DISK_pipe (GNUNET_NO,
875 GNUNET_NO,
876 GNUNET_NO,
877 GNUNET_NO);
878 GNUNET_assert (NULL != resolve_result_pipe);
879 resolve_result_pipe_task =
880 GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
881 GNUNET_DISK_pipe_handle (resolve_result_pipe,
882 GNUNET_DISK_PIPE_END_READ),
883 &resolve_result_pipe_cb,
884 NULL);
885#endif
703 return c; 886 return c;
704} 887}
705 888
@@ -718,6 +901,18 @@ disconnect_cb (void *cls,
718{ 901{
719 (void) cls; 902 (void) cls;
720 903
904#if HAVE_GETADDRINFO_A
905 if (NULL != resolve_result_pipe_task)
906 {
907 GNUNET_SCHEDULER_cancel (resolve_result_pipe_task);
908 resolve_result_pipe_task = NULL;
909 }
910 if (NULL != resolve_result_pipe)
911 {
912 GNUNET_DISK_pipe_close (resolve_result_pipe);
913 resolve_result_pipe = NULL;
914 }
915#endif
721 GNUNET_assert (c == internal_cls); 916 GNUNET_assert (c == internal_cls);
722} 917}
723 918
diff --git a/src/util/resolver.h b/src/util/resolver.h
index 0b137f085..a0f105afa 100644
--- a/src/util/resolver.h
+++ b/src/util/resolver.h
@@ -56,10 +56,37 @@ struct GNUNET_RESOLVER_GetMessage
56 */ 56 */
57 int32_t af GNUNET_PACKED; 57 int32_t af GNUNET_PACKED;
58 58
59 /**
60 * identifies the request and is contained in the response message. The
61 * client has to match response to request by this identifier.
62 */
63 uint32_t id GNUNET_PACKED;
64
59 /* followed by 0-terminated string for A/AAAA-lookup or 65 /* followed by 0-terminated string for A/AAAA-lookup or
60 by 'struct in_addr' / 'struct in6_addr' for reverse lookup */ 66 by 'struct in_addr' / 'struct in6_addr' for reverse lookup */
61 67
62}; 68};
69
70
71struct GNUNET_RESOLVER_ResponseMessage
72{
73 /**
74 * Type: GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE
75 */
76 struct GNUNET_MessageHeader header;
77
78 /**
79 * identifies the request this message responds to. The client
80 * has to match response to request by this identifier.
81 */
82 uint32_t id GNUNET_PACKED;
83
84 /* followed by 0-terminated string for response to a reverse lookup
85 * or by 'struct in_addr' / 'struct in6_addr' for response to
86 * A/AAAA-lookup
87 */
88};
89
63GNUNET_NETWORK_STRUCT_END 90GNUNET_NETWORK_STRUCT_END
64 91
65#endif 92#endif
diff --git a/src/util/resolver_api.c b/src/util/resolver_api.c
index afebabf08..b94819f06 100644
--- a/src/util/resolver_api.c
+++ b/src/util/resolver_api.c
@@ -69,6 +69,11 @@ static struct GNUNET_RESOLVER_RequestHandle *req_head;
69static struct GNUNET_RESOLVER_RequestHandle *req_tail; 69static struct GNUNET_RESOLVER_RequestHandle *req_tail;
70 70
71/** 71/**
72 * ID of the last request we sent to the service
73 */
74static uint32_t last_request_id;
75
76/**
72 * How long should we wait to reconnect? 77 * How long should we wait to reconnect?
73 */ 78 */
74static struct GNUNET_TIME_Relative backoff; 79static struct GNUNET_TIME_Relative backoff;
@@ -137,6 +142,11 @@ struct GNUNET_RESOLVER_RequestHandle
137 int af; 142 int af;
138 143
139 /** 144 /**
145 * Identifies the request. The response will contain this id.
146 */
147 uint32_t id;
148
149 /**
140 * Has this request been transmitted to the service? 150 * Has this request been transmitted to the service?
141 * #GNUNET_YES if transmitted 151 * #GNUNET_YES if transmitted
142 * #GNUNET_YES if not transmitted 152 * #GNUNET_YES if not transmitted
@@ -435,11 +445,13 @@ process_requests ()
435 GNUNET_MESSAGE_TYPE_RESOLVER_REQUEST); 445 GNUNET_MESSAGE_TYPE_RESOLVER_REQUEST);
436 msg->direction = htonl (rh->direction); 446 msg->direction = htonl (rh->direction);
437 msg->af = htonl (rh->af); 447 msg->af = htonl (rh->af);
448 msg->id = htonl (rh->id);
438 GNUNET_memcpy (&msg[1], 449 GNUNET_memcpy (&msg[1],
439 &rh[1], 450 &rh[1],
440 rh->data_len); 451 rh->data_len);
441 LOG (GNUNET_ERROR_TYPE_DEBUG, 452 LOG (GNUNET_ERROR_TYPE_DEBUG,
442 "Transmitting DNS resolution request to DNS service\n"); 453 "Transmitting DNS resolution request (ID %u) to DNS service\n",
454 rh->id);
443 GNUNET_MQ_send (mq, 455 GNUNET_MQ_send (mq,
444 env); 456 env);
445 rh->was_transmitted = GNUNET_YES; 457 rh->was_transmitted = GNUNET_YES;
@@ -454,7 +466,7 @@ process_requests ()
454 */ 466 */
455static int 467static int
456check_response (void *cls, 468check_response (void *cls,
457 const struct GNUNET_MessageHeader *msg) 469 const struct GNUNET_RESOLVER_ResponseMessage *msg)
458{ 470{
459 (void) cls; 471 (void) cls;
460 (void) msg; 472 (void) msg;
@@ -474,11 +486,18 @@ check_response (void *cls,
474 */ 486 */
475static void 487static void
476handle_response (void *cls, 488handle_response (void *cls,
477 const struct GNUNET_MessageHeader *msg) 489 const struct GNUNET_RESOLVER_ResponseMessage *msg)
478{ 490{
479 struct GNUNET_RESOLVER_RequestHandle *rh = req_head; 491 struct GNUNET_RESOLVER_RequestHandle *rh = req_head;
480 uint16_t size; 492 uint16_t size;
481 char *nret; 493 char *nret;
494 uint32_t request_id = msg->id;
495
496 for (; rh != NULL; rh = rh->next)
497 {
498 if (rh->id == request_id)
499 break;
500 }
482 501
483 (void) cls; 502 (void) cls;
484 if (NULL == rh) 503 if (NULL == rh)
@@ -490,8 +509,8 @@ handle_response (void *cls,
490 reconnect (); 509 reconnect ();
491 return; 510 return;
492 } 511 }
493 size = ntohs (msg->size); 512 size = ntohs (msg->header.size);
494 if (size == sizeof (struct GNUNET_MessageHeader)) 513 if (size == sizeof (struct GNUNET_RESOLVER_ResponseMessage))
495 { 514 {
496 LOG (GNUNET_ERROR_TYPE_DEBUG, 515 LOG (GNUNET_ERROR_TYPE_DEBUG,
497 "Received empty response from DNS service\n"); 516 "Received empty response from DNS service\n");
@@ -532,7 +551,7 @@ handle_response (void *cls,
532 const char *hostname; 551 const char *hostname;
533 552
534 hostname = (const char *) &msg[1]; 553 hostname = (const char *) &msg[1];
535 if (hostname[size - sizeof (struct GNUNET_MessageHeader) - 1] != '\0') 554 if (hostname[size - sizeof (struct GNUNET_RESOLVER_ResponseMessage) - 1] != '\0')
536 { 555 {
537 GNUNET_break (0); 556 GNUNET_break (0);
538 if (GNUNET_SYSERR != rh->was_transmitted) 557 if (GNUNET_SYSERR != rh->was_transmitted)
@@ -566,7 +585,7 @@ handle_response (void *cls,
566 size_t ip_len; 585 size_t ip_len;
567 586
568 ip = &msg[1]; 587 ip = &msg[1];
569 ip_len = size - sizeof (struct GNUNET_MessageHeader); 588 ip_len = size - sizeof (struct GNUNET_RESOLVER_ResponseMessage);
570 if (ip_len == sizeof (struct in_addr)) 589 if (ip_len == sizeof (struct in_addr))
571 { 590 {
572 memset (&v4, 0, sizeof (v4)); 591 memset (&v4, 0, sizeof (v4));
@@ -763,7 +782,7 @@ reconnect_task (void *cls)
763 struct GNUNET_MQ_MessageHandler handlers[] = { 782 struct GNUNET_MQ_MessageHandler handlers[] = {
764 GNUNET_MQ_hd_var_size (response, 783 GNUNET_MQ_hd_var_size (response,
765 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE, 784 GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE,
766 struct GNUNET_MessageHeader, 785 struct GNUNET_RESOLVER_ResponseMessage,
767 NULL), 786 NULL),
768 GNUNET_MQ_handler_end () 787 GNUNET_MQ_handler_end ()
769 }; 788 };
@@ -926,6 +945,7 @@ GNUNET_RESOLVER_ip_get (const char *hostname,
926 hostname); 945 hostname);
927 rh = GNUNET_malloc (sizeof (struct GNUNET_RESOLVER_RequestHandle) + slen); 946 rh = GNUNET_malloc (sizeof (struct GNUNET_RESOLVER_RequestHandle) + slen);
928 rh->af = af; 947 rh->af = af;
948 rh->id = ++last_request_id;
929 rh->addr_callback = callback; 949 rh->addr_callback = callback;
930 rh->cls = callback_cls; 950 rh->cls = callback_cls;
931 GNUNET_memcpy (&rh[1], 951 GNUNET_memcpy (&rh[1],
@@ -1072,6 +1092,7 @@ GNUNET_RESOLVER_hostname_get (const struct sockaddr *sa,
1072 rh->name_callback = callback; 1092 rh->name_callback = callback;
1073 rh->cls = cls; 1093 rh->cls = cls;
1074 rh->af = sa->sa_family; 1094 rh->af = sa->sa_family;
1095 rh->id = ++last_request_id;
1075 rh->timeout = GNUNET_TIME_relative_to_absolute (timeout); 1096 rh->timeout = GNUNET_TIME_relative_to_absolute (timeout);
1076 GNUNET_memcpy (&rh[1], 1097 GNUNET_memcpy (&rh[1],
1077 ip, 1098 ip,
diff --git a/src/util/test_resolver_api.c b/src/util/test_resolver_api.c
index c89fad865..5a8f95093 100644
--- a/src/util/test_resolver_api.c
+++ b/src/util/test_resolver_api.c
@@ -258,6 +258,8 @@ run (void *cls, char *const *args, const char *cfgfile,
258 /* Resolve the same using GNUNET */ 258 /* Resolve the same using GNUNET */
259 GNUNET_RESOLVER_ip_get (ROOTSERVER_NAME, AF_INET, timeout, 259 GNUNET_RESOLVER_ip_get (ROOTSERVER_NAME, AF_INET, timeout,
260 &check_rootserver_ip, cls); 260 &check_rootserver_ip, cls);
261 GNUNET_RESOLVER_ip_get (ROOTSERVER_NAME, AF_INET, timeout,
262 &check_rootserver_ip, cls);
261 263
262 /* 264 /*
263 * Success: forward lookups work as expected 265 * Success: forward lookups work as expected