SocketClose
Description
Close a connected socket. Safe to call on a zeroed Socket.
Success
Socket is closed and zeroed.
Failure
Function cannot fail; close errors are logged at error level but do not propagate.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
Dns.c:413:
}
if (!SocketSetRecvTimeoutMs(sock.fd, timeout_ms)) {
SocketClose(&sock);
return -1;
}- In
Dns.c:418:
i64 sent = SocketSend(&sock, query, qlen);
if (sent != (i64)qlen) {
SocketClose(&sock);
return -1;
}- In
Dns.c:422:
}
i64 got = SocketRecv(&sock, resp_buf, resp_cap);
SocketClose(&sock);
return got;
}- In
Socket.c:893:
}
void SocketClose(Socket *self) {
if (!self) {
return;- In
Beam.c:351:
if (!SocketConnect(&upstream, SOCKET_KIND_TCP, upstream_addr)) {
LOG_ERROR("failed to dial upstream for client [{}]", peer_str);
SocketClose(client);
StrDeinit(&peer_str);
return;- In
Beam.c:360:
i64 first_n = SocketRecv(client, first, sizeof(first));
if (first_n <= 0) {
SocketClose(&upstream);
SocketClose(client);
StrDeinit(&peer_str);- In
Beam.c:361:
if (first_n <= 0) {
SocketClose(&upstream);
SocketClose(client);
StrDeinit(&peer_str);
return;- In
Beam.c:377:
proxy_pump(client, &upstream, first, (size)first_n);
SocketClose(&upstream);
SocketClose(client);
StrDeinit(&peer_str);- In
Beam.c:378:
SocketClose(&upstream);
SocketClose(client);
StrDeinit(&peer_str);
}- In
Socket.c:63:
if (!ListenerAccept(&listener, &server)) {
SocketClose(&client);
ListenerClose(&listener);
DefaultAllocatorDeinit(&alloc);- In
Socket.c:72:
size n = (size)ZstrLen(payload);
if (SocketSend(&client, payload, n) != (i64)n) {
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);- In
Socket.c:73:
if (SocketSend(&client, payload, n) != (i64)n) {
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);
DefaultAllocatorDeinit(&alloc);- In
Socket.c:83:
bool ok = got == (i64)n && MemCompare(buf, payload, n) == 0;
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);- In
Socket.c:84:
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);
DefaultAllocatorDeinit(&alloc);- In
Socket.c:179:
if (!ListenerAccept(&p.listener, &p.server)) {
SocketClose(&p.client);
ListenerClose(&p.listener);
return p;- In
Socket.c:189:
static void pair_close(Pair *p) {
SocketClose(&p->server);
SocketClose(&p->client);
ListenerClose(&p->listener);- In
Socket.c:190:
static void pair_close(Pair *p) {
SocketClose(&p->server);
SocketClose(&p->client);
ListenerClose(&p->listener);
}- In
Socket.c:494:
// Client closes; server side sees EOF -> POLLIN readable.
SocketClose(&p.client);
SocketPollItem item = {0};- In
Socket.c:504:
bool ok = n == 1 && (item.events_ready & SOCKET_POLL_READ) != 0 && (item.events_ready & SOCKET_POLL_WRITE) == 0;
SocketClose(&p.server);
ListenerClose(&p.listener);
DefaultAllocatorDeinit(&alloc);- In
Socket.c:1029:
ok = ok && server.kind == SOCKET_KIND_TCP;
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);- In
Socket.c:1030:
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);
DefaultAllocatorDeinit(&alloc);- In
Socket.c:1131:
if (!ListenerAccept(listener, server)) {
SocketClose(client);
ListenerClose(listener);
return false;- In
Socket.c:1197:
ok = ok && g2 == (i64)n2 && MemCompare(buf2, s2c, n2) == 0;
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);- In
Socket.c:1198:
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);
DefaultAllocatorDeinit(&alloc);- In
Socket.c:1224:
// Client closes; server must observe EOF (recv == 0).
SocketClose(&client);
char buf[16];- In
Socket.c:1230:
bool ok = got == 0;
SocketClose(&server);
ListenerClose(&listener);
DefaultAllocatorDeinit(&alloc);- In
Socket.c:1273:
StrDeinit(&rendered);
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);- In
Socket.c:1274:
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);
DefaultAllocatorDeinit(&alloc);- In
Socket.c:1324:
SocketRecv(&server, buf, sizeof(buf));
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);- In
Socket.c:1325:
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);
DefaultAllocatorDeinit(&alloc);- In
Socket.c:1371:
ok = ok && got == (i64)n && MemCompare(buf, payload, n) == 0;
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);- In
Socket.c:1372:
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);
DefaultAllocatorDeinit(&alloc);- In
Socket.c:1409:
ok = ok && got == (i64)n && MemCompare(buf, payload, n) == 0;
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);- In
Socket.c:1410:
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);
DefaultAllocatorDeinit(&alloc);- In
Socket.c:1452:
ok = ok && got == (i64)n && MemCompare(buf, payload, n) == 0;
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);- In
Socket.c:1453:
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);
DefaultAllocatorDeinit(&alloc);
Last updated on