summaryrefslogtreecommitdiff
path: root/protocols/WhatsAppWeb/src/proto.h
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/WhatsAppWeb/src/proto.h')
-rw-r--r--protocols/WhatsAppWeb/src/proto.h18
1 files changed, 12 insertions, 6 deletions
diff --git a/protocols/WhatsAppWeb/src/proto.h b/protocols/WhatsAppWeb/src/proto.h
index a615d4a8d2..f3e574b804 100644
--- a/protocols/WhatsAppWeb/src/proto.h
+++ b/protocols/WhatsAppWeb/src/proto.h
@@ -9,7 +9,7 @@ Copyright © 2019-21 George Hazan
#define PROTO_H
class WhatsAppProto;
-typedef void (WhatsAppProto:: *WA_PKT_HANDLER)(const JSONNode &node);
+typedef void (WhatsAppProto:: *WA_PKT_HANDLER)(const JSONNode &node, void*);
enum class WAMetric
{
@@ -68,6 +68,7 @@ struct WARequest
{
CMStringA szPrefix;
WA_PKT_HANDLER pHandler;
+ void *pUserInfo;
};
struct WAUser
@@ -164,7 +165,7 @@ class WhatsAppProto : public PROTO<WhatsAppProto>
OBJLIST<WARequest> m_arPacketQueue;
bool WSReadPacket(const WSHeader &hdr, MBinBuffer &buf);
- int WSSend(const CMStringA &str, WA_PKT_HANDLER = nullptr);
+ int WSSend(const CMStringA &str, WA_PKT_HANDLER = nullptr, void *pUserIndo = nullptr);
int WSSendNode(const char *pszPrefix, WAMetric, int flags, WANode &node, WA_PKT_HANDLER = nullptr);
void OnLoggedIn(void);
@@ -181,10 +182,11 @@ class WhatsAppProto : public PROTO<WhatsAppProto>
/// Request handlers ///////////////////////////////////////////////////////////////////
- void OnRestoreSession1(const JSONNode &node);
- void OnRestoreSession2(const JSONNode &node);
- void OnSendMessage(const JSONNode &node);
- void OnStartSession(const JSONNode &node);
+ void OnGetAvatarInfo(const JSONNode &node, void*);
+ void OnRestoreSession1(const JSONNode &node, void*);
+ void OnRestoreSession2(const JSONNode &node, void*);
+ void OnSendMessage(const JSONNode &node, void*);
+ void OnStartSession(const JSONNode &node, void*);
// binary packets
void ProcessBinaryPacket(const void *pData, size_t cbLen);
@@ -251,6 +253,10 @@ public:
struct CMPlugin : public ACCPROTOPLUGIN<WhatsAppProto>
{
signal_context *pCtx;
+
+ HNETLIBUSER hAvatarUser = nullptr;
+ HNETLIBCONN hAvatarConn = nullptr;
+ bool SaveFile(const char *pszUrl, PROTO_AVATAR_INFORMATION &ai);
CMPlugin();