Imported Upstream version 0.3.3
[anytun.git] / src / cryptinit.hpp
index 4460de0..f8ac938 100644 (file)
  *  tunneling and relaying of packets of any protocol.
  *
  *
- *  Copyright (C) 2007-2008 Othmar Gsenger, Erwin Nindl, 
+ *  Copyright (C) 2007-2009 Othmar Gsenger, Erwin Nindl, 
  *                          Christian Pointner <satp@wirdorange.org>
  *
  *  This file is part of Anytun.
  *
  *  Anytun is free software: you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License version 3 as
- *  published by the Free Software Foundation.
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  any later version.
  *
  *  Anytun is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  along with anytun.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef _CRYPTINIT_HPP
-#define _CRYPTINIT_HPP
+#ifndef ANYTUN_cryptinit_hpp_INCLUDED
+#define ANYTUN_cryptinit_hpp_INCLUDED
 
 #ifndef NO_CRYPT
 #ifndef USE_SSL_CRYPTO
 #include <gcrypt.h>
 
 // boost thread callbacks for libgcrypt
-#if defined(BOOST_HAS_PTHREADS)
-
 static int boost_mutex_init(void **priv)
 {
   boost::mutex *lock = new boost::mutex();
@@ -70,10 +69,6 @@ static struct gcry_thread_cbs gcry_threads_boost =
 { GCRY_THREAD_OPTION_USER, NULL,
   boost_mutex_init, boost_mutex_destroy,
   boost_mutex_lock, boost_mutex_unlock };
-#else
-#error this libgcrypt thread callbacks only work with pthreads
-#endif
-
 
 #define MIN_GCRYPT_VERSION "1.2.0"
 
@@ -109,5 +104,17 @@ bool initLibGCrypt()
 #endif
 #endif
 
+bool initCrypto()
+{
+#ifndef NO_CRYPT
+#ifndef USE_SSL_CRYPTO
+  return initLibGCrypt();
+#else
+  return true;
 #endif
+#else
+  return true;
+#endif
+}
 
+#endif