#!/usr/local/bin/php <?php require_once("config.inc"); require_once("util.inc"); require_once("pfsense-utils.inc"); if (!isset($config['aliases']['alias'])) { // No aliases exit; } // Gather list of urltable aliases $todo = array(); foreach ($config['aliases']['alias'] as $alias) { if (preg_match('/urltable/i', $alias['type'])) { $tmp = array(); $tmp['type'] = $alias['type']; $tmp['name'] = $alias['name']; $tmp['url'] = $alias['url']; $tmp['freq'] = $alias['updatefreq']; $todo[] = $tmp; } } if (count($todo) > 0) { log_error("{$argv[0]}: Starting up."); if ($argv[1] != "now") { // Wait a little before updating. $wait = mt_rand(5, 60); log_error("{$argv[0]}: Sleeping for {$wait} seconds."); sleep($wait); } log_error("{$argv[0]}: Starting URL table alias updates"); $filter_reload = false; foreach ($todo as $t) { $r = process_alias_urltable($t['name'], $t['url'], $t['freq']); if ($r == 1) { $result = ""; // TODO: Change it when pf supports tables with ports if ($t['type'] == "urltable") exec("/sbin/pfctl -t " . escapeshellarg($t['name']) . " -T replace -f /var/db/aliastables/" . escapeshellarg($t['name']) . ".txt 2>&1", $result); else $filter_reload = true; log_error("{$argv[0]}: Updated {$t['name']} content from {$t['url']}: {$result[0]}"); } elseif ($r == -1) { log_error("{$argv[0]}: {$t['name']} does not need updating."); } else { log_error("{$argv[0]}: ERROR: could not update {$t['name']} content from {$t['url']}"); } } if ($filter_reload) configd_run("filter reload"); }