mirror of
https://git.freestone.net/cramer/pcapmirror.git
synced 2025-12-31 03:50:27 +01:00
works on OpenBSD
This commit is contained in:
14
main.c
14
main.c
@@ -106,6 +106,7 @@ int main(int argc, char *argv[]) {
|
|||||||
int sockfd;
|
int sockfd;
|
||||||
struct addrinfo hints, *res;
|
struct addrinfo hints, *res;
|
||||||
struct sockaddr_storage dest_addr; // Declare dest_addr
|
struct sockaddr_storage dest_addr; // Declare dest_addr
|
||||||
|
int dest_addr_size;
|
||||||
|
|
||||||
// Check if no arguments are given or if help is requested
|
// Check if no arguments are given or if help is requested
|
||||||
if (argc == 1 || (argc == 2 && strcmp(argv[1], "-h") == 0)) {
|
if (argc == 1 || (argc == 2 && strcmp(argv[1], "-h") == 0)) {
|
||||||
@@ -175,6 +176,17 @@ int main(int argc, char *argv[]) {
|
|||||||
return 1;
|
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
|
// Create UDP socket
|
||||||
sockfd = socket(res->ai_family, SOCK_DGRAM, 0);
|
sockfd = socket(res->ai_family, SOCK_DGRAM, 0);
|
||||||
if (sockfd == -1) {
|
if (sockfd == -1) {
|
||||||
@@ -330,7 +342,7 @@ int main(int argc, char *argv[]) {
|
|||||||
memcpy(ptr, packet, header.caplen);
|
memcpy(ptr, packet, header.caplen);
|
||||||
|
|
||||||
// Send packet via UDP with TZSP encapsulation
|
// 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");
|
perror("sendto");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user