common: Allow skipping negotiation of IRCv3 caps
authorShane Synan <digitalcircuit36939@gmail.com>
Sun, 19 Jul 2020 20:28:21 +0000 (16:28 -0400)
committerManuel Nickschas <sputnick@quassel-irc.org>
Sat, 28 Nov 2020 12:42:31 +0000 (13:42 +0100)
commit33a1a6f1bf47db069acae3eaa88a1aa156342002
treee6cb591e3e70b764ec8117a9916c27f3651f336c
parent1dc525a6f105f8db449bf04b127147f24de3d421
common: Allow skipping negotiation of IRCv3 caps

Add "skipCaps" to Network, storing a list of IRCv3 capabilities to
skip during capability negotiation.  This allows selectively disabling
capabilities on specific IRC networks.  Some networks might not behave
as expected, and some IRC features (e.g. "echo-message" support) are
enough of a departure from traditional IRC behavior that users may
want to turn it off.

Add the necessary migrations and setup to SQLite and PostgreSQL.

Add the "SkipIrcCaps" feature flag to signal protocol support.

Fix up a comment in CoreNetwork referring to an old variable name.

Update the SQL README to mention the Serializers protocol checks.
Missing this caused me a few hours of confusion over why the protocol
change wasn't being received :)
21 files changed:
src/common/network.cpp
src/common/network.h
src/common/quassel.h
src/common/serializers/serializers.cpp
src/core/SQL/PostgreSQL/insert_network.sql
src/core/SQL/PostgreSQL/migrate_write_network.sql
src/core/SQL/PostgreSQL/select_networks_for_user.sql
src/core/SQL/PostgreSQL/setup_040_network.sql
src/core/SQL/PostgreSQL/update_network.sql
src/core/SQL/PostgreSQL/version/31/upgrade_000_alter_network_add_skipcaps.sql [new file with mode: 0644]
src/core/SQL/README.md
src/core/SQL/SQLite/insert_network.sql
src/core/SQL/SQLite/migrate_read_network.sql
src/core/SQL/SQLite/select_networks_for_user.sql
src/core/SQL/SQLite/setup_020_network.sql
src/core/SQL/SQLite/update_network.sql
src/core/SQL/SQLite/version/32/upgrade_000_alter_network_add_skipcaps.sql [new file with mode: 0644]
src/core/abstractsqlstorage.h
src/core/corenetwork.cpp
src/core/postgresqlstorage.cpp
src/core/sqlitestorage.cpp