15dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes#!/bin/sh 25dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes 35dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes# Check how network syscalls are traced. 45dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes 55dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes. "${srcdir=.}/init.sh" 65dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes 75dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughescheck_prog grep 85dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughescheck_prog rm 95dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes 105dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughesrm -f $LOG.* 115dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes 125dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes./net-accept-connect || 135dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes fail_ 'net-accept-connect failed' 145dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes 155dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughesargs="-tt -ff -o $LOG -enetwork ./net-accept-connect" 165dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes$STRACE $args || 175dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes fail_ "strace $args failed" 185dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes 195dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes"$srcdir"/../strace-log-merge $LOG > $LOG || { 205dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes cat $LOG 215dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes fail_ 'strace-log-merge failed' 225dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes} 235dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes 245dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughesrm -f $LOG.* 255dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes 265dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughesgrep_log() 275dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes{ 285dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes local syscall="$1"; shift 295dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes local prefix='[1-9][0-9]* +[0-9]+:[0-9]+:[0-9]+\.[0-9]+ +' 305dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes 315dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes LC_ALL=C grep -E -x "$prefix$syscall$@" $LOG > /dev/null || { 325dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes cat $LOG 335dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes fail_ "strace -enetwork failed to trace \"$syscall\" properly" 345dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes } 355dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes} 365dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes 375dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughesgrep_log socket '\(PF_(LOCAL|UNIX|FILE), SOCK_STREAM, 0\) += 0' 385dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughesgrep_log socket '\(PF_(LOCAL|UNIX|FILE), SOCK_STREAM, 0\) += 1' 395dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughesgrep_log bind '\(0, \{sa_family=AF_(LOCAL|UNIX|FILE), sun_path="local-stream"\}, 15\) += 0' 405dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughesgrep_log listen '\(0, 5\) += 0' 415dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughesgrep_log getsockname '\(0, \{sa_family=AF_(LOCAL|UNIX|FILE), sun_path="local-stream"\}, \[15\]\) += 0' 425dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughesgrep_log accept '\(0, \{sa_family=AF_(LOCAL|UNIX|FILE), NULL\}, \[2\]\) += 1' 435dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughesgrep_log connect '\(1, \{sa_family=AF_(LOCAL|UNIX|FILE), sun_path="local-stream"\}, 15\) += 0' 445dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughes 455dec78d0c2663930cd1bbcecbbcee47f68bc52f3Elliott Hughesexit 0 46