|
1.
標準フック関数
start/stop操作に関連して呼び出される4つの関数が定義できます。
それらの関数は、一つの関数で複数のアダプタを制御できるように、インターフェース名が最初に渡されて呼び出されます。
対象のインターフェースの有効化処理や無効化処理が続行可能であることを示すには、preup()とpredown()関数の戻り値は、0 (成功)でなければなりません。
preup()がゼロ以外の値を返すと、インターフェースの有効化処理は中断されます。
predown()がゼロ以外の値を返すと、インターフェースの無効化処理の続行は認められません。
postup()とpostdown()関数の戻り値は無視されます。失敗を示す場合は何もすることがないからです。
${IFACE}には起動/停止しようとしているインターフェースが設定されます。
${IFVAR}はbashが許容する変数名に変換された${IFACE}です。
コード表示 1.1: pre/post up/down関数の例 |
preup() {
if ethtool ${IFACE} | grep -q 'Link detected: no'; then
ewarn "No link on ${IFACE}, aborting configuration"
return 1
fi
return 0
}
predown() {
if is_net_fs /; then
eerror "root filesystem is network mounted -- can't stop ${IFACE}"
return 1
fi
return 0
}
postup() {
return 0
}
postdown() {
return 0
}
|
1.
Wireless Toolsのフック関数
注意:
WPA Supplicantとの組み合わせでは動作しません。- ですが${ESSID}と${ESSIDVAR}変数はpostup()関数で利用可能です。
|
associate関数に関連して呼び出される2つの関数が定義できます。
それらの関数は、一つの関数で複数のアダプタを制御できるように、インターフェース名が最初に渡されて呼び出されます。
対象のインターフェースの有効化や無効化処理が続行可能であることを示すには、preassociate()関数の戻り値は、0 (成功)でなければなりません。
preassociate()ゼロ以外の値を返すと、インターフェースの有効化処理は中断されます。
postassociate()関数の戻り値は無視されます。失敗を示す場合は何もすることがないからです。
${ESSID}は接続しようしているAPの正確なESSIDが設定されます。
${ESSIDVAR}はbashが許容する変数名に変換された${ESSID}です。
コード表示 1.1: pre/post associate関数 |
preassociate() {
local user pass
eval user="\$\{leap_user_${ESSIDVAR}\}"
eval pass="\$\{leap_pass_${ESSIDVAR}\}"
if [[ -n ${user} && -n ${pass} ]]; then
if [[ ! -x /opt/cisco/bin/leapscript ]]; then
eend "For LEAP support, please emerge net-misc/cisco-aironet-client-utils"
return 1
fi
einfo "Waiting for LEAP Authentication on "${ESSID//\\\\//}""
if /opt/cisco/bin/leapscript ${user} ${pass} | grep -q 'Login incorrect'; then
ewarn "Login Failed for ${user}"
return 1
fi
fi
return 0
}
postassociate() {
return 0
}
|
注意:
${ESSID}と${ESSIDVAR}はpredown()とpostdown()関数では利用できません。
|
|