m_spanningtree Use iterators in loops instead of subscript operator
m_spanningtree Call ProtocolInterface::PushToClient when writing to remote client instead of sending PUSH commands manually
m_spanningtree Fix various bugs related to protocol interface and ENCAP handling
Most importantly:
- Match the server name not the SID for determining if an incoming ENCAP should be processed by us
- Handle the ? wildcard properly in the server name parameter of an ENCAP
- Send single target ENCAPs to the destination only instead of broadcasting it
- Make ProtocolInterface::SendMetaData accept TYPE_OTHER as target_type (on par with ProtoSendMetaData) instead of throwing an exception
m_spanningtree Fix potential crash in SVSPART handler, don't broadcast incoming SVSJOIN/SVSPART but send it to the destination only, and don't pass it anywhere if they were talking to us
m_spanningtree Remove no-op instructions and simplify code
m_spanningtree Fill a parameterlist in OnAddLine/OnDelLine instead of printf'ing parameters
m_spanningtree Remove low level stuff from SpanningTreeProtocolInterface::SendUserPrivmsg/Notice, use utility functions like the rest of the protocol interface
m_spanningtree Kill duplicated code in OnUserMessage/Notice, put code shared with the protocol interface into the utility class
Fix generating invalid UIDs after current_uid is 000Z99999 (next UID became 000[AAAAA)
Remove a no-op line
While at it, use a constant parameter for calling IncrementUID in GetUID
Get rid of curindex, use a bool to determine if we need to initialize (the initialization code in GetUID should be moved into the constructor or a new function btw)
Count the actual number of sent/received bytes in SocketEngine instead of the buffer size passed to the send/receive functions
Output "Commands(HASH_MAP)" in /stats z as it's a hash_map not a vector
Only return prefix modes from ModeParser::ModeString()
Previously it returned all mode chars regardless if they were actually prefix modes, e.g. +k, +g etc. if they were set on a user's nick. This bug has manifested itself in different places all resulting in extra MODE lines being sent to users on a channel, for example spanningtree sent an FJOIN #chan 111 +nt k,000AAAAAA if the key was 000AAAAAA's nick, which in addition to confusing services made remote servers send a MODE #chan +k <nick> to their clients on #chan. The same applied for all listmodes allowing an exact nick as a parameter, like +g
m_cban, m_svshold Only attach to hooks we have a handler for
m_callerid Fix module sending no metadata due to not being attached to appropiate hooks
m_alltime Use the dedicated function of the protocol interface to send notices to remote users
m_opermodes Get rid of the duplicated s2s message caused by SendGlobalMode
spanningtree sends all mode changes automatically if they're done by a real local user (i.e. not fakeuser), which is our case
Merge pull request #138 from attilamolnar/insp12+sestatsfix

[1.2] Count the actual number of sent/received bytes in SocketEngine statistics
Merge pull request #129 from attilamolnar/insp12+modestringfix

[1.2] Only return prefix modes from ModeParser::ModeString()
Don't touch the terminating NULL in IncrementUID