Commit | Line | Data |
---|---|---|
ff49a0be S |
1 | <?php |
2 | namespace dns\system\cache\builder; | |
3 | use dns\system\DNS; | |
4 | ||
5 | /** | |
6 | * @author Jan Altensen (Stricted) | |
d4779364 | 7 | * @copyright 2013-2016 Jan Altensen (Stricted) |
ff49a0be S |
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 | } |