Per-IP connection limit defaults to 12, but is configurable from the
config file.
Also added exlusion sets for subnets for this (and any future per-IP
limits).
By default localhost-originating connections are excluded.
Also in this commit:
- Replaced some usages of QMap with QHash for data items where order is
not important -- QHash is faster.
- Made the global 'id' type from IdMixin be IdMixin::Id (type alias for
quint4). This way code using this data item is cleared/easier to read
and more explicit in what it's doing.
- Already supports listening on as many sockets as you wish
- Each listening server has its own thread
- Will implement later: SSL server
Also refactored code a bit, created the generic "Controller" class, made
EXMgr and SrvMgr inherit from it.
ToDo: Figure out workflow for connections and clients, model client
sessions, etc.