summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-08-01 15:33:14 +0000
committerCoprDistGit <infra@openeuler.org>2024-08-01 15:33:14 +0000
commitabb3701db5e22c538f0db641501d8191f396134a (patch)
tree38791413ebdf579d43e919137ecfdfa80abe522c
parent107763f878eec62fda655ca69725bb97fa2e55f2 (diff)
automatic import of http-parseropeneuler24.03_LTS
-rw-r--r--.gitignore1
-rw-r--r--0001-url-treat-empty-port-as-default.patch79
-rw-r--r--http-parser.spec222
-rw-r--r--sources1
4 files changed, 303 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..419533e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/http-parser-2.9.4.tar.gz
diff --git a/0001-url-treat-empty-port-as-default.patch b/0001-url-treat-empty-port-as-default.patch
new file mode 100644
index 0000000..7b1a623
--- /dev/null
+++ b/0001-url-treat-empty-port-as-default.patch
@@ -0,0 +1,79 @@
+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
+
diff --git a/http-parser.spec b/http-parser.spec
new file mode 100644
index 0000000..c8a1fef
--- /dev/null
+++ b/http-parser.spec
@@ -0,0 +1,222 @@
+Name: http-parser
+Version: 2.9.4
+Release: 6%{?dist}
+Summary: HTTP request/response parser for C
+
+License: MIT
+URL: https://github.com/nodejs/http-parser
+Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
+# https://github.com/nodejs/http-parser/pull/483
+Patch0001: 0001-url-treat-empty-port-as-default.patch
+
+BuildRequires: meson
+BuildRequires: gcc
+
+%description
+This is a parser for HTTP messages written in C. It parses both requests and
+responses. The parser is designed to be used in performance HTTP applications.
+It does not make any syscalls nor allocations, it does not buffer data, it can
+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
+connection).
+
+%package devel
+Summary: Development headers and libraries for http-parser
+Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
+
+%description devel
+Development headers and libraries for http-parser.
+
+%prep
+%autosetup -p1
+%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
+%meson
+%meson_build
+
+%install
+%meson_install
+
+%check
+%meson_test
+
+%ldconfig_scriptlets
+
+%files
+%license LICENSE-MIT
+%doc AUTHORS README.md
+%{_libdir}/libhttp_parser.so.*
+%{_libdir}/libhttp_parser_strict.so.*
+
+%files devel
+%{_includedir}/http_parser.h
+%{_libdir}/libhttp_parser.so
+%{_libdir}/libhttp_parser_strict.so
+
+%changelog
+* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 2.9.4-6
+- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
+ Related: rhbz#1991688
+
+* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 2.9.4-5
+- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
+
+* 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
+
+* Wed Sep 29 2010 jkeating - 0.3-3.20100911git
+- Rebuilt for gcc bug 634757
+
+* Mon Sep 20 2010 Lubomir Rintel <lkundrak@v3.sk> - 0.3-2.20100911git
+- Call ldconfig (Peter Lemenkov)
+
+* Fri Sep 17 2010 Lubomir Rintel <lkundrak@v3.sk> - 0.3-1.20100911git
+- Initial packaging
+
diff --git a/sources b/sources
new file mode 100644
index 0000000..197bb54
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+1b0f2371aabacbadaa03cc532cedcf92 http-parser-2.9.4.tar.gz