aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Schanzenbach <schanzen@gnunet.org>2022-10-21 10:37:24 +0900
committerMartin Schanzenbach <schanzen@gnunet.org>2022-10-21 10:37:24 +0900
commit23d5c0716781f2f6720e3c549cc662e70ad78b17 (patch)
tree0385bbe77439ac54fad768e2568ca26ac0ab03fe
parent34c3a6c5ae3a7ce2b4ec8b2f13ee934cb7816f5a (diff)
downloadgnunet-23d5c0716781f2f6720e3c549cc662e70ad78b17.tar.gz
gnunet-23d5c0716781f2f6720e3c549cc662e70ad78b17.zip
-fix notification processing zonemaster; give zonemaster some time in GNS tests; fix GNS tests for new gnunet.org IP
-rwxr-xr-xsrc/gns/test_gns_dht_lookup.sh2
-rwxr-xr-xsrc/gns/test_gns_gns2dns_lookup.sh6
-rwxr-xr-xsrc/gns/test_gns_gns2dns_zkey_lookup.sh5
-rwxr-xr-xsrc/gns/test_gns_redirect_lookup.sh4
-rw-r--r--src/zonemaster/gnunet-service-zonemaster.c165
-rw-r--r--src/zonemaster/zonemaster.conf.in2
6 files changed, 100 insertions, 84 deletions
diff --git a/src/gns/test_gns_dht_lookup.sh b/src/gns/test_gns_dht_lookup.sh
index 8d446c507..da87d8477 100755
--- a/src/gns/test_gns_dht_lookup.sh
+++ b/src/gns/test_gns_dht_lookup.sh
@@ -40,14 +40,12 @@ gnunet-arm -i zonemaster -c test_gns_lookup.conf
40#gnunet-arm -r -c test_gns_lookup.conf 40#gnunet-arm -r -c test_gns_lookup.conf
41#gnunet-arm -i zonemaster 41#gnunet-arm -i zonemaster
42#gnunet-arm -i gns -c test_gns_lookup.conf 42#gnunet-arm -i gns -c test_gns_lookup.conf
43gnunet-arm -I -c test_gns_lookup.conf
44#gnunet-identity -D $OTHER_EGO -c test_gns_lookup.conf 43#gnunet-identity -D $OTHER_EGO -c test_gns_lookup.conf
45#gnunet-namestore -z $MY_EGO -d -n b -t PKEY -V $DELEGATED_PKEY -e never -c test_gns_lookup.conf 44#gnunet-namestore -z $MY_EGO -d -n b -t PKEY -V $DELEGATED_PKEY -e never -c test_gns_lookup.conf
46#gnunet-namestore -z $OTHER_EGO -d -n www -t A -V $TEST_IP -e never -c test_gns_lookup.conf 45#gnunet-namestore -z $OTHER_EGO -d -n www -t A -V $TEST_IP -e never -c test_gns_lookup.conf
47RES_IP=`$DO_TIMEOUT gnunet-gns --raw -u www.b.$MY_EGO -t A -c test_gns_lookup.conf` 46RES_IP=`$DO_TIMEOUT gnunet-gns --raw -u www.b.$MY_EGO -t A -c test_gns_lookup.conf`
48RES_IP_REL=`$DO_TIMEOUT gnunet-gns --raw -u www2.b.$MY_EGO -t A -c test_gns_lookup.conf` 47RES_IP_REL=`$DO_TIMEOUT gnunet-gns --raw -u www2.b.$MY_EGO -t A -c test_gns_lookup.conf`
49#gnunet-namestore -z $MY_EGO -d -n b -t PKEY -V $DELEGATED_PKEY -e never -c test_gns_lookup.conf 48#gnunet-namestore -z $MY_EGO -d -n b -t PKEY -V $DELEGATED_PKEY -e never -c test_gns_lookup.conf
50gnunet-arm -I -c test_gns_lookup.conf
51gnunet-arm -e -c test_gns_lookup.conf 49gnunet-arm -e -c test_gns_lookup.conf
52rm -rf `gnunet-config -c test_gns_lookup.conf -f -s paths -o GNUNET_TEST_HOME` 50rm -rf `gnunet-config -c test_gns_lookup.conf -f -s paths -o GNUNET_TEST_HOME`
53 51
diff --git a/src/gns/test_gns_gns2dns_lookup.sh b/src/gns/test_gns_gns2dns_lookup.sh
index 9419330e6..43a4756d3 100755
--- a/src/gns/test_gns_gns2dns_lookup.sh
+++ b/src/gns/test_gns_gns2dns_lookup.sh
@@ -18,8 +18,6 @@ rm -rf `gnunet-config -c test_gns_lookup.conf -f -s paths -o GNUNET_TEST_HOME`
18TEST_IP_ALT2="147.87.255.218" 18TEST_IP_ALT2="147.87.255.218"
19# IP address of 'www.gnunet.org' 19# IP address of 'www.gnunet.org'
20TEST_IP="147.87.255.218" 20TEST_IP="147.87.255.218"
21# IP address of 'gnunet.org'
22TEST_IP_ALT="131.159.74.67"
23# IPv6 address of 'gnunet.org' 21# IPv6 address of 'gnunet.org'
24TEST_IP6="2a07:6b47:100:464::9357:ffdb" 22TEST_IP6="2a07:6b47:100:464::9357:ffdb"
25# permissive DNS resolver we will use for the test 23# permissive DNS resolver we will use for the test
@@ -66,6 +64,8 @@ gnunet-namestore -p -z $MY_EGO -a -n $TEST_RECORD_NAME -t GNS2DNS -V $TEST_RECOR
66 64
67sleep 1 65sleep 1
68 66
67gnunet-gns -u $TEST_RECORD_NAME.$MY_EGO -t GNS2DNS -c test_gns_lookup.conf
68
69# lookup 'www.gnunet.org', IPv4 69# lookup 'www.gnunet.org', IPv4
70RES_IP=`$DO_TIMEOUT gnunet-gns --raw -u $TEST_DOMAIN -t A -c test_gns_lookup.conf` 70RES_IP=`$DO_TIMEOUT gnunet-gns --raw -u $TEST_DOMAIN -t A -c test_gns_lookup.conf`
71# lookup 'www.gnunet.org', IPv6 71# lookup 'www.gnunet.org', IPv6
@@ -99,7 +99,7 @@ else
99 ret=1 99 ret=1
100fi 100fi
101 101
102if echo "$RES_IP_ALT" | grep "$TEST_IP_ALT" > /dev/null 102if echo "$RES_IP_ALT" | grep "$TEST_IP" > /dev/null
103then 103then
104 echo "PASS: Resolved $TEST_DOMAIN_ALT to $RES_IP_ALT." 104 echo "PASS: Resolved $TEST_DOMAIN_ALT to $RES_IP_ALT."
105else 105else
diff --git a/src/gns/test_gns_gns2dns_zkey_lookup.sh b/src/gns/test_gns_gns2dns_zkey_lookup.sh
index ee3f3a748..03549314e 100755
--- a/src/gns/test_gns_gns2dns_zkey_lookup.sh
+++ b/src/gns/test_gns_gns2dns_zkey_lookup.sh
@@ -18,8 +18,6 @@ rm -rf `gnunet-config -c test_gns_lookup.conf -f -s paths -o GNUNET_TEST_HOME`
18TEST_IP_ALT2="147.87.255.218" 18TEST_IP_ALT2="147.87.255.218"
19# IP address of 'www.gnunet.org' 19# IP address of 'www.gnunet.org'
20TEST_IP="147.87.255.218" 20TEST_IP="147.87.255.218"
21# IP address of 'www.gnunet.org'
22TEST_IP_ALT="131.159.74.67"
23# IPv6 address of 'gnunet.org' 21# IPv6 address of 'gnunet.org'
24TEST_IP6="2a07:6b47:100:464::9357:ffdb" 22TEST_IP6="2a07:6b47:100:464::9357:ffdb"
25# permissive DNS resolver we will use for the test 23# permissive DNS resolver we will use for the test
@@ -66,6 +64,7 @@ gnunet-namestore -p -z $MY_EGO -a -n $TEST_RESOLVER_LABEL -t A -V $TEST_IP_GNS2D
66gnunet-namestore -p -z $MY_EGO -a -n $TEST_RECORD_NAME -t GNS2DNS -V $TEST_RECORD_GNS2DNS -e never -c test_gns_lookup.conf 64gnunet-namestore -p -z $MY_EGO -a -n $TEST_RECORD_NAME -t GNS2DNS -V $TEST_RECORD_GNS2DNS -e never -c test_gns_lookup.conf
67 65
68sleep 1 66sleep 1
67
69# lookup 'www.gnunet.org', IPv4 68# lookup 'www.gnunet.org', IPv4
70RES_IP=`$DO_TIMEOUT gnunet-gns --raw -u $TEST_DOMAIN -t A -c test_gns_lookup.conf` 69RES_IP=`$DO_TIMEOUT gnunet-gns --raw -u $TEST_DOMAIN -t A -c test_gns_lookup.conf`
71# lookup 'www.gnunet.org', IPv6 70# lookup 'www.gnunet.org', IPv6
@@ -99,7 +98,7 @@ else
99 ret=1 98 ret=1
100fi 99fi
101 100
102if echo "$RES_IP_ALT" | grep "$TEST_IP_ALT" > /dev/null 101if echo "$RES_IP_ALT" | grep "$TEST_IP" > /dev/null
103then 102then
104 echo "PASS: Resolved $TEST_DOMAIN_ALT to $RES_IP_ALT." 103 echo "PASS: Resolved $TEST_DOMAIN_ALT to $RES_IP_ALT."
105else 104else
diff --git a/src/gns/test_gns_redirect_lookup.sh b/src/gns/test_gns_redirect_lookup.sh
index 4ee5c0e3e..90729713d 100755
--- a/src/gns/test_gns_redirect_lookup.sh
+++ b/src/gns/test_gns_redirect_lookup.sh
@@ -26,7 +26,7 @@ fi
26rm -rf `gnunet-config -c test_gns_lookup.conf -f -s paths -o GNUNET_TEST_HOME` 26rm -rf `gnunet-config -c test_gns_lookup.conf -f -s paths -o GNUNET_TEST_HOME`
27 27
28TEST_IP_PLUS="127.0.0.1" 28TEST_IP_PLUS="127.0.0.1"
29TEST_IP_DNS="131.159.74.67" 29TEST_IP_DNS="147.87.255.218"
30TEST_RECORD_REDIRECT_SERVER="server" 30TEST_RECORD_REDIRECT_SERVER="server"
31TEST_RECORD_REDIRECT_PLUS="server.+" 31TEST_RECORD_REDIRECT_PLUS="server.+"
32TEST_RECORD_REDIRECT_DNS="gnunet.org" 32TEST_RECORD_REDIRECT_DNS="gnunet.org"
@@ -48,7 +48,7 @@ gnunet-namestore -p -z $MY_EGO -a -n $TEST_RECORD_NAME_DNS -t REDIRECT -V $TEST_
48gnunet-namestore -p -z $MY_EGO -a -n $TEST_RECORD_NAME_PLUS -t REDIRECT -V $TEST_RECORD_REDIRECT_PLUS -e never -c test_gns_lookup.conf 48gnunet-namestore -p -z $MY_EGO -a -n $TEST_RECORD_NAME_PLUS -t REDIRECT -V $TEST_RECORD_REDIRECT_PLUS -e never -c test_gns_lookup.conf
49gnunet-namestore -p -z $MY_EGO -a -n $TEST_RECORD_NAME_ZKEY -t REDIRECT -V $TEST_RECORD_REDIRECT_ZKEY -e never -c test_gns_lookup.conf 49gnunet-namestore -p -z $MY_EGO -a -n $TEST_RECORD_NAME_ZKEY -t REDIRECT -V $TEST_RECORD_REDIRECT_ZKEY -e never -c test_gns_lookup.conf
50gnunet-namestore -p -z $MY_EGO -a -n $TEST_RECORD_REDIRECT_SERVER -t A -V $TEST_IP_PLUS -e never -c test_gns_lookup.conf 50gnunet-namestore -p -z $MY_EGO -a -n $TEST_RECORD_REDIRECT_SERVER -t A -V $TEST_IP_PLUS -e never -c test_gns_lookup.conf
51sleep 3 51sleep 1
52RES_REDIRECT=`$DO_TIMEOUT gnunet-gns --raw -u $TEST_DOMAIN_PLUS -t A -c test_gns_lookup.conf` 52RES_REDIRECT=`$DO_TIMEOUT gnunet-gns --raw -u $TEST_DOMAIN_PLUS -t A -c test_gns_lookup.conf`
53RES_REDIRECT_RAW=`$DO_TIMEOUT gnunet-gns --raw -u $TEST_DOMAIN_PLUS -t REDIRECT -c test_gns_lookup.conf` 53RES_REDIRECT_RAW=`$DO_TIMEOUT gnunet-gns --raw -u $TEST_DOMAIN_PLUS -t REDIRECT -c test_gns_lookup.conf`
54RES_REDIRECT_ZKEY=`$DO_TIMEOUT gnunet-gns --raw -u $TEST_DOMAIN_ZKEY -t A -c test_gns_lookup.conf` 54RES_REDIRECT_ZKEY=`$DO_TIMEOUT gnunet-gns --raw -u $TEST_DOMAIN_ZKEY -t A -c test_gns_lookup.conf`
diff --git a/src/zonemaster/gnunet-service-zonemaster.c b/src/zonemaster/gnunet-service-zonemaster.c
index 029abe208..0413fff32 100644
--- a/src/zonemaster/gnunet-service-zonemaster.c
+++ b/src/zonemaster/gnunet-service-zonemaster.c
@@ -387,6 +387,17 @@ static struct CacheOperation *cop_head;
387static struct CacheOperation *cop_tail; 387static struct CacheOperation *cop_tail;
388 388
389 389
390static void
391free_job (struct OpenSignJob *job)
392{
393 if (job->block != job->block_priv)
394 GNUNET_free (job->block_priv);
395 GNUNET_free (job->block);
396 if (NULL != job->label)
397 GNUNET_free (job->label);
398 GNUNET_free (job);
399}
400
390/** 401/**
391 * Task run during shutdown. 402 * Task run during shutdown.
392 * 403 *
@@ -398,6 +409,7 @@ shutdown_task (void *cls)
398{ 409{
399 struct DhtPutActivity *ma; 410 struct DhtPutActivity *ma;
400 struct CacheOperation *cop; 411 struct CacheOperation *cop;
412 struct OpenSignJob *job;
401 413
402 (void) cls; 414 (void) cls;
403 in_shutdown == GNUNET_YES; 415 in_shutdown == GNUNET_YES;
@@ -416,6 +428,22 @@ shutdown_task (void *cls)
416 GNUNET_free (cop); 428 GNUNET_free (cop);
417 } 429 }
418 430
431 while (NULL != (job = jobs_head))
432 {
433 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
434 "Removing incomplete jobs\n");
435 GNUNET_CONTAINER_DLL_remove (jobs_head, jobs_tail, job);
436 free_job (job);
437 }
438
439 while (NULL != (job = results_head))
440 {
441 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
442 "Removing incomplete jobs\n");
443 GNUNET_CONTAINER_DLL_remove (results_head, results_tail, job);
444 free_job (job);
445 }
446
419 while (NULL != (ma = it_head)) 447 while (NULL != (ma = it_head))
420 { 448 {
421 if (NULL != ma->ph) 449 if (NULL != ma->ph)
@@ -771,18 +799,6 @@ dht_put_continuation (void *cls)
771} 799}
772 800
773 801
774static void
775free_job (struct OpenSignJob *job)
776{
777 if (job->block != job->block_priv)
778 GNUNET_free (job->block_priv);
779 GNUNET_free (job->block);
780 if (NULL != job->label)
781 GNUNET_free (job->label);
782 GNUNET_free (job);
783}
784
785
786/** 802/**
787 * Store GNS records in the DHT. 803 * Store GNS records in the DHT.
788 * 804 *
@@ -850,8 +866,7 @@ perform_dht_put (const struct GNUNET_IDENTITY_PrivateKey *key,
850 block_size = GNUNET_GNSRECORD_block_get_size (block); 866 block_size = GNUNET_GNSRECORD_block_get_size (block);
851 GNUNET_assert (0 == pthread_mutex_lock (&jobs_lock)); 867 GNUNET_assert (0 == pthread_mutex_lock (&jobs_lock));
852 struct OpenSignJob *job = GNUNET_new (struct OpenSignJob); 868 struct OpenSignJob *job = GNUNET_new (struct OpenSignJob);
853 job->block = GNUNET_malloc (block_size); // FIXME this does not need to be copied, can be freed by worker 869 job->block = block;
854 memcpy (job->block, block, block_size);
855 job->block_size = block_size; 870 job->block_size = block_size;
856 job->block_priv = block_priv; 871 job->block_priv = block_priv;
857 job->zone = *key; 872 job->zone = *key;
@@ -859,10 +874,10 @@ perform_dht_put (const struct GNUNET_IDENTITY_PrivateKey *key,
859 job->label = GNUNET_strdup (label); 874 job->label = GNUNET_strdup (label);
860 job->expire_pub = expire_pub; 875 job->expire_pub = expire_pub;
861 GNUNET_CONTAINER_DLL_insert (jobs_head, jobs_tail, job); 876 GNUNET_CONTAINER_DLL_insert (jobs_head, jobs_tail, job);
877 GNUNET_assert (0 == pthread_cond_signal (&empty_jobs));
862 GNUNET_assert (0 == pthread_mutex_unlock (&jobs_lock)); 878 GNUNET_assert (0 == pthread_mutex_unlock (&jobs_lock));
863 pthread_cond_signal (&empty_jobs);
864 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 879 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
865 "Storing %u record(s) for label `%s' in DHT with expiration `%s'\n", 880 "Creating job with %u record(s) for label `%s', expiration `%s'\n",
866 rd_public_count, 881 rd_public_count,
867 label, 882 label,
868 GNUNET_STRINGS_absolute_time_to_string (expire)); 883 GNUNET_STRINGS_absolute_time_to_string (expire));
@@ -884,8 +899,6 @@ initiate_put_from_pipe_trigger (void *cls)
884 ssize_t nf_count; 899 ssize_t nf_count;
885 900
886 pipe_read_task = NULL; 901 pipe_read_task = NULL;
887 GNUNET_assert (0 == pthread_mutex_lock (&results_lock));
888 job = results_head;
889 np_fh = GNUNET_DISK_pipe_handle (notification_pipe, 902 np_fh = GNUNET_DISK_pipe_handle (notification_pipe,
890 GNUNET_DISK_PIPE_END_READ); 903 GNUNET_DISK_PIPE_END_READ);
891 pipe_read_task = 904 pipe_read_task =
@@ -895,50 +908,54 @@ initiate_put_from_pipe_trigger (void *cls)
895 notification_pipe_cb, 908 notification_pipe_cb,
896 NULL); 909 NULL);
897 /* empty queue */ 910 /* empty queue */
898 while (GNUNET_SYSERR != 911 nf_count = GNUNET_DISK_file_read (np_fh, buf, sizeof (buf));
899 (nf_count = GNUNET_DISK_file_read (np_fh, buf, sizeof (buf)))) 912 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Read %lld notifications from pipe\n",
900 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Read %lld notifications from pipe\n", 913 (long long) nf_count);
901 (long long) nf_count); 914 for (int i = 0; i < nf_count; i++)
902 if (NULL == job)
903 { 915 {
904 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 916 GNUNET_assert (0 == pthread_mutex_lock (&results_lock));
905 "Hmm... no results. Back to sleep.\n"); 917 job = results_head;
918 if (NULL == job)
919 {
920 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
921 "Hmm... no results. Back to sleep.\n");
922 GNUNET_assert (0 == pthread_mutex_unlock (&results_lock));
923 return;
924 }
925 GNUNET_CONTAINER_DLL_remove (results_head, results_tail, job);
906 GNUNET_assert (0 == pthread_mutex_unlock (&results_lock)); 926 GNUNET_assert (0 == pthread_mutex_unlock (&results_lock));
907 return; 927 GNUNET_GNSRECORD_query_from_private_key (&job->zone,
908 } 928 job->label,
909 GNUNET_CONTAINER_DLL_remove (results_head, results_tail, job); 929 &query);
910 GNUNET_assert (0 == pthread_mutex_unlock (&results_lock)); 930 GNUNET_STATISTICS_update (statistics,
911 GNUNET_GNSRECORD_query_from_private_key (&job->zone, 931 "DHT put operations initiated",
912 job->label, 932 1,
913 &query); 933 GNUNET_NO);
914 GNUNET_STATISTICS_update (statistics, 934 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
915 "DHT put operations initiated", 935 "Storing record(s) for label `%s' in DHT under key %s\n",
916 1, 936 job->label,
917 GNUNET_NO); 937 GNUNET_h2s (&query));
918 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 938 job->ma->ph = GNUNET_DHT_put (dht_handle,
919 "Storing record(s) for label `%s' in DHT under key %s\n", 939 &query,
920 job->label, 940 DHT_GNS_REPLICATION_LEVEL,
921 GNUNET_h2s (&query)); 941 GNUNET_DHT_RO_DEMULTIPLEX_EVERYWHERE,
922 job->ma->ph = GNUNET_DHT_put (dht_handle, 942 GNUNET_BLOCK_TYPE_GNS_NAMERECORD,
923 &query, 943 job->block_size,
924 DHT_GNS_REPLICATION_LEVEL, 944 job->block,
925 GNUNET_DHT_RO_DEMULTIPLEX_EVERYWHERE, 945 job->expire_pub,
926 GNUNET_BLOCK_TYPE_GNS_NAMERECORD, 946 &dht_put_continuation,
927 job->block_size, 947 job->ma);
928 job->block, 948 if (NULL == job->ma->ph)
929 job->expire_pub, 949 {
930 &dht_put_continuation, 950 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
931 job->ma); 951 "Could not perform DHT PUT, is the DHT running?\n");
932 if (NULL == job->ma->ph) 952 GNUNET_free (job->ma);
933 { 953 free_job (job);
934 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, 954 return;
935 "Could not perform DHT PUT, is the DHT running?\n"); 955 }
936 GNUNET_free (job->ma); 956 refresh_block (job->block_priv);
937 free_job (job); 957 free_job (job);
938 return;
939 } 958 }
940 refresh_block (job->block_priv);
941 free_job (job);
942 return; 959 return;
943} 960}
944 961
@@ -1213,8 +1230,8 @@ perform_dht_put_monitor (const struct GNUNET_IDENTITY_PrivateKey *key,
1213 job->label = GNUNET_strdup (label); 1230 job->label = GNUNET_strdup (label);
1214 job->expire_pub = expire_pub; 1231 job->expire_pub = expire_pub;
1215 GNUNET_CONTAINER_DLL_insert (jobs_head, jobs_tail, job); 1232 GNUNET_CONTAINER_DLL_insert (jobs_head, jobs_tail, job);
1233 GNUNET_assert (0 == pthread_cond_signal (&empty_jobs));
1216 GNUNET_assert (0 == pthread_mutex_unlock (&jobs_lock)); 1234 GNUNET_assert (0 == pthread_mutex_unlock (&jobs_lock));
1217 pthread_cond_signal (&empty_jobs);
1218} 1235}
1219 1236
1220 1237
@@ -1305,25 +1322,27 @@ sign_worker (void *cls)
1305 { 1322 {
1306 GNUNET_assert (0 == pthread_mutex_lock (&jobs_lock)); 1323 GNUNET_assert (0 == pthread_mutex_lock (&jobs_lock));
1307 while (NULL == jobs_head) 1324 while (NULL == jobs_head)
1308 pthread_cond_wait (&empty_jobs, &jobs_lock); 1325 GNUNET_assert (0 == pthread_cond_wait (&empty_jobs, &jobs_lock));
1326 if (GNUNET_YES == in_shutdown)
1327 {
1328 GNUNET_assert (0 == pthread_mutex_unlock (&jobs_lock));
1329 return NULL;
1330 }
1309 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 1331 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1310 "Taking on Job for %s\n", jobs_head->label); 1332 "Taking on Job for %s\n", jobs_head->label);
1311 job = jobs_head; 1333 job = jobs_head;
1312 GNUNET_CONTAINER_DLL_remove (jobs_head, jobs_tail, job); 1334 GNUNET_CONTAINER_DLL_remove (jobs_head, jobs_tail, job);
1313 GNUNET_assert (0 == pthread_mutex_unlock (&jobs_lock)); 1335 GNUNET_assert (0 == pthread_mutex_unlock (&jobs_lock));
1314 if (NULL != job) 1336 GNUNET_GNSRECORD_block_sign (&job->zone, job->label, job->block);
1315 { 1337 if (job->block != job->block_priv)
1316 GNUNET_GNSRECORD_block_sign (&job->zone, job->label, job->block); 1338 GNUNET_GNSRECORD_block_sign (&job->zone, job->label, job->block_priv);
1317 if (job->block != job->block_priv) 1339 GNUNET_assert (0 == pthread_mutex_lock (&results_lock));
1318 GNUNET_GNSRECORD_block_sign (&job->zone, job->label, job->block_priv); 1340 GNUNET_CONTAINER_DLL_insert (results_head, results_tail, job);
1319 GNUNET_assert (0 == pthread_mutex_lock (&results_lock)); 1341 GNUNET_assert (0 == pthread_mutex_unlock (&results_lock));
1320 GNUNET_CONTAINER_DLL_insert (results_head, results_tail, job); 1342 job = NULL;
1321 GNUNET_assert (0 == pthread_mutex_unlock (&results_lock)); 1343 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1322 job = NULL; 1344 "Done, notifying main thread through pipe!\n");
1323 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 1345 GNUNET_DISK_file_write (fh, "!", 1);
1324 "Done, notifying main thread through pipe!\n");
1325 GNUNET_DISK_file_write (fh, "!", 1);
1326 }
1327 } 1346 }
1328 return NULL; 1347 return NULL;
1329} 1348}
diff --git a/src/zonemaster/zonemaster.conf.in b/src/zonemaster/zonemaster.conf.in
index 9c920c476..549394d6c 100644
--- a/src/zonemaster/zonemaster.conf.in
+++ b/src/zonemaster/zonemaster.conf.in
@@ -6,7 +6,7 @@ HOSTNAME = localhost
6BINARY = gnunet-service-zonemaster 6BINARY = gnunet-service-zonemaster
7UNIXPATH = $GNUNET_USER_RUNTIME_DIR/gnunet-service-zonemaster.sock 7UNIXPATH = $GNUNET_USER_RUNTIME_DIR/gnunet-service-zonemaster.sock
8@JAVAPORT@PORT = 2123 8@JAVAPORT@PORT = 2123
9WORKER_COUNT = 10 9WORKER_COUNT = 4
10 10
11# Do we require users that want to access GNS to run this process 11# Do we require users that want to access GNS to run this process
12# (usually not a good idea) 12# (usually not a good idea)