Commit Graph

30 Commits (b7cdc204fda7fe7937e1be353673ef98dda6d9f3)

Author SHA1 Message Date
Russ Butler b15e2c293e Add synchronization to the network socket API
Add mutexes to protect the network socket API.  Also use semaphores to
wait for read/write events.  Also fix a typo in the comments for
timeout.
2016-05-15 18:03:48 -05:00
Christopher Haster 7d9b5e6f76 Small bug fixes
mirrored from:
https://developer.mbed.org/teams/NetworkSocketAPI/code/NetworkSocketAPI/

- Fix bug with SocketAddress init per @c1728p9
- Fix issue with not passing interface through accept call
- Fix port issue in SocketAddress constructor
2016-05-13 11:41:17 -05:00
Christopher Haster 8304124a63 Add NSAPI_ERROR_PARAMETER
per @c1728p9
2016-05-13 11:41:16 -05:00
Christopher Haster bcab0fcef5 Added WFI to save power in temporary polling implementation 2016-05-13 11:41:15 -05:00
Christopher Haster 5475dd0404 Consolidate set_timeout/set_blocking behaviour
- Avoids ambiguity when both are used
- Matches Python behaviour
2016-05-13 11:41:14 -05:00
Christopher Haster d17fa4faad Separate Stack/Interface concept into two distinct classes 2016-05-13 11:41:13 -05:00
Christopher Haster 49ba2be3a7 Add standardized stack options 2016-05-13 11:41:11 -05:00
Christopher Haster 893dfec7e6 Added workaround for bug in newlib sscanf
https://bugs.launchpad.net/gcc-arm-embedded/+bug/1399224
2016-05-13 11:41:10 -05:00
Christopher Haster f4526e5b73 Fix race condition in socket close 2016-05-13 11:41:08 -05:00
Christopher Haster 16929af278 Rename Interface -> Stack
NetworkInterface  -> NetworkStack
EthernetInterface -> EthernetStack
WiFiInterface     -> WiFiStack
CellularInterface -> CellularStack
MeshInterface     -> MeshStack
2016-05-13 11:41:07 -05:00
Christopher Haster 55f7d29fc3 Revised documentation for Interface classes 2016-05-13 11:41:06 -05:00
Christopher Haster d43f8706d3 Revisited documentation for Socket API 2016-05-13 11:41:05 -05:00
Christopher Haster eab6d775ac Removed is_connected function
- Not supported by TCP/UDP protocols
- Uncommon and less useful with proper error handling
2016-05-13 11:41:04 -05:00
Christopher Haster 50a9143478 Revisited documentation for NetworkInterface specific methods 2016-05-13 11:41:03 -05:00
Christopher Haster e762b04f64 Added support for shortened form ipv6 addresses
supported:
    1.2.3.4
    1:2:3:4:5:6:7:8
    1:2::7:8
    ::

currently not supported:
    1:2:3:4:5:6:1.2.3.4
2016-05-13 11:41:01 -05:00
Christopher Haster 525c7b361c Revised stack specific configurations
Adds the following functions for direct configuration of interface
- (set|get)stackopt
- (set|get)sockopt
2016-05-13 11:41:00 -05:00
Christopher Haster c4506dc1c0 Move bind to Socket
Bind can operate on any IP socket and is not specific to a protocol
2016-05-13 11:40:59 -05:00
Russ Butler fa45131245 Fix ipv6 addr in SocketAddress
Correctly set and return the ipv6 address.
2016-05-13 11:40:58 -05:00
Christopher Haster 141b245dfc Added better support for SocketAddress/string addresses/ports 2016-05-13 11:40:57 -05:00
Christopher Haster d488f02f5e Move to SocketAddress in gethostbyname 2016-05-13 11:40:55 -05:00
Christopher Haster 62bb777c1f Added support for storing bytes directly in SocketAddress
Bytes are stored by default, however enough space is allocated in
a SocketAddress to generate the string representation if necessary.

Currently there is no support for shortened addresses
2016-05-13 11:40:54 -05:00
Christopher Haster 455f023949 Renamed NetworkInterface create/destroy methods to match Socket methods
- socket_create -> socket_open
- socket_destroy -> socket_close
2016-05-13 11:40:53 -05:00
Christopher Haster c33d246fa6 Move to single state-change interrupt
Pros
- Easier to implement
- More similar to SIGIO in BDS sockets

Cons
- Less information, but this information had a high risk of being
  faulty/spurious
2016-05-13 11:40:52 -05:00
Christopher Haster c3eec0322b Remove shutdown parameter from close call
Pros
- Simplifies interface
- Easier base implementation

Cons
- May need shutdown functionality, in this case shutdown
  can be added as another function in the future
2016-05-13 11:40:51 -05:00
Christopher Haster 71efccb1e8 Add open call as alternative to passing NetworkInterface at construction
Pros
- Allows memory to be statically allocated
- Avoids issues with Thread creation before entering main
- Matches existing APIs such as FunctionPointer and Ticker

Cons
- Does not enforce passing a NetworkInterface
2016-05-13 11:40:50 -05:00
Christopher Haster 106e459a64 Adopt mbed style doxygen comments
per @0xc0170
2016-05-13 11:40:49 -05:00
Russ Butler 98a8c49f00 Add mesh interface header file
Add the mesh interface header file.
2016-04-10 23:37:23 -05:00
Christopher Haster 8a5121aaff Reverted merge of FuncPtr (#10)
Replaced FuncPtr with FunctionPointer in NSAPI
2016-04-06 11:23:42 -05:00
Christopher Haster 03475f35bb Matched changes NetworkSocketAPI
Responded to feedback from mbed-client implementation
to introduce a full feature set that should support most
of the use cases for the API.
2016-04-06 08:50:56 -05:00
Bogdan Marinescu 882d3f4e48 Preparing new layout - added net/NetworkSocketAPI
Origin: https://developer.mbed.org/teams/NetworkSocketAPI/code/NetworkSocketAPI/
2016-04-05 16:40:57 +01:00