Commit 3ba09466342d6b6ba2809f21e03ae25eb1a1fbb7
- Diff rendering mode:
- inline
- side by side
main.c
(15 / 12)
|   | |||
| 22 | 22 | fprintf(stderr, "Usage:\n %s hostname service|port\n", name); | |
| 23 | 23 | } | |
| 24 | 24 | ||
| 25 | static char * | ||
| 26 | unknown_error(int status) | ||
| 27 | { | ||
| 28 | /* This is basically a programming error, but it should at least | ||
| 29 | be able to tell us *what* programming error. */ | ||
| 30 | static char buf[32]; | ||
| 31 | snprintf(buf, sizeof(buf)-1, "unknown: %d", (int)status); | ||
| 32 | return buf; | ||
| 33 | } | ||
| 34 | |||
| 25 | 35 | int | |
| 26 | 36 | main(int argc, char **argv) | |
| 27 | 37 | { | |
| … | … | ||
| 50 | 50 | while((status=attemptConnection(hostname, svc)) != RV_SUCCESS) { | |
| 51 | 51 | t=time(NULL); | |
| 52 | 52 | char *err="unknown"; | |
| 53 | if(status == ERR_ERRNO) { | ||
| 54 | err=strerror(errno); | ||
| 55 | } else if(status == ERR_TIMEOUT) { | ||
| 56 | err="timeout"; | ||
| 57 | } else if(status == ERR_DNS) { | ||
| 58 | err="getaddrinfo error"; | ||
| 59 | } else { | ||
| 60 | /* This is basically a programming error, but it should at least | ||
| 61 | be able to tell us *what* programming error. */ | ||
| 62 | char buf[32]; | ||
| 63 | snprintf(buf, sizeof(buf)-1, "unknown: %d", (int)status); | ||
| 64 | err=buf; | ||
| 53 | switch(status) { | ||
| 54 | case ERR_ERRNO: err=strerror(errno); break; | ||
| 55 | case ERR_TIMEOUT: err="timeout"; break; | ||
| 56 | case ERR_DNS: err="getaddrinfo error"; break; | ||
| 57 | default: err=unknown_error(status); | ||
| 65 | 58 | } | |
| 66 | 59 | assert(err != NULL); | |
| 67 | 60 | fprintf(stderr, "Failed to connect (%s) at %s", err, ctime(&t)); |

