<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">commit aa43d358634ab9bf66250babab743a846e2bd689
Author: Sebastian Kemper &lt;sebastian_ml@gmx.net&gt;
Date:   Thu Oct 3 19:58:08 2019 +0200

    Fix RTP crypto setup
    
    RTPProxy's configure script checks for both libsrtp and libsrtp2. When
    both are available the configure script ends up setting
    
    LIBS_SRTP="-lsrtp2"
    
    and defining both ENABLE_SRTP and ENABLE_SRTP2. But the below
    preprocessor macro in extractaudio/eaud_crypto.c can only deal with one
    or the other, not both:
    
      #if ENABLE_SRTP
      #       include &lt;srtp/srtp.h&gt;
      #       define srtp_crypto_policy_set_rtp_default crypto_policy_set_rtp_default
      #       define srtp_crypto_policy_set_rtcp_default crypto_policy_set_rtcp_default
      #       define srtp_sec_serv_t sec_serv_t
      #       define srtp_err_status_ok err_status_ok
      #elif ENABLE_SRTP2
      #       include &lt;srtp2/srtp.h&gt;
      #else
      #       error "One of srtp or srtp2 must be configured."
      #endif
    
    So it chooses a setup which would be valid for libsrtp and not libsrtp2.
    But afterward the build system tries to link against libsrtp2 (because
    of LIBS_SRTP="-lsrtp2") and the compile fails:
    
    /home/sk/tmp/openwrt/staging_dir/toolchain-mips_24kc_gcc-7.4.0_musl/lib/gcc/mips-openwrt-linux-musl/7.4.0/../../../../mips-openwrt-linux-musl/bin/ld: extractaudio-eaud_crypto.o: in function `eaud_crypto_getopt_parse':
    eaud_crypto.c:(.text+0xc8): undefined reference to `crypto_policy_set_rtp_default'
    /home/sk/tmp/openwrt/staging_dir/toolchain-mips_24kc_gcc-7.4.0_musl/lib/gcc/mips-openwrt-linux-musl/7.4.0/../../../../mips-openwrt-linux-musl/bin/ld: eaud_crypto.c:(.text+0xd0): undefined reference to `crypto_policy_set_rtcp_default'
    collect2: error: ld returned 1 exit status
    make[4]: *** [Makefile:567: extractaudio] Error 1
    
    Fix this by checking for libsrtp only if libsrtp2 is not found.
    
    Signed-off-by: Sebastian Kemper &lt;sebastian_ml@gmx.net&gt;

--- a/configure.ac
+++ b/configure.ac
@@ -140,22 +140,22 @@ then
    AC_DEFINE([ENABLE_SNDFILE], 1, [Define if you have libsndfile library installed]))
 fi
 
-# libsrtp
-AC_CHECK_HEADER(srtp/srtp.h, found_libsrtp=yes)
-if test "$found_libsrtp" = yes
-then
-  AC_CHECK_LIB(srtp, srtp_init,
-   LIBS_SRTP="-lsrtp"
-   AC_DEFINE([ENABLE_SRTP], 1, [Define if you have libsrtp library installed]))
-fi
-
-# libsrtp2
+# libsrtp2 (preferred)
 AC_CHECK_HEADER(srtp2/srtp.h, found_libsrtp2=yes)
 if test "$found_libsrtp2" = yes
 then
   AC_CHECK_LIB(srtp2, srtp_init,
    LIBS_SRTP="-lsrtp2"
    AC_DEFINE([ENABLE_SRTP2], 1, [Define if you have libsrtp2 library installed]))
+else
+  # libsrtp
+  AC_CHECK_HEADER(srtp/srtp.h, found_libsrtp=yes)
+  if test "$found_libsrtp" = yes
+  then
+    AC_CHECK_LIB(srtp, srtp_init,
+     LIBS_SRTP="-lsrtp"
+     AC_DEFINE([ENABLE_SRTP], 1, [Define if you have libsrtp library installed]))
+  fi
 fi
 
 # libelperiodic
</pre></body></html>