implemented socket_setTimeout

This commit is contained in:
2025-11-08 20:04:50 +05:00
parent 2db37bb902
commit ebab072835
7 changed files with 54 additions and 16 deletions

View File

@@ -28,14 +28,14 @@ Result(ClientConnection*) ClientConnection_accept(ServerCredentials* server_cred
// correct session key will be received from client later
Array_memset(conn->session_key, 0);
EncryptedSocketTCP_construct(&conn->sock, sock_tcp, NETWORK_BUFFER_SIZE, conn->session_key);
// TODO: set socket timeout to 5 seconds
try_void(socket_setTimeout(sock_tcp, SOCKET_TIMEOUT_MS_DEFAULT));
// decrypt the rsa messages using server private key
RSADecryptor rsa_dec;
RSADecryptor_construct(&rsa_dec, &server_credentials->rsa_sk);
// receive PacketHeader
PacketHeader packet_header;
PacketHeader packet_header = {0};
try_void(EncryptedSocketTCP_recvStructRSA(&conn->sock, &rsa_dec, &packet_header));
try_void(PacketHeader_validateMagic(&packet_header));
if(packet_header.type != PacketType_ClientHandshake){
@@ -46,7 +46,7 @@ Result(ClientConnection*) ClientConnection_accept(ServerCredentials* server_cred
}
// receive ClientHandshake
ClientHandshake client_handshake;
ClientHandshake client_handshake = {0};
try_void(EncryptedSocketTCP_recvStructRSA(&conn->sock, &rsa_dec, &client_handshake));
// use received session key
@@ -56,7 +56,7 @@ Result(ClientConnection*) ClientConnection_accept(ServerCredentials* server_cred
// send PacketHeader and ServerHandshake over encrypted TCP socket
PacketHeader_construct(&packet_header,
PROTOCOL_VERSION, PacketType_ServerHandshake, sizeof(ServerHandshake));
ServerHandshake server_handshake;
ServerHandshake server_handshake = {0};
ServerHandshake_construct(&server_handshake,
session_id);
try_void(EncryptedSocketTCP_sendStruct(&conn->sock, &packet_header));

View File

@@ -1,5 +1,6 @@
#include <pthread.h>
#include "tlibc/filesystem.h"
#include "tlibc/time.h"
#include "db/idb.h"
#include "server.h"
#include "config.h"