Refactored presence_error_handler
This commit is contained in:
@@ -195,34 +195,35 @@ _message_error_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
|
||||
{
|
||||
char *id = xmpp_stanza_get_id(stanza);
|
||||
char *from = xmpp_stanza_get_attribute(stanza, STANZA_ATTR_FROM);
|
||||
|
||||
// stanza_get_error never returns NULL
|
||||
char *err_msg = stanza_get_error_message(stanza);
|
||||
|
||||
GString *log_msg = g_string_new("Error receievd");
|
||||
if (id != NULL) {
|
||||
g_string_append(log_msg, " (id:");
|
||||
g_string_append(log_msg, id);
|
||||
g_string_append(log_msg, ")");
|
||||
}
|
||||
if (from != NULL) {
|
||||
g_string_append(log_msg, " (from:");
|
||||
g_string_append(log_msg, from);
|
||||
g_string_append(log_msg, ")");
|
||||
}
|
||||
g_string_append(log_msg, ", error: ");
|
||||
g_string_append(log_msg, err_msg);
|
||||
|
||||
log_info(log_msg->str);
|
||||
|
||||
g_string_free(log_msg, TRUE);
|
||||
|
||||
xmpp_stanza_t *error_stanza = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_ERROR);
|
||||
char *type = NULL;
|
||||
if (error_stanza != NULL) {
|
||||
type = xmpp_stanza_get_attribute(error_stanza, STANZA_ATTR_TYPE);
|
||||
}
|
||||
|
||||
// stanza_get_error never returns NULL
|
||||
char *err_msg = stanza_get_error_message(stanza);
|
||||
|
||||
GString *log_msg = g_string_new("message stanza error received");
|
||||
if (id != NULL) {
|
||||
g_string_append(log_msg, " id=");
|
||||
g_string_append(log_msg, id);
|
||||
}
|
||||
if (from != NULL) {
|
||||
g_string_append(log_msg, " from=");
|
||||
g_string_append(log_msg, from);
|
||||
}
|
||||
if (type != NULL) {
|
||||
g_string_append(log_msg, " type=");
|
||||
g_string_append(log_msg, type);
|
||||
}
|
||||
g_string_append(log_msg, " error=");
|
||||
g_string_append(log_msg, err_msg);
|
||||
|
||||
log_info(log_msg->str);
|
||||
|
||||
g_string_free(log_msg, TRUE);
|
||||
|
||||
// handle recipient not found ('from' contains a value and type is 'cancel')
|
||||
if ((from != NULL) && ((type != NULL && (strcmp(type, "cancel") == 0)))) {
|
||||
handle_recipient_not_found(from, err_msg);
|
||||
@@ -236,6 +237,8 @@ _message_error_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
|
||||
handle_error(err_msg);
|
||||
}
|
||||
|
||||
free(err_msg);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user