diff --git a/web/html/xui/dns_modal.html b/web/html/xui/dns_modal.html
index 5be2f257..8d0c3631 100644
--- a/web/html/xui/dns_modal.html
+++ b/web/html/xui/dns_modal.html
@@ -59,6 +59,53 @@
address: "localhost",
domains: [],
queryStrategy: 'UseIP',
+
+ },
+ ok() {
+ domains = dnsModal.dnsServer.domains.filter(d => d.length>0);
+ dnsModal.dnsServer.domains = domains;
+ newDnsServer = domains.length > 0 ? dnsModal.dnsServer : dnsModal.dnsServer.address;
+ ObjectUtil.execute(dnsModal.confirm, newDnsServer);
+ },
+ show({ title='', okText='{{ i18n "confirm" }}', dnsServer, confirm=(dnsServer)=>{}, isEdit=false }) {
+ this.title = title;
+ this.okText = okText;
+ this.confirm = confirm;
+ this.visible = true;
+ if(isEdit) {
+ if (typeof dnsServer == 'object'){
+ this.dnsServer = dnsServer;
+ } else {
+ this.dnsServer = {
+ address: dnsServer ?? "",
+ domains: [],
+ queryStrategy: 'UseIP',
+ }
+ }
+ } else {
+ this.dnsServer = {
+ address: "localhost",
+ domains: [],
+ queryStrategy: 'UseIP',
+ }
+ }
+ this.isEdit = isEdit;
+ },
+ close() {
+ dnsModal.visible = false;
+ },
+ };
+
+ new Vue({
+ delimiters: ['[[', ']]'],
+ el: '#dns-modal',
+ data: {
+ dnsModal: dnsModal,
+ },
+ computed: {
+ isAdvanced: {
+ get: function () { return dnsModal.dnsServer.domains.length>0 }
+ }
}
}
this.isEdit = isEdit;
diff --git a/x-ui.sh b/x-ui.sh
index a9ef1601..073ab63e 100644
--- a/x-ui.sh
+++ b/x-ui.sh
@@ -591,8 +591,9 @@ open_ports() {
# Check if the firewall is inactive
if ufw status | grep -q "Status: active"; then
- echo "firewall is already active"
+ echo "Firewall is already active"
else
+ echo "Activating firewall..."
# Open the necessary ports
ufw allow ssh
ufw allow http
@@ -619,17 +620,18 @@ open_ports() {
# Split the range into start and end ports
start_port=$(echo $port | cut -d'-' -f1)
end_port=$(echo $port | cut -d'-' -f2)
- # Loop through the range and open each port
- for ((i = start_port; i <= end_port; i++)); do
- ufw allow $i
- done
+ ufw allow $start_port:$end_port
else
ufw allow "$port"
fi
done
# Confirm that the ports are open
- ufw status | grep $ports
+ echo "The following ports are now open:"
+ ufw status | grep "ALLOW" | grep -Eo "[0-9]+(/[a-z]+)?"
+
+ echo "Firewall status:"
+ ufw status verbose
}
delete_ports() {
@@ -649,10 +651,8 @@ delete_ports() {
# Split the range into start and end ports
start_port=$(echo $port | cut -d'-' -f1)
end_port=$(echo $port | cut -d'-' -f2)
- # Loop through the range and delete each port
- for ((i = start_port; i <= end_port; i++)); do
- ufw delete allow $i
- done
+ # Delete the port range
+ ufw delete allow $start_port:$end_port
else
ufw delete allow "$port"
fi
@@ -660,7 +660,7 @@ delete_ports() {
# Confirm that the ports are deleted
echo "Deleted the specified ports:"
- ufw status | grep $ports
+ ufw status | grep "ALLOW" | grep -Eo "[0-9]+(/[a-z]+)?"
}
update_geo() {