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