summaryrefslogtreecommitdiff
path: root/server/client.cpp
diff options
context:
space:
mode:
authorUnknown <azeem@live.ru>2018-11-26 21:49:09 +0000
committerUnknown <azeem@live.ru>2018-11-26 21:49:09 +0000
commitf0424e31f233776a93d13caa98a4422385aedcd0 (patch)
tree45a06a71c40ea8c5ec1b38076729c8d81ebbbd06 /server/client.cpp
parent1bb1688f58bee00f37f28c2c747dac2bdca7264e (diff)
fuck niggas
Diffstat (limited to 'server/client.cpp')
-rw-r--r--server/client.cpp49
1 files changed, 40 insertions, 9 deletions
diff --git a/server/client.cpp b/server/client.cpp
index 37f20a2..8039e65 100644
--- a/server/client.cpp
+++ b/server/client.cpp
@@ -2,7 +2,7 @@
std::vector< byte > server::c_client::receive_message( ) {
std::vector< uint8_t > ret;
- char buffer[ BUFFER_SIZE ];
+ char buffer[ BUFFER_SIZE ]{ };
int received = 0;
while( true ) {
@@ -27,28 +27,59 @@ std::vector< byte > server::c_client::receive_message( ) {
}
bool server::c_client::send_message( byte* 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;
}
- int result = send( m_socket, ( char* )new_buffer, length + 1, 0 );
+ int result = send( m_socket, ( char* )buffer.get( ), length + 1, 0 );
if( result == -1 ) {
+#if WIN32
printf( "error sending message to %s: %d\n",
get_ip( ), WSAGetLastError( ) );
+#else
+ printf( "error sending message to %s\n",
+ get_ip( ) );
+#endif
+ return false;
+ }
+
+ return true;
+}
+
+bool server::c_client::send_message( 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 result = send( m_socket, ( char* )buffer.get( ), length + 1, 0 );
+ if ( result == -1 ) {
+#if WIN32
+ printf( "error sending message to %s: %d\n",
+ get_ip( ), WSAGetLastError( ) );
+#else
+ printf( "error sending message to %s\n",
+ get_ip( ) );
+#endif
return false;
}
- free( new_buffer );
return true;
}