secubox-openwrt/package/secubox/secubox-app-ndpid/files/ndpisrvd.init
CyberMind-FR e4a553a6d5 feat: Add nDPId package for lightweight DPI (alternative to netifyd)
- Add secubox-app-ndpid: nDPId daemon with bundled libndpi 5.x
- Add luci-app-ndpid: LuCI web interface for nDPId management
- Add migration documentation from netifyd to nDPId
- Uses git dev branch for latest libndpi API compatibility
- Builds nDPId + nDPIsrvd event broker for microservice architecture

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 09:32:23 +01:00

69 lines
1.7 KiB
Bash

#!/bin/sh /etc/rc.common
# nDPIsrvd init script for OpenWrt
# Event distribution broker for nDPId
# Copyright (C) 2025 CyberMind.fr
START=50
STOP=11
USE_PROCD=1
PROG=/usr/sbin/ndpisrvd
CONF=/etc/config/ndpid
RUNTIME_DIR=/var/run/ndpid
start_service() {
local enabled listen_socket tcp_port tcp_address max_clients
local collector_socket
config_load ndpid
# Check distributor settings
config_get_bool enabled distributor enabled 1
[ "$enabled" -eq 0 ] && {
logger -t ndpisrvd "Service disabled in config"
return 0
}
# Create runtime directory
mkdir -p "$RUNTIME_DIR"
chown nobody:nogroup "$RUNTIME_DIR"
# Get configuration
config_get collector_socket main collector_socket /var/run/ndpid/collector.sock
config_get listen_socket distributor listen_socket /var/run/ndpid/distributor.sock
config_get tcp_port distributor tcp_port 7000
config_get tcp_address distributor tcp_address 127.0.0.1
config_get max_clients distributor max_clients 10
logger -t ndpisrvd "Starting nDPIsrvd (collector: $collector_socket, distributor: $listen_socket)"
# Build command
local cmd_args="-c $collector_socket -s $listen_socket"
# Add TCP listener if enabled
[ "$tcp_port" -gt 0 ] && {
cmd_args="$cmd_args -S ${tcp_address}:${tcp_port}"
}
procd_open_instance ndpisrvd
procd_set_param command "$PROG" $cmd_args
procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param pidfile /var/run/ndpisrvd.pid
procd_close_instance
}
stop_service() {
logger -t ndpisrvd "Stopping nDPIsrvd"
}
reload_service() {
stop
start
}
service_triggers() {
procd_add_reload_trigger "ndpid"
}