Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/viewer/SDLview/main.c b/viewer/SDLview/main.c
- index 2e38ed2..d2f6b3a 100644
- --- a/viewer/SDLview/main.c
- +++ b/viewer/SDLview/main.c
- @@ -198,8 +198,7 @@ int connect2server(const char* server) {
- if (rv != 0) {
- printf("getaddrinfo: %s\n", gai_strerror(rv));
- - freeaddrinfo(servinfo); // all done with this structure
- - exit(EXIT_FAILURE);
- + return -1;
- }
- // loop through all the results and connect to the first we can
- @@ -220,14 +219,26 @@ int connect2server(const char* server) {
- freeaddrinfo(servinfo); // all done with this structure
- - if (p == NULL) {
- + if (p == NULL){
- printf("connect_to_server client: failed to connect\n");
- - exit(EXIT_FAILURE);
- + return -1;
- }
- return sockfd;
- }
- +int reconnect2server(const char* server) {
- +
- + for (;;) {
- + int fd = connect2server(server);
- + if (fd != -1) {
- + return fd;
- + }
- + sleep(1);
- + }
- +
- +}
- +
- int main(int argc, const char* argv[] ) {
- buffer_t buffer; // wir verwenden nur die datenstruktur = getBuffer();
- int ret;
- @@ -243,7 +254,7 @@ int main(int argc, const char* argv[] ) {
- dstr_malloc(&net_puffer);
- dstr_malloc(&json_puffer);
- - int net = connect2server(argv[1]);
- + int net = reconnect2server(argv[1]);
- allocStuff();
- @@ -262,8 +273,8 @@ int main(int argc, const char* argv[] ) {
- ret = checkInput(net, &buffer, 100000);
- if (ret == -1) {
- - fprintf(stderr, "I guess we better quit\n");
- - exit(1);
- + close(net);
- + net = reconnect2server(argv[1]);
- }
- if (ret == 1) {
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement