Changeset View
Changeset View
Standalone View
Standalone View
support/startup/PhabricatorClientConnectionLimit.php
- This file was added.
<?php | |||||
final class PhabricatorClientConnectionLimit | |||||
extends PhabricatorClientLimit { | |||||
protected function getBucketDuration() { | |||||
return 60; | |||||
} | |||||
protected function getBucketCount() { | |||||
return 15; | |||||
} | |||||
protected function shouldRejectConnection($score) { | |||||
// Reject connections if the cumulative score across all buckets exceeds | |||||
// the limit. | |||||
return ($score > $this->getLimit()); | |||||
} | |||||
protected function getConnectScore() { | |||||
return 1; | |||||
} | |||||
protected function getPenaltyScore() { | |||||
return 0; | |||||
} | |||||
protected function getDisconnectScore(array $request_state) { | |||||
return -1; | |||||
} | |||||
protected function getRateLimitReason($score) { | |||||
$client_key = $this->getClientKey(); | |||||
// NOTE: This happens before we load libraries, so we can not use pht() | |||||
// here. | |||||
return | |||||
"TOO MANY CONCURRENT CONNECTIONS\n". | |||||
"You (\"{$client_key}\") have too many concurrent ". | |||||
"connections.\n"; | |||||
} | |||||
} |