Support for FreeBSD

This commit is contained in:
Hajimu UMEMOTO
2016-05-16 14:46:39 +09:00
parent 3a35dee94f
commit a359d1bbd4
10 changed files with 18 additions and 9 deletions

View File

@@ -10,6 +10,8 @@ all: $(LIBNAME) libnethogs.a
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux)
LDFLAGS:= -shared -Wl,-soname,$(SO_NAME)
else ($(UNAME_S),FreeBSD)
LDFLAGS:= -shared -Wl,-soname,$(SO_NAME)
else
LDFLAGS:= -shared -Wl,-install_name,$(SO_NAME)
endif

View File

@@ -24,6 +24,8 @@
#include <cassert>
#ifdef __APPLE__
#include <sys/malloc.h>
#elif __FreeBSD__
#include <stdlib.h>
#else
#include <malloc.h>
#endif

View File

@@ -28,7 +28,7 @@
#include "nethogs.h"
#include "conninode.h"
#if defined __APPLE__
#if defined(__APPLE__) || defined(__FreeBSD__)
#ifndef s6_addr32
#define s6_addr32 __u6_addr.__u6_addr32
#endif
@@ -183,7 +183,7 @@ void refreshconninode() {
// delete conninode;
// conninode = new HashTable (256);
#if defined(__APPLE__)
#if defined(__APPLE__) || defined(__FreeBSD__)
addprocinfo("net.inet.tcp.pcblist");
#else
if (!addprocinfo("/proc/net/tcp")) {

View File

@@ -13,7 +13,7 @@ int main() {
return 2;
}
#if not defined(__APPLE__)
#if !defined(__APPLE__) && !defined(__FreeBSD__)
if (!addprocinfo("/proc/net/tcp")) {
std::cerr << "Failed to load /proc/net/tcp" << std::endl;
return 3;

View File

@@ -20,6 +20,7 @@
*
*/
#include <sys/types.h>
#include <net/ethernet.h>
#include <net/if.h>
#include <netinet/in.h>

View File

@@ -119,7 +119,7 @@ int process_tcp(u_char *userdata, const dp_header *header,
Packet *packet;
switch (args->sa_family) {
case AF_INET:
#ifdef __APPLE__
#if defined(__APPLE__) || defined(__FreeBSD__)
packet = new Packet(args->ip_src, ntohs(tcp->th_sport), args->ip_dst,
ntohs(tcp->th_dport), header->len, header->ts);
#else
@@ -128,7 +128,7 @@ int process_tcp(u_char *userdata, const dp_header *header,
#endif
break;
case AF_INET6:
#ifdef __APPLE__
#if defined(__APPLE__) || defined(__FreeBSD__)
packet = new Packet(args->ip6_src, ntohs(tcp->th_sport), args->ip6_dst,
ntohs(tcp->th_dport), header->len, header->ts);
#else
@@ -168,7 +168,7 @@ int process_udp(u_char *userdata, const dp_header *header,
Packet *packet;
switch (args->sa_family) {
case AF_INET:
#ifdef __APPLE__
#if defined(__APPLE__) || defined(__FreeBSD__)
packet = new Packet(args->ip_src, ntohs(udp->uh_sport), args->ip_dst,
ntohs(udp->uh_dport), header->len, header->ts);
#else
@@ -177,7 +177,7 @@ int process_udp(u_char *userdata, const dp_header *header,
#endif
break;
case AF_INET6:
#ifdef __APPLE__
#if defined(__APPLE__) || defined(__FreeBSD__)
packet = new Packet(args->ip6_src, ntohs(udp->uh_sport), args->ip6_dst,
ntohs(udp->uh_dport), header->len, header->ts);
#else

View File

@@ -31,6 +31,8 @@
#include <cstring>
#ifdef __APPLE__
#include <sys/malloc.h>
#elif __FreeBSD__
#include <stdlib.h>
#else
#include <malloc.h>
#endif

View File

@@ -28,6 +28,8 @@
#include <netinet/in.h>
#ifdef __APPLE__
#include <sys/malloc.h>
#elif __FreeBSD__
#include <stdlib.h>
#else
#include <malloc.h>
#endif

View File

@@ -24,7 +24,7 @@
#include <strings.h>
#include <string>
#include <ncurses.h>
#ifndef __APPLE__
#if !defined(__APPLE__) && !defined(__FreeBSD__)
#include <asm/types.h>
#endif
#include <sys/types.h>