mirror of
https://github.com/motioneye-project/motioneyeos.git
synced 2025-07-28 13:46:32 +00:00
fastd: bump to v18
Release notes at http://fastd.readthedocs.org/en/v18/releases/v18.html First patch rebased, second patch removed (gone upstream). Using tarball and hashes instead of git now. Signed-off-by: Alexander Dahl <post@lespocky.de> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
0f48c5a7e6
commit
c60243e0a9
@ -15,27 +15,12 @@ have very few space left on devices with only 4 MB flash memory.
|
|||||||
|
|
||||||
Signed-off-by: Alexander Dahl <post@lespocky.de>
|
Signed-off-by: Alexander Dahl <post@lespocky.de>
|
||||||
---
|
---
|
||||||
cmake/CMakeFindBinUtils.cmake | 7 -------
|
cmake/checks.cmake | 14 --------------
|
||||||
cmake/checks.cmake | 14 --------------
|
src/CMakeLists.txt | 9 +++++++++
|
||||||
src/CMakeLists.txt | 9 +++++++++
|
2 files changed, 9 insertions(+), 14 deletions(-)
|
||||||
3 files changed, 9 insertions(+), 21 deletions(-)
|
|
||||||
delete mode 100644 cmake/CMakeFindBinUtils.cmake
|
|
||||||
|
|
||||||
diff --git a/cmake/CMakeFindBinUtils.cmake b/cmake/CMakeFindBinUtils.cmake
|
|
||||||
deleted file mode 100644
|
|
||||||
index 753577a..0000000
|
|
||||||
--- a/cmake/CMakeFindBinUtils.cmake
|
|
||||||
+++ /dev/null
|
|
||||||
@@ -1,7 +0,0 @@
|
|
||||||
-if(CMAKE_COMPILER_IS_GNUCC)
|
|
||||||
- find_program(CMAKE_AR NAMES ${_CMAKE_TOOLCHAIN_PREFIX}gcc-ar HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
|
||||||
- find_program(CMAKE_NM NAMES ${_CMAKE_TOOLCHAIN_PREFIX}gcc-nm HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
|
||||||
- find_program(CMAKE_RANLIB NAMES ${_CMAKE_TOOLCHAIN_PREFIX}gcc-ranlib HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
|
||||||
-endif(CMAKE_COMPILER_IS_GNUCC)
|
|
||||||
-
|
|
||||||
-include(${CMAKE_ROOT}/Modules/CMakeFindBinUtils.cmake)
|
|
||||||
diff --git a/cmake/checks.cmake b/cmake/checks.cmake
|
diff --git a/cmake/checks.cmake b/cmake/checks.cmake
|
||||||
index f9f0399..3c1f38b 100644
|
index 27c073f..8a671a1 100644
|
||||||
--- a/cmake/checks.cmake
|
--- a/cmake/checks.cmake
|
||||||
+++ b/cmake/checks.cmake
|
+++ b/cmake/checks.cmake
|
||||||
@@ -10,20 +10,6 @@ if(ARCH_X86 OR ARCH_X86_64)
|
@@ -10,20 +10,6 @@ if(ARCH_X86 OR ARCH_X86_64)
|
||||||
@ -60,13 +45,13 @@ index f9f0399..3c1f38b 100644
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||||
index e7dd5d1..4991656 100644
|
index 829b3ab..7612b40 100644
|
||||||
--- a/src/CMakeLists.txt
|
--- a/src/CMakeLists.txt
|
||||||
+++ b/src/CMakeLists.txt
|
+++ b/src/CMakeLists.txt
|
||||||
@@ -47,6 +47,15 @@ add_executable(fastd
|
@@ -48,6 +48,15 @@ add_executable(fastd
|
||||||
set_property(TARGET fastd PROPERTY COMPILE_FLAGS "${FASTD_CFLAGS}")
|
set_property(TARGET fastd PROPERTY COMPILE_FLAGS "${FASTD_CFLAGS}")
|
||||||
set_property(TARGET fastd PROPERTY LINK_FLAGS "${PTHREAD_LDFLAGS} ${UECC_LDFLAGS_OTHER} ${NACL_LDFLAGS_OTHER} ${OPENSSL_CRYPTO_LDFLAGS_OTHER} ${JSONC_LDFLAGS_OTHER} ${LDFLAGS_LTO}")
|
set_property(TARGET fastd PROPERTY LINK_FLAGS "${PTHREAD_LDFLAGS} ${LIBUECC_LDFLAGS_OTHER} ${NACL_LDFLAGS_OTHER} ${JSON_C_LDFLAGS_OTHER} ${LDFLAGS_LTO}")
|
||||||
set_property(TARGET fastd APPEND PROPERTY INCLUDE_DIRECTORIES ${CAP_INCLUDE_DIR} ${NACL_INCLUDE_DIRS} ${JSONC_INCLUDE_DIRS})
|
set_property(TARGET fastd APPEND PROPERTY INCLUDE_DIRECTORIES ${LIBCAP_INCLUDE_DIR} ${NACL_INCLUDE_DIRS} ${JSON_C_INCLUDE_DIR})
|
||||||
+if(ENABLE_LTO)
|
+if(ENABLE_LTO)
|
||||||
+ set_target_properties(fastd PROPERTIES
|
+ set_target_properties(fastd PROPERTIES
|
||||||
+ INTERPROCEDURAL_OPTIMIZATION ON
|
+ INTERPROCEDURAL_OPTIMIZATION ON
|
||||||
@ -76,7 +61,7 @@ index e7dd5d1..4991656 100644
|
|||||||
+ INTERPROCEDURAL_OPTIMIZATION OFF
|
+ INTERPROCEDURAL_OPTIMIZATION OFF
|
||||||
+ )
|
+ )
|
||||||
+endif(ENABLE_LTO)
|
+endif(ENABLE_LTO)
|
||||||
target_link_libraries(fastd protocols methods ciphers macs ${RT_LIBRARY} ${CAP_LIBRARY} ${UECC_LIBRARIES} ${NACL_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARIES} ${JSONC_LIBRARIES})
|
target_link_libraries(fastd protocols methods ciphers macs ${RT_LIBRARY} ${LIBCAP_LIBRARY} ${LIBUECC_LIBRARIES} ${NACL_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARY} ${JSON_C_LIBRARIES})
|
||||||
|
|
||||||
add_dependencies(fastd version)
|
add_dependencies(fastd version)
|
||||||
--
|
--
|
||||||
|
@ -1,261 +0,0 @@
|
|||||||
From 8ed750311482824e427db3b8b2cec6842ea8bc96 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
|
||||||
Date: Thu, 25 Jun 2015 01:03:23 +0200
|
|
||||||
Subject: [PATCH] Don't depend on net/if_ether.h
|
|
||||||
|
|
||||||
Instead of adding compatiblity code to make this work with musl, just
|
|
||||||
duplicate the needed definitions in fastd.
|
|
||||||
|
|
||||||
[Backport from upstream commit 9ac7f3588dda7d175e04878e7b871a88306d13bf.
|
|
||||||
Fixes missing 'sys/queue.h' issue when building with musl.]
|
|
||||||
|
|
||||||
Signed-off-by: Rodrigo Rebello <rprebello@gmail.com>
|
|
||||||
---
|
|
||||||
cmake/checks.cmake | 5 -----
|
|
||||||
src/compat.h | 22 ----------------------
|
|
||||||
src/config.y | 1 +
|
|
||||||
src/fastd.h | 15 +++++++++++----
|
|
||||||
src/fastd_config.h.in | 3 ---
|
|
||||||
src/log.c | 2 +-
|
|
||||||
src/peer.c | 7 ++++---
|
|
||||||
src/receive.c | 2 +-
|
|
||||||
src/send.c | 2 +-
|
|
||||||
src/socket.c | 2 ++
|
|
||||||
src/status.c | 1 +
|
|
||||||
src/types.h | 1 +
|
|
||||||
12 files changed, 23 insertions(+), 40 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/cmake/checks.cmake b/cmake/checks.cmake
|
|
||||||
index f9f0399..62d52ff 100644
|
|
||||||
--- a/cmake/checks.cmake
|
|
||||||
+++ b/cmake/checks.cmake
|
|
||||||
@@ -54,11 +54,6 @@ if(NOT DARWIN)
|
|
||||||
endif(NOT DARWIN)
|
|
||||||
|
|
||||||
|
|
||||||
-set(CMAKE_EXTRA_INCLUDE_FILES "netinet/if_ether.h")
|
|
||||||
-check_type_size("struct ethhdr" SIZEOF_ETHHDR)
|
|
||||||
-string(COMPARE NOTEQUAL "${SIZEOF_ETHHDR}" "" HAVE_ETHHDR)
|
|
||||||
-
|
|
||||||
-
|
|
||||||
set(CMAKE_REQUIRED_INCLUDES "sys/types.h")
|
|
||||||
|
|
||||||
if(NOT DARWIN)
|
|
||||||
diff --git a/src/compat.h b/src/compat.h
|
|
||||||
index 991c268..29c9253 100644
|
|
||||||
--- a/src/compat.h
|
|
||||||
+++ b/src/compat.h
|
|
||||||
@@ -39,32 +39,10 @@
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
-#include <sys/queue.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
|
|
||||||
-#include <net/if.h>
|
|
||||||
-#include <net/if_arp.h>
|
|
||||||
#include <netinet/in.h>
|
|
||||||
-#include <netinet/if_ether.h>
|
|
||||||
|
|
||||||
-#ifndef ETH_ALEN
|
|
||||||
-/** The length of a MAC address */
|
|
||||||
-#define ETH_ALEN 6
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
-#ifndef ETH_HLEN
|
|
||||||
-/** The length of the standard ethernet header */
|
|
||||||
-#define ETH_HLEN 14
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
-#ifndef HAVE_ETHHDR
|
|
||||||
-/** An ethernet header */
|
|
||||||
-struct ethhdr {
|
|
||||||
- uint8_t h_dest[ETH_ALEN]; /**< The destination MAC address field */
|
|
||||||
- uint8_t h_source[ETH_ALEN]; /**< The source MAC address field */
|
|
||||||
- uint16_t h_proto; /**< The EtherType/length field */
|
|
||||||
-} __attribute__((packed));
|
|
||||||
-#endif
|
|
||||||
|
|
||||||
#if defined(USE_FREEBIND) && !defined(IP_FREEBIND)
|
|
||||||
/** Compatiblity define for systems supporting, but not defining IP_FREEBIND */
|
|
||||||
diff --git a/src/config.y b/src/config.y
|
|
||||||
index f2f597f..5b00d7c 100644
|
|
||||||
--- a/src/config.y
|
|
||||||
+++ b/src/config.y
|
|
||||||
@@ -33,6 +33,7 @@
|
|
||||||
%code requires {
|
|
||||||
#include <src/fastd.h>
|
|
||||||
#include <arpa/inet.h>
|
|
||||||
+ #include <net/if.h>
|
|
||||||
}
|
|
||||||
|
|
||||||
%union {
|
|
||||||
diff --git a/src/fastd.h b/src/fastd.h
|
|
||||||
index f1b2f93..ec2316b 100644
|
|
||||||
--- a/src/fastd.h
|
|
||||||
+++ b/src/fastd.h
|
|
||||||
@@ -58,7 +58,14 @@
|
|
||||||
|
|
||||||
/** An ethernet address */
|
|
||||||
struct __attribute__((__packed__)) fastd_eth_addr {
|
|
||||||
- uint8_t data[ETH_ALEN]; /**< The bytes of the address */
|
|
||||||
+ uint8_t data[6]; /**< The bytes of the address */
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+/** An ethernet header */
|
|
||||||
+struct __attribute__((packed)) fastd_eth_header {
|
|
||||||
+ fastd_eth_addr_t dest; /**< The destination MAC address field */
|
|
||||||
+ fastd_eth_addr_t source; /**< The source MAC address field */
|
|
||||||
+ uint16_t proto; /**< The EtherType/length field */
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
@@ -408,7 +415,7 @@ static inline void fastd_setnonblock(int fd) {
|
|
||||||
static inline size_t fastd_max_payload(void) {
|
|
||||||
switch (conf.mode) {
|
|
||||||
case MODE_TAP:
|
|
||||||
- return conf.mtu+ETH_HLEN;
|
|
||||||
+ return conf.mtu + sizeof(fastd_eth_header_t);
|
|
||||||
case MODE_TUN:
|
|
||||||
return conf.mtu;
|
|
||||||
default:
|
|
||||||
@@ -420,14 +427,14 @@ static inline size_t fastd_max_payload(void) {
|
|
||||||
/** Returns the source address of an ethernet packet */
|
|
||||||
static inline fastd_eth_addr_t fastd_buffer_source_address(const fastd_buffer_t buffer) {
|
|
||||||
fastd_eth_addr_t ret;
|
|
||||||
- memcpy(&ret, buffer.data+offsetof(struct ethhdr, h_source), ETH_ALEN);
|
|
||||||
+ memcpy(&ret, buffer.data + offsetof(fastd_eth_header_t, source), sizeof(fastd_eth_addr_t));
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Returns the destination address of an ethernet packet */
|
|
||||||
static inline fastd_eth_addr_t fastd_buffer_dest_address(const fastd_buffer_t buffer) {
|
|
||||||
fastd_eth_addr_t ret;
|
|
||||||
- memcpy(&ret, buffer.data+offsetof(struct ethhdr, h_dest), ETH_ALEN);
|
|
||||||
+ memcpy(&ret, buffer.data + offsetof(fastd_eth_header_t, dest), sizeof(fastd_eth_addr_t));
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/src/fastd_config.h.in b/src/fastd_config.h.in
|
|
||||||
index 6a55930..5f9c868 100644
|
|
||||||
--- a/src/fastd_config.h.in
|
|
||||||
+++ b/src/fastd_config.h.in
|
|
||||||
@@ -35,9 +35,6 @@
|
|
||||||
/** Defined if the platform supports the AI_ADDRCONFIG flag to getaddrinfo() */
|
|
||||||
#cmakedefine HAVE_AI_ADDRCONFIG
|
|
||||||
|
|
||||||
-/** Defined if the platform defines the \e ethhdr struct */
|
|
||||||
-#cmakedefine HAVE_ETHHDR
|
|
||||||
-
|
|
||||||
/** Defined if the platform defines get_current_dir_name() */
|
|
||||||
#cmakedefine HAVE_GET_CURRENT_DIR_NAME
|
|
||||||
|
|
||||||
diff --git a/src/log.c b/src/log.c
|
|
||||||
index 7d1538a..0727bbb 100644
|
|
||||||
--- a/src/log.c
|
|
||||||
+++ b/src/log.c
|
|
||||||
@@ -74,7 +74,7 @@ size_t fastd_snprint_peer_address(char *buffer, size_t size, const fastd_peer_ad
|
|
||||||
if (!bind_address && hide)
|
|
||||||
return snprintf_safe(buffer, size, "[hidden]:%u", ntohs(address->in6.sin6_port));
|
|
||||||
if (inet_ntop(AF_INET6, &address->in6.sin6_addr, addr_buf, sizeof(addr_buf))) {
|
|
||||||
- char ifname_buf[IF_NAMESIZE];
|
|
||||||
+ char ifname_buf[IFNAMSIZ];
|
|
||||||
if (!iface && IN6_IS_ADDR_LINKLOCAL(&address->in6.sin6_addr))
|
|
||||||
iface = if_indextoname(address->in6.sin6_scope_id, ifname_buf);
|
|
||||||
|
|
||||||
diff --git a/src/peer.c b/src/peer.c
|
|
||||||
index 9ce5ca2..3313112 100644
|
|
||||||
--- a/src/peer.c
|
|
||||||
+++ b/src/peer.c
|
|
||||||
@@ -34,13 +34,14 @@
|
|
||||||
#include "poll.h"
|
|
||||||
|
|
||||||
#include <arpa/inet.h>
|
|
||||||
+#include <net/if.h>
|
|
||||||
#include <sys/wait.h>
|
|
||||||
|
|
||||||
|
|
||||||
/** Adds peer-specific fields to \e env */
|
|
||||||
void fastd_peer_set_shell_env(fastd_shell_env_t *env, const fastd_peer_t *peer, const fastd_peer_address_t *local_addr, const fastd_peer_address_t *peer_addr) {
|
|
||||||
- /* both INET6_ADDRSTRLEN and IFNAMESIZE already include space for the zero termination, so there is no need to add space for the '%' here. */
|
|
||||||
- char buf[INET6_ADDRSTRLEN+IF_NAMESIZE];
|
|
||||||
+ /* both INET6_ADDRSTRLEN and IFNAMSIZ already include space for the zero termination, so there is no need to add space for the '%' here. */
|
|
||||||
+ char buf[INET6_ADDRSTRLEN+IFNAMSIZ];
|
|
||||||
|
|
||||||
fastd_shell_env_set(env, "PEER_NAME", peer ? peer->name : NULL);
|
|
||||||
|
|
||||||
@@ -850,7 +851,7 @@ void fastd_peer_set_established(fastd_peer_t *peer) {
|
|
||||||
|
|
||||||
/** Compares two MAC addresses */
|
|
||||||
static inline int eth_addr_cmp(const fastd_eth_addr_t *addr1, const fastd_eth_addr_t *addr2) {
|
|
||||||
- return memcmp(addr1->data, addr2->data, ETH_ALEN);
|
|
||||||
+ return memcmp(addr1->data, addr2->data, sizeof(fastd_eth_addr_t));
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Compares two fastd_peer_eth_addr_t entries by their MAC addresses */
|
|
||||||
diff --git a/src/receive.c b/src/receive.c
|
|
||||||
index 2ee402a..6db5cfd 100644
|
|
||||||
--- a/src/receive.c
|
|
||||||
+++ b/src/receive.c
|
|
||||||
@@ -289,7 +289,7 @@ void fastd_receive(fastd_socket_t *sock) {
|
|
||||||
/** Handles a received and decrypted payload packet */
|
|
||||||
void fastd_handle_receive(fastd_peer_t *peer, fastd_buffer_t buffer, bool reordered) {
|
|
||||||
if (conf.mode == MODE_TAP) {
|
|
||||||
- if (buffer.len < ETH_HLEN) {
|
|
||||||
+ if (buffer.len < sizeof(fastd_eth_header_t)) {
|
|
||||||
pr_debug("received truncated packet");
|
|
||||||
fastd_buffer_free(buffer);
|
|
||||||
return;
|
|
||||||
diff --git a/src/send.c b/src/send.c
|
|
||||||
index caa7312..6d9f66f 100644
|
|
||||||
--- a/src/send.c
|
|
||||||
+++ b/src/send.c
|
|
||||||
@@ -209,7 +209,7 @@ static inline bool send_data_tap_single(fastd_buffer_t buffer, fastd_peer_t *sou
|
|
||||||
if (conf.mode != MODE_TAP)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
- if (buffer.len < ETH_HLEN) {
|
|
||||||
+ if (buffer.len < sizeof(fastd_eth_header_t)) {
|
|
||||||
pr_debug("truncated ethernet packet");
|
|
||||||
fastd_buffer_free(buffer);
|
|
||||||
return true;
|
|
||||||
diff --git a/src/socket.c b/src/socket.c
|
|
||||||
index e932148..03a11a6 100644
|
|
||||||
--- a/src/socket.c
|
|
||||||
+++ b/src/socket.c
|
|
||||||
@@ -32,6 +32,8 @@
|
|
||||||
#include "fastd.h"
|
|
||||||
#include "poll.h"
|
|
||||||
|
|
||||||
+#include <net/if.h>
|
|
||||||
+
|
|
||||||
|
|
||||||
/**
|
|
||||||
Creates a new socket bound to a specific address
|
|
||||||
diff --git a/src/status.c b/src/status.c
|
|
||||||
index d0b8511..27d6b38 100644
|
|
||||||
--- a/src/status.c
|
|
||||||
+++ b/src/status.c
|
|
||||||
@@ -39,6 +39,7 @@
|
|
||||||
#include "peer.h"
|
|
||||||
|
|
||||||
#include <json.h>
|
|
||||||
+#include <net/if.h>
|
|
||||||
#include <sys/un.h>
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/types.h b/src/types.h
|
|
||||||
index f380541..b684621 100644
|
|
||||||
--- a/src/types.h
|
|
||||||
+++ b/src/types.h
|
|
||||||
@@ -87,6 +87,7 @@ typedef struct fastd_bind_address fastd_bind_address_t;
|
|
||||||
typedef struct fastd_socket fastd_socket_t;
|
|
||||||
typedef struct fastd_peer_group fastd_peer_group_t;
|
|
||||||
typedef struct fastd_eth_addr fastd_eth_addr_t;
|
|
||||||
+typedef struct fastd_eth_header fastd_eth_header_t;
|
|
||||||
typedef struct fastd_peer fastd_peer_t;
|
|
||||||
typedef struct fastd_peer_eth_addr fastd_peer_eth_addr_t;
|
|
||||||
typedef struct fastd_remote fastd_remote_t;
|
|
||||||
--
|
|
||||||
2.1.4
|
|
||||||
|
|
4
package/fastd/fastd.hash
Normal file
4
package/fastd/fastd.hash
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# from https://projects.universe-factory.net/projects/fastd/files
|
||||||
|
md5 e53236d3049f64f7955ad9556da099eb fastd-18.tar.xz
|
||||||
|
# computed locally
|
||||||
|
sha256 714ff09d7bd75f79783f744f6f8c5af2fe456c8cf876feaa704c205a73e043c9 fastd-18.tar.xz
|
@ -4,8 +4,9 @@
|
|||||||
#
|
#
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
FASTD_VERSION = v17
|
FASTD_VERSION = 18
|
||||||
FASTD_SITE = git://git.universe-factory.net/fastd
|
FASTD_SITE = https://projects.universe-factory.net/attachments/download/86
|
||||||
|
FASTD_SOURCE = fastd-$(FASTD_VERSION).tar.xz
|
||||||
FASTD_LICENSE = BSD-2c
|
FASTD_LICENSE = BSD-2c
|
||||||
FASTD_LICENSE_FILES = COPYRIGHT
|
FASTD_LICENSE_FILES = COPYRIGHT
|
||||||
FASTD_CONF_OPTS = -DENABLE_LIBSODIUM=ON
|
FASTD_CONF_OPTS = -DENABLE_LIBSODIUM=ON
|
||||||
|
Loading…
x
Reference in New Issue
Block a user