|
@@ -0,0 +1,104 @@
|
|
|
+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));
|