SocketConnect
Description
Open + connect to a remote endpoint.
Parameters
| Name | Direction | Description |
|---|---|---|
out |
out | Connected socket. Untouched on failure. |
kind |
in | SOCKET_KIND_TCP or SOCKET_KIND_UDP. |
target |
in | Address to connect to. |
Success
returns true; out->fd is connected.
Failure
returns false; logs the failing syscall.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
Dns.c:409:
static i64 udp_round_trip(const SocketAddr *ns, const u8 *query, u64 qlen, u8 *resp_buf, u64 resp_cap, u32 timeout_ms) {
Socket sock = {0};
if (!SocketConnect(&sock, SOCKET_KIND_UDP, ns)) {
return -1;
}- In
Socket.c:848:
// ---------------------------------------------------------------------------
bool SocketConnect(Socket *out, SocketKind kind, const SocketAddr *target) {
if (!out || !target) {
LOG_FATAL("SocketConnect: NULL argument");- In
Socket.c:850:
bool SocketConnect(Socket *out, SocketKind kind, const SocketAddr *target) {
if (!out || !target) {
LOG_FATAL("SocketConnect: NULL argument");
}
MemSet(out, 0, sizeof(*out));- In
Socket.c:859:
i32 proto = sock_kind_to_protocol(kind);
if (af == AF_UNSPEC || socktype < 0) {
LOG_ERROR("SocketConnect: invalid family/kind combination");
return false;
}- In
Beam.c:349:
Socket upstream;
if (!SocketConnect(&upstream, SOCKET_KIND_TCP, upstream_addr)) {
LOG_ERROR("failed to dial upstream for client [{}]", peer_str);
SocketClose(client);- In
Socket.c:56:
}
if (!SocketConnect(&client, SOCKET_KIND_TCP, &connect_addr)) {
ListenerClose(&listener);
DefaultAllocatorDeinit(&alloc);- In
Socket.c:173:
}
if (!SocketConnect(&p.client, SOCKET_KIND_TCP, &connect_addr)) {
ListenerClose(&p.listener);
return p;- In
Socket.c:1019:
Socket client = {0};
if (!SocketConnect(&client, SOCKET_KIND_TCP, &connect_addr)) {
ListenerClose(&listener);
DefaultAllocatorDeinit(&alloc);- In
Socket.c:1125:
}
if (!SocketConnect(client, SOCKET_KIND_TCP, &connect_addr)) {
ListenerClose(listener);
return false;
Last updated on