--- a/spasm-chat.c Thu May 18 19:43:51 2017 -0500
+++ b/spasm-chat.c Thu May 18 22:18:39 2017 -0500
@@ -20,7 +20,10 @@
/******************************************************************************
@@ -35,8 +38,64 @@
/******************************************************************************
+ *****************************************************************************/ +_purple_spasm_chat_service_send(PurpleSpasmChatService *chat, + const gchar *format, ...) + GCancellable *cancellable = NULL; + cancellable = purple_spasm_account_get_cancellable(chat->sa); + va_start(vargs, format); + buffer = g_strdup_vprintf(format, vargs); + success = g_output_stream_printf( + PurpleConnection *purple_connection = purple_spasm_account_get_connection(chat->sa); + purple_connection_error(purple_connection, error->message); + purple_connection_error(purple_connection, "unknown error"); + g_output_stream_flush(chat->output_stream, NULL, NULL); +/****************************************************************************** *****************************************************************************/
+_purple_spasm_chat_service_parse(PurpleSpasmChatService *chat, + if(purple_str_has_prefix(buffer, "PING ")) { + purple_debug_misc("spasm", "PING? PONG!\n"); + _purple_spasm_chat_service_send(chat, "PONG %s\r\n", buffer + 5); static void _purple_spasm_chat_read(PurpleSpasmChatService *chat);
@@ -81,6 +140,8 @@
purple_debug_info("spasm", "chat buffer: %s\n", buffer);
+ _purple_spasm_chat_service_parse(chat, buffer); _purple_spasm_chat_read(chat);
@@ -102,13 +163,10 @@
*****************************************************************************/
_purple_spasm_chat_login_cb(GObject *obj, GAsyncResult *res, gpointer data) {
- GCancellable *cancellable = NULL;
PurpleConnection *purple_connection = NULL;
PurpleSpasmChatService *chat = (PurpleSpasmChatService *)data;
- gboolean success = FALSE;
- cancellable = purple_spasm_account_get_cancellable(chat->sa);
purple_connection = purple_spasm_account_get_connection(chat->sa);
chat->socket_connection = g_socket_client_connect_to_host_finish(
@@ -134,53 +192,18 @@
chat->output_stream = g_io_stream_get_output_stream(G_IO_STREAM(chat->socket_connection));
- success = g_output_stream_printf(
+ _purple_spasm_chat_service_send( purple_spasm_account_get_access_token(chat->sa)
- g_prefix_error(&error, "failed to set password: ");
- purple_connection_error(purple_connection, error->message);
- purple_connection_error(purple_connection, "unknown error");
- g_output_stream_flush(chat->output_stream, NULL, NULL);
/* now try to use our nick */
- success = g_output_stream_printf(
+ _purple_spasm_chat_service_send( purple_spasm_account_get_name(chat->sa)
- g_prefix_error(&error, "failed to set nick : ");
- purple_connection_error(purple_connection, error->message);
- purple_connection_error(purple_connection, "unknown error");
- g_output_stream_flush(chat->output_stream, NULL, NULL);
chat->input_stream = g_data_input_stream_new(
g_io_stream_get_input_stream(G_IO_STREAM(chat->socket_connection))