From 90cc80745a90b74ffe6d3d90b7579ca6dcceeea5 Mon Sep 17 00:00:00 2001 From: Kamil Dudka Date: Thu, 21 Jul 2016 13:46:26 +0200 Subject: [PATCH] import needed files missing in the upstream tarball --- CURLINFO_HTTP_VERSION.3 | 56 ++++++++++++++++++++++++++++++ curl.spec | 10 ++++++ http2-server.pl | 75 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 141 insertions(+) create mode 100644 CURLINFO_HTTP_VERSION.3 create mode 100644 http2-server.pl diff --git a/CURLINFO_HTTP_VERSION.3 b/CURLINFO_HTTP_VERSION.3 new file mode 100644 index 0000000..b0f43e5 --- /dev/null +++ b/CURLINFO_HTTP_VERSION.3 @@ -0,0 +1,56 @@ +.\" ************************************************************************** +.\" * _ _ ____ _ +.\" * Project ___| | | | _ \| | +.\" * / __| | | | |_) | | +.\" * | (__| |_| | _ <| |___ +.\" * \___|\___/|_| \_\_____| +.\" * +.\" * Copyright (C) 1998 - 2016, Daniel Stenberg, , et al. +.\" * +.\" * This software is licensed as described in the file COPYING, which +.\" * you should have received as part of this distribution. The terms +.\" * are also available at https://curl.haxx.se/docs/copyright.html. +.\" * +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell +.\" * copies of the Software, and permit persons to whom the Software is +.\" * furnished to do so, under the terms of the COPYING file. +.\" * +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +.\" * KIND, either express or implied. +.\" * +.\" ************************************************************************** +.\" +.TH CURLINFO_HTTP_VERSION 3 "11 May 2016" "libcurl 7.50.0" "curl_easy_getinfo options" +.SH NAME +CURLINFO_HTTP_VERSION \- get the http version used in the connection +.SH SYNOPSIS +#include + +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_HTTP_VERSION, long *p); +.SH DESCRIPTION +Pass a pointer to a long to receive the version used in the last http connection. +The returned value will be CURL_HTTP_VERSION_1_0, CURL_HTTP_VERSION_1_1, or +CURL_HTTP_VERSION_2_0, or 0 if the version can't be determined. +.SH PROTOCOLS +HTTP +.SH EXAMPLE +.nf +CURL *curl = curl_easy_init(); +if(curl) { + CURLcode res; + curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); + res = curl_easy_perform(curl); + if(res == CURLE_OK) { + long http_version; + curl_easy_getinfo(curl, CURLINFO_HTTP_VERSION, &http_version); + } + curl_easy_cleanup(curl); +} +.fi +.SH AVAILABILITY +Added in 7.50.0 +.SH RETURN VALUE +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. +.SH "SEE ALSO" +.BR CURLINFO_RESPONSE_CODE "(3), " +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " diff --git a/curl.spec b/curl.spec index 30c375b..2c57c8f 100644 --- a/curl.spec +++ b/curl.spec @@ -6,6 +6,12 @@ License: MIT Group: Applications/Internet Source: http://curl.haxx.se/download/%{name}-%{version}.tar.lzma +# tmp workaround for https://github.com/curl/curl/commit/curl-7_50_0-2-g8b9ba13 +Source1: https://raw.githubusercontent.com/curl/curl/curl-7_50_0/docs/libcurl/opts/CURLINFO_HTTP_VERSION.3 + +# tmp workaround for https://github.com/curl/curl/commit/curl-7_50_0-3-g5e26d9c +Source2: https://raw.githubusercontent.com/curl/curl/curl-7_50_0/tests/http2-server.pl + # patch making libcurl multilib ready Patch101: 0101-curl-7.32.0-multilib.patch @@ -117,6 +123,10 @@ documentation of the library, too. %prep %setup -q +# files not included in the upstream tarball by mistake +install -p -m0644 %{SOURCE1} docs/libcurl/opts/CURLINFO_HTTP_VERSION.3 +install -p -m0755 %{SOURCE2} tests/http2-server.pl + # upstream patches # Fedora patches diff --git a/http2-server.pl b/http2-server.pl new file mode 100644 index 0000000..72ed12e --- /dev/null +++ b/http2-server.pl @@ -0,0 +1,75 @@ +#!/usr/bin/env perl +#*************************************************************************** +# _ _ ____ _ +# Project ___| | | | _ \| | +# / __| | | | |_) | | +# | (__| |_| | _ <| |___ +# \___|\___/|_| \_\_____| +# +# Copyright (C) 2016, Daniel Stenberg, , et al. +# +# This software is licensed as described in the file COPYING, which +# you should have received as part of this distribution. The terms +# are also available at https://curl.haxx.se/docs/copyright.html. +# +# You may opt to use, copy, modify, merge, publish, distribute and/or sell +# copies of the Software, and permit persons to whom the Software is +# furnished to do so, under the terms of the COPYING file. +# +# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +# KIND, either express or implied. +# +#*************************************************************************** + +# This script invokes nghttpx properly to have it serve HTTP/2 for us. +# nghttpx runs as a proxy in front of our "actual" HTTP/1 server. + +my $pidfile = "log/nghttpx.pid"; +my $logfile = "log/http2.log"; +my $nghttpx = "nghttpx"; +my $listenport = 9015; + +#*************************************************************************** +# Process command line options +# +while(@ARGV) { + if($ARGV[0] eq '--verbose') { + $verbose = 1; + } + elsif($ARGV[0] eq '--pidfile') { + if($ARGV[1]) { + $pidfile = $ARGV[1]; + shift @ARGV; + } + } + elsif($ARGV[0] eq '--nghttpx') { + if($ARGV[1]) { + $nghttpx = $ARGV[1]; + shift @ARGV; + } + } + elsif($ARGV[0] eq '--port') { + if($ARGV[1]) { + $listenport = $ARGV[1]; + shift @ARGV; + } + } + elsif($ARGV[0] eq '--logfile') { + if($ARGV[1]) { + $logfile = $ARGV[1]; + shift @ARGV; + } + } + else { + print STDERR "\nWarning: http2-server.pl unknown parameter: $ARGV[0]\n"; + } + shift @ARGV; +} + +my $cmdline="$nghttpx --backend=127.0.0.1,8990 ". + "--frontend=\"*,$listenport;no-tls\" ". + "--log-level=INFO ". + "--pid-file=$pidfile ". + "--errorlog-file=$logfile"; +print "RUN: $cmdline\n" if($verbose); +system("$cmdline 2>/dev/null");