add current dev version (WIP)
[GitHub/Stricted/Domain-Control-Panel.git] / lib / system / cache / builder / DNSApiCacheBuilder.class.php
1 <?php
2 namespace dns\system\cache\builder;
3 use dns\system\DNS;
4
5 /**
6 * @author Jan Altensen (Stricted)
7 * @copyright 2013-2015 Jan Altensen (Stricted)
8 */
9 class DNSApiCacheBuilder extends AbstractCacheBuilder {
10 /**
11 * @see \dns\system\cache\builder\AbstractCacheBuilder::$maxLifetime
12 */
13 protected $maxLifetime = 30;
14
15 /**
16 * @see \dns\system\cache\builder\AbstractCacheBuilder::rebuild()
17 */
18 public function rebuild(array $parameters) {
19 $data = array();
20
21 $sql = "SELECT * FROM dns_soa where active = ?";
22 $statement = DNS::getDB()->query($sql, array(1));
23
24 while ($zone = DNS::getDB()->fetch_array($statement)) {
25 $data[$zone['origin']] = array();
26 $data[$zone['origin']]['soa'] = $zone;
27 $data[$zone['origin']]['rr'] = array();
28 $data[$zone['origin']]['sec'] = array();
29
30 /* resource records */
31 $sql2 = "SELECT * FROM dns_rr where zone = ? and active = ?";
32 $statement2 = DNS::getDB()->query($sql2, array($zone['id'], 1));
33 while ($rr = DNS::getDB()->fetch_array($statement2)) {
34 $data[$zone['origin']]['rr'][] = $rr;
35 }
36
37 if (ENABLE_DNSSEC) {
38 /* dnssec keys */
39 $sql3 = "SELECT * FROM dns_sec where zone = ? and active = ?";
40 $statement3 = DNS::getDB()->query($sql3, array($zone['id'], 1));
41 while ($sec = DNS::getDB()->fetch_array($statement3)) {
42 $data[$zone['origin']]['sec'][] = $sec;
43 }
44 }
45 }
46
47 return $data;
48 }
49 }