Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of cc3000_hostdriver_mbedsocket by
Diff: Socket/Endpoint.cpp
- Revision:
- 18:7e22775eadb9
- Parent:
- 17:14b6a3a2b622
- Child:
- 34:1ad18123bf11
diff -r 14b6a3a2b622 -r 7e22775eadb9 Socket/Endpoint.cpp
--- a/Socket/Endpoint.cpp Wed Oct 02 20:29:31 2013 +0200
+++ b/Socket/Endpoint.cpp Wed Oct 02 21:57:28 2013 +0000
@@ -78,6 +78,7 @@
int Endpoint::set_address(const char* host, const int port) {
reset_address();
+ int resolveRetCode;
char address[5];
char *p_address = address;
@@ -93,15 +94,25 @@
if (result != 4) {
//Resolve DNS address or populate hard-coded IP address
uint32_t address_integer;
- _cc3000_module->_socket.gethostbyname((uint8_t *)host, strlen(host) , &address_integer);
-
- uint32_t ip = 0;
- ip = (ip | (address_integer >> 24));
- ip = (ip | ((address_integer & 0x00FF0000) >> 8));
- ip = (ip | ((address_integer & 0x0000FF00) << 8));
- ip = (ip | ((address_integer & 0x000000FF) << 24));
- _remote_host.sin_addr.s_addr = ip;
- inet_ntoa_r(_remote_host.sin_addr, _ipAddress, sizeof(_ipAddress));
+ resolveRetCode = _cc3000_module->_socket.gethostbyname((uint8_t *)host, strlen(host) , &address_integer);
+
+ if ((resolveRetCode > -1) && ( 0 != address_integer ))
+ {
+ // Resolved address
+ uint32_t ip = 0;
+ ip = (ip | (address_integer >> 24));
+ ip = (ip | ((address_integer & 0x00FF0000) >> 8));
+ ip = (ip | ((address_integer & 0x0000FF00) << 8));
+ ip = (ip | ((address_integer & 0x000000FF) << 24));
+ _remote_host.sin_addr.s_addr = ip;
+ inet_ntoa_r(_remote_host.sin_addr, _ipAddress, sizeof(_ipAddress));
+ }
+ else
+ {
+ // Failed to resolve the address
+ DBG_SOCKET("Failed to resolve the hostname : %s",host);
+ return ( -1 );
+ }
} else {
std::memcpy((char*)&_remote_host.sin_addr.s_addr, p_address, 4);
}
