aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dht/gnunet-service-dht.c3
-rw-r--r--src/dht/gnunet-service-dht_neighbours.c6
-rw-r--r--src/hello/hello-uri.c26
-rw-r--r--src/hello/test_hello-uri.c12
-rw-r--r--src/include/gnunet_hello_uri_lib.h9
5 files changed, 38 insertions, 18 deletions
diff --git a/src/dht/gnunet-service-dht.c b/src/dht/gnunet-service-dht.c
index 39433791d..0766bea62 100644
--- a/src/dht/gnunet-service-dht.c
+++ b/src/dht/gnunet-service-dht.c
@@ -236,7 +236,8 @@ broadcast_hello (void *cls)
236 &broadcast_hello, 236 &broadcast_hello,
237 NULL); 237 NULL);
238 hello = GNUNET_HELLO_builder_to_dht_hello_msg (GDS_my_hello, 238 hello = GNUNET_HELLO_builder_to_dht_hello_msg (GDS_my_hello,
239 &GDS_my_private_key); 239 &GDS_my_private_key,
240 GNUNET_TIME_UNIT_ZERO);
240 if (NULL == hello) 241 if (NULL == hello)
241 { 242 {
242 GNUNET_break (0); 243 GNUNET_break (0);
diff --git a/src/dht/gnunet-service-dht_neighbours.c b/src/dht/gnunet-service-dht_neighbours.c
index 010a7dd62..b0a71de95 100644
--- a/src/dht/gnunet-service-dht_neighbours.c
+++ b/src/dht/gnunet-service-dht_neighbours.c
@@ -2183,7 +2183,8 @@ handle_find_my_hello (struct PeerInfo *pi,
2183 GNUNET_HELLO_builder_to_block (GDS_my_hello, 2183 GNUNET_HELLO_builder_to_block (GDS_my_hello,
2184 &GDS_my_private_key, 2184 &GDS_my_private_key,
2185 NULL, 2185 NULL,
2186 &block_size)); 2186 &block_size,
2187 GNUNET_TIME_UNIT_ZERO));
2187 { 2188 {
2188 char block[block_size]; 2189 char block[block_size];
2189 2190
@@ -2191,7 +2192,8 @@ handle_find_my_hello (struct PeerInfo *pi,
2191 GNUNET_HELLO_builder_to_block (GDS_my_hello, 2192 GNUNET_HELLO_builder_to_block (GDS_my_hello,
2192 &GDS_my_private_key, 2193 &GDS_my_private_key,
2193 block, 2194 block,
2194 &block_size)) 2195 &block_size,
2196 GNUNET_TIME_UNIT_ZERO))
2195 { 2197 {
2196 GNUNET_STATISTICS_update (GDS_stats, 2198 GNUNET_STATISTICS_update (GDS_stats,
2197 "# FIND PEER requests ignored due to lack of HELLO", 2199 "# FIND PEER requests ignored due to lack of HELLO",
diff --git a/src/hello/hello-uri.c b/src/hello/hello-uri.c
index dd191738f..8f8f699e9 100644
--- a/src/hello/hello-uri.c
+++ b/src/hello/hello-uri.c
@@ -552,7 +552,8 @@ GNUNET_HELLO_builder_from_url (const char *url)
552 552
553struct GNUNET_MQ_Envelope * 553struct GNUNET_MQ_Envelope *
554GNUNET_HELLO_builder_to_env (const struct GNUNET_HELLO_Builder *builder, 554GNUNET_HELLO_builder_to_env (const struct GNUNET_HELLO_Builder *builder,
555 const struct GNUNET_CRYPTO_EddsaPrivateKey *priv) 555 const struct GNUNET_CRYPTO_EddsaPrivateKey *priv,
556 struct GNUNET_TIME_Relative expiration_time)
556{ 557{
557 struct GNUNET_MQ_Envelope *env; 558 struct GNUNET_MQ_Envelope *env;
558 struct HelloUriMessage *msg; 559 struct HelloUriMessage *msg;
@@ -568,7 +569,8 @@ GNUNET_HELLO_builder_to_env (const struct GNUNET_HELLO_Builder *builder,
568 GNUNET_HELLO_builder_to_block (builder, 569 GNUNET_HELLO_builder_to_block (builder,
569 priv, 570 priv,
570 NULL, 571 NULL,
571 &blen)); 572 &blen,
573 expiration_time));
572 env = GNUNET_MQ_msg_extra (msg, 574 env = GNUNET_MQ_msg_extra (msg,
573 blen, 575 blen,
574 GNUNET_MESSAGE_TYPE_HELLO_URI); 576 GNUNET_MESSAGE_TYPE_HELLO_URI);
@@ -577,7 +579,8 @@ GNUNET_HELLO_builder_to_env (const struct GNUNET_HELLO_Builder *builder,
577 GNUNET_HELLO_builder_to_block (builder, 579 GNUNET_HELLO_builder_to_block (builder,
578 priv, 580 priv,
579 &msg[1], 581 &msg[1],
580 &blen)); 582 &blen,
583 expiration_time));
581 return env; 584 return env;
582} 585}
583 586
@@ -585,7 +588,8 @@ GNUNET_HELLO_builder_to_env (const struct GNUNET_HELLO_Builder *builder,
585struct GNUNET_MessageHeader * 588struct GNUNET_MessageHeader *
586GNUNET_HELLO_builder_to_dht_hello_msg ( 589GNUNET_HELLO_builder_to_dht_hello_msg (
587 const struct GNUNET_HELLO_Builder *builder, 590 const struct GNUNET_HELLO_Builder *builder,
588 const struct GNUNET_CRYPTO_EddsaPrivateKey *priv) 591 const struct GNUNET_CRYPTO_EddsaPrivateKey *priv,
592 struct GNUNET_TIME_Relative expiration_time)
589{ 593{
590 struct DhtHelloMessage *msg; 594 struct DhtHelloMessage *msg;
591 size_t blen; 595 size_t blen;
@@ -600,7 +604,8 @@ GNUNET_HELLO_builder_to_dht_hello_msg (
600 GNUNET_HELLO_builder_to_block (builder, 604 GNUNET_HELLO_builder_to_block (builder,
601 priv, 605 priv,
602 NULL, 606 NULL,
603 &blen)); 607 &blen,
608 expiration_time));
604 GNUNET_assert (blen < UINT16_MAX); 609 GNUNET_assert (blen < UINT16_MAX);
605 GNUNET_assert (blen >= sizeof (struct BlockHeader)); 610 GNUNET_assert (blen >= sizeof (struct BlockHeader));
606 { 611 {
@@ -611,7 +616,8 @@ GNUNET_HELLO_builder_to_dht_hello_msg (
611 GNUNET_HELLO_builder_to_block (builder, 616 GNUNET_HELLO_builder_to_block (builder,
612 priv, 617 priv,
613 buf, 618 buf,
614 &blen)); 619 &blen,
620 expiration_time));
615 msg = GNUNET_malloc (sizeof (*msg) 621 msg = GNUNET_malloc (sizeof (*msg)
616 + blen 622 + blen
617 - sizeof (*block)); 623 - sizeof (*block));
@@ -699,7 +705,8 @@ enum GNUNET_GenericReturnValue
699GNUNET_HELLO_builder_to_block (const struct GNUNET_HELLO_Builder *builder, 705GNUNET_HELLO_builder_to_block (const struct GNUNET_HELLO_Builder *builder,
700 const struct GNUNET_CRYPTO_EddsaPrivateKey *priv, 706 const struct GNUNET_CRYPTO_EddsaPrivateKey *priv,
701 void *block, 707 void *block,
702 size_t *block_size) 708 size_t *block_size,
709 struct GNUNET_TIME_Relative expiration_time)
703{ 710{
704 struct BlockHeader bh; 711 struct BlockHeader bh;
705 size_t needed = sizeof (bh); 712 size_t needed = sizeof (bh);
@@ -720,7 +727,10 @@ GNUNET_HELLO_builder_to_block (const struct GNUNET_HELLO_Builder *builder,
720 return GNUNET_NO; 727 return GNUNET_NO;
721 } 728 }
722 bh.pid = builder->pid; 729 bh.pid = builder->pid;
723 et = GNUNET_TIME_relative_to_timestamp (GNUNET_HELLO_ADDRESS_EXPIRATION); 730 if (GNUNET_TIME_UNIT_ZERO.rel_value_us == expiration_time.rel_value_us)
731 et = GNUNET_TIME_relative_to_timestamp (GNUNET_HELLO_ADDRESS_EXPIRATION);
732 else
733 et = GNUNET_TIME_relative_to_timestamp (expiration_time);
724 bh.expiration_time = GNUNET_TIME_absolute_hton (et.abs_time); 734 bh.expiration_time = GNUNET_TIME_absolute_hton (et.abs_time);
725 sign_hello (builder, 735 sign_hello (builder,
726 et, 736 et,
diff --git a/src/hello/test_hello-uri.c b/src/hello/test_hello-uri.c
index 01b6f2d8e..1062f446b 100644
--- a/src/hello/test_hello-uri.c
+++ b/src/hello/test_hello-uri.c
@@ -95,19 +95,22 @@ main (int argc,
95 GNUNET_HELLO_builder_to_block (b, 95 GNUNET_HELLO_builder_to_block (b,
96 &priv, 96 &priv,
97 NULL, 97 NULL,
98 &block_size)); 98 &block_size,
99 NULL));
99 GNUNET_assert (GNUNET_NO == 100 GNUNET_assert (GNUNET_NO ==
100 GNUNET_HELLO_builder_to_block (b, 101 GNUNET_HELLO_builder_to_block (b,
101 &priv, 102 &priv,
102 NULL, 103 NULL,
103 &block_size)); 104 &block_size,
105 NULL));
104 GNUNET_assert (0 != block_size); 106 GNUNET_assert (0 != block_size);
105 block = GNUNET_malloc (block_size); 107 block = GNUNET_malloc (block_size);
106 GNUNET_assert (GNUNET_OK == 108 GNUNET_assert (GNUNET_OK ==
107 GNUNET_HELLO_builder_to_block (b, 109 GNUNET_HELLO_builder_to_block (b,
108 &priv, 110 &priv,
109 block, 111 block,
110 &block_size)); 112 &block_size,
113 NULL));
111 b2 = GNUNET_HELLO_builder_from_block (block, 114 b2 = GNUNET_HELLO_builder_from_block (block,
112 block_size); 115 block_size);
113 GNUNET_free (block); 116 GNUNET_free (block);
@@ -154,7 +157,8 @@ main (int argc,
154 unsigned int found; 157 unsigned int found;
155 158
156 env = GNUNET_HELLO_builder_to_env (b, 159 env = GNUNET_HELLO_builder_to_env (b,
157 &priv); 160 &priv,
161 NULL);
158 b2 = GNUNET_HELLO_builder_from_msg (GNUNET_MQ_env_get_msg (env)); 162 b2 = GNUNET_HELLO_builder_from_msg (GNUNET_MQ_env_get_msg (env));
159 GNUNET_free (env); 163 GNUNET_free (env);
160 GNUNET_assert (NULL != b2); 164 GNUNET_assert (NULL != b2);
diff --git a/src/include/gnunet_hello_uri_lib.h b/src/include/gnunet_hello_uri_lib.h
index bba7078e6..4e48bc1a0 100644
--- a/src/include/gnunet_hello_uri_lib.h
+++ b/src/include/gnunet_hello_uri_lib.h
@@ -120,7 +120,8 @@ GNUNET_HELLO_builder_from_url (const char *url);
120 */ 120 */
121struct GNUNET_MQ_Envelope * 121struct GNUNET_MQ_Envelope *
122GNUNET_HELLO_builder_to_env (const struct GNUNET_HELLO_Builder *builder, 122GNUNET_HELLO_builder_to_env (const struct GNUNET_HELLO_Builder *builder,
123 const struct GNUNET_CRYPTO_EddsaPrivateKey *priv); 123 const struct GNUNET_CRYPTO_EddsaPrivateKey *priv,
124 struct GNUNET_TIME_Relative expiration_time);
124 125
125 126
126/** 127/**
@@ -133,7 +134,8 @@ GNUNET_HELLO_builder_to_env (const struct GNUNET_HELLO_Builder *builder,
133struct GNUNET_MessageHeader * 134struct GNUNET_MessageHeader *
134GNUNET_HELLO_builder_to_dht_hello_msg ( 135GNUNET_HELLO_builder_to_dht_hello_msg (
135 const struct GNUNET_HELLO_Builder *builder, 136 const struct GNUNET_HELLO_Builder *builder,
136 const struct GNUNET_CRYPTO_EddsaPrivateKey *priv); 137 const struct GNUNET_CRYPTO_EddsaPrivateKey *priv,
138 struct GNUNET_TIME_Relative expiration_time);
137 139
138 140
139/** 141/**
@@ -162,7 +164,8 @@ enum GNUNET_GenericReturnValue
162GNUNET_HELLO_builder_to_block (const struct GNUNET_HELLO_Builder *builder, 164GNUNET_HELLO_builder_to_block (const struct GNUNET_HELLO_Builder *builder,
163 const struct GNUNET_CRYPTO_EddsaPrivateKey *priv, 165 const struct GNUNET_CRYPTO_EddsaPrivateKey *priv,
164 void *block, 166 void *block,
165 size_t *block_size); 167 size_t *block_size,
168 struct GNUNET_TIME_Relative expiration_time);
166 169
167 170
168/** 171/**