Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static int
- rcv_kern(int sock, void *buf, int len, struct sockaddr *addr,
- socklen_t *addrlen)
- {
- struct timeval timeout = {1, 0};
- fd_set set;
- int status;
- FD_SET(sock, &set);
- if ((status = select(sock + 1, &set, NULL, NULL, &timeout)) == 0) {
- FD_ZERO(&set);
- fprintf(stderr,
- "timeout while receiving answer from kerneln");
- exit(1);
- } else if (status == -1) {
- FD_ZERO(&set);
- perror("recvfrom failed");
- exit(1);
- }
- FD_ZERO(&set);
- return recvfrom(sock, buf, len, 0, addr, addrlen);
- }
- static int
- rcv_kern(int sock, void *buf, int len, struct sockaddr *addr,
- socklen_t *addrlen)
- {
- struct timeval timeout = {1, 0};
- fd_set set;
- int status;
- FD_ZERO(&set);
- FD_SET(sock, &set);
- if ((status = select(sock + 1, &set, NULL, NULL, &timeout)) == 0) {
- fprintf(stderr,
- "timeout while receiving answer from kerneln");
- exit(1);
- } else if (status < 0) {
- perror("recvfrom failed");
- exit(1);
- }
- if ((status = recvfrom(sock, buf, len, 0, addr, addrlen)) < 0) {
- perror("recvfrom error");
- exit(1);
- }
- if (status == 0) {
- fprintf(stderr, "kernel closed socketn");
- exit(1);
- }
- return status;
- }
Add Comment
Please, Sign In to add comment