diff --git a/src/at.c b/src/at.c index 228ded6..ff77fbc 100644 --- a/src/at.c +++ b/src/at.c @@ -77,20 +77,20 @@ gboolean at_send_command(struct EG25Manager *manager) } else { /* Allow the modem to enter soft sleep again when we sent the AT command*/ gpio_sequence_sleep(manager); - - if (manager->modem_state < EG25_STATE_CONFIGURED) { - if (manager->modem_iface == MODEM_IFACE_MODEMMANAGER) { + + if (manager->modem_state < EG25_STATE_CONFIGURED) { + if (manager->modem_iface == MODEM_IFACE_MODEMMANAGER) { #ifdef HAVE_MMGLIB MMModemState modem_state = mm_modem_get_state(manager->mm_modem); - if (manager->mm_modem && modem_state >= MM_MODEM_STATE_REGISTERED) + if (manager->mm_modem && modem_state >= MM_MODEM_STATE_REGISTERED) modem_update_state(manager, modem_state); - else + else manager->modem_state = EG25_STATE_CONFIGURED; #endif } else { manager->modem_state = EG25_STATE_CONFIGURED; - } + } } else if (manager->modem_state == EG25_STATE_SUSPENDING) { modem_suspend_post(manager); } else if (manager->modem_state == EG25_STATE_RESETTING) { diff --git a/src/gnss.c b/src/gnss.c index aeb73af..2116c18 100644 --- a/src/gnss.c +++ b/src/gnss.c @@ -190,7 +190,9 @@ static void fetch_assistance_data(struct EG25Manager *manager) long int size; /* Fetch assistance data with curl */ - tmp_file = fdopen(manager->gnss_assistance_fd, "wb"); + tmp_file = fdopen(manager->gnss_assistance_fd, "wb+"); + lseek(manager->gnss_assistance_fd, 0, SEEK_SET); + ftruncate(manager->gnss_assistance_fd, 0); url = g_strconcat(manager->gnss_assistance_url, "/", manager->gnss_assistance_file, NULL); curl = curl_easy_init(); diff --git a/src/gnss.h b/src/gnss.h index 1b49403..c3b5553 100644 --- a/src/gnss.h +++ b/src/gnss.h @@ -7,6 +7,7 @@ #pragma once #include +#include #include #include "manager.h"