Commit 1e9b983f authored by Michael Rommel's avatar Michael Rommel Committed by Peter Korsgaard
Browse files

aiccu: new package



Automatic IPv6 Connectivity Configuration Utility for users of a
IPv6 tunnel broker, developed by sixxs.net

[Peter: drop strip patch, pass TARGET_CONFIGURE_OPTS]
Signed-off-by: default avatarMichael Rommel <rommel@layer-7.net>
Signed-off-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
parent 710e0b4d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -743,6 +743,7 @@ source "package/sound-theme-freedesktop/Config.in"
endmenu

menu "Networking applications"
source "package/aiccu/Config.in"
source "package/aircrack-ng/Config.in"
source "package/argus/Config.in"
source "package/arptables/Config.in"
+21 −0
Original line number Diff line number Diff line
config BR2_PACKAGE_AICCU
	bool "aiccu"
	depends on BR2_INET_IPV6
	depends on BR2_USE_WCHAR
	select BR2_PACKAGE_GNUTLS
	help
	  SixXS Automatic IPv6 Connectivity Client Utility

	  AICCU (Automatic IPv6 Connectivity Client Utility) makes it
	  easy for users to get IPv6 connectivity. After having
	  requested an account, tunnel and optionally a subnet, AICCU
	  can be used to automatically configure the tunnel. AICCU
	  supports TIC (Tunnel Information & Control protocol), which it
	  uses for retrieving the tunnel configuration information,
	  AYIYA, which allows tunnels to be created even behind
	  firewalls and NAT's.

	  http://www.sixxs.net/tools/aiccu/

comment "aiccu requires a toolchain with IPv6 and WCHAR support"
	depends on !(BR2_INET_IPV6 && BR2_USE_WCHAR)
+104 −0
Original line number Diff line number Diff line
aiccu.h, common.c, common.h: fixes for deprecated GNUTLS functions and types
resolver.c: fixes for selection of wrong resolver function under uclibc

Signed-off-by: Michael Rommel <rommel@layer-7.net>

diff -purN aiccu_20070115.orig/common/aiccu.h aiccu_20070115/common/aiccu.h
--- aiccu_20070115.orig/common/aiccu.h	2007-01-15 13:01:43.000000000 +0100
+++ aiccu_20070115/common/aiccu.h	2013-08-31 23:50:53.651936146 +0200
@@ -111,7 +111,7 @@ struct AICCU_conf
 #endif
 
 #ifdef AICCU_GNUTLS
-	gnutls_certificate_credentials	tls_cred;	/* GNUTLS credentials */
+	gnutls_certificate_credentials_t tls_cred;	/* GNUTLS credentials */
 #endif
 
 	bool		daemonize;		/* Daemonize? */
diff -purN aiccu_20070115.orig/common/common.c aiccu_20070115/common/common.c
--- aiccu_20070115.orig/common/common.c	2006-12-21 15:08:50.000000000 +0100
+++ aiccu_20070115/common/common.c	2013-09-01 01:21:36.031396740 +0200
@@ -271,9 +271,8 @@ TLSSOCKET sock_alloc(void);
 TLSSOCKET sock_alloc(void)
 {
 #ifdef AICCU_GNUTLS
-	/* Allow connections to servers that have OpenPGP keys as well */
-	const int	cert_type_priority[3] = { GNUTLS_CRT_X509, GNUTLS_CRT_OPENPGP, 0 };
 	int		ret;
+	const char	*err;
 #endif /* AICCU_GNUTLS*/
 
 	TLSSOCKET	sock;	
@@ -297,11 +296,16 @@ TLSSOCKET sock_alloc(void)
 	}
 
 	/* Use default priorities */
-	gnutls_set_default_priority(sock->session);
-	/* XXX: Return value is not documented in GNUTLS documentation! */
-
-	gnutls_certificate_type_set_priority(sock->session, cert_type_priority);
-	/* XXX: Return value is not documented in GNUTLS documentation! */
+	ret = gnutls_priority_set_direct(sock->session, "NORMAL", &err); 
+	if (ret < 0)
+	{
+		if (ret == GNUTLS_E_INVALID_REQUEST)
+		{
+			dolog( LOG_ERR, "TLS set priority failed, syntax error at: %s\n", err);
+		}
+		free(sock);
+		return NULL;
+	}
 
 	/* Configure the x509 credentials for the current session */
 	gnutls_credentials_set(sock->session, GNUTLS_CRD_CERTIFICATE, g_aiccu->tls_cred);
