forked from openwrt/packages
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Makefile changes include: * Remove USE_UCLIBC, as uclibc is no longer supported * Package output modules * Move main binary (back) to /usr/sbin, as it is system administration related and requires superuser privileges New patches: * 003-add-space-for-null-byte.patch - from fln/addrwatch@374cfd2 * 004-more-specific-library-linking.patch - from fln/addrwatch@27b57d9 * 005-use-c99-format-macro-constants.patch - from fln/addrwatch#28 Init script changes include: * Change from explicit disable to explicit enable, so that the service is disabled by default and on first install * Set config option default values to default values of the main binary * Fix command-line option names and format (from https://forum.openwrt.org/t/cant-start-addrwatch-service/60499/3) * Always use the --quiet command-line option, as the procd instance is not configured to capture stdout/stderr * Change the syslog config option to start the syslog output module Signed-off-by: Jeffery To <[email protected]>
- Loading branch information
Showing
6 changed files
with
238 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,12 @@ | ||
|
||
config addrwatch | ||
option disabled '0' | ||
option enabled '0' | ||
list interface 'lan' | ||
#list interface 'wan' | ||
#option syslog '1' | ||
#option syslog '0' | ||
#option verbose '0' | ||
#option output '/var/log/addrwatch' | ||
#list blacklist '192.168.1.1' | ||
#option hashsize '1' | ||
#option ratelimit '-1' | ||
#option ratelimit '0' | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
From 374cfd2cabe4db9882d8a210adff430cc579f859 Mon Sep 17 00:00:00 2001 | ||
From: Julius Kriukas <[email protected]> | ||
Date: Sun, 8 Mar 2020 12:46:55 +0200 | ||
Subject: [PATCH] Use HOST_NAME_MAX+1 to add space for null byte | ||
|
||
--- | ||
src/addrwatch.c | 2 +- | ||
1 file changed, 1 insertion(+), 1 deletion(-) | ||
|
||
--- a/src/addrwatch.c | ||
+++ b/src/addrwatch.c | ||
@@ -501,7 +501,7 @@ int main(int argc, char *argv[]) | ||
argp_parse(&argp, argc, argv, 0, &optind, 0); | ||
|
||
if (!cfg.hostname) { | ||
- cfg.hostname_len = HOST_NAME_MAX; | ||
+ cfg.hostname_len = HOST_NAME_MAX + 1; | ||
cfg.hostname = (char *)calloc(cfg.hostname_len, sizeof(char)); | ||
gethostname(cfg.hostname, cfg.hostname_len); | ||
} |
46 changes: 46 additions & 0 deletions
46
net/addrwatch/patches/004-more-specific-library-linking.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
From 1988f6228225e10bccc50941798f1e1b4ca1ff62 Mon Sep 17 00:00:00 2001 | ||
From: Jeffery To <[email protected]> | ||
Date: Fri, 18 Jun 2021 15:46:47 +0800 | ||
Subject: [PATCH] More specific library linking | ||
|
||
Currently, the main binary and all output modules are linked to the same | ||
set of libraries. This changes the linking so that only the main binary | ||
is linked to pcap, and only addrwatch_mysql is linked to mysqlclient. | ||
|
||
This allows the main binary and output modules to be packaged separately | ||
with fewer dependencies for each individual package. | ||
--- | ||
configure.ac | 4 ++-- | ||
src/Makefile.am | 3 ++- | ||
2 files changed, 4 insertions(+), 3 deletions(-) | ||
|
||
--- a/configure.ac | ||
+++ b/configure.ac | ||
@@ -12,7 +12,7 @@ optional_modules="" | ||
AC_SUBST([optional_modules]) | ||
|
||
# Checks for libraries. | ||
-AC_CHECK_LIB([pcap], [pcap_open_live]) | ||
+AC_CHECK_LIB([pcap], [pcap_open_live], :) | ||
AC_CHECK_LIB([rt], [shm_open]) | ||
|
||
PKG_CHECK_MODULES(LIBEVENT, [libevent >= 1.4], , [ | ||
@@ -46,7 +46,7 @@ AC_ARG_ENABLE([sqlite3], | ||
) | ||
AC_ARG_ENABLE([mysql], | ||
AS_HELP_STRING([--enable-mysql], [Enable MySQL database output]), | ||
- AC_CHECK_LIB([mysqlclient], [mysql_real_connect], , [ | ||
+ AC_CHECK_LIB([mysqlclient], [mysql_real_connect], :, [ | ||
AC_MSG_ERROR([Unable to find libmysqlclient.]) | ||
]) | ||
optional_modules="${optional_modules} addrwatch_mysql" | ||
--- a/src/Makefile.am | ||
+++ b/src/Makefile.am | ||
@@ -9,5 +9,6 @@ addrwatch_stdout_SOURCES = addrwatch_std | ||
addrwatch_syslog_SOURCES = addrwatch_syslog.c shm_client.c shm_client.h | ||
addrwatch_mysql_SOURCES = addrwatch_mysql.c shm_client.c shm_client.h util.c util.h | ||
|
||
-addrwatch_LDADD = @LIBEVENT_LIBS@ | ||
+addrwatch_LDADD = @LIBEVENT_LIBS@ -lpcap | ||
+addrwatch_mysql_LDADD = -lmysqlclient | ||
|
70 changes: 70 additions & 0 deletions
70
net/addrwatch/patches/005-use-c99-format-macro-constants.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
From b49c70f37ef20109bc8b07af259a536c3ab2d7d8 Mon Sep 17 00:00:00 2001 | ||
From: Jeffery To <[email protected]> | ||
Date: Mon, 5 Jul 2021 04:23:19 +0800 | ||
Subject: [PATCH] Use C99 format macro constants for timestamp and vlan_tag | ||
|
||
Since timestamp and vlan_tag in the shm_log_entry struct are C99 fixed | ||
width integer types (uint64_t and uint16_t), the cross-platform way to | ||
print these values is to use the corresponding format macro | ||
constants[1], PRIu64 and PRIu16. | ||
|
||
This also adjusts the places where the time_t timestamp value is | ||
printed, casting it to uint64_t, for consistency. | ||
|
||
Fixes https://github.com/fln/addrwatch/issues/25 | ||
Fixes https://github.com/fln/addrwatch/issues/26 | ||
|
||
[1]: https://en.cppreference.com/w/c/types/integer#Format_macro_constants | ||
--- | ||
src/addrwatch_stdout.c | 2 +- | ||
src/addrwatch_syslog.c | 2 +- | ||
src/output_flatfile.c | 4 ++-- | ||
src/storage.c | 2 +- | ||
4 files changed, 5 insertions(+), 5 deletions(-) | ||
|
||
--- a/src/addrwatch_stdout.c | ||
+++ b/src/addrwatch_stdout.c | ||
@@ -16,7 +16,7 @@ void process_entry(struct shm_log_entry | ||
ip4_ntoa(e->ip_address, ip_str); | ||
} | ||
|
||
- printf("%lu %s %u %s %s %s\n", e->timestamp, e->interface, e->vlan_tag, | ||
+ printf("%" PRIu64 " %s %" PRIu16 " %s %s %s\n", e->timestamp, e->interface, e->vlan_tag, | ||
mac_str, ip_str, pkt_origin_str[e->origin]); | ||
} | ||
|
||
--- a/src/addrwatch_syslog.c | ||
+++ b/src/addrwatch_syslog.c | ||
@@ -18,7 +18,7 @@ void process_entry(struct shm_log_entry | ||
ip4_ntoa(e->ip_address, ip_str); | ||
} | ||
|
||
- syslog(LOG_INFO, "%lu %s %u %s %s %s", e->timestamp, e->interface, | ||
+ syslog(LOG_INFO, "%" PRIu64 " %s %" PRIu16 " %s %s %s", e->timestamp, e->interface, | ||
e->vlan_tag, mac_str, ip_str, pkt_origin_str[e->origin]); | ||
} | ||
|
||
--- a/src/output_flatfile.c | ||
+++ b/src/output_flatfile.c | ||
@@ -22,8 +22,8 @@ void output_flatfile_reload() | ||
void output_flatfile_save(struct pkt *p, char *mac_str, char *ip_str) | ||
{ | ||
if (cfg.data_fd) { | ||
- fprintf(cfg.data_fd, "%lu %s %u %s %s %s\n", | ||
- p->pcap_header->ts.tv_sec, p->ifc->name, p->vlan_tag, | ||
+ fprintf(cfg.data_fd, "%" PRIu64 " %s %" PRIu16 " %s %s %s\n", | ||
+ (uint64_t)p->pcap_header->ts.tv_sec, p->ifc->name, p->vlan_tag, | ||
mac_str, ip_str, pkt_origin_str[p->origin]); | ||
fflush(cfg.data_fd); | ||
} | ||
--- a/src/storage.c | ||
+++ b/src/storage.c | ||
@@ -129,7 +129,7 @@ void save_pairing(struct pkt *p) | ||
|
||
output_shm_save(p, mac_str, ip_str); | ||
if (!cfg.quiet) { | ||
- printf("%lu %s %u %s %s %s\n", tstamp, p->ifc->name, | ||
+ printf("%" PRIu64 " %s %" PRIu16 " %s %s %s\n", (uint64_t)tstamp, p->ifc->name, | ||
p->vlan_tag, mac_str, ip_str, pkt_origin_str[p->origin]); | ||
fflush(stdout); | ||
} |