From 8a46bee9da98b4e90ed84956138f9cc8e8887249 Mon Sep 17 00:00:00 2001
From: Florian Schaal <info@schaal-24.de>
Date: Mon, 27 Feb 2017 14:24:28 +0100
Subject: [PATCH] allow multiple master-server for a bind-slave

---
 interface/web/dns/dns_wizard.php             | 1 +
 interface/web/dns/form/dns_slave.tform.php   | 6 ++++++
 interface/web/dns/lib/lang/ar_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/bg_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/br_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/ca_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/cz_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/de_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/dk_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/el_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/en_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/es_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/fi_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/fr_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/hr_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/hu_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/id_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/it_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/ja_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/nl_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/pl_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/pt_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/ro_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/ru_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/se_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/sk_dns_slave.lng  | 2 +-
 interface/web/dns/lib/lang/tr_dns_slave.lng  | 2 +-
 server/plugins-available/bind_plugin.inc.php | 4 +++-
 28 files changed, 35 insertions(+), 26 deletions(-)
 mode change 100755 => 100644 interface/web/dns/lib/lang/es_dns_slave.lng

diff --git a/interface/web/dns/dns_wizard.php b/interface/web/dns/dns_wizard.php
index 68b30a8074..e163e4eeab 100644
--- a/interface/web/dns/dns_wizard.php
+++ b/interface/web/dns/dns_wizard.php
@@ -421,6 +421,7 @@ if($_POST['create'] == 1) {
 			"dnssec_wanted" => $enable_dnssec
 		);
 		$dns_soa_id = $app->db->datalogInsert('dns_soa', $insert_data, 'id');
