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-08-13 22:23:47 +0100
commit10f556f4127c248d0a25a97d03a0731c554cfa1a (patch)
tree4bd665f10f1ae2f2a397c5df0eb9ca47f2c78010
parentb1768f942c086410abfb7ca03e3a20fe472fafe6 (diff)
downloadprofani-tty-10f556f4127c248d0a25a97d03a0731c554cfa1a.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 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 <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 9c729ca1..ded96890 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"
 
 #include <locale.h>
@@ -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);
 }