aboutsummaryrefslogtreecommitdiff
path: root/src/hello/hello.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/hello/hello.c')
-rw-r--r--src/hello/hello.c45
1 files changed, 23 insertions, 22 deletions
diff --git a/src/hello/hello.c b/src/hello/hello.c
index 51575ebaf..5b30dc167 100644
--- a/src/hello/hello.c
+++ b/src/hello/hello.c
@@ -35,7 +35,7 @@
35 * the format: 35 * the format:
36 * 36 *
37 * 1) transport-name (0-terminated) 37 * 1) transport-name (0-terminated)
38 * 2) address-length (uint32_t, network byte order; possibly 38 * 2) address-length (uint16_t, network byte order; possibly
39 * unaligned!) 39 * unaligned!)
40 * 3) address expiration (GNUNET_TIME_AbsoluteNBO); possibly 40 * 3) address expiration (GNUNET_TIME_AbsoluteNBO); possibly
41 * unaligned!) 41 * unaligned!)
@@ -78,21 +78,21 @@ size_t
78GNUNET_HELLO_add_address (const char *tname, 78GNUNET_HELLO_add_address (const char *tname,
79 struct GNUNET_TIME_Absolute expiration, 79 struct GNUNET_TIME_Absolute expiration,
80 const void *addr, 80 const void *addr,
81 size_t addr_len, char *target, size_t max) 81 uint16_t addr_len, char *target, size_t max)
82{ 82{
83 uint32_t alen; 83 uint16_t alen;
84 size_t slen; 84 size_t slen;
85 struct GNUNET_TIME_AbsoluteNBO exp; 85 struct GNUNET_TIME_AbsoluteNBO exp;
86 86
87 slen = strlen (tname) + 1; 87 slen = strlen (tname) + 1;
88 if (slen + sizeof (uint32_t) + sizeof (struct GNUNET_TIME_AbsoluteNBO) + 88 if (slen + sizeof (uint16_t) + sizeof (struct GNUNET_TIME_AbsoluteNBO) +
89 addr_len > max) 89 addr_len > max)
90 return 0; 90 return 0;
91 exp = GNUNET_TIME_absolute_hton (expiration); 91 exp = GNUNET_TIME_absolute_hton (expiration);
92 alen = htonl ((uint32_t) addr_len); 92 alen = htons (addr_len);
93 memcpy (target, tname, slen); 93 memcpy (target, tname, slen);
94 memcpy (&target[slen], &alen, sizeof (uint32_t)); 94 memcpy (&target[slen], &alen, sizeof (uint16_t));
95 slen += sizeof (uint32_t); 95 slen += sizeof (uint16_t);
96 memcpy (&target[slen], &exp, sizeof (struct GNUNET_TIME_AbsoluteNBO)); 96 memcpy (&target[slen], &exp, sizeof (struct GNUNET_TIME_AbsoluteNBO));
97 slen += sizeof (struct GNUNET_TIME_AbsoluteNBO); 97 slen += sizeof (struct GNUNET_TIME_AbsoluteNBO);
98 memcpy (&target[slen], addr, addr_len); 98 memcpy (&target[slen], addr, addr_len);
@@ -110,10 +110,10 @@ GNUNET_HELLO_add_address (const char *tname,
110 * @return size of the entry, or 0 if max is not large enough 110 * @return size of the entry, or 0 if max is not large enough
111 */ 111 */
112static size_t 112static size_t
113get_hello_address_size (const char *buf, size_t max, uint32_t * ralen) 113get_hello_address_size (const char *buf, size_t max, uint16_t * ralen)
114{ 114{
115 const char *pos; 115 const char *pos;
116 uint32_t alen; 116 uint16_t alen;
117 size_t left; 117 size_t left;
118 size_t slen; 118 size_t slen;
119 119
@@ -134,16 +134,16 @@ get_hello_address_size (const char *buf, size_t max, uint32_t * ralen)
134 return 0; 134 return 0;
135 } 135 }
136 pos++; 136 pos++;
137 if (left < sizeof (uint32_t) + sizeof (struct GNUNET_TIME_AbsoluteNBO)) 137 if (left < sizeof (uint16_t) + sizeof (struct GNUNET_TIME_AbsoluteNBO))
138 { 138 {
139 /* not enough space for addrlen */ 139 /* not enough space for addrlen */
140 GNUNET_break_op (0); 140 GNUNET_break_op (0);
141 return 0; 141 return 0;
142 } 142 }
143 memcpy (&alen, pos, sizeof (uint32_t)); 143 memcpy (&alen, pos, sizeof (uint16_t));
144 alen = ntohl (alen); 144 alen = ntohs (alen);
145 *ralen = alen; 145 *ralen = alen;
146 slen += alen + sizeof (uint32_t) + sizeof (struct GNUNET_TIME_AbsoluteNBO); 146 slen += alen + sizeof (uint16_t) + sizeof (struct GNUNET_TIME_AbsoluteNBO);
147 if (max < slen) 147 if (max < slen)
148 { 148 {
149 /* not enough space for addr */ 149 /* not enough space for addr */
@@ -215,7 +215,7 @@ GNUNET_HELLO_iterate_addresses (const struct GNUNET_HELLO_Message *msg,
215 size_t esize; 215 size_t esize;
216 size_t wpos; 216 size_t wpos;
217 char *woff; 217 char *woff;
218 uint32_t alen; 218 uint16_t alen;
219 struct GNUNET_TIME_AbsoluteNBO expire; 219 struct GNUNET_TIME_AbsoluteNBO expire;
220 int iret; 220 int iret;
221 221
@@ -275,7 +275,7 @@ struct ExpireContext
275{ 275{
276 const void *addr; 276 const void *addr;
277 const char *tname; 277 const char *tname;
278 size_t addrlen; 278 uint16_t addrlen;
279 int found; 279 int found;
280 struct GNUNET_TIME_Absolute expiration; 280 struct GNUNET_TIME_Absolute expiration;
281}; 281};
@@ -285,7 +285,7 @@ static int
285get_match_exp (void *cls, 285get_match_exp (void *cls,
286 const char *tname, 286 const char *tname,
287 struct GNUNET_TIME_Absolute expiration, 287 struct GNUNET_TIME_Absolute expiration,
288 const void *addr, size_t addrlen) 288 const void *addr, uint16_t addrlen)
289{ 289{
290 struct ExpireContext *ec = cls; 290 struct ExpireContext *ec = cls;
291 291
@@ -318,7 +318,7 @@ static int
318copy_latest (void *cls, 318copy_latest (void *cls,
319 const char *tname, 319 const char *tname,
320 struct GNUNET_TIME_Absolute expiration, 320 struct GNUNET_TIME_Absolute expiration,
321 const void *addr, size_t addrlen) 321 const void *addr, uint16_t addrlen)
322{ 322{
323 struct MergeContext *mc = cls; 323 struct MergeContext *mc = cls;
324 struct ExpireContext ec; 324 struct ExpireContext ec;
@@ -400,7 +400,7 @@ static int
400delta_match (void *cls, 400delta_match (void *cls,
401 const char *tname, 401 const char *tname,
402 struct GNUNET_TIME_Absolute expiration, 402 struct GNUNET_TIME_Absolute expiration,
403 const void *addr, size_t addrlen) 403 const void *addr, uint16_t addrlen)
404{ 404{
405 struct DeltaContext *dc = cls; 405 struct DeltaContext *dc = cls;
406 int ret; 406 int ret;
@@ -545,9 +545,10 @@ struct EqualsContext
545 545
546 struct GNUNET_TIME_Absolute expiration; 546 struct GNUNET_TIME_Absolute expiration;
547 547
548 size_t addrlen;
549
550 int found; 548 int found;
549
550 uint16_t addrlen;
551
551}; 552};
552 553
553 554
@@ -555,7 +556,7 @@ static int
555find_other_matching (void *cls, 556find_other_matching (void *cls,
556 const char *tname, 557 const char *tname,
557 struct GNUNET_TIME_Absolute expiration, 558 struct GNUNET_TIME_Absolute expiration,
558 const void *addr, size_t addrlen) 559 const void *addr, uint16_t addrlen)
559{ 560{
560 struct EqualsContext *ec = cls; 561 struct EqualsContext *ec = cls;
561 562
@@ -584,7 +585,7 @@ static int
584find_matching (void *cls, 585find_matching (void *cls,
585 const char *tname, 586 const char *tname,
586 struct GNUNET_TIME_Absolute expiration, 587 struct GNUNET_TIME_Absolute expiration,
587 const void *addr, size_t addrlen) 588 const void *addr, uint16_t addrlen)
588{ 589{
589 struct EqualsContext *ec = cls; 590 struct EqualsContext *ec = cls;
590 591