this is using the mbed os version 5-13-1

Dependencies:   mbed-http

Branch:
PassingRegression
Revision:
123:a49e9ffbaca6
Parent:
122:62166886db5f
Child:
124:eae4512b131b
--- a/source/WiFiManager.cpp	Tue Jun 11 20:23:43 2019 +0000
+++ b/source/WiFiManager.cpp	Fri Jun 14 21:13:46 2019 +0000
@@ -49,7 +49,8 @@
     wifiWatchdogTimer.start();
     watchdogCnt = 0;
     //_event_queue.call_every(10000, this, &WiFiManager::callWifiWatchDog);
-    keep_alive_id = _event_queue.call_every(CLOUD_KEEP_ALIVE_INTERVAL, this, &WiFiManager::callInternetKeepAlive);
+    //keep_alive_id = _event_queue.call_every(CLOUD_KEEP_ALIVE_INTERVAL, this, &WiFiManager::callInternetKeepAlive);
+    keep_alive_id = 0;
     //watchDogTick.attach(callback(this, &WiFiManager::callWifiWatchDogIsr), 10.0); // call flip function every 10 seconds
     
 }
@@ -122,6 +123,7 @@
        https_connection_active = false;
        socket->close();
        delete socket;
+       socket = NULL;
        return;
     }
     
@@ -344,7 +346,10 @@
             case WIFI_CMD_SEND_HTTPS_REQ:
             {
                 // cancel keep alive event as not needed since new request has come in.
-                _event_queue.cancel(keep_alive_id);                
+                if(keep_alive_id != 0) // only cancel if it has been activated
+                {
+                    _event_queue.cancel(keep_alive_id); 
+                }               
                 wifiBusy = 1;
 #ifdef SEND_DEBUG_MESSAGES
                 if(outputBuffersAvailable())
@@ -423,6 +428,8 @@
                     if(https_connection_active == false)
                     {
                         queueATresponse(AT_SOCKET_KEEP_ALIVE_FAILED);
+                        delete socket;
+                        socket = NULL;
                     }
                 }
                 wifiCmd = WIFI_CMD_NONE;
@@ -435,6 +442,16 @@
                 wifiCmd = WIFI_CMD_NONE;
                 wifiBusy = 0;
                 break;
+            case WIFI_CMD_WIFI_MAC_ADDR:
+                wifiBusy = 1;
+                if(outputBuffersAvailable())
+                {
+                    getWiFiMACaddress();
+                    sendATresponseString(AT_WIFI_MAC_RESP);
+                }
+                wifiCmd = WIFI_CMD_NONE;
+                wifiBusy = 0;
+                break;
             case WIFI_CMD_SEND_HTTP_REQ:
                 break;
             default:
@@ -796,6 +813,13 @@
     sprintf(nextStrPtr, "%s", UDDRP_WRITE_OK);
 }
 
+void WiFiManager::getWiFiMACaddress()
+{
+    responseString = (char *) malloc(100);
+    sprintf(responseString, "\r\n%s%d,%s\r\n", LOCAL_ADDRESS_RESP, 
+                                           WIFI_IF_ID,
+                                           network->get_mac_address());
+}
 
 
 void WiFiManager::getWiFiStatus(){