5 changed files with 155 additions and 0 deletions
@ -0,0 +1,14 @@ |
|||||
|
diff --git a/src/addrwatch_mysql.c b/src/addrwatch_mysql.c
|
||||
|
index 389153f..b4ed760 100644
|
||||
|
--- a/src/addrwatch_mysql.c
|
||||
|
+++ b/src/addrwatch_mysql.c
|
||||
|
@@ -232,7 +232,7 @@ void db_disconnect(struct ctx_s *data)
|
||||
|
data->dbh = NULL; |
||||
|
} |
||||
|
|
||||
|
-inline void db_reconnect(struct ctx_s *data) {
|
||||
|
+static inline void db_reconnect(struct ctx_s *data) {
|
||||
|
while (1) { |
||||
|
if (data->dbh) |
||||
|
db_disconnect(data); |
||||
|
|
||||
@ -0,0 +1,36 @@ |
|||||
|
diff --git a/configure.ac b/configure.ac
|
||||
|
index e70edc2..5d8b716 100644
|
||||
|
--- a/configure.ac
|
||||
|
+++ b/configure.ac
|
||||
|
@@ -58,9 +58,6 @@ AC_CHECK_HEADERS([arpa/inet.h netinet/in.h stdint.h stdlib.h syslog.h unistd.h])
|
||||
|
# Checks for typedefs, structures, and compiler characteristics. |
||||
|
AC_C_INLINE |
||||
|
AC_TYPE_PID_T |
||||
|
-AC_CHECK_DECLS([sys_siglist], [], [
|
||||
|
- AC_MSG_ERROR([Unable to find sys_siglist declaration.])
|
||||
|
-], [[#include <signal.h>]])
|
||||
|
AC_TYPE_UINT32_T |
||||
|
AC_TYPE_UINT16_T |
||||
|
AC_TYPE_UINT8_T |
||||
|
diff --git a/src/addrwatch.c b/src/addrwatch.c
|
||||
|
index 139dd3b..d208fad 100644
|
||||
|
--- a/src/addrwatch.c
|
||||
|
+++ b/src/addrwatch.c
|
||||
|
@@ -327,7 +327,7 @@ void reload_cb(evutil_socket_t fd, short events, void *arg)
|
||||
|
void reload_cb(int fd, short events, void *arg) |
||||
|
#endif |
||||
|
{ |
||||
|
- log_msg(LOG_DEBUG, "Received signal (%d), %s", fd, sys_siglist[fd]);
|
||||
|
+ log_msg(LOG_DEBUG, "Received signal (%d), %s", fd, strsignal(fd));
|
||||
|
log_msg(LOG_DEBUG, "Reopening output files"); |
||||
|
|
||||
|
output_flatfile_reload(); |
||||
|
@@ -341,7 +341,7 @@ void stop_cb(evutil_socket_t fd, short events, void *arg)
|
||||
|
void stop_cb(int fd, short events, void *arg) |
||||
|
#endif |
||||
|
{ |
||||
|
- log_msg(LOG_DEBUG, "Received signal (%d), %s", fd, sys_siglist[fd]);
|
||||
|
+ log_msg(LOG_DEBUG, "Received signal (%d), %s", fd, strsignal(fd));
|
||||
|
#if HAVE_LIBEVENT2 |
||||
|
event_base_loopbreak(cfg.eb); |
||||
|
#else |
||||
@ -0,0 +1,14 @@ |
|||||
|
[Unit] |
||||
|
Description=A tool for IPv4/IPv6 and ethernet address pairing monitoring |
||||
|
Documentation=man:addrwatch(8) https://github.com/fln/addrwatch |
||||
|
After=network.target |
||||
|
|
||||
|
[Service] |
||||
|
EnvironmentFile=-/etc/sysconfig/addrwatch |
||||
|
Type=simple |
||||
|
ExecStart=/usr/bin/addrwatch -u $ADDRWATCH_USERNAME $ADDRWATCH_ARGS |
||||
|
Restart=on-failure |
||||
|
|
||||
|
[Install] |
||||
|
WantedBy=multi-user.target |
||||
|
|
||||
@ -0,0 +1,7 @@ |
|||||
|
# |
||||
|
# specify extra Arguments to addrwatch |
||||
|
ADDRWATCH_ARGS="-s /var/lib/addrwatch/addrwatch.sqlite" |
||||
|
|
||||
|
# drop priviliges at boot |
||||
|
ADDRWATCH_USERNAME="addrwatch" |
||||
|
|
||||
@ -0,0 +1,84 @@ |
|||||
|
%global _hardened_build 1 |
||||
|
|
||||
|
Name: addrwatch |
||||
|
Version: 1.0.1 |
||||
|
Release: 8%{?dist} |
||||
|
Summary: Monitoring IPv4/IPv6 and Ethernet address pairings |
||||
|
|
||||
|
License: GPLv3 |
||||
|
URL: https://github.com/fln/addrwatch |
||||
|
Source0: %{url}/fln/addrwatch/releases/download/v%{version}/%{name}-%{version}.tar.gz |
||||
|
Source1: %{name}.service |
||||
|
Source2: %{name}.sysconfig |
||||
|
# https://github.com/fln/addrwatch/issues/11 |
||||
|
Patch0: addrwatch-fix-dbreconnect.patch |
||||
|
Patch1: addrwatch-strsignal.patch |
||||
|
|
||||
|
%{?systemd_requires} |
||||
|
BuildRequires: libpcap-devel, libevent-devel, systemd, sqlite-devel, gcc |
||||
|
BuildRequires: autoconf automake |
||||
|
Requires(pre): shadow-utils |
||||
|
|
||||
|
|
||||
|
%description |
||||
|
It main purpose is to monitor network and log discovered Ethernet/IP pairings. |
||||
|
|
||||
|
Main features of addrwatch: |
||||
|
|
||||
|
* IPv4 and IPv6 address monitoring |
||||
|
* Monitoring multiple network interfaces with one daemon |
||||
|
* Monitoring of VLAN tagged (802.1Q) packets. |
||||
|
* Output to std-out, plain text file, syslog, sqlite3 db, MySQL db |
||||
|
* IP address usage history preserving output/logging |
||||
|
|
||||
|
Addrwatch is extremely useful in networks with IPv6 auto configuration (RFC4862) |
||||
|
enabled. It allows to track IPv6 addresses of hosts using IPv6 privacy |
||||
|
extensions (RFC4941). |
||||
|
|
||||
|
%prep |
||||
|
%autosetup -p1 |
||||
|
#%setup -q |
||||
|
#%patch0 -p1 |
||||
|
|
||||
|
%build |
||||
|
autoreconf -fiv |
||||
|
%configure --enable-sqlite3 |
||||
|
%make_build |
||||
|
|
||||
|
%install |
||||
|
%make_install |
||||
|
mkdir -p %{buildroot}%{_unitdir}/ |
||||
|
install -p -m 644 %{SOURCE1} %{buildroot}%{_unitdir}/ |
||||
|
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig/ |
||||
|
install -p -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/sysconfig/addrwatch |
||||
|
mkdir -p %{buildroot}/var/lib/addrwatch |
||||
|
|
||||
|
%files |
||||
|
%{_bindir}/addrwatch |
||||
|
%{_bindir}/addrwatch_stdout |
||||
|
%{_bindir}/addrwatch_syslog |
||||
|
%{_mandir}/man8/addrwatch.8* |
||||
|
%{_unitdir}/addrwatch.service |
||||
|
%config(noreplace) %{_sysconfdir}/sysconfig/addrwatch |
||||
|
%license COPYING |
||||
|
%attr(-, addrwatch, addrwatch) /var/lib/addrwatch |
||||
|
|
||||
|
%pre |
||||
|
getent group %{name} >/dev/null || groupadd -r %{name} |
||||
|
getent passwd %{name} >/dev/null || \ |
||||
|
useradd -r -g %{name} -d /var/lib/%{name} -s /sbin/nologin \ |
||||
|
-c "network neighborhoud watch" %{name} |
||||
|
exit 0 |
||||
|
|
||||
|
%post |
||||
|
%systemd_post %{name}.service |
||||
|
|
||||
|
%preun |
||||
|
%systemd_preun %{name}.service |
||||
|
|
||||
|
%postun |
||||
|
%systemd_postun_with_restart %{name}.service |
||||
|
|
||||
|
%changelog |
||||
|
|
||||
|
|
||||
Loading…
Reference in new issue