| #!/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 |