public function testQueue() { $sl = new SyncLib(); $nr_servers = $sl->getNumberOfServers(); $queue_length = $sl->getQueueLength(); $sl->queue(array('modified' => 1259585588, 'otp' => "ccccccccccccfrhiutjgfnvgdurgliidceuilikvfhui", 'yk_publicname' => "cccccccccccc", 'yk_counter' => 10, 'yk_use' => 20, 'yk_high' => 100, 'yk_low' => 1000), array('modified' => 1259585588, 'otp' => "ccccccccccccfrhiutjgfnvgdurgliidceuilikvfhui", 'yk_publicname' => "cccccccccccc", 'yk_counter' => 10, 'yk_use' => 18, 'yk_high' => 100, 'yk_low' => 1000)); $this->assertEquals($nr_servers + $queue_length, $sl->getQueueLength()); $res = $sl->db->findByMultiple('queue', array("modified" => 1259585588, "server_nonce" => $sl->server_nonce)); $lastRes = $res[0]; $info = $sl->otpParamsFromInfoString($lastRes['info']); $lastSync = array('queued' => $lastRes['queued'], 'modified' => $lastRes['modified'], 'otp' => $lastRes['otp'], 'server' => $lastRes['server'], 'nonce' => $info['nonce'], 'yk_publicname' => $info['yk_publicname'], 'yk_counter' => $info['yk_counter'], 'yk_use' => $info['yk_use'], 'yk_high' => $info['yk_high'], 'yk_low' => $info['yk_low']); $this->assertEquals($lastSync['modified'], 1259585588); $this->assertEquals($lastSync['otp'], "ccccccccccccfrhiutjgfnvgdurgliidceuilikvfhui"); $this->assertEquals($lastSync['yk_publicname'], "cccccccccccc"); $this->assertEquals($lastSync['yk_counter'], 10); $this->assertEquals($lastSync['yk_use'], 20); $this->assertEquals($lastSync['yk_high'], 100); $this->assertEquals($lastSync['yk_low'], 1000); }
$sync->log(LOG_WARNING, 'replayed OTP: Local counters higher'); $sync->log(LOG_WARNING, 'replayed OTP: Local counters ', $localParams); $sync->log(LOG_WARNING, 'replayed OTP: Otp counters ', $otpParams); sendResp(S_REPLAYED_OTP, $myLog, $apiKey, $extra); } /* Valid OTP, update database. */ if (!$sync->updateDbCounters($otpParams)) { $myLog->log(LOG_CRIT, 'Failed to update yubikey counters in database'); sendResp(S_BACKEND_ERROR, $myLog, $apiKey); } /* Queue sync requests */ if (!$sync->queue($otpParams, $localParams)) { $myLog->log(LOG_CRIT, 'ykval-verify:critical:failed to queue sync requests'); sendResp(S_BACKEND_ERROR, $myLog, $apiKey); } $nr_servers = $sync->getNumberOfServers(); $req_answers = ceil($nr_servers * $sl / 100.0); if ($req_answers > 0) { $syncres = $sync->sync($req_answers, $timeout); $nr_answers = $sync->getNumberOfAnswers(); $nr_valid_answers = $sync->getNumberOfValidAnswers(); $sl_success_rate = floor(100.0 * $nr_valid_answers / $nr_servers); } else { $syncres = true; $nr_answers = 0; $nr_valid_answers = 0; $sl_success_rate = 0; } $myLog->log(LOG_INFO, "ykval-verify:notice:synclevel=" . $sl . " nr servers=" . $nr_servers . " req answers=" . $req_answers . " answers=" . $nr_answers . " valid answers=" . $nr_valid_answers . " sl success rate=" . $sl_success_rate . " timeout=" . $timeout); if ($syncres == False) { /* sync returned false, indicating that