add reset functionality
[mTask.git] / client / linux / interface.c
index 520873f..e611ea8 100644 (file)
@@ -13,6 +13,7 @@
 #include <unistd.h>
 
 #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);
+}