DoxigAlpha

deinit

Returns the request's Connection back to the pool of the Client.

Function parameters

Parameters

#
r:*Request

A Least-Recently-Used cache of open connections to be reused.

Types

#
ConnectionPool
A Least-Recently-Used cache of open connections to be reused.

Release all associated resources with the client.

Functions

#
deinit
Release all associated resources with the client.
initDefaultProxies
Populates `http_proxy` and `https_proxy` via standard proxy environment variables.
connectTcp
Reuses a `Connection` if one matching `host` and `port` is already open.
connectUnix
Connect to `path` as a unix domain socket.
connectProxied
Connect to `proxied_host:proxied_port` using the specified proxy with HTTP
connect
Connect to `host:port` using the specified protocol.
request
Open a connection to the host specified by `uri` and prepare to send a HTTP request.
fetch
Perform a one-shot HTTP request with the provided options.

Error sets in this namespace

Error Sets

#

= std.options.http_disable_tls

Values

#
disable_tls
= std.options.http_disable_tls

Source

Implementation

#
pub fn deinit(r: *Request) void {
    if (r.connection) |connection| {
        connection.closing = connection.closing or switch (r.reader.state) {
            .ready => false,
            .received_head => c: {
                if (r.method.requestHasBody()) break :c true;
                if (!r.method.responseHasBody()) break :c false;
                const reader = r.reader.bodyReader(&.{}, r.response_transfer_encoding, r.response_content_length);
                _ = reader.discardRemaining() catch |err| switch (err) {
                    error.ReadFailed => break :c true,
                };
                break :c r.reader.state != .ready;
            },
            else => true,
        };
        r.client.connection_pool.release(connection);
    }
    r.* = undefined;
}