X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=client%2Flinux%2Finterface.c;fp=client%2Flinux%2Finterface.c;h=e611ea8a061ff24fa5f78ff6ae0719ab4a91abad;hb=fcb4abeb34dc3302f15b10c3b916bc14e3047707;hp=520873fa1d90c01e79821b270a38e1e20be9f7d3;hpb=4bb252b0423c73d134a541db44b8b08eab507a39;p=mTask.git diff --git a/client/linux/interface.c b/client/linux/interface.c index 520873f..e611ea8 100644 --- a/client/linux/interface.c +++ b/client/linux/interface.c @@ -13,6 +13,7 @@ #include #include "interface.h" +#include "client.h" struct timeval tv1; int sock_fd = -1; @@ -143,10 +144,12 @@ void real_setup(void) sa.sin_addr.s_addr = INADDR_ANY; sa.sin_port = htons(port); - if((sock_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) - pdie("socket"); - if(bind(sock_fd, (struct sockaddr*)&sa, sizeof(sa)) == -1) - pdie("bind"); + if(sock_fd == -1){ + if((sock_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) + pdie("socket"); + if(bind(sock_fd, (struct sockaddr*)&sa, sizeof(sa)) == -1) + pdie("bind"); + } if(listen(sock_fd, 10) == -1) pdie("listen"); @@ -180,3 +183,10 @@ void die(char *fmt, ...) va_end(ap); exit(EXIT_FAILURE); } + +void reset() +{ + close(fd); + fd = -1; + main(gargc, gargv); +}