Add prof_message_t to wrap all message attributes
Probably missing copy of body to plain in carbon and privmessage. Only covers the incoming message path because goal is OMEMO decryption of untrusted message. Cover some of the log functions but not all.
This commit is contained in:
@@ -35,14 +35,34 @@
|
||||
#ifndef XMPP_MESSAGE_H
|
||||
#define XMPP_MESSAGE_H
|
||||
|
||||
#define PROF_MSG_ENC_OTR 1
|
||||
#define PROF_MSG_ENC_PGP 2
|
||||
#define PROF_MSG_ENC_OMEMO 4
|
||||
#define PROF_MSG_TRUSTED 8
|
||||
#include "xmpp/xmpp.h"
|
||||
|
||||
typedef enum {
|
||||
PROF_MSG_ENC_PLAIN,
|
||||
PROF_MSG_ENC_OTR,
|
||||
PROF_MSG_ENC_PGP,
|
||||
PROF_MSG_ENC_OMEMO
|
||||
} prof_enc_t;
|
||||
|
||||
typedef struct {
|
||||
Jid *jid;
|
||||
char *id;
|
||||
/* The raw body from xmpp message, either plaintext or OTR encrypted text */
|
||||
char *body;
|
||||
/* The encrypted message as for PGP */
|
||||
char *encrypted;
|
||||
/* The message that will be printed on screen and logs */
|
||||
char *plain;
|
||||
GDateTime *timestamp;
|
||||
prof_enc_t enc;
|
||||
gboolean trusted;
|
||||
} prof_message_t;
|
||||
|
||||
typedef int(*ProfMessageCallback)(xmpp_stanza_t *const stanza, void *const userdata);
|
||||
typedef void(*ProfMessageFreeCallback)(void *userdata);
|
||||
|
||||
prof_message_t *message_init(void);
|
||||
void message_free(prof_message_t *message);
|
||||
void message_handlers_init(void);
|
||||
void message_handlers_clear(void);
|
||||
void message_pubsub_event_handler_add(const char *const node, ProfMessageCallback func, ProfMessageFreeCallback free_func, void *userdata);
|
||||
|
||||
Reference in New Issue
Block a user