diff options
Diffstat (limited to 'src/namestore/namestore_api.c')
-rw-r--r-- | src/namestore/namestore_api.c | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/src/namestore/namestore_api.c b/src/namestore/namestore_api.c index e020b9e42..df6ba1f33 100644 --- a/src/namestore/namestore_api.c +++ b/src/namestore/namestore_api.c | |||
@@ -29,9 +29,7 @@ | |||
29 | #include "platform.h" | 29 | #include "platform.h" |
30 | #include "gnunet_error_codes.h" | 30 | #include "gnunet_error_codes.h" |
31 | #include "gnunet_util_lib.h" | 31 | #include "gnunet_util_lib.h" |
32 | #include "gnunet_crypto_lib.h" | ||
33 | #include "gnunet_constants.h" | 32 | #include "gnunet_constants.h" |
34 | #include "gnunet_dnsparser_lib.h" | ||
35 | #include "gnunet_arm_service.h" | 33 | #include "gnunet_arm_service.h" |
36 | #include "gnunet_signatures.h" | 34 | #include "gnunet_signatures.h" |
37 | #include "gnunet_gns_service.h" | 35 | #include "gnunet_gns_service.h" |
@@ -407,8 +405,13 @@ check_lookup_result (void *cls, const struct LabelLookupResponseMessage *msg) | |||
407 | rd_len = ntohs (msg->rd_len); | 405 | rd_len = ntohs (msg->rd_len); |
408 | msg_len = ntohs (msg->gns_header.header.size); | 406 | msg_len = ntohs (msg->gns_header.header.size); |
409 | name_len = ntohs (msg->name_len); | 407 | name_len = ntohs (msg->name_len); |
410 | key_len = ntohl (msg->key_len); | 408 | key_len = ntohs (msg->key_len); |
411 | exp_msg_len = sizeof(*msg) + name_len + rd_len + key_len; | 409 | exp_msg_len = sizeof(*msg) + name_len + rd_len + key_len; |
410 | if (0 != ntohs (msg->reserved)) | ||
411 | { | ||
412 | GNUNET_break (0); | ||
413 | return GNUNET_SYSERR; | ||
414 | } | ||
412 | if (msg_len != exp_msg_len) | 415 | if (msg_len != exp_msg_len) |
413 | { | 416 | { |
414 | GNUNET_break (0); | 417 | GNUNET_break (0); |
@@ -463,7 +466,7 @@ handle_lookup_result (void *cls, const struct LabelLookupResponseMessage *msg) | |||
463 | rd_len = ntohs (msg->rd_len); | 466 | rd_len = ntohs (msg->rd_len); |
464 | rd_count = ntohs (msg->rd_count); | 467 | rd_count = ntohs (msg->rd_count); |
465 | name_len = ntohs (msg->name_len); | 468 | name_len = ntohs (msg->name_len); |
466 | key_len = ntohl (msg->key_len); | 469 | key_len = ntohs (msg->key_len); |
467 | GNUNET_assert (GNUNET_SYSERR != | 470 | GNUNET_assert (GNUNET_SYSERR != |
468 | GNUNET_IDENTITY_read_private_key_from_buffer (&msg[1], | 471 | GNUNET_IDENTITY_read_private_key_from_buffer (&msg[1], |
469 | key_len, | 472 | key_len, |
@@ -527,13 +530,8 @@ check_record_result (void *cls, const struct RecordResultMessage *msg) | |||
527 | (void) cls; | 530 | (void) cls; |
528 | rd_len = ntohs (msg->rd_len); | 531 | rd_len = ntohs (msg->rd_len); |
529 | msg_len = ntohs (msg->gns_header.header.size); | 532 | msg_len = ntohs (msg->gns_header.header.size); |
530 | key_len = ntohl (msg->key_len); | 533 | key_len = ntohs (msg->key_len); |
531 | name_len = ntohs (msg->name_len); | 534 | name_len = ntohs (msg->name_len); |
532 | if (0 != ntohs (msg->reserved)) | ||
533 | { | ||
534 | GNUNET_break (0); | ||
535 | return GNUNET_SYSERR; | ||
536 | } | ||
537 | if (msg_len != sizeof(struct RecordResultMessage) + key_len + name_len | 535 | if (msg_len != sizeof(struct RecordResultMessage) + key_len + name_len |
538 | + rd_len) | 536 | + rd_len) |
539 | { | 537 | { |
@@ -581,7 +579,7 @@ handle_record_result (void *cls, const struct RecordResultMessage *msg) | |||
581 | rd_len = ntohs (msg->rd_len); | 579 | rd_len = ntohs (msg->rd_len); |
582 | rd_count = ntohs (msg->rd_count); | 580 | rd_count = ntohs (msg->rd_count); |
583 | name_len = ntohs (msg->name_len); | 581 | name_len = ntohs (msg->name_len); |
584 | key_len = ntohl (msg->key_len); | 582 | key_len = ntohs (msg->key_len); |
585 | ze = find_zi (h, ntohl (msg->gns_header.r_id)); | 583 | ze = find_zi (h, ntohl (msg->gns_header.r_id)); |
586 | qe = find_qe (h, ntohl (msg->gns_header.r_id)); | 584 | qe = find_qe (h, ntohl (msg->gns_header.r_id)); |
587 | if ((NULL == ze) && (NULL == qe)) | 585 | if ((NULL == ze) && (NULL == qe)) |
@@ -710,7 +708,7 @@ check_zone_to_name_response (void *cls, | |||
710 | (void) cls; | 708 | (void) cls; |
711 | if (GNUNET_EC_NONE != ntohl (msg->ec)) | 709 | if (GNUNET_EC_NONE != ntohl (msg->ec)) |
712 | return GNUNET_OK; | 710 | return GNUNET_OK; |
713 | key_len = ntohl (msg->key_len); | 711 | key_len = ntohs (msg->key_len); |
714 | name_len = ntohs (msg->name_len); | 712 | name_len = ntohs (msg->name_len); |
715 | rd_ser_len = ntohs (msg->rd_len); | 713 | rd_ser_len = ntohs (msg->rd_len); |
716 | if (ntohs (msg->gns_header.header.size) != | 714 | if (ntohs (msg->gns_header.header.size) != |
@@ -762,7 +760,7 @@ handle_zone_to_name_response (void *cls, | |||
762 | return; | 760 | return; |
763 | } | 761 | } |
764 | res = ntohl (msg->ec); | 762 | res = ntohl (msg->ec); |
765 | key_len = ntohl (msg->key_len); | 763 | key_len = ntohs (msg->key_len); |
766 | GNUNET_assert (GNUNET_SYSERR != | 764 | GNUNET_assert (GNUNET_SYSERR != |
767 | GNUNET_IDENTITY_read_private_key_from_buffer (&msg[1], | 765 | GNUNET_IDENTITY_read_private_key_from_buffer (&msg[1], |
768 | key_len, | 766 | key_len, |
@@ -1140,7 +1138,7 @@ GNUNET_NAMESTORE_records_store2 ( | |||
1140 | GNUNET_assert (NULL != msg); | 1138 | GNUNET_assert (NULL != msg); |
1141 | GNUNET_assert (NULL != env); | 1139 | GNUNET_assert (NULL != env); |
1142 | msg->gns_header.r_id = htonl (rid); | 1140 | msg->gns_header.r_id = htonl (rid); |
1143 | msg->key_len = htonl (key_len); | 1141 | msg->key_len = htons (key_len); |
1144 | msg->rd_set_count = htons ((uint16_t) (*rds_sent)); | 1142 | msg->rd_set_count = htons ((uint16_t) (*rds_sent)); |
1145 | GNUNET_IDENTITY_write_private_key_to_buffer (pkey, | 1143 | GNUNET_IDENTITY_write_private_key_to_buffer (pkey, |
1146 | &msg[1], | 1144 | &msg[1], |
@@ -1230,9 +1228,9 @@ records_lookup ( | |||
1230 | &msg[1], | 1228 | &msg[1], |
1231 | key_len); | 1229 | key_len); |
1232 | 1230 | ||
1233 | msg->key_len = htonl (key_len); | 1231 | msg->key_len = htons (key_len); |
1234 | msg->is_edit_request = htonl (is_edit_request); | 1232 | msg->is_edit_request = htons (is_edit_request); |
1235 | msg->label_len = htonl (label_len); | 1233 | msg->label_len = htons (label_len); |
1236 | msg->filter = htons (filter); | 1234 | msg->filter = htons (filter); |
1237 | GNUNET_memcpy (((char*) &msg[1]) + key_len, label, label_len); | 1235 | GNUNET_memcpy (((char*) &msg[1]) + key_len, label, label_len); |
1238 | if (NULL == h->mq) | 1236 | if (NULL == h->mq) |
@@ -1323,8 +1321,8 @@ GNUNET_NAMESTORE_zone_to_name ( | |||
1323 | env = GNUNET_MQ_msg_extra (msg, key_len + pkey_len, | 1321 | env = GNUNET_MQ_msg_extra (msg, key_len + pkey_len, |
1324 | GNUNET_MESSAGE_TYPE_NAMESTORE_ZONE_TO_NAME); | 1322 | GNUNET_MESSAGE_TYPE_NAMESTORE_ZONE_TO_NAME); |
1325 | msg->gns_header.r_id = htonl (rid); | 1323 | msg->gns_header.r_id = htonl (rid); |
1326 | msg->key_len = htonl (key_len); | 1324 | msg->key_len = htons (key_len); |
1327 | msg->pkey_len = htonl (pkey_len); | 1325 | msg->pkey_len = htons (pkey_len); |
1328 | GNUNET_IDENTITY_write_private_key_to_buffer (zone, &msg[1], key_len); | 1326 | GNUNET_IDENTITY_write_private_key_to_buffer (zone, &msg[1], key_len); |
1329 | GNUNET_IDENTITY_write_public_key_to_buffer (value_zone, | 1327 | GNUNET_IDENTITY_write_public_key_to_buffer (value_zone, |
1330 | (char*) &msg[1] + key_len, | 1328 | (char*) &msg[1] + key_len, |
@@ -1375,7 +1373,7 @@ GNUNET_NAMESTORE_zone_iteration_start ( | |||
1375 | key_len, | 1373 | key_len, |
1376 | GNUNET_MESSAGE_TYPE_NAMESTORE_ZONE_ITERATION_START); | 1374 | GNUNET_MESSAGE_TYPE_NAMESTORE_ZONE_ITERATION_START); |
1377 | msg->gns_header.r_id = htonl (rid); | 1375 | msg->gns_header.r_id = htonl (rid); |
1378 | msg->key_len = htonl (key_len); | 1376 | msg->key_len = htons (key_len); |
1379 | if (NULL != zone) | 1377 | if (NULL != zone) |
1380 | GNUNET_IDENTITY_write_private_key_to_buffer (zone, &msg[1], key_len); | 1378 | GNUNET_IDENTITY_write_private_key_to_buffer (zone, &msg[1], key_len); |
1381 | if (NULL == h->mq) | 1379 | if (NULL == h->mq) |
@@ -1424,7 +1422,7 @@ GNUNET_NAMESTORE_zone_iteration_start2 ( | |||
1424 | key_len, | 1422 | key_len, |
1425 | GNUNET_MESSAGE_TYPE_NAMESTORE_ZONE_ITERATION_START); | 1423 | GNUNET_MESSAGE_TYPE_NAMESTORE_ZONE_ITERATION_START); |
1426 | msg->gns_header.r_id = htonl (rid); | 1424 | msg->gns_header.r_id = htonl (rid); |
1427 | msg->key_len = htonl (key_len); | 1425 | msg->key_len = htons (key_len); |
1428 | msg->filter = htons ((uint16_t) filter); | 1426 | msg->filter = htons ((uint16_t) filter); |
1429 | if (NULL != zone) | 1427 | if (NULL != zone) |
1430 | GNUNET_IDENTITY_write_private_key_to_buffer (zone, &msg[1], key_len); | 1428 | GNUNET_IDENTITY_write_private_key_to_buffer (zone, &msg[1], key_len); |