diff options
Diffstat (limited to 'src/hello/hello.c')
-rw-r--r-- | src/hello/hello.c | 45 |
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 | |||
78 | GNUNET_HELLO_add_address (const char *tname, | 78 | GNUNET_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 | */ |
112 | static size_t | 112 | static size_t |
113 | get_hello_address_size (const char *buf, size_t max, uint32_t * ralen) | 113 | get_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 | |||
285 | get_match_exp (void *cls, | 285 | get_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 | |||
318 | copy_latest (void *cls, | 318 | copy_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 | |||
400 | delta_match (void *cls, | 400 | delta_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 | |||
555 | find_other_matching (void *cls, | 556 | find_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 | |||
584 | find_matching (void *cls, | 585 | find_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 | ||