<feed xmlns='http://www.w3.org/2005/Atom'>
<title>luasocket/src/http.lua, branch docs/pre-release-audit</title>
<subtitle>A mirror of https://github.com/lunarmodules/luasocket.git
</subtitle>
<id>https://git.lua4.win/luasocket/atom?h=docs%2Fpre-release-audit</id>
<link rel='self' href='https://git.lua4.win/luasocket/atom?h=docs%2Fpre-release-audit'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/'/>
<updated>2026-08-31T08:17:14+00:00</updated>
<entry>
<title>feat(core): Handle response code 308 permanent redirect</title>
<updated>2026-08-31T08:17:14+00:00</updated>
<author>
<name>Amanda Stjerna</name>
<email>amanda@stjerna.space</email>
</author>
<published>2026-08-31T08:17:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=af10c2ceb0633082d711104e5dac53998d5fe7c9'/>
<id>urn:sha1:af10c2ceb0633082d711104e5dac53998d5fe7c9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge pull request #472 from lunarmodules/feat/url-hosttype</title>
<updated>2026-08-31T08:08:19+00:00</updated>
<author>
<name>Caleb Maclennan</name>
<email>caleb@alerque.com</email>
</author>
<published>2026-08-31T08:08:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=8e00f02f24d8618fcbff42c93a7ee512f694cc2f'/>
<id>urn:sha1:8e00f02f24d8618fcbff42c93a7ee512f694cc2f</id>
<content type='text'>
feat(url): classify host as name/ipv4/ipv6 in parse and build</content>
</entry>
<entry>
<title>fix(http): bracket IPv6 host in Host header</title>
<updated>2026-08-30T13:41:46+00:00</updated>
<author>
<name>Thijs Schreijer</name>
<email>thijs@thijsschreijer.nl</email>
</author>
<published>2026-08-30T13:41:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=630a3b7f4fb0c786170e3903175e964bbc1bc77f'/>
<id>urn:sha1:630a3b7f4fb0c786170e3903175e964bbc1bc77f</id>
<content type='text'>
The Host header must wrap an IPv6 literal in brackets (RFC 7230), but
adjustheaders() used reqt.host as-is, which is unbracketed after
url.parse(). Use url.classify_host() to detect IPv6 and bracket it,
handling an already-bracketed input without doubling the brackets.

Closes #445
</content>
</entry>
<entry>
<title>feat(http/ftp/smtp): implement max size checks</title>
<updated>2026-08-29T15:42:13+00:00</updated>
<author>
<name>Thijs Schreijer</name>
<email>thijs.schreijer@bookingexperts.com</email>
</author>
<published>2026-08-10T15:11:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=c84e79f6d1ae735bfa191694ec6a62eb8231166d'/>
<id>urn:sha1:c84e79f6d1ae735bfa191694ec6a62eb8231166d</id>
<content type='text'>
fixes unbounded reads when using the "*l" pattern. Typically on
headers and other control lines.
</content>
</entry>
<entry>
<title>refactor(receive): make implicit line reads explicit</title>
<updated>2026-08-29T15:42:13+00:00</updated>
<author>
<name>Thijs Schreijer</name>
<email>thijs.schreijer@bookingexperts.com</email>
</author>
<published>2026-08-10T13:27:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=52f9f91d91aa33a1483334f69073f3e6250cd168'/>
<id>urn:sha1:52f9f91d91aa33a1483334f69073f3e6250cd168</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore(http): Correct typos in error message and code comments (#423)</title>
<updated>2024-02-12T08:28:01+00:00</updated>
<author>
<name>Alexandre Detiste</name>
<email>alexandre.detiste@gmail.com</email>
</author>
<published>2024-02-12T08:28:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=98be8d9fc1de19ec526cf7bee0d03a1e78262ba8'/>
<id>urn:sha1:98be8d9fc1de19ec526cf7bee0d03a1e78262ba8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(http): Use the right protocol for proxies (#386)</title>
<updated>2023-11-23T05:01:29+00:00</updated>
<author>
<name>Max1Truc</name>
<email>26603929+Max1Truc@users.noreply.github.com</email>
</author>
<published>2023-11-23T05:01:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=fa69770e52ba869feb8339d49e7c3c536953fbde'/>
<id>urn:sha1:fa69770e52ba869feb8339d49e7c3c536953fbde</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(http): Correct receiveheaders() handling of folded values (#420)</title>
<updated>2023-11-13T20:33:26+00:00</updated>
<author>
<name>_AMD_</name>
<email>amd@default.im</email>
</author>
<published>2023-11-13T20:33:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=13f2b3c663d9fa5c464782a0bfccb30bcc017b0c'/>
<id>urn:sha1:13f2b3c663d9fa5c464782a0bfccb30bcc017b0c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(http): Allow relative redirect on https (#395)</title>
<updated>2022-10-08T06:42:36+00:00</updated>
<author>
<name>Henri D</name>
<email>nheir.kim@gmail.com</email>
</author>
<published>2022-10-08T06:42:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=8c2ff7217e2a205eb107a6f48b04ff1b2b3090a1'/>
<id>urn:sha1:8c2ff7217e2a205eb107a6f48b04ff1b2b3090a1</id>
<content type='text'>
Location header can now be relative: https://httpwg.org/specs/rfc9110.html#field.location</content>
</entry>
<entry>
<title>http.lua: set transfer-encoding if source and no content-length</title>
<updated>2022-03-22T08:38:14+00:00</updated>
<author>
<name>Julian Squires</name>
<email>julian@cipht.net</email>
</author>
<published>2020-10-16T14:48:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=2a76cb906cb955a83ed76b8e47cc76c77ce8e15f'/>
<id>urn:sha1:2a76cb906cb955a83ed76b8e47cc76c77ce8e15f</id>
<content type='text'>
If a source is specified without a content-length header, LuaSocket
sends the data in the chunked transfer coding; however, it doesn't set
the transfer-encoding header.  While I recognize that the user can set
this manually, this is a gotcha that has caught me multiple times.

RFC7230, section 3.3.3
  (https://tools.ietf.org/html/rfc7230#section-3.3.3)
is clear about this; if neither content-length nor transfer-encoding
chunked are specified, the request message body length is zero.  While
some servers may ignore this, I have encountered several that follow
the RFC in this regard, most recently golang's net/http.
</content>
</entry>
</feed>
