| 38 | } |
| 39 | |
| 40 | void main_loop(void) { |
| 41 | fd_set fdw; |
| 42 | struct timeval tv = {0}; |
| 43 | FD_ZERO(&fdw); |
| 44 | FD_SET(fd, &fdw); |
| 45 | select(64, NULL, &fdw, NULL, &tv); |
| 46 | |
| 47 | if (FD_ISSET(fd, &fdw)) { |
| 48 | int err = 0; |
| 49 | socklen_t l = sizeof(err); |
| 50 | getsockopt(fd, SOL_SOCKET, SO_ERROR, &err, &l); |
| 51 | if (err == 0) return; // not resolved yet |
| 52 | printf("connect resolved with errno %d (%s)\n", err, strerror(err)); |
| 53 | assert(err == ECONNREFUSED && "expected ECONNREFUSED"); |
| 54 | test_success(); |
| 55 | } |
| 56 | } |
| 57 | |
| 58 | int main(void) { |
| 59 | fd = socket(AF_INET, SOCK_STREAM, 0); |
no test coverage detected