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
Socket.c:69:
char buf[64];
i64 got = SocketRecv(&server, buf, sizeof(buf));
bool ok = got == (i64)n && MemCompare(buf, payload, n) == 0;- In
Socket.c:340:
}
i64 SocketRecv(Socket *self, void *buf, size n) {
if (!self || !buf) {
LOG_ERROR("SocketRecv: NULL argument");- In
Socket.c:342:
i64 SocketRecv(Socket *self, void *buf, size n) {
if (!self || !buf) {
LOG_ERROR("SocketRecv: NULL argument");
return -1;
}- In
Socket.c:347:
ssize_t ret = recv(self->fd, buf, (size_t)n, 0);
if (ret < 0) {
LOG_SYS_ERROR("SocketRecv: recv() failed");
return -1;
}- In
Beam.c:130:
if (items[0].events_ready & SOCKET_POLL_READ) {
i64 n = SocketRecv(a, buf, sizeof(buf));
if (n <= 0) {
return;- In
Beam.c:139:
}
if (items[1].events_ready & SOCKET_POLL_READ) {
i64 n = SocketRecv(b, buf, sizeof(buf));
if (n <= 0) {
return;- In
Beam.c:166:
// 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);
Last updated on