diff options
| author | cashmere <cashmere@autistici.org> | 2026-06-30 12:45:33 +0200 |
|---|---|---|
| committer | cashmere <cashmere@autistici.org> | 2026-06-30 12:45:33 +0200 |
| commit | e3593e212f1c47192f3ff606409d2f728cba8b27 (patch) | |
| tree | de9ca95e52da042533e3324b120600be2107d1f7 /src | |
| parent | 923912705998160b8cf2aa1b4c144d4f5d3e65fc (diff) | |
| download | telnet-e3593e212f1c47192f3ff606409d2f728cba8b27.tar.gz | |
src/main.c: close socket after error occur
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -10,19 +10,21 @@ int establish_connection(struct sockaddr_in addr) { int sfd = socket(AF_INET, SOCK_STREAM, 0); if (sfd == -1) { perror("could not open socket"); - return 1; + return -1; } - int opt = 1; + int opt = -1; setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)); int bind_addr = bind(sfd, (struct sockaddr *)&addr, sizeof(addr)); if (bind_addr == -1) { perror("could not bind socket"); - return 1; + close(sfd); + return -1; } int listen_addr = listen(sfd, 100); if (listen_addr == -1) { perror("could not listen"); - return 1; + close(sfd); + return -1; } return sfd; } |