@@ -474,7 +478,7 @@ bool sock_gotls(TLSSOCKET sock)
 	}
 
 	/* Set the transport */
-	gnutls_transport_set_ptr(sock->session, (gnutls_transport_ptr)sock->socket);
+	gnutls_transport_set_ptr(sock->session, (gnutls_transport_ptr_t) sock->socket);
 
 	/* Perform the TLS handshake */
 	ret = gnutls_handshake(sock->session);
diff -purN aiccu_20070115.orig/common/common.h aiccu_20070115/common/common.h
--- aiccu_20070115.orig/common/common.h	2007-01-11 15:50:51.000000000 +0100
+++ aiccu_20070115/common/common.h	2013-08-31 23:26:13.683659455 +0200
@@ -381,7 +381,7 @@ struct tlssocket
 	SOCKET			socket;
 #ifdef AICCU_GNUTLS
 	bool			tls_active;	/* TLS active? */
-	gnutls_session		session;	/* The GnuTLS sesision */
+	gnutls_session_t	session;	/* The GnuTLS sesision */
 #endif
 };
 
diff -purN aiccu_20070115.orig/common/resolver.c aiccu_20070115/common/resolver.c
--- aiccu_20070115.orig/common/resolver.c	2006-07-23 16:55:14.000000000 +0200
+++ aiccu_20070115/common/resolver.c	2013-08-31 23:44:31.574866862 +0200
@@ -26,7 +26,7 @@
 
 int getrrs(const char *label, int rrtype, void gotrec(unsigned int num, int type, const char *record))
 {
-#ifdef _LINUX
+#if defined(_LINUX) && !defined(__UCLIBC__)
 	struct __res_state	res;
 #endif
 	unsigned char		answer[8192];
@@ -38,7 +38,7 @@ int getrrs(const char *label, int rrtype
 	uint16_t		type = 0, class = 0;
 	uint32_t		ttl = 0;
 
-#ifdef _LINUX
+#if defined(_LINUX) && !defined(__UCLIBC__)
 	memset(&res, 0, sizeof(res));
 	res.options = RES_DEBUG;
 	res_ninit(&res);
@@ -47,7 +47,7 @@ int getrrs(const char *label, int rrtype
 #endif
 
 	memset(answer, 0, sizeof(answer));
-#ifdef _LINUX
+#if defined(_LINUX) && !defined(__UCLIBC__)
 	ret = res_nquery(&res, label, C_IN, rrtype, answer, sizeof(answer));
 #else
 	ret = res_query(label, C_IN, rrtype, answer, sizeof(answer));

package/aiccu/aiccu.mk

0 → 100644
+34 −0
Original line number Diff line number Diff line
################################################################################
#
# aiccu
#
################################################################################

AICCU_VERSION = 20070115
AICCU_SOURCE = aiccu_$(AICCU_VERSION).tar.gz
AICCU_SITE = http://www.sixxs.net/archive/sixxs/aiccu/unix/
AICCU_LICENSE = SixXS License, concise redistribution license
AICCU_LICENSE_FILES = doc/LICENSE
AICCU_DEPENDENCIES = gnutls

# dummy RPM_OPT_FLAGS to disable stripping
define AICCU_BUILD_CMDS
	$(TARGET_CONFIGURE_OPTS) $(MAKE) CC="$(TARGET_CC)" \
		RPM_OPT_FLAGS=1 -C $(@D)/unix-console all
endef

define AICCU_INSTALL_TARGET_CMDS
	$(INSTALL) -D -m 0755 $(@D)/unix-console/aiccu \
		$(TARGET_DIR)/usr/sbin/aiccu
	[ -f $(TARGET_DIR)/etc/aiccu.conf ] || \
		$(INSTALL) -D -m 0644 $(@D)/doc/aiccu.conf \
		$(TARGET_DIR)/etc/aiccu.conf
endef

define AICCU_INSTALL_INIT_SYSV
	[ -f $(TARGET_DIR)/etc/init.d/S50aiccu ] || \
		$(INSTALL) -D -m 0755 $(@D)/doc/aiccu.init \
		$(TARGET_DIR)/etc/init.d/S50aiccu
endef

$(eval $(generic-package))