+		if($dns_soa_id > 0) $app->plugin->raiseEvent('dns:wizard:on_after_insert', $dns_soa_id);
 
 		// Insert the dns_rr records
 		if(is_array($dns_rr) && $dns_soa_id > 0) {
diff --git a/interface/web/dns/form/dns_slave.tform.php b/interface/web/dns/form/dns_slave.tform.php
index a5570040de..2f287dbfd7 100644
--- a/interface/web/dns/form/dns_slave.tform.php
+++ b/interface/web/dns/form/dns_slave.tform.php
@@ -108,10 +108,16 @@ $form["tabs"]['dns_slave'] = array (
 		'ns' => array (
 			'datatype' => 'VARCHAR',
 			'formtype' => 'TEXT',
+/*
 			'validators' => array (  0 => array ( 'type' => 'REGEX',
 					'regex' => '/^[0-9\.]{1,255}$/',
 					'errmsg'=> 'ns_error_regex'),
 			),
+*/
+			'validators' => array (  0 => array ( 'type' => 'ISIP',
+					'separator' => ',',
+					'errmsg'=> 'ns_error_regex'),
+			),
 			'default' => '',
 			'value'  => '',
 			'width'  => '30',
diff --git a/interface/web/dns/lib/lang/ar_dns_slave.lng b/interface/web/dns/lib/lang/ar_dns_slave.lng
index c426df7ed5..416e3d6e72 100644
--- a/interface/web/dns/lib/lang/ar_dns_slave.lng
+++ b/interface/web/dns/lib/lang/ar_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'There is already a record for this zone.';
 $wb['origin_error_regex'] = 'Zone has a invalid format.';
 $wb['ns_error_regex'] = 'NS has a invalid format.';
 $wb['eg_domain_tld'] = 'e.g. domain.tld.';
-$wb['ipv4_form_txt'] = 'IPv4 form - e.g. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Secondary DNS Zone';
 ?>
diff --git a/interface/web/dns/lib/lang/bg_dns_slave.lng b/interface/web/dns/lib/lang/bg_dns_slave.lng
index d96533a3ee..d2bface7d1 100644
--- a/interface/web/dns/lib/lang/bg_dns_slave.lng
+++ b/interface/web/dns/lib/lang/bg_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'Вече има запис за тази зона.
 $wb['origin_error_regex'] = 'Името на зоната е в грешен формат.';
 $wb['ns_error_regex'] = 'NS е в грешен формат.';
 $wb['eg_domain_tld'] = 'примерно domain.tld.';
-$wb['ipv4_form_txt'] = 'IPv4 формата изглейда така: 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Secondary DNS Zone';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_slave.lng b/interface/web/dns/lib/lang/br_dns_slave.lng
index bb0f925d62..5fe91a3e5b 100644
--- a/interface/web/dns/lib/lang/br_dns_slave.lng
+++ b/interface/web/dns/lib/lang/br_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'Já existe um registro igual para esta zona.';
 $wb['origin_error_regex'] = 'Zona inválida.';
 $wb['ns_error_regex'] = 'Registro NS inválido.';
 $wb['eg_domain_tld'] = 'ex.: dominio.com.';
-$wb['ipv4_form_txt'] = 'Formato IPv4 - ex.: 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Zona dns secundária';
 ?>
diff --git a/interface/web/dns/lib/lang/ca_dns_slave.lng b/interface/web/dns/lib/lang/ca_dns_slave.lng
index 887cc7dcd4..016c8fb11d 100644
--- a/interface/web/dns/lib/lang/ca_dns_slave.lng
+++ b/interface/web/dns/lib/lang/ca_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'Il y a déjà un enregistrement pour cette zone.';
 $wb['origin_error_regex'] = 'Le format de la zone est invalide.';
 $wb['ns_error_regex'] = 'Le format de l\'enregistrement NS est invalide.';
 $wb['eg_domain_tld'] = 'ex. domain.tld.';
-$wb['ipv4_form_txt'] = 'Format IPv4 - ex. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Zone DNS secondaire';
 ?>
diff --git a/interface/web/dns/lib/lang/cz_dns_slave.lng b/interface/web/dns/lib/lang/cz_dns_slave.lng
index 349a01bdbb..c411ce870f 100644
--- a/interface/web/dns/lib/lang/cz_dns_slave.lng
+++ b/interface/web/dns/lib/lang/cz_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'Pro tuto zónu již existuje záznam.';
 $wb['origin_error_regex'] = 'Zóna má neplatný formát.';
 $wb['ns_error_regex'] = 'NS má neplatný formát.';
 $wb['eg_domain_tld'] = 'napÅ™. domena.cz';
-$wb['ipv4_form_txt'] = 'IPV4 formát, např. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Sekundární DNS zóna';
 ?>
diff --git a/interface/web/dns/lib/lang/de_dns_slave.lng b/interface/web/dns/lib/lang/de_dns_slave.lng
index 1b58088317..6ba2cf9c2a 100644
--- a/interface/web/dns/lib/lang/de_dns_slave.lng
+++ b/interface/web/dns/lib/lang/de_dns_slave.lng
@@ -13,5 +13,5 @@ $wb['origin_error_unique'] = 'Es existiert bereits ein Eintrag für diese Zone.'
 $wb['origin_error_regex'] = 'Zone hat ein ungültiges Format.';
 $wb['ns_error_regex'] = 'NS hat ein ungültiges Format.';
 $wb['eg_domain_tld'] = 'Format: domain.tld.';
-$wb['ipv4_form_txt'] = 'IPv4 Format: 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 ?>
diff --git a/interface/web/dns/lib/lang/dk_dns_slave.lng b/interface/web/dns/lib/lang/dk_dns_slave.lng
index 1414a94e9e..d5c87de9fe 100644
--- a/interface/web/dns/lib/lang/dk_dns_slave.lng
+++ b/interface/web/dns/lib/lang/dk_dns_slave.lng
@@ -13,5 +13,5 @@ $wb['origin_error_unique'] = 'Der findes allerede en post for denne zone.';
 $wb['origin_error_regex'] = 'Zone har et ugyldigt format.';
 $wb['ns_error_regex'] = 'NS har et ugyldigt format.';
 $wb['eg_domain_tld'] = 'f.eks. domæne.tld.';
-$wb['ipv4_form_txt'] = 'IPv4 form - f.eks. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 ?>
diff --git a/interface/web/dns/lib/lang/el_dns_slave.lng b/interface/web/dns/lib/lang/el_dns_slave.lng
index 64db9755e8..b1f9d7fa0c 100644
--- a/interface/web/dns/lib/lang/el_dns_slave.lng
+++ b/interface/web/dns/lib/lang/el_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'Υπάρχει ήδη μια εγγραφή για
 $wb['origin_error_regex'] = 'Η ζώνη δεν έχει έγκυρη μορφοποίηση.';
 $wb['ns_error_regex'] = 'Ο NS δεν έχει έγκυρη μορφοποίηση.';
 $wb['eg_domain_tld'] = 'π.χ. domain.tld.';
-$wb['ipv4_form_txt'] = 'μορφή IPv4 - π.χ. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Secondary DNS Zone';
 ?>
diff --git a/interface/web/dns/lib/lang/en_dns_slave.lng b/interface/web/dns/lib/lang/en_dns_slave.lng
index fc27ee9379..055bc69688 100644
--- a/interface/web/dns/lib/lang/en_dns_slave.lng
+++ b/interface/web/dns/lib/lang/en_dns_slave.lng
@@ -13,5 +13,5 @@ $wb["origin_error_unique"] = 'There is already a record for this zone.';
 $wb["origin_error_regex"] = 'Zone has a invalid format.';
 $wb["ns_error_regex"] = 'NS has a invalid format.';
 $wb['eg_domain_tld'] = 'e.g. domain.tld.';
-$wb['ipv4_form_txt'] = 'IPv4 form - e.g. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 ?>
diff --git a/interface/web/dns/lib/lang/es_dns_slave.lng b/interface/web/dns/lib/lang/es_dns_slave.lng
old mode 100755
new mode 100644
index 68690b1a02..bd13c32af8
--- a/interface/web/dns/lib/lang/es_dns_slave.lng
+++ b/interface/web/dns/lib/lang/es_dns_slave.lng
@@ -2,7 +2,7 @@
 $wb['active_txt'] = 'Habilitado';
 $wb['client_txt'] = 'Cliente';
 $wb['eg_domain_tld'] = 'eje. dominio.tld.';
-$wb['ipv4_form_txt'] = 'Formato IPv4 - eje. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['ns_error_regex'] = 'El registro NS contiene un formato inválido.';
 $wb['ns_txt'] = 'NS (Dirección IP)';
 $wb['origin_error_empty'] = 'Zona vacía.';
diff --git a/interface/web/dns/lib/lang/fi_dns_slave.lng b/interface/web/dns/lib/lang/fi_dns_slave.lng
index c426df7ed5..416e3d6e72 100644
--- a/interface/web/dns/lib/lang/fi_dns_slave.lng
+++ b/interface/web/dns/lib/lang/fi_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'There is already a record for this zone.';
 $wb['origin_error_regex'] = 'Zone has a invalid format.';
 $wb['ns_error_regex'] = 'NS has a invalid format.';
 $wb['eg_domain_tld'] = 'e.g. domain.tld.';
-$wb['ipv4_form_txt'] = 'IPv4 form - e.g. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Secondary DNS Zone';
 ?>
diff --git a/interface/web/dns/lib/lang/fr_dns_slave.lng b/interface/web/dns/lib/lang/fr_dns_slave.lng
index c3795322b7..45f571e448 100644
--- a/interface/web/dns/lib/lang/fr_dns_slave.lng
+++ b/interface/web/dns/lib/lang/fr_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'Il y a déjà un enregistrement pour cette zone.';
 $wb['origin_error_regex'] = 'Le format de la zone est invalide.';
 $wb['ns_error_regex'] = 'Le format de l’enregistrement NS est invalide.';
 $wb['eg_domain_tld'] = 'ex. domain.tld.';
-$wb['ipv4_form_txt'] = 'Format IPv4 - ex. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Zone DNS secondaire';
 ?>
diff --git a/interface/web/dns/lib/lang/hr_dns_slave.lng b/interface/web/dns/lib/lang/hr_dns_slave.lng
index 5bfb6b8d78..c6ee822d0a 100644
--- a/interface/web/dns/lib/lang/hr_dns_slave.lng
+++ b/interface/web/dns/lib/lang/hr_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'Već postoji zapis za ovu zonu.';
 $wb['origin_error_regex'] = 'Zona je u pogrešnom formatu.';
 $wb['ns_error_regex'] = 'NS je u pogrešnom formatu.';
 $wb['eg_domain_tld'] = 'npr. domena.tld.';
-$wb['ipv4_form_txt'] = 'IPv4 forma - npr. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Sekundarne DNS zone';
 ?>
diff --git a/interface/web/dns/lib/lang/hu_dns_slave.lng b/interface/web/dns/lib/lang/hu_dns_slave.lng
index bec75dfc0c..7bc27e3a51 100644
--- a/interface/web/dns/lib/lang/hu_dns_slave.lng
+++ b/interface/web/dns/lib/lang/hu_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'There is already a record for this zone.';
 $wb['origin_error_regex'] = 'Zone has a invalid format.';
 $wb['ns_error_regex'] = 'NS has a invalid format.';
 $wb['eg_domain_tld'] = 'e.g. domain.tld.';
-$wb['ipv4_form_txt'] = 'IPv4 form - e.g. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Secondary DNS Zone';
 ?>
diff --git a/interface/web/dns/lib/lang/id_dns_slave.lng b/interface/web/dns/lib/lang/id_dns_slave.lng
index 099a8b2b65..e87310bacc 100644
--- a/interface/web/dns/lib/lang/id_dns_slave.lng
+++ b/interface/web/dns/lib/lang/id_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'Sudah ada record untuk zona ini.';
 $wb['origin_error_regex'] = 'Zona memiliki format yang tidak valid.';
 $wb['ns_error_regex'] = 'NS memiliki format yang tidak valid.';
 $wb['eg_domain_tld'] = 'e.g. domain.tld.';
-$wb['ipv4_form_txt'] = 'IPv4 form - e.g. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Secondary DNS Zone';
 ?>
diff --git a/interface/web/dns/lib/lang/it_dns_slave.lng b/interface/web/dns/lib/lang/it_dns_slave.lng
index cbd6a3a418..beae2824e4 100644
--- a/interface/web/dns/lib/lang/it_dns_slave.lng
+++ b/interface/web/dns/lib/lang/it_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'There is already a record for this zone.';
 $wb['origin_error_regex'] = 'Zone has a invalid format.';
 $wb['ns_error_regex'] = 'NS has a invalid format.';
 $wb['eg_domain_tld'] = 'e.g. domain.tld.';
-$wb['ipv4_form_txt'] = 'IPv4 form - e.g. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Secondary DNS Zone';
 ?>
diff --git a/interface/web/dns/lib/lang/ja_dns_slave.lng b/interface/web/dns/lib/lang/ja_dns_slave.lng
index c426df7ed5..416e3d6e72 100644
--- a/interface/web/dns/lib/lang/ja_dns_slave.lng
+++ b/interface/web/dns/lib/lang/ja_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'There is already a record for this zone.';
 $wb['origin_error_regex'] = 'Zone has a invalid format.';
 $wb['ns_error_regex'] = 'NS has a invalid format.';
 $wb['eg_domain_tld'] = 'e.g. domain.tld.';
-$wb['ipv4_form_txt'] = 'IPv4 form - e.g. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Secondary DNS Zone';
 ?>
diff --git a/interface/web/dns/lib/lang/nl_dns_slave.lng b/interface/web/dns/lib/lang/nl_dns_slave.lng
index 98d27c8d30..2cf4d13922 100644
--- a/interface/web/dns/lib/lang/nl_dns_slave.lng
+++ b/interface/web/dns/lib/lang/nl_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'Er is al een record for deze zone.';
 $wb['origin_error_regex'] = 'Zone heeft een ongeldig formaat.';
 $wb['ns_error_regex'] = 'NS heeft een ongeldig formaat.';
 $wb['eg_domain_tld'] = 'e.g. domain.tld.';
-$wb['ipv4_form_txt'] = 'IPv4 form - e.g. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Secondary DNS Zone';
 ?>
diff --git a/interface/web/dns/lib/lang/pl_dns_slave.lng b/interface/web/dns/lib/lang/pl_dns_slave.lng
index 42dea7cd19..ceee10f124 100644
--- a/interface/web/dns/lib/lang/pl_dns_slave.lng
+++ b/interface/web/dns/lib/lang/pl_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'Jest już rekord w tej strefie.';
 $wb['origin_error_regex'] = 'Strefa ma niepoprawny format.';
 $wb['ns_error_regex'] = 'NS ma niepoprawny format.';
 $wb['eg_domain_tld'] = 'np. domena.pl.';
-$wb['ipv4_form_txt'] = 'notacja IPv4 - np. 127.0.0.1';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Zapasowa Strefa DNS';
 ?>
diff --git a/interface/web/dns/lib/lang/pt_dns_slave.lng b/interface/web/dns/lib/lang/pt_dns_slave.lng
index c426df7ed5..416e3d6e72 100644
--- a/interface/web/dns/lib/lang/pt_dns_slave.lng
+++ b/interface/web/dns/lib/lang/pt_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'There is already a record for this zone.';
 $wb['origin_error_regex'] = 'Zone has a invalid format.';
 $wb['ns_error_regex'] = 'NS has a invalid format.';
 $wb['eg_domain_tld'] = 'e.g. domain.tld.';
-$wb['ipv4_form_txt'] = 'IPv4 form - e.g. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Secondary DNS Zone';
 ?>
diff --git a/interface/web/dns/lib/lang/ro_dns_slave.lng b/interface/web/dns/lib/lang/ro_dns_slave.lng
index c426df7ed5..416e3d6e72 100644
--- a/interface/web/dns/lib/lang/ro_dns_slave.lng
+++ b/interface/web/dns/lib/lang/ro_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'There is already a record for this zone.';
 $wb['origin_error_regex'] = 'Zone has a invalid format.';
 $wb['ns_error_regex'] = 'NS has a invalid format.';
 $wb['eg_domain_tld'] = 'e.g. domain.tld.';
-$wb['ipv4_form_txt'] = 'IPv4 form - e.g. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Secondary DNS Zone';
 ?>
diff --git a/interface/web/dns/lib/lang/ru_dns_slave.lng b/interface/web/dns/lib/lang/ru_dns_slave.lng
index 38b86608f9..43467ca074 100644
--- a/interface/web/dns/lib/lang/ru_dns_slave.lng
+++ b/interface/web/dns/lib/lang/ru_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'Для этой зоны уже есть запи
 $wb['origin_error_regex'] = 'Зона имеет неправильный формат.';
 $wb['ns_error_regex'] = 'NS имеет неправильный формат.';
 $wb['eg_domain_tld'] = 'Например, domain.tld.';
-$wb['ipv4_form_txt'] = 'Формат IPv4 - например, 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Вторичная DNS-зона';
 ?>
diff --git a/interface/web/dns/lib/lang/se_dns_slave.lng b/interface/web/dns/lib/lang/se_dns_slave.lng
index c426df7ed5..416e3d6e72 100644
--- a/interface/web/dns/lib/lang/se_dns_slave.lng
+++ b/interface/web/dns/lib/lang/se_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'There is already a record for this zone.';
 $wb['origin_error_regex'] = 'Zone has a invalid format.';
 $wb['ns_error_regex'] = 'NS has a invalid format.';
 $wb['eg_domain_tld'] = 'e.g. domain.tld.';
-$wb['ipv4_form_txt'] = 'IPv4 form - e.g. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Secondary DNS Zone';
 ?>
diff --git a/interface/web/dns/lib/lang/sk_dns_slave.lng b/interface/web/dns/lib/lang/sk_dns_slave.lng
index c426df7ed5..416e3d6e72 100644
--- a/interface/web/dns/lib/lang/sk_dns_slave.lng
+++ b/interface/web/dns/lib/lang/sk_dns_slave.lng
@@ -12,6 +12,6 @@ $wb['origin_error_unique'] = 'There is already a record for this zone.';
 $wb['origin_error_regex'] = 'Zone has a invalid format.';
 $wb['ns_error_regex'] = 'NS has a invalid format.';
 $wb['eg_domain_tld'] = 'e.g. domain.tld.';
-$wb['ipv4_form_txt'] = 'IPv4 form - e.g. 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 $wb['secondary_zone_txt'] = 'Secondary DNS Zone';
 ?>
diff --git a/interface/web/dns/lib/lang/tr_dns_slave.lng b/interface/web/dns/lib/lang/tr_dns_slave.lng
index eeee447fbc..d6c83a92fa 100644
--- a/interface/web/dns/lib/lang/tr_dns_slave.lng
+++ b/interface/web/dns/lib/lang/tr_dns_slave.lng
@@ -13,5 +13,5 @@ $wb['origin_error_unique'] = 'Bu bölge için zaten bir kayıt var.';
 $wb['origin_error_regex'] = 'Bölge biçimi geçersiz.';
 $wb['ns_error_regex'] = 'NS biçimi geçersiz.';
 $wb['eg_domain_tld'] = 'Örnek: domain.tld.';
-$wb['ipv4_form_txt'] = 'IPv4 biçimi - Örnek: 1.2.3.4';
+$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas';
 ?>
diff --git a/server/plugins-available/bind_plugin.inc.php b/server/plugins-available/bind_plugin.inc.php
index 80d302bee0..23856f0c86 100644
--- a/server/plugins-available/bind_plugin.inc.php
+++ b/server/plugins-available/bind_plugin.inc.php
@@ -544,7 +544,9 @@ class bind_plugin {
 
 		foreach($tmps_sec as $tmp) {
 
-			$options = "        masters {".$tmp['ns'].";};\n";
+			// When you have more than one master, the serial number is used to determine which Master has the most current version of the zone by the
+			// slaves.  The slaves actually ask for the SOA record from each Master when refreshing. 
+			$options = "        masters {".str_replace(',', ';', $tmp['ns']).";};\n";
 			if(trim($tmp['xfer']) != '') {
 				$options .= "        allow-transfer {".str_replace(',', ';', $tmp['xfer']).";};\n";
 			} else {
-- 
GitLab