<feed xmlns='http://www.w3.org/2005/Atom'>
<title>luasocket/src, branch copilot/update-urltest-helper</title>
<subtitle>A mirror of https://github.com/lunarmodules/luasocket.git
</subtitle>
<id>https://git.lua4.win/luasocket/atom?h=copilot%2Fupdate-urltest-helper</id>
<link rel='self' href='https://git.lua4.win/luasocket/atom?h=copilot%2Fupdate-urltest-helper'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/'/>
<updated>2026-08-31T15:21:20+00:00</updated>
<entry>
<title>Add Lua 5.5 support (#473)</title>
<updated>2026-08-31T15:21:20+00:00</updated>
<author>
<name>Caleb Maclennan</name>
<email>caleb@alerque.com</email>
</author>
<published>2026-08-31T15:21:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=fa9b35a0cf11bc856cbd8bffbef5ad6fb3e62a93'/>
<id>urn:sha1:fa9b35a0cf11bc856cbd8bffbef5ad6fb3e62a93</id>
<content type='text'>
</content>
</entry>
<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>Merge pull request #467 from lunarmodules/fix/http-size-protect</title>
<updated>2026-08-31T08:04:37+00:00</updated>
<author>
<name>Caleb Maclennan</name>
<email>caleb@alerque.com</email>
</author>
<published>2026-08-31T08:04:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=01162f05408ac4206be15842ef91048c63c23869'/>
<id>urn:sha1:01162f05408ac4206be15842ef91048c63c23869</id>
<content type='text'>
Fix/http size protect</content>
</entry>
<entry>
<title>Merge pull request #470 from lunarmodules/header-canon</title>
<updated>2026-08-31T08:03:24+00:00</updated>
<author>
<name>Caleb Maclennan</name>
<email>caleb@alerque.com</email>
</author>
<published>2026-08-31T08:03:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=5afe174eeffc7f3e3b9ef80b5871237620c68415'/>
<id>urn:sha1:5afe174eeffc7f3e3b9ef80b5871237620c68415</id>
<content type='text'>
feat(headers): dynamically create cononicalized headers</content>
</entry>
<entry>
<title>Merge pull request #471 from lunarmodules/fix/zero-read</title>
<updated>2026-08-31T08:00:36+00:00</updated>
<author>
<name>Caleb Maclennan</name>
<email>caleb@alerque.com</email>
</author>
<published>2026-08-31T08:00:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=b836466de5a78e9b4f29ca6c85a2bdecd7c69da9'/>
<id>urn:sha1:b836466de5a78e9b4f29ca6c85a2bdecd7c69da9</id>
<content type='text'>
fix(receive): a receive 0 should immediately return, not block</content>
</entry>
<entry>
<title>Merge pull request #463 from lunarmodules/feat/receive-limit</title>
<updated>2026-08-31T07:57:58+00:00</updated>
<author>
<name>Caleb Maclennan</name>
<email>caleb@alerque.com</email>
</author>
<published>2026-08-31T07:57:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=8f18ce95bb38c7f5c4bef5b3684cf1b0df1fc266'/>
<id>urn:sha1:8f18ce95bb38c7f5c4bef5b3684cf1b0df1fc266</id>
<content type='text'>
feat(receive): add maxsize argument to bound memory usage</content>
</entry>
<entry>
<title>feat(core): Add option for Windows SO_EXCLUSIVEADDRUSE</title>
<updated>2026-08-31T07:52:00+00:00</updated>
<author>
<name>Wires77</name>
<email>Wires77@users.noreply.github.com</email>
</author>
<published>2025-02-27T21:40:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=b56a0c1b16f10ba6290b4decedbc424433972f46'/>
<id>urn:sha1:b56a0c1b16f10ba6290b4decedbc424433972f46</id>
<content type='text'>
</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(url): classify host as name/ipv4/ipv6 in parse and build</title>
<updated>2026-08-30T13:34:15+00:00</updated>
<author>
<name>Thijs Schreijer</name>
<email>thijs@thijsschreijer.nl</email>
</author>
<published>2026-08-30T13:34:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/luasocket/commit/?id=6fe110be47c0fc34bc9dce6d377ce9b48ab27c2e'/>
<id>urn:sha1:6fe110be47c0fc34bc9dce6d377ce9b48ab27c2e</id>
<content type='text'>
parse() now sets hosttype ("name"/"ipv4"/"ipv6") plus a matching
hostname/ipv4/ipv6 field alongside host. build() accepts those same
fields when host is absent, erroring if more than one is set.

classify_host is exported for standalone use; it classifies by shape
(colon present -&gt; ipv6, dotted-quad shape -&gt; ipv4) rather than
validating the address.
</content>
</entry>
</feed>
