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.
Dependencies: DnsQuery
Dependents: WizFi310_TCP_Echo_Server_Example
Fork of NetworkSocketAPI by
Diff: Socket.cpp
- Branch:
- api-changes
- Revision:
- 41:3ec1c97e9bbf
- Parent:
- 39:47138420ea42
- Child:
- 42:49893d13c432
--- a/Socket.cpp Mon Feb 22 23:52:09 2016 -0600
+++ b/Socket.cpp Tue Feb 23 04:01:38 2016 -0600
@@ -24,6 +24,8 @@
{
memset(_ip_address, 0, SOCK_IP_SIZE);
_port = 0;
+
+ _timeout = iface->getTimeout();
}
Socket::~Socket()
@@ -75,6 +77,20 @@
return _port;
}
+void Socket::setTimeout(uint32_t timeout)
+{
+ _timeout = timeout;
+
+ if (_socket) {
+ _socket->setTimeout(timeout);
+ }
+}
+
+uint32_t Socket::getTimeout() const
+{
+ return _timeout;
+}
+
bool Socket::isConnected()
{
if (!_socket) {
@@ -86,13 +102,13 @@
int32_t Socket::open(const char *url, uint16_t port)
{
- if (_socket) {
- int32_t err = close();
- if (err) return err;
- }
+ int32_t err;
+
+ err = close();
+ if (err) return err;
if (url) {
- int32_t err = setURL(url);
+ err = setURL(url);
if (err) return err;
}
@@ -107,7 +123,9 @@
_socket = _iface->createSocket(_proto);
if (!_socket) return -2;
- int32_t err = _socket->open(_ip_address, _port);
+ _socket->setTimeout(_timeout);
+
+ err = _socket->open(_ip_address, _port);
if (err) {
_iface->destroySocket(_socket);
@@ -129,15 +147,15 @@
return err;
}
-int32_t Socket::send(const void *data, uint32_t len, uint32_t timeout_ms)
+int32_t Socket::send(const void *data, uint32_t len)
{
if (!_socket) return -2;
- return _socket->send(data, len, timeout_ms);
+ return _socket->send(data, len);
}
-int32_t Socket::recv(void *data, uint32_t len, uint32_t timeout_ms)
+int32_t Socket::recv(void *data, uint32_t len)
{
if (!_socket) return -2;
- return _socket->recv(data, len, timeout_ms);
+ return _socket->recv(data, len);
}
