cc
Diff: SpwfInterface.cpp
- Revision:
- 14:4ec13009341c
- Parent:
- 13:0368732b5b9d
- Child:
- 15:0a075334e0e9
--- a/SpwfInterface.cpp Tue Nov 22 14:38:43 2016 +0000 +++ b/SpwfInterface.cpp Mon Jan 02 14:50:17 2017 +0000 @@ -49,6 +49,7 @@ int server_port; nsapi_protocol_t proto; bool connected; + bool secure; }; @@ -67,7 +68,8 @@ { memset(_ids, 0, sizeof(_ids)); isInitialized = false; - isListening = false; + isListening = false; + isSecure = false; } SpwfSAInterface::SpwfSAInterface(PinName tx, PinName rx, PinName reset, PinName wakeup, bool debug) @@ -76,6 +78,7 @@ memset(_ids, 0, sizeof(_ids)); isInitialized = false; isListening = false; + isSecure = false; } /** @@ -154,6 +157,31 @@ return (_spwf.disconnect()); } +/** +* @brief set UTC time on wifi module +* @param time since epoch in UTC format +* @retval true on succes +*/ +int SpwfSAInterface::set_time(time_t ctTime) +{ + return (_spwf.settime(ctTime)); +} + +int SpwfSAInterface::set_TLS_certificate(char *cert, unsigned int size, CertType_t type) +{ + return (_spwf.setTLScertificate(cert, size, type)); +} + +int SpwfSAInterface::set_TLS_SRV_domain(char *domain, CertType_t type) +{ + return (_spwf.setTLSSRVdomain(domain, type)); +} + +int SpwfSAInterface::clean_TLS_certificate(CertType_t type) +{ + return (_spwf.cleanTLScertificate(type)); +} + /** * @brief Get the local IP address * @param none @@ -195,11 +223,43 @@ socket->server_port = id; socket->proto = proto; socket->connected = false; + if (isSecure_socket()) socket->secure = true; + else socket->secure = false; *handle = socket; return 0; } /** +* @brief set secure mode for all the subsequently created sockets +* @param none +* @retval void +*/ +void SpwfSAInterface::set_secure_sockets(void) +{ + isSecure = true; +} + +/** +* @brief set unsecure mode for all the subsequently created sockets +* @param none +* @retval void +*/ +void SpwfSAInterface::set_unsecure_sockets(void) +{ + isSecure = false; +} + +/** +* @brief Return the interface security mode set +* @param none +* @retval true if secure +*/ +bool SpwfSAInterface::isSecure_socket(void) +{ + return isSecure; +} + +/** * @brief connect to a remote socket * @param handle: Pointer to socket handle * addr: Address to connect to @@ -207,12 +267,16 @@ */ int SpwfSAInterface::socket_connect(void *handle, const SocketAddress &addr) { - int sock_id = 99; +// int sock_id = 99; + int sock_id = -1; + const char* proto; struct spwf_socket *socket = (struct spwf_socket *)handle; - - const char *proto = (socket->proto == NSAPI_UDP) ? "u" : "t";//"s" for secure socket? + if (socket->secure) + proto="s"; + else + proto=(socket->proto == NSAPI_UDP) ? "u" : "t"; - if (!_spwf.open(proto, &sock_id, addr.get_ip_address(), addr.get_port())) {;//sock ID is allocated NOW + if (!_spwf.open(proto, &sock_id, addr.get_ip_address(), addr.get_port())) {//sock ID is allocated NOW return NSAPI_ERROR_DEVICE_ERROR; }