diff options
author | Sree Harsha Totakura <totakura@in.tum.de> | 2012-03-09 12:53:56 +0000 |
---|---|---|
committer | Sree Harsha Totakura <totakura@in.tum.de> | 2012-03-09 12:53:56 +0000 |
commit | 55609d4b00b22c1fc3815f3df8fbdb66291bf5c8 (patch) | |
tree | 051fb52ba4f09694a12e1ad374cf198ed564a459 /src/stream/stream_api.c | |
parent | c26f7306f9ec16a25de4b653d3c5ef064f7c3728 (diff) | |
download | gnunet-55609d4b00b22c1fc3815f3df8fbdb66291bf5c8.tar.gz gnunet-55609d4b00b22c1fc3815f3df8fbdb66291bf5c8.zip |
fixed byte conversion bugs
Diffstat (limited to 'src/stream/stream_api.c')
-rw-r--r-- | src/stream/stream_api.c | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/src/stream/stream_api.c b/src/stream/stream_api.c index 8d09474c4..bb50f69bc 100644 --- a/src/stream/stream_api.c +++ b/src/stream/stream_api.c | |||
@@ -315,7 +315,7 @@ struct GNUNET_STREAM_Socket | |||
315 | /** | 315 | /** |
316 | * receiver's available buffer after the last acknowledged packet | 316 | * receiver's available buffer after the last acknowledged packet |
317 | */ | 317 | */ |
318 | uint32_t receive_window_available; | 318 | uint32_t receiver_window_available; |
319 | 319 | ||
320 | /** | 320 | /** |
321 | * The offset pointer used during write operation | 321 | * The offset pointer used during write operation |
@@ -595,16 +595,16 @@ send_ack_notify (void *cls, size_t size, void *buf) | |||
595 | "%s called with size 0\n", __func__); | 595 | "%s called with size 0\n", __func__); |
596 | return 0; | 596 | return 0; |
597 | } | 597 | } |
598 | GNUNET_assert (ack_msg->header.header.size <= size); | 598 | GNUNET_assert (ntohs (ack_msg->header.header.size) <= size); |
599 | 599 | ||
600 | size = ack_msg->header.header.size; | 600 | size = ntohs (ack_msg->header.header.size); |
601 | memcpy (buf, ack_msg, size); | 601 | memcpy (buf, ack_msg, size); |
602 | return size; | 602 | return size; |
603 | } | 603 | } |
604 | 604 | ||
605 | /** | 605 | /** |
606 | * Writes data using the given socket. The amount of data written is limited by | 606 | * Writes data using the given socket. The amount of data written is limited by |
607 | * the receive_window_size | 607 | * the receiver_window_size |
608 | * | 608 | * |
609 | * @param socket the socket to use | 609 | * @param socket the socket to use |
610 | */ | 610 | */ |
@@ -735,7 +735,7 @@ write_data_finish_cb (void *cls, | |||
735 | 735 | ||
736 | /** | 736 | /** |
737 | * Writes data using the given socket. The amount of data written is limited by | 737 | * Writes data using the given socket. The amount of data written is limited by |
738 | * the receive_window_size | 738 | * the receiver_window_size |
739 | * | 739 | * |
740 | * @param socket the socket to use | 740 | * @param socket the socket to use |
741 | */ | 741 | */ |
@@ -765,8 +765,7 @@ write_data (struct GNUNET_STREAM_Socket *socket) | |||
765 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 765 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
766 | "%x: Placing DATA message with sequence %u in send queue\n", | 766 | "%x: Placing DATA message with sequence %u in send queue\n", |
767 | socket->our_id, | 767 | socket->our_id, |
768 | (unsigned int) | 768 | ntohl (io_handle->messages[packet]->sequence_number)); |
769 | io_handle->messages[packet]->sequence_number); | ||
770 | 769 | ||
771 | copy_and_queue_message (socket, | 770 | copy_and_queue_message (socket, |
772 | &io_handle->messages[packet]->header, | 771 | &io_handle->messages[packet]->header, |
@@ -777,15 +776,14 @@ write_data (struct GNUNET_STREAM_Socket *socket) | |||
777 | packet = ack_packet + 1; | 776 | packet = ack_packet + 1; |
778 | /* Now send new packets if there is enough buffer space */ | 777 | /* Now send new packets if there is enough buffer space */ |
779 | while ( (NULL != io_handle->messages[packet]) && | 778 | while ( (NULL != io_handle->messages[packet]) && |
780 | (socket->receive_window_available >= ntohs (io_handle->messages[packet]->header.header.size)) ) | 779 | (socket->receiver_window_available >= ntohs (io_handle->messages[packet]->header.header.size)) ) |
781 | { | 780 | { |
782 | socket->receive_window_available -= | 781 | socket->receiver_window_available -= |
783 | ntohs (io_handle->messages[packet]->header.header.size); | 782 | ntohs (io_handle->messages[packet]->header.header.size); |
784 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 783 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
785 | "%x: Placing DATA message with sequence %u in send queue\n", | 784 | "%x: Placing DATA message with sequence %u in send queue\n", |
786 | socket->our_id, | 785 | socket->our_id, |
787 | (unsigned int) | 786 | ntohl (io_handle->messages[packet]->sequence_number)); |
788 | io_handle->messages[packet]->sequence_number); | ||
789 | copy_and_queue_message (socket, | 787 | copy_and_queue_message (socket, |
790 | &io_handle->messages[packet]->header, | 788 | &io_handle->messages[packet]->header, |
791 | &write_data_finish_cb, | 789 | &write_data_finish_cb, |
@@ -985,8 +983,7 @@ handle_data (struct GNUNET_STREAM_Socket *socket, | |||
985 | } | 983 | } |
986 | 984 | ||
987 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 985 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
988 | "%x: Receiving DATA with sequence number: %u and size: %d " | 986 | "%x: Receiving DATA with sequence number: %u and size: %d from %x\n", |
989 | "from %x\n", | ||
990 | socket->our_id, | 987 | socket->our_id, |
991 | ntohl (msg->sequence_number), | 988 | ntohl (msg->sequence_number), |
992 | ntohs (msg->header.header.size), | 989 | ntohs (msg->header.header.size), |
@@ -1178,7 +1175,7 @@ client_handle_hello_ack (void *cls, | |||
1178 | "%x: Read sequence number %u\n", | 1175 | "%x: Read sequence number %u\n", |
1179 | socket->our_id, | 1176 | socket->our_id, |
1180 | (unsigned int) socket->read_sequence_number); | 1177 | (unsigned int) socket->read_sequence_number); |
1181 | socket->receive_window_available = ntohl (ack_msg->receive_window_size); | 1178 | socket->receiver_window_available = ntohl (ack_msg->receiver_window_size); |
1182 | /* Get the random sequence number */ | 1179 | /* Get the random sequence number */ |
1183 | socket->write_sequence_number = | 1180 | socket->write_sequence_number = |
1184 | GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_NONCE, UINT32_MAX); | 1181 | GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_NONCE, UINT32_MAX); |
@@ -1193,7 +1190,7 @@ client_handle_hello_ack (void *cls, | |||
1193 | reply->header.header.type = | 1190 | reply->header.header.type = |
1194 | htons (GNUNET_MESSAGE_TYPE_STREAM_HELLO_ACK); | 1191 | htons (GNUNET_MESSAGE_TYPE_STREAM_HELLO_ACK); |
1195 | reply->sequence_number = htonl (socket->write_sequence_number); | 1192 | reply->sequence_number = htonl (socket->write_sequence_number); |
1196 | reply->receive_window_size = htonl (RECEIVE_BUFFER_SIZE); | 1193 | reply->receiver_window_size = htonl (RECEIVE_BUFFER_SIZE); |
1197 | queue_message (socket, | 1194 | queue_message (socket, |
1198 | &reply->header, | 1195 | &reply->header, |
1199 | &set_state_established, | 1196 | &set_state_established, |
@@ -1532,6 +1529,7 @@ server_handle_hello (void *cls, | |||
1532 | reply->header.header.type = | 1529 | reply->header.header.type = |
1533 | htons (GNUNET_MESSAGE_TYPE_STREAM_HELLO_ACK); | 1530 | htons (GNUNET_MESSAGE_TYPE_STREAM_HELLO_ACK); |
1534 | reply->sequence_number = htonl (socket->write_sequence_number); | 1531 | reply->sequence_number = htonl (socket->write_sequence_number); |
1532 | reply->receiver_window_size = htonl (RECEIVE_BUFFER_SIZE); | ||
1535 | queue_message (socket, | 1533 | queue_message (socket, |
1536 | &reply->header, | 1534 | &reply->header, |
1537 | &set_state_hello_wait, | 1535 | &set_state_hello_wait, |
@@ -1586,8 +1584,8 @@ server_handle_hello_ack (void *cls, | |||
1586 | "%x: Read sequence number %u\n", | 1584 | "%x: Read sequence number %u\n", |
1587 | socket->our_id, | 1585 | socket->our_id, |
1588 | (unsigned int) socket->read_sequence_number); | 1586 | (unsigned int) socket->read_sequence_number); |
1589 | socket->receive_window_available = | 1587 | socket->receiver_window_available = |
1590 | ntohl (ack_message->receive_window_size); | 1588 | ntohl (ack_message->receiver_window_size); |
1591 | /* Attain ESTABLISHED state */ | 1589 | /* Attain ESTABLISHED state */ |
1592 | set_state_established (NULL, socket); | 1590 | set_state_established (NULL, socket); |
1593 | } | 1591 | } |
@@ -1849,7 +1847,7 @@ handle_ack (struct GNUNET_STREAM_Socket *socket, | |||
1849 | } | 1847 | } |
1850 | 1848 | ||
1851 | socket->write_handle->ack_bitmap = GNUNET_ntohll (ack->bitmap); | 1849 | socket->write_handle->ack_bitmap = GNUNET_ntohll (ack->bitmap); |
1852 | socket->receive_window_available = | 1850 | socket->receiver_window_available = |
1853 | ntohl (ack->receive_window_remaining); | 1851 | ntohl (ack->receive_window_remaining); |
1854 | 1852 | ||
1855 | /* Check if we have received all acknowledgements */ | 1853 | /* Check if we have received all acknowledgements */ |
@@ -2452,8 +2450,8 @@ GNUNET_STREAM_write (struct GNUNET_STREAM_Socket *socket, | |||
2452 | io_handle->messages[packet]->header.header.type = | 2450 | io_handle->messages[packet]->header.header.type = |
2453 | htons (GNUNET_MESSAGE_TYPE_STREAM_DATA); | 2451 | htons (GNUNET_MESSAGE_TYPE_STREAM_DATA); |
2454 | io_handle->messages[packet]->sequence_number = | 2452 | io_handle->messages[packet]->sequence_number = |
2455 | htons (socket->write_sequence_number++); | 2453 | htonl (socket->write_sequence_number++); |
2456 | io_handle->messages[packet]->offset = htons (socket->write_offset); | 2454 | io_handle->messages[packet]->offset = htonl (socket->write_offset); |
2457 | 2455 | ||
2458 | /* FIXME: Remove the fixed delay for ack deadline; Set it to the value | 2456 | /* FIXME: Remove the fixed delay for ack deadline; Set it to the value |
2459 | determined from RTT */ | 2457 | determined from RTT */ |