lib/tcpdump
2bbc9bbb
 #!/bin/bash
 #
 # lib/tcpdump
 # Functions to start and stop a tcpdump
 
 # Dependencies:
 #
 # - ``functions`` file
 
 # ``stack.sh`` calls the entry points in this order:
 #
 # - start_tcpdump
 # - stop_tcpdump
 
 # Save trace setting
 _XTRACE_TCPDUMP=$(set +o | grep xtrace)
 set +o xtrace
 
 TCPDUMP_OUTPUT=${TCPDUMP_OUTPUT:-$LOGDIR/tcpdump.pcap}
 
 # e.g. for iscsi
 #  "-i any tcp port 3260"
 TCPDUMP_ARGS=${TCPDUMP_ARGS:-""}
 
 # start_tcpdump() - Start running processes
 function start_tcpdump {
     # Run a tcpdump with given arguments and save the packet capture
     if is_service_enabled tcpdump; then
         if [[ -z "${TCPDUMP_ARGS}" ]]; then
             die $LINENO "The tcpdump service requires TCPDUMP_ARGS to be set"
         fi
         touch ${TCPDUMP_OUTPUT}
         run_process tcpdump "/usr/sbin/tcpdump -w $TCPDUMP_OUTPUT $TCPDUMP_ARGS" root root
     fi
 }
 
 # stop_tcpdump() stop tcpdump process
 function stop_tcpdump {
     stop_process tcpdump
 }
 
 # Restore xtrace
 $_XTRACE_TCPDUMP