tls_accept_socket(3)

tls_accept_socket3

Accept an incoming client connection in a tls server

Usage

#include <tls.h>

int

tls_accept_socket(struct tls *tls, struct tls **cctx, int socket);

int

tls_accept_fds(struct tls *tls, struct tls **cctx, int fd_read, int fd_write);

int

tls_accept_cbs(struct tls *tls, struct tls **cctx, ssize_t (*tls_read_cb)(struct tls *ctx, void *buf, size_t buflen, void *cb_arg), ssize_t (*tls_write_cb)(struct tls *ctx, const void *buf, size_t buflen, void *cb_arg), void *cb_arg);

Overview

After creating a TLS server context tls with tls_server(3) and configuring it with tls_configure(3), a server can accept a new client connection by calling tls_accept_socket() on an already established socket connection.

Alternatively, a new client connection can be accepted over a pair of existing file descriptors by calling tls_accept_fds().

Calling tls_accept_cbs() allows read and write callback functions to handle data transfers. The specified cb_arg parameter is passed back to the functions, and can contain a pointer to any caller-specified data.

All these functions create a new context suitable for reading and writing and return it in *cctx.

Return values

These functions return 0 on success or -1 on error.

Releases

Unchanged in 3 releases since Debian 12 (Bookworm).

  1. 12–Arch

History

tls_accept_socket() appeared in OpenBSD 5.6 and got its final name in OpenBSD 5.7.

tls_accept_fds() appeared in OpenBSD 5.8 and tls_accept_cbs() in OpenBSD 6.1.

Authors

Joel Sing ⟨[email protected]⟩

tls_accept_cbs() was written by Tobias Pape ⟨[email protected]⟩.

From libretls 3.8.1-3 in Arch Linux 2026-11-01. Parsed by carta from the page's mdoc source.