VR: fix dnmasq misconfiguration if there are multiple IP ranges in a shared network (#8741)

This commit is contained in:
Wei Zhou 2024-04-24 14:51:50 +02:00 committed by GitHub
parent 5f6acca049
commit 3b0e6ac90c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 8 additions and 10 deletions

View File

@ -113,22 +113,20 @@ def bool_to_yn(val):
def get_device_info():
""" Returns all devices on system with their ipv4 ip netmask """
list = []
mtu = None
for i in execute("ip addr show |grep -v secondary"):
vals = i.strip().lstrip().rstrip().split()
if re.search('[0-9]:',vals[0]):
to={}
to['mtu'] = vals[4]
list.append(to)
if re.search('[0-9]:', vals[0]):
mtu = vals[4]
if vals[0] == "inet":
if len(list) > 0:
to = list.pop(len(list)-1)
else:
to={}
to = {}
to['ip'] = vals[1]
to['dev'] = vals[-1]
to['network'] = IPNetwork(to['ip'])
to['dnsmasq'] = False
if mtu:
to['mtu'] = mtu
list.append(to)
return list

View File

@ -241,7 +241,7 @@ export default {
return Promise.resolve()
} else if (!this.ipV4Regex.test(value)) {
return Promise.reject(this.$t('message.error.ipv4.address'))
} else if (rule.networkType !== 'L2' && !this.isIp4InCidr(value, rule.cidr)) {
} else if (rule.networkType === 'Isolated' && !this.isIp4InCidr(value, rule.cidr)) {
const rangeIps = this.calculateCidrRange(rule.cidr)
const message = `${this.$t('message.error.ip.range')} ${this.$t('label.from')} ${rangeIps[0]} ${this.$t('label.to')} ${rangeIps[1]}`
return Promise.reject(message)