diff --git a/src/networkplugin.cpp b/src/networkplugin.cpp index f3cd149b1d8167c33c9abe5aca4ee20e97ad5b63..df01f55ec072cd2d23702b12a34021357461379e 100644 --- a/src/networkplugin.cpp +++ b/src/networkplugin.cpp @@ -146,6 +146,16 @@ void NetworkPlugin::handleLogoutPayload(const std::string &data) { handleLogoutRequest(payload.user(), payload.legacyname()); } +void NetworkPlugin::handleConvMessagePayload(const std::string &data) { + pbnetwork::ConversationMessage payload; + if (payload.ParseFromString(data) == false) { + // TODO: ERROR + return; + } + + handleMessageSendRequest(payload.username(), payload.buddyname(), payload.message()); +} + void NetworkPlugin::handleDataRead(const Swift::ByteArray &data) { long expected_size = 0; m_data += data.toString(); @@ -180,6 +190,9 @@ void NetworkPlugin::handleDataRead(const Swift::ByteArray &data) { case pbnetwork::WrapperMessage_Type_TYPE_PING: sendPong(); break; + case pbnetwork::WrapperMessage_Type_TYPE_CONV_MESSAGE: + handleConvMessagePayload(wrapper.payload()); + break; default: return; }