Code_t get_a_message(char **buf) { Code_t status; int size; char **server; status = get_servername(&server); if(!status) { status = get_message_from_server(buf, &size, server[0]); } if(status){ syslog(LOG_INFO, "GMS get server failed, %s", error_message(status)); } if(!status) { status = put_fallback_file(*buf, size, GMS_MESSAGE_NAME); /* but we don't really care what it is, the message is ok */ if(status) syslog(LOG_INFO, "GMS put failed, %s", error_message(status)); return(0); } status = get_fallback_file(buf, &size, GMS_MESSAGE_NAME); if(status) { syslog(LOG_INFO, "GMS put failed, %s", error_message(status)); /* we have no message at all... */ return(status); } else { return(0); } }
LM_MESSAGE_SUB_TYPE_GET); for (i = 0; iq_request_handlers[i].xmlns && strcmp(iq_request_handlers[i].xmlns, xmlns) != 0 ; ++i) ; query = lm_message_node_add_child(iq->node, iq_request_handlers[i].querytag, NULL); lm_message_node_set_attribute(query, "xmlns", xmlns); if (!g_strcmp0(xmlns, NS_PING)) { // Create handler for ping queries struct timeval *now = g_new(struct timeval, 1); gettimeofday(now, NULL); data = (gpointer)now; notifier = g_free; } else if (!g_strcmp0(xmlns, NS_DISCO_INFO)) { gchar *servername = get_servername(settings_opt_get("jid"), settings_opt_get("server")); lm_message_node_set_attribute(iq->node, "to", servername); g_free(servername); } handler = lm_message_handler_new(iq_request_handlers[i].handler, data, notifier); lm_connection_send_with_reply(lconnection, iq, handler, &error); lm_message_handler_unref(handler); lm_message_unref(iq); if (error) { scr_LogPrint(LPRINT_LOGNORM, "Error sending IQ request: %s.", error->message); g_error_free(error); }