Designed to aid converting off from sscanf parsers. sscanf is hard to use right, easy to mess up and often makes for sloppy error checking. The new parsers allow more exact and pedandic parsing. This new set of functions should be possible to use (and extend) and switch over other libcurl parser code to use going forward. Adapts the following to use the new functions: - altsvc.c - hsts.c - http_aws_sigv4.c Bonus: fewer memory copies, fewer stack buffers. Test: Unit test1664 Docs: docs/internals/STRPARSE.md Closes #15692
57 lines
1.6 KiB
Plaintext
57 lines
1.6 KiB
Plaintext
<testcase>
|
|
<info>
|
|
<keywords>
|
|
unittest
|
|
alt-svc
|
|
altsvc
|
|
</keywords>
|
|
</info>
|
|
|
|
<client>
|
|
<server>
|
|
none
|
|
</server>
|
|
<features>
|
|
unittest
|
|
alt-svc
|
|
</features>
|
|
|
|
# This date is exactly "20190124 22:34:21" UTC
|
|
<setenv>
|
|
CURL_TIME=1548369261
|
|
</setenv>
|
|
<name>
|
|
alt-svc
|
|
</name>
|
|
<command>
|
|
%LOGDIR/%TESTNUMBER
|
|
</command>
|
|
<file name="%LOGDIR/%TESTNUMBER" mode="text">
|
|
h2 example.com 443 h3 shiny.example.com 8443 "20191231 00:00:00" 0 0
|
|
# a comment
|
|
h2 foo.example.com 443 h3 shiny.example.com 8443 "20291231 23:30:00" 0 0
|
|
h1 example.com 443 h3 shiny.example.com 8443 "20121231 00:00:01" 0 0
|
|
h3 example.com 443 h3 shiny.example.com 8443 "20131231 00:00:00" 0 0
|
|
# also a comment
|
|
bad example.com 443 h3 shiny.example.com 8443 "20191231 00:00:00" 0 0
|
|
rubbish
|
|
</file>
|
|
</client>
|
|
<verify>
|
|
<file name="%LOGDIR/%TESTNUMBER-out" mode="text">
|
|
# Your alt-svc cache. https://curl.se/docs/alt-svc.html
|
|
# This file was generated by libcurl! Edit at your own risk.
|
|
h2 example.com 443 h3 shiny.example.com 8443 "20191231 00:00:00" 0 0
|
|
h2 foo.example.com 443 h3 shiny.example.com 8443 "20291231 23:30:00" 0 0
|
|
h1 example.com 443 h3 shiny.example.com 8443 "20121231 00:00:01" 0 0
|
|
h3 example.com 443 h3 shiny.example.com 8443 "20131231 00:00:00" 0 0
|
|
h1 example.org 8080 h2 example.com 8080 "20190125 22:34:21" 0 0
|
|
h1 2.example.org 8080 h3 2.example.org 8080 "20190125 22:34:21" 0 0
|
|
h1 3.example.org 8080 h2 example.com 8080 "20190125 22:34:21" 0 0
|
|
h1 3.example.org 8080 h3 yesyes.com 8080 "20190125 22:34:21" 0 0
|
|
h2 example.org 80 h2 example.com 443 "20190124 22:36:21" 0 0
|
|
h2 example.net 80 h2 example.net 443 "20190124 22:37:21" 0 0
|
|
</file>
|
|
</verify>
|
|
</testcase>
|