From e32886763e1acf3a34f4f532e6caf8a6f83e506c Mon Sep 17 00:00:00 2001
From: Nathan Phillips <github@nathanphillips.co.uk>
Date: Tue, 2 Jul 2019 14:50:30 +0100
Subject: [PATCH 1/4] Use macros for switch case labels

---
 libraries/WiFi/src/WiFiMulti.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libraries/WiFi/src/WiFiMulti.cpp b/libraries/WiFi/src/WiFiMulti.cpp
index 2bc276811cc..b2a68182099 100644
--- a/libraries/WiFi/src/WiFiMulti.cpp
+++ b/libraries/WiFi/src/WiFiMulti.cpp
@@ -128,17 +128,17 @@ uint8_t WiFiMulti::run(uint32_t connectTimeout)
             }
 
             switch(status) {
-            case 3:
+            case WL_CONNECTED:
                 log_i("[WIFI] Connecting done.");
                 log_d("[WIFI] SSID: %s", WiFi.SSID().c_str());
                 log_d("[WIFI] IP: %s", WiFi.localIP().toString().c_str());
                 log_d("[WIFI] MAC: %s", WiFi.BSSIDstr().c_str());
                 log_d("[WIFI] Channel: %d", WiFi.channel());
                 break;
-            case 1:
+            case WL_NO_SSID_AVAIL:
                 log_e("[WIFI] Connecting Failed AP not found.");
                 break;
-            case 4:
+            case WL_CONNECT_FAILED:
                 log_e("[WIFI] Connecting Failed.");
                 break;
             default:

From 26d9acd5ad6313bc25485415ba15ee6db70d7d7c Mon Sep 17 00:00:00 2001
From: Nathan Phillips <github@nathanphillips.co.uk>
Date: Tue, 2 Jul 2019 14:50:50 +0100
Subject: [PATCH 2/4] Fixed spelling error in "too"

---
 libraries/WiFi/src/WiFiMulti.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libraries/WiFi/src/WiFiMulti.cpp b/libraries/WiFi/src/WiFiMulti.cpp
index b2a68182099..1baec93bc3d 100644
--- a/libraries/WiFi/src/WiFiMulti.cpp
+++ b/libraries/WiFi/src/WiFiMulti.cpp
@@ -169,14 +169,14 @@ bool WiFiMulti::APlistAdd(const char* ssid, const char *passphrase)
     WifiAPlist_t newAP;
 
     if(!ssid || *ssid == 0x00 || strlen(ssid) > 31) {
-        // fail SSID to long or missing!
-        log_e("[WIFI][APlistAdd] no ssid or ssid to long");
+        // fail SSID too long or missing!
+        log_e("[WIFI][APlistAdd] no ssid or ssid too long");
         return false;
     }
 
     if(passphrase && strlen(passphrase) > 63) {
-        // fail passphrase to long!
-        log_e("[WIFI][APlistAdd] passphrase to long");
+        // fail passphrase too long!
+        log_e("[WIFI][APlistAdd] passphrase too long");
         return false;
     }
 

From 77b53b31c8cfcf1173ac22b17ddcc078d7cda0c7 Mon Sep 17 00:00:00 2001
From: Nathan Phillips <github@nathanphillips.co.uk>
Date: Tue, 2 Jul 2019 14:55:21 +0100
Subject: [PATCH 3/4] Fix spacing

---
 libraries/WiFi/src/WiFiMulti.cpp | 7 ++-----
 libraries/WiFi/src/WiFiMulti.h   | 1 -
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/libraries/WiFi/src/WiFiMulti.cpp b/libraries/WiFi/src/WiFiMulti.cpp
index 1baec93bc3d..11f7a079a63 100644
--- a/libraries/WiFi/src/WiFiMulti.cpp
+++ b/libraries/WiFi/src/WiFiMulti.cpp
@@ -44,12 +44,11 @@ bool WiFiMulti::addAP(const char* ssid, const char *passphrase)
 
 uint8_t WiFiMulti::run(uint32_t connectTimeout)
 {
-
     int8_t scanResult;
     uint8_t status = WiFi.status();
     if(status == WL_CONNECTED) {
         for(uint32_t x = 0; x < APlist.size(); x++) {
-            if(WiFi.SSID()==APlist[x].ssid){
+            if(WiFi.SSID()==APlist[x].ssid) {
                 return status;
             }
         }
@@ -119,7 +118,7 @@ uint8_t WiFiMulti::run(uint32_t connectTimeout)
 
             WiFi.begin(bestNetwork.ssid, bestNetwork.passphrase, bestChannel, bestBSSID);
             status = WiFi.status();
-            
+
             auto startTime = millis();
             // wait for connection, fail, or timeout
             while(status != WL_CONNECTED && status != WL_NO_SSID_AVAIL && status != WL_CONNECT_FAILED && (millis() - startTime) <= connectTimeout) {
@@ -165,7 +164,6 @@ uint8_t WiFiMulti::run(uint32_t connectTimeout)
 
 bool WiFiMulti::APlistAdd(const char* ssid, const char *passphrase)
 {
-
     WifiAPlist_t newAP;
 
     if(!ssid || *ssid == 0x00 || strlen(ssid) > 31) {
@@ -216,4 +214,3 @@ void WiFiMulti::APlistClean(void)
     }
     APlist.clear();
 }
-
diff --git a/libraries/WiFi/src/WiFiMulti.h b/libraries/WiFi/src/WiFiMulti.h
index d628c44401b..7326a6aef1b 100644
--- a/libraries/WiFi/src/WiFiMulti.h
+++ b/libraries/WiFi/src/WiFiMulti.h
@@ -48,7 +48,6 @@ class WiFiMulti
     std::vector<WifiAPlist_t> APlist;
     bool APlistAdd(const char* ssid, const char *passphrase = NULL);
     void APlistClean(void);
-
 };
 
 #endif /* WIFICLIENTMULTI_H_ */

From c9d2deb6d248ceb19ac40807a2fcc8219e277a75 Mon Sep 17 00:00:00 2001
From: Nathan Phillips <github@nathanphillips.co.uk>
Date: Tue, 2 Jul 2019 15:01:48 +0100
Subject: [PATCH 4/4] Inline private functions that are only called once

---
 libraries/WiFi/src/WiFiMulti.cpp | 102 ++++++++++++++-----------------
 libraries/WiFi/src/WiFiMulti.h   |   2 -
 2 files changed, 45 insertions(+), 59 deletions(-)

diff --git a/libraries/WiFi/src/WiFiMulti.cpp b/libraries/WiFi/src/WiFiMulti.cpp
index 11f7a079a63..730850333f1 100644
--- a/libraries/WiFi/src/WiFiMulti.cpp
+++ b/libraries/WiFi/src/WiFiMulti.cpp
@@ -34,12 +34,55 @@ WiFiMulti::WiFiMulti()
 
 WiFiMulti::~WiFiMulti()
 {
-    APlistClean();
+    for(uint32_t i = 0; i < APlist.size(); i++) {
+        WifiAPlist_t entry = APlist[i];
+        if(entry.ssid) {
+            free(entry.ssid);
+        }
+        if(entry.passphrase) {
+            free(entry.passphrase);
+        }
+    }
+    APlist.clear();
 }
 
 bool WiFiMulti::addAP(const char* ssid, const char *passphrase)
 {
-    return APlistAdd(ssid, passphrase);
+    WifiAPlist_t newAP;
+
+    if(!ssid || *ssid == 0x00 || strlen(ssid) > 31) {
+        // fail SSID too long or missing!
+        log_e("[WIFI][APlistAdd] no ssid or ssid too long");
+        return false;
+    }
+
+    if(passphrase && strlen(passphrase) > 63) {
+        // fail passphrase too long!
+        log_e("[WIFI][APlistAdd] passphrase too long");
+        return false;
+    }
+
+    newAP.ssid = strdup(ssid);
+
+    if(!newAP.ssid) {
+        log_e("[WIFI][APlistAdd] fail newAP.ssid == 0");
+        return false;
+    }
+
+    if(passphrase && *passphrase != 0x00) {
+        newAP.passphrase = strdup(passphrase);
+        if(!newAP.passphrase) {
+            log_e("[WIFI][APlistAdd] fail newAP.passphrase == 0");
+            free(newAP.ssid);
+            return false;
+        }
+    } else {
+        newAP.passphrase = NULL;
+    }
+
+    APlist.push_back(newAP);
+    log_i("[WIFI][APlistAdd] add SSID: %s", newAP.ssid);
+    return true;
 }
 
 uint8_t WiFiMulti::run(uint32_t connectTimeout)
@@ -159,58 +202,3 @@ uint8_t WiFiMulti::run(uint32_t connectTimeout)
 
     return status;
 }
-
-// ##################################################################################
-
-bool WiFiMulti::APlistAdd(const char* ssid, const char *passphrase)
-{
-    WifiAPlist_t newAP;
-
-    if(!ssid || *ssid == 0x00 || strlen(ssid) > 31) {
-        // fail SSID too long or missing!
-        log_e("[WIFI][APlistAdd] no ssid or ssid too long");
-        return false;
-    }
-
-    if(passphrase && strlen(passphrase) > 63) {
-        // fail passphrase too long!
-        log_e("[WIFI][APlistAdd] passphrase too long");
-        return false;
-    }
-
-    newAP.ssid = strdup(ssid);
-
-    if(!newAP.ssid) {
-        log_e("[WIFI][APlistAdd] fail newAP.ssid == 0");
-        return false;
-    }
-
-    if(passphrase && *passphrase != 0x00) {
-        newAP.passphrase = strdup(passphrase);
-        if(!newAP.passphrase) {
-            log_e("[WIFI][APlistAdd] fail newAP.passphrase == 0");
-            free(newAP.ssid);
-            return false;
-        }
-    } else {
-        newAP.passphrase = NULL;
-    }
-
-    APlist.push_back(newAP);
-    log_i("[WIFI][APlistAdd] add SSID: %s", newAP.ssid);
-    return true;
-}
-
-void WiFiMulti::APlistClean(void)
-{
-    for(uint32_t i = 0; i < APlist.size(); i++) {
-        WifiAPlist_t entry = APlist[i];
-        if(entry.ssid) {
-            free(entry.ssid);
-        }
-        if(entry.passphrase) {
-            free(entry.passphrase);
-        }
-    }
-    APlist.clear();
-}
diff --git a/libraries/WiFi/src/WiFiMulti.h b/libraries/WiFi/src/WiFiMulti.h
index 7326a6aef1b..38ddb5d9f95 100644
--- a/libraries/WiFi/src/WiFiMulti.h
+++ b/libraries/WiFi/src/WiFiMulti.h
@@ -46,8 +46,6 @@ class WiFiMulti
 
 private:
     std::vector<WifiAPlist_t> APlist;
-    bool APlistAdd(const char* ssid, const char *passphrase = NULL);
-    void APlistClean(void);
 };
 
 #endif /* WIFICLIENTMULTI_H_ */