| 208 | } |
| 209 | |
| 210 | ssize_t sendto(int fd, const void *message, size_t length, int flags, |
| 211 | const struct sockaddr *dest_addr, socklen_t dest_len) |
| 212 | { |
| 213 | mt_hook_syscall(sendto); |
| 214 | MtHookFd* hook_fd = mt_hook_find_fd(fd); |
| 215 | if (!mt_hook_active() || !hook_fd || !ff_hook_active()) |
| 216 | { |
| 217 | return mt_real_func(sendto)(fd, message, length, flags, dest_addr, dest_len); |
| 218 | } |
| 219 | |
| 220 | if (hook_fd->sock_flag & MT_FD_FLG_UNBLOCK) |
| 221 | { |
| 222 | return ff_hook_sendto(fd, message, length, flags, dest_addr, dest_len); |
| 223 | } |
| 224 | |
| 225 | return MtFrame::sendto(fd, message, (int)length, flags, |
| 226 | dest_addr, dest_len, hook_fd->write_timeout); |
| 227 | } |
| 228 | |
| 229 | ssize_t recvfrom(int fd, void *buffer, size_t length, int flags, |
| 230 | struct sockaddr *address, socklen_t *address_len) |
no test coverage detected