this is using the mbed os version 5-13-1
Revision 111:3ab1d9644835, committed 2019-05-10
- Comitter:
- ocomeni
- Date:
- Fri May 10 13:45:50 2019 +0000
- Branch:
- PassingRegression
- Parent:
- 110:c722dda4f2ff
- Child:
- 112:a0999ea4ece0
- Commit message:
- latest https code
Changed in this revision
| source/WiFiManager.cpp | Show annotated file Show diff for this revision Revisions of this file |
| source/WiFiManager.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/source/WiFiManager.cpp Thu May 09 13:21:12 2019 +0000
+++ b/source/WiFiManager.cpp Fri May 10 13:45:50 2019 +0000
@@ -183,6 +183,10 @@
wifiBusy = 1;
backgroundTaskCompleted = false;
set_internet_config();
+ // Wait for callback semaphore
+#ifdef DNANUDGE_DEBUG
+ callback_semaphore.wait();
+#endif
int msecCount = 0;
while(!backgroundTaskCompleted && msecCount < 1000)
{
@@ -492,9 +496,34 @@
void WiFiManager::gethostbyname()
{
nsapi_value_or_error_t value_or_error;
- value_or_error = network->gethostbyname_async(internet_config.url,
+#ifdef DNANUDGE_DEBUG
+ SocketAddress * addr = new SocketAddress;
+ bool res;
+ res = addr->set_ip_address("8.8.8.8");
+ if(res)
+ {
+ dbg_printf(LOG, "[WIFI-MAN] added ip address %s\r\n", addr->get_ip_address());
+ }
+ else
+ {
+ dbg_printf(LOG, "[WIFI-MAN] Error adding ip address \r\n");
+ }
+ network->add_dns_server(*addr);
+#endif
+ char * serverAddress = new char[100];
+ char *p = strstr(internet_config.url, "//");
+ if(p != NULL)
+ {
+ strcpy(serverAddress,p+2);
+ }
+ else
+ {
+ strcpy(serverAddress,internet_config.url);
+ }
+ value_or_error = network->gethostbyname_async(serverAddress,
callback(this, &WiFiManager::gethostbyname_callback),
NSAPI_UNSPEC);
+
if(value_or_error >= NSAPI_ERROR_OK) // success
{
dbg_printf(LOG, "[WIFI-MAN] hostname translation successful value_or_error = %d\r\n", value_or_error);
@@ -741,8 +770,14 @@
}
-void WiFiManager::gethostbyname_callback(nsapi_error_t result, SocketAddress *address)
+void WiFiManager::gethostbyname_callback(nsapi_error_t res, SocketAddress *addr)
{
+ nsapi_error_t result = res;
+ SocketAddress *address = new SocketAddress;
+ address = addr;
+#ifdef DNANUDGE_DEBUG
+ callback_semaphore.release();
+#endif
dbg_printf(LOG, "gethostbyname_callback called... result = %d \r\n", result);
print_memory_info();
responseBytes = new uint8_t[HOSTNAME_RESPONSE_LEN]; //malloc(HOSTNAME_RESPONSE_LEN);
--- a/source/WiFiManager.h Thu May 09 13:21:12 2019 +0000
+++ b/source/WiFiManager.h Fri May 10 13:45:50 2019 +0000
@@ -80,7 +80,9 @@
Ticker watchDogTick;
uint32_t watchdogCnt;
http_result_t http_result;
-
+#ifdef DNANUDGE_DEBUG
+ rtos::Semaphore callback_semaphore;
+#endif
nsapi_size_or_error_t scanNetworks();
nsapi_size_or_error_t getAvailableAPs(nsapi_size_t count);
void set_WIFI_SSID(char * wifi_ssid);
@@ -120,7 +122,7 @@
void getNetworkStatus();
void getWiFiStatus();
void status_callback_event(nsapi_event_t status, intptr_t param);
- void gethostbyname_callback(nsapi_error_t result, SocketAddress *address);
+ void gethostbyname_callback(nsapi_error_t res, SocketAddress *addr);
void gethostbyname();
void sendSocketConnectionEvent();
void updateRemotePeerDetails();