summaryrefslogtreecommitdiff
path: root/protocols/WhatsAppWeb/src/utils.cpp
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2022-10-04 21:19:07 +0300
committerGeorge Hazan <ghazan@miranda.im>2022-10-04 21:19:07 +0300
commite84083c4ba1f1e68b0bc76939f2d0902d3c03c9e (patch)
tree311c9d51520a47882ae502aa173d69fe64fc73e6 /protocols/WhatsAppWeb/src/utils.cpp
parentff768b032e5c96b546a0f66a98b0555845bd8217 (diff)
decoding messages - beginning
Diffstat (limited to 'protocols/WhatsAppWeb/src/utils.cpp')
-rw-r--r--protocols/WhatsAppWeb/src/utils.cpp26
1 files changed, 23 insertions, 3 deletions
diff --git a/protocols/WhatsAppWeb/src/utils.cpp b/protocols/WhatsAppWeb/src/utils.cpp
index 509f277f49..3f20216b13 100644
--- a/protocols/WhatsAppWeb/src/utils.cpp
+++ b/protocols/WhatsAppWeb/src/utils.cpp
@@ -41,6 +41,24 @@ WAJid::WAJid(const char *pszJid)
user = tmp;
}
+bool WAJid::isUser() const
+{ return server == S_WHATSAPP_NET;
+}
+
+bool WAJid::isGroup() const
+{ return server == "g.us";
+}
+
+bool WAJid::isBroadcast() const
+{
+ return server == "broadcast";
+}
+
+bool WAJid::isStatusBroadcast() const
+{
+ return isBroadcast() && user == "status";
+}
+
CMStringA WAJid::toString() const
{
CMStringA ret(user);
@@ -352,7 +370,7 @@ MBinBuffer WhatsAppProto::unzip(const MBinBuffer &src)
z_stream strm = {};
inflateInit(&strm);
- strm.avail_in = src.length();
+ strm.avail_in = (uInt)src.length();
strm.next_in = (Bytef *)src.data();
MBinBuffer res;
@@ -365,11 +383,13 @@ MBinBuffer WhatsAppProto::unzip(const MBinBuffer &src)
int ret = inflate(&strm, Z_NO_FLUSH);
switch (ret) {
case Z_NEED_DICT:
- ret = Z_DATA_ERROR; /* and fall through */
+ ret = Z_DATA_ERROR;
+ __fallthrough;
+
case Z_DATA_ERROR:
case Z_MEM_ERROR:
inflateEnd(&strm);
- return ret;
+ return res;
}
res.append(buf, sizeof(buf) - strm.avail_out);