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
Socket.c:54:
if (!ListenerAccept(&listener, &server)) {
SocketClose(&client);
ListenerClose(&listener);
return false;- In
Socket.c:62:
size n = (size)ZstrLen(payload);
if (SocketSend(&client, payload, n) != (i64)n) {
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);- In
Socket.c:63:
if (SocketSend(&client, payload, n) != (i64)n) {
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);
return false;- In
Socket.c:72:
bool ok = got == (i64)n && MemCompare(buf, payload, n) == 0;
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);- In
Socket.c:73:
SocketClose(&server);
SocketClose(&client);
ListenerClose(&listener);
return ok;- In
Socket.c:366:
}
void SocketClose(Socket *self) {
if (!self) {
return;- In
Socket.c:372:
if (self->fd > 0) {
if (close(self->fd) < 0) {
LOG_SYS_ERROR("SocketClose: close() failed");
}
}- In
Beam.c:159:
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:168:
i64 first_n = SocketRecv(client, first, sizeof(first));
if (first_n <= 0) {
SocketClose(&upstream);
SocketClose(client);
StrDeinit(&peer_str);- In
Beam.c:169:
if (first_n <= 0) {
SocketClose(&upstream);
SocketClose(client);
StrDeinit(&peer_str);
return;- In
Beam.c:185:
proxy_pump(client, &upstream, first, (size)first_n);
SocketClose(&upstream);
SocketClose(client);
StrDeinit(&peer_str);- In
Beam.c:186:
SocketClose(&upstream);
SocketClose(client);
StrDeinit(&peer_str);
}
Last updated on