Fixes for 32-bit machines per Stefie Tellex

This commit is contained in:
Keith Winstein
2011-09-14 14:39:11 -04:00
parent f3b9c60196
commit be6467c335
3 changed files with 8 additions and 5 deletions
+6 -3
View File
@@ -13,6 +13,9 @@ using namespace std;
using namespace Network;
using namespace Crypto;
const uint64_t DIRECTION_MASK = uint64_t(1) << 63;
const uint64_t SEQUENCE_MASK = uint64_t(-1) ^ DIRECTION_MASK;
/* Read in packet from coded string */
Packet::Packet( string coded_packet, Session *session )
: seq( -1 ),
@@ -23,8 +26,8 @@ Packet::Packet( string coded_packet, Session *session )
{
Message message = session->decrypt( coded_packet );
direction = (message.nonce.val() & 0x8000000000000000) ? TO_CLIENT : TO_SERVER;
seq = message.nonce.val() & 0x7FFFFFFFFFFFFFFF;
direction = (message.nonce.val() & DIRECTION_MASK) ? TO_CLIENT : TO_SERVER;
seq = message.nonce.val() & SEQUENCE_MASK;
assert( message.text.size() >= 2 * sizeof( uint16_t ) );
@@ -38,7 +41,7 @@ Packet::Packet( string coded_packet, Session *session )
/* Output coded string from packet */
string Packet::tostring( Session *session )
{
uint64_t direction_seq = (uint64_t( direction == TO_CLIENT ) << 63) | (seq & 0x7FFFFFFFFFFFFFFF);
uint64_t direction_seq = (uint64_t( direction == TO_CLIENT ) << 63) | (seq & SEQUENCE_MASK);
uint16_t ts_net[ 2 ] = { htobe16( timestamp ), htobe16( timestamp_reply ) };