@@ -105,8 +105,14 @@ function soa_update($event_name,$data) {
105105 $ records = $ app ->db ->queryAllRecords ("SELECT * FROM dns_rr WHERE zone = " .$ zone ['id ' ]." AND active = 'Y' " );
106106 $ tpl ->setLoop ('zones ' ,$ records );
107107
108-
109- $ filename = escapeshellcmd ($ dns_config ['bind_zonefiles_dir ' ].'/pri. ' .substr ($ zone ['origin ' ],0 ,-1 ));
108+ //TODO : change this when distribution information has been integrated into server record
109+ if (file_exists ('/etc/gentoo-release ' )) {
110+ $ filename = escapeshellcmd ($ dns_config ['bind_zonefiles_dir ' ].'/pri/ ' .substr ($ zone ['origin ' ],0 ,-1 ));
111+ }
112+ else {
113+ $ filename = escapeshellcmd ($ dns_config ['bind_zonefiles_dir ' ].'/pri. ' .substr ($ zone ['origin ' ],0 ,-1 ));
114+ }
115+
110116 $ app ->log ("Writing BIND domain file: " .$ filename ,LOGLEVEL_DEBUG );
111117 file_put_contents ($ filename ,$ tpl ->grab ());
112118 chown ($ filename , escapeshellcmd ($ dns_config ['bind_user ' ]));
@@ -124,7 +130,14 @@ function soa_update($event_name,$data) {
124130
125131 //* Delete old domain file, if domain name has been changed
126132 if ($ data ['old ' ]['origin ' ] != $ data ['new ' ]['origin ' ]) {
127- $ filename = $ dns_config ['bind_zonefiles_dir ' ].'/pri. ' .substr ($ data ['old ' ]['origin ' ],0 ,-1 );
133+ //TODO : change this when distribution information has been integrated into server record
134+ if (file_exists ('/etc/gentoo-release ' )) {
135+ $ filename = $ dns_config ['bind_zonefiles_dir ' ].'/pri/ ' .substr ($ data ['old ' ]['origin ' ],0 ,-1 );
136+ }
137+ else {
138+ $ filename = $ dns_config ['bind_zonefiles_dir ' ].'/pri. ' .substr ($ data ['old ' ]['origin ' ],0 ,-1 );
139+ }
140+
128141 if (is_file ($ filename )) unset($ filename );
129142 }
130143
@@ -144,7 +157,14 @@ function soa_delete($event_name,$data) {
144157 $ this ->write_named_conf ($ data ,$ dns_config );
145158
146159 //* Delete the domain file
147- $ zone_file_name = $ dns_config ['bind_zonefiles_dir ' ].'/pri. ' .substr ($ data ['old ' ]['origin ' ],0 ,-1 );
160+ //TODO : change this when distribution information has been integrated into server record
161+ if (file_exists ('/etc/gentoo-release ' )) {
162+ $ zone_file_name = $ dns_config ['bind_zonefiles_dir ' ].'/pri/ ' .substr ($ data ['old ' ]['origin ' ],0 ,-1 );
163+ }
164+ else {
165+ $ zone_file_name = $ dns_config ['bind_zonefiles_dir ' ].'/pri. ' .substr ($ data ['old ' ]['origin ' ],0 ,-1 );
166+ }
167+
148168 if (is_file ($ zone_file_name )) unlink ($ zone_file_name );
149169 $ app ->log ("Deleting BIND domain file: " .$ zone_file_name ,LOGLEVEL_DEBUG );
150170
@@ -177,7 +197,14 @@ function slave_update($event_name,$data) {
177197
178198 //* Delete old domain file, if domain name has been changed
179199 if ($ data ['old ' ]['origin ' ] != $ data ['new ' ]['origin ' ]) {
180- $ filename = $ dns_config ['bind_zonefiles_dir ' ].'/slave/sec. ' .substr ($ data ['old ' ]['origin ' ],0 ,-1 );
200+ //TODO : change this when distribution information has been integrated into server record
201+ if (file_exists ('/etc/gentoo-release ' )) {
202+ $ filename = $ dns_config ['bind_zonefiles_dir ' ].'/sec/ ' .substr ($ data ['old ' ]['origin ' ],0 ,-1 );
203+ }
204+ else {
205+ $ filename = $ dns_config ['bind_zonefiles_dir ' ].'/slave/sec. ' .substr ($ data ['old ' ]['origin ' ],0 ,-1 );
206+ }
207+
181208 if (is_file ($ filename )) unset($ filename );
182209 }
183210
@@ -198,7 +225,14 @@ function slave_delete($event_name,$data) {
198225 $ this ->write_named_conf ($ data ,$ dns_config );
199226
200227 //* Delete the domain file
201- $ zone_file_name = $ dns_config ['bind_zonefiles_dir ' ].'/slave/sec. ' .substr ($ data ['old ' ]['origin ' ],0 ,-1 );
228+ //TODO : change this when distribution information has been integrated into server record
229+ if (file_exists ('/etc/gentoo-release ' )) {
230+ $ zone_file_name = $ dns_config ['bind_zonefiles_dir ' ].'/sec/ ' .substr ($ data ['old ' ]['origin ' ],0 ,-1 );
231+ }
232+ else {
233+ $ zone_file_name = $ dns_config ['bind_zonefiles_dir ' ].'/slave/sec. ' .substr ($ data ['old ' ]['origin ' ],0 ,-1 );
234+ }
235+
202236 if (is_file ($ zone_file_name )) unlink ($ zone_file_name );
203237 $ app ->log ("Deleting BIND domain file for secondary zone: " .$ zone_file_name ,LOGLEVEL_DEBUG );
204238
@@ -260,6 +294,17 @@ function write_named_conf($data, $dns_config) {
260294 } else {
261295 $ exclude_zone = '' ;
262296 }
297+
298+ //TODO : change this when distribution information has been integrated into server record
299+ if (file_exists ('/etc/gentoo-release ' )) {
300+ $ pri_zonefiles_path = $ dns_config ['bind_zonefiles_dir ' ].'/pri/ ' ;
301+ $ sec_zonefiles_path = $ dns_config ['bind_zonefiles_dir ' ].'/sec/ ' ;
302+
303+ }
304+ else {
305+ $ pri_zonefiles_path = $ dns_config ['bind_zonefiles_dir ' ].'/pri. ' ;
306+ $ sec_zonefiles_path = $ dns_config ['bind_zonefiles_dir ' ].'/slave/sec. ' ;
307+ }
263308
264309 //* Loop trough zones
265310 foreach ($ tmps as $ tmp ) {
@@ -274,7 +319,7 @@ function write_named_conf($data, $dns_config) {
274319
275320 if ($ tmp ['origin ' ] != $ exclude_zone ) {
276321 $ zones [] = array ( 'zone ' => substr ($ tmp ['origin ' ],0 ,-1 ),
277- 'zonefile_path ' => $ dns_config [ ' bind_zonefiles_dir ' ]. ' /pri. ' .substr ($ tmp ['origin ' ],0 ,-1 ),
322+ 'zonefile_path ' => $ pri_zonefiles_path .substr ($ tmp ['origin ' ],0 ,-1 ),
278323 'options ' => $ options
279324 );
280325 }
@@ -299,7 +344,7 @@ function write_named_conf($data, $dns_config) {
299344
300345
301346 $ zones_sec [] = array ( 'zone ' => substr ($ tmp ['origin ' ],0 ,-1 ),
302- 'zonefile_path ' => $ dns_config [ ' bind_zonefiles_dir ' ]. ' /slave/sec. ' .substr ($ tmp ['origin ' ],0 ,-1 ),
347+ 'zonefile_path ' => $ sec_zonefiles_path .substr ($ tmp ['origin ' ],0 ,-1 ),
303348 'options ' => $ options
304349 );
305350
0 commit comments