|
|
|
@ -19,7 +19,8 @@ |
|
|
|
|
# |
|
|
|
|
# ---------------------------------------------------------------------- |
|
|
|
|
# |
|
|
|
|
# Copyleft (c) KatolaZ (katolaz@freaknet.org) -- (2016, 2017) |
|
|
|
|
# Copyleft (C) Vincenzo "KatolaZ" Nicosia (katolaz@freaknet.org) -- |
|
|
|
|
# (2016, 2017) |
|
|
|
|
# |
|
|
|
|
# |
|
|
|
|
|
|
|
|
@ -55,6 +56,14 @@ HARD_DEPS="ip dhclient dialog netstat" |
|
|
|
|
|
|
|
|
|
SOFT_DEPS="wpa_cli wpa_supplicant" |
|
|
|
|
|
|
|
|
|
## |
|
|
|
|
## Optional dependencies. The script will check if those dependencies |
|
|
|
|
## exist, and if they do, will set a variable HAS_OPTS which contains |
|
|
|
|
## the names of the commands actually found |
|
|
|
|
## |
|
|
|
|
|
|
|
|
|
OPT_DEPS="host arping traceroute netstat pastebinit" |
|
|
|
|
|
|
|
|
|
################################# |
|
|
|
|
|
|
|
|
|
##################################### |
|
|
|
@ -226,11 +235,14 @@ check_shell(){ |
|
|
|
|
## |
|
|
|
|
## - check if the current shell is supported through check_shell |
|
|
|
|
## |
|
|
|
|
## - each command in HARD_DEPS MUST exists, or the script exits |
|
|
|
|
## - each command in HARD_DEPS MUST exist, or the script exits |
|
|
|
|
## |
|
|
|
|
## - each command in SOFT_DEPS SHOULD exists, od the script will log a |
|
|
|
|
## - each command in SOFT_DEPS SHOULD exist, or the script will log a |
|
|
|
|
## warning |
|
|
|
|
## |
|
|
|
|
## - each command in OPT_DEPS MIGHT exist, and if it does its name is |
|
|
|
|
## included in the variable "HAS_OPTS" |
|
|
|
|
## |
|
|
|
|
|
|
|
|
|
##function |
|
|
|
|
check_deps(){ |
|
|
|
@ -239,19 +251,29 @@ check_deps(){ |
|
|
|
|
|
|
|
|
|
for h in ${HARD_DEPS}; do |
|
|
|
|
_W=$(which ${h}) |
|
|
|
|
if [ -z $_W ]; then |
|
|
|
|
if [ -z ${_W} ]; then |
|
|
|
|
echo "Error: required command \"${h}\" not found. Exiting..." |
|
|
|
|
exit 1 |
|
|
|
|
fi |
|
|
|
|
log "check_deps" "${h}...found" |
|
|
|
|
log "check_deps" "NOTICE: required command '${h}'...found" |
|
|
|
|
done |
|
|
|
|
|
|
|
|
|
for s in ${SOFT_DEPS}; do |
|
|
|
|
_S=$(which ${s}) |
|
|
|
|
if [ -z $_S ]; then |
|
|
|
|
log "check_deps" "WARNING: ${s} not found! Some functions might not work properly" |
|
|
|
|
if [ -z ${_S} ]; then |
|
|
|
|
log "check_deps" "WARNING: suggested command '${s}' not found! Some functions might not work properly" |
|
|
|
|
fi |
|
|
|
|
done |
|
|
|
|
|
|
|
|
|
HAS_OPTS="" |
|
|
|
|
for o in ${OPT_DEPS}; do |
|
|
|
|
_O=$(which ${o}) |
|
|
|
|
if [ -n ${_O} ]; then |
|
|
|
|
HAS_OPTS=" ${HAS_OPTS} ${o} " |
|
|
|
|
log "check_deps" "NOTICE: optional command '${o}'...found" |
|
|
|
|
fi |
|
|
|
|
done |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
## |
|
|
|
@ -430,9 +452,9 @@ config_ethernet_dhcp(){ |
|
|
|
|
##local |
|
|
|
|
DEVNAME=$1 |
|
|
|
|
|
|
|
|
|
eval "${DIALOG} --infobox 'Running \"dhclient ${DEVNAME}\"' ${INFO_HEIGHT} ${INFO_WIDTH}" |
|
|
|
|
dhclient -r ${DEVNAME} |
|
|
|
|
dhclient ${DEVNAME} |
|
|
|
|
eval "${DIALOG} --msgbox 'Running \"dhclient ${DEVNAME}\"' ${INFO_HEIGHT} ${INFO_WIDTH}" |
|
|
|
|
dhclient -r ${DEVNAME} |
|
|
|
|
dhclient ${DEVNAME} |
|
|
|
|
show_device_conf ${DEVNAME} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -855,7 +877,7 @@ wifi_load_file(){ |
|
|
|
|
if [ $? -eq 0 ]; then |
|
|
|
|
SEL_FILE=$(cat ${TMPFILE}) |
|
|
|
|
else |
|
|
|
|
eval "${DIALOG} --clear --infobox 'WPA_FILE was not modified' \ |
|
|
|
|
eval "${DIALOG} --clear --msgbox 'WPA_FILE was not modified' \ |
|
|
|
|
${INFO_HEIGHT} ${INFO_WIDTH}" |
|
|
|
|
return |
|
|
|
|
fi |
|
|
|
@ -870,12 +892,12 @@ wifi_load_file(){ |
|
|
|
|
wifi_restart_wpa ${DEVNAME} ${WPA_FILE} |
|
|
|
|
fi |
|
|
|
|
else |
|
|
|
|
eval "${DIALOG} --clear --infobox 'Invalid file name!\n WPA_FILE *not* changed' \ |
|
|
|
|
eval "${DIALOG} --clear --msgbox 'Invalid file name!\n WPA_FILE *not* changed' \ |
|
|
|
|
${WINDOW_HEIGHT} ${WINDOW_WIDTH}" |
|
|
|
|
return |
|
|
|
|
fi |
|
|
|
|
else |
|
|
|
|
eval "${DIALOG} --clear --infobox 'WPA_FILE was not modified' \ |
|
|
|
|
eval "${DIALOG} --clear --msgbox 'WPA_FILE was not modified' \ |
|
|
|
|
${INFO_HEIGHT} ${INFO_WIDTH}" |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
@ -957,22 +979,20 @@ config_wifi(){ |
|
|
|
|
configure_device(){ |
|
|
|
|
|
|
|
|
|
##local |
|
|
|
|
DEVNAME=$1 |
|
|
|
|
|
|
|
|
|
case ${DEVNAME} in |
|
|
|
|
eth*) |
|
|
|
|
config_ethernet ${DEVNAME} |
|
|
|
|
;; |
|
|
|
|
wlan*) |
|
|
|
|
config_wifi ${DEVNAME} |
|
|
|
|
;; |
|
|
|
|
*) |
|
|
|
|
eval "${DIALOG} --clear --title 'ERROR' --msgbox \ |
|
|
|
|
'${DEVNAME}: Unsupported device type' \ |
|
|
|
|
${WINDOW_HEIGHT} ${WINDOW_WIDTH}" |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
DEVNAME=$1 |
|
|
|
|
|
|
|
|
|
## Check if the network device is a wifi -- WEAK |
|
|
|
|
IS_WIFI=$(iwconfig ${DEVNAME} 2>/dev/null | grep -c "IEEE 802.11") |
|
|
|
|
|
|
|
|
|
case ${IS_WIFI} in |
|
|
|
|
0) |
|
|
|
|
config_ethernet ${DEVNAME} |
|
|
|
|
;; |
|
|
|
|
*) |
|
|
|
|
config_wifi ${DEVNAME} |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1002,8 +1022,12 @@ show_device_menu(){ |
|
|
|
|
|
|
|
|
|
##local |
|
|
|
|
DEVNAME=$1 |
|
|
|
|
|
|
|
|
|
while true; do |
|
|
|
|
eval "${DIALOG} --clear --cancel-label 'Up' --menu 'Device: ${DEVNAME}' \ |
|
|
|
|
DEV_STATUS=$(ip -o link | cut -d " " -f 2,9 | grep -E "^${DEVNAME}: " | cut -d " " -f 2) |
|
|
|
|
log "show_device_menu" "DEVNAME: ${DEVNAME} DEV_STATUS: ${DEV_STATUS}" |
|
|
|
|
eval "${DIALOG} --clear --cancel-label 'Up' --menu\ |
|
|
|
|
'Device: ${DEVNAME}\nStatus: ${DEV_STATUS}' \ |
|
|
|
|
${WINDOW_HEIGHT} ${WINDOW_WIDTH} 8 \ |
|
|
|
|
'View' 'View current configuration' \ |
|
|
|
|
'Conf' 'Configure device' \ |
|
|
|
@ -1082,18 +1106,27 @@ show_info(){ |
|
|
|
|
|
|
|
|
|
cat <<EOF > ${TMPFILE} |
|
|
|
|
|
|
|
|
|
== setnet.sh 0.1 == |
|
|
|
|
-+- setnet.sh ${VERSION} -+- |
|
|
|
|
|
|
|
|
|
setnet.sh is a simple state-less tool to manage and configure network |
|
|
|
|
interfaces. It is a shell wrapper around the functionalities of "ip", |
|
|
|
|
"dhclient", "wpa_cli", and can be used to configure network |
|
|
|
|
connections via Ethernet/Wi-Fi interfaces. |
|
|
|
|
interfaces. It is a shell wrapper around the functionalities of |
|
|
|
|
standard command-line tools, including "ip", "dhclient", "wpa_cli", |
|
|
|
|
etc., and can be used to configure network connections via |
|
|
|
|
Ethernet/Wi-Fi interfaces. |
|
|
|
|
|
|
|
|
|
Both Static and DHCP-based IP configuration is supported. |
|
|
|
|
Both Static and DHCP-based IP configuration are supported. |
|
|
|
|
|
|
|
|
|
At the moment, only WPA-PSK and open (no key) Wi-Fi connections are |
|
|
|
|
available. |
|
|
|
|
|
|
|
|
|
For more information, please visit the webpage of the project: |
|
|
|
|
|
|
|
|
|
http://kalos.mine.nu/setnet/ |
|
|
|
|
|
|
|
|
|
Please report bugs at: |
|
|
|
|
|
|
|
|
|
https://git.devuan.org/KatolaZ/setnet |
|
|
|
|
|
|
|
|
|
EOF |
|
|
|
|
eval "${DIALOG} --clear --cr-wrap --textbox ${TMPFILE} ${WINDOW_HEIGHT} ${WINDOW_WIDTH}" |
|
|
|
|
return |
|
|
|
@ -1104,9 +1137,15 @@ show_copyright(){ |
|
|
|
|
|
|
|
|
|
cat <<EOF > ${TMPFILE} |
|
|
|
|
|
|
|
|
|
== setnet.sh 0.1 == |
|
|
|
|
-+- setnet.sh ${VERSION} -+- |
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------- |
|
|
|
|
|
|
|
|
|
Copyleft (C) Vincenzo "KatolaZ" Nicosia <katolaz@freaknet.org> |
|
|
|
|
2016, 2017 |
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------- |
|
|
|
|
|
|
|
|
|
(c) KatolaZ (katolaz@freaknet.org) -- 2016, 2017 |
|
|
|
|
|
|
|
|
|
EOF |
|
|
|
|
eval "${DIALOG} --clear --cr-wrap --textbox ${TMPFILE} ${WINDOW_HEIGHT} ${WINDOW_WIDTH}" |
|
|
|
@ -1119,7 +1158,7 @@ show_license(){ |
|
|
|
|
|
|
|
|
|
cat <<EOF > ${TMPFILE} |
|
|
|
|
|
|
|
|
|
== setnet.sh 0.1 == |
|
|
|
|
-+- setnet.sh ${VERSION} -+- |
|
|
|
|
|
|
|
|
|
This program is free software: you can redistribute it and/or modify |
|
|
|
|
it under the terms of the GNU General Public License as published by |
|
|
|
@ -1134,11 +1173,12 @@ General Public License for more details. |
|
|
|
|
You should have received a copy of the GNU General Public License |
|
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
|
|
|
|
|
|
|
|
---------------------------------------------------------------------- |
|
|
|
|
-------------------------------------------------------------------- |
|
|
|
|
|
|
|
|
|
(c) KatolaZ <katolaz@freaknet.org> -- 2016, 2017 |
|
|
|
|
Copyleft (C) Vincenzo "KatolaZ" Nicosia <katolaz@freaknet.org> |
|
|
|
|
2016, 2017 |
|
|
|
|
|
|
|
|
|
---------------------------------------------------------------------- |
|
|
|
|
-------------------------------------------------------------------- |
|
|
|
|
|
|
|
|
|
EOF |
|
|
|
|
eval "${DIALOG} --clear --cr-wrap --textbox ${TMPFILE} ${WINDOW_HEIGHT} ${WINDOW_WIDTH}" |
|
|
|
@ -1176,9 +1216,32 @@ about_menu(){ |
|
|
|
|
done |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
##function |
|
|
|
|
notfound(){ |
|
|
|
|
|
|
|
|
|
CMDNAME=$1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
eval "${DIALOG} --clear --msgbox 'Sorry! Commmand ${CMDNAME} not found!'" \ |
|
|
|
|
${INFO_HEIGHT} ${INFO_WIDTH} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##function |
|
|
|
|
netdiag_DNS(){ |
|
|
|
|
|
|
|
|
|
DUMPFILE=$1 |
|
|
|
|
|
|
|
|
|
if [ -n "${DUMPFILE}" ]; then |
|
|
|
|
## Dump to file |
|
|
|
|
printf "\n======== DNS Configuration (/etc/resolv.conf)\n" >> ${DUMPFILE} |
|
|
|
|
cat /etc/resolv.conf >> ${DUMPFILE} |
|
|
|
|
echo "==================================" >> ${DUMPFILE} |
|
|
|
|
return 0 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
## Dump to dialog |
|
|
|
|
NAMESERVERS=$(grep '^nameserver' /etc/resolv.conf) |
|
|
|
|
MSG_STR="Configured name servers in /etc/resolv.conf ==\n\n${NAMESERVERS}" |
|
|
|
|
|
|
|
|
@ -1187,11 +1250,50 @@ netdiag_DNS(){ |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
##function |
|
|
|
|
netdiag_resolver(){ |
|
|
|
|
|
|
|
|
|
DUMPFILE=$1 |
|
|
|
|
|
|
|
|
|
if [ -n "${DUMPFILE}" ]; then |
|
|
|
|
## Dump to file |
|
|
|
|
printf "\n======== Resolver Configuration (/etc/nsswitch.conf)\n" >> ${DUMPFILE} |
|
|
|
|
grep -v '^#' /etc/nsswitch.conf >> ${DUMPFILE} |
|
|
|
|
echo "==================================" >> ${DUMPFILE} |
|
|
|
|
return 0 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
## Dump to dialog |
|
|
|
|
RESOLVER=$(grep -v '^#' /etc/nsswitch.conf) |
|
|
|
|
|
|
|
|
|
eval "${DIALOG} --clear --title 'Resolver configuration (/etc/nsswitch.conf)' \ |
|
|
|
|
--msgbox '${RESOLVER}' "\ |
|
|
|
|
${WINDOW_HEIGHT} ${WINDOW_WIDTH} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##function |
|
|
|
|
netdiag_routes(){ |
|
|
|
|
|
|
|
|
|
ROUTES=$(netstat -rn > ${TMPFILE} ) |
|
|
|
|
DUMPFILE=$1 |
|
|
|
|
|
|
|
|
|
HAS_NETSTAT=$(echo ${HAS_OPTS} | grep -c " netstat ") |
|
|
|
|
if [ ${HAS_NETSTAT} -ne 1 ]; then |
|
|
|
|
notfound "nestat" |
|
|
|
|
return |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
if [ -n "${DUMPFILE}" ]; then |
|
|
|
|
## Dump to file |
|
|
|
|
printf "\n======== Routing table\n" >> ${DUMPFILE} |
|
|
|
|
netstat -rn >> ${DUMPFILE} |
|
|
|
|
echo "==================================" >> ${DUMPFILE} |
|
|
|
|
return 0 |
|
|
|
|
fi |
|
|
|
|
## Dump to dialog |
|
|
|
|
ROUTES=$(netstat -rn > ${TMPFILE} ) |
|
|
|
|
|
|
|
|
|
eval "${DIALOG} --clear --no-collapse --title 'Routing table (netstat -rn) [arrows to scroll]'" \ |
|
|
|
|
"--tab-correct --tab-len 4 --textbox ${TMPFILE} "\ |
|
|
|
|
${LARGE_HEIGHT} ${LARGE_WIDTH} |
|
|
|
@ -1200,6 +1302,17 @@ netdiag_routes(){ |
|
|
|
|
##function |
|
|
|
|
netdiag_ARP(){ |
|
|
|
|
|
|
|
|
|
DUMPFILE=$1 |
|
|
|
|
log "netdiag_ARP" "DUMPFILE: '${DUMPFILE}'" |
|
|
|
|
if [ -n "${DUMPFILE}" ]; then |
|
|
|
|
## Dump to file |
|
|
|
|
printf "\n======== ARP table\n" >> "${DUMPFILE}" |
|
|
|
|
cat /proc/net/arp >> "${DUMPFILE}" |
|
|
|
|
echo "==================================" >> ${DUMPFILE} |
|
|
|
|
return 0 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
# Dump to dialog |
|
|
|
|
ARP=$(cat /proc/net/arp >${TMPFILE}) |
|
|
|
|
|
|
|
|
|
eval "${DIALOG} --clear --no-collapse --title 'ARP table (/proc/net/arp) [arrows to scroll]'" \ |
|
|
|
@ -1210,8 +1323,26 @@ netdiag_ARP(){ |
|
|
|
|
##function |
|
|
|
|
netdiag_connections(){ |
|
|
|
|
|
|
|
|
|
SERV=$(netstat -tnp | sed -r -e 's/$/\n/g' > ${TMPFILE}) |
|
|
|
|
DUMPFILE=$1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HAS_NETSTAT=$(echo ${HAS_OPTS} | grep -c " netstat ") |
|
|
|
|
if [ ${HAS_NETSTAT} -ne 1 ]; then |
|
|
|
|
notfound "nestat" |
|
|
|
|
return |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
if [ -n "${DUMPFILE}" ]; then |
|
|
|
|
## Dump to file |
|
|
|
|
printf "\n======== Active Network Connections\n" >> ${DUMPFILE} |
|
|
|
|
netstat -tnp | sed -r -e 's/$/\n/g' >> ${DUMPFILE} |
|
|
|
|
echo "==================================" >> ${DUMPFILE} |
|
|
|
|
return 0 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
## Dump to dialog |
|
|
|
|
SERV=$(netstat -tnp | sed -r -e 's/$/\n/g' > ${TMPFILE}) |
|
|
|
|
|
|
|
|
|
eval "${DIALOG} --clear --no-collapse "\ |
|
|
|
|
" --title 'Active network connections (netstat -tnp) [arrows to scroll]'" \ |
|
|
|
|
"--tab-correct --tab-len 4 --textbox ${TMPFILE} "\ |
|
|
|
@ -1222,6 +1353,23 @@ netdiag_connections(){ |
|
|
|
|
##function |
|
|
|
|
netdiag_services(){ |
|
|
|
|
|
|
|
|
|
DUMPFILE=$1 |
|
|
|
|
|
|
|
|
|
HAS_NETSTAT=$(echo ${HAS_OPTS} | grep -c " netstat ") |
|
|
|
|
if [ ${HAS_NETSTAT} -ne 1 ]; then |
|
|
|
|
notfound "nestat" |
|
|
|
|
return |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
if [ -n "${DUMPFILE}" ]; then |
|
|
|
|
## Dump to file |
|
|
|
|
printf "\n======== Active network services\n" >> ${DUMPFILE} |
|
|
|
|
netstat -ltnp | sed -r -e 's/$/\n/g' >> ${DUMPFILE} |
|
|
|
|
echo "==================================" >> ${DUMPFILE} |
|
|
|
|
return 0 |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SERV=$(netstat -ltnp | sed -r -e 's/$/\n/g' > ${TMPFILE}) |
|
|
|
|
|
|
|
|
|
eval "${DIALOG} --clear --no-collapse "\ |
|
|
|
@ -1234,6 +1382,11 @@ netdiag_services(){ |
|
|
|
|
##function |
|
|
|
|
netdiag_ping(){ |
|
|
|
|
|
|
|
|
|
HAS_PING=$(echo ${HAS_OPTS} | grep -c " ping ") |
|
|
|
|
if [ ${HAS_PING} -ne 1 ]; then |
|
|
|
|
notfound "ping" |
|
|
|
|
return |
|
|
|
|
fi |
|
|
|
|
eval "${DIALOG} --insecure --inputbox 'Host or IP to ping:' \ |
|
|
|
|
${INFO_HEIGHT} ${INFO_WIDTH}" 2> ${TMPFILE} |
|
|
|
|
|
|
|
|
@ -1258,6 +1411,11 @@ netdiag_ping(){ |
|
|
|
|
##function |
|
|
|
|
netdiag_traceroute(){ |
|
|
|
|
|
|
|
|
|
HAS_TRACERT=$(echo ${HAS_OPTS} | grep -c " traceroute ") |
|
|
|
|
if [ ${HAS_TRACERT} -ne 1 ]; then |
|
|
|
|
notfound "traceroute" |
|
|
|
|
return |
|
|
|
|
fi |
|
|
|
|
eval "${DIALOG} --insecure --inputbox 'Host or IP to trace:' \ |
|
|
|
|
${INFO_HEIGHT} ${INFO_WIDTH}" 2> ${TMPFILE} |
|
|
|
|
|
|
|
|
@ -1281,7 +1439,13 @@ netdiag_traceroute(){ |
|
|
|
|
|
|
|
|
|
##function |
|
|
|
|
netdiag_query(){ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HAST_HOST=$(echo ${HAS_OPTS} | grep -c " host ") |
|
|
|
|
if [ $? -ne 1 ]; then |
|
|
|
|
notfound "host" |
|
|
|
|
return |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
eval "${DIALOG} --insecure --inputbox 'Hostname or IP to query:' \ |
|
|
|
|
${INFO_HEIGHT} ${INFO_WIDTH}" 2> ${TMPFILE} |
|
|
|
|
|
|
|
|
@ -1303,6 +1467,20 @@ netdiag_query(){ |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
##function |
|
|
|
|
netdiag_devices(){ |
|
|
|
|
|
|
|
|
|
DUMPFILE=$1 |
|
|
|
|
|
|
|
|
|
if [ -n "${DUMPFILE}" ]; then |
|
|
|
|
printf "\n======== Network Devices\n" >> ${DUMPFILE} |
|
|
|
|
ip addr >> ${DUMPFILE} |
|
|
|
|
echo "==================================" >> ${DUMPFILE} |
|
|
|
|
return 0 |
|
|
|
|
fi |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## |
|
|
|
|
## Main menu for network diagnostics |
|
|
|
@ -1319,6 +1497,7 @@ netdiag_menu(){ |
|
|
|
|
'DNS' 'List DNS servers' \ |
|
|
|
|
'Ping' 'Ping a host' \ |
|
|
|
|
'Query' 'DNS Query' \ |
|
|
|
|
'Resolver' 'Show resolver configuration' \ |
|
|
|
|
'Routes' 'Show routing table' \ |
|
|
|
|
'Services' 'List active network daemons' \ |
|
|
|
|
'Traceroute' 'Show the route to a host' " \ |
|
|
|
@ -1343,6 +1522,9 @@ netdiag_menu(){ |
|
|
|
|
;; |
|
|
|
|
"Query") |
|
|
|
|
netdiag_query |
|
|
|
|
;; |
|
|
|
|
"Resolver") |
|
|
|
|
netdiag_resolver |
|
|
|
|
;; |
|
|
|
|
"Routes") |
|
|
|
|
netdiag_routes |
|
|
|
@ -1359,6 +1541,96 @@ netdiag_menu(){ |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
##function |
|
|
|
|
dump_file(){ |
|
|
|
|
|
|
|
|
|
CONF=$1 |
|
|
|
|
|
|
|
|
|
log "dump_file" "CONF: ${CONF}" |
|
|
|
|
|
|
|
|
|
DUMPFILE="/tmp/network_dump.txt" |
|
|
|
|
|
|
|
|
|
eval "${DIALOG} --fselect ${DUMPFILE} ${WINDOW_HEIGHT} ${WINDOW_WIDTH}" \ |
|
|
|
|
2>${TMPFILE} |
|
|
|
|
|
|
|
|
|
if [ $? -eq 0 ]; then |
|
|
|
|
SEL_FILE=$(cat ${TMPFILE}) |
|
|
|
|
while [ -d "${SEL_FILE}" ]; do |
|
|
|
|
eval "${DIALOG} --fselect ${SEL_FILE} ${WINDOW_HEIGHT} ${WINDOW_WIDTH}" \ |
|
|
|
|
2>${TMPFILE} |
|
|
|
|
if [ $? -eq 0 ]; then |
|
|
|
|
SEL_FILE=$(cat ${TMPFILE}) |
|
|
|
|
else |
|
|
|
|
eval "${DIALOG} --clear --msgbox 'Dump aborted' \ |
|
|
|
|
${INFO_HEIGHT} ${INFO_WIDTH}" |
|
|
|
|
return |
|
|
|
|
fi |
|
|
|
|
done |
|
|
|
|
|
|
|
|
|
## The dump starts here.... |
|
|
|
|
DUMPFILE=${SEL_FILE} |
|
|
|
|
truncate -s 0 ${DUMPFILE} |
|
|
|
|
echo "===== setnet ${VERSION}" >> ${DUMPFILE} |
|
|
|
|
echo "===== Date: $(date)" >> ${DUMPFILE} |
|
|
|
|
echo "===== Network configuration dump " >> ${DUMPFILE} |
|
|
|
|
for c in ${CONF}; do |
|
|
|
|
eval "netdiag_${c} \"${DUMPFILE}\"" |
|
|
|
|
done |
|
|
|
|
else |
|
|
|
|
eval "${DIALOG} --clear --msgbox 'Dump aborted' \ |
|
|
|
|
${INFO_HEIGHT} ${INFO_WIDTH}" |
|
|
|
|
fi |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##function |
|
|
|
|
dump_pastebin(){ |
|
|
|
|
|
|
|
|
|
CONF=$1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
##function |
|
|
|
|
dump_menu(){ |
|
|
|
|
|
|
|
|
|
eval "${DIALOG} --clear --checklist 'Select conf to dump' \ |
|
|
|
|
${WINDOW_HEIGHT} ${WINDOW_WIDTH} 10 \ |
|
|
|
|
'ARP' 'ARP table' on \ |
|
|
|
|
'devices' 'Device configuration' on \ |
|
|
|
|
'DNS' 'DNS configuration' on \ |
|
|
|
|
'resolver' 'System resolver configuration' on \ |
|
|
|
|
'routes' 'Routing table' on \ |
|
|
|
|
'connections' 'Active network connections' on \ |
|
|
|
|
'services' 'Active network services' on " 2> ${TMPFILE} |
|
|
|
|
if [ $? -ne 0 ]; then |
|
|
|
|
return |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
DUMP_CONF=$(cat ${TMPFILE}) |
|
|
|
|
|
|
|
|
|
eval "${DIALOG} --clear --cancel-label 'Up' \ |
|
|
|
|
--menu 'Dump configuration to:' \ |
|
|
|
|
${INFO_HEIGHT} ${INFO_WIDTH} 6 \ |
|
|
|
|
'File' 'Dump to file' \ |
|
|
|
|
'Pastebin' 'Dump to pastebin'" \ |
|
|
|
|
2> ${TMPFILE} |
|
|
|
|
if [ $? -eq 1 ];then |
|
|
|
|
return; |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
ACTION=$(cat ${TMPFILE}) |
|
|
|
|
case ${ACTION} in |
|
|
|
|
"File") |
|
|
|
|
dump_file "${DUMP_CONF}" |
|
|
|
|
;; |
|
|
|
|
"Pastebin") |
|
|
|
|
dump_pastebin "${DUMP_CONF}" |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##function |
|
|
|
|
show_toplevel(){ |
|
|
|
@ -1368,6 +1640,7 @@ show_toplevel(){ |
|
|
|
|
${WINDOW_HEIGHT} ${WINDOW_WIDTH} 6 \ |
|
|
|
|
'Setup' 'Setup interfaces' \ |
|
|
|
|
'Info' 'Network diagnostics' \ |
|
|
|
|
'Dump' 'Dump current network status' \ |
|
|
|
|
'About' 'License & Copyleft'" 2> ${TMPFILE} |
|
|
|
|
|
|
|
|
|
return $? |
|
|
|
@ -1407,11 +1680,12 @@ show_disclaimer(){ |
|
|
|
|
|
|
|
|
|
cat <<EOF > ${TMPFILE} |
|
|
|
|
|
|
|
|
|
== setnet.sh 0.1 == |
|
|
|
|
-+- setnet.sh ${VERSION} -+- |
|
|
|
|
|
|
|
|
|
(c) KatolaZ (katolaz@freaknet.org) -- 2016, 2017 |
|
|
|
|
Copyleft (C) KatolaZ (katolaz@freaknet.org) |
|
|
|
|
2016, 2017 |
|
|
|
|
|
|
|
|
|
-+- This is the alpha release of setnet.sh -+- |
|
|
|
|
-+- This is an alpha release of setnet.sh -+- |
|
|
|
|
|
|
|
|
|
THIS IS FREE SOFTWARE |
|
|
|
|
YOU CAN USE AND DISTRIBUTE IT UNDER THE |
|
|
|
@ -1423,7 +1697,7 @@ show_disclaimer(){ |
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE |
|
|
|
|
|
|
|
|
|
See "About" for more information about |
|
|
|
|
copyright and license |
|
|
|
|
your right and distribution terms |
|
|
|
|
EOF |
|
|
|
|
|
|
|
|
|
eval "${DIALOG} --clear --cr-wrap --textbox ${TMPFILE} 23 60" |
|
|
|
@ -1437,7 +1711,7 @@ initialise(){ |
|
|
|
|
TMPFILE=$( (tempfile) 2>/dev/null) || TMPFILE=/tmp/setnet_$$ |
|
|
|
|
WPA_PIDFILE=$( (tempfile) 2>/dev/null) || WPA_PIDFILE=/tmp/setnet_wpapid_$$ |
|
|
|
|
|
|
|
|
|
trap cleanup 0 NONE HUP INT TRAP TERM QUIT |
|
|
|
|
trap cleanup 0 HUP INT TRAP TERM QUIT |
|
|
|
|
|
|
|
|
|
if [ -z ${TRUNCATE_LOG} ] || \ |
|
|
|
|
[ ${TRUNCATE_LOG} = "yes" ] || \ |
|
|
|
@ -1478,6 +1752,9 @@ main(){ |
|
|
|
|
;; |
|
|
|
|
"Info") |
|
|
|
|
netdiag_menu |
|
|
|
|
;; |
|
|
|
|
"Dump") |
|
|
|
|
dump_menu |
|
|
|
|
;; |
|
|
|
|
"About") |
|
|
|
|
about_menu |
|
|
|
@ -1503,9 +1780,9 @@ while getopts ":c:hv" opt; do |
|
|
|
|
|
|
|
|
|
case $opt in |
|
|
|
|
c) |
|
|
|
|
echo "Got option -c ${OPTARG}" |
|
|
|
|
#echo "Got option -c ${OPTARG}" |
|
|
|
|
SETNETRC=$(realpath ${OPTARG}) |
|
|
|
|
echo "SETNETRC: ${SETNETRC}" |
|
|
|
|
#echo "SETNETRC: ${SETNETRC}" |
|
|
|
|
;; |
|
|
|
|
h) |
|
|
|
|
show_help $(basename $0) |
|
|
|
|