Esempio n. 1
0
 if ($prs === false) {
     // TODO: add log entry / email notification here
     continue;
 }
 while ($row = pg_fetch_row($prs)) {
     $mac = strtolower(trim($row[0]));
     $mac2 = strtolower(trim($row[1]));
     $pn = strtolower(trim($row[2]));
     $un = trim($row[3]);
     $sn = trim($row[4]);
     $guid = trim($row[5]);
     if ($mac) {
         processRecord($mac, $un, $sn, $guid);
     }
     if ($mac2 && preg_match("/^(macmini|imac)/", $pn)) {
         processRecord($mac2, $un, $sn, $guid);
     }
 }
 // delete invalid device records from cache
 $q = mysqli_prepare($conn, "DELETE FROM user_devices WHERE line_id = ?");
 mysqli_stmt_bind_param($q, "i", $lineId);
 // $toDelete is keyed on line_id
 $lineIds = array_keys($toDelete);
 foreach ($lineIds as $lineId) {
     if (mysqli_stmt_execute($q) === false) {
         exit("Unable to delete cached device record: " . mysqli_error());
     }
     $deleted++;
 }
 // add new device records to cache
 $q = mysqli_prepare($conn, "INSERT INTO user_devices (server_name, mac_address, username, serial_number, user_guid) VALUES (?, ?, ?, ?, ?)");
 $times['fetch'] = microtime(TRUE);
 $retry = 0;
 do {
     $harvester->fetchContent();
     if ($retry > 0) {
         print "Needs retrying at {$total} ({$retry})\n";
     }
     $fetchOk = checkFetchState($harvester, $total, $retry);
 } while ($fetchOk === FALSE && ++$retry <= MAX_RETRY);
 $times['fetch'] = microtime(TRUE) - $times['fetch'];
 $currentRecordCount = 0;
 if ($fetchOk) {
     $harvester->processContent();
     while (($record = $harvester->getNextRecord()) != null) {
         $currentRecordCount++;
         $metadata = processRecord($record);
         if (!empty($metadata)) {
             fwrite($out, json_encode($metadata) . LN);
         }
     }
 }
 fclose($out);
 $doNext = false;
 $token = array();
 if (!$fetchOk) {
     $status = 'broken with wrong HTTP response';
 } else {
     if (!$harvester->hasResumptionToken()) {
         $status = 'finished';
     } else {
         $token = $harvester->getResumptionToken();