1
1
mirror of https://github.com/profanity-im/profanity.git synced 2025-02-02 15:08:15 -05:00

Tidy message.c

This commit is contained in:
James Booth 2015-05-02 23:40:14 +01:00
parent be4ee40ed4
commit ddc64755a0

View File

@ -53,18 +53,12 @@
#define HANDLE(ns, type, func) xmpp_handler_add(conn, func, ns, STANZA_NAME_MESSAGE, type, ctx) #define HANDLE(ns, type, func) xmpp_handler_add(conn, func, ns, STANZA_NAME_MESSAGE, type, ctx)
static int _groupchat_handler(xmpp_conn_t * const conn, static int _groupchat_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza, void * const userdata);
xmpp_stanza_t * const stanza, void * const userdata); static int _chat_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza, void * const userdata);
static int _chat_handler(xmpp_conn_t * const conn, static int _muc_user_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza, void * const userdata);
xmpp_stanza_t * const stanza, void * const userdata); static int _conference_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza, void * const userdata);
static int _muc_user_handler(xmpp_conn_t * const conn, static int _captcha_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza, void * const userdata);
xmpp_stanza_t * const stanza, void * const userdata); static int _message_error_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza, void * const userdata);
static int _conference_handler(xmpp_conn_t * const conn,
xmpp_stanza_t * const stanza, void * const userdata);
static int _captcha_handler(xmpp_conn_t * const conn,
xmpp_stanza_t * const stanza, void * const userdata);
static int _message_error_handler(xmpp_conn_t * const conn,
xmpp_stanza_t * const stanza, void * const userdata);
void void
message_add_handlers(void) message_add_handlers(void)
@ -273,7 +267,7 @@ _message_error_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
char *jid = xmpp_stanza_get_attribute(stanza, STANZA_ATTR_FROM); char *jid = xmpp_stanza_get_attribute(stanza, STANZA_ATTR_FROM);
xmpp_stanza_t *error_stanza = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_ERROR); xmpp_stanza_t *error_stanza = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_ERROR);
char *type = NULL; char *type = NULL;
if (error_stanza != NULL) { if (error_stanza) {
type = xmpp_stanza_get_attribute(error_stanza, STANZA_ATTR_TYPE); type = xmpp_stanza_get_attribute(error_stanza, STANZA_ATTR_TYPE);
} }
@ -281,15 +275,15 @@ _message_error_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
char *err_msg = stanza_get_error_message(stanza); char *err_msg = stanza_get_error_message(stanza);
GString *log_msg = g_string_new("message stanza error received"); GString *log_msg = g_string_new("message stanza error received");
if (id != NULL) { if (id) {
g_string_append(log_msg, " id="); g_string_append(log_msg, " id=");
g_string_append(log_msg, id); g_string_append(log_msg, id);
} }
if (jid != NULL) { if (jid) {
g_string_append(log_msg, " from="); g_string_append(log_msg, " from=");
g_string_append(log_msg, jid); g_string_append(log_msg, jid);
} }
if (type != NULL) { if (type) {
g_string_append(log_msg, " type="); g_string_append(log_msg, " type=");
g_string_append(log_msg, type); g_string_append(log_msg, type);
} }
@ -324,29 +318,32 @@ _muc_user_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
xmpp_stanza_t *xns_muc_user = xmpp_stanza_get_child_by_ns(stanza, STANZA_NS_MUC_USER); xmpp_stanza_t *xns_muc_user = xmpp_stanza_get_child_by_ns(stanza, STANZA_NS_MUC_USER);
char *room = xmpp_stanza_get_attribute(stanza, STANZA_ATTR_FROM); char *room = xmpp_stanza_get_attribute(stanza, STANZA_ATTR_FROM);
if (room == NULL) { if (!room) {
log_warning("Message received with no from attribute, ignoring"); log_warning("Message received with no from attribute, ignoring");
return 1; return 1;
} }
// XEP-0045 // XEP-0045
xmpp_stanza_t *invite = xmpp_stanza_get_child_by_name(xns_muc_user, STANZA_NAME_INVITE); xmpp_stanza_t *invite = xmpp_stanza_get_child_by_name(xns_muc_user, STANZA_NAME_INVITE);
if (invite != NULL) { if (!invite) {
return 1;
}
char *invitor_jid = xmpp_stanza_get_attribute(invite, STANZA_ATTR_FROM); char *invitor_jid = xmpp_stanza_get_attribute(invite, STANZA_ATTR_FROM);
if (invitor_jid == NULL) { if (!invitor_jid) {
log_warning("Chat room invite received with no from attribute"); log_warning("Chat room invite received with no from attribute");
return 1; return 1;
} }
Jid *jidp = jid_create(invitor_jid); Jid *jidp = jid_create(invitor_jid);
if (jidp == NULL) { if (!jidp) {
return 1; return 1;
} }
char *invitor = jidp->barejid; char *invitor = jidp->barejid;
char *reason = NULL; char *reason = NULL;
xmpp_stanza_t *reason_st = xmpp_stanza_get_child_by_name(invite, STANZA_NAME_REASON); xmpp_stanza_t *reason_st = xmpp_stanza_get_child_by_name(invite, STANZA_NAME_REASON);
if (reason_st != NULL) { if (reason_st) {
reason = xmpp_stanza_get_text(reason_st); reason = xmpp_stanza_get_text(reason_st);
} }
@ -364,7 +361,6 @@ _muc_user_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
if (password) { if (password) {
xmpp_free(ctx, password); xmpp_free(ctx, password);
} }
}
return 1; return 1;
} }
@ -380,19 +376,19 @@ _conference_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
char *reason = NULL; char *reason = NULL;
char *password = NULL; char *password = NULL;
if (from == NULL) { if (!from) {
log_warning("Message received with no from attribute, ignoring"); log_warning("Message received with no from attribute, ignoring");
return 1; return 1;
} }
// XEP-0249 // XEP-0249
room = xmpp_stanza_get_attribute(xns_conference, STANZA_ATTR_JID); room = xmpp_stanza_get_attribute(xns_conference, STANZA_ATTR_JID);
if (room == NULL) { if (!room) {
return 1; return 1;
} }
Jid *jidp = jid_create(from); Jid *jidp = jid_create(from);
if (jidp == NULL) { if (!jidp) {
return 1; return 1;
} }
invitor = jidp->barejid; invitor = jidp->barejid;
@ -414,16 +410,16 @@ _captcha_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
xmpp_ctx_t *ctx = connection_get_ctx(); xmpp_ctx_t *ctx = connection_get_ctx();
char *from = xmpp_stanza_get_attribute(stanza, STANZA_ATTR_FROM); char *from = xmpp_stanza_get_attribute(stanza, STANZA_ATTR_FROM);
if (from == NULL) { if (!from) {
log_warning("Message received with no from attribute, ignoring"); log_warning("Message received with no from attribute, ignoring");
return 1; return 1;
} }
// XEP-0158 // XEP-0158
xmpp_stanza_t *body = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_BODY); xmpp_stanza_t *body = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_BODY);
if (body != NULL) { if (body) {
char *message = xmpp_stanza_get_text(body); char *message = xmpp_stanza_get_text(body);
if (message != NULL) { if (message) {
sv_ev_room_broadcast(from, message); sv_ev_room_broadcast(from, message);
xmpp_free(ctx, message); xmpp_free(ctx, message);
} }
@ -443,7 +439,7 @@ _groupchat_handler(xmpp_conn_t * const conn,
// handle room subject // handle room subject
xmpp_stanza_t *subject = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_SUBJECT); xmpp_stanza_t *subject = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_SUBJECT);
if (subject != NULL) { if (subject) {
message = xmpp_stanza_get_text(subject); message = xmpp_stanza_get_text(subject);
sv_ev_room_subject(jid->barejid, jid->resourcepart, message); sv_ev_room_subject(jid->barejid, jid->resourcepart, message);
xmpp_free(ctx, message); xmpp_free(ctx, message);
@ -453,11 +449,11 @@ _groupchat_handler(xmpp_conn_t * const conn,
} }
// handle room broadcasts // handle room broadcasts
if (jid->resourcepart == NULL) { if (!jid->resourcepart) {
xmpp_stanza_t *body = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_BODY); xmpp_stanza_t *body = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_BODY);
if (body != NULL) { if (body) {
message = xmpp_stanza_get_text(body); message = xmpp_stanza_get_text(body);
if (message != NULL) { if (message) {
sv_ev_room_broadcast(room_jid, message); sv_ev_room_broadcast(room_jid, message);
xmpp_free(ctx, message); xmpp_free(ctx, message);
} }
@ -486,9 +482,9 @@ _groupchat_handler(xmpp_conn_t * const conn,
xmpp_stanza_t *body = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_BODY); xmpp_stanza_t *body = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_BODY);
// check for and deal with message // check for and deal with message
if (body != NULL) { if (body) {
message = xmpp_stanza_get_text(body); message = xmpp_stanza_get_text(body);
if (message != NULL) { if (message) {
if (delayed) { if (delayed) {
sv_ev_room_history(jid->barejid, jid->resourcepart, tv_stamp, message); sv_ev_room_history(jid->barejid, jid->resourcepart, tv_stamp, message);
} else { } else {
@ -556,7 +552,7 @@ _chat_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
// check if carbon message // check if carbon message
xmpp_stanza_t *carbons = xmpp_stanza_get_child_by_ns(stanza, STANZA_NS_CARBONS); xmpp_stanza_t *carbons = xmpp_stanza_get_child_by_ns(stanza, STANZA_NS_CARBONS);
if(carbons) { if (carbons) {
char *name = xmpp_stanza_get_name(carbons); char *name = xmpp_stanza_get_name(carbons);
if ((g_strcmp0(name, "received") == 0) || (g_strcmp0(name, "sent")) == 0){ if ((g_strcmp0(name, "received") == 0) || (g_strcmp0(name, "sent")) == 0){
xmpp_stanza_t *forwarded = xmpp_stanza_get_child_by_ns(carbons, STANZA_NS_FORWARD); xmpp_stanza_t *forwarded = xmpp_stanza_get_child_by_ns(carbons, STANZA_NS_FORWARD);
@ -568,9 +564,7 @@ _chat_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
gchar *from = xmpp_stanza_get_attribute(message, STANZA_ATTR_FROM); gchar *from = xmpp_stanza_get_attribute(message, STANZA_ATTR_FROM);
// happens when receive a carbon of a self sent message // happens when receive a carbon of a self sent message
if(to == NULL) { if (!to) to = from;
to = from;
}
Jid *jid_from = jid_create(from); Jid *jid_from = jid_create(from);
Jid *jid_to = jid_create(to); Jid *jid_to = jid_create(to);
@ -578,9 +572,9 @@ _chat_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
// check for and deal with message // check for and deal with message
xmpp_stanza_t *body = xmpp_stanza_get_child_by_name(message, STANZA_NAME_BODY); xmpp_stanza_t *body = xmpp_stanza_get_child_by_name(message, STANZA_NAME_BODY);
if (body != NULL) { if (body) {
char *message = xmpp_stanza_get_text(body); char *message = xmpp_stanza_get_text(body);
if (message != NULL) { if (message) {
// if we are the recipient, treat as standard incoming message // if we are the recipient, treat as standard incoming message
if(g_strcmp0(my_jid->barejid, jid_to->barejid) == 0){ if(g_strcmp0(my_jid->barejid, jid_to->barejid) == 0){
sv_ev_incoming_message(jid_from->barejid, jid_from->resourcepart, message); sv_ev_incoming_message(jid_from->barejid, jid_from->resourcepart, message);
@ -621,9 +615,9 @@ _chat_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
// check for and deal with message // check for and deal with message
xmpp_stanza_t *body = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_BODY); xmpp_stanza_t *body = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_BODY);
if (body != NULL) { if (body) {
char *message = xmpp_stanza_get_text(body); char *message = xmpp_stanza_get_text(body);
if (message != NULL) { if (message) {
if (delayed) { if (delayed) {
sv_ev_delayed_private_message(jid->str, message, tv_stamp); sv_ev_delayed_private_message(jid->str, message, tv_stamp);
} else { } else {
@ -645,9 +639,9 @@ _chat_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
// check for and deal with message // check for and deal with message
xmpp_stanza_t *body = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_BODY); xmpp_stanza_t *body = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_BODY);
if (body != NULL) { if (body) {
char *message = xmpp_stanza_get_text(body); char *message = xmpp_stanza_get_text(body);
if (message != NULL) { if (message) {
if (delayed) { if (delayed) {
sv_ev_delayed_message(jid->barejid, message, tv_stamp); sv_ev_delayed_message(jid->barejid, message, tv_stamp);
} else { } else {