From 97201322ec9f269fff0ffedd6334370b03d56682 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Wed, 30 Nov 2022 20:40:45 +0000 Subject: Fix using C++11 features in code that was backported from master. --- src/clientprotocol.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/clientprotocol.cpp b/src/clientprotocol.cpp index 9a669d12b..553531840 100644 --- a/src/clientprotocol.cpp +++ b/src/clientprotocol.cpp @@ -73,8 +73,9 @@ std::string ClientProtocol::Message::EscapeTag(const std::string& value) { std::string ret; ret.reserve(value.size()); - for (const char& chr : value) + for (std::string::const_iterator it = value.begin(); it != value.end(); ++it) { + const char chr = *it; switch (chr) { case ' ': -- cgit v1.3.1-10-gc9f91 From 43b5c69523d68cf7349010758997ed9d21de6704 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Wed, 30 Nov 2022 20:43:51 +0000 Subject: Switch the Ubuntu CI to use ubuntu-latest. --- .github/workflows/ci-linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml index 692167560..48fe1ee96 100644 --- a/.github/workflows/ci-linux.yml +++ b/.github/workflows/ci-linux.yml @@ -7,7 +7,7 @@ on: jobs: build: if: "!contains(github.event.head_commit.message, '[skip ubuntu ci]')" - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest env: CXXFLAGS: -std=${{ matrix.standard }} TEST_BUILD_MODULES: argon2 geo_maxmind ldap mysql pgsql regex_pcre regex_posix regex_re2 regex_stdlib regex_tre sqlite3 ssl_gnutls ssl_mbedtls ssl_openssl sslrehashsignal -- cgit v1.3.1-10-gc9f91 From 1c68f3d2e29572834f14ae989174621a380e5b04 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Wed, 30 Nov 2022 21:11:40 +0000 Subject: Mark the entire client protocol namespace as CoreExport. --- include/clientprotocol.h | 20 ++++++++++---------- include/clientprotocolevent.h | 4 ++-- include/clientprotocolmsg.h | 26 +++++++++++++------------- include/typedefs.h | 2 +- 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/include/clientprotocol.h b/include/clientprotocol.h index 9f3166008..c606dd670 100644 --- a/include/clientprotocol.h +++ b/include/clientprotocol.h @@ -34,7 +34,7 @@ namespace ClientProtocol /** Contains a message parsed from wire format. * Used by Serializer::Parse(). */ -struct ClientProtocol::ParseOutput +struct CoreExport ClientProtocol::ParseOutput { /** Command name, must not be empty. */ @@ -51,7 +51,7 @@ struct ClientProtocol::ParseOutput /** A selection of zero or more tags in a TagMap. */ -class ClientProtocol::TagSelection +class CoreExport ClientProtocol::TagSelection { std::bitset<64> selection; @@ -90,7 +90,7 @@ class ClientProtocol::TagSelection } }; -class ClientProtocol::MessageSource +class CoreExport ClientProtocol::MessageSource { User* sourceuser; const std::string* sourcestr; @@ -178,7 +178,7 @@ class ClientProtocol::MessageSource * All messages have a command name, a list of parameters and a map of tags, the last two can be empty. * They also always have a source, see class MessageSource. */ -class ClientProtocol::Message : public ClientProtocol::MessageSource +class CoreExport ClientProtocol::Message : public ClientProtocol::MessageSource { public: /** Contains information required to identify a specific version of a serialized message. @@ -466,7 +466,7 @@ class ClientProtocol::Message : public ClientProtocol::MessageSource * * Event hooks attached to a specific event can alter the messages sent for that event. */ -class ClientProtocol::Event +class CoreExport ClientProtocol::Event { EventProvider* event; Message* initialmsg; @@ -523,7 +523,7 @@ class ClientProtocol::Event void GetMessagesForUser(LocalUser* user, MessageList& messagelist); }; -class ClientProtocol::MessageTagEvent +class CoreExport ClientProtocol::MessageTagEvent : public Events::ModuleEventProvider { public: @@ -538,7 +538,7 @@ class ClientProtocol::MessageTagEvent * with tags before the message is sent and they have the job of determining whether a user should * get a message tag or be allowed to send one. */ -class ClientProtocol::MessageTagProvider : public Events::ModuleEventListener +class CoreExport ClientProtocol::MessageTagProvider : public Events::ModuleEventListener { public: /** Constructor. @@ -585,7 +585,7 @@ class ClientProtocol::MessageTagProvider : public Events::ModuleEventListener * A protocol event hook is attached to a single event type. It has the ability to alter or block messages * sent to users which belong to the event the hook is attached to. */ -class ClientProtocol::EventHook : public Events::ModuleEventListener +class CoreExport ClientProtocol::EventHook : public Events::ModuleEventListener { public: static std::string GetEventName(const std::string& name) @@ -629,7 +629,7 @@ class ClientProtocol::EventHook : public Events::ModuleEventListener * Protocol event hooks can be attached to the instances of these providers. The core has event * providers for most common IRC events defined in RFC1459. */ -class ClientProtocol::EventProvider : public Events::ModuleEventProvider +class CoreExport ClientProtocol::EventProvider : public Events::ModuleEventProvider { public: /** Constructor. @@ -646,7 +646,7 @@ class ClientProtocol::EventProvider : public Events::ModuleEventProvider /** Commonly used client protocol events. * Available via InspIRCd::GetRFCEvents(). */ -struct ClientProtocol::RFCEvents +struct CoreExport ClientProtocol::RFCEvents { EventProvider numeric; EventProvider join; diff --git a/include/clientprotocolevent.h b/include/clientprotocolevent.h index 4ebcd0551..3685234f5 100644 --- a/include/clientprotocolevent.h +++ b/include/clientprotocolevent.h @@ -29,7 +29,7 @@ namespace ClientProtocol } } -struct ClientProtocol::Events::Join : public ClientProtocol::Messages::Join, public ClientProtocol::Event +struct CoreExport ClientProtocol::Events::Join : public ClientProtocol::Messages::Join, public ClientProtocol::Event { Join() : ClientProtocol::Event(ServerInstance->GetRFCEvents().join, *this) @@ -49,7 +49,7 @@ struct ClientProtocol::Events::Join : public ClientProtocol::Messages::Join, pub } }; -class ClientProtocol::Events::Mode : public ClientProtocol::Event +class CoreExport ClientProtocol::Events::Mode : public ClientProtocol::Event { std::list modelist; std::vector modemsgplist; diff --git a/include/clientprotocolmsg.h b/include/clientprotocolmsg.h index 1962674af..2e4e909ee 100644 --- a/include/clientprotocolmsg.h +++ b/include/clientprotocolmsg.h @@ -45,7 +45,7 @@ namespace ClientProtocol * The first parameter is the target of the numeric which is almost always the nick of the user * the numeric will be sent to. */ -class ClientProtocol::Messages::Numeric : public ClientProtocol::Message +class CoreExport ClientProtocol::Messages::Numeric : public ClientProtocol::Message { char numericstr[4]; @@ -103,7 +103,7 @@ class ClientProtocol::Messages::Numeric : public ClientProtocol::Message /** JOIN message. * Sent when a user joins a channel. */ -class ClientProtocol::Messages::Join : public ClientProtocol::Message +class CoreExport ClientProtocol::Messages::Join : public ClientProtocol::Message { Membership* memb; @@ -153,7 +153,7 @@ class ClientProtocol::Messages::Join : public ClientProtocol::Message /** PART message. * Sent when a user parts a channel. */ -struct ClientProtocol::Messages::Part : public ClientProtocol::Message +struct CoreExport ClientProtocol::Messages::Part : public ClientProtocol::Message { /** Constructor. * @param memb Member parting. @@ -171,7 +171,7 @@ struct ClientProtocol::Messages::Part : public ClientProtocol::Message /** KICK message. * Sent when a user is kicked from a channel. */ -struct ClientProtocol::Messages::Kick : public ClientProtocol::Message +struct CoreExport ClientProtocol::Messages::Kick : public ClientProtocol::Message { /** Constructor. * @param source User that does the kick. @@ -190,7 +190,7 @@ struct ClientProtocol::Messages::Kick : public ClientProtocol::Message /** QUIT message. * Sent when a user quits. */ -struct ClientProtocol::Messages::Quit : public ClientProtocol::Message +struct CoreExport ClientProtocol::Messages::Quit : public ClientProtocol::Message { /** Constructor. * @param source User quitting. @@ -207,7 +207,7 @@ struct ClientProtocol::Messages::Quit : public ClientProtocol::Message /** NICK message. * Sent when a user changes their nickname. */ -struct ClientProtocol::Messages::Nick : public ClientProtocol::Message +struct CoreExport ClientProtocol::Messages::Nick : public ClientProtocol::Message { /** Constructor. * @param source User changing nicks. @@ -223,7 +223,7 @@ struct ClientProtocol::Messages::Nick : public ClientProtocol::Message /** MODE message. * Sent when modes are changed on a user or channel. */ -class ClientProtocol::Messages::Mode : public ClientProtocol::Message +class CoreExport ClientProtocol::Messages::Mode : public ClientProtocol::Message { Channel* chantarget; User* usertarget; @@ -389,7 +389,7 @@ class ClientProtocol::Messages::Mode : public ClientProtocol::Message /** TOPIC message. */ -struct ClientProtocol::Messages::Topic : public ClientProtocol::Message +struct CoreExport ClientProtocol::Messages::Topic : public ClientProtocol::Message { /** Constructor. * @param source User changing the topic. @@ -406,7 +406,7 @@ struct ClientProtocol::Messages::Topic : public ClientProtocol::Message /** PRIVMSG and NOTICE message. */ -class ClientProtocol::Messages::Privmsg : public ClientProtocol::Message +class CoreExport ClientProtocol::Messages::Privmsg : public ClientProtocol::Message { void PushTargetChan(char status, const Channel* targetchan) { @@ -618,7 +618,7 @@ class ClientProtocol::Messages::Privmsg : public ClientProtocol::Message /** INVITE message. * Sent when a user is invited to join a channel. */ -struct ClientProtocol::Messages::Invite : public ClientProtocol::Message +struct CoreExport ClientProtocol::Messages::Invite : public ClientProtocol::Message { /** Constructor. * @param source User inviting the target user. @@ -636,7 +636,7 @@ struct ClientProtocol::Messages::Invite : public ClientProtocol::Message /** PING message. * Used to check if a connection is still alive. */ -struct ClientProtocol::Messages::Ping : public ClientProtocol::Message +struct CoreExport ClientProtocol::Messages::Ping : public ClientProtocol::Message { /** Constructor. * The ping cookie is the name of the local server. @@ -660,7 +660,7 @@ struct ClientProtocol::Messages::Ping : public ClientProtocol::Message /** PONG message. * Sent as a reply to PING. */ -struct ClientProtocol::Messages::Pong : public ClientProtocol::Message +struct CoreExport ClientProtocol::Messages::Pong : public ClientProtocol::Message { /** Constructor. * @param cookie Ping cookie. Must remain valid as long as this object is alive. @@ -680,7 +680,7 @@ struct ClientProtocol::Messages::Pong : public ClientProtocol::Message /** ERROR message. * Sent to clients upon disconnection. */ -struct ClientProtocol::Messages::Error : public ClientProtocol::Message +struct CoreExport ClientProtocol::Messages::Error : public ClientProtocol::Message { /** Constructor. * @param text Error text. diff --git a/include/typedefs.h b/include/typedefs.h index 50670a279..057d5de60 100644 --- a/include/typedefs.h +++ b/include/typedefs.h @@ -64,7 +64,7 @@ namespace ClientProtocol typedef std::vector ParamList; typedef std::string SerializedMessage; - struct MessageTagData + struct CoreExport MessageTagData { MessageTagProvider* tagprov; std::string value; -- cgit v1.3.1-10-gc9f91