SocketRecv
Description
Blocking read from a connected socket.
Parameters
| Name | Direction | Description |
|---|---|---|
self |
in | Socket to read from. |
buf |
out | Destination buffer. |
n |
in | Capacity of buf. |
Success
returns number of bytes read (0 means peer closed).
Failure
returns -1; logs the failing syscall.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
Dns.c:421:
return -1;
}
i64 got = SocketRecv(&sock, resp_buf, resp_cap);
SocketClose(&sock);
return got;- In
Socket.c:879:
}
i64 SocketRecv(Socket *self, void *buf, size n) {
if (!self || !buf) {
LOG_FATAL("SocketRecv: NULL argument");- In
Socket.c:881:
i64 SocketRecv(Socket *self, void *buf, size n) {
if (!self || !buf) {
LOG_FATAL("SocketRecv: NULL argument");
}
return plat_recv(self->fd, buf, n);- In
Beam.c:322:
if (items[0].events_ready & SOCKET_POLL_READ) {
i64 n = SocketRecv(a, buf, sizeof(buf));
if (n <= 0) {
return;- In
Beam.c:331:
}
if (items[1].events_ready & SOCKET_POLL_READ) {
i64 n = SocketRecv(b, buf, sizeof(buf));
if (n <= 0) {
return;- In
Beam.c:358:
// Read the first chunk so we can log the request line.
char first[4096];
i64 first_n = SocketRecv(client, first, sizeof(first));
if (first_n <= 0) {
SocketClose(&upstream);- In
Socket.c:80:
char buf[64];
i64 got = SocketRecv(&server, buf, sizeof(buf));
bool ok = got == (i64)n && MemCompare(buf, payload, n) == 0;- In
Socket.c:1185:
ok = ok && SocketSend(&client, c2s, n1) == (i64)n1;
char buf1[64];
i64 g1 = SocketRecv(&server, buf1, sizeof(buf1));
ok = ok && g1 == (i64)n1 && MemCompare(buf1, c2s, n1) == 0;- In
Socket.c:1194:
ok = ok && SocketSend(&server, s2c, n2) == (i64)n2;
char buf2[64];
i64 g2 = SocketRecv(&client, buf2, sizeof(buf2));
ok = ok && g2 == (i64)n2 && MemCompare(buf2, s2c, n2) == 0;- In
Socket.c:1227:
char buf[16];
i64 got = SocketRecv(&server, buf, sizeof(buf));
bool ok = got == 0;- In
Socket.c:1322:
// Drain so the close path is clean.
char buf[16];
SocketRecv(&server, buf, sizeof(buf));
SocketClose(&server);- In
Socket.c:1368:
ok = ok && SocketSend(&client, payload, n) == (i64)n;
char buf[32];
i64 got = SocketRecv(&server, buf, sizeof(buf));
ok = ok && got == (i64)n && MemCompare(buf, payload, n) == 0;- In
Socket.c:1406:
ok = ok && SocketSend(&client, payload, n) == (i64)n;
char buf[32];
i64 got = SocketRecv(&server, buf, sizeof(buf));
ok = ok && got == (i64)n && MemCompare(buf, payload, n) == 0;- In
Socket.c:1449:
ok = ok && SocketSend(&client, payload, n) == (i64)n;
char buf[16];
i64 got = SocketRecv(&server, buf, sizeof(buf));
ok = ok && got == (i64)n && MemCompare(buf, payload, n) == 0;
Last updated on