| 207 | } |
| 208 | |
| 209 | ssize_t |
| 210 | ng_recvfrom(int sockfd, void *buf, size_t len, int flags, |
| 211 | struct sockaddr *src_addr, socklen_t *addrlen) |
| 212 | { |
| 213 | size_t datalen; |
| 214 | |
| 215 | struct recvfrom_args ra; |
| 216 | ra.s = sockfd; |
| 217 | ra.buf = buf; |
| 218 | ra.len = len; |
| 219 | ra.flags = flags; |
| 220 | ra.from = src_addr; |
| 221 | ra.fromlenaddr = addrlen; |
| 222 | |
| 223 | datalen = sizeof(ra) + len + (*addrlen) + sizeof(socklen_t); |
| 224 | return ngctl(NGCTL_RECV, (void *)&ra, datalen); |
| 225 | } |
| 226 | |
| 227 | int |
| 228 | ng_close(int fd) |