Skip to content

Commit f4dd9fa

Browse files
authored
release 4.12.0: security fixes (#225)
1 parent 574926e commit f4dd9fa

4 files changed

Lines changed: 63 additions & 5 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copas 4.11
1+
# Copas 4.12
22

33
[![Unix build](https://img.shields.io/github/actions/workflow/status/lunarmodules/copas/unix_build.yml?branch=master&label=Unix%20build&logo=linux)](https://github.com/lunarmodules/copas/actions)
44
[![Coveralls code coverage](https://img.shields.io/coveralls/github/lunarmodules/copas?logo=coveralls)](https://coveralls.io/github/lunarmodules/copas)

docs/index.html

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ <h2><a name="over"></a>Overview</h2>
7474

7575
<h2><a name="status"></a>Status</h2>
7676

77-
<p>Current version is 4.11.0 and was developed for Lua 5.1 to 5.5.</p>
77+
<p>Current version is 4.12.0 and was developed for Lua 5.1 to 5.5.</p>
7878

7979
<h2><a name="download"></a>Download</h2>
8080

@@ -100,7 +100,7 @@ <h2><a name="history"></a>History</h2>
100100

101101
<dl class="history">
102102

103-
<dt><strong>Copas 4.x.x</strong> [unreleased]</dt>
103+
<dt><strong>Copas 4.12.0</strong> [15/Aug/2026]</dt>
104104
<dd><ul>
105105
<li>Fix: a 0-byte <code>receive(0)</code> on a TCP/SSL socket was treated like a normal
106106
read and queued the caller on <code>select</code>, blocking until more data arrived even
@@ -142,7 +142,8 @@ <h2><a name="history"></a>History</h2>
142142
<code>give()</code> didn't validate their amount, so negative, NaN, or infinite values could
143143
corrupt or unbound the internal count; <code>destroy()</code> only released up to
144144
<code>max</code> queued waiters instead of all of them; and <code>get_wait()</code> counted
145-
waiters that had already been cancelled. Added <code>semaphore:release_all()</code> to
145+
waiters that had already been cancelled (#205).</li>
146+
<li>Added <code>semaphore:release_all()</code> to
146147
release every waiter past <code>max</code> (#205).</li>
147148
<li>Fix: <code>copas.future</code> completion was capped at 9999 waiters; the cap has been
148149
removed (#204).</li>

rockspec/copas-4.12.0-1.rockspec

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
local package_name = "copas"
2+
local package_version = "4.12.0"
3+
local rockspec_revision = "1"
4+
local github_account_name = "lunarmodules"
5+
local github_repo_name = package_name
6+
7+
8+
package = package_name
9+
version = package_version.."-"..rockspec_revision
10+
source = {
11+
url = "git+https://github.com/"..github_account_name.."/"..github_repo_name..".git",
12+
branch = (package_version == "cvs") and "master" or nil,
13+
tag = (package_version ~= "cvs") and package_version or nil,
14+
}
15+
description = {
16+
summary = "Coroutine Oriented Portable Asynchronous Services",
17+
detailed = [[
18+
Copas is a dispatcher based on coroutines that can be used by
19+
TCP/IP servers. It uses LuaSocket as the interface with the
20+
TCP/IP stack. A server registered with Copas should provide a
21+
handler for requests and use Copas socket functions to send
22+
the response. Copas loops through requests and invokes the
23+
corresponding handlers. For a full implementation of a Copas
24+
HTTP server you can refer to Xavante as an example.
25+
]],
26+
license = "MIT/X11",
27+
homepage = "https://github.com/"..github_account_name.."/"..github_repo_name,
28+
}
29+
dependencies = {
30+
"lua >= 5.1, < 5.6",
31+
"luasocket ~> 3",
32+
"coxpcall >= 1.14",
33+
"binaryheap >= 0.4",
34+
"timerwheel ~> 1",
35+
}
36+
build = {
37+
type = "builtin",
38+
install = {
39+
bin = {
40+
copas = "bin/copas.lua",
41+
}
42+
},
43+
modules = {
44+
["copas"] = "src/copas.lua",
45+
["copas.http"] = "src/copas/http.lua",
46+
["copas.ftp"] = "src/copas/ftp.lua",
47+
["copas.smtp"] = "src/copas/smtp.lua",
48+
["copas.timer"] = "src/copas/timer.lua",
49+
["copas.lock"] = "src/copas/lock.lua",
50+
["copas.semaphore"] = "src/copas/semaphore.lua",
51+
["copas.future"] = "src/copas/future.lua",
52+
["copas.queue"] = "src/copas/queue.lua",
53+
},
54+
copy_directories = {
55+
"docs",
56+
},
57+
}

src/copas.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ end
136136
-- Meta information is public even if beginning with an "_"
137137
copas._COPYRIGHT = "Copyright (C) 2005-2013 Kepler Project, 2015-2026 Thijs Schreijer"
138138
copas._DESCRIPTION = "Coroutine Oriented Portable Asynchronous Services"
139-
copas._VERSION = "Copas 4.11.0"
139+
copas._VERSION = "Copas 4.12.0"
140140

141141
-- Close the socket associated with the current connection after the handler finishes
142142
copas.autoclose = true

0 commit comments

Comments
 (0)