[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r7494 - in libmicrohttpd: . src/testcurl src/testcurl/https
From: |
gnunet |
Subject: |
[GNUnet-SVN] r7494 - in libmicrohttpd: . src/testcurl src/testcurl/https |
Date: |
Sun, 20 Jul 2008 21:50:54 -0600 (MDT) |
Author: lv-426
Date: 2008-07-20 21:50:54 -0600 (Sun, 20 Jul 2008)
New Revision: 7494
Added:
libmicrohttpd/src/testcurl/curl_version_check.c
Modified:
libmicrohttpd/configure.ac
libmicrohttpd/src/testcurl/Makefile.am
libmicrohttpd/src/testcurl/https/Makefile.am
libmicrohttpd/src/testcurl/https/mhds_get_test.c
libmicrohttpd/src/testcurl/https/mhds_multi_daemon_test.c
libmicrohttpd/src/testcurl/https/mhds_session_info_test.c
libmicrohttpd/src/testcurl/https/tls_alert_test.c
libmicrohttpd/src/testcurl/https/tls_authentication_test.c
Log:
curl version testing support
Modified: libmicrohttpd/configure.ac
===================================================================
--- libmicrohttpd/configure.ac 2008-07-20 21:34:01 UTC (rev 7493)
+++ libmicrohttpd/configure.ac 2008-07-21 03:50:54 UTC (rev 7494)
@@ -122,6 +122,13 @@
AM_CONDITIONAL(HAVE_CURL, test x$curl = x1)
LIBS=$SAVE_LIBS
+# Lib cURL & cURL - OpenSSL versions
+MHD_REQ_CURL_VERSION=7.16.4
+MHD_REQ_CURL_SSL_VERSION=0.9.8
+AC_DEFINE_UNQUOTED([MHD_REQ_CURL_VERSION], "$MHD_REQ_CURL_VERSION", [required
cURL version to run tests])
+AC_DEFINE_UNQUOTED([MHD_REQ_CURL_SSL_VERSION], "$MHD_REQ_CURL_SSL_VERSION",
[required cURL SSL version to run tests])
+
+
# large file support (> 4 GB)
AC_SYS_LARGEFILE
AC_FUNC_FSEEKO
Modified: libmicrohttpd/src/testcurl/Makefile.am
===================================================================
--- libmicrohttpd/src/testcurl/Makefile.am 2008-07-20 21:34:01 UTC (rev
7493)
+++ libmicrohttpd/src/testcurl/Makefile.am 2008-07-21 03:50:54 UTC (rev
7494)
@@ -5,7 +5,6 @@
endif
AM_CPPFLAGS = \
--I$(top_srcdir)/src/daemon/https \
-I$(top_srcdir)/src/daemon \
-I$(top_srcdir)/src/include
Added: libmicrohttpd/src/testcurl/curl_version_check.c
===================================================================
--- libmicrohttpd/src/testcurl/curl_version_check.c
(rev 0)
+++ libmicrohttpd/src/testcurl/curl_version_check.c 2008-07-21 03:50:54 UTC
(rev 7494)
@@ -0,0 +1,136 @@
+/*
+ This file is part of libmicrohttpd
+ (C) 2007 Christian Grothoff
+
+ libmicrohttpd 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 2, or (at your
+ option) any later version.
+
+ libmicrohttpd 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 libmicrohttpd; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+
+/**
+ * @file curl_version_check.c
+ * @brief verify required cURL version is available to run tests
+ * @author Sagie Amir
+ */
+
+#include "config.h"
+#include <curl/curl.h>
+#include <microhttpd.h>
+#include <stdlib.h>
+#include <string.h>
+#include "internal.h"
+
+#ifndef WINDOWS
+#include <unistd.h>
+#endif
+
+static int
+parse_version_number (const char **s)
+{
+ int i = 0;
+ char num[16];
+
+ while (i < 16 && ((**s >= '0') & (**s <= '9')))
+ {
+ num[i] = **s;
+ (*s)++;
+ i++;
+ }
+
+ num[i] = '\0';
+
+ return atoi (num);
+}
+
+const char *
+parse_version_string (const char *s, int *major, int *minor, int *micro)
+{
+ *major = parse_version_number (&s);
+ if (!s || *s != '.')
+ return NULL;
+ s++;
+ *minor = parse_version_number (&s);
+ if (!s || *s != '.')
+ return NULL;
+ s++;
+ *micro = parse_version_number (&s);
+ if (!s)
+ return NULL;
+ return s;
+}
+
+
+/*
+ * check local libcurl version matches required version
+ */
+int
+curl_check_version (const char *req_version, ...)
+{
+ va_list ap;
+ const char *ver;
+ const char *curl_ver;
+ const char *ssl_ver;
+ const char *req_ssl_ver;
+
+ int loc_major, loc_minor, loc_micro;
+ int rq_major, rq_minor, rq_micro;
+
+ ver = curl_version ();
+ /*
+ * this call relies on the cURL string to be of the format :
+ * 'libcurl/7.16.4 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/0.6.5'
+ */
+ curl_ver = strchr (ver, '/') + 1;
+ ssl_ver = strchr (curl_ver, '/') + 1;
+
+ /* Parse version numbers */
+ parse_version_string (req_version, &rq_major, &rq_minor, &rq_micro);
+ parse_version_string (curl_ver, &loc_major, &loc_minor, &loc_micro);
+
+ /* Compare version numbers. */
+ if ((loc_major > rq_major
+ || (loc_major == rq_major && loc_minor > rq_minor)
+ || (loc_major == rq_major && loc_minor == rq_minor
+ && loc_micro > rq_micro) || (loc_major == rq_major
+ && loc_minor == rq_minor
+ && loc_micro == rq_micro)) == 0)
+ {
+ fprintf (stderr,
+ "Error: running curl test depends on local libcurl version >
%s\n",
+ req_version);
+ return -1;
+ }
+
+#if HTTPS_SUPPORT
+ va_start (ap, req_version);
+ req_ssl_ver = va_arg (ap, void *);
+
+ parse_version_string (req_ssl_ver, &rq_major, &rq_minor, &rq_micro);
+ parse_version_string (ssl_ver, &loc_major, &loc_minor, &loc_micro);
+
+ if ((loc_major > rq_major
+ || (loc_major == rq_major && loc_minor > rq_minor)
+ || (loc_major == rq_major && loc_minor == rq_minor
+ && loc_micro > rq_micro) || (loc_major == rq_major
+ && loc_minor == rq_minor
+ && loc_micro == rq_micro)) == 0)
+ {
+ fprintf (stderr,
+ "Error: running curl test depends on local libcurl-openssl
version > %s\n",
+ req_ssl_ver);
+ return -1;
+ }
+#endif
+ return 0;
+}
Property changes on: libmicrohttpd/src/testcurl/curl_version_check.c
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: libmicrohttpd/src/testcurl/https/Makefile.am
===================================================================
--- libmicrohttpd/src/testcurl/https/Makefile.am 2008-07-20 21:34:01 UTC
(rev 7493)
+++ libmicrohttpd/src/testcurl/https/Makefile.am 2008-07-21 03:50:54 UTC
(rev 7494)
@@ -8,7 +8,6 @@
-I$(top_srcdir)/src/daemon/https/x509 \
-I$(top_srcdir)/src/daemon
-
check_PROGRAMS = \
mhds_get_test \
tls_authentication_test \
@@ -18,31 +17,36 @@
TESTS = $(check_PROGRAMS)
tls_alert_test_SOURCES = \
- tls_alert_test.c
+ tls_alert_test.c \
+ $(top_builddir)/src/testcurl/curl_version_check.c
tls_alert_test_LDADD = \
$(top_builddir)/src/daemon/libmicrohttpd.la \
@LIBCURL@
tls_authentication_test_SOURCES = \
- tls_authentication_test.c
+ tls_authentication_test.c \
+ $(top_builddir)/src/testcurl/curl_version_check.c
tls_authentication_test_LDADD = \
$(top_builddir)/src/daemon/libmicrohttpd.la \
@LIBCURL@
mhds_get_test_SOURCES = \
- mhds_get_test.c
+ mhds_get_test.c \
+ $(top_builddir)/src/testcurl/curl_version_check.c
mhds_get_test_LDADD = \
$(top_builddir)/src/daemon/libmicrohttpd.la \
@LIBCURL@
mhds_session_info_test_SOURCES = \
- mhds_session_info_test.c
+ mhds_session_info_test.c \
+ $(top_builddir)/src/testcurl/curl_version_check.c
mhds_session_info_test_LDADD = \
$(top_builddir)/src/daemon/libmicrohttpd.la \
@LIBCURL@
mhds_multi_daemon_test_SOURCES = \
- mhds_multi_daemon_test.c
+ mhds_multi_daemon_test.c \
+ $(top_builddir)/src/testcurl/curl_version_check.c
mhds_multi_daemon_test_LDADD = \
$(top_builddir)/src/daemon/libmicrohttpd.la \
@LIBCURL@
Modified: libmicrohttpd/src/testcurl/https/mhds_get_test.c
===================================================================
--- libmicrohttpd/src/testcurl/https/mhds_get_test.c 2008-07-20 21:34:01 UTC
(rev 7493)
+++ libmicrohttpd/src/testcurl/https/mhds_get_test.c 2008-07-21 03:50:54 UTC
(rev 7494)
@@ -51,6 +51,8 @@
const char *test_file_name = "https_test_file";
const char test_file_data[] = "Hello World\n";
+extern int curl_check_version (const char *req_version, ...);
+
struct CBC
{
char *buf;
@@ -416,7 +418,10 @@
FILE *test_fd;
unsigned int errorCount = 0;
- // gnutls_global_set_log_level(11);
+ if (curl_check_version (MHD_REQ_CURL_VERSION, MHD_REQ_CURL_SSL_VERSION))
+ {
+ return -1;
+ }
if ((test_fd = setupTestFile ()) == NULL)
{
@@ -443,10 +448,10 @@
test_kx_option (test_fd, "EDH-RSA-DES-CBC3-SHA", CURL_SSLVERSION_SSLv3);
- curl_global_cleanup ();
- fclose (test_fd);
+ curl_global_cleanup ();
+ fclose (test_fd);
- remove (test_file_name);
+ remove (test_file_name);
return errorCount != 0;
}
Modified: libmicrohttpd/src/testcurl/https/mhds_multi_daemon_test.c
===================================================================
--- libmicrohttpd/src/testcurl/https/mhds_multi_daemon_test.c 2008-07-20
21:34:01 UTC (rev 7493)
+++ libmicrohttpd/src/testcurl/https/mhds_multi_daemon_test.c 2008-07-21
03:50:54 UTC (rev 7494)
@@ -48,6 +48,8 @@
const char *test_file_name = "https_test_file";
const char test_file_data[] = "Hello World\n";
+extern int curl_check_version (const char *req_version, ...);
+
struct CBC
{
char *buf;
@@ -300,6 +302,11 @@
FILE *test_fd;
unsigned int errorCount = 0;
+ if (curl_check_version (MHD_REQ_CURL_VERSION, MHD_REQ_CURL_SSL_VERSION))
+ {
+ return -1;
+ }
+
if ((test_fd = setupTestFile ()) == NULL)
{
fprintf (stderr, MHD_E_TEST_FILE_CREAT);
Modified: libmicrohttpd/src/testcurl/https/mhds_session_info_test.c
===================================================================
--- libmicrohttpd/src/testcurl/https/mhds_session_info_test.c 2008-07-20
21:34:01 UTC (rev 7493)
+++ libmicrohttpd/src/testcurl/https/mhds_session_info_test.c 2008-07-21
03:50:54 UTC (rev 7494)
@@ -40,6 +40,8 @@
#include "tls_test_keys.h"
+extern int curl_check_version (const char *req_version, ...);
+
struct MHD_Daemon *d;
struct CBC
@@ -213,6 +215,11 @@
FILE *test_fd;
unsigned int errorCount = 0;
+ if (curl_check_version (MHD_REQ_CURL_VERSION, MHD_REQ_CURL_SSL_VERSION))
+ {
+ return -1;
+ }
+
if (0 != curl_global_init (CURL_GLOBAL_ALL))
{
fprintf (stderr, "Error (code: %u)\n", errorCount);
Modified: libmicrohttpd/src/testcurl/https/tls_alert_test.c
===================================================================
--- libmicrohttpd/src/testcurl/https/tls_alert_test.c 2008-07-20 21:34:01 UTC
(rev 7493)
+++ libmicrohttpd/src/testcurl/https/tls_alert_test.c 2008-07-21 03:50:54 UTC
(rev 7494)
@@ -48,6 +48,8 @@
#include "gnutls_datum.h"
#include "tls_test_keys.h"
+extern int curl_check_version (const char *req_version, ...);
+
const char *ca_cert_file_name = "ca_cert_pem";
const char *test_file_name = "https_test_file";
const char test_file_data[] = "Hello World\n";
@@ -79,8 +81,6 @@
static int
test_alert_response ()
{
-
-
int sd, ret;
char *err_pos;
struct sockaddr_in sa;
@@ -88,13 +88,11 @@
gnutls_session_t session;
gnutls_certificate_credentials_t xcred;
-
gnutls_global_init ();
gnutls_datum_t key;
gnutls_datum_t cert;
-
gnutls_certificate_allocate_credentials (&xcred);
_gnutls_set_datum_m (&key, srv_key_pem, strlen (srv_key_pem), &malloc);
@@ -157,14 +155,17 @@
}
-
-
int
main (int argc, char *const *argv)
{
int ret, errorCount = 0;;
struct MHD_Daemon *d;
+ if (curl_check_version (MHD_REQ_CURL_VERSION, MHD_REQ_CURL_SSL_VERSION))
+ {
+ return -1;
+ }
+
d = MHD_start_daemon (MHD_USE_THREAD_PER_CONNECTION | MHD_USE_SSL |
MHD_USE_DEBUG, 42433,
NULL, NULL, &http_ahc, NULL,
Modified: libmicrohttpd/src/testcurl/https/tls_authentication_test.c
===================================================================
--- libmicrohttpd/src/testcurl/https/tls_authentication_test.c 2008-07-20
21:34:01 UTC (rev 7493)
+++ libmicrohttpd/src/testcurl/https/tls_authentication_test.c 2008-07-21
03:50:54 UTC (rev 7494)
@@ -46,6 +46,8 @@
#include "tls_test_keys.h"
+extern int curl_check_version (const char *req_version, ...);
+
const char *ca_cert_file_name = "ca_cert_pem";
const char *test_file_name = "https_test_file";
const char test_file_data[] = "Hello World\n";
@@ -315,6 +317,11 @@
FILE *test_fd;
unsigned int errorCount = 0;
+ if (curl_check_version (MHD_REQ_CURL_VERSION, MHD_REQ_CURL_SSL_VERSION))
+ {
+ return -1;
+ }
+
if ((test_fd = setupTestFile ()) == NULL)
{
fprintf (stderr, MHD_E_TEST_FILE_CREAT);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r7494 - in libmicrohttpd: . src/testcurl src/testcurl/https,
gnunet <=