Skip to content

Tags: swift-server/async-http-client

Tags

1.25.2

Toggle 1.25.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Work around Foundation revert (#813)

Motivation

Foundation has reverted several of the changes of behaviour in the URL
type, leaving 6.0 and 6.1 with a different behaviour on non-Apple
platforms than all other versions.

We should tolerate that.

Modifications

Update the tests to understand the difference.

Result

Tests pass

1.25.1

Toggle 1.25.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix 5.10 compile on Ubuntu 24.04 (Noble) for Intel (x86_64) (#810)

Specifically Swift 5.10 _on Intel on Ubuntu Noble (24.04)_ has a crazy
bug which leads to compilation failures in a `#if compiler(>=6.0)`
block: swiftlang/swift#79285 .

This workaround fixes the compilation by _changing the whitespace_.

Thanks @gwynne for finding this workaround!

---------

Co-authored-by: Johannes Weiss <johannes@jweiss.io>

1.25.0

Toggle 1.25.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
baby steps towards a Structured Concurrency API (#806)

At the moment, `HTTPClient`'s entire API surface violates Structured
Concurrency. Both the creation & shutdown of a HTTP client as well as
making requests (#807) doesn't follow Structured Concurrency. Some of
the problems are:

1. Upon return of methods, resources are still in active use in other
threads/tasks
2. Cancellation doesn't always work

This PR is baby steps towards a Structured Concurrency API, starting
with start/shutdown of the HTTP client.

Co-authored-by: Johannes Weiss <johannes@jweiss.io>

1.24.2

Toggle 1.24.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Add missing import of Network module (#804)

1.24.1

Toggle 1.24.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Avoid precondition failure in write timeout (#803)

### Motivation:

In some cases we can crash because of a precondition failure when the
write timeout fires and we aren't in the running state. This can happen
for example if the connection is closed whilst the write timer is
active.

### Modifications:

* Remove the precondition and instead take no action if the timeout
fires outside of the running state. Instead we take a new `Action`,
`.noAction` when the timer fires.
* Clear write timeouts upon request completion. When a request completes
we have no use for the idle write timer, we clear the read timer and we
should clear the write one too.

### Result:

Fewer crashes.

The supplied tests fails without these changes and passes with either of them.

1.24.0

Toggle 1.24.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix 784: dont crash on huge in-memory bodies (#785)

fixes #784 

`writeChunks` had 3 bugs:
1. An actually wrong `UnsafeMutableTransferBox` -> removed that type
which should never be created
2. A loooong future chain (instead of one final promise) -> implemented
3. Potentially infinite recursion which lead to the crash in #784) ->
fixed too

1.23.1

Toggle 1.23.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
workaround Foundation.URL behavior changes (#777)

`Foundation.URL` has various behavior changes in Swift 6 to better match
RFC 3986 which impact AHC.

In particular it now no longer strips the square brackets in IPv6 hosts
which are not tolerated by `inet_pton` so these must be manually
stripped.

swiftlang/swift-foundation#957
swiftlang/swift-foundation#958
swiftlang/swift-foundation#962

1.23.0

Toggle 1.23.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Don't just import `locale_h`. (#775)

On modularised platforms, #771 broke things because it changed from
importing `Musl` or `Glibc` to importing just `locale_h`. The latter
understandably doesn't define `errno` or `EOVERFLOW`, so we get a build
failure.

Fixes #773.

1.22.2

Toggle 1.22.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Explicitly import locale modules (#771)

The Darwin module is slowly being split up, and as it gets further
along, it will stop importing some of the split-out modules like the one
for locale.h that provides newlocale() and other locale API. However,
there's a wrinkle that on platforms with xlocale, it's xlocale.h that
provides most of the POSIX locale.h functions and not locale.h, so
prefer the xlocale module when available.

1.22.1

Toggle 1.22.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fix crash when writablity becomes false and races against finishing t…

…he http request (#768)

### Motivation

If the channel's writability changed to false just before we finished a
request, we currently run into a precondition.

### Changes

- Remove the precondition and handle the case appropiatly

### Result

A crash less.