SecBSD's official ports repository

This commit is contained in:
purplerain 2023-08-16 22:26:55 +00:00
commit 2c0afcbbf3
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
64331 changed files with 5339189 additions and 0 deletions

View file

@ -0,0 +1,77 @@
Index: src/interfaces.c
--- src/interfaces.c.orig
+++ src/interfaces.c
@@ -28,7 +28,7 @@
#include <sys/socket.h>
#include <sys/types.h>
#include <ifaddrs.h>
-#if defined(__FreeBSD__) || defined(__APPLE__)
+#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__OpenBSD__)
#include <netinet/in.h>
#endif
#include <netinet/ip.h>
@@ -37,6 +37,11 @@
#include <net/ethernet.h>
#define ETH_FRAME_LEN (ETHER_MAX_LEN - ETHER_CRC_LEN)
#define ETH_ALEN ETHER_ADDR_LEN
+#elif defined(__OpenBSD__)
+#include <net/if.h>
+#include <netinet/if_ether.h>
+#define ETH_FRAME_LEN (ETHER_MAX_LEN - ETHER_CRC_LEN)
+#define ETH_ALEN ETHER_ADDR_LEN
#else
#include <netinet/ether.h>
#endif
@@ -298,7 +303,7 @@ int net_send_udp(const int fd, struct net_interface *i
*/
static unsigned char stackbuf[ETH_FRAME_LEN];
void* buffer = (void*)&stackbuf;
-#if defined(__FreeBSD__) || defined(__APPLE__)
+#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__OpenBSD__)
struct ether_header *eh = (struct ether_header *)buffer;
struct ip *ip = (struct ip *)(buffer + 14);
#else
@@ -325,7 +330,7 @@ int net_send_udp(const int fd, struct net_interface *i
}
/* Init ethernet header */
-#if defined(__FreeBSD__) || defined(__APPLE__)
+#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__OpenBSD__)
memcpy(eh->ether_shost, sourcemac, ETH_ALEN);
memcpy(eh->ether_dhost, destmac, ETH_ALEN);
eh->ether_type = htons(ETHERTYPE_IP);
@@ -350,7 +355,7 @@ int net_send_udp(const int fd, struct net_interface *i
#endif
/* Init IP Header */
-#if defined(__FreeBSD__) || defined(__APPLE__)
+#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__OpenBSD__)
ip->ip_v = 4;
ip->ip_hl = 5;
ip->ip_tos = 0x10;
@@ -377,14 +382,14 @@ int net_send_udp(const int fd, struct net_interface *i
#endif
/* Calculate checksum for IP header */
-#if defined(__FreeBSD__) || defined(__APPLE__)
+#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__OpenBSD__)
ip->ip_sum = in_cksum((unsigned short *)ip, sizeof(struct ip));
#else
ip->check = in_cksum((unsigned short *)ip, sizeof(struct iphdr));
#endif
/* Init UDP Header */
-#if defined(__FreeBSD__) || defined(__APPLE__)
+#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__OpenBSD__)
udp->uh_sport = htons(sourceport);
udp->uh_dport = htons(destport);
udp->uh_ulen = htons(sizeof(struct udphdr) + datalen);
@@ -400,7 +405,7 @@ int net_send_udp(const int fd, struct net_interface *i
memcpy(rest, data, datalen);
/* Add UDP checksum */
-#if defined(__FreeBSD__) || defined(__APPLE__)
+#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__OpenBSD__)
udp->uh_sum = udp_sum_calc((unsigned char *)&(ip->ip_src.s_addr),
(unsigned char *)&(ip->ip_dst.s_addr),
(unsigned char *)udp,