Commit 6654553a authored by kelsey's avatar kelsey
Browse files

Further progress based on the v0.1.0 draft.

parent 9f32ae56
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -179,6 +179,9 @@ endif()
option(CURL_DISABLE_COOKIES "to disable cookies support" OFF)
option(CURL_DISABLE_COOKIES "to disable cookies support" OFF)
mark_as_advanced(CURL_DISABLE_COOKIES)
mark_as_advanced(CURL_DISABLE_COOKIES)


option(CURL_DISABLE_TLMSP "to disable TLMSP support" OFF)
mark_as_advanced(CURL_DISABLE_TLMSP)

option(CURL_DISABLE_CRYPTO_AUTH "to disable cryptographic authentication" OFF)
option(CURL_DISABLE_CRYPTO_AUTH "to disable cryptographic authentication" OFF)
mark_as_advanced(CURL_DISABLE_CRYPTO_AUTH)
mark_as_advanced(CURL_DISABLE_CRYPTO_AUTH)
option(CURL_DISABLE_VERBOSE_STRINGS "to disable verbose strings" OFF)
option(CURL_DISABLE_VERBOSE_STRINGS "to disable verbose strings" OFF)
@@ -366,6 +369,7 @@ if(CMAKE_USE_OPENSSL)
  check_include_file("openssl/pem.h"    HAVE_OPENSSL_PEM_H)
  check_include_file("openssl/pem.h"    HAVE_OPENSSL_PEM_H)
  check_include_file("openssl/rsa.h"    HAVE_OPENSSL_RSA_H)
  check_include_file("openssl/rsa.h"    HAVE_OPENSSL_RSA_H)
  check_include_file("openssl/ssl.h"    HAVE_OPENSSL_SSL_H)
  check_include_file("openssl/ssl.h"    HAVE_OPENSSL_SSL_H)
  check_include_file("openssl/tlmsp.h"  HAVE_TLMSP)
  check_include_file("openssl/x509.h"   HAVE_OPENSSL_X509_H)
  check_include_file("openssl/x509.h"   HAVE_OPENSSL_X509_H)
  check_include_file("openssl/rand.h"   HAVE_OPENSSL_RAND_H)
  check_include_file("openssl/rand.h"   HAVE_OPENSSL_RAND_H)
  check_symbol_exists(RAND_status "${CURL_INCLUDES}" HAVE_RAND_STATUS)
  check_symbol_exists(RAND_status "${CURL_INCLUDES}" HAVE_RAND_STATUS)
+0 −1
Original line number Original line Diff line number Diff line
@@ -23,4 +23,3 @@ source code, under the following conditions:
  
  
The present ETSI Source Code license shall be included in all copies of whole 
The present ETSI Source Code license shall be included in all copies of whole 
or part of this source code and shall not imply any sub-license right.
or part of this source code and shall not imply any sub-license right.
+0 −13
Original line number Original line Diff line number Diff line
# TLSMP curl

curl modified to support TLMSP (ETSI TS 103 523-2)

## Licensing information

Contributions to this repositories are licensed according to the ETSI
Software License (see LICENSE).

The original implementation of curl is released under  
its own terms (see below and COPYING).


![curl logo](https://curl.haxx.se/logo/curl-logo.svg)
![curl logo](https://curl.haxx.se/logo/curl-logo.svg)


[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/63/badge)](https://bestpractices.coreinfrastructure.org/projects/63)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/63/badge)](https://bestpractices.coreinfrastructure.org/projects/63)
+89 −1
Original line number Original line Diff line number Diff line
@@ -156,6 +156,7 @@ AC_SUBST(PKGADD_VENDOR)
dnl
dnl
dnl initialize all the info variables
dnl initialize all the info variables
    curl_ssl_msg="no      (--with-{ssl,gnutls,nss,mbedtls,cyassl,schannel,secure-transport,mesalink,amissl} )"
    curl_ssl_msg="no      (--with-{ssl,gnutls,nss,mbedtls,cyassl,schannel,secure-transport,mesalink,amissl} )"
  curl_tlmsp_msg="no      (--with-tlmsp-tools)"
    curl_ssh_msg="no      (--with-libssh2)"
    curl_ssh_msg="no      (--with-libssh2)"
   curl_zlib_msg="no      (--with-zlib)"
   curl_zlib_msg="no      (--with-zlib)"
 curl_brotli_msg="no      (--with-brotli)"
 curl_brotli_msg="no      (--with-brotli)"
@@ -4037,6 +4038,89 @@ AC_HELP_STRING([--disable-cookies],[Disable cookies support]),
       AC_MSG_RESULT(yes)
       AC_MSG_RESULT(yes)
)
)


