From bd1c139429487f173d973be5810ef15549b4da07 Mon Sep 17 00:00:00 2001 From: James Booth Date: Tue, 13 Aug 2013 22:23:47 +0100 Subject: [PATCH] Added libotr --- Makefile.am | 3 ++- configure.ac | 18 ++++++++++++++++-- src/otr.c | 35 +++++++++++++++++++++++++++++++++++ src/otr.h | 28 ++++++++++++++++++++++++++++ src/profanity.c | 5 ++++- 5 files changed, 85 insertions(+), 4 deletions(-) create mode 100644 src/otr.c create mode 100644 src/otr.h diff --git a/Makefile.am b/Makefile.am index 9da258eb..9b60ec2d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -36,7 +36,8 @@ core_sources = \ src/tools/tinyurl.c src/tools/tinyurl.h \ src/config/accounts.c src/config/accounts.h \ src/config/preferences.c src/config/preferences.h \ - src/config/theme.c src/config/theme.h + src/config/theme.c src/config/theme.h \ + src/otr.c src/otr.h test_sources = \ tests/test_roster.c tests/test_common.c tests/test_history.c \ diff --git a/configure.ac b/configure.ac index 8468792c..282f0573 100644 --- a/configure.ac +++ b/configure.ac @@ -35,6 +35,8 @@ AC_ARG_WITH([libxml2], [AS_HELP_STRING([--with-libxml2], [link with libxml2 instead of expat])]) AC_ARG_WITH([xscreensaver], [AS_HELP_STRING([--with-xscreensaver], [use libXScrnSaver to determine indle time])]) +AC_ARG_WITH([otr], + [AS_HELP_STRING([--with-libotr], [enable otr entryption using libtr library])]) # Checks for libraries. if test "x$with_libxml2" = xyes; then @@ -63,7 +65,14 @@ elif test "x$with_xscreensaver" = x; then [AC_MSG_NOTICE([libXss not found, falling back to profanity auto-away])]) AC_CHECK_LIB([X11], [main], [], [AC_MSG_NOTICE([libX11 not found, falling back to profanity auto-away])]) +fi +if test "x$with_otr" = xyes; then + AC_CHECK_LIB([otr], [main], [], + [AC_MSG_ERROR([libotr is required for otr encryption support])]) +elif test "x$enable_otr" = x; then + AC_CHECK_LIB([otr], [main], [], + [AC_MSG_NOTICE([libotr not found, otr entryption support no enabled])]) fi AC_CHECK_LIB([resolv], [main], [], @@ -96,14 +105,19 @@ if test "x$enable_notifications" != xno; then [AC_MSG_NOTICE([libnotify module not found])]) fi +if test "x$with_otr" != xno; then + PKG_CHECK_MODULES([OTR], [libotr], [], + [AC_MSG_NOTICE([libotr module not found])]) +fi + # Default parameters AM_CFLAGS="-Wall" if test "x$PACKAGE_STATUS" = xdevelopment; then AM_CFLAGS="$AM_CFLAGS -Wunused -Werror" fi -LIBS="$LIBS $DEPS_LIBS $NOTIFY_LIBS" +LIBS="$LIBS $DEPS_LIBS $NOTIFY_LIBS $OTR_LIBS" -AM_CPPFLAGS="$DEPS_CFLAGS $NOTIFY_CFLAGS" +AM_CPPFLAGS="$DEPS_CFLAGS $NOTIFY_CFLAGS $OTR_CLAGS" AC_SUBST(AM_CFLAGS) AC_SUBST(AM_CPPFLAGS) diff --git a/src/otr.c b/src/otr.c new file mode 100644 index 00000000..7dd6aafd --- /dev/null +++ b/src/otr.c @@ -0,0 +1,35 @@ +/* + * otr.c + * + * Copyright (C) 2012, 2013 James Booth + * + * This file is part of Profanity. + * + * Profanity is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Profanity is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Profanity. If not, see . + * + */ + +#include +#include +#include +#include + +#include "ui/ui.h" + +void +otr_init(void) +{ + cons_debug("otr_init()"); + OTRL_INIT; +} diff --git a/src/otr.h b/src/otr.h new file mode 100644 index 00000000..772c0f34 --- /dev/null +++ b/src/otr.h @@ -0,0 +1,28 @@ +/* + * otr.h + * + * Copyright (C) 2012, 2013 James Booth + * + * This file is part of Profanity. + * + * Profanity is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Profanity is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Profanity. If not, see . + * + */ + +#ifndef OTR_H +#define OTR_H + +void otr_init(void); + +#endif diff --git a/src/profanity.c b/src/profanity.c index 116e8b9c..913f3350 100644 --- a/src/profanity.c +++ b/src/profanity.c @@ -19,7 +19,6 @@ * along with Profanity. If not, see . * */ - #include "config.h" #ifdef HAVE_GIT_VERSION @@ -44,6 +43,7 @@ #include "contact.h" #include "log.h" #include "muc.h" +#include "otr.h" #include "resource.h" #include "ui/notifier.h" #include "ui/ui.h" @@ -648,6 +648,9 @@ _init(const int disable_tls, char *log_level) log_info("Initialising contact list"); roster_init(); muc_init(); +#ifdef HAVE_LIBOTR + otr_init(); +#endif atexit(_shutdown); }