diff options
Diffstat (limited to 'libgps_sock.c')
-rw-r--r-- | libgps_sock.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/libgps_sock.c b/libgps_sock.c index f9551940..ae4d45c3 100644 --- a/libgps_sock.c +++ b/libgps_sock.c @@ -566,18 +566,18 @@ int gps_sock_stream(struct gps_data_t *gpsdata, unsigned int flags, } int gps_sock_mainloop(struct gps_data_t *gpsdata, int timeout, - int (*hook)(struct gps_data_t *gpsdata, bool)) + void (*hook)(struct gps_data_t *gpsdata)) /* run a socket main loop with a specified handler */ { for (;;) { - if (!gps_sock_waiting(gpsdata, timeout)) { - if ((*hook)(gpsdata, false) != 0) - break; + if (!gps_waiting(gpsdata, timeout)) { + return -1; } else { - if (gps_sock_read(gpsdata) == -1 || (*hook)(gpsdata, true) != 0) - break; + (void)gps_read(gpsdata); + (*hook)(gpsdata); } } + (void)gps_close(gpsdata); return 0; } |