$c = new CronRule();
 $ok = $c->set_Rule($job['minute'] . ' ' . $job['hour'] . ' ' . $job['day'] . ' ' . $job['month'] . ' ' . $job['dow']);
 if (!$ok) {
     gs_log(GS_LOG_WARNING, "Phone {$mac}: Job " . $job['id'] . " has a bad cron rule (" . $c->errMsg . "). Deleting ...");
     $db->execute('DELETE FROM `prov_jobs` WHERE `id`=' . (int) $job['id'] . ' AND `running`=0');
     unset($c);
     continue;
 }
 if (!$c->validate_time()) {
     gs_log(GS_LOG_DEBUG, "Phone {$mac}: Job " . $job['id'] . ": Rule does not match");
     unset($c);
     continue;
 }
 unset($c);
 gs_log(GS_LOG_DEBUG, "Phone {$mac}: Job " . $job['id'] . ": Rule match");
 $fw_new_vers = _grandstream_normalize_version($job['data']);
 if (subStr($fw_new_vers, 0, 2) == '00') {
     gs_log(GS_LOG_NOTICE, "Phone {$mac}: Bad new fw version {$fw_new_vers}");
     $db->execute('DELETE FROM `prov_jobs` WHERE `id`=' . (int) $job['id'] . ' AND `running`=0');
     continue;
 }
 $firmware_path = '/opt/gemeinschaft/htdocs/prov/grandstream/fw/' . $fw_new_vers;
 if (!file_exists($firmware_path) || !is_readable($firmware_path)) {
     gs_log(GS_LOG_NOTICE, "Phone {$mac}: " . $firmware_path . " not exits or not readable");
     $db->execute('DELETE FROM `prov_jobs` WHERE `id`=' . (int) $job['id'] . ' AND `running`=0');
     continue;
 }
 if ($fw_new_vers == $fw_vers_nrml) {
     gs_log(GS_LOG_NOTICE, "Phone {$mac}: FW {$fw_vers_nrml} == {$fw_new_vers}");
     $db->execute('DELETE FROM `prov_jobs` WHERE `id`=' . (int) $job['id'] . ' AND `running`=0');
     continue;
Esempio n. 2
0
function _grandstream_fwcmp($fwvers1, $fwvers2)
{
    //$fwvers1 = _grandstream_normalize_version( $fwvers1 );  # we trust it has been normalized!
    $fwvers2 = _grandstream_normalize_version($fwvers2);
    return strCmp($fwvers1, $fwvers2);
}