diff options
| author | Unknown <azeem@live.ru> | 2018-11-27 22:58:18 +0000 |
|---|---|---|
| committer | Unknown <azeem@live.ru> | 2018-11-27 22:58:18 +0000 |
| commit | d12a1be5af24c6721496dbd5645f361bdb080074 (patch) | |
| tree | 032e3709871eec16a66e3528a303bf0cc9eb26ce /server | |
| parent | 0713c4ebe1e29d1076adb22ba5d8d5e562cecafc (diff) | |
gay test loader stuff
mhmm!~ thats a good girl!~ :3
Diffstat (limited to 'server')
| -rw-r--r-- | server/client.cpp | 62 | ||||
| -rw-r--r-- | server/client.hpp | 2 | ||||
| -rw-r--r-- | server/server.cpp | 15 |
3 files changed, 52 insertions, 27 deletions
diff --git a/server/client.cpp b/server/client.cpp index 2a0bfb7..22aa053 100644 --- a/server/client.cpp +++ b/server/client.cpp @@ -90,7 +90,6 @@ bool server::c_client::send_msg( byte* msg, size_t length ) { bool server::c_client::send_msg( const char* msg ) { auto length = strlen( msg ); - printf( "%d\n", length ); auto buffer = std::make_unique< uint8_t[ ] >( length + 1 ); auto key = util::random_number( 0, 255 ) & 0xff; @@ -127,27 +126,21 @@ bool server::c_client::handle( ) { auto hello_msg = get_msg( ); printf( "%s\n", hello_msg.c_str( ) ); - if ( hello_msg != "hello" ) { - kill( ); + if ( hello_msg != "hello" ) return false; - } auto username = get_msg( ); - if ( username != "friendly" ) { - kill( ); + if ( username != "friendly" ) return false; - } - printf( "correct username" ); + printf( "correct username\n" ); send_msg( "correct username" ); auto password = get_msg( ); - if ( password != "nigger" ) { - kill( ); + if ( password != "nigger" ) return false; - } - printf( "correct password" ); + printf( "correct password\n" ); send_msg( "correct password" ); const char* games_list = @@ -159,5 +152,50 @@ R"(games: send_msg( games_list ); + auto game_id = get_msg( ); + + if ( game_id== "1" ) { + printf( "csgo\n" ); + send_msg( "csgo.exe" ); + } + else if ( game_id == "2" ) { + printf( "csgo test\n" ); + send_msg( "csgo.exe" ); + } + else if ( game_id == "3" ) { + printf( "gmod\n" ); + send_msg( "hl2.exe" ); + } + else { + printf( "invalid\n" ); + return false; + } + + auto found = get_msg( ); + if ( found != "found" ) + return false; + + printf( "process found\n" ); + + if ( game_id == "3" ) { + // test. make sure the file is in ur directory + auto file = std::ifstream( "gmod.dll", std::ifstream::binary ); + if ( file.is_open( ) ) { + file.seekg( 0, file.end ); + + auto size = ( int )file.tellg( );
+ auto buffer = std::make_unique< char[ ] >( size );
+
+ memset( buffer.get( ), 0, size );
+
+ file.seekg( 0, file.beg );
+ file.read( buffer.get( ), size );
+ + send_msg( ( byte* )buffer.get( ), size ); + + file.close( ); + } + } + return true; } diff --git a/server/client.hpp b/server/client.hpp index fad499f..c59e116 100644 --- a/server/client.hpp +++ b/server/client.hpp @@ -39,7 +39,7 @@ namespace server { }
~c_client( ) {
- closesocket( m_socket );
+ kill( );
}
diff --git a/server/server.cpp b/server/server.cpp index 05d011d..010ec84 100644 --- a/server/server.cpp +++ b/server/server.cpp @@ -43,19 +43,6 @@ void server::c_server::listen( ) { client->send_msg( "hello" );
// surprised it even works with shared_ptr.
- std::thread thread( &c_client::handle, client );
+ std::thread thread{ &c_client::handle, client };
thread.detach( );
}
-
-void server::c_server::client_loop( ) {
- //if( m_clients.size( ) ) {
- // std::lock_guard lock( m_mutex );
- // for( auto it = m_clients.begin( ); it != m_clients.end( ); ++it ) {
- // if( !( *it )->handle( ) ) {
- // ( *it )->kill( );
- // m_clients.erase( it );
- // break;
- // }
- // }
- //}
-}
\ No newline at end of file |
