summaryrefslogtreecommitdiff
path: root/libgps_sock.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2011-09-27 22:10:40 -0400
committerEric S. Raymond <esr@thyrsus.com>2011-09-27 22:10:40 -0400
commit13519fc5b89dedb5707ab820c513428b368e1ec1 (patch)
treee9e3575c6e1a4a57859c085edf7e2ee2b1bc113a /libgps_sock.c
parent7800222b3ddb462a6ab92f0f1950abf78eabf10b (diff)
downloadgpsd-13519fc5b89dedb5707ab820c513428b368e1ec1.tar.gz
Get back to a state where the shm export works.
Diffstat (limited to 'libgps_sock.c')
-rw-r--r--libgps_sock.c12
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;
}