diff options
| author | 2014-07-27 18:56:12 +0200 | |
|---|---|---|
| committer | 2014-07-27 18:56:12 +0200 | |
| commit | 6c37b451cd2bb948d562cb00354bdc7a7dc400da (patch) | |
| tree | e5cc65e65d70a3bf0927f67c466472f5d36d25ef /src/modules/m_spanningtree/server.cpp | |
| parent | m_spanningtree Add TreeServer::BeginBurst() that marks a server as bursting (diff) | |
m_spanningtree Parse additional information present in SERVER messages
Format: <key>[=<value>]
Diffstat (limited to 'src/modules/m_spanningtree/server.cpp')
| -rw-r--r-- | src/modules/m_spanningtree/server.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/modules/m_spanningtree/server.cpp b/src/modules/m_spanningtree/server.cpp index 5da000f20..e7868090d 100644 --- a/src/modules/m_spanningtree/server.cpp +++ b/src/modules/m_spanningtree/server.cpp @@ -64,11 +64,29 @@ CmdResult CommandServer::HandleServer(TreeServer* ParentOfThis, std::vector<std: TreeServer* Node = new TreeServer(servername, description, sid, ParentOfThis, ParentOfThis->GetSocket(), lnk ? lnk->Hidden : false); Node->BeginBurst(); + HandleExtra(Node, params); ServerInstance->SNO->WriteToSnoMask('L', "Server \002"+ParentOfThis->GetName()+"\002 introduced server \002"+servername+"\002 ("+description+")"); return CMD_SUCCESS; } +void CommandServer::HandleExtra(TreeServer* newserver, const std::vector<std::string>& params) +{ + for (std::vector<std::string>::const_iterator i = params.begin() + 2; i != params.end() - 1; ++i) + { + const std::string& prop = *i; + std::string::size_type p = prop.find('='); + + std::string key = prop; + std::string val; + if (p != std::string::npos) + { + key.erase(p); + val = prop.substr(p+1); + } + } +} + Link* TreeSocket::AuthRemote(const parameterlist& params) { if (params.size() < 5) |
