summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--driver_nmea2000.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/driver_nmea2000.c b/driver_nmea2000.c
index 309708b3..5b1e207d 100644
--- a/driver_nmea2000.c
+++ b/driver_nmea2000.c
@@ -1677,6 +1677,21 @@ void nmea2000_close(struct gps_device_t *session)
session->gpsdata.gps_fd, session->gpsdata.dev.path);
(void)close(session->gpsdata.gps_fd);
INVALIDATE_SOCKET(session->gpsdata.gps_fd);
+
+ if (session->driver.nmea2000.unit_valid != 0) {
+ unsigned int l1, l2;
+
+ for (l1=0;l1<NMEA2000_NETS;l1++) {
+ for (l2=0;l2<NMEA2000_UNITS;l2++) {
+ if (session == nmea2000_units[l1][l2]) {
+ session->driver.nmea2000.unit_valid = 0;
+ session->driver.nmea2000.unit = 0;
+ session->driver.nmea2000.can_net = 0;
+ nmea2000_units[l1][l2] = NULL;
+ }
+ }
+ }
+ }
}
}