libpurple/purpleconversation.c

changeset 43056
49358391e695
parent 43018
78cd7c6e8c40
child 43064
ac5311a8f11e
--- a/libpurple/purpleconversation.c	Sun Nov 10 00:55:40 2024 -0600
+++ b/libpurple/purpleconversation.c	Sun Nov 10 02:29:31 2024 -0600
@@ -1530,6 +1530,7 @@
 {
 	PurpleAccount *account = NULL;
 	PurpleProtocol *protocol = NULL;
+	PurpleProtocolConversation *protocol_conversation = NULL;
 	GTask *task = NULL;
 
 	g_return_if_fail(PURPLE_IS_CONVERSATION(conversation));
@@ -1555,6 +1556,18 @@
 		return;
 	}
 
+	protocol_conversation = PURPLE_PROTOCOL_CONVERSATION(protocol);
+	if(!purple_protocol_conversation_implements_send_message(protocol_conversation))
+	{
+		g_task_return_new_error(task, PURPLE_CONVERSATION_DOMAIN, 0,
+		                        "protocol does not implement "
+		                        "PurpleProtocolConversation.send_message");
+
+		g_clear_object(&task);
+
+		return;
+	}
+
 	purple_protocol_conversation_send_message_async(PURPLE_PROTOCOL_CONVERSATION(protocol),
 	                                                conversation,
 	                                                message,

mercurial