From: Michael D. Lowis Date: Thu, 10 Dec 2020 18:23:21 +0000 (-0500) Subject: cleaned up listen error code handling X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=a3752535085d3ebb31b79de7799450a016728711;p=proto%2Faos.git cleaned up listen error code handling --- diff --git a/.gitignore b/.gitignore index 26fa21f..9c35be0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ build/ build.bin +tags diff --git a/bin/dial.c b/bin/dial.c index cbfdb1c..678ec59 100644 --- a/bin/dial.c +++ b/bin/dial.c @@ -1,3 +1,6 @@ +#include +#include + int main(int argc, char** argv) { (void)argc; diff --git a/bin/listen.c b/bin/listen.c index be58c80..fddd673 100644 --- a/bin/listen.c +++ b/bin/listen.c @@ -5,17 +5,17 @@ void serve(int cfd, char** argv) { - switch (fork()) + int pid = fork(); + if (pid < 0) { - case -1: - perror("fork"); - break; - case 0: - dup2(cfd, 0); dup2(cfd, 1); dup2(cfd, 2); - exit(execvp(argv[0], argv)); - break; - default: - break; + perror("fork"); + } + else if (pid == 0) + { + dup2(cfd, 0); + dup2(cfd, 1); + dup2(cfd, 2); + exit(execvp(argv[0], argv)); } close(cfd); } diff --git a/lib/net/netdial.c b/lib/net/netdial.c new file mode 100644 index 0000000..e9544e2 --- /dev/null +++ b/lib/net/netdial.c @@ -0,0 +1,22 @@ +#include +#include + +//int netdial(char* dialstr) +//{ +// struct socket_t sock = { .fd = -1 }; +// if (netsocket(dialstr, &sock)) +// { +// int rv = -1; +// switch (sock.addr.in.sin_family) +// { +// case AF_INET: +// rv = bind(sock.fd, (struct sockaddr*)&sock.addr.in, sizeof(sock.addr.in)); +// break; +// +// case AF_UNIX: +// if (connect(sock.fd, (struct sockaddr*)&sock.addr.un, sizeof(sock.addr.un)) < 0) +// { +// unlink(sock.addr.un.sun_path); +// rv = bind(sock.fd, (struct sockaddr*)&sock.addr.un, sizeof(sock.addr.un)); +// } +// break;