From 38dbc708e74c4f1dee2c30b47070255a2116b2ce Mon Sep 17 00:00:00 2001 From: Tzafrir Cohen Date: Thu, 3 Aug 2017 14:13:01 -0400 Subject: Support GMIME 3.0 Support building the Asterisk httpd with version 3.0 of gmime as well as earlier versions of that library. ASTERISK-27173 Change-Id: I7e13dd05a3083ccb0df2dabf83110223f6a9fa8f --- configure | 2 +- configure.ac | 2 +- res/res_http_post.c | 19 +++++++++++++++++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/configure b/configure index 7618f1d37..36a567d7a 100755 --- a/configure +++ b/configure @@ -33250,7 +33250,7 @@ fi fi fi -for ver in 2.0 2.2 2.4 2.6; do +for ver in 2.0 2.2 2.4 2.6 3.0; do if test "x${PBX_GMIME}" != "x1" -a "${USE_GMIME}" != "no"; then diff --git a/configure.ac b/configure.ac index f40403e31..cea7c2974 100644 --- a/configure.ac +++ b/configure.ac @@ -2492,7 +2492,7 @@ then fi fi -for ver in 2.0 2.2 2.4 2.6; do +for ver in 2.0 2.2 2.4 2.6 3.0; do AST_PKG_CONFIG_CHECK([GMIME], gmime-$ver) if test "$PBX_GMIME" = 1; then break; diff --git a/res/res_http_post.c b/res/res_http_post.c index 2ee792af9..3e1ed03f6 100644 --- a/res/res_http_post.c +++ b/res/res_http_post.c @@ -57,6 +57,9 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #ifdef GMIME_TYPE_CONTENT_TYPE #define AST_GMIME_VER_24 #endif +#if GMIME_MAJOR_VERSION >= 3 +#define AST_GMIME_VER_30 +#endif /* just a little structure to hold callback info for gmime */ struct mime_cbinfo { @@ -86,7 +89,11 @@ static void post_raw(GMimePart *part, const char *post_dir, const char *fn) stream = g_mime_stream_fs_new(fd); +#ifdef AST_GMIME_VER_30 + content = g_mime_part_get_content(part); +#else content = g_mime_part_get_content_object(part); +#endif g_mime_data_wrapper_write_to_stream(content, stream); g_mime_stream_flush(stream); @@ -109,7 +116,11 @@ static GMimeMessage *parse_message(FILE *f) g_object_unref(stream); - message = g_mime_parser_construct_message(parser); + message = g_mime_parser_construct_message(parser +#ifdef AST_GMIME_VER_30 + , NULL +#endif + ); g_object_unref(parser); @@ -488,7 +499,11 @@ static int reload(void) static int load_module(void) { - g_mime_init(0); + g_mime_init( +#ifndef AST_GMIME_VER_30 + 0 +#endif + ); __ast_http_post_load(0); -- cgit v1.2.3