Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
acea6e2e46 | ||
|
2bbab78090 |
14
.gitignore
vendored
14
.gitignore
vendored
@ -1,15 +1 @@
|
|||||||
/http-parser.tar.gz
|
/http-parser.tar.gz
|
||||||
/ry-http-parser-v1.0-0-g32c0e11.tar.gz
|
|
||||||
/joyent-http-parser-v2.0-0-g3fb4e06.tar.gz
|
|
||||||
/joyent-http-parser-v2.0-5-g245f6f0.tar.gz
|
|
||||||
/joyent-http-parser-v2.0-7-gcd01361.tar.gz
|
|
||||||
/v2.6.0.tar.gz
|
|
||||||
/v2.7.1.tar.gz
|
|
||||||
/http-parser-2.7.1.tar.gz
|
|
||||||
/http-parser-2.8.0.tar.gz
|
|
||||||
/http-parser-2.8.1.tar.gz
|
|
||||||
/http-parser-2.9.0.tar.gz
|
|
||||||
/http-parser-2.9.1.tar.gz
|
|
||||||
/http-parser-2.9.2.tar.gz
|
|
||||||
/http-parser-2.9.3.tar.gz
|
|
||||||
/http-parser-2.9.4.tar.gz
|
|
||||||
|
@ -1,79 +0,0 @@
|
|||||||
From d1bb7a564e0f92ef2081d3af8b4b7f85a307c38f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Edward Thomson <ethomson@edwardthomson.com>
|
|
||||||
Date: Fri, 14 Jun 2019 17:37:22 +0100
|
|
||||||
Subject: [PATCH] url: treat empty port as default
|
|
||||||
|
|
||||||
When parsing URLs, treat an empty port (eg `http://hostname:/`) as if it
|
|
||||||
were unspecified. RFC 3986 says:
|
|
||||||
|
|
||||||
> URI producers and normalizers SHOULD omit the port component and its
|
|
||||||
> ":" delimiter if port is empty or if its value would be the same as
|
|
||||||
> that of the scheme's default.
|
|
||||||
|
|
||||||
(Emphasis on the "SHOULD" is mine.) This indicates that URIs MAY be
|
|
||||||
produced with an empty port and the `:` delimiter.
|
|
||||||
|
|
||||||
Thus, we stop failing if we end host parsing at the port delimiter.
|
|
||||||
---
|
|
||||||
http_parser.c | 1 -
|
|
||||||
test.c | 25 +++++++++++++++++++------
|
|
||||||
2 files changed, 19 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/http_parser.c b/http_parser.c
|
|
||||||
index 4896385..7e268d8 100644
|
|
||||||
--- a/http_parser.c
|
|
||||||
+++ b/http_parser.c
|
|
||||||
@@ -2326,7 +2326,6 @@ http_parse_host(const char * buf, struct http_parser_url *u, int found_at) {
|
|
||||||
case s_http_host_v6:
|
|
||||||
case s_http_host_v6_zone_start:
|
|
||||||
case s_http_host_v6_zone:
|
|
||||||
- case s_http_host_port_start:
|
|
||||||
case s_http_userinfo:
|
|
||||||
case s_http_userinfo_start:
|
|
||||||
return 1;
|
|
||||||
diff --git a/test.c b/test.c
|
|
||||||
index 0140a18..54eca61 100644
|
|
||||||
--- a/test.c
|
|
||||||
+++ b/test.c
|
|
||||||
@@ -2825,6 +2825,25 @@ const struct url_test url_tests[] =
|
|
||||||
,.rv=0
|
|
||||||
}
|
|
||||||
|
|
||||||
+, {.name="proxy empty port"
|
|
||||||
+ ,.url="http://hostname:/"
|
|
||||||
+ ,.is_connect=0
|
|
||||||
+ ,.u=
|
|
||||||
+ {.field_set=(1 << UF_SCHEMA) | (1 << UF_HOST) | (1 << UF_PATH)
|
|
||||||
+ ,.port=0
|
|
||||||
+ ,.field_data=
|
|
||||||
+ {{ 0, 4 } /* UF_SCHEMA */
|
|
||||||
+ ,{ 7, 8 } /* UF_HOST */
|
|
||||||
+ ,{ 0, 0 } /* UF_PORT */
|
|
||||||
+ ,{ 16, 1 } /* UF_PATH */
|
|
||||||
+ ,{ 0, 0 } /* UF_QUERY */
|
|
||||||
+ ,{ 0, 0 } /* UF_FRAGMENT */
|
|
||||||
+ ,{ 0, 0 } /* UF_USERINFO */
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ ,.rv=0
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
, {.name="CONNECT request"
|
|
||||||
,.url="hostname:443"
|
|
||||||
,.is_connect=1
|
|
||||||
@@ -3059,12 +3078,6 @@ const struct url_test url_tests[] =
|
|
||||||
,.rv=1
|
|
||||||
}
|
|
||||||
|
|
||||||
-, {.name="proxy empty port"
|
|
||||||
- ,.url="http://hostname:/"
|
|
||||||
- ,.is_connect=0
|
|
||||||
- ,.rv=1
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
, {.name="CONNECT with basic auth"
|
|
||||||
,.url="a:b@hostname:443"
|
|
||||||
,.is_connect=1
|
|
||||||
--
|
|
||||||
2.25.1
|
|
||||||
|
|
232
http-parser.spec
232
http-parser.spec
@ -1,16 +1,19 @@
|
|||||||
|
%global somajor 0
|
||||||
|
%global sominor 3
|
||||||
|
|
||||||
Name: http-parser
|
Name: http-parser
|
||||||
Version: 2.9.4
|
Version: %{somajor}.%{sominor}
|
||||||
Release: 8%{?dist}
|
Release: 4.20100911git%{?dist}
|
||||||
Summary: HTTP request/response parser for C
|
Summary: HTTP request/response parser for C
|
||||||
|
|
||||||
|
Group: System Environment/Libraries
|
||||||
License: MIT
|
License: MIT
|
||||||
URL: https://github.com/nodejs/http-parser
|
URL: http://github.com/ry/http-parser
|
||||||
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
|
# git clone http://github.com/ry/http-parser.git
|
||||||
# https://github.com/nodejs/http-parser/pull/483
|
# cd http-parser/
|
||||||
Patch0001: 0001-url-treat-empty-port-as-default.patch
|
# git archive 459507f5 --prefix=http-parser/ |gzip -9 >../http-parser.tar.gz
|
||||||
|
Source0: http-parser.tar.gz
|
||||||
BuildRequires: meson
|
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
||||||
BuildRequires: gcc
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
This is a parser for HTTP messages written in C. It parses both requests and
|
This is a parser for HTTP messages written in C. It parses both requests and
|
||||||
@ -20,203 +23,65 @@ be interrupted at anytime. Depending on your architecture, it only requires
|
|||||||
about 40 bytes of data per message stream (in a web server that is per
|
about 40 bytes of data per message stream (in a web server that is per
|
||||||
connection).
|
connection).
|
||||||
|
|
||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
|
Group: Development/Libraries
|
||||||
Summary: Development headers and libraries for http-parser
|
Summary: Development headers and libraries for http-parser
|
||||||
Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
Development headers and libraries for http-parser.
|
Development headers and libraries for htt-parser.
|
||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1
|
%setup -q -n %{name}
|
||||||
%ifarch %{arm}
|
|
||||||
# https://github.com/nodejs/http-parser/issues/507
|
|
||||||
sed -i -e "/sizeof(http_parser)/d" test.c
|
|
||||||
%endif
|
|
||||||
# TODO: try to send upstream?
|
|
||||||
cat > meson.build << EOF
|
|
||||||
project('%{name}', 'c', version : '%{version}')
|
|
||||||
install_headers('http_parser.h')
|
|
||||||
foreach x : [['http_parser', ['-DHTTP_PARSER_STRICT=0']],
|
|
||||||
['http_parser_strict', ['-DHTTP_PARSER_STRICT=1']]]
|
|
||||||
lib = library(x.get(0), 'http_parser.c',
|
|
||||||
c_args : x.get(1),
|
|
||||||
version : '%{version}',
|
|
||||||
install : true)
|
|
||||||
test('test-@0@'.format(x.get(0)),
|
|
||||||
executable('test-@0@'.format(x.get(0)), 'test.c',
|
|
||||||
c_args : x.get(1),
|
|
||||||
link_with : lib),
|
|
||||||
timeout : 60)
|
|
||||||
endforeach
|
|
||||||
EOF
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%meson
|
make %{?_smp_mflags} CC="%{__cc} %{optflags} -fsigned-char -fPIC" http_parser.o
|
||||||
%meson_build
|
%{__cc} %{optflags} -Wl,-soname,http_parser.so.%{somajor} \
|
||||||
|
-o libhttp_parser.so -shared http_parser.o
|
||||||
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%meson_install
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
install -d $RPM_BUILD_ROOT%{_includedir}
|
||||||
|
install -d $RPM_BUILD_ROOT%{_libdir}
|
||||||
|
install -pm644 http_parser.h $RPM_BUILD_ROOT%{_includedir}
|
||||||
|
install libhttp_parser.so $RPM_BUILD_ROOT%{_libdir}/libhttp_parser.so.%{somajor}.%{sominor}
|
||||||
|
ln -sf libhttp_parser.so.%{somajor}.%{sominor} $RPM_BUILD_ROOT%{_libdir}/libhttp_parser.so.%{somajor}
|
||||||
|
ln -sf libhttp_parser.so.%{somajor}.%{sominor} $RPM_BUILD_ROOT%{_libdir}/libhttp_parser.so
|
||||||
|
|
||||||
|
|
||||||
%check
|
%check
|
||||||
%meson_test
|
make %{?_smp_mflags} CC="%{__cc} %{optflags} -fsigned-char -fPIC" test
|
||||||
|
|
||||||
|
|
||||||
|
%clean
|
||||||
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
|
||||||
|
%post -p /sbin/ldconfig
|
||||||
|
%postun -p /sbin/ldconfig
|
||||||
|
|
||||||
%ldconfig_scriptlets
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%license LICENSE-MIT
|
%defattr(-,root,root,-)
|
||||||
%doc AUTHORS README.md
|
|
||||||
%{_libdir}/libhttp_parser.so.*
|
%{_libdir}/libhttp_parser.so.*
|
||||||
%{_libdir}/libhttp_parser_strict.so.*
|
%doc CONTRIBUTIONS LICENSE-MIT README.md
|
||||||
|
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%{_includedir}/http_parser.h
|
%defattr(-,root,root,-)
|
||||||
|
%{_includedir}/*
|
||||||
%{_libdir}/libhttp_parser.so
|
%{_libdir}/libhttp_parser.so
|
||||||
%{_libdir}/libhttp_parser_strict.so
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.4-8
|
* Thu Nov 4 2010 Dan Horák <dan[at]danny.cz> - 0.3-4.20100911git
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.4-7
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.4-6
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.4-5
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.4-4
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.4-3
|
|
||||||
- Second attempt - Rebuilt for
|
|
||||||
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.4-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Apr 15 2020 Igor Raits <ignatenkobrain@fedoraproject.org> - 2.9.4-1
|
|
||||||
- Update to 2.9.4
|
|
||||||
|
|
||||||
* Mon Mar 02 2020 Igor Raits <ignatenkobrain@fedoraproject.org> - 2.9.3-2
|
|
||||||
- Include patch to work with colon but no port
|
|
||||||
|
|
||||||
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.2-3
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.2-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
|
||||||
|
|
||||||
* Mon Apr 22 2019 Stephen Gallagher <sgallagh@redhat.com> - 2.9.2-1
|
|
||||||
- Update to 2.9.2
|
|
||||||
|
|
||||||
* Tue Apr 16 2019 Adam Williamson <awilliam@redhat.com> - 2.9.1-2
|
|
||||||
- Rebuild with Meson fix for #1699099
|
|
||||||
|
|
||||||
* Thu Apr 11 2019 Stephen Gallagher <sgallagh@redhat.com> - 2.9.1-1
|
|
||||||
- Update to 2.9.1
|
|
||||||
|
|
||||||
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.0-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.1-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
|
||||||
|
|
||||||
* Mon Apr 02 2018 Stephen Gallagher <sgallagh@redhat.com> - 2.8.1-1
|
|
||||||
- Update to 2.8.1
|
|
||||||
|
|
||||||
* Sat Feb 10 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 2.8.0-1
|
|
||||||
- Update to 2.8.0
|
|
||||||
- Switch to meson buildsystem
|
|
||||||
|
|
||||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.1-9
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sat Feb 03 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 2.7.1-8
|
|
||||||
- Switch to %%ldconfig_scriptlets
|
|
||||||
|
|
||||||
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.1-7
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.1-6
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.1-5
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
|
||||||
|
|
||||||
* Mon Nov 21 2016 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.7.1-4
|
|
||||||
- Use CMake buildsystem
|
|
||||||
|
|
||||||
* Tue Oct 25 2016 Nathaniel McCallum <npmccallum@redhat.com> - 2.7.1-3
|
|
||||||
- Add (upstreamed) status code patch
|
|
||||||
|
|
||||||
* Tue Aug 16 2016 Stephen Gallagher <sgallagh@redhat.com> - 2.7.1-2
|
|
||||||
- Upgrade to version 2.7.1
|
|
||||||
|
|
||||||
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.0-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Dec 01 2015 Stephen Gallagher <sgallagh@redhat.com> 2.6.0-1
|
|
||||||
- Upgrade to version 2.6.0
|
|
||||||
- Change to new upstream at https://github.com/nodejs/http-parser/
|
|
||||||
|
|
||||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0-9.20121128gitcd01361
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 2.0-8.20121128gitcd01361
|
|
||||||
- Rebuilt for GCC 5 C++11 ABI change
|
|
||||||
|
|
||||||
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0-7.20121128gitcd01361
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0-6.20121128gitcd01361
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0-5.20121128gitcd01361
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0-4.20121128gitcd01361
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sun Dec 02 2012 T.C. Hollingsworth <tchollingsworth@gmail.com> - 2.0-3.20121128gitcd01361
|
|
||||||
- latest git snapshot
|
|
||||||
- fixes buffer overflow in tests
|
|
||||||
|
|
||||||
* Tue Nov 27 2012 T.C. Hollingsworth <tchollingsworth@gmail.com> - 2.0-2.20121110git245f6f0
|
|
||||||
- latest git snapshot
|
|
||||||
- fixes tests
|
|
||||||
- use SMP make flags
|
|
||||||
- build as Release instead of Debug
|
|
||||||
- ship new strict variant
|
|
||||||
|
|
||||||
* Sat Oct 13 2012 T.C. Hollingsworth <tchollingsworth@gmail.com> - 2.0-1
|
|
||||||
- new upstream release 2.0
|
|
||||||
- migrate to GYP buildsystem
|
|
||||||
|
|
||||||
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0-3
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
|
||||||
|
|
||||||
* Mon Aug 22 2011 T.C. Hollingsworth <tchollingsworth@gmail.com> - 1.0-1
|
|
||||||
- New upstream release 1.0
|
|
||||||
- Remove patches, no longer needed for nodejs
|
|
||||||
- Fix typo in -devel description
|
|
||||||
- use github tarball instead of checkout
|
|
||||||
|
|
||||||
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3-6.20100911git
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Jan 11 2011 Lubomir Rintel <lkundrak@v3.sk> - 0.3-5.20100911git
|
|
||||||
- Add support for methods used by node.js
|
|
||||||
|
|
||||||
* Thu Nov 4 2010 Dan Horák <dan[at]danny.cz> - 0.3-4.20100911git
|
|
||||||
- build with -fsigned-char
|
- build with -fsigned-char
|
||||||
|
|
||||||
* Wed Sep 29 2010 jkeating - 0.3-3.20100911git
|
* Wed Sep 29 2010 jkeating - 0.3-2.20100911git.1
|
||||||
- Rebuilt for gcc bug 634757
|
- Rebuilt for gcc bug 634757
|
||||||
|
|
||||||
* Mon Sep 20 2010 Lubomir Rintel <lkundrak@v3.sk> - 0.3-2.20100911git
|
* Mon Sep 20 2010 Lubomir Rintel <lkundrak@v3.sk> - 0.3-2.20100911git
|
||||||
@ -224,4 +89,3 @@ EOF
|
|||||||
|
|
||||||
* Fri Sep 17 2010 Lubomir Rintel <lkundrak@v3.sk> - 0.3-1.20100911git
|
* Fri Sep 17 2010 Lubomir Rintel <lkundrak@v3.sk> - 0.3-1.20100911git
|
||||||
- Initial packaging
|
- Initial packaging
|
||||||
|
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
[koji]
|
|
||||||
targets = master fedora
|
|
Loading…
Reference in New Issue
Block a user