about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2013-08-13 22:23:47 +0100
committerJames Booth <boothj5@gmail.com>2013-11-08 00:17:02 +0000
commitbd1c139429487f173d973be5810ef15549b4da07 (patch)
treef75f6349257639923dd4836598fe0ca93ab53e01
parentbe653667e4d250c7ec28f2eab5026e63e95f5453 (diff)
downloadprofani-tty-bd1c139429487f173d973be5810ef15549b4da07.tar.gz
Added libotr
-rw-r--r--Makefile.am3
-rw-r--r--configure.ac18
-rw-r--r--src/otr.c35
-rw-r--r--src/otr.h28
-rw-r--r--src/profanity.c5
5 files changed, 85 insertions, 4 deletions
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 <boothj5@gmail.com>
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include <libotr/proto.h>
+#include <libotr/userstate.h>
+#include <libotr/message.h>
+#include <libotr/privkey.h>
+
+#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 <boothj5@gmail.com>
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#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 <http://www.gnu.org/licenses/>.
  *
  */
-
 #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);
 }