mirror of
https://github.com/profanity-im/profanity.git
synced 2024-12-04 14:46:46 -05:00
Make legacy auth optional
Some systems don't provide recent libstrophe releases. When older version of libstrophe is detected, don't build legacy auth support. To simplify this patch, report about unsupported legacy auth and keep commands option as is.
This commit is contained in:
parent
c0163f71f7
commit
424918c5ed
11
configure.ac
11
configure.ac
@ -129,11 +129,20 @@ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||
AS_IF([test "x$PTHREAD_CC" != x], [ CC="$PTHREAD_CC" ])
|
||||
|
||||
### Check for libmesode, fall back to libstrophe
|
||||
### TODO libmesode support will be removed in the future, rewrite this section
|
||||
PKG_CHECK_MODULES([libmesode], [libmesode >= 0.9.3],
|
||||
[LIBS="$libmesode_LIBS $LIBS" CFLAGS="$CFLAGS $libmesode_CFLAGS" XMPP_LIB="libmesode" AC_DEFINE([HAVE_LIBMESODE], [1], [libmesode])],
|
||||
[PKG_CHECK_MODULES([libstrophe], [libstrophe >= 0.9.3],
|
||||
[LIBS="$libstrophe_LIBS $LIBS" CFLAGS="$CFLAGS $libstrophe_CFLAGS" XMPP_LIB="libstrophe" AC_DEFINE([HAVE_LIBSTROPHE], [1], [libstrophe])],
|
||||
[AC_MSG_ERROR([Neither libmesode or libstrophe in version >= 0.9.3 found, either is required for profanity])])])
|
||||
[XMPP_LIB=""])])
|
||||
if test "x$XMPP_LIB" = x; then
|
||||
PKG_CHECK_MODULES([libmesode], [libmesode >= 0.9.2],
|
||||
[LIBS="$libmesode_LIBS $LIBS" CFLAGS="$CFLAGS $libmesode_CFLAGS" XMPP_LIB="libmesode" AC_DEFINE([HAVE_LIBMESODE], [1], [libmesode])],
|
||||
[PKG_CHECK_MODULES([libstrophe], [libstrophe >= 0.9.2],
|
||||
[LIBS="$libstrophe_LIBS $LIBS" CFLAGS="$CFLAGS $libstrophe_CFLAGS" XMPP_LIB="libstrophe" AC_DEFINE([HAVE_LIBSTROPHE], [1], [libstrophe])],
|
||||
[AC_MSG_ERROR([libstrophe-0.9.2 or later is required for profanity])])])
|
||||
AC_DEFINE([HAVE_LIBSTROPHE_LT_0_9_3], [1], [Old libstrophe is present])
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([whether ${XMPP_LIB} works])
|
||||
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||
|
@ -59,6 +59,7 @@
|
||||
#include "xmpp/connection.h"
|
||||
#include "xmpp/session.h"
|
||||
#include "xmpp/iq.h"
|
||||
#include "ui/ui.h"
|
||||
|
||||
typedef struct prof_conn_t {
|
||||
xmpp_log_t *xmpp_log;
|
||||
@ -191,7 +192,13 @@ connection_connect(const char *const jid, const char *const passwd, const char *
|
||||
}
|
||||
|
||||
if (auth_policy && (g_strcmp0(auth_policy, "legacy") == 0)) {
|
||||
#ifdef HAVE_LIBSTROPHE_LT_0_9_3
|
||||
log_warning("Legacy authentication is requested, but it hasn't been "
|
||||
"built. Update libstrophe and rebuild Profanity.");
|
||||
cons_show("Legacy authentication is requested, but it hasn't been built.");
|
||||
#else
|
||||
flags |= XMPP_CONN_FLAG_LEGACY_AUTH;
|
||||
#endif /* HAVE_LIBSTROPHE_LT_0_9_3 */
|
||||
}
|
||||
|
||||
xmpp_conn_set_flags(conn.xmpp_conn, flags);
|
||||
@ -204,7 +211,9 @@ connection_connect(const char *const jid, const char *const passwd, const char *
|
||||
LOG_FLAG_IF_SET(XMPP_CONN_FLAG_TRUST_TLS);
|
||||
LOG_FLAG_IF_SET(XMPP_CONN_FLAG_DISABLE_TLS);
|
||||
LOG_FLAG_IF_SET(XMPP_CONN_FLAG_LEGACY_SSL);
|
||||
#ifndef HAVE_LIBSTROPHE_LT_0_9_3
|
||||
LOG_FLAG_IF_SET(XMPP_CONN_FLAG_LEGACY_AUTH);
|
||||
#endif /* HAVE_LIBSTROPHE_LT_0_9_3 */
|
||||
#undef LOG_FLAG_IF_SET
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user