ISPConfig 3
querylen = snprintf(query, sizeof(query), "SELECT xfer FROM %s WHERE id=%u%s",
mydns_soa_table_name, soa->id, mydns_rr_use_active ? " AND active=1" : "");
Проблема в том, что запрос ищет active=1 в таблице dns_soa. В ISPConfig-е поле active в таблице dns_soa имеет тип enum(‘N’, ‘Y’), поэтому запрос всегда обламывается. Чтобы заставить работать ISPConfig и MyDNS вместе, есть два решения:
1) Поменять запрос в axfr.c чтобы он проверял active=’Y’ вместо active=1 и пересобрать MyDNS.
2) Поменять тип поля active в таблице dns_soa на тип int или tinyint:
mysql> alter table dns_soa modify active tinyint(4) NOT NULL default '1';поменять около строки 178 в файле /usr/local/ispconfig/interface/web/dns/f
'default' => '1',
'value' => array(0, 1)
и поменять около строки 92 файла /usr/local/ispconfig/interface/lib/class if(strtolower($rec[$key]) == '1' or strtolower($rec[$key]) == '0') {
// Set a additional image variable for boolean fields
$rec['_'.$key.'_'] = (strtolower($rec[$key]) == '1')?'x16/tick_circle.png':'x16/cross_circle.png';
После этих изменений всё ок.