secubox-openwrt/package/secubox/luci-app-secubox-netifyd/root/usr/bin/netifyd-collector
CyberMind-FR 8fcd34abd0 feat: Netifyd Integration & Build System Improvements (v0.9.1)
Major updates:
- Replace luci-app-netifyd-dashboard with enhanced luci-app-secubox-netifyd
- Add netifyd 5.2.1 package with GCC 13.3/C++17 build fixes
- Fix nd-risks.cpp compilation errors via inline static maps patch
- Enhance local-build.sh with improved package building workflow
- Update secubox-core scripts version to v0.9.1

New Features:
- Complete netifyd dashboard with flows, devices, applications, and settings
- Local data collection with netifyd-collector
- Automated cron-based data aggregation
- RPCd integration for real-time statistics

Build Fixes:
- Patch 001: Fix C++17 inline static maps in nd-risks.hpp and nd-protos.hpp
- Patch 003: Skip ndpi tests to resolve roaring_v2 dependency issues
- Add libatomic dependency
- Include libnetifyd shared libraries in package

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 17:35:11 +01:00

43 lines
1.3 KiB
Bash

#!/bin/sh
# Netifyd Flow Data Collector
# Reads from netifyd Unix socket and maintains a local flow cache
NETIFYD_SOCKET="/var/run/netifyd/netifyd.sock"
FLOW_CACHE="/tmp/netifyd-flows.json"
MAX_FLOWS=1000
# Check if netifyd is running
if ! pidof netifyd >/dev/null 2>&1; then
echo "[]" > "$FLOW_CACHE"
exit 1
fi
# Check if socket exists
if [ ! -S "$NETIFYD_SOCKET" ]; then
echo "[]" > "$FLOW_CACHE"
exit 1
fi
# Read from Unix socket and collect flow data
# Note: netifyd socket outputs status info, not real-time flows
# We need to use netifyd CLI to get flow information
# Try to get flow data from netifyd status
if [ -f "/var/run/netifyd/status.json" ]; then
# Extract flows if available, otherwise create empty array
if command -v jq >/dev/null 2>&1; then
jq -c 'if .flows then .flows else [] end' /var/run/netifyd/status.json > "$FLOW_CACHE" 2>/dev/null || echo "[]" > "$FLOW_CACHE"
else
cp /var/run/netifyd/status.json "$FLOW_CACHE"
fi
else
echo "[]" > "$FLOW_CACHE"
fi
# Keep only the most recent flows
if [ -f "$FLOW_CACHE" ] && command -v jq >/dev/null 2>&1; then
jq "if length > $MAX_FLOWS then .[-$MAX_FLOWS:] else . end" "$FLOW_CACHE" > "$FLOW_CACHE.tmp" 2>/dev/null && mv "$FLOW_CACHE.tmp" "$FLOW_CACHE"
fi
exit 0