SWUpdate library to be used with RPC.

Fork of SWUpdate by David Smart

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;