Commit Graph

20 Commits (d7dda282c20406edd5cc33e82617350ca3d4a262)

Author SHA1 Message Date
Sam Grove 6bfcb3cff0 Merge pull request #2665 from geky/nsapi-socketaddress-equality
nsapi - Add equality operators to SocketAddress class
2016-09-16 17:28:01 -05:00
Christopher Haster e3037ef7b0 nsapi - Added equality operators to SocketAddress class 2016-09-11 20:48:01 -05:00
Sam Grove 5c30c0f166 Merge pull request #2594 from svastm/fix_tcp_server_constructor
Fix TCPServer constructor
2016-09-10 13:04:55 -05:00
Sam Grove a35cd7f81f Merge pull request #2579 from geky/nsapi-max-socket-accept
lwip - Fix handling of max sockets in socket_accept
2016-09-10 07:11:20 -05:00
Sam Grove a6b27319ec Merge pull request #2496 from geky/callback-cv
Add cv-qualifiers to Callback and deprecate combinatorial explody functions
2016-09-09 01:45:25 +02:00
svastm b56201c8c4 Fix TCPServer constructor
- Avoid a call to the protected method `get_stack()` which cause a build fail.
 - Remove the constructor definition `TCPServer(NetworkStack *stack)`
   because it has no implementation.
2016-08-31 17:35:10 +02:00
Christopher Haster db2738f850 nsapi - Corrected handling of errors in TCPServer accept
- Corrected handling, before errors would forcibly restart the
  accept loop without checks for timeouts
- Rearranged accept logic to match the logic of
  recv/send/recvfrom/sendto
2016-08-29 17:38:06 -05:00
Christopher Haster 4ffeec1797 [nsapi] Restructured nsapi_dns.h to have clear separation between C/C++
- Separated overloads based on language
- Removed NSAPI_C_LINKAGE definition
2016-08-26 12:39:52 -05:00
Christopher Haster f9552ddbbe [nsapi] Add support for implementation-provided DNS servers
Support intended for DNS servers provided by DHCP requests.
2016-08-26 12:16:41 -05:00
Christopher Haster dc9ddd42ef [nsapi] Removed unnecessary dns_query functions 2016-08-26 12:16:41 -05:00
Christopher Haster 08584916a5 [nsapi] Added IPv6 support to DNS query
To avoid complications with unexpected IP versions, the wanted
IP version was added as an extra argument to DNS query functions
(defaults to NSAPI_IPv4).

Internal API changes:
m nsapi_dns_query
m nsapi_dns_query_multiple

Interestingly, though multiple questions can be encoded in a single
DNS packet, few, if any, nameservers respect any but the first
question. This makes support for coelescing DNS queries useless.
2016-08-26 12:16:41 -05:00
Christopher Haster 665309986e [nsapi] Added support for multiple results in a dns-query
Internal API changes:
+ nsapi_dns_query_multiple

Note, dns_query_multiple takes a buffer of nsapi_addr_t to fill. This is
less dynamic than the linked-list method used in linux's gethostbyname,
but is easier to manage and more constrained.
2016-08-26 12:16:41 -05:00
Christopher Haster 126df2b4a9 [nsapi] Refactored dns-query to match style of the rest of the nsapi
Internal API changes:
dnsQuery -> nsapi_dns_query

Additionally restructured query code to emit/parse network structures
in stream form to hopefully document the underlying structure more
explicitly.
2016-08-26 12:16:41 -05:00
Christopher Haster 45d25ed493 Added support for cv-qualifiers in Callback class
Additionally, the following changes were don to avoid combinatorial
explosion in function overloads as a result of adding cv-qualifiers:
- Added convenience function for inferred type
- Deprecated callback overloads qhere cv-qualifiers are not scalable

Supported overloads:
callback(void (*f)(A...));
callback(const Callback<R(A...)> &);
callback(T *t,                void (*f)(T*, A...));
callback(const T *t,          void (*f)(const T*, A...));
callback(volatile T *t,       void (*f)(volatile T*, A...));
callback(const volatile T *t, void (*f)(const volatile T*, A...));
callback(T *t,                void (T::*f)(A...));
callback(const T *t,          void (T::*f)(A...) const);
callback(volatile T *t,       void (T::*f)(A...) volatile);
callback(const volatile T *t, void (T::*f)(A...) const volatile);
2016-08-26 09:40:22 -05:00
Colin Hogben 4f731e6b17 network-socket: Re-order args of NetworkStack::accept
Make the argument order more sensible, in line with nsapi.
2016-08-12 17:22:17 +01:00
Colin Hogben 36bf4827c7 network-socket: Optionally return peer address from accept().
Fixes issue #2399 by optionally returning a SocketAddress from
TCPServer::accept().

This entails changes to underlying NetworkStack and nsapi.  This
commit deals only with lwip and higher level APIs; other users of
NetworkStack and nsapi may be affected.  Currently lwip is the only
in-tree user of nsapi.
2016-08-12 10:50:52 +01:00
Christopher Haster 75a57ad797 Exposed the network-socket API through mbed.h
Currently this uses the same mechanism used by the rtos to conditionally
include the network-socket API. Perhaps this should be builtin to the
config system?

Note: this does require that the bug-compatible inclusion of mbed.h
be removed to avoid include-order issues.

per @sg-
2016-08-04 11:07:33 -05:00
Christopher Haster 8f2ca2bc63 Fixed missing port assignment in DNS constructor for SocketAddress
_stack->gethostbyname looks deceptively like it completely sets the
socket address value, however port is not provided via DNS resolution.
2016-07-25 17:46:15 -05:00
Christopher Haster ec993319a9 [nsapi] Fixed iar compilation issue with value initializer
Expression needed to init to zero a simple POD struct

Before (valid in C99/C++11/G++): 	(nsapi_addr_t){}
After (valid in C++03, invalid in C):	nsapi_addr_t()
2016-07-22 15:42:57 -05:00
Christopher Haster 03c5855496 Add 'features/net/network-socket/' from commit 'e09565474188b905cada21166118a82e66359217'
git-subtree-dir: features/net/network-socket
git-subtree-mainline: db60d6a7f7
git-subtree-split: e095654741
2016-07-21 18:30:42 -05:00