X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;ds=sidebyside;f=client%2Flinux%2Finterface.c;h=e611ea8a061ff24fa5f78ff6ae0719ab4a91abad;hb=fcb4abeb34dc3302f15b10c3b916bc14e3047707;hp=36d2a86779297fca9b678b50df8316feb8d6276b;hpb=8246c6551faa818be7a58638dbbc2e521f21c454;p=mTask.git diff --git a/client/linux/interface.c b/client/linux/interface.c index 36d2a86..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; @@ -33,7 +34,7 @@ void usage(FILE *o, char *arg0){ "-p PORT Custom port number, default: 8123\n" , arg0); } -long getmillis(void) { +unsigned long getmillis(void) { if (gettimeofday(&tv1, NULL) == -1) pdie("gettimeofday"); return tv1.tv_sec*1000 + tv1.tv_usec/1000; @@ -92,7 +93,7 @@ uint8_t read_apin(uint8_t i) (void) i; } -void msdelay(long ms) +void msdelay(unsigned long ms) { usleep(ms*1000); } @@ -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); +}