works on OpenBSD

This commit is contained in:
2025-03-28 21:55:33 +01:00
parent 1da4934e59
commit 5ee45654f2

14
main.c
View File

@@ -106,6 +106,7 @@ int main(int argc, char *argv[]) {
int sockfd;
struct addrinfo hints, *res;
struct sockaddr_storage dest_addr; // Declare dest_addr
int dest_addr_size;
// Check if no arguments are given or if help is requested
if (argc == 1 || (argc == 2 && strcmp(argv[1], "-h") == 0)) {
@@ -175,6 +176,17 @@ int main(int argc, char *argv[]) {
return 1;
}
// Calculate dest_addr size
if (res->ai_family == AF_INET) {
dest_addr_size = sizeof(struct sockaddr_in);
} else if (res->ai_family == AF_INET6) {
dest_addr_size = sizeof(struct sockaddr_in6);
} else {
fprintf(stderr, "Unknown address family\n");
freeaddrinfo(res);
return 1;
}
// Create UDP socket
sockfd = socket(res->ai_family, SOCK_DGRAM, 0);
if (sockfd == -1) {
@@ -330,7 +342,7 @@ int main(int argc, char *argv[]) {
memcpy(ptr, packet, header.caplen);
// Send packet via UDP with TZSP encapsulation
if (sendto(sockfd, tzsp_packet, total_length, 0, (struct sockaddr *)&dest_addr, sizeof(dest_addr)) == -1) {
if (sendto(sockfd, tzsp_packet, total_length, 0, (struct sockaddr *)&dest_addr, dest_addr_size) == -1) {
perror("sendto");
}