Update share-common.func

This commit is contained in:
MacRimi
2025-09-02 21:34:13 +02:00
parent c1623bd4df
commit f35de5c749

View File

@@ -422,6 +422,8 @@ select_container_mount_point() {
done done
} }
# ========================================================== # ==========================================================
# CLIENT MOUNT FUNCTIONS (NFS/SAMBA COMMON) # CLIENT MOUNT FUNCTIONS (NFS/SAMBA COMMON)
# ========================================================== # ==========================================================
@@ -567,14 +569,13 @@ pmx_discover_network_servers() {
fi fi
local servers local servers
if [[ "$service_type" == "samba" ]]; then if [[ "$service_type" == "Samba" ]]; then
servers=$(nmap -p 139,445 --open "$network" 2>/dev/null | grep -B 4 -E "(139|445)/tcp open" | grep "Nmap scan report" | awk '{print $5}' | sort -u || true) servers=$(nmap -p 139,445 --open "$network" 2>/dev/null | grep -B 4 -E "(139|445)/tcp open" | grep "Nmap scan report" | awk '{print $5}' | sort -u || true)
else else
servers=$(nmap -p 2049 --open "$network" 2>/dev/null | grep -B 4 "2049/tcp open" | grep "Nmap scan report" | awk '{print $5}' | sort -u || true) servers=$(nmap -p 2049 --open "$network" 2>/dev/null | grep -B 4 "2049/tcp open" | grep "Nmap scan report" | awk '{print $5}' | sort -u || true)
fi fi
if [[ -z "$servers" ]]; then if [[ -z "$servers" ]]; then
cleanup
whiptail --title "$(translate "No Servers Found")" --msgbox "$(translate "No") $service_type $(translate "servers found on the network.")\n\n$(translate "You can add servers manually.")" 10 60 whiptail --title "$(translate "No Servers Found")" --msgbox "$(translate "No") $service_type $(translate "servers found on the network.")\n\n$(translate "You can add servers manually.")" 10 60
return 1 return 1
fi fi
@@ -582,7 +583,7 @@ pmx_discover_network_servers() {
local options=() local options=()
while IFS= read -r server; do while IFS= read -r server; do
if [[ -n "$server" ]]; then if [[ -n "$server" ]]; then
if [[ "$service_type" == "samba" ]]; then if [[ "$service_type" == "Samba" ]]; then
# Try to get NetBIOS name for Samba # Try to get NetBIOS name for Samba
local nb_name=$(nmblookup -A "$server" 2>/dev/null | awk '/<00> -.*B <ACTIVE>/ {print $1; exit}') local nb_name=$(nmblookup -A "$server" 2>/dev/null | awk '/<00> -.*B <ACTIVE>/ {print $1; exit}')
if [[ -z "$nb_name" || "$nb_name" == "$server" || "$nb_name" == "address" || "$nb_name" == "-" ]]; then if [[ -z "$nb_name" || "$nb_name" == "$server" || "$nb_name" == "address" || "$nb_name" == "-" ]]; then
@@ -598,7 +599,6 @@ pmx_discover_network_servers() {
done <<< "$servers" done <<< "$servers"
if [[ ${#options[@]} -eq 0 ]]; then if [[ ${#options[@]} -eq 0 ]]; then
cleanup
whiptail --title "$(translate "No Valid Servers")" --msgbox "$(translate "No accessible") $service_type $(translate "servers found.")" 8 50 whiptail --title "$(translate "No Valid Servers")" --msgbox "$(translate "No accessible") $service_type $(translate "servers found.")" 8 50
return 1 return 1
fi fi
@@ -626,7 +626,14 @@ pmx_select_server() {
case "$method" in case "$method" in
auto) auto)
pmx_discover_network_servers "$service_type" "$port" local discovered_server
discovered_server=$(pmx_discover_network_servers "$service_type" "$port")
if [[ $? -eq 0 && -n "$discovered_server" ]]; then
echo "$discovered_server"
return 0
else
return 1
fi
;; ;;
manual) manual)
clear clear
@@ -647,7 +654,14 @@ pmx_select_server() {
fs_type="cifs" fs_type="cifs"
fi fi
local recent=$(grep "$fs_type" /etc/fstab 2>/dev/null | awk '{print $1}' | cut -d/ -f3 | cut -d: -f1 | sort -u || true) # Fix the recent servers detection for NFS
local recent
if [[ "$service_type" == "NFS" ]]; then
recent=$(grep "$fs_type" /etc/fstab 2>/dev/null | awk '{print $1}' | cut -d: -f1 | sort -u || true)
else
recent=$(grep "$fs_type" /etc/fstab 2>/dev/null | awk '{print $1}' | cut -d/ -f3 | sort -u || true)
fi
if [[ -z "$recent" ]]; then if [[ -z "$recent" ]]; then
dialog --title "$(translate "No Recent Servers")" --msgbox "\n$(translate "No recent") $service_type $(translate "servers found.")" 8 50 dialog --title "$(translate "No Recent Servers")" --msgbox "\n$(translate "No recent") $service_type $(translate "servers found.")" 8 50
return 1 return 1