From 9ac2c5a0bb545a5dc48c7e0531346e40e426cf9b Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sun, 22 Dec 2024 09:32:10 -0800 Subject: HTTP: intern the version and avoid allocation There are only a few possible reasonable values, and we can intern them to avoid any allocations for it. (We will probably do the same for the HTTP method shortly as well.) --- docs/man/nng_http_req_set_version.3http.adoc | 11 +++++------ docs/man/nng_http_res_set_version.3http.adoc | 11 +++++------ 2 files changed, 10 insertions(+), 12 deletions(-) (limited to 'docs') diff --git a/docs/man/nng_http_req_set_version.3http.adoc b/docs/man/nng_http_req_set_version.3http.adoc index 04fd1b0d..ca41f0ef 100644 --- a/docs/man/nng_http_req_set_version.3http.adoc +++ b/docs/man/nng_http_req_set_version.3http.adoc @@ -1,6 +1,6 @@ = nng_http_req_set_version(3http) // -// Copyright 2018 Staysail Systems, Inc. +// Copyright 2024 Staysail Systems, Inc. // Copyright 2018 Capitar IT Group BV // // This document is supplied under the terms of the MIT License, a @@ -20,6 +20,9 @@ nng_http_req_set_version - set HTTP request protocol version #include #include +#define NNG_HTTP_VERSION_1_1 "HTTP/1.0" +#define NNG_HTTP_VERSION_1_1 "HTTP/1.1" + int nng_http_req_set_version(nng_http_req *req, const char *version); ---- @@ -33,12 +36,8 @@ The default value is "HTTP/1.1". A local copy of the _version_ is made in the request _req_. -NOTE: No validation of the version supplied is performed. - NOTE: The library does not contain support for versions of HTTP other than "HTTP/1.0" and "HTTP/1.1". -Specifying any other version may result in unspecified behavior. - == RETURN VALUES @@ -48,7 +47,7 @@ This function returns 0 on success, and non-zero otherwise. [horizontal] `NNG_ENOMEM`:: Insufficient memory to perform the operation. -`NNG_ENOTSUP`:: No support for HTTP in the library. +`NNG_ENOTSUP`:: No support for HTTP in the library, or no support for the version specified. == SEE ALSO diff --git a/docs/man/nng_http_res_set_version.3http.adoc b/docs/man/nng_http_res_set_version.3http.adoc index 23c25312..47ce3cd7 100644 --- a/docs/man/nng_http_res_set_version.3http.adoc +++ b/docs/man/nng_http_res_set_version.3http.adoc @@ -1,6 +1,6 @@ = nng_http_res_set_version(3http) // -// Copyright 2018 Staysail Systems, Inc. +// Copyright 2024 Staysail Systems, Inc. // Copyright 2018 Capitar IT Group BV // // This document is supplied under the terms of the MIT License, a @@ -20,6 +20,9 @@ nng_http_res_set_version - set HTTP response protocol version #include #include +#define NNG_HTTP_VERSION_1_1 "HTTP/1.0" +#define NNG_HTTP_VERSION_1_1 "HTTP/1.1" + int nng_http_res_set_version(nng_http_res *res, const char *version); ---- @@ -33,12 +36,8 @@ The default value is "HTTP/1.1". A local copy of the _version_ is made in the response _res_. -NOTE: No validation of the version supplied is performed. - NOTE: The library does not contain support for versions of HTTP other than "HTTP/1.0" and "HTTP/1.1". -Specifying any other version may result in unspecified behavior. - == RETURN VALUES @@ -48,7 +47,7 @@ This function returns 0 on success, and non-zero otherwise. [horizontal] `NNG_ENOMEM`:: Insufficient memory to perform the operation. -`NNG_ENOTSUP`:: No support for HTTP in the library. +`NNG_ENOTSUP`:: No support for HTTP in the library, or no support for the version specified. == SEE ALSO -- cgit v1.2.3-70-g09d2