From 534ca62744466bba9fca3c4e19f59a0cc509f070 Mon Sep 17 00:00:00 2001 From: Martin Kelm Date: Thu, 7 Oct 2010 21:47:12 +0200 Subject: [PATCH] Added ssl status responses --- jimci-alpha | Bin 61847 -> 61847 bytes src/connection.c | 67 ++++++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 49 insertions(+), 18 deletions(-) diff --git a/jimci-alpha b/jimci-alpha index 4669762abf3c3c3c27d182225e9dcc10b1f6fb13..767dc9bcfd18ce9c9a6e63b8ca75554298f6021c 100755 GIT binary patch delta 13409 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 delta 12914 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, "body"); const gchar *msgFromVal = lm_message_node_get_attribute(m->node, "from"); const gchar *msgSelfVal = g_strdup_printf("%s@%s/%s", c_user, c_host, c_resource); - + debug("lm handler result"); if (strlen(msgFromVal) > 0 && strcmp(msgFromVal, msgSelfVal) == 0) { debug("Loopback message from %s.", msgFromVal); lm_message_unref(m); - + } else if (strlen(msgFromVal) > 0 && msgBody) { const gchar *msgBodyVal = lm_message_node_get_value(msgBody); if (strlen(msgBodyVal) > 0) { @@ -132,9 +132,9 @@ static LmHandlerResult conn_handle_messages( gchar *valuesSql; valuesSql = g_strdup_printf( "NULL, '%s', '%s', NULL, NULL, NULL", msgFromVal, msgBodyVal); - if (mysql_insert_values("queue_in", valuesSql) > 0 && + if (mysql_insert_values("queue_in", valuesSql) > 0 && strlen(services_queue_message) > 0) { - + m = lm_message_new(msgFromVal, LM_MESSAGE_TYPE_MESSAGE); lm_message_node_add_child(m->node, "body", services_queue_message); @@ -163,7 +163,7 @@ gboolean conn_send_messages(gpointer data) { fieldsByRow = mysqlFields->len / mysqlIndexRows->len; debug("go through entries"); for (i = 0; i < mysqlIndexRows->len; i++) { - + fieldsIndex = g_array_index(mysqlIndexRows, int, i); for (j = 0; j < fieldsByRow; j++) { if (j == 0) { @@ -203,7 +203,7 @@ gboolean conn_send_loopback_message(gpointer data) { LmMessage *m; if (strlen(c_user) > 0) { m = lm_message_new( - g_strdup_printf("%s@%s/%s", c_user, c_host, c_resource), + g_strdup_printf("%s@%s/%s", c_user, c_host, c_resource), LM_MESSAGE_TYPE_MESSAGE ); if (!lm_connection_send(conn, m, &error)) { @@ -219,8 +219,34 @@ gboolean conn_send_loopback_message(gpointer data) { return FALSE; } -gboolean conn_ssl_response(gpointer data) { - debug("conn ssl callback"); +static LmSSLResponse conn_ssl_response(LmSSL *ssl, LmSSLStatus status, gpointer data) { + g_print("SSL Status: %d -> ", status); + + switch (status) { + case LM_SSL_STATUS_NO_CERT_FOUND: + g_print("No certificate found!\n"); + break; + case LM_SSL_STATUS_UNTRUSTED_CERT: + g_print("Certificate is not trusted!\n"); + break; + case LM_SSL_STATUS_CERT_EXPIRED: + g_print("Certificate has expired!\n"); + break; + case LM_SSL_STATUS_CERT_NOT_ACTIVATED: + g_print("Certificate has not been activated!\n"); + break; + case LM_SSL_STATUS_CERT_HOSTNAME_MISMATCH: + g_print("Certificate hostname does not match expected hostname!\n"); + break; + case LM_SSL_STATUS_CERT_FINGERPRINT_MISMATCH: + g_print("Certificate fingerprint does not match expected fingerprint!\n"); + break; + case LM_SSL_STATUS_GENERIC_ERROR: + g_print("Generic SSL error!\n"); + break; + } + + return LM_SSL_RESPONSE_CONTINUE; } int conn_create(char *host, int port, int ssl, @@ -230,15 +256,20 @@ int conn_create(char *host, int port, int ssl, c_user = user; c_resource = resource; c_password = password; - + debug("Set lm connection and connection data"); gboolean result; conn = lm_connection_new(c_host); if (ssl > 0) { conn_ssl = lm_ssl_new(NULL, conn_ssl_response, NULL, NULL); - lm_connection_set_ssl(conn, conn_ssl); + if (conn_ssl) { + lm_connection_set_ssl(conn, conn_ssl); + lm_ssl_unref(conn_ssl); + } else { + debug("Failed to create ssl connection"); + } } - + lm_connection_set_port(conn, c_port); LmMessageHandler *handler; @@ -246,33 +277,33 @@ int conn_create(char *host, int port, int ssl, jid = g_strdup_printf("%s@%s", c_user, c_host); lm_connection_set_jid(conn, jid); g_free(jid); - + debug("Set lm messages handler"); handler = lm_message_handler_new(conn_handle_messages, NULL, NULL); lm_connection_register_message_handler( conn, handler, LM_MESSAGE_TYPE_MESSAGE, LM_HANDLER_PRIORITY_NORMAL ); lm_message_handler_unref(handler); - + debug("Set lm disconnect function"); lm_connection_set_disconnect_function(conn, conn_close_cb, NULL, NULL); - + debug("Try to open lm connection"); result = lm_connection_open( conn, (LmResultFunction)conn_open_cb, NULL, NULL, &error ); if (!result) { g_print("Couldn't open connection to '%s':\n%s\n", host, error->message); - g_free (error); + g_free(error); return -1; } debug("Lm connection established"); - + debug("Set send messages / loopback messages timeouts and main loop"); gint func_ref = g_timeout_add(1000, conn_send_messages, NULL); gint func_loopback_ref = g_timeout_add(30000, conn_send_loopback_message, NULL); lm_connection_set_keep_alive_rate(conn, 30); - + main_loop = g_main_loop_new(NULL, FALSE); g_main_loop_run(main_loop); } -- 2.11.4.GIT