1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-19 12:00:55 +01:00

If PhabricatorIRCBot encounters a 'nick used' error, try adding a number

Summary: Someone stole my bot's name, so the bot couldn't (re)connect. This tries adding some text to the name if it encounters a 433 'nick in use' error

Test Plan: Started a ton of bots: F154744

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9123
This commit is contained in:
Eric Stern 2014-05-14 11:21:38 -07:00 committed by epriestley
parent 6a45b7e670
commit 358b59ffa7

View file

@ -8,6 +8,8 @@ final class PhabricatorIRCProtocolAdapter
private $writeBuffer; private $writeBuffer;
private $readBuffer; private $readBuffer;
private $nickIncrement = 0;
public function getServiceType() { public function getServiceType() {
return 'IRC'; return 'IRC';
} }
@ -183,6 +185,12 @@ final class PhabricatorIRCProtocolAdapter
private function handleIRCProtocol(array $matches) { private function handleIRCProtocol(array $matches) {
$data = $matches['data']; $data = $matches['data'];
switch ($matches['command']) { switch ($matches['command']) {
case '433': // Nickname already in use
// If we receive this error, try appending "-1", "-2", etc. to the nick
$this->nickIncrement++;
$nick = $this->getConfig('nick', 'phabot').'-'.$this->nickIncrement;
$this->write("NICK {$nick}");
return true;
case '422': // Error - no MOTD case '422': // Error - no MOTD
case '376': // End of MOTD case '376': // End of MOTD
$nickpass = $this->getConfig('nickpass'); $nickpass = $this->getConfig('nickpass');