- Fixed incorrect init_connections() call in test_etcp_simple_traffic.c (was calling server_instance instead of client_instance) - Fixed double free in timeout_heap_pop() when handling deleted elements - Enhanced NULL pointer safety in uasync_print_resources() by removing complex heap manipulation - Added debug logging to timeout_heap_pop() for better error tracking Test results: test_etcp_simple_traffic now passes without double free errors
52 lines
1.8 KiB
C
52 lines
1.8 KiB
C
#ifndef UTUN_TEST_SOCKET_API_H
|
|
#define UTUN_TEST_SOCKET_API_H
|
|
|
|
#include <sys/socket.h>
|
|
#include <stdint.h>
|
|
|
|
struct utun_test_packet {
|
|
uint8_t* data;
|
|
size_t len;
|
|
struct sockaddr_storage addr;
|
|
socklen_t addrlen;
|
|
struct utun_test_packet* next;
|
|
};
|
|
|
|
struct utun_test_packet_queue {
|
|
struct utun_test_packet* head;
|
|
struct utun_test_packet* tail;
|
|
size_t count;
|
|
};
|
|
|
|
struct utun_test_socket_api {
|
|
struct utun_test_packet_queue send_queue;
|
|
struct utun_test_packet_queue recv_queue;
|
|
|
|
ssize_t (*on_send)(const uint8_t* data, size_t len,
|
|
const struct sockaddr* dest_addr, socklen_t dest_addrlen,
|
|
void* user_data);
|
|
|
|
ssize_t (*on_recv)(uint8_t* buffer, size_t buffer_size,
|
|
struct sockaddr* src_addr, socklen_t* src_addrlen,
|
|
void* user_data);
|
|
|
|
void* user_data;
|
|
};
|
|
|
|
void utun_test_packet_queue_init(struct utun_test_packet_queue* queue);
|
|
void utun_test_packet_queue_cleanup(struct utun_test_packet_queue* queue);
|
|
void utun_test_packet_queue_push(struct utun_test_packet_queue* queue,
|
|
const uint8_t* data, size_t len,
|
|
const struct sockaddr* addr, socklen_t addrlen);
|
|
struct utun_test_packet* utun_test_packet_queue_pop(struct utun_test_packet_queue* queue);
|
|
size_t utun_test_packet_queue_count(struct utun_test_packet_queue* queue);
|
|
|
|
ssize_t utun_test_default_on_send(const uint8_t* data, size_t len,
|
|
const struct sockaddr* dest_addr, socklen_t dest_addrlen,
|
|
void* user_data);
|
|
|
|
ssize_t utun_test_default_on_recv(uint8_t* buffer, size_t buffer_size,
|
|
struct sockaddr* src_addr, socklen_t* src_addrlen,
|
|
void* user_data);
|
|
|
|
#endif |