                                 8*JSON_OBJECT_SIZE(4) + 8*JSON_OBJECT_SIZE(7) + 4*JSON_OBJECT_SIZE(17) + 4*JSON_OBJECT_SIZE(20) + 5360;
       DynamicJsonBuffer forecast(bufferSize);
       update_forecasts(forecast.parseObject(client));
-      client.stop();
       DBG(println(ESP.getFreeHeap()));
       DBG(println(F("Done")));
     } else
       ERR(println(F("Failed to fetch forecast!")));
-  }
-}
+    client.stop();
+  }
+}

    return false;

  c.epoch = epoch;
  strncpy(c.icon, current_observation[F("icon")], sizeof(c.icon));
  strncpy(c.weather, current_observation[F("weather")], sizeof(c.weather));
  if (cfg.metric) {
    c.temp = current_observation[F("temp_c")];
    c.feelslike = atoi(current_observation[F("feelslike_c")]);
    c.wind = current_observation[F("wind_kph")];
    c.atmos_pressure = atoi(current_observation[F("pressure_mb")]);
  } else {
    c.temp = current_observation[F("temp_f")];
    c.feelslike = atoi(current_observation[F("feelslike_f")]);
    c.wind = current_observation[F("wind_mph")];
    c.atmos_pressure = atoi(current_observation[F("pressure_in")]);
  }
  c.humidity = atoi(current_observation[F("relative_humidity")]);
  c.pressure_trend = atoi(current_observation[F("pressure_trend")]);
  strncpy(c.wind_dir, current_observation[F("wind_dir")], sizeof(c.wind_dir));;
  c.wind_degrees = current_observation[F("wind_degrees")];
  strncpy(c.city, current_observation[F("observation_location")][F("city")], sizeof(c.city));
  strncpy(c.sunrise_hour, root[F("sun_phase")][F("sunrise")][F("hour")], sizeof(c.sunrise_hour));
  strncpy(c.sunrise_minute, root[F("sun_phase")][F("sunrise")][F("minute")], sizeof(c.sunrise_minute));
  strncpy(c.sunset_hour, root[F("sun_phase")][F("sunset")][F("hour")], sizeof(c.sunset_hour));
  strncpy(c.sunset_minute, root[F("sun_phase")][F("sunset")][F("minute")], sizeof(c.sunset_minute));
  strncpy(c.age_of_moon, root[F("moon_phase")][F("ageOfMoon")], sizeof(c.age_of_moon));
  strncpy(c.moon_phase, root[F("moon_phase")][F("phaseofMoon")], sizeof(c.moon_phase));
  strncpy(c.moonrise_hour, root[F("moon_phase")][F("moonrise")][F("hour")], sizeof(c.moonrise_hour));
  strncpy(c.moonrise_minute, root[F("moon_phase")][F("moonrise")][F("minute")], sizeof(c.moonrise_minute));
  strncpy(c.moonset_hour, root[F("moon_phase")][F("moonset")][F("hour")], sizeof(c.moonset_hour));
  strncpy(c.moonset_minute, root[F("moon_phase")][F("moonset")][F("minute")], sizeof(c.moonset_minute));
  return true;
}


                 + F(".json HTTP/1.1\r\n")
                 + F("Host: ") + host + F("\r\nConnection: close\r\n\r\n"));
    if (client.connected()) {
      unsigned long now = millis();
      while (!client.available())
        if (millis() - now > 5000)
          return false;
      client.find("\r\n\r\n");
      return true;
    }