dnl **********************************************************************
dnl Check for the presence of TLMSP libraries and headers
dnl **********************************************************************

dnl Check for & handle argument to --with-tlmsp-tools.

clean_CPPFLAGS=$CPPFLAGS
clean_LDFLAGS=$LDFLAGS
TLMSP_ENABLED=
AC_ARG_WITH(tlmsp-tools,
AC_HELP_STRING([--with-tlmsp-tools=PATH],[enabled TLMSP and search for tlmsp-tools in PATH])
AC_HELP_STRING([--without-tlmsp-tools],[disable use of TLMSP]),
               [OPT_TLMSP="$withval"])

if test "$OPT_TLMSP" = "no" ; then
    AC_MSG_WARN([TLMSP disabled])
else
  dnl Add a nonempty path to the compiler flags
  if test -n "$OPT_TLMSP"; then
     CPPFLAGS="-I$OPT_TLMSP/include $CPPFLAGS"
     LDFLAGS="-L$OPT_TLMSP/lib$libsuff $LDFLAGS"
  fi

  AC_CHECK_HEADER(ucl.h,
    [
    dnl ucl.h was found
    HAVE_UCL_H="1"
    AC_CHECK_LIB(ucl, ucl_parser_new,
                 [
                 dnl the lib was found!
                 HAVE_LIBUCL="1"
    ])
  ])

  AC_CHECK_HEADER(tlmsp-tools/libtlmsp-cfg.h,
    [
    dnl libtlmsp-cfg.h was found
    HAVE_LIBTLMSP_CFG_H="1"
    AC_CHECK_LIB(tlmsp-cfg, tlmsp_cfg_parse_file,
                 [
                 dnl the lib was found!
                 HAVE_LIBTLMSP_CFG="1"
                 ],
                 [],
                 [
                 -lucl
    ])
  ])

  AC_CHECK_HEADER(tlmsp-tools/libtlmsp-util.h,
    [
    dnl libtlmsp-util.h was found
    HAVE_LIBTLMSP_UTIL_H="1"
    AC_CHECK_LIB(tlmsp-util, tlmsp_util_address_type,
                 [
                 dnl the lib was found!
                 HAVE_LIBTLMSP_UTIL="1"
    ])
  ])

  CPPFLAGS="$clean_CPPFLAGS"
  LDFLAGS="$clean_LDFLAGS"
  if test "$HAVE_LIBTLMSP_CFG_H" != "1" || test "$HAVE_LIBTLMSP_CFG" != "1"
  then
    AC_MSG_WARN([libtlmsp-cfg header and library are not both present!])
  elif test "$HAVE_LIBTLMSP_UTIL_H" != "1" || test "$HAVE_LIBTLMSP_UTIL" != "1"
  then
    AC_MSG_WARN([libtlmsp-util header and library are not both present!])
  elif test "$HAVE_UCL_H" != "1" || test "$HAVE_LIBUCL" != "1"
  then
    AC_MSG_WARN([libucl header and library are not both present!])
  else
    dnl All headers and libraries were found!
    AC_MSG_NOTICE([found all required TLMSP headers and libraries])
    AC_DEFINE(USE_TLMSP, 1, [to enable tlmsp])
    TLMSP_ENABLED=1
    curl_tlmsp_msg="enabled"
    CPPFLAGS="-I$OPT_TLMSP/include $CPPFLAGS"
    LDFLAGS="-L$OPT_TLMSP/lib$libsuff $LDFLAGS"
    LIBS="-ltlmsp-cfg -ltlmsp-util -lucl $LIBS"
  fi
fi

dnl ************************************************************
dnl ************************************************************
dnl switch on/off alt-svc
dnl switch on/off alt-svc
dnl
dnl
@@ -4105,6 +4189,9 @@ if test "x$OPENSSL_ENABLED" = "x1"; then
elif test -n "$SSL_ENABLED"; then
elif test -n "$SSL_ENABLED"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES SSL"
  SUPPORT_FEATURES="$SUPPORT_FEATURES SSL"
