mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 10:47:18 +00:00 
			
		
		
		
	Merge "res_rtp_asterisk: In Developer Mode, do not require OpenSSL."
This commit is contained in:
		| @@ -278,7 +278,7 @@ struct rtp_learning_info { | ||||
| 	enum ast_media_type stream_type; | ||||
| }; | ||||
|  | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| struct dtls_details { | ||||
| 	SSL *ssl;         /*!< SSL session */ | ||||
| 	BIO *read_bio;    /*!< Memory buffer for reading */ | ||||
| @@ -423,7 +423,7 @@ struct ast_rtp { | ||||
| 	unsigned int ice_num_components; /*!< The number of ICE components */ | ||||
| #endif | ||||
|  | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| 	SSL_CTX *ssl_ctx; /*!< SSL context */ | ||||
| 	enum ast_rtp_dtls_verify dtls_verify; /*!< What to verify */ | ||||
| 	enum ast_srtp_suite suite;   /*!< SRTP crypto suite */ | ||||
| @@ -500,7 +500,7 @@ struct ast_rtcp { | ||||
| 	/* VP8: sequence number for the RTCP FIR FCI */ | ||||
| 	int firseq; | ||||
|  | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| 	struct dtls_details dtls; /*!< DTLS state information */ | ||||
| #endif | ||||
|  | ||||
| @@ -568,7 +568,7 @@ static void ast_rtp_set_stream_num(struct ast_rtp_instance *instance, int stream | ||||
| static int ast_rtp_extension_enable(struct ast_rtp_instance *instance, enum ast_rtp_extension extension); | ||||
| static int ast_rtp_bundle(struct ast_rtp_instance *child, struct ast_rtp_instance *parent); | ||||
|  | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| static int ast_rtp_activate(struct ast_rtp_instance *instance); | ||||
| static void dtls_srtp_check_pending(struct ast_rtp_instance *instance, struct ast_rtp *rtp, int rtcp); | ||||
| static void dtls_srtp_start_timeout_timer(struct ast_rtp_instance *instance, struct ast_rtp *rtp, int rtcp); | ||||
| @@ -1587,7 +1587,7 @@ static struct ast_rtp_engine_ice ast_rtp_ice = { | ||||
| }; | ||||
| #endif | ||||
|  | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| static int dtls_verify_callback(int preverify_ok, X509_STORE_CTX *ctx) | ||||
| { | ||||
| 	/* We don't want to actually verify the certificate so just accept what they have provided */ | ||||
| @@ -2265,7 +2265,7 @@ static struct ast_rtp_engine asterisk_rtp_engine = { | ||||
| #ifdef HAVE_PJPROJECT | ||||
| 	.ice = &ast_rtp_ice, | ||||
| #endif | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| 	.dtls = &ast_rtp_dtls, | ||||
| 	.activate = ast_rtp_activate, | ||||
| #endif | ||||
| @@ -2277,7 +2277,7 @@ static struct ast_rtp_engine asterisk_rtp_engine = { | ||||
| 	.bundle = ast_rtp_bundle, | ||||
| }; | ||||
|  | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| /*! \pre instance is locked */ | ||||
| static void dtls_perform_handshake(struct ast_rtp_instance *instance, struct dtls_details *dtls, int rtcp) | ||||
| { | ||||
| @@ -2311,7 +2311,7 @@ static void dtls_perform_handshake(struct ast_rtp_instance *instance, struct dtl | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| static void dtls_perform_setup(struct dtls_details *dtls) | ||||
| { | ||||
| 	if (!dtls->ssl || !SSL_is_init_finished(dtls->ssl)) { | ||||
| @@ -2355,7 +2355,7 @@ static void ast_rtp_on_ice_complete(pj_ice_sess *ice, pj_status_t status) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
|  | ||||
| 	dtls_perform_setup(&rtp->dtls); | ||||
| 	dtls_perform_handshake(instance, &rtp->dtls, 0); | ||||
| @@ -2489,7 +2489,7 @@ static inline int rtcp_debug_test_addr(struct ast_sockaddr *addr) | ||||
| 	return 1; | ||||
| } | ||||
|  | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| /*! \pre instance is locked */ | ||||
| static int dtls_srtp_handle_timeout(struct ast_rtp_instance *instance, int rtcp) | ||||
| { | ||||
| @@ -2835,7 +2835,7 @@ static int __rtp_recvfrom(struct ast_rtp_instance *instance, void *buf, size_t s | ||||
| 	   return len; | ||||
| 	} | ||||
|  | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| 	/* If this is an SSL packet pass it to OpenSSL for processing. RFC section for first byte value: | ||||
| 	 * https://tools.ietf.org/html/rfc5764#section-5.1.2 */ | ||||
| 	if ((*in >= 20) && (*in <= 63)) { | ||||
| @@ -3527,7 +3527,7 @@ static int rtp_allocate_transport(struct ast_rtp_instance *instance, struct ast_ | ||||
| 	} | ||||
| #endif | ||||
|  | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| 	rtp->rekeyid = -1; | ||||
| 	rtp->dtls.timeout_timer = -1; | ||||
| #endif | ||||
| @@ -3543,7 +3543,7 @@ static void rtp_deallocate_transport(struct ast_rtp_instance *instance, struct a | ||||
| 	struct timespec ts = { .tv_sec = wait.tv_sec, .tv_nsec = wait.tv_usec * 1000, }; | ||||
| #endif | ||||
|  | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| 	ast_rtp_dtls_stop(instance); | ||||
| #endif | ||||
|  | ||||
| @@ -7161,7 +7161,7 @@ static void ast_rtp_prop_set(struct ast_rtp_instance *instance, enum ast_rtp_pro | ||||
| 					return; | ||||
| 				} | ||||
| 				rtp->rtcp->s = -1; | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| 				rtp->rtcp->dtls.timeout_timer = -1; | ||||
| #endif | ||||
| 				rtp->rtcp->schedid = -1; | ||||
| @@ -7224,7 +7224,7 @@ static void ast_rtp_prop_set(struct ast_rtp_instance *instance, enum ast_rtp_pro | ||||
| 					rtp_add_candidates_to_ice(instance, rtp, &rtp->rtcp->us, ast_sockaddr_port(&rtp->rtcp->us), AST_RTP_ICE_COMPONENT_RTCP, TRANSPORT_SOCKET_RTCP); | ||||
| 				} | ||||
| #endif | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| 				dtls_setup_rtcp(instance); | ||||
| #endif | ||||
| 			} else { | ||||
| @@ -7244,7 +7244,7 @@ static void ast_rtp_prop_set(struct ast_rtp_instance *instance, enum ast_rtp_pro | ||||
| 				rtp->rtcp->s = rtp->s; | ||||
| 				ast_rtp_instance_get_remote_address(instance, &addr); | ||||
| 				ast_sockaddr_copy(&rtp->rtcp->them, &addr); | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| 				if (rtp->rtcp->dtls.ssl && rtp->rtcp->dtls.ssl != rtp->dtls.ssl) { | ||||
| 					SSL_free(rtp->rtcp->dtls.ssl); | ||||
| 				} | ||||
| @@ -7272,7 +7272,7 @@ static void ast_rtp_prop_set(struct ast_rtp_instance *instance, enum ast_rtp_pro | ||||
| 				if (rtp->rtcp->s > -1 && rtp->rtcp->s != rtp->s) { | ||||
| 					close(rtp->rtcp->s); | ||||
| 				} | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| 				ao2_unlock(instance); | ||||
| 				dtls_srtp_stop_timeout_timer(instance, rtp, 1); | ||||
| 				ao2_lock(instance); | ||||
| @@ -7547,7 +7547,7 @@ static void ast_rtp_stop(struct ast_rtp_instance *instance) | ||||
| 	struct ast_rtp *rtp = ast_rtp_instance_get_data(instance); | ||||
| 	struct ast_sockaddr addr = { {0,} }; | ||||
|  | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| 	ao2_unlock(instance); | ||||
| 	AST_SCHED_DEL_UNREF(rtp->sched, rtp->rekeyid, ao2_ref(instance, -1)); | ||||
|  | ||||
| @@ -7767,7 +7767,7 @@ static int ast_rtp_bundle(struct ast_rtp_instance *child, struct ast_rtp_instanc | ||||
|  | ||||
| 	AST_VECTOR_APPEND(&parent_rtp->ssrc_mapping, mapping); | ||||
|  | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| 	/* If DTLS-SRTP is already in use then add the local SSRC to it, otherwise it will get added once DTLS | ||||
| 	 * negotiation has been completed. | ||||
| 	 */ | ||||
| @@ -7788,7 +7788,7 @@ static int ast_rtp_bundle(struct ast_rtp_instance *child, struct ast_rtp_instanc | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| #if !defined(OPENSSL_NO_SRTP) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) | ||||
| #if defined(HAVE_OPENSSL) && (OPENSSL_VERSION_NUMBER >= 0x10001000L) && !defined(OPENSSL_NO_SRTP) | ||||
| /*! \pre instance is locked */ | ||||
| static int ast_rtp_activate(struct ast_rtp_instance *instance) | ||||
| { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user