| 154 | // Server |
| 155 | |
| 156 | T_ERRCODE socket_accept(p_socket sock, p_socket client, |
| 157 | p_sa addr, socklen_t *addrlen, int timeout) { |
| 158 | int err; |
| 159 | if (*sock < 0) { |
| 160 | return CLOSED; |
| 161 | } |
| 162 | do { |
| 163 | *client = accept(*sock, addr, addrlen); |
| 164 | if (*client > 0) { |
| 165 | return SUCCESS; |
| 166 | } |
| 167 | } while ((err = errno) == EINTR); |
| 168 | |
| 169 | if (err == EAGAIN || err == ECONNABORTED) { |
| 170 | return socket_wait(sock, WAIT_MODE_R, timeout); |
| 171 | } |
| 172 | |
| 173 | return err; |
| 174 | } |
| 175 | |
| 176 | T_ERRCODE socket_listen(p_socket sock, int backlog) { |
| 177 | int ret = socket_setblocking(sock); |
no test coverage detected