Fixes for 32-bit machines per Stefie Tellex
This commit is contained in:
+1
-1
@@ -49,7 +49,7 @@ int main( int argc, char *argv[] )
|
|||||||
Message message = session.decrypt( ciphertext );
|
Message message = session.decrypt( ciphertext );
|
||||||
|
|
||||||
fprintf( stderr, "Nonce = %ld\n",
|
fprintf( stderr, "Nonce = %ld\n",
|
||||||
message.nonce.val() );
|
(long)message.nonce.val() );
|
||||||
cout << message.text;
|
cout << message.text;
|
||||||
} catch ( CryptoException e ) {
|
} catch ( CryptoException e ) {
|
||||||
cerr << e.text << endl;
|
cerr << e.text << endl;
|
||||||
|
|||||||
+6
-3
@@ -13,6 +13,9 @@ using namespace std;
|
|||||||
using namespace Network;
|
using namespace Network;
|
||||||
using namespace Crypto;
|
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 */
|
/* Read in packet from coded string */
|
||||||
Packet::Packet( string coded_packet, Session *session )
|
Packet::Packet( string coded_packet, Session *session )
|
||||||
: seq( -1 ),
|
: seq( -1 ),
|
||||||
@@ -23,8 +26,8 @@ Packet::Packet( string coded_packet, Session *session )
|
|||||||
{
|
{
|
||||||
Message message = session->decrypt( coded_packet );
|
Message message = session->decrypt( coded_packet );
|
||||||
|
|
||||||
direction = (message.nonce.val() & 0x8000000000000000) ? TO_CLIENT : TO_SERVER;
|
direction = (message.nonce.val() & DIRECTION_MASK) ? TO_CLIENT : TO_SERVER;
|
||||||
seq = message.nonce.val() & 0x7FFFFFFFFFFFFFFF;
|
seq = message.nonce.val() & SEQUENCE_MASK;
|
||||||
|
|
||||||
assert( message.text.size() >= 2 * sizeof( uint16_t ) );
|
assert( message.text.size() >= 2 * sizeof( uint16_t ) );
|
||||||
|
|
||||||
@@ -38,7 +41,7 @@ Packet::Packet( string coded_packet, Session *session )
|
|||||||
/* Output coded string from packet */
|
/* Output coded string from packet */
|
||||||
string Packet::tostring( Session *session )
|
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 ) };
|
uint16_t ts_net[ 2 ] = { htobe16( timestamp ), htobe16( timestamp_reply ) };
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -191,7 +191,7 @@ void TransportSender<MyState>::update_assumed_receiver_state( void )
|
|||||||
while ( i != sent_states.end() ) {
|
while ( i != sent_states.end() ) {
|
||||||
assert( now >= i->timestamp );
|
assert( now >= i->timestamp );
|
||||||
|
|
||||||
if ( int(now - i->timestamp) < connection->timeout() + ACK_DELAY ) {
|
if ( uint64_t(now - i->timestamp) < connection->timeout() + ACK_DELAY ) {
|
||||||
assumed_receiver_state = i;
|
assumed_receiver_state = i;
|
||||||
} else {
|
} else {
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user