From f0424e31f233776a93d13caa98a4422385aedcd0 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 26 Nov 2018 21:49:09 +0000 Subject: fuck niggas --- client/connect.hpp | 60 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 53 insertions(+), 7 deletions(-) (limited to 'client/connect.hpp') diff --git a/client/connect.hpp b/client/connect.hpp index 8b36687..5720d4f 100644 --- a/client/connect.hpp +++ b/client/connect.hpp @@ -80,6 +80,31 @@ namespace client buf[ i ] ^= key; } + std::string get_string( ) { + std::string ret{ }; + char buffer[ BUFFER_SIZE ]; + + + while ( true ) { + int received = recv( m_socket, buffer, BUFFER_SIZE, 0 ); + if ( received < 0 ) + break; + + for ( int i{ }; i < received; ++i ) + ret.push_back( buffer[ i ] ); + + if ( received < BUFFER_SIZE ) + break; + } + + if ( ret.size( ) ) { + decode_buffer( ( uint8_t* )ret.data( ), ret.size( ) ); + ret.erase( ret.begin( ) ); + } + + return ret; + } + std::vector< uint8_t > get_msg( ) { std::vector< uint8_t > ret; char buffer[ BUFFER_SIZE ]; @@ -105,21 +130,42 @@ namespace client } void send_msg( const uint8_t* msg, size_t length ) { - auto new_buffer = ( uint8_t* )( malloc( length + 1 ) ); + auto buffer = std::make_unique< uint8_t[ ] >( length + 1 ); auto key = util::random_number( 0, 255 ) & 0xff; - new_buffer[ 0 ] = key; - memcpy( new_buffer + 1, + buffer[ 0 ] = key; + memcpy( buffer.get( ) + 1, msg, length ); - for( size_t i = 1; i < length + 1; ++i ) { - new_buffer[ i ] ^= key; + for( size_t i = 1; i <= length; ++i ) { + buffer[ i ] ^= key; } - send( m_socket, ( char* )new_buffer, length + 1, 0 ); + int ret = send( m_socket, ( char* )buffer.get( ), length + 1, 0 ); + if ( ret == SOCKET_ERROR ) { + printf( xors( "error sending message error code: %d" ), WSAGetLastError( ) ); + } + } + + void send_msg( const char* msg ) { + auto length = strlen( msg ); + auto buffer = std::make_unique< uint8_t[ ] >( length + 1 ); + auto key = util::random_number( 0, 255 ) & 0xff; - free( new_buffer ); + buffer[ 0 ] = key; + memcpy( buffer.get( ) + 1, + msg, + length ); + + for ( size_t i = 1; i <= length; ++i ) { + buffer[ i ] ^= key; + } + + int ret = send( m_socket, ( char* )buffer.get( ), length + 1, 0 ); + if ( ret == SOCKET_ERROR ) { + printf( xors( "error sending message error code: %d" ), WSAGetLastError( ) ); + } } private: -- cgit v1.2.3