strongSwan - Development
-------------------------
+Subversion repository
+---------------------
+
For interested developers, we have a public repository. To check out and
compile the code, you need the following tools:
./configure [options]
make
make install
+
+
+uClibc support
+--------------
+
+Support for uClibc is still work in progress. To get startet with strongSwan
+on uClibc, yoou need version which supports getifaddrs ( > 0.9.28).
+Additionally, you need the at least the following options:
+
+String and Stdio Support --->
+ [*] Support glibc's register_printf_function()
+ [*] Support the '%m' specifier in printf format strings
+General Library Settings --->
+ [*] Support global constructors and destructors
+
+We must reduce the number of printf handlers, as uClibc only supports 10 of
+them. It is fairly untested yet, so don't except to get it running without
+further tweaks.
AC_PROG_LIBTOOL
AC_PROG_LEX
AC_PROG_YACC
-AC_PROG_CC(intel)
+AC_PROG_CC()
AC_PATH_PROG([GPERF], [gperf], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
AC_PATH_PROG([PERL], [perl], [], [$PATH:/bin:/usr/bin:/usr/local/bin])
dnl check required libraries
dnl ==========================
-AC_CHECK_FUNCS(backtrace getifaddrs)
+AC_CHECK_FUNCS(backtrace)
AC_HAVE_LIBRARY([gmp],[LIBS="$LIBS"],[AC_MSG_ERROR([GNU Multi Precision library gmp not found])])
if test "$ldap" = "true"; then
#define IPV6_2292PKTINFO 2
#endif /*IPV6_2292PKTINFO*/
+/* missing on uclibc */
+#ifndef IPV6_IPSEC_POLICY
+#define IPV6_IPSEC_POLICY 34
+#endif /*IPV6_IPSEC_POLICY*/
+
typedef struct private_socket_t private_socket_t;
/**
}
/* bypass outgoung IKE traffic on send socket */
+ memset(&policy, 0, sizeof(policy));
policy.sadb_x_policy_len = sizeof(policy) / sizeof(u_int64_t);
policy.sadb_x_policy_exttype = SADB_X_EXT_POLICY;
policy.sadb_x_policy_type = IPSEC_POLICY_BYPASS;
policy.sadb_x_policy_dir = IPSEC_DIR_OUTBOUND;
- policy.sadb_x_policy_reserved = 0;
- policy.sadb_x_policy_id = 0;
- policy.sadb_x_policy_priority = 0;
if (setsockopt(skt, sol, ipsec_policy, &policy, sizeof(policy)) < 0)
{
}
/* bypass incomining IKE traffic on this socket */
+ memset(&policy, 0, sizeof(policy));
policy.sadb_x_policy_len = sizeof(policy) / sizeof(u_int64_t);
policy.sadb_x_policy_exttype = SADB_X_EXT_POLICY;
policy.sadb_x_policy_type = IPSEC_POLICY_BYPASS;
policy.sadb_x_policy_dir = IPSEC_DIR_INBOUND;
- policy.sadb_x_policy_reserved = 0;
- policy.sadb_x_policy_id = 0;
- policy.sadb_x_policy_priority = 0;
if (setsockopt(skt, sol, ipsec_policy, &policy, sizeof(policy)) < 0)
{