fi
fi
if test "x$TLMSP_ENABLED" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES TLMSP"
fi
if test "x$IPV6_ENABLED" = "x1"; then
if test "x$IPV6_ENABLED" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES IPv6"
  SUPPORT_FEATURES="$SUPPORT_FEATURES IPv6"
fi
fi
@@ -4322,7 +4409,7 @@ AC_OUTPUT


CURL_GENERATE_CONFIGUREHELP_PM
CURL_GENERATE_CONFIGUREHELP_PM


XC_AMEND_DISTCLEAN([lib src tests/unit tests/server tests/libtest docs/examples])
#XC_AMEND_DISTCLEAN([lib src tests/unit tests/server tests/libtest docs/examples])


AC_MSG_NOTICE([Configured to build curl/libcurl:
AC_MSG_NOTICE([Configured to build curl/libcurl:


@@ -4336,6 +4423,7 @@ AC_MSG_NOTICE([Configured to build curl/libcurl:


  curl version:     ${CURLVERSION}
  curl version:     ${CURLVERSION}
  SSL:              ${curl_ssl_msg}
  SSL:              ${curl_ssl_msg}
  TLMSP:            ${curl_tlmsp_msg}
  SSH:              ${curl_ssh_msg}
  SSH:              ${curl_ssh_msg}
  zlib:             ${curl_zlib_msg}
  zlib:             ${curl_zlib_msg}
  brotli:           ${curl_brotli_msg}
  brotli:           ${curl_brotli_msg}
+17 −0
Original line number Original line Diff line number Diff line
@@ -21,6 +21,11 @@
 * KIND, either express or implied.
 * KIND, either express or implied.
 *
 *
 ***************************************************************************/
 ***************************************************************************/
/*
 * Copyright (c) 2019 Not for Radio, LLC
 *
 * Released under the ETSI Software License (see LICENSE)
 */


/*
/*
 * If you have libcurl problems, all docs and details are found here:
 * If you have libcurl problems, all docs and details are found here:
@@ -603,6 +608,10 @@ typedef enum {
                                    */
                                    */
  CURLE_RECURSIVE_API_CALL,      /* 93 - an api function was called from
  CURLE_RECURSIVE_API_CALL,      /* 93 - an api function was called from
                                    inside a callback */
                                    inside a callback */
  CURLE_UNKNOWN_DATACONTEXT,     /* 94 - backend does not recognize given
                                    datacontext */
  CURLE_TRANSPORT_RECONNECT,     /* 95 - transport requires new connection
                                    attempt */
  CURL_LAST /* never use! */
  CURL_LAST /* never use! */
} CURLcode;
} CURLcode;


@@ -1924,6 +1933,13 @@ typedef enum {
  /* maximum age of a connection to consider it for reuse (in seconds) */
  /* maximum age of a connection to consider it for reuse (in seconds) */
  CINIT(MAXAGE_CONN, LONG, 288),
  CINIT(MAXAGE_CONN, LONG, 288),


  /* Set this option to the name of the TLMSP config file to use.  If no
     config file is specified, a default protocol version range will be
     used, no initial middleboxes will be configured, no discovered
     middleboxes will be accepted, and all application data will be placed
     in a single context with ID 1. */
  CINIT(TLMSP_CFG_FILE, STRINGPOINT, 286),

  CURLOPT_LASTENTRY /* the last unused */
  CURLOPT_LASTENTRY /* the last unused */
} CURLoption;
} CURLoption;


@@ -2787,6 +2803,7 @@ typedef struct {
#define CURL_VERSION_MULTI_SSL    (1<<22) /* Multiple SSL backends available */
#define CURL_VERSION_MULTI_SSL    (1<<22) /* Multiple SSL backends available */
#define CURL_VERSION_BROTLI       (1<<23) /* Brotli features are present. */
#define CURL_VERSION_BROTLI       (1<<23) /* Brotli features are present. */
#define CURL_VERSION_ALTSVC       (1<<24) /* Alt-Svc handling built-in */
#define CURL_VERSION_ALTSVC       (1<<24) /* Alt-Svc handling built-in */
#define CURL_VERSION_TLMSP        (1<<25) /* TLMSP is supported */


 /*
 /*
 * NAME curl_version_info()
 * NAME curl_version_info()
Loading