diff options
author | Phil <phil.buschmann@tum.de> | 2018-06-25 00:17:34 +0200 |
---|---|---|
committer | Phil <phil.buschmann@tum.de> | 2018-06-25 00:17:34 +0200 |
commit | db8c5cd31a92cd18450bf9d2d595a8fd314583e0 (patch) | |
tree | 01fd1779157a215346618ff0a575ef150051d154 /src/gns | |
parent | 4e6cb01843318385cfad41aec4cde5791f51cde2 (diff) | |
parent | d87371054ac03be953cb8b2d216e735d99515ca4 (diff) | |
download | gnunet-db8c5cd31a92cd18450bf9d2d595a8fd314583e0.tar.gz gnunet-db8c5cd31a92cd18450bf9d2d595a8fd314583e0.zip |
-Merge branch 'master' of ssh://gnunet.org/gnunet into gsoc2018/rest_api
Diffstat (limited to 'src/gns')
-rw-r--r-- | src/gns/gns-helper-service-w32.conf | 2 | ||||
-rw-r--r-- | src/gns/gns.conf.in | 14 | ||||
-rw-r--r-- | src/gns/gns_api.c | 6 | ||||
-rw-r--r-- | src/gns/gns_tld_api.c | 6 | ||||
-rw-r--r-- | src/gns/gnunet-gns-proxy.c | 201 | ||||
-rw-r--r-- | src/gns/gnunet-service-gns_interceptor.c | 2 | ||||
-rw-r--r-- | src/gns/gnunet-service-gns_resolver.c | 4 | ||||
-rw-r--r-- | src/gns/test_gns_lookup.conf | 4 | ||||
-rw-r--r-- | src/gns/test_gns_nick_shorten.conf | 4 | ||||
-rw-r--r-- | src/gns/test_gns_proxy.conf | 4 | ||||
-rw-r--r-- | src/gns/test_gns_simple_lookup.conf | 16 |
11 files changed, 144 insertions, 119 deletions
diff --git a/src/gns/gns-helper-service-w32.conf b/src/gns/gns-helper-service-w32.conf index 48652173a..a7b9fdd70 100644 --- a/src/gns/gns-helper-service-w32.conf +++ b/src/gns/gns-helper-service-w32.conf | |||
@@ -1,4 +1,4 @@ | |||
1 | [gns-helper-service-w32] | 1 | [gns-helper-service-w32] |
2 | AUTOSTART = YES | 2 | START_ON_DEMAND = YES |
3 | BINARY = gnunet-gns-helper-service-w32 | 3 | BINARY = gnunet-gns-helper-service-w32 |
4 | PORT = 5353 | 4 | PORT = 5353 |
diff --git a/src/gns/gns.conf.in b/src/gns/gns.conf.in index f7682cda7..2e6a02b07 100644 --- a/src/gns/gns.conf.in +++ b/src/gns/gns.conf.in | |||
@@ -1,6 +1,6 @@ | |||
1 | [gns] | 1 | [gns] |
2 | AUTOSTART = @AUTOSTART@ | 2 | START_ON_DEMAND = @START_ON_DEMAND@ |
3 | FORCESTART = YES | 3 | IMMEDIATE_START = YES |
4 | HOSTNAME = localhost | 4 | HOSTNAME = localhost |
5 | BINARY = gnunet-service-gns | 5 | BINARY = gnunet-service-gns |
6 | UNIXPATH = $GNUNET_USER_RUNTIME_DIR/gnunet-service-gns.sock | 6 | UNIXPATH = $GNUNET_USER_RUNTIME_DIR/gnunet-service-gns.sock |
@@ -20,7 +20,7 @@ MAX_PARALLEL_BACKGROUND_QUERIES = 1000 | |||
20 | # we will ask gnunet-service-dns to pass DNS queries to us. Otherwise, | 20 | # we will ask gnunet-service-dns to pass DNS queries to us. Otherwise, |
21 | # we only answer GNS queries via the API (which itself may be | 21 | # we only answer GNS queries via the API (which itself may be |
22 | # called via NSS or other mechanisms). | 22 | # called via NSS or other mechanisms). |
23 | INTERCEPT_DNS = YES | 23 | INTERCEPT_DNS = NO |
24 | 24 | ||
25 | # PREFIX = valgrind --leak-check=full --track-origins=yes | 25 | # PREFIX = valgrind --leak-check=full --track-origins=yes |
26 | 26 | ||
@@ -30,8 +30,8 @@ INTERCEPT_DNS = YES | |||
30 | 30 | ||
31 | [gns-proxy] | 31 | [gns-proxy] |
32 | BINARY = gnunet-gns-proxy | 32 | BINARY = gnunet-gns-proxy |
33 | AUTOSTART = NO | 33 | START_ON_DEMAND = NO |
34 | USER_SERVICE = YES | 34 | RUN_PER_USER = YES |
35 | 35 | ||
36 | # Where is the certificate for the GNS proxy stored? | 36 | # Where is the certificate for the GNS proxy stored? |
37 | PROXY_CACERT = $GNUNET_DATA_HOME/gns/gns_ca_cert.pem | 37 | PROXY_CACERT = $GNUNET_DATA_HOME/gns/gns_ca_cert.pem |
@@ -40,8 +40,8 @@ PROXY_UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-gns-proxy.sock | |||
40 | 40 | ||
41 | [dns2gns] | 41 | [dns2gns] |
42 | BINARY = gnunet-dns2gns | 42 | BINARY = gnunet-dns2gns |
43 | AUTOSTART = NO | 43 | START_ON_DEMAND = NO |
44 | USER_SERVICE = YES | 44 | RUN_PER_USER = YES |
45 | 45 | ||
46 | # -d: DNS resolver to use, -s: suffix to use, -f: fcfs suffix to use | 46 | # -d: DNS resolver to use, -s: suffix to use, -f: fcfs suffix to use |
47 | OPTIONS = -d 8.8.8.8 | 47 | OPTIONS = -d 8.8.8.8 |
diff --git a/src/gns/gns_api.c b/src/gns/gns_api.c index 8264bf715..0ec9209da 100644 --- a/src/gns/gns_api.c +++ b/src/gns/gns_api.c | |||
@@ -300,17 +300,21 @@ GNUNET_GNS_disconnect (struct GNUNET_GNS_Handle *handle) | |||
300 | * Cancel pending lookup request | 300 | * Cancel pending lookup request |
301 | * | 301 | * |
302 | * @param lr the lookup request to cancel | 302 | * @param lr the lookup request to cancel |
303 | * @return closure from the lookup result processor | ||
303 | */ | 304 | */ |
304 | void | 305 | void * |
305 | GNUNET_GNS_lookup_cancel (struct GNUNET_GNS_LookupRequest *lr) | 306 | GNUNET_GNS_lookup_cancel (struct GNUNET_GNS_LookupRequest *lr) |
306 | { | 307 | { |
307 | struct GNUNET_GNS_Handle *handle = lr->gns_handle; | 308 | struct GNUNET_GNS_Handle *handle = lr->gns_handle; |
309 | void *ret; | ||
308 | 310 | ||
309 | GNUNET_CONTAINER_DLL_remove (handle->lookup_head, | 311 | GNUNET_CONTAINER_DLL_remove (handle->lookup_head, |
310 | handle->lookup_tail, | 312 | handle->lookup_tail, |
311 | lr); | 313 | lr); |
312 | GNUNET_MQ_discard (lr->env); | 314 | GNUNET_MQ_discard (lr->env); |
315 | ret = lr->proc_cls; | ||
313 | GNUNET_free (lr); | 316 | GNUNET_free (lr); |
317 | return ret; | ||
314 | } | 318 | } |
315 | 319 | ||
316 | 320 | ||
diff --git a/src/gns/gns_tld_api.c b/src/gns/gns_tld_api.c index b053aa0c1..825b51d06 100644 --- a/src/gns/gns_tld_api.c +++ b/src/gns/gns_tld_api.c | |||
@@ -317,10 +317,13 @@ GNUNET_GNS_lookup_with_tld (struct GNUNET_GNS_Handle *handle, | |||
317 | * Cancel pending lookup request | 317 | * Cancel pending lookup request |
318 | * | 318 | * |
319 | * @param ltr the lookup request to cancel | 319 | * @param ltr the lookup request to cancel |
320 | * @return closure from the lookup result processor | ||
320 | */ | 321 | */ |
321 | void | 322 | void * |
322 | GNUNET_GNS_lookup_with_tld_cancel (struct GNUNET_GNS_LookupWithTldRequest *ltr) | 323 | GNUNET_GNS_lookup_with_tld_cancel (struct GNUNET_GNS_LookupWithTldRequest *ltr) |
323 | { | 324 | { |
325 | void *ret = ltr->lookup_proc_cls; | ||
326 | |||
324 | if (NULL != ltr->id_op) | 327 | if (NULL != ltr->id_op) |
325 | { | 328 | { |
326 | GNUNET_IDENTITY_ego_lookup_cancel (ltr->id_op); | 329 | GNUNET_IDENTITY_ego_lookup_cancel (ltr->id_op); |
@@ -333,6 +336,7 @@ GNUNET_GNS_lookup_with_tld_cancel (struct GNUNET_GNS_LookupWithTldRequest *ltr) | |||
333 | } | 336 | } |
334 | GNUNET_free (ltr->name); | 337 | GNUNET_free (ltr->name); |
335 | GNUNET_free (ltr); | 338 | GNUNET_free (ltr); |
339 | return ret; | ||
336 | } | 340 | } |
337 | 341 | ||
338 | /* end of gns_tld_api.c */ | 342 | /* end of gns_tld_api.c */ |
diff --git a/src/gns/gnunet-gns-proxy.c b/src/gns/gnunet-gns-proxy.c index 9a405c49b..d66f5c658 100644 --- a/src/gns/gnunet-gns-proxy.c +++ b/src/gns/gnunet-gns-proxy.c | |||
@@ -1,6 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of GNUnet. | 2 | This file is part of GNUnet. |
3 | Copyright (C) 2012-2014 GNUnet e.V. | 3 | Copyright (C) 2012-2018 GNUnet e.V. |
4 | 4 | ||
5 | GNUnet is free software: you can redistribute it and/or modify it | 5 | GNUnet is free software: you can redistribute it and/or modify it |
6 | under the terms of the GNU Affero General Public License as published | 6 | under the terms of the GNU Affero General Public License as published |
@@ -46,14 +46,6 @@ | |||
46 | #include "gns.h" | 46 | #include "gns.h" |
47 | 47 | ||
48 | 48 | ||
49 | /** | ||
50 | * FIXME: GnuTLS right now sometimes rejects valid certs, so as a | ||
51 | * VERY temporary workaround we just WARN the user instead of | ||
52 | * dropping the page. THIS SHOULD NOT BE USED IN PRODUCTION, | ||
53 | * set to 1 in production!!! FIXME!!! | ||
54 | */ | ||
55 | #define FIXED_CERT_VALIDATION_BUG 0 | ||
56 | |||
57 | 49 | ||
58 | /** | 50 | /** |
59 | * Default Socks5 listen port. | 51 | * Default Socks5 listen port. |
@@ -1079,10 +1071,8 @@ check_ssl_certificate (struct Socks5Request *s5r) | |||
1079 | certdn, | 1071 | certdn, |
1080 | name, | 1072 | name, |
1081 | rc); | 1073 | rc); |
1082 | #if FIXED_CERT_VALIDATION_BUG | ||
1083 | gnutls_x509_crt_deinit (x509_cert); | 1074 | gnutls_x509_crt_deinit (x509_cert); |
1084 | return GNUNET_SYSERR; | 1075 | return GNUNET_SYSERR; |
1085 | #endif | ||
1086 | } | 1076 | } |
1087 | } | 1077 | } |
1088 | else | 1078 | else |
@@ -1197,6 +1187,15 @@ curl_check_hdr (void *buffer, | |||
1197 | s5r->domain); | 1187 | s5r->domain); |
1198 | continue; | 1188 | continue; |
1199 | } | 1189 | } |
1190 | else if ( ('.' == cookie_domain[0]) && | ||
1191 | (0 == strcmp (&cookie_domain[1], | ||
1192 | s5r->leho)) ) | ||
1193 | { | ||
1194 | offset += sprintf (new_cookie_hdr + offset, | ||
1195 | " domain=.%s;", | ||
1196 | s5r->domain); | ||
1197 | continue; | ||
1198 | } | ||
1200 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, | 1199 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, |
1201 | _("Cookie domain `%s' supplied by server is invalid\n"), | 1200 | _("Cookie domain `%s' supplied by server is invalid\n"), |
1202 | tok); | 1201 | tok); |
@@ -1723,12 +1722,6 @@ con_val_iter (void *cls, | |||
1723 | key)) && | 1722 | key)) && |
1724 | (NULL != s5r->leho) ) | 1723 | (NULL != s5r->leho) ) |
1725 | value = s5r->leho; | 1724 | value = s5r->leho; |
1726 | if (0 == strcasecmp (MHD_HTTP_HEADER_CONTENT_LENGTH, | ||
1727 | key)) | ||
1728 | return MHD_YES; | ||
1729 | if (0 == strcasecmp (MHD_HTTP_HEADER_ACCEPT_ENCODING, | ||
1730 | key)) | ||
1731 | return MHD_YES; | ||
1732 | GNUNET_asprintf (&hdr, | 1725 | GNUNET_asprintf (&hdr, |
1733 | "%s: %s", | 1726 | "%s: %s", |
1734 | key, | 1727 | key, |
@@ -1955,7 +1948,7 @@ create_response (void *cls, | |||
1955 | s5r); | 1948 | s5r); |
1956 | { | 1949 | { |
1957 | const char *us; | 1950 | const char *us; |
1958 | long upload_size; | 1951 | long upload_size = 0; |
1959 | 1952 | ||
1960 | us = MHD_lookup_connection_value (con, | 1953 | us = MHD_lookup_connection_value (con, |
1961 | MHD_HEADER_KIND, | 1954 | MHD_HEADER_KIND, |
@@ -1996,7 +1989,8 @@ create_response (void *cls, | |||
1996 | us = MHD_lookup_connection_value (con, | 1989 | us = MHD_lookup_connection_value (con, |
1997 | MHD_HEADER_KIND, | 1990 | MHD_HEADER_KIND, |
1998 | MHD_HTTP_HEADER_CONTENT_LENGTH); | 1991 | MHD_HTTP_HEADER_CONTENT_LENGTH); |
1999 | if ( (NULL != us) && (1 == sscanf (us, | 1992 | if ( (NULL != us) && |
1993 | (1 == sscanf (us, | ||
2000 | "%ld", | 1994 | "%ld", |
2001 | &upload_size)) && | 1995 | &upload_size)) && |
2002 | (upload_size >= 0) ) | 1996 | (upload_size >= 0) ) |
@@ -2026,20 +2020,41 @@ create_response (void *cls, | |||
2026 | curl_easy_setopt (s5r->curl, | 2020 | curl_easy_setopt (s5r->curl, |
2027 | CURLOPT_CUSTOMREQUEST, | 2021 | CURLOPT_CUSTOMREQUEST, |
2028 | "OPTIONS"); | 2022 | "OPTIONS"); |
2023 | curl_easy_setopt (s5r->curl, | ||
2024 | CURLOPT_WRITEFUNCTION, | ||
2025 | &curl_download_cb); | ||
2026 | curl_easy_setopt (s5r->curl, | ||
2027 | CURLOPT_WRITEDATA, | ||
2028 | s5r); | ||
2029 | |||
2029 | } | 2030 | } |
2030 | else if (0 == strcasecmp (meth, | 2031 | else if (0 == strcasecmp (meth, |
2031 | MHD_HTTP_METHOD_GET)) | 2032 | MHD_HTTP_METHOD_GET)) |
2032 | { | 2033 | { |
2033 | s5r->state = SOCKS5_SOCKET_DOWNLOAD_STARTED; | 2034 | s5r->state = SOCKS5_SOCKET_DOWNLOAD_STARTED; |
2034 | curl_easy_setopt (s5r->curl, | 2035 | curl_easy_setopt (s5r->curl, |
2035 | CURLOPT_HTTPGET, | 2036 | CURLOPT_HTTPGET, |
2036 | 1L); | 2037 | 1L); |
2037 | curl_easy_setopt (s5r->curl, | 2038 | curl_easy_setopt (s5r->curl, |
2038 | CURLOPT_WRITEFUNCTION, | 2039 | CURLOPT_WRITEFUNCTION, |
2039 | &curl_download_cb); | 2040 | &curl_download_cb); |
2040 | curl_easy_setopt (s5r->curl, | 2041 | curl_easy_setopt (s5r->curl, |
2041 | CURLOPT_WRITEDATA, | 2042 | CURLOPT_WRITEDATA, |
2042 | s5r); | 2043 | s5r); |
2044 | } | ||
2045 | else if (0 == strcasecmp (meth, | ||
2046 | MHD_HTTP_METHOD_DELETE)) | ||
2047 | { | ||
2048 | s5r->state = SOCKS5_SOCKET_DOWNLOAD_STARTED; | ||
2049 | curl_easy_setopt (s5r->curl, | ||
2050 | CURLOPT_CUSTOMREQUEST, | ||
2051 | "DELETE"); | ||
2052 | curl_easy_setopt (s5r->curl, | ||
2053 | CURLOPT_WRITEFUNCTION, | ||
2054 | &curl_download_cb); | ||
2055 | curl_easy_setopt (s5r->curl, | ||
2056 | CURLOPT_WRITEDATA, | ||
2057 | s5r); | ||
2043 | } | 2058 | } |
2044 | else | 2059 | else |
2045 | { | 2060 | { |
@@ -2054,46 +2069,46 @@ create_response (void *cls, | |||
2054 | if (0 == strcasecmp (ver, MHD_HTTP_VERSION_1_0)) | 2069 | if (0 == strcasecmp (ver, MHD_HTTP_VERSION_1_0)) |
2055 | { | 2070 | { |
2056 | curl_easy_setopt (s5r->curl, | 2071 | curl_easy_setopt (s5r->curl, |
2057 | CURLOPT_HTTP_VERSION, | 2072 | CURLOPT_HTTP_VERSION, |
2058 | CURL_HTTP_VERSION_1_0); | 2073 | CURL_HTTP_VERSION_1_0); |
2059 | } | 2074 | } |
2060 | else if (0 == strcasecmp (ver, MHD_HTTP_VERSION_1_1)) | 2075 | else if (0 == strcasecmp (ver, MHD_HTTP_VERSION_1_1)) |
2061 | { | 2076 | { |
2062 | curl_easy_setopt (s5r->curl, | 2077 | curl_easy_setopt (s5r->curl, |
2063 | CURLOPT_HTTP_VERSION, | 2078 | CURLOPT_HTTP_VERSION, |
2064 | CURL_HTTP_VERSION_1_1); | 2079 | CURL_HTTP_VERSION_1_1); |
2065 | } | 2080 | } |
2066 | else | 2081 | else |
2067 | { | 2082 | { |
2068 | curl_easy_setopt (s5r->curl, | 2083 | curl_easy_setopt (s5r->curl, |
2069 | CURLOPT_HTTP_VERSION, | 2084 | CURLOPT_HTTP_VERSION, |
2070 | CURL_HTTP_VERSION_NONE); | 2085 | CURL_HTTP_VERSION_NONE); |
2071 | } | 2086 | } |
2072 | 2087 | ||
2073 | if (HTTPS_PORT == s5r->port) | 2088 | if (HTTPS_PORT == s5r->port) |
2074 | { | 2089 | { |
2075 | curl_easy_setopt (s5r->curl, | 2090 | curl_easy_setopt (s5r->curl, |
2076 | CURLOPT_USE_SSL, | 2091 | CURLOPT_USE_SSL, |
2077 | CURLUSESSL_ALL); | 2092 | CURLUSESSL_ALL); |
2078 | if (NULL != s5r->dane_data) | 2093 | if (NULL != s5r->dane_data) |
2079 | curl_easy_setopt (s5r->curl, | 2094 | curl_easy_setopt (s5r->curl, |
2080 | CURLOPT_SSL_VERIFYPEER, | 2095 | CURLOPT_SSL_VERIFYPEER, |
2081 | 0L); | 2096 | 0L); |
2082 | else | 2097 | else |
2083 | curl_easy_setopt (s5r->curl, | 2098 | curl_easy_setopt (s5r->curl, |
2084 | CURLOPT_SSL_VERIFYPEER, | 2099 | CURLOPT_SSL_VERIFYPEER, |
2085 | 1L); | 2100 | 1L); |
2086 | /* Disable cURL checking the hostname, as we will check ourselves | 2101 | /* Disable cURL checking the hostname, as we will check ourselves |
2087 | as only we have the domain name or the LEHO or the DANE record */ | 2102 | as only we have the domain name or the LEHO or the DANE record */ |
2088 | curl_easy_setopt (s5r->curl, | 2103 | curl_easy_setopt (s5r->curl, |
2089 | CURLOPT_SSL_VERIFYHOST, | 2104 | CURLOPT_SSL_VERIFYHOST, |
2090 | 0L); | 2105 | 0L); |
2091 | } | 2106 | } |
2092 | else | 2107 | else |
2093 | { | 2108 | { |
2094 | curl_easy_setopt (s5r->curl, | 2109 | curl_easy_setopt (s5r->curl, |
2095 | CURLOPT_USE_SSL, | 2110 | CURLOPT_USE_SSL, |
2096 | CURLUSESSL_NONE); | 2111 | CURLUSESSL_NONE); |
2097 | } | 2112 | } |
2098 | 2113 | ||
2099 | if (CURLM_OK != | 2114 | if (CURLM_OK != |
@@ -2121,14 +2136,14 @@ create_response (void *cls, | |||
2121 | { | 2136 | { |
2122 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 2137 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
2123 | "Processing %u bytes UPLOAD\n", | 2138 | "Processing %u bytes UPLOAD\n", |
2124 | (unsigned int) *upload_data_size); | 2139 | (unsigned int) *upload_data_size); |
2125 | 2140 | ||
2126 | /* FIXME: This must be set or a header with Transfer-Encoding: chunked. Else | 2141 | /* FIXME: This must be set or a header with Transfer-Encoding: chunked. Else |
2127 | * upload callback is not called! | 2142 | * upload callback is not called! |
2128 | */ | 2143 | */ |
2129 | curl_easy_setopt (s5r->curl, | 2144 | curl_easy_setopt (s5r->curl, |
2130 | CURLOPT_POSTFIELDSIZE, | 2145 | CURLOPT_POSTFIELDSIZE, |
2131 | *upload_data_size); | 2146 | *upload_data_size); |
2132 | 2147 | ||
2133 | left = GNUNET_MIN (*upload_data_size, | 2148 | left = GNUNET_MIN (*upload_data_size, |
2134 | sizeof (s5r->io_buf) - s5r->io_len); | 2149 | sizeof (s5r->io_buf) - s5r->io_len); |
@@ -2142,7 +2157,7 @@ create_response (void *cls, | |||
2142 | { | 2157 | { |
2143 | s5r->curl_paused = GNUNET_NO; | 2158 | s5r->curl_paused = GNUNET_NO; |
2144 | curl_easy_pause (s5r->curl, | 2159 | curl_easy_pause (s5r->curl, |
2145 | CURLPAUSE_CONT); | 2160 | CURLPAUSE_CONT); |
2146 | } | 2161 | } |
2147 | return MHD_YES; | 2162 | return MHD_YES; |
2148 | } | 2163 | } |
@@ -2522,9 +2537,9 @@ load_file (const char* filename, | |||
2522 | 2537 | ||
2523 | if (GNUNET_OK != | 2538 | if (GNUNET_OK != |
2524 | GNUNET_DISK_file_size (filename, | 2539 | GNUNET_DISK_file_size (filename, |
2525 | &fsize, | 2540 | &fsize, |
2526 | GNUNET_YES, | 2541 | GNUNET_YES, |
2527 | GNUNET_YES)) | 2542 | GNUNET_YES)) |
2528 | return NULL; | 2543 | return NULL; |
2529 | if (fsize > MAX_PEM_SIZE) | 2544 | if (fsize > MAX_PEM_SIZE) |
2530 | return NULL; | 2545 | return NULL; |
@@ -2557,7 +2572,7 @@ load_key_from_file (gnutls_x509_privkey_t key, | |||
2557 | int ret; | 2572 | int ret; |
2558 | 2573 | ||
2559 | key_data.data = load_file (keyfile, | 2574 | key_data.data = load_file (keyfile, |
2560 | &key_data.size); | 2575 | &key_data.size); |
2561 | if (NULL == key_data.data) | 2576 | if (NULL == key_data.data) |
2562 | return GNUNET_SYSERR; | 2577 | return GNUNET_SYSERR; |
2563 | ret = gnutls_x509_privkey_import (key, &key_data, | 2578 | ret = gnutls_x509_privkey_import (key, &key_data, |
@@ -2588,17 +2603,17 @@ load_cert_from_file (gnutls_x509_crt_t crt, | |||
2588 | int ret; | 2603 | int ret; |
2589 | 2604 | ||
2590 | cert_data.data = load_file (certfile, | 2605 | cert_data.data = load_file (certfile, |
2591 | &cert_data.size); | 2606 | &cert_data.size); |
2592 | if (NULL == cert_data.data) | 2607 | if (NULL == cert_data.data) |
2593 | return GNUNET_SYSERR; | 2608 | return GNUNET_SYSERR; |
2594 | ret = gnutls_x509_crt_import (crt, | 2609 | ret = gnutls_x509_crt_import (crt, |
2595 | &cert_data, | 2610 | &cert_data, |
2596 | GNUTLS_X509_FMT_PEM); | 2611 | GNUTLS_X509_FMT_PEM); |
2597 | if (GNUTLS_E_SUCCESS != ret) | 2612 | if (GNUTLS_E_SUCCESS != ret) |
2598 | { | 2613 | { |
2599 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | 2614 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
2600 | _("Unable to import certificate from `%s'\n"), | 2615 | _("Unable to import certificate from `%s'\n"), |
2601 | certfile); | 2616 | certfile); |
2602 | } | 2617 | } |
2603 | GNUNET_free_non_null (cert_data.data); | 2618 | GNUNET_free_non_null (cert_data.data); |
2604 | return (GNUTLS_E_SUCCESS != ret) ? GNUNET_SYSERR : GNUNET_OK; | 2619 | return (GNUTLS_E_SUCCESS != ret) ? GNUNET_SYSERR : GNUNET_OK; |
@@ -2629,26 +2644,26 @@ generate_gns_certificate (const char *name) | |||
2629 | GNUNET_break (GNUTLS_E_SUCCESS == gnutls_x509_crt_set_key (request, proxy_ca.key)); | 2644 | GNUNET_break (GNUTLS_E_SUCCESS == gnutls_x509_crt_set_key (request, proxy_ca.key)); |
2630 | pgc = GNUNET_new (struct ProxyGNSCertificate); | 2645 | pgc = GNUNET_new (struct ProxyGNSCertificate); |
2631 | gnutls_x509_crt_set_dn_by_oid (request, | 2646 | gnutls_x509_crt_set_dn_by_oid (request, |
2632 | GNUTLS_OID_X520_COUNTRY_NAME, | 2647 | GNUTLS_OID_X520_COUNTRY_NAME, |
2633 | 0, | 2648 | 0, |
2634 | "ZZ", | 2649 | "ZZ", |
2635 | strlen ("ZZ")); | 2650 | strlen ("ZZ")); |
2636 | gnutls_x509_crt_set_dn_by_oid (request, | 2651 | gnutls_x509_crt_set_dn_by_oid (request, |
2637 | GNUTLS_OID_X520_ORGANIZATION_NAME, | 2652 | GNUTLS_OID_X520_ORGANIZATION_NAME, |
2638 | 0, | 2653 | 0, |
2639 | "GNU Name System", | 2654 | "GNU Name System", |
2640 | strlen ("GNU Name System")); | 2655 | strlen ("GNU Name System")); |
2641 | gnutls_x509_crt_set_dn_by_oid (request, | 2656 | gnutls_x509_crt_set_dn_by_oid (request, |
2642 | GNUTLS_OID_X520_COMMON_NAME, | 2657 | GNUTLS_OID_X520_COMMON_NAME, |
2643 | 0, | 2658 | 0, |
2644 | name, | 2659 | name, |
2645 | strlen (name)); | 2660 | strlen (name)); |
2646 | GNUNET_break (GNUTLS_E_SUCCESS == | 2661 | GNUNET_break (GNUTLS_E_SUCCESS == |
2647 | gnutls_x509_crt_set_version (request, | 2662 | gnutls_x509_crt_set_version (request, |
2648 | 3)); | 2663 | 3)); |
2649 | gnutls_rnd (GNUTLS_RND_NONCE, | 2664 | gnutls_rnd (GNUTLS_RND_NONCE, |
2650 | &serial, | 2665 | &serial, |
2651 | sizeof (serial)); | 2666 | sizeof (serial)); |
2652 | gnutls_x509_crt_set_serial (request, | 2667 | gnutls_x509_crt_set_serial (request, |
2653 | &serial, | 2668 | &serial, |
2654 | sizeof (serial)); | 2669 | sizeof (serial)); |
@@ -2663,20 +2678,20 @@ generate_gns_certificate (const char *name) | |||
2663 | gnutls_x509_crt_set_expiration_time (request, | 2678 | gnutls_x509_crt_set_expiration_time (request, |
2664 | etime); | 2679 | etime); |
2665 | gnutls_x509_crt_sign2 (request, | 2680 | gnutls_x509_crt_sign2 (request, |
2666 | proxy_ca.cert, | 2681 | proxy_ca.cert, |
2667 | proxy_ca.key, | 2682 | proxy_ca.key, |
2668 | GNUTLS_DIG_SHA512, | 2683 | GNUTLS_DIG_SHA512, |
2669 | 0); | 2684 | 0); |
2670 | key_buf_size = sizeof (pgc->key); | 2685 | key_buf_size = sizeof (pgc->key); |
2671 | cert_buf_size = sizeof (pgc->cert); | 2686 | cert_buf_size = sizeof (pgc->cert); |
2672 | gnutls_x509_crt_export (request, | 2687 | gnutls_x509_crt_export (request, |
2673 | GNUTLS_X509_FMT_PEM, | 2688 | GNUTLS_X509_FMT_PEM, |
2674 | pgc->cert, | 2689 | pgc->cert, |
2675 | &cert_buf_size); | 2690 | &cert_buf_size); |
2676 | gnutls_x509_privkey_export (proxy_ca.key, | 2691 | gnutls_x509_privkey_export (proxy_ca.key, |
2677 | GNUTLS_X509_FMT_PEM, | 2692 | GNUTLS_X509_FMT_PEM, |
2678 | pgc->key, | 2693 | pgc->key, |
2679 | &key_buf_size); | 2694 | &key_buf_size); |
2680 | gnutls_x509_crt_deinit (request); | 2695 | gnutls_x509_crt_deinit (request); |
2681 | return pgc; | 2696 | return pgc; |
2682 | } | 2697 | } |
@@ -3120,7 +3135,7 @@ do_s5r_read (void *cls) | |||
3120 | tc = GNUNET_SCHEDULER_get_task_context (); | 3135 | tc = GNUNET_SCHEDULER_get_task_context (); |
3121 | if ( (NULL != tc->read_ready) && | 3136 | if ( (NULL != tc->read_ready) && |
3122 | (GNUNET_NETWORK_fdset_isset (tc->read_ready, | 3137 | (GNUNET_NETWORK_fdset_isset (tc->read_ready, |
3123 | s5r->sock)) ) | 3138 | s5r->sock)) ) |
3124 | { | 3139 | { |
3125 | rlen = GNUNET_NETWORK_socket_recv (s5r->sock, | 3140 | rlen = GNUNET_NETWORK_socket_recv (s5r->sock, |
3126 | &s5r->rbuf[s5r->rbuf_len], | 3141 | &s5r->rbuf[s5r->rbuf_len], |
@@ -3247,7 +3262,7 @@ do_s5r_read (void *cls) | |||
3247 | *dom_len); | 3262 | *dom_len); |
3248 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 3263 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
3249 | "Requested connection is to http%s://%s:%d\n", | 3264 | "Requested connection is to http%s://%s:%d\n", |
3250 | (HTTPS_PORT == s5r->port) ? "s" : "", | 3265 | (HTTPS_PORT == s5r->port) ? "s" : "", |
3251 | s5r->domain, | 3266 | s5r->domain, |
3252 | ntohs (*port)); | 3267 | ntohs (*port)); |
3253 | s5r->state = SOCKS5_RESOLVING; | 3268 | s5r->state = SOCKS5_RESOLVING; |
@@ -3319,21 +3334,21 @@ do_accept (void *cls) | |||
3319 | ltask4 = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, | 3334 | ltask4 = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, |
3320 | lsock, | 3335 | lsock, |
3321 | &do_accept, | 3336 | &do_accept, |
3322 | lsock); | 3337 | lsock); |
3323 | else if (lsock == lsock6) | 3338 | else if (lsock == lsock6) |
3324 | ltask6 = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, | 3339 | ltask6 = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, |
3325 | lsock, | 3340 | lsock, |
3326 | &do_accept, | 3341 | &do_accept, |
3327 | lsock); | 3342 | lsock); |
3328 | else | 3343 | else |
3329 | GNUNET_assert (0); | 3344 | GNUNET_assert (0); |
3330 | s = GNUNET_NETWORK_socket_accept (lsock, | 3345 | s = GNUNET_NETWORK_socket_accept (lsock, |
3331 | NULL, | 3346 | NULL, |
3332 | NULL); | 3347 | NULL); |
3333 | if (NULL == s) | 3348 | if (NULL == s) |
3334 | { | 3349 | { |
3335 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, | 3350 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, |
3336 | "accept"); | 3351 | "accept"); |
3337 | return; | 3352 | return; |
3338 | } | 3353 | } |
3339 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 3354 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
@@ -3347,7 +3362,7 @@ do_accept (void *cls) | |||
3347 | s5r->rtask = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, | 3362 | s5r->rtask = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, |
3348 | s5r->sock, | 3363 | s5r->sock, |
3349 | &do_s5r_read, | 3364 | &do_s5r_read, |
3350 | s5r); | 3365 | s5r); |
3351 | } | 3366 | } |
3352 | 3367 | ||
3353 | 3368 | ||
@@ -3445,7 +3460,7 @@ bind_v4 () | |||
3445 | return NULL; | 3460 | return NULL; |
3446 | if (GNUNET_OK != | 3461 | if (GNUNET_OK != |
3447 | GNUNET_NETWORK_socket_bind (ls, | 3462 | GNUNET_NETWORK_socket_bind (ls, |
3448 | (const struct sockaddr *) &sa4, | 3463 | (const struct sockaddr *) &sa4, |
3449 | sizeof (sa4))) | 3464 | sizeof (sa4))) |
3450 | { | 3465 | { |
3451 | eno = errno; | 3466 | eno = errno; |
@@ -3482,7 +3497,7 @@ bind_v6 () | |||
3482 | return NULL; | 3497 | return NULL; |
3483 | if (GNUNET_OK != | 3498 | if (GNUNET_OK != |
3484 | GNUNET_NETWORK_socket_bind (ls, | 3499 | GNUNET_NETWORK_socket_bind (ls, |
3485 | (const struct sockaddr *) &sa6, | 3500 | (const struct sockaddr *) &sa6, |
3486 | sizeof (sa6))) | 3501 | sizeof (sa6))) |
3487 | { | 3502 | { |
3488 | eno = errno; | 3503 | eno = errno; |
@@ -3537,8 +3552,8 @@ run (void *cls, | |||
3537 | cafile = cafile_cfg; | 3552 | cafile = cafile_cfg; |
3538 | } | 3553 | } |
3539 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 3554 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
3540 | "Using `%s' as CA\n", | 3555 | "Using `%s' as CA\n", |
3541 | cafile); | 3556 | cafile); |
3542 | 3557 | ||
3543 | gnutls_global_init (); | 3558 | gnutls_global_init (); |
3544 | gnutls_x509_crt_init (&proxy_ca.cert); | 3559 | gnutls_x509_crt_init (&proxy_ca.cert); |
@@ -3678,19 +3693,19 @@ main (int argc, | |||
3678 | { | 3693 | { |
3679 | struct GNUNET_GETOPT_CommandLineOption options[] = { | 3694 | struct GNUNET_GETOPT_CommandLineOption options[] = { |
3680 | GNUNET_GETOPT_option_uint16 ('p', | 3695 | GNUNET_GETOPT_option_uint16 ('p', |
3681 | "port", | 3696 | "port", |
3682 | NULL, | 3697 | NULL, |
3683 | gettext_noop ("listen on specified port (default: 7777)"), | 3698 | gettext_noop ("listen on specified port (default: 7777)"), |
3684 | &port), | 3699 | &port), |
3685 | GNUNET_GETOPT_option_string ('a', | 3700 | GNUNET_GETOPT_option_string ('a', |
3686 | "authority", | 3701 | "authority", |
3687 | NULL, | 3702 | NULL, |
3688 | gettext_noop ("pem file to use as CA"), | 3703 | gettext_noop ("pem file to use as CA"), |
3689 | &cafile_opt), | 3704 | &cafile_opt), |
3690 | GNUNET_GETOPT_option_flag ('6', | 3705 | GNUNET_GETOPT_option_flag ('6', |
3691 | "disable-ivp6", | 3706 | "disable-ivp6", |
3692 | gettext_noop ("disable use of IPv6"), | 3707 | gettext_noop ("disable use of IPv6"), |
3693 | &disable_v6), | 3708 | &disable_v6), |
3694 | 3709 | ||
3695 | GNUNET_GETOPT_OPTION_END | 3710 | GNUNET_GETOPT_OPTION_END |
3696 | }; | 3711 | }; |
@@ -3701,7 +3716,7 @@ main (int argc, | |||
3701 | 3716 | ||
3702 | if (GNUNET_OK != | 3717 | if (GNUNET_OK != |
3703 | GNUNET_STRINGS_get_utf8_args (argc, argv, | 3718 | GNUNET_STRINGS_get_utf8_args (argc, argv, |
3704 | &argc, &argv)) | 3719 | &argc, &argv)) |
3705 | return 2; | 3720 | return 2; |
3706 | GNUNET_log_setup ("gnunet-gns-proxy", | 3721 | GNUNET_log_setup ("gnunet-gns-proxy", |
3707 | "WARNING", | 3722 | "WARNING", |
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/gnunet-service-gns_resolver.c b/src/gns/gnunet-service-gns_resolver.c index 54c3cba23..67960ef97 100644 --- a/src/gns/gnunet-service-gns_resolver.c +++ b/src/gns/gnunet-service-gns_resolver.c | |||
@@ -2397,6 +2397,8 @@ handle_dht_response (void *cls, | |||
2397 | "Received expired block from the DHT, will not cache it.\n"); | 2397 | "Received expired block from the DHT, will not cache it.\n"); |
2398 | return; | 2398 | return; |
2399 | } | 2399 | } |
2400 | if (GNUNET_YES == disable_cache) | ||
2401 | return; | ||
2400 | /* Cache well-formed blocks */ | 2402 | /* Cache well-formed blocks */ |
2401 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 2403 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
2402 | "Caching response from the DHT in namecache\n"); | 2404 | "Caching response from the DHT in namecache\n"); |
@@ -2407,7 +2409,7 @@ handle_dht_response (void *cls, | |||
2407 | co); | 2409 | co); |
2408 | GNUNET_CONTAINER_DLL_insert (co_head, | 2410 | GNUNET_CONTAINER_DLL_insert (co_head, |
2409 | co_tail, | 2411 | co_tail, |
2410 | co); | 2412 | co); |
2411 | } | 2413 | } |
2412 | 2414 | ||
2413 | 2415 | ||
diff --git a/src/gns/test_gns_lookup.conf b/src/gns/test_gns_lookup.conf index a7b842302..0d9d2b49a 100644 --- a/src/gns/test_gns_lookup.conf +++ b/src/gns/test_gns_lookup.conf | |||
@@ -4,14 +4,14 @@ | |||
4 | GNUNET_TEST_HOME = $GNUNET_TMP/test-gnunet-gns-peer-1/ | 4 | GNUNET_TEST_HOME = $GNUNET_TMP/test-gnunet-gns-peer-1/ |
5 | 5 | ||
6 | [dht] | 6 | [dht] |
7 | AUTOSTART = YES | 7 | START_ON_DEMAND = YES |
8 | 8 | ||
9 | [transport] | 9 | [transport] |
10 | PLUGINS = | 10 | PLUGINS = |
11 | 11 | ||
12 | [gns] | 12 | [gns] |
13 | # PREFIX = valgrind --leak-check=full --track-origins=yes | 13 | # PREFIX = valgrind --leak-check=full --track-origins=yes |
14 | AUTOSTART = YES | 14 | START_ON_DEMAND = YES |
15 | AUTO_IMPORT_PKEY = YES | 15 | AUTO_IMPORT_PKEY = YES |
16 | MAX_PARALLEL_BACKGROUND_QUERIES = 10 | 16 | MAX_PARALLEL_BACKGROUND_QUERIES = 10 |
17 | DEFAULT_LOOKUP_TIMEOUT = 15 s | 17 | DEFAULT_LOOKUP_TIMEOUT = 15 s |
diff --git a/src/gns/test_gns_nick_shorten.conf b/src/gns/test_gns_nick_shorten.conf index 210159fc8..317477c80 100644 --- a/src/gns/test_gns_nick_shorten.conf +++ b/src/gns/test_gns_nick_shorten.conf | |||
@@ -4,14 +4,14 @@ | |||
4 | GNUNET_TEST_HOME = $GNUNET_TMP/test-gnunet-gns-peer-1/ | 4 | GNUNET_TEST_HOME = $GNUNET_TMP/test-gnunet-gns-peer-1/ |
5 | 5 | ||
6 | [dht] | 6 | [dht] |
7 | AUTOSTART = YES | 7 | START_ON_DEMAND = YES |
8 | 8 | ||
9 | [transport] | 9 | [transport] |
10 | PLUGINS = | 10 | PLUGINS = |
11 | 11 | ||
12 | [gns] | 12 | [gns] |
13 | #PREFIX = valgrind --leak-check=full --track-origins=yes | 13 | #PREFIX = valgrind --leak-check=full --track-origins=yes |
14 | AUTOSTART = YES | 14 | START_ON_DEMAND = YES |
15 | AUTO_IMPORT_PKEY = YES | 15 | AUTO_IMPORT_PKEY = YES |
16 | MAX_PARALLEL_BACKGROUND_QUERIES = 10 | 16 | MAX_PARALLEL_BACKGROUND_QUERIES = 10 |
17 | DEFAULT_LOOKUP_TIMEOUT = 15 s | 17 | DEFAULT_LOOKUP_TIMEOUT = 15 s |
diff --git a/src/gns/test_gns_proxy.conf b/src/gns/test_gns_proxy.conf index 875c0a5e3..51edd5a0c 100644 --- a/src/gns/test_gns_proxy.conf +++ b/src/gns/test_gns_proxy.conf | |||
@@ -13,7 +13,7 @@ WEAKRANDOM = YES | |||
13 | HOSTKEYSFILE = ${DATADIR}/testing_hostkeys.dat | 13 | HOSTKEYSFILE = ${DATADIR}/testing_hostkeys.dat |
14 | 14 | ||
15 | [gns] | 15 | [gns] |
16 | AUTOSTART = YES | 16 | START_ON_DEMAND = YES |
17 | ZONEKEY = $GNUNET_TEST_HOME/.zonekey | 17 | ZONEKEY = $GNUNET_TEST_HOME/.zonekey |
18 | HIJACK_DNS = YES | 18 | HIJACK_DNS = YES |
19 | 19 | ||
@@ -22,7 +22,7 @@ PROXY_CACERT = proxy/test_cert.pem | |||
22 | PROXY_UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-gns-proxy.sock | 22 | PROXY_UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-gns-proxy.sock |
23 | 23 | ||
24 | [namestore] | 24 | [namestore] |
25 | AUTOSTART = YES | 25 | START_ON_DEMAND = YES |
26 | 26 | ||
27 | [dns] | 27 | [dns] |
28 | PROVIDE_EXIT = NO | 28 | PROVIDE_EXIT = NO |
diff --git a/src/gns/test_gns_simple_lookup.conf b/src/gns/test_gns_simple_lookup.conf index 5bf6f8e63..374731377 100644 --- a/src/gns/test_gns_simple_lookup.conf +++ b/src/gns/test_gns_simple_lookup.conf | |||
@@ -1,13 +1,13 @@ | |||
1 | @INLINE@ test_gns_defaults.conf | 1 | @INLINE@ test_gns_defaults.conf |
2 | [fs] | 2 | [fs] |
3 | AUTOSTART = NO | 3 | START_ON_DEMAND = NO |
4 | 4 | ||
5 | [resolver] | 5 | [resolver] |
6 | AUTOSTART = YES | 6 | START_ON_DEMAND = YES |
7 | HOSTNAME = localhost | 7 | HOSTNAME = localhost |
8 | 8 | ||
9 | [dht] | 9 | [dht] |
10 | AUTOSTART = YES | 10 | START_ON_DEMAND = YES |
11 | ACCEPT_FROM6 = ::1; | 11 | ACCEPT_FROM6 = ::1; |
12 | ACCEPT_FROM = 127.0.0.1; | 12 | ACCEPT_FROM = 127.0.0.1; |
13 | HOSTNAME = localhost | 13 | HOSTNAME = localhost |
@@ -54,12 +54,12 @@ EXTERNAL_ADDRESS = 127.0.0.1 | |||
54 | USE_LOCALADDR = NO | 54 | USE_LOCALADDR = NO |
55 | 55 | ||
56 | [dns] | 56 | [dns] |
57 | AUTOSTART = YES | 57 | START_ON_DEMAND = YES |
58 | DNS_EXIT = 8.8.8.8 | 58 | DNS_EXIT = 8.8.8.8 |
59 | 59 | ||
60 | [gns] | 60 | [gns] |
61 | #PREFIX = valgrind --leak-check=full --track-origins=yes | 61 | #PREFIX = valgrind --leak-check=full --track-origins=yes |
62 | AUTOSTART = YES | 62 | START_ON_DEMAND = YES |
63 | BINARY = gnunet-service-gns | 63 | BINARY = gnunet-service-gns |
64 | ZONEKEY = zonefiles/test_zonekey | 64 | ZONEKEY = zonefiles/test_zonekey |
65 | PRIVATE_ZONE = private | 65 | PRIVATE_ZONE = private |
@@ -75,14 +75,14 @@ DEFAULT_LOOKUP_TIMEOUT = 15 s | |||
75 | RECORD_PUT_INTERVAL = 1 h | 75 | RECORD_PUT_INTERVAL = 1 h |
76 | 76 | ||
77 | [nse] | 77 | [nse] |
78 | AUTOSTART = NO | 78 | START_ON_DEMAND = NO |
79 | 79 | ||
80 | [statistics] | 80 | [statistics] |
81 | AUTOSTART = NO | 81 | START_ON_DEMAND = NO |
82 | 82 | ||
83 | [namestore] | 83 | [namestore] |
84 | PORT = 22371 | 84 | PORT = 22371 |
85 | AUTOSTART = YES | 85 | START_ON_DEMAND = YES |
86 | UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-namestore-default.sock | 86 | UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-namestore-default.sock |
87 | UNIX_MATCH_UID = YES | 87 | UNIX_MATCH_UID = YES |
88 | UNIX_MATCH_GID = YES | 88 | UNIX_MATCH_GID = YES |