X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/hmcfgusb/blobdiff_plain/fbbbfa37bd5adae5eabd94e6db96be584998ffd6..560c3078a267674e487703a50c90bc177e95e731:/hmland.c diff --git a/hmland.c b/hmland.c index a9d9670..f3b7cf9 100644 --- a/hmland.c +++ b/hmland.c @@ -455,7 +455,7 @@ static int comm(int fd_in, int fd_out, int master_socket, int flags) memset(out, 0, sizeof(out)); out[0] = 'K'; wait_for_h = 1; - hmcfgusb_send_null_frame(dev); + hmcfgusb_send_null_frame(dev, 1); hmcfgusb_send(dev, out, sizeof(out), 1); while(!quit) { @@ -478,11 +478,18 @@ static int comm(int fd_in, int fd_out, int master_socket, int flags) } } else if (fd == -1) { if (errno) { - perror("hmcfgusb_poll"); - quit = 1; - } else { - /* periodically wakeup the device */ - hmcfgusb_send_null_frame(dev); + if (errno != ETIMEDOUT) { + perror("hmcfgusb_poll"); + quit = 1; + } else { + /* periodically wakeup the device */ + hmcfgusb_send_null_frame(dev, 1); + if (wait_for_h) { + memset(out, 0, sizeof(out)); + out[0] = 'K'; + hmcfgusb_send(dev, out, sizeof(out), 1); + } + } } } } @@ -603,7 +610,7 @@ static int socket_server(char *iface, int port, int flags) sin.sin_addr.s_addr = htonl(INADDR_ANY); } else { if (inet_pton(AF_INET, iface, &(sin.sin_addr.s_addr)) != 1) { - perror("inet_ntop"); + fprintf(stderr, "Can't convert IP %s, aborting!\n", iface); return EXIT_FAILURE; } }