Merge branch 'valnick' of albino/salty-ircd into master

This commit is contained in:
Les De Ridder 2017-04-07 22:01:38 +00:00 committed by Les De Ridder
commit dd33015ec7
No known key found for this signature in database
GPG Key ID: 5EC132DFA85DB372
2 changed files with 20 additions and 2 deletions

View File

@ -203,6 +203,12 @@ class Connection
return; return;
} }
if(!_server.isValidNick(newNick))
{
send(Message(_server.name, "432", [nick, newNick, "Erroneous nickname"]));
return;
}
if(nick !is null) if(nick !is null)
{ {
sendToPeers(Message(nick, "NICK", [newNick])); sendToPeers(Message(nick, "NICK", [newNick]));

View File

@ -76,8 +76,20 @@ class Server
static bool isValidNick(string name) static bool isValidNick(string name)
{ {
//TODO: Use the real rules import std.ascii : digits, letters;
return !name.startsWith('#') && !name.startsWith('&') && name.length <= 9;
if(name.length > 9)
return false;
foreach(i, c; name)
{
auto allowed = letters ~ "[]\\`_^{|}";
if(i > 0)
allowed = allowed ~ digits ~ "-";
if (!allowed.canFind(c))
return false;
}
return true;
} }
bool isNickAvailable(string nick) bool isNickAvailable(string nick)