[layer23] Fix of GPS states
[osmocom-bb.git] / src / host / layer23 / src / mobile / gps.c
index c66da6d..1a4e9e4 100644 (file)
@@ -65,6 +65,7 @@ static int gps_line(char *line)
        if (line[36] != 'A') {
                LOGP(DGPS, LOGL_INFO, "%s (invalid)\n", line);
                gps.valid = 0;
+               return 0;
        }
        gps.valid = 1;
 
@@ -112,7 +113,7 @@ static int gps_line(char *line)
                longitude = 360.0 - longitude;
        gps.longitude = longitude;
        
-       LOGP(DGPS, LOGL_INFO, "%s\n", line);
+       LOGP(DGPS, LOGL_DEBUG, "%s\n", line);
        LOGP(DGPS, LOGL_INFO, " time=%02d:%02d:%02d %04d-%02d-%02d, "
                "diff-to-host=%d, latitude=%do%.4f, longitude=%do%.4f\n",
                tm->tm_hour, tm->tm_min, tm->tm_sec, tm->tm_year + 1900,
@@ -242,4 +243,9 @@ void gps_close(void)
        gps_bfd.fd = -1; /* -1 or 0 indicates: 'close' */
 }
 
+void gps_init(void)
+{
+       memset(&gps_bfd, 0, sizeof(gps_bfd));
+}
+