SWUpdate library to be used with RPC.
Fork of SWUpdate by
Diff: SWUpdate.cpp
- Revision:
- 16:de99e872fc9d
- Parent:
- 15:49cc43dcbbf6
- Child:
- 17:1d318666246c
--- a/SWUpdate.cpp Sat Jun 28 19:46:46 2014 +0000 +++ b/SWUpdate.cpp Sat Jul 05 16:06:55 2014 +0000 @@ -133,11 +133,14 @@ char fqurl[SW_MAX_URL]; // fully qualified url char verfn[SW_MAX_FQFN]; // local version file char fwfn[SW_MAX_FQFN]; + char nameroot[7]; uint16_t result = SWUP_OK; // starting out quite optimistic, for all the things that can go wrong char buf[50]; // long enough for 3 comma separated numbers... INFO("SoftwareUpdate(%s,%s)", url, name); - snprintf(verfn, SW_MAX_FQFN, "/local/%s.ver", name); + strncpy(nameroot, name, 6); + nameroot[6] = '\0'; + snprintf(verfn, SW_MAX_FQFN, "/local/%s.ver", nameroot); /* Read installed version string */ int inst_ver = -1; @@ -164,14 +167,14 @@ INFO(" file size: %d", fsize); if (inst_ver != latest_ver) { INFO(" Downloading firmware ver %d ...", latest_ver); - sprintf(fwfn, "/local/%s%02d.BIN", name, latest_ver); + sprintf(fwfn, "/local/%s%02d.BIN", nameroot, (latest_ver % 100)); snprintf(fqurl, 150, "%s/%s.bin", url, name); HTTPFile latest(fwfn); r = http.get(fqurl, &latest); if (r == HTTP_OK) { if (PassesIntegrityCheck(fwfn, cksum, fsize)) { - if (!RemoveOtherBinFiles(name, latest_ver)) { + if (!RemoveOtherBinFiles(nameroot, latest_ver)) { ERR(" *** Failed to remove old version(s). ***"); result |= SWUP_OLD_STUCK; } @@ -209,7 +212,7 @@ } } } else { - WARN("Failed to download online firmware version number."); + WARN("Failed to download online firmware version number. r= %d", r); result |= SWUP_HTTP_ERR; } return (SWUpdate_T)result;