mirror of
https://github.com/utoni/nDPId.git
synced 2026-05-05 19:15:06 +00:00
85 lines
2.8 KiB
Bash
85 lines
2.8 KiB
Bash
#!/bin/sh /etc/rc.common
|
|
|
|
START=99
|
|
STOP=80
|
|
|
|
USE_PROCD=1
|
|
|
|
NDPID_BIN="/usr/sbin/nDPId-testing"
|
|
|
|
print_arg_bool() {
|
|
local cfg="$1"
|
|
local var="$2"
|
|
local opt="$3"
|
|
local aux
|
|
|
|
config_get_bool aux "$cfg" "$var" '0'
|
|
if [ $aux -ne 0 ]; then
|
|
printf ' %s' "$opt"
|
|
fi
|
|
}
|
|
|
|
print_arg_str() {
|
|
local cfg="$1"
|
|
local var="$2"
|
|
local opt="$3"
|
|
local aux
|
|
|
|
config_get aux "$cfg" "$var"
|
|
if [ ! -z "$aux" ]; then
|
|
printf ' %s' "$opt$aux"
|
|
fi
|
|
}
|
|
|
|
start_instance() {
|
|
local cfg=$1
|
|
local aux
|
|
local args
|
|
|
|
config_get_bool aux "$cfg" 'enabled' '0'
|
|
#[ "$aux" = 0 ] && return 1
|
|
|
|
# General
|
|
args="$(print_arg_str "$cfg" 'interface' '-i')"
|
|
args="$args$(print_arg_bool "$cfg" 'internal_only' '-I')"
|
|
args="$args$(print_arg_bool "$cfg" 'external_only' '-E')"
|
|
args="$args$(print_arg_str "$cfg" 'bpf_filter' '-B')"
|
|
args="$args$(print_arg_str "$cfg" 'proto_file' '-P')"
|
|
args="$args$(print_arg_str "$cfg" 'cat_file' '-C')"
|
|
args="$args$(print_arg_str "$cfg" 'ja3_file' '-J')"
|
|
args="$args$(print_arg_str "$cfg" 'ssl_file' '-S')"
|
|
args="$args$(print_arg_str "$cfg" 'alias' '-a')"
|
|
args="$args$(print_arg_bool "$cfg" 'analysis' '-A')"
|
|
args="$args$(print_arg_bool "$cfg" 'compression' '-z')"
|
|
|
|
# Tuning
|
|
args="$args$(print_arg_str "$cfg" 'max_flows_per_thread' '-omax-flows-per-thread=')"
|
|
args="$args$(print_arg_str "$cfg" 'max_idle_flows_per_thread' '-omax-idle-flows-per-thread=')"
|
|
args="$args$(print_arg_str "$cfg" 'max_reader_threads' '-omax-reader-threads=')"
|
|
args="$args$(print_arg_str "$cfg" 'daemon_status_interval' '-odaemon-status-interval=')"
|
|
args="$args$(print_arg_str "$cfg" 'compression_scan_interval' '-ocompression-scan-interval=')"
|
|
args="$args$(print_arg_str "$cfg" 'compression_flow_inactivity' '-ocompression-flow-inactivity=')"
|
|
args="$args$(print_arg_str "$cfg" 'flow_scan_interval' '-oflow-scan-interval=')"
|
|
args="$args$(print_arg_str "$cfg" 'generic_max_idle_time' '-ogeneric-max-idle-time=')"
|
|
args="$args$(print_arg_str "$cfg" 'icmp_max_idle_time' '-oicmp-max-idle-time=')"
|
|
args="$args$(print_arg_str "$cfg" 'udp_max_idle_time' '-oudp-max-idle-time=')"
|
|
args="$args$(print_arg_str "$cfg" 'tcp_max_idle_time' '-otcp-max-idle-time=')"
|
|
args="$args$(print_arg_str "$cfg" 'tcp_max_post_end_flow_time' '-otcp-max-post-end-flow-time=')"
|
|
args="$args$(print_arg_str "$cfg" 'max_packets_per_flow_to_send' '-omax-packets-per-flow-to-send=')"
|
|
args="$args$(print_arg_str "$cfg" 'max_packets_per_flow_to_process' '-omax-packets-per-flow-to-process=')"
|
|
args="$args$(print_arg_str "$cfg" 'max_packets_per_flow_to_analyse' '-omax-packets-per-flow-to-analyse=')"
|
|
|
|
procd_open_instance
|
|
procd_set_param command $NDPID_BIN
|
|
procd_append_param command $args
|
|
|
|
config_get_bool aux "$cfg" 'respawn' '0'
|
|
[ "$aux" = 1 ] && procd_set_param respawn
|
|
|
|
procd_close_instance
|
|
}
|
|
|
|
start_service() {
|
|
config_load nDPId-testing
|
|
config_foreach start_instance nDPId-testing
|
|
}
|