summaryrefslogtreecommitdiff
path: root/luaclient.c
diff options
context:
space:
mode:
authorChristian Pointner <equinox@helsinki.at>2010-01-13 11:30:51 (GMT)
committerChristian Pointner <equinox@helsinki.at>2010-01-13 11:30:51 (GMT)
commit68194820226407465d2ad10dff69954485eb200c (patch)
tree59f9d7bca3baba6f7979f67915ef80aa430e3fca /luaclient.c
parent8385776d0e7998168f3f0b23a37aececcd5fd3c5 (diff)
luaclient reconnects now after lost connection
Diffstat (limited to 'luaclient.c')
-rw-r--r--luaclient.c29
1 files changed, 20 insertions, 9 deletions
diff --git a/luaclient.c b/luaclient.c
index c721138..75a48e9 100644
--- a/luaclient.c
+++ b/luaclient.c
@@ -231,17 +231,28 @@ int main(int argc, char* argv[])
fclose(pid_file);
}
- // extern global variable defined in l_cmd.c
- cmd_fd = connect_command_socket(opt.command_sock_);
- if(cmd_fd < 0) {
- options_clear(&opt);
- log_close();
- exit(-1);
+ for(;;) {
+ // extern global variable defined in l_cmd.c
+ cmd_fd = connect_command_socket(opt.command_sock_);
+ if(cmd_fd < 0)
+ ret = 2;
+ else {
+ ret = main_loop(cmd_fd, &opt);
+ }
+
+ if(ret == 2) {
+ log_printf(ERROR, "socket error, trying to reconnect in 5 seconds..");
+
+ if(cmd_fd > 0)
+ close(cmd_fd);
+ sleep(5);
+ }
+ else
+ break;
}
- ret = main_loop(cmd_fd, &opt);
-
- close(cmd_fd);
+ if(cmd_fd > 0)
+ close(cmd_fd);
if(!ret)
log_printf(NOTICE, "normal shutdown");