[svn-commits] phsultan: trunk r125703 - in /trunk: include/asterisk/jabber.h res/res_jabber.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Fri Jun 27 02:28:18 CDT 2008


Author: phsultan
Date: Fri Jun 27 02:28:17 2008
New Revision: 125703

URL: http://svn.digium.com/view/asterisk?view=rev&rev=125703
Log:
Fix a compile time error that occurs if OpenSSL is not installed. Reported by Noel Morais on the users mailing list

Modified:
    trunk/include/asterisk/jabber.h
    trunk/res/res_jabber.c

Modified: trunk/include/asterisk/jabber.h
URL: http://svn.digium.com/view/asterisk/trunk/include/asterisk/jabber.h?view=diff&rev=125703&r1=125702&r2=125703
==============================================================================
--- trunk/include/asterisk/jabber.h (original)
+++ trunk/include/asterisk/jabber.h Fri Jun 27 02:28:17 2008
@@ -49,12 +49,12 @@
 #include <openssl/err.h>
 #define TRY_SECURE 2
 #define SECURE 4
+
+#endif /* HAVE_OPENSSL */
 /* file is read by blocks with this size */
 #define NET_IO_BUF_SIZE 4096
 /* Return value for timeout connection expiration */
 #define IKS_NET_EXPIRED 12
-
-#endif /* HAVE_OPENSSL */
 
 #include <iksemel.h>
 #include "asterisk/astobj.h"

Modified: trunk/res/res_jabber.c
URL: http://svn.digium.com/view/asterisk/trunk/res/res_jabber.c?view=diff&rev=125703&r1=125702&r2=125703
==============================================================================
--- trunk/res/res_jabber.c (original)
+++ trunk/res/res_jabber.c Fri Jun 27 02:28:17 2008
@@ -71,8 +71,10 @@
 static int aji_send_exec(struct ast_channel *chan, void *data);
 static int aji_status_exec(struct ast_channel *chan, void *data);
 static int aji_is_secure(struct aji_client *client);
+#ifdef HAVE_OPENSSL
 static int aji_start_tls(struct aji_client *client);
 static int aji_tls_handshake(struct aji_client *client);
+#endif
 static int aji_io_recv(struct aji_client *client, char *buffer, size_t buf_len, int timeout);
 static int aji_recv(struct aji_client *client, int timeout);
 static int aji_send_header(struct aji_client *client, const char *to);
@@ -497,7 +499,7 @@
 #endif
 }
 
-
+#ifdef HAVE_OPENSSL
 /*!
  * \brief Starts the TLS procedure
  * \param client the configured XMPP client we use to connect to a XMPP server
@@ -507,15 +509,13 @@
 static int aji_start_tls(struct aji_client *client)
 {
 	int ret;
-#ifndef HAVE_OPENSSL
-	return IKS_NET_TLSFAIL;
-#endif	
+
 	/* This is sent not encrypted */
 	ret = iks_send_raw(client->p, "<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>");
 	if (ret)
 		return ret;
+
 	client->stream_flags |= TRY_SECURE;
-
 	return IKS_OK;
 }
 
@@ -528,10 +528,6 @@
 {
 	int ret;
 	int sock;
-
-#ifndef HAVE_OPENSSL
-	return IKS_NET_TLSFAIL;
-#endif
 	
 	ast_debug(1, "Starting TLS handshake\n"); 
 
@@ -573,6 +569,7 @@
 
 	return IKS_OK;
 }
+#endif /* HAVE_OPENSSL */
 
 /*! 
  * \brief Secured or unsecured IO socket receiving function
@@ -871,12 +868,17 @@
 		switch (type) {
 		case IKS_NODE_START:
 			if (client->usetls && !aji_is_secure(client)) {
+#ifndef HAVE_OPENSSL
+				ast_log(LOG_ERROR, "OpenSSL not installed. You need to install OpenSSL on this system, or disable the TLS option in your configuration file\n");
+				ASTOBJ_UNREF(client, aji_client_destroy);
+				return IKS_HOOK;
+#else
 				if (aji_start_tls(client) == IKS_NET_TLSFAIL) {
-					ast_log(LOG_ERROR, "OpenSSL not installed. You need to install OpenSSL on this system\n");
+					ast_log(LOG_ERROR, "Could not start TLS\n");
 					ASTOBJ_UNREF(client, aji_client_destroy);
 					return IKS_HOOK;		
 				}
-
+#endif
 				break;
 			}
 			if (!client->usesasl) {
@@ -894,12 +896,13 @@
 			break;
 
 		case IKS_NODE_NORMAL:
+#ifdef HAVE_OPENSSL
 			if (client->stream_flags & TRY_SECURE) {
 				if (!strcmp("proceed", iks_name(node))) {
 					return aji_tls_handshake(client);
 				}
 			}
-
+#endif
 			if (!strcmp("stream:features", iks_name(node))) {
 				features = iks_stream_features(node);
 				if (client->usesasl) {
@@ -2252,10 +2255,11 @@
 static int aji_initialize(struct aji_client *client)
 {
 	int connected = IKS_NET_NOCONN;
-	
+
+#ifdef HAVE_OPENSSL	
 	/* reset stream flags */
 	client->stream_flags = 0;
-
+#endif
 	/* If it's a component, connect to user, otherwise, connect to server */
 	connected = iks_connect_via(client->p, S_OR(client->serverhost, client->jid->server), client->port, client->component ? client->user : client->jid->server);
 




More information about the svn-commits mailing list