diff --git a/files/files/connstats.sh b/files/files/connstats.sh index 66bdd15..382bc8a 100644 --- a/files/files/connstats.sh +++ b/files/files/connstats.sh @@ -646,6 +646,26 @@ if [ $DEBUG -eq 1 ]; then ' "$tmp_slice" | sed 's/^/DEBUG FLAP: /' >> "$OUT_LOG" fi +# --------------------------------------------------------------------- +# Send one syslog message (wifidebug-style tag), after random delay +# --------------------------------------------------------------------- + +# Hostname (as in wifidebug) +HOSTNAME="$(cat /proc/sys/kernel/hostname 2>/dev/null)" +[ -z "$HOSTNAME" ] && HOSTNAME="$(hostname 2>/dev/null)" +[ -z "$HOSTNAME" ] && HOSTNAME="unknown" + +# Random delay 3..20 seconds (right before sending) +delay="$(hexdump -n2 -e '/2 "%u"' /dev/urandom 2>/dev/null)" +case "$delay" in (''|*[!0-9]*) delay=0;; esac +delay=$(( (delay % 18) + 3 )) +sleep "$delay" + +# Exact stats payload (same fields as file line, no extra prefixes) +MSG="slice_lines=$slice_lines unique_macs_seen_any=$unique_macs_seen_any unique_macs_authenticated=$unique_macs_authenticated auth_events_total=$auth_events_total unique_macs_associated=$unique_macs_associated assoc_events_total=$assoc_events_total unique_macs_disassociated=$unique_macs_disassociated disassoc_events_total=$disassoc_events_total full_sessions_total=$full_sessions_total avg_session_length=$avg_session_length early_drop_sessions_total=$early_drop_sessions_total auth_to_assoc_time_ms_samples=$auth_to_assoc_time_ms_samples reason_code_events_1=$reason_code_events_1 reason_code_events_2=$reason_code_events_2 reason_code_events_3=$reason_code_events_3 reason_code_events_4=$reason_code_events_4 reason_code_events_5=$reason_code_events_5 reason_code_events_6=$reason_code_events_6 reason_code_events_7=$reason_code_events_7 reason_code_events_8=$reason_code_events_8 unique_macs_flap_ath0_to_ath1=$unique_macs_flap_ath0_to_ath1 flap_events_total_ath0_to_ath1=$flap_events_total_ath0_to_ath1 unique_macs_flap_ath1_to_ath0=$unique_macs_flap_ath1_to_ath0 flap_events_total_ath1_to_ath0=$flap_events_total_ath1_to_ath0" + +logger -t "connstats|${HOSTNAME}" "$MSG" 2>/dev/null + # Update state to current end-of-file line count and inode { echo "inode=$cur_inode"