| 157 | } |
| 158 | |
| 159 | int connect(int fd, const struct sockaddr *address, socklen_t address_len) |
| 160 | { |
| 161 | mt_hook_syscall(connect); |
| 162 | MtHookFd* hook_fd = mt_hook_find_fd(fd); |
| 163 | if (!mt_hook_active() || !hook_fd || !ff_hook_active()) |
| 164 | { |
| 165 | return mt_real_func(connect)(fd, address, address_len); |
| 166 | } |
| 167 | |
| 168 | if (hook_fd->sock_flag & MT_FD_FLG_UNBLOCK) |
| 169 | { |
| 170 | return ff_hook_connect(fd, address, address_len); |
| 171 | } |
| 172 | |
| 173 | return MtFrame::connect(fd, address, (int)address_len, hook_fd->write_timeout); |
| 174 | } |
| 175 | |
| 176 | ssize_t read(int fd, void *buf, size_t nbyte) |
| 177 | { |
no test coverage detected