This file is indexed.

/usr/share/whereami/tests/testappassive is in whereami 0.3.34-0.3.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/bin/bash
#
# $Id: testappassive,v 1.1 2005/02/12 23:28:24 andrew Exp $
#
# by Andrew McMillan, Catalyst IT Ltd, (c) 2004 licensed
# for use under the GPL version 2
# Altered by Matthew Grant <grantma@anathoth.gen.nz>, (c) 2004
#
# This script uses "iwlist ${INTERFACE} scan" to see if we can connect to
# a useful local WLAN.
#
###############################################
# NOTE:  This script is something of a work in progress.  I can't have experience
# with all possible WLAN hardware, so if you need help getting it working with what
# you happen to use, feel free to call upon me.
###############################################
#
# Parameters:
#   -  first form: [<interface>,]scan
#   - second form: <ESSID pattern>
#   -  third form: [<interface>,]<ESSID pattern>
#
# <interface> 	Interface to test.  If omitted, use INTERFACE variable 
#		(from detect.conf)
#
# scan       	Normally we just use the last scan details (if they're less 
#		than 10 secs old), but sometimes we may want to force a scan.
#
# <ESSID pattern>  A pattern that should match the ESSID we are looking for.
#
# Environment variables:
#
# INTERFACE	Default interface name to use if not specified
# DEBUGWHEREAMI Turn on debugging output (0 for debug msgs, 1 for execution tracing)
# 
# Examples:
#     testapscan eth1,scan
#     set INTERFACE eth1
#     testapscan scan
#     testapscan eth1,othercap
#     testapscan friendap
#     set INTERFACE ath0
#     testapscan mywlan
#

STATEDIR=${STATEDIR:-"/var/lib/whereami"}
WHEREAMILOCK=$LOCKDIR/whereami.started

######################################################
# Perform the actual scan, which gets all nearby AP
# details into a file we will use for subsequent calls
######################################################
scan_for_ap()
{
  IFSTATE="`ifconfig | egrep \"^${INTERFACE}[\t ]\"`"
  if [ "$IFSTATE" = "" ] ; then
    ifconfig ${INTERFACE} up
    # We seem to need a sleep here to accumulate the
    # scan data - for madwifi, at least.
    sleep 5
  fi

  /sbin/iwlist ${INTERFACE} scan >${STATEFILE}

  # Be a tidy kiwi, and put the interface back how we found it...
  if [ "$IFSTATE" = "" ] ; then
    ifconfig ${INTERFACE} down
  fi
}

######################################################
# Utility to do pattern match, with awkward quoting
######################################################
ap_pattern_match()
{
  egrep "ESSID:\"$1\"" "${STATEFILE}"
}

######################################################
# Test if there is an AP in our scan that matches
######################################################
test_which_ap()
{
  ap_pattern_match "$1" >/dev/null
}

# Turn on execution tracing, for debugging...
[ -n "$DEBUGWHEREAMI" ] && set -o xtrace

PATTERN=""
ACTION="test"
INTERFACE=${INTERFACE:-eth0}
case $1 in
  *,scan)
    # First form
    INTERFACE=${1/,scan}
    ACTION="scan"
    ;;
  scan)
    # First form
    INTERFACE=${INTERFACE:-eth0}
    ACTION="scan"
    ;;
  *,*)
    # Third form
    INTERFACE=${1/,*}
    PATTERN=${1/*,}
    ;;
  *)
    # Second form
    PATTERN="$1"
    ;;
esac

STATEFILE=$STATEDIR/iwlist.$INTERFACE
mkdir -p $STATEDIR

STATUS=1
if [ "$ACTION" = "scan" ] ; then
  scan_for_ap
  STATUS=$?
fi

if [ "$PATTERN" != "" ];then
  test_which_ap "$PATTERN"
  STATUS=$?
fi

exit $STATUS