Skip to content

Commit 8607627

Browse files
committed
Update courier to 0.1.2
Picks up bug fixes in the HTTP transport and SSL layers, and handles the new ConnectionFailedTimeout variant in exhaustive matches.
1 parent d1e74bd commit 8607627

7 files changed

Lines changed: 25 additions & 1 deletion

File tree

.release-notes/next-release.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,19 @@ let creds = Credentials(auth, token)
6969

7070
Authorization headers now use `Bearer` format (`Authorization: Bearer <token>`) instead of the legacy `token` format. GitHub accepts both.
7171

72+
## Fix programs hanging on shutdown when the remote peer didn't cleanly close connections
73+
74+
Closing an HTTP connection could hang indefinitely on POSIX when the remote peer's FIN notification was missed in a narrow timing window. The connection would get stuck in CLOSE_WAIT, preventing the Pony runtime from exiting. This is now handled correctly and connections close promptly.
75+
76+
## Fix HTTPS connections staying open longer than expected when idle
77+
78+
Idle timeouts didn't fire reliably on HTTPS connections, meaning connections could stay open well past their intended lifetime. Idle timeouts now work correctly for both plain and SSL connections.
79+
80+
## Fix internal resource leak when a connection was closed during establishment
81+
82+
Closing a connection while it was still being established (during TCP or TLS handshake) could leak internal resources. Early close is now handled cleanly.
83+
84+
## Fix SSL certificate validation accepting certificates with empty name entries
85+
86+
X.509 hostname verification could incorrectly accept certificates with empty name entries. Certificates must now have non-empty name fields to pass validation.
87+

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ All notable changes to this project will be documented in this file. This projec
66

77
### Fixed
88

9+
- Fix programs hanging on shutdown when the remote peer didn't cleanly close connections ([PR #NNN](https://github.com/ponylang/github_rest_api/pull/NNN))
10+
- Fix HTTPS connections staying open longer than expected when idle ([PR #NNN](https://github.com/ponylang/github_rest_api/pull/NNN))
11+
- Fix internal resource leak when a connection was closed during establishment ([PR #NNN](https://github.com/ponylang/github_rest_api/pull/NNN))
12+
- Fix SSL certificate validation accepting certificates with empty name entries ([PR #NNN](https://github.com/ponylang/github_rest_api/pull/NNN))
913

1014
### Added
1115

corral.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
},
1111
{
1212
"locator": "github.com/ponylang/courier.git",
13-
"version": "0.1.0"
13+
"version": "0.1.2"
1414
},
1515
{
1616
"locator": "github.com/ponylang/uri.git",

github_rest_api/paginated_list.pony

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,7 @@ actor LinkedJsonRequester is courier.HTTPClientConnectionActor
240240
| courier.ConnectionFailedDNS => "DNS resolution failed"
241241
| courier.ConnectionFailedTCP => "Unable to connect"
242242
| courier.ConnectionFailedSSL => "SSL handshake failed"
243+
| courier.ConnectionFailedTimeout => "Connection timed out"
243244
end
244245
_receiver.failure(0, "", consume msg)
245246

github_rest_api/request/check_requester.pony

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ actor CheckRequester is courier.HTTPClientConnectionActor
117117
| courier.ConnectionFailedDNS => "DNS resolution failed"
118118
| courier.ConnectionFailedTCP => "Unable to connect"
119119
| courier.ConnectionFailedSSL => "SSL handshake failed"
120+
| courier.ConnectionFailedTimeout => "Connection timed out"
120121
end
121122
_receiver.failure(0, "", consume msg)
122123

github_rest_api/request/json_requester.pony

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ actor JsonRequester is courier.HTTPClientConnectionActor
159159
| courier.ConnectionFailedDNS => "DNS resolution failed"
160160
| courier.ConnectionFailedTCP => "Unable to connect"
161161
| courier.ConnectionFailedSSL => "SSL handshake failed"
162+
| courier.ConnectionFailedTimeout => "Connection timed out"
162163
end
163164
_receiver.failure(0, "", consume msg)
164165

github_rest_api/request/no_content_requester.pony

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ actor NoContentRequester is courier.HTTPClientConnectionActor
135135
| courier.ConnectionFailedDNS => "DNS resolution failed"
136136
| courier.ConnectionFailedTCP => "Unable to connect"
137137
| courier.ConnectionFailedSSL => "SSL handshake failed"
138+
| courier.ConnectionFailedTimeout => "Connection timed out"
138139
end
139140
_receiver.failure(0, "", consume msg)
140141

0 commit comments

Comments
 (0)