From 10f556f4127c248d0a25a97d03a0731c554cfa1a 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 f7c3f825..954263a1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -21,7 +21,8 @@ profanity_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 TESTS = tests/testsuite check_PROGRAMS = tests/testsuite diff --git a/configure.ac b/configure.ac index a30c96d8..a147ae44 100644 --- a/configure.ac +++ b/configure.ac @@ -26,6 +26,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 @@ -54,7 +56,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], [], @@ -87,14 +96,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 9c729ca1..ded96890 100644 --- a/src/profanity.c +++ b/src/profanity.c @@ -19,7 +19,6 @@ * along with Profanity. If not, see . * */ - #include "config.h" #include @@ -40,6 +39,7 @@ #include "contact.h" #include "log.h" #include "muc.h" +#include "otr.h" #include "resource.h" #include "ui/notifier.h" #include "ui/ui.h" @@ -632,6 +632,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); }