12a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov# 2c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# 3c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# Copyright (C) 2012 The Android Open Source Project 4c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# 5c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# Licensed under the Apache License, Version 2.0 (the "License"); 6c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# you may not use this file except in compliance with the License. 7c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# You may obtain a copy of the License at 8c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# 9c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# http://www.apache.org/licenses/LICENSE-2.0 10c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# 11c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# Unless required by applicable law or agreed to in writing, software 12c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# distributed under the License is distributed on an "AS IS" BASIS, 13c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# See the License for the specific language governing permissions and 15c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# limitations under the License. 16c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu# 172a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov# 182a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov# Script that turns on useful logging for wpa_supplicant 192a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 202a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 212a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin PetkovWPA_LEVEL_LIST="excessive msgdump debug info warning error" 222a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 232a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkovusage(){ 242a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov echo " 252a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin PetkovUsage: wpa_debug [level]|[--reset]|[--help][--list_valid_levels] 262a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 272a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov wpa_debug sets the debug level of wpa_supplicant. 282a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov Current debug level is displayed if no parameters are provided 292a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 302a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov level: The level is the level we want to set the debugging level to. The valid 312a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov levels can be viewed by using the --list_valid_levels flag 322a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 332a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov eg: wpa_debug msgdump 342a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov Sets the wpa_supplicant logging level to msgdump 352a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 362a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov --reset : Resets the level to 'info' 372a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 382a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov --help : Displays this output 392a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 402a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov --list_valid_levels: Displays the valid levels wpa_supplicant can be set to 412a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov" 422a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov} 432a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 442a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin PetkovCMD_FLAG="<<cmd>>" 452a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 462a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin PetkovWPA_CMD="dbus-send --system --dest=fi.w1.wpa_supplicant1 --print-reply /fi/w1/wpa_supplicant1 org.freedesktop.DBus.Properties.$CMD_FLAG string:fi.w1.wpa_supplicant1 string:DebugLevel" 472a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 48596ca7048f12d67c438cd8c4540099d96cabe9b3Roshan Pius# Returns whether or not $2 exists in $1 where $1 is a space 492a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov# separated list of tags 502a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkovis_valid_tag(){ 51596ca7048f12d67c438cd8c4540099d96cabe9b3Roshan Pius expr " $1 " : ".* $2 .*"> /dev/null 522a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov} 532a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 542a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkovget_wpa_logging(){ 552a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov set_cmd="`echo $WPA_CMD | sed "s/$CMD_FLAG/Get/"`" 56596ca7048f12d67c438cd8c4540099d96cabe9b3Roshan Pius $set_cmd | sed -e '/string/!d; s/[[:space:]]\+/ /g' | cut -d "\"" -f 2 572a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov} 582a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 592a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkovset_wpa_logging(){ 602a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov if ! is_valid_tag "$WPA_LEVEL_LIST" "$1"; then 612a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov return 1 622a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov fi 632a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 64453df54542b1f597b30d4f7ded66c6b161b0bc5cPaul Stewart if [ $1 = `get_wpa_logging` ]; then 652a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov return 1 662a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov fi 672a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 682a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov set_cmd="`echo $WPA_CMD | sed "s/$CMD_FLAG/Set/"` variant:string:$1" 692a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov $set_cmd 702a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov} 712a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 722a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 732a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkovif [ $# -gt 0 ]; then 74453df54542b1f597b30d4f7ded66c6b161b0bc5cPaul Stewart for param in "$@"; do 752a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov case $param in 762a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov --reset) 772a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov set_wpa_logging "info" 782a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov ;; 792a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov --list*) 802a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov echo "Valid levels are: `echo $WPA_LEVEL_LIST| sed 's/ /, /g'`" 812a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov exit 0 822a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov ;; 832a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov --help|--*) 842a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov usage 852a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov exit 0 862a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov ;; 872a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov *) 882a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov old_level="`get_wpa_logging`" 892a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov set_wpa_logging "$param" 902a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov echo "Old wpa level: $old_level" 912a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov ;; 922a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov esac 932a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov done 942a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkovfi 952a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 962a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkovecho "Current wpa level: `get_wpa_logging`" 972a0614ea9d6d6406f8647a0d8dc4ed4c47cbb222Darin Petkov 98