mirror of https://github.com/ARMmbed/mbed-os.git
netsocket: fix astyle coding style
parent
884a7748b2
commit
63160d8c5b
|
|
@ -10,6 +10,7 @@ features/storage/FEATURE_STORAGE
|
|||
features/frameworks
|
||||
features/FEATURE_BLE/targets
|
||||
features/unsupported/
|
||||
features/netsocket/emac-drivers
|
||||
hal/storage_abstraction
|
||||
features/nanostack/coap-service
|
||||
features/nanostack/sal-stack-nanostack
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ public:
|
|||
}
|
||||
|
||||
/** Create a SocketAddress from a raw IP address and port
|
||||
*
|
||||
*
|
||||
* To construct from a host name, use NetworkInterface::gethostbyname
|
||||
*
|
||||
* @param addr Raw IP address
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ TCPSocket::TCPSocket()
|
|||
{
|
||||
}
|
||||
|
||||
TCPSocket::TCPSocket(TCPSocket* parent, nsapi_socket_t socket, SocketAddress address)
|
||||
TCPSocket::TCPSocket(TCPSocket *parent, nsapi_socket_t socket, SocketAddress address)
|
||||
{
|
||||
_socket = socket,
|
||||
_stack = parent->_stack;
|
||||
|
|
|
|||
|
|
@ -70,12 +70,14 @@ public:
|
|||
* @param stack Network stack as target for socket
|
||||
* @return 0 on success, negative error code on failure
|
||||
*/
|
||||
virtual nsapi_error_t open(NetworkStack *stack) {
|
||||
virtual nsapi_error_t open(NetworkStack *stack)
|
||||
{
|
||||
return tcp_socket.open(stack);
|
||||
}
|
||||
|
||||
template <typename S>
|
||||
nsapi_error_t open(S *stack) {
|
||||
nsapi_error_t open(S *stack)
|
||||
{
|
||||
return open(nsapi_create_stack(stack));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,8 +33,8 @@ TLSSocketWrapper::TLSSocketWrapper(Socket *transport, const char *hostname, cont
|
|||
_clicert(NULL),
|
||||
#endif
|
||||
_ssl_conf(NULL),
|
||||
_connect_transport(control==TRANSPORT_CONNECT || control==TRANSPORT_CONNECT_AND_CLOSE),
|
||||
_close_transport(control==TRANSPORT_CLOSE || control==TRANSPORT_CONNECT_AND_CLOSE),
|
||||
_connect_transport(control == TRANSPORT_CONNECT || control == TRANSPORT_CONNECT_AND_CLOSE),
|
||||
_close_transport(control == TRANSPORT_CLOSE || control == TRANSPORT_CONNECT_AND_CLOSE),
|
||||
_handshake_completed(false),
|
||||
_cacert_allocated(false),
|
||||
_clicert_allocated(false),
|
||||
|
|
@ -50,7 +50,8 @@ TLSSocketWrapper::TLSSocketWrapper(Socket *transport, const char *hostname, cont
|
|||
}
|
||||
}
|
||||
|
||||
TLSSocketWrapper::~TLSSocketWrapper() {
|
||||
TLSSocketWrapper::~TLSSocketWrapper()
|
||||
{
|
||||
if (_transport) {
|
||||
close();
|
||||
}
|
||||
|
|
@ -90,7 +91,7 @@ nsapi_error_t TLSSocketWrapper::set_root_ca_cert(const void *root_ca, size_t len
|
|||
/* Parse CA certification */
|
||||
int ret;
|
||||
if ((ret = mbedtls_x509_crt_parse(crt, static_cast<const unsigned char *>(root_ca),
|
||||
len)) != 0) {
|
||||
len)) != 0) {
|
||||
print_mbedtls_error("mbedtls_x509_crt_parse", ret);
|
||||
return NSAPI_ERROR_PARAMETER;
|
||||
}
|
||||
|
|
@ -111,7 +112,7 @@ nsapi_error_t TLSSocketWrapper::set_client_cert_key(const char *client_cert_pem,
|
|||
}
|
||||
|
||||
nsapi_error_t TLSSocketWrapper::set_client_cert_key(const void *client_cert, size_t client_cert_len,
|
||||
const void *client_private_key_pem, size_t client_private_key_len)
|
||||
const void *client_private_key_pem, size_t client_private_key_len)
|
||||
{
|
||||
#if !defined(MBEDTLS_X509_CRT_PARSE_C)
|
||||
return NSAPI_ERROR_UNSUPPORTED;
|
||||
|
|
@ -120,14 +121,14 @@ nsapi_error_t TLSSocketWrapper::set_client_cert_key(const void *client_cert, siz
|
|||
int ret;
|
||||
mbedtls_x509_crt *crt = new mbedtls_x509_crt;
|
||||
mbedtls_x509_crt_init(crt);
|
||||
if((ret = mbedtls_x509_crt_parse(crt, static_cast<const unsigned char *>(client_cert),
|
||||
client_cert_len)) != 0) {
|
||||
if ((ret = mbedtls_x509_crt_parse(crt, static_cast<const unsigned char *>(client_cert),
|
||||
client_cert_len)) != 0) {
|
||||
print_mbedtls_error("mbedtls_x509_crt_parse", ret);
|
||||
return NSAPI_ERROR_PARAMETER;
|
||||
}
|
||||
mbedtls_pk_init(&_pkctx);
|
||||
if((ret = mbedtls_pk_parse_key(&_pkctx, static_cast<const unsigned char *>(client_private_key_pem),
|
||||
client_private_key_len, NULL, 0)) != 0) {
|
||||
if ((ret = mbedtls_pk_parse_key(&_pkctx, static_cast<const unsigned char *>(client_private_key_pem),
|
||||
client_private_key_len, NULL, 0)) != 0) {
|
||||
print_mbedtls_error("mbedtls_pk_parse_key", ret);
|
||||
return NSAPI_ERROR_PARAMETER;
|
||||
}
|
||||
|
|
@ -139,7 +140,8 @@ nsapi_error_t TLSSocketWrapper::set_client_cert_key(const void *client_cert, siz
|
|||
}
|
||||
|
||||
|
||||
nsapi_error_t TLSSocketWrapper::do_handshake() {
|
||||
nsapi_error_t TLSSocketWrapper::do_handshake()
|
||||
{
|
||||
nsapi_error_t _error;
|
||||
const char DRBG_PERS[] = "mbed TLS client";
|
||||
|
||||
|
|
@ -153,8 +155,8 @@ nsapi_error_t TLSSocketWrapper::do_handshake() {
|
|||
*/
|
||||
int ret;
|
||||
if ((ret = mbedtls_ctr_drbg_seed(&_ctr_drbg, mbedtls_entropy_func, &_entropy,
|
||||
(const unsigned char *) DRBG_PERS,
|
||||
sizeof (DRBG_PERS))) != 0) {
|
||||
(const unsigned char *) DRBG_PERS,
|
||||
sizeof(DRBG_PERS))) != 0) {
|
||||
print_mbedtls_error("mbedtls_crt_drbg_init", ret);
|
||||
_error = ret;
|
||||
return _error;
|
||||
|
|
@ -177,7 +179,7 @@ nsapi_error_t TLSSocketWrapper::do_handshake() {
|
|||
return _error;
|
||||
}
|
||||
|
||||
mbedtls_ssl_set_bio(&_ssl, this, ssl_send, ssl_recv, NULL );
|
||||
mbedtls_ssl_set_bio(&_ssl, this, ssl_send, ssl_recv, NULL);
|
||||
|
||||
#ifdef MBEDTLS_X509_CRT_PARSE_C
|
||||
/* Start the handshake, the rest will be done in onReceive() */
|
||||
|
|
@ -189,7 +191,7 @@ nsapi_error_t TLSSocketWrapper::do_handshake() {
|
|||
do {
|
||||
ret = mbedtls_ssl_handshake(&_ssl);
|
||||
} while (ret != 0 && (ret == MBEDTLS_ERR_SSL_WANT_READ ||
|
||||
ret == MBEDTLS_ERR_SSL_WANT_WRITE));
|
||||
ret == MBEDTLS_ERR_SSL_WANT_WRITE));
|
||||
if (ret < 0) {
|
||||
print_mbedtls_error("mbedtls_ssl_handshake", ret);
|
||||
return ret;
|
||||
|
|
@ -205,13 +207,13 @@ nsapi_error_t TLSSocketWrapper::do_handshake() {
|
|||
#ifdef MBEDTLS_X509_CRT_PARSE_C
|
||||
/* Prints the server certificate and verify it. */
|
||||
const size_t buf_size = 1024;
|
||||
char* buf = new char[buf_size];
|
||||
char *buf = new char[buf_size];
|
||||
mbedtls_x509_crt_info(buf, buf_size, "\r ",
|
||||
mbedtls_ssl_get_peer_cert(&_ssl));
|
||||
mbedtls_ssl_get_peer_cert(&_ssl));
|
||||
tr_debug("Server certificate:\r\n%s\r\n", buf);
|
||||
|
||||
uint32_t flags = mbedtls_ssl_get_verify_result(&_ssl);
|
||||
if( flags != 0 ) {
|
||||
if (flags != 0) {
|
||||
/* Verification failed. */
|
||||
mbedtls_x509_crt_verify_info(buf, buf_size, "\r ! ", flags);
|
||||
tr_error("Certificate verification failed:\r\n%s", buf);
|
||||
|
|
@ -228,7 +230,8 @@ nsapi_error_t TLSSocketWrapper::do_handshake() {
|
|||
}
|
||||
|
||||
|
||||
nsapi_error_t TLSSocketWrapper::send(const void *data, nsapi_size_t size) {
|
||||
nsapi_error_t TLSSocketWrapper::send(const void *data, nsapi_size_t size)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (!_transport) {
|
||||
|
|
@ -239,7 +242,7 @@ nsapi_error_t TLSSocketWrapper::send(const void *data, nsapi_size_t size) {
|
|||
ret = mbedtls_ssl_write(&_ssl, (const unsigned char *) data, size);
|
||||
|
||||
if (ret == MBEDTLS_ERR_SSL_WANT_WRITE ||
|
||||
ret == MBEDTLS_ERR_SSL_WANT_READ) {
|
||||
ret == MBEDTLS_ERR_SSL_WANT_READ) {
|
||||
// translate to socket error
|
||||
return NSAPI_ERROR_WOULD_BLOCK;
|
||||
}
|
||||
|
|
@ -255,7 +258,8 @@ nsapi_size_or_error_t TLSSocketWrapper::sendto(const SocketAddress &, const void
|
|||
return send(data, size);
|
||||
}
|
||||
|
||||
nsapi_size_or_error_t TLSSocketWrapper::recv(void *data, nsapi_size_t size) {
|
||||
nsapi_size_or_error_t TLSSocketWrapper::recv(void *data, nsapi_size_t size)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (!_transport) {
|
||||
|
|
@ -265,7 +269,7 @@ nsapi_size_or_error_t TLSSocketWrapper::recv(void *data, nsapi_size_t size) {
|
|||
ret = mbedtls_ssl_read(&_ssl, (unsigned char *) data, size);
|
||||
|
||||
if (ret == MBEDTLS_ERR_SSL_WANT_WRITE ||
|
||||
ret == MBEDTLS_ERR_SSL_WANT_READ) {
|
||||
ret == MBEDTLS_ERR_SSL_WANT_READ) {
|
||||
// translate to socket error
|
||||
return NSAPI_ERROR_WOULD_BLOCK;
|
||||
} else if (ret == MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY) {
|
||||
|
|
@ -287,7 +291,8 @@ nsapi_size_or_error_t TLSSocketWrapper::recvfrom(SocketAddress *address, void *d
|
|||
return recv(data, size);
|
||||
}
|
||||
|
||||
void TLSSocketWrapper::print_mbedtls_error(const char *name, int err) {
|
||||
void TLSSocketWrapper::print_mbedtls_error(const char *name, int err)
|
||||
{
|
||||
#ifdef MBEDTLS_ERROR_C
|
||||
char *buf = new char[128];
|
||||
mbedtls_strerror(err, buf, 128);
|
||||
|
|
@ -303,14 +308,14 @@ void TLSSocketWrapper::print_mbedtls_error(const char *name, int err) {
|
|||
#if MBED_CONF_TLS_SOCKET_DEBUG_LEVEL > 0
|
||||
|
||||
void TLSSocketWrapper::my_debug(void *ctx, int level, const char *file, int line,
|
||||
const char *str)
|
||||
const char *str)
|
||||
{
|
||||
const char *p, *basename;
|
||||
(void) ctx;
|
||||
|
||||
/* Extract basename from file */
|
||||
for(p = basename = file; *p != '\0'; p++) {
|
||||
if(*p == '/' || *p == '\\') {
|
||||
for (p = basename = file; *p != '\0'; p++) {
|
||||
if (*p == '/' || *p == '\\') {
|
||||
basename = p + 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -329,10 +334,9 @@ int TLSSocketWrapper::my_verify(void *data, mbedtls_x509_crt *crt, int depth, ui
|
|||
mbedtls_x509_crt_info(buf, buf_size - 1, " ", crt);
|
||||
tr_debug("%s", buf);
|
||||
|
||||
if (*flags == 0)
|
||||
if (*flags == 0) {
|
||||
tr_info("No verification issue for this certificate\n");
|
||||
else
|
||||
{
|
||||
} else {
|
||||
mbedtls_x509_crt_verify_info(buf, buf_size, " ! ", *flags);
|
||||
tr_info("%s\n", buf);
|
||||
}
|
||||
|
|
@ -345,7 +349,8 @@ int TLSSocketWrapper::my_verify(void *data, mbedtls_x509_crt *crt, int depth, ui
|
|||
#endif /* MBED_CONF_TLS_SOCKET_DEBUG_LEVEL > 0 */
|
||||
|
||||
|
||||
int TLSSocketWrapper::ssl_recv(void *ctx, unsigned char *buf, size_t len) {
|
||||
int TLSSocketWrapper::ssl_recv(void *ctx, unsigned char *buf, size_t len)
|
||||
{
|
||||
int recv;
|
||||
|
||||
TLSSocketWrapper *my = static_cast<TLSSocketWrapper *>(ctx);
|
||||
|
|
@ -358,14 +363,15 @@ int TLSSocketWrapper::ssl_recv(void *ctx, unsigned char *buf, size_t len) {
|
|||
|
||||
if (NSAPI_ERROR_WOULD_BLOCK == recv) {
|
||||
return MBEDTLS_ERR_SSL_WANT_READ;
|
||||
} else if(recv < 0) {
|
||||
} else if (recv < 0) {
|
||||
tr_error("Socket recv error %d", recv);
|
||||
}
|
||||
// Propagate also Socket errors to SSL, it allows negative error codes to be returned here.
|
||||
return recv;
|
||||
}
|
||||
|
||||
int TLSSocketWrapper::ssl_send(void *ctx, const unsigned char *buf, size_t len) {
|
||||
int TLSSocketWrapper::ssl_send(void *ctx, const unsigned char *buf, size_t len)
|
||||
{
|
||||
int size = -1;
|
||||
TLSSocketWrapper *my = static_cast<TLSSocketWrapper *>(ctx);
|
||||
|
||||
|
|
@ -377,12 +383,12 @@ int TLSSocketWrapper::ssl_send(void *ctx, const unsigned char *buf, size_t len)
|
|||
|
||||
if (NSAPI_ERROR_WOULD_BLOCK == size) {
|
||||
return MBEDTLS_ERR_SSL_WANT_WRITE;
|
||||
} else if(size < 0){
|
||||
} else if (size < 0) {
|
||||
tr_error("Socket send error %d", size);
|
||||
}
|
||||
// Propagate also Socket errors to SSL, it allows negative error codes to be returned here.
|
||||
return size;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef MBEDTLS_X509_CRT_PARSE_C
|
||||
|
||||
|
|
@ -401,7 +407,7 @@ int TLSSocketWrapper::set_own_cert(mbedtls_x509_crt *crt)
|
|||
}
|
||||
_clicert = crt;
|
||||
if (crt) {
|
||||
if((ret = mbedtls_ssl_conf_own_cert(get_ssl_config(), _clicert, &_pkctx)) != 0) {
|
||||
if ((ret = mbedtls_ssl_conf_own_cert(get_ssl_config(), _clicert, &_pkctx)) != 0) {
|
||||
print_mbedtls_error("mbedtls_ssl_conf_own_cert", ret);
|
||||
}
|
||||
}
|
||||
|
|
@ -437,12 +443,12 @@ mbedtls_ssl_config *TLSSocketWrapper::get_ssl_config()
|
|||
|
||||
tr_info("mbedtls_ssl_config_defaults()");
|
||||
if ((ret = mbedtls_ssl_config_defaults(_ssl_conf,
|
||||
MBEDTLS_SSL_IS_CLIENT,
|
||||
MBEDTLS_SSL_TRANSPORT_STREAM,
|
||||
MBEDTLS_SSL_PRESET_DEFAULT)) != 0) {
|
||||
MBEDTLS_SSL_IS_CLIENT,
|
||||
MBEDTLS_SSL_TRANSPORT_STREAM,
|
||||
MBEDTLS_SSL_PRESET_DEFAULT)) != 0) {
|
||||
print_mbedtls_error("mbedtls_ssl_config_defaults", ret);
|
||||
set_ssl_config(NULL);
|
||||
MBED_ERROR( MBED_MAKE_ERROR(MBED_MODULE_NETWORK_STACK, MBED_ERROR_CODE_OUT_OF_MEMORY), "mbedtls_ssl_config_defaults() failed" );
|
||||
MBED_ERROR(MBED_MAKE_ERROR(MBED_MODULE_NETWORK_STACK, MBED_ERROR_CODE_OUT_OF_MEMORY), "mbedtls_ssl_config_defaults() failed");
|
||||
return NULL;
|
||||
}
|
||||
/* It is possible to disable authentication by passing
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ public:
|
|||
virtual nsapi_error_t connect(const SocketAddress &address = SocketAddress());
|
||||
virtual nsapi_size_or_error_t sendto(const SocketAddress &address, const void *data, nsapi_size_t size);
|
||||
virtual nsapi_size_or_error_t recvfrom(SocketAddress *address,
|
||||
void *data, nsapi_size_t size);
|
||||
void *data, nsapi_size_t size);
|
||||
virtual nsapi_error_t bind(const SocketAddress &address);
|
||||
virtual void set_blocking(bool blocking);
|
||||
virtual void set_timeout(int timeout);
|
||||
|
|
@ -190,7 +190,7 @@ protected:
|
|||
* Just prints on the USB serial port
|
||||
*/
|
||||
static void my_debug(void *ctx, int level, const char *file, int line,
|
||||
const char *str);
|
||||
const char *str);
|
||||
|
||||
/**
|
||||
* Certificate verification callback for mbed TLS
|
||||
|
|
@ -219,17 +219,17 @@ private:
|
|||
Socket *_transport;
|
||||
|
||||
#ifdef MBEDTLS_X509_CRT_PARSE_C
|
||||
mbedtls_x509_crt* _cacert;
|
||||
mbedtls_x509_crt* _clicert;
|
||||
mbedtls_x509_crt *_cacert;
|
||||
mbedtls_x509_crt *_clicert;
|
||||
#endif
|
||||
mbedtls_ssl_config* _ssl_conf;
|
||||
mbedtls_ssl_config *_ssl_conf;
|
||||
|
||||
bool _connect_transport:1;
|
||||
bool _close_transport:1;
|
||||
bool _handshake_completed:1;
|
||||
bool _cacert_allocated:1;
|
||||
bool _clicert_allocated:1;
|
||||
bool _ssl_conf_allocated:1;
|
||||
bool _connect_transport: 1;
|
||||
bool _close_transport: 1;
|
||||
bool _handshake_completed: 1;
|
||||
bool _cacert_allocated: 1;
|
||||
bool _clicert_allocated: 1;
|
||||
bool _ssl_conf_allocated: 1;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -29,9 +29,9 @@
|
|||
*/
|
||||
|
||||
OnboardCellularInterface::OnboardCellularInterface(bool debug) :
|
||||
UARTCellularInterface(MDMTXD, MDMRXD, MDMDCD, MDMRTS,
|
||||
MDMCTS, MDMRI, MDMDTR, MDMDSR,
|
||||
MBED_CONF_PPP_CELL_IFACE_BAUD_RATE, MDM_PIN_POLARITY, debug)
|
||||
UARTCellularInterface(MDMTXD, MDMRXD, MDMDCD, MDMRTS,
|
||||
MDMCTS, MDMRI, MDMDTR, MDMDSR,
|
||||
MBED_CONF_PPP_CELL_IFACE_BAUD_RATE, MDM_PIN_POLARITY, debug)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ static bool get_MEID(ATCmdParser *at)
|
|||
{
|
||||
// Mobile equipment identifier
|
||||
bool success = at->send("AT+GSN")
|
||||
&& at->recv("%18[^\n]\nOK\n", dev_info.meid);
|
||||
&& at->recv("%18[^\n]\nOK\n", dev_info.meid);
|
||||
tr_debug("DevInfo: MEID=%s", dev_info.meid);
|
||||
return success;
|
||||
}
|
||||
|
|
@ -156,10 +156,12 @@ static nsapi_error_t do_sim_pin_check(ATCmdParser *at, const char *pin)
|
|||
success = at->send("AT+CLCK=\"SC\",1,\"%s\"", pin) && at->recv("OK");
|
||||
} else {
|
||||
/* use the SIM unlocked */
|
||||
success = at->send("AT+CLCK=\"SC\",0,\"%s\"",pin) && at->recv("OK");
|
||||
success = at->send("AT+CLCK=\"SC\",0,\"%s\"", pin) && at->recv("OK");
|
||||
}
|
||||
|
||||
if (success) return NSAPI_ERROR_OK;
|
||||
if (success) {
|
||||
return NSAPI_ERROR_OK;
|
||||
}
|
||||
|
||||
return NSAPI_ERROR_AUTH_FAILURE;
|
||||
}
|
||||
|
|
@ -170,12 +172,12 @@ static nsapi_error_t do_sim_pin_check(ATCmdParser *at, const char *pin)
|
|||
static nsapi_error_t do_change_sim_pin(ATCmdParser *at, const char *old_pin, const char *new_pin)
|
||||
{
|
||||
/* changes the SIM pin */
|
||||
bool success = at->send("AT+CPWD=\"SC\",\"%s\",\"%s\"", old_pin, new_pin) && at->recv("OK");
|
||||
if (success) {
|
||||
return NSAPI_ERROR_OK;
|
||||
}
|
||||
bool success = at->send("AT+CPWD=\"SC\",\"%s\",\"%s\"", old_pin, new_pin) && at->recv("OK");
|
||||
if (success) {
|
||||
return NSAPI_ERROR_OK;
|
||||
}
|
||||
|
||||
return NSAPI_ERROR_AUTH_FAILURE;
|
||||
return NSAPI_ERROR_AUTH_FAILURE;
|
||||
}
|
||||
|
||||
static void set_nwk_reg_status_csd(unsigned int status)
|
||||
|
|
@ -240,15 +242,15 @@ static void set_nwk_reg_status_psd(unsigned int status)
|
|||
|
||||
static bool is_registered_csd()
|
||||
{
|
||||
return (dev_info.reg_status_csd == CSD_REGISTERED) ||
|
||||
(dev_info.reg_status_csd == CSD_REGISTERED_ROAMING) ||
|
||||
(dev_info.reg_status_csd == CSD_CSFB_NOT_PREFERRED);
|
||||
return (dev_info.reg_status_csd == CSD_REGISTERED) ||
|
||||
(dev_info.reg_status_csd == CSD_REGISTERED_ROAMING) ||
|
||||
(dev_info.reg_status_csd == CSD_CSFB_NOT_PREFERRED);
|
||||
}
|
||||
|
||||
static bool is_registered_psd()
|
||||
{
|
||||
return (dev_info.reg_status_psd == PSD_REGISTERED) ||
|
||||
(dev_info.reg_status_psd == PSD_REGISTERED_ROAMING);
|
||||
(dev_info.reg_status_psd == PSD_REGISTERED_ROAMING);
|
||||
}
|
||||
|
||||
PPPCellularInterface::PPPCellularInterface(FileHandle *fh, bool debug)
|
||||
|
|
@ -335,70 +337,70 @@ void PPPCellularInterface::set_new_sim_pin(const char *new_pin)
|
|||
bool PPPCellularInterface::nwk_registration(uint8_t nwk_type)
|
||||
{
|
||||
bool success = false;
|
||||
bool registered = false;
|
||||
bool registered = false;
|
||||
|
||||
char str[35];
|
||||
int retcode;
|
||||
int retry_counter = 0;
|
||||
unsigned int reg_status;
|
||||
char str[35];
|
||||
int retcode;
|
||||
int retry_counter = 0;
|
||||
unsigned int reg_status;
|
||||
|
||||
success = nwk_type == PACKET_SWITCHED ?
|
||||
_at->send("AT+CGREG=0") :
|
||||
_at->send("AT+CREG=0") && _at->recv("OK\n");
|
||||
success = nwk_type == PACKET_SWITCHED ?
|
||||
_at->send("AT+CGREG=0") :
|
||||
_at->send("AT+CREG=0") && _at->recv("OK\n");
|
||||
|
||||
success = _at->send("AT+COPS=0") //initiate auto-registration
|
||||
&& _at->recv("OK");
|
||||
if (!success) {
|
||||
tr_error("Modem not responding.");
|
||||
return false;
|
||||
}
|
||||
success = _at->send("AT+COPS=0") //initiate auto-registration
|
||||
&& _at->recv("OK");
|
||||
if (!success) {
|
||||
tr_error("Modem not responding.");
|
||||
return false;
|
||||
}
|
||||
|
||||
//Network search
|
||||
//If not registered after 60 attempts, i.e., 30 seconds wait, give up
|
||||
tr_debug("Searching Network ...");
|
||||
//Network search
|
||||
//If not registered after 60 attempts, i.e., 30 seconds wait, give up
|
||||
tr_debug("Searching Network ...");
|
||||
|
||||
while (!registered) {
|
||||
while (!registered) {
|
||||
|
||||
if (retry_counter > 60) {
|
||||
success = false;
|
||||
goto give_up;
|
||||
}
|
||||
if (retry_counter > 60) {
|
||||
success = false;
|
||||
goto give_up;
|
||||
}
|
||||
|
||||
success = nwk_type == PACKET_SWITCHED ?
|
||||
_at->send("AT+CGREG?")
|
||||
&& _at->recv("+CGREG: %34[^\n]\n", str)
|
||||
&& _at->recv("OK\n") :
|
||||
_at->send("AT+CREG?")
|
||||
&& _at->recv("+CREG: %34[^\n]\n", str)
|
||||
&& _at->recv("OK\n");
|
||||
success = nwk_type == PACKET_SWITCHED ?
|
||||
_at->send("AT+CGREG?")
|
||||
&& _at->recv("+CGREG: %34[^\n]\n", str)
|
||||
&& _at->recv("OK\n") :
|
||||
_at->send("AT+CREG?")
|
||||
&& _at->recv("+CREG: %34[^\n]\n", str)
|
||||
&& _at->recv("OK\n");
|
||||
|
||||
retcode = sscanf(str, "%*u,%u", ®_status);
|
||||
retcode = sscanf(str, "%*u,%u", ®_status);
|
||||
|
||||
if (retcode >= 1) {
|
||||
if (nwk_type == PACKET_SWITCHED) {
|
||||
set_nwk_reg_status_psd(reg_status);
|
||||
if (is_registered_psd()) {
|
||||
registered = true;
|
||||
}
|
||||
} else if (nwk_type == CIRCUIT_SWITCHED) {
|
||||
set_nwk_reg_status_csd(reg_status);
|
||||
if (is_registered_csd()) {
|
||||
registered = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (retcode >= 1) {
|
||||
if (nwk_type == PACKET_SWITCHED) {
|
||||
set_nwk_reg_status_psd(reg_status);
|
||||
if (is_registered_psd()) {
|
||||
registered = true;
|
||||
}
|
||||
} else if (nwk_type == CIRCUIT_SWITCHED) {
|
||||
set_nwk_reg_status_csd(reg_status);
|
||||
if (is_registered_csd()) {
|
||||
registered = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (registered) {
|
||||
break;
|
||||
} else {
|
||||
wait_ms(500);
|
||||
}
|
||||
if (registered) {
|
||||
break;
|
||||
} else {
|
||||
wait_ms(500);
|
||||
}
|
||||
|
||||
retry_counter++;
|
||||
}
|
||||
retry_counter++;
|
||||
}
|
||||
|
||||
give_up:
|
||||
return registered;
|
||||
give_up:
|
||||
return registered;
|
||||
}
|
||||
|
||||
bool PPPCellularInterface::is_connected()
|
||||
|
|
@ -444,7 +446,8 @@ nsapi_error_t PPPCellularInterface::initialize_sim_card()
|
|||
return nsapi_error;
|
||||
}
|
||||
|
||||
void PPPCellularInterface::set_sim_pin(const char *pin) {
|
||||
void PPPCellularInterface::set_sim_pin(const char *pin)
|
||||
{
|
||||
/* overwrite the default pin by user provided pin */
|
||||
_pin = pin;
|
||||
}
|
||||
|
|
@ -473,11 +476,11 @@ nsapi_error_t PPPCellularInterface::setup_context_and_credentials()
|
|||
retry_without_dual_stack:
|
||||
#endif
|
||||
success = _at->send("AT"
|
||||
"+FCLASS=0;" // set to connection (ATD) to data mode
|
||||
"+CGDCONT=" CTX ",\"%s\",\"%s%s\"",
|
||||
pdp_type, auth, _apn
|
||||
)
|
||||
&& _at->recv("OK");
|
||||
"+FCLASS=0;" // set to connection (ATD) to data mode
|
||||
"+CGDCONT=" CTX ",\"%s\",\"%s%s\"",
|
||||
pdp_type, auth, _apn
|
||||
)
|
||||
&& _at->recv("OK");
|
||||
|
||||
#if NSAPI_PPP_IPV4_AVAILABLE && NSAPI_PPP_IPV6_AVAILABLE
|
||||
if (_stack == IPV4V6_STACK) {
|
||||
|
|
@ -513,7 +516,7 @@ void PPPCellularInterface::setup_at_parser()
|
|||
}
|
||||
|
||||
_at = new ATCmdParser(_fh, OUTPUT_ENTER_KEY, AT_PARSER_BUFFER_SIZE, AT_PARSER_TIMEOUT,
|
||||
_debug_trace_on ? true : false);
|
||||
_debug_trace_on ? true : false);
|
||||
|
||||
/* Error cases, out of band handling */
|
||||
_at->oob("ERROR", callback(parser_abort, _at));
|
||||
|
|
@ -583,7 +586,7 @@ nsapi_error_t PPPCellularInterface::connect()
|
|||
}
|
||||
|
||||
do {
|
||||
retry_init:
|
||||
retry_init:
|
||||
|
||||
retcode = NSAPI_ERROR_OK;
|
||||
|
||||
|
|
@ -608,12 +611,12 @@ nsapi_error_t PPPCellularInterface::connect()
|
|||
}
|
||||
|
||||
success = nwk_registration(PACKET_SWITCHED) //perform network registration
|
||||
&& get_CCID(_at)//get integrated circuit ID of the SIM
|
||||
&& get_IMSI(_at)//get international mobile subscriber information
|
||||
&& get_IMEI(_at)//get international mobile equipment identifier
|
||||
&& get_MEID(_at)//its same as IMEI
|
||||
&& set_CMGF(_at)//set message format for SMS
|
||||
&& set_CNMI(_at);//set new SMS indication
|
||||
&& get_CCID(_at)//get integrated circuit ID of the SIM
|
||||
&& get_IMSI(_at)//get international mobile subscriber information
|
||||
&& get_IMEI(_at)//get international mobile equipment identifier
|
||||
&& get_MEID(_at)//its same as IMEI
|
||||
&& set_CMGF(_at)//set message format for SMS
|
||||
&& set_CNMI(_at);//set new SMS indication
|
||||
|
||||
if (!success) {
|
||||
retcode = NSAPI_ERROR_NO_CONNECTION;
|
||||
|
|
@ -712,7 +715,7 @@ nsapi_error_t PPPCellularInterface::connect()
|
|||
_connect_status = NSAPI_STATUS_GLOBAL_UP;
|
||||
}
|
||||
} while ((_connect_status == NSAPI_STATUS_CONNECTING && _connect_is_blocking) &&
|
||||
apn_config && *apn_config);
|
||||
apn_config && *apn_config);
|
||||
|
||||
|
||||
if (retcode != NSAPI_ERROR_OK) {
|
||||
|
|
|
|||
|
|
@ -30,14 +30,14 @@ class NetworkStack;
|
|||
* UBX-13001820 - AT Commands Example Application Note (Section 4.1.4.5)
|
||||
*/
|
||||
typedef enum {
|
||||
GSM=0,
|
||||
COMPACT_GSM=1,
|
||||
UTRAN=2,
|
||||
EDGE=3,
|
||||
HSDPA=4,
|
||||
HSUPA=5,
|
||||
HSDPA_HSUPA=6,
|
||||
LTE=7
|
||||
GSM = 0,
|
||||
COMPACT_GSM = 1,
|
||||
UTRAN = 2,
|
||||
EDGE = 3,
|
||||
HSDPA = 4,
|
||||
HSUPA = 5,
|
||||
HSDPA_HSUPA = 6,
|
||||
LTE = 7
|
||||
} radio_access_nwk_type;
|
||||
|
||||
/**
|
||||
|
|
@ -45,7 +45,7 @@ typedef enum {
|
|||
* to connect.
|
||||
*/
|
||||
typedef enum {
|
||||
CIRCUIT_SWITCHED=0,
|
||||
CIRCUIT_SWITCHED = 0,
|
||||
PACKET_SWITCHED
|
||||
} nwk_type;
|
||||
|
||||
|
|
@ -54,15 +54,15 @@ typedef enum {
|
|||
* UBX-13001820 - AT Commands Example Application Note (Section 7.10.3)
|
||||
*/
|
||||
typedef enum {
|
||||
CSD_NOT_REGISTERED_NOT_SEARCHING=0,
|
||||
CSD_REGISTERED=1,
|
||||
CSD_NOT_REGISTERED_SEARCHING=2,
|
||||
CSD_REGISTRATION_DENIED=3,
|
||||
CSD_UNKNOWN_COVERAGE=4,
|
||||
CSD_REGISTERED_ROAMING=5,
|
||||
CSD_SMS_ONLY=6,
|
||||
CSD_SMS_ONLY_ROAMING=7,
|
||||
CSD_CSFB_NOT_PREFERRED=9
|
||||
CSD_NOT_REGISTERED_NOT_SEARCHING = 0,
|
||||
CSD_REGISTERED = 1,
|
||||
CSD_NOT_REGISTERED_SEARCHING = 2,
|
||||
CSD_REGISTRATION_DENIED = 3,
|
||||
CSD_UNKNOWN_COVERAGE = 4,
|
||||
CSD_REGISTERED_ROAMING = 5,
|
||||
CSD_SMS_ONLY = 6,
|
||||
CSD_SMS_ONLY_ROAMING = 7,
|
||||
CSD_CSFB_NOT_PREFERRED = 9
|
||||
} nwk_registration_status_csd;
|
||||
|
||||
/**
|
||||
|
|
@ -70,20 +70,20 @@ typedef enum {
|
|||
* UBX-13001820 - AT Commands Example Application Note (Section 18.27.3)
|
||||
*/
|
||||
typedef enum {
|
||||
PSD_NOT_REGISTERED_NOT_SEARCHING=0,
|
||||
PSD_REGISTERED=1,
|
||||
PSD_NOT_REGISTERED_SEARCHING=2,
|
||||
PSD_REGISTRATION_DENIED=3,
|
||||
PSD_UNKNOWN_COVERAGE=4,
|
||||
PSD_REGISTERED_ROAMING=5,
|
||||
PSD_EMERGENCY_SERVICES_ONLY=8
|
||||
PSD_NOT_REGISTERED_NOT_SEARCHING = 0,
|
||||
PSD_REGISTERED = 1,
|
||||
PSD_NOT_REGISTERED_SEARCHING = 2,
|
||||
PSD_REGISTRATION_DENIED = 3,
|
||||
PSD_UNKNOWN_COVERAGE = 4,
|
||||
PSD_REGISTERED_ROAMING = 5,
|
||||
PSD_EMERGENCY_SERVICES_ONLY = 8
|
||||
} nwk_registration_status_psd;
|
||||
|
||||
typedef struct {
|
||||
char ccid[20+1]; //!< Integrated Circuit Card ID
|
||||
char imsi[15+1]; //!< International Mobile Station Identity
|
||||
char imei[15+1]; //!< International Mobile Equipment Identity
|
||||
char meid[18+1]; //!< Mobile Equipment IDentifier
|
||||
char ccid[20 + 1]; //!< Integrated Circuit Card ID
|
||||
char imsi[15 + 1]; //!< International Mobile Station Identity
|
||||
char imei[15 + 1]; //!< International Mobile Equipment Identity
|
||||
char meid[18 + 1]; //!< Mobile Equipment IDentifier
|
||||
int flags;
|
||||
radio_access_nwk_type rat;
|
||||
nwk_registration_status_csd reg_status_csd;
|
||||
|
|
@ -135,7 +135,7 @@ public:
|
|||
*/
|
||||
MBED_DEPRECATED_SINCE("mbed-os-5.9", "This API will be deprecated, use mbed-os/features/cellular/easy_cellular/EasyCellularConnection.h instead.")
|
||||
virtual void set_credentials(const char *apn, const char *uname = 0,
|
||||
const char *pwd = 0);
|
||||
const char *pwd = 0);
|
||||
|
||||
/** Set the pin code for SIM card
|
||||
*
|
||||
|
|
@ -403,7 +403,7 @@ protected:
|
|||
*
|
||||
* @return true if registration is successful
|
||||
*/
|
||||
bool nwk_registration(uint8_t nwk_type=PACKET_SWITCHED);
|
||||
bool nwk_registration(uint8_t nwk_type = PACKET_SWITCHED);
|
||||
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -86,10 +86,10 @@ static void unlock();
|
|||
* Verification tests for a successful porting
|
||||
* These tests must pass:
|
||||
*
|
||||
* test_udp_echo()
|
||||
* test_tcp_echo_async
|
||||
* test_connect_credentials
|
||||
* test_connect_preset_credentials
|
||||
* test_udp_echo()
|
||||
* test_tcp_echo_async
|
||||
* test_connect_credentials
|
||||
* test_connect_preset_credentials
|
||||
*/
|
||||
|
||||
/**
|
||||
|
|
@ -148,7 +148,7 @@ void test_tcp_echo_async()
|
|||
TEST_ASSERT(do_connect(&driver) == 0);
|
||||
|
||||
TEST_ASSERT(
|
||||
driver.gethostbyname(MBED_CONF_APP_ECHO_SERVER, &host_address) == 0);
|
||||
driver.gethostbyname(MBED_CONF_APP_ECHO_SERVER, &host_address) == 0);
|
||||
host_address.set_port(MBED_CONF_APP_ECHO_TCP_PORT);
|
||||
|
||||
tr_debug("TCP: Server %s address: %s on port %d.",
|
||||
|
|
@ -172,7 +172,7 @@ void test_tcp_echo_async()
|
|||
drop_connection(&driver);
|
||||
|
||||
tr_debug("TCP packets of size up to %d byte(s) echoed asynchronously and successfully.",
|
||||
MBED_CONF_APP_TCP_MAX_PACKET_SIZE);
|
||||
MBED_CONF_APP_TCP_MAX_PACKET_SIZE);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -196,7 +196,7 @@ void test_connect_preset_credentials()
|
|||
driver.disconnect();
|
||||
driver.set_sim_pin(MBED_CONF_APP_DEFAULT_PIN);
|
||||
driver.set_credentials(MBED_CONF_APP_APN, MBED_CONF_APP_USERNAME,
|
||||
MBED_CONF_APP_PASSWORD);
|
||||
MBED_CONF_APP_PASSWORD);
|
||||
int num_retries = 0;
|
||||
nsapi_error_t err = NSAPI_ERROR_OK;
|
||||
while (!driver.is_connected()) {
|
||||
|
|
@ -226,10 +226,11 @@ utest::v1::status_t test_setup(const size_t number_of_cases)
|
|||
*/
|
||||
Case cases[] = { Case("UDP echo test", test_udp_echo),
|
||||
#if MBED_CONF_LWIP_TCP_ENABLED
|
||||
Case("TCP async echo test", test_tcp_echo_async),
|
||||
Case("TCP async echo test", test_tcp_echo_async),
|
||||
#endif
|
||||
Case("Connect with credentials", test_connect_credentials),
|
||||
Case("Connect with preset credentials", test_connect_preset_credentials) };
|
||||
Case("Connect with credentials", test_connect_credentials),
|
||||
Case("Connect with preset credentials", test_connect_preset_credentials)
|
||||
};
|
||||
|
||||
Specification specification(test_setup, cases);
|
||||
|
||||
|
|
@ -255,7 +256,7 @@ static nsapi_error_t do_connect(OnboardCellularInterface *iface)
|
|||
nsapi_error_t err = NSAPI_ERROR_OK;
|
||||
while (!iface->is_connected()) {
|
||||
err = driver.connect(MBED_CONF_APP_DEFAULT_PIN, MBED_CONF_APP_APN,
|
||||
MBED_CONF_APP_USERNAME, MBED_CONF_APP_PASSWORD);
|
||||
MBED_CONF_APP_USERNAME, MBED_CONF_APP_PASSWORD);
|
||||
if (err == NSAPI_ERROR_OK || num_retries > MBED_CONF_APP_MAX_RETRIES) {
|
||||
break;
|
||||
}
|
||||
|
|
@ -284,14 +285,14 @@ static int fix(int size, int limit)
|
|||
static void do_udp_echo(UDPSocket *sock, SocketAddress *host_address, int size)
|
||||
{
|
||||
bool success = false;
|
||||
void * recv_data = malloc(size);
|
||||
void *recv_data = malloc(size);
|
||||
TEST_ASSERT(recv_data != NULL);
|
||||
|
||||
// Retry this a few times, don't want to fail due to a flaky link
|
||||
for (int x = 0; !success && (x < NUM_UDP_RETRIES); x++) {
|
||||
tr_debug("Echo testing UDP packet size %d byte(s), try %d.", size, x + 1);
|
||||
if ((sock->sendto(*host_address, (void*) test_data, size) == size)
|
||||
&& (sock->recvfrom(host_address, recv_data, size) == size)) {
|
||||
if ((sock->sendto(*host_address, (void *) test_data, size) == size)
|
||||
&& (sock->recvfrom(host_address, recv_data, size) == size)) {
|
||||
TEST_ASSERT(memcmp(test_data, recv_data, size) == 0);
|
||||
success = true;
|
||||
}
|
||||
|
|
@ -340,7 +341,7 @@ static void async_cb(bool *callback_triggered)
|
|||
static void do_tcp_echo_async(TCPSocket *sock, int size,
|
||||
bool *callback_triggered)
|
||||
{
|
||||
void * recv_data = malloc(size);
|
||||
void *recv_data = malloc(size);
|
||||
int recv_size = 0;
|
||||
int remaining_size;
|
||||
int x, y;
|
||||
|
|
@ -370,7 +371,7 @@ static void do_tcp_echo_async(TCPSocket *sock, int size,
|
|||
y = memcmp(test_data, recv_data, size);
|
||||
if (y != 0) {
|
||||
tr_debug("Sent %d, |%*.*s|", size, size, size, test_data);
|
||||
tr_debug("Rcvd %d, |%*.*s|", size, size, size, (char * ) recv_data);
|
||||
tr_debug("Rcvd %d, |%*.*s|", size, size, size, (char *) recv_data);
|
||||
// We do not assert a failure here because ublox TCP echo server doesn't send
|
||||
// back original data. It actually constructs a ublox message string. They need to fix it as
|
||||
// at the minute in case of TCP, their server is not behaving like a echo TCP server.
|
||||
|
|
@ -386,9 +387,9 @@ static void do_tcp_echo_async(TCPSocket *sock, int size,
|
|||
*/
|
||||
static void use_connection(OnboardCellularInterface *driver)
|
||||
{
|
||||
const char * ip_address = driver->get_ip_address();
|
||||
const char * net_mask = driver->get_netmask();
|
||||
const char * gateway = driver->get_gateway();
|
||||
const char *ip_address = driver->get_ip_address();
|
||||
const char *net_mask = driver->get_netmask();
|
||||
const char *gateway = driver->get_gateway();
|
||||
|
||||
TEST_ASSERT(driver->is_connected());
|
||||
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@
|
|||
|
||||
UARTCellularInterface::UARTCellularInterface(PinName txd, PinName rxd, PinName dcd, PinName rts, PinName cts, PinName ri,
|
||||
PinName dtr, PinName dsr, int baud, bool active_high, bool debug) :
|
||||
PPPCellularInterface(&_serial, debug),
|
||||
_serial(txd, rxd, baud)
|
||||
PPPCellularInterface(&_serial, debug),
|
||||
_serial(txd, rxd, baud)
|
||||
{
|
||||
_dcd_pin = dcd;
|
||||
_active_high = active_high;
|
||||
|
|
|
|||
|
|
@ -42,9 +42,9 @@ public:
|
|||
*/
|
||||
MBED_DEPRECATED_SINCE("mbed-os-5.9", "This API will be deprecated, use mbed-os/features/cellular/easy_cellular/EasyCellularConnection.h instead.")
|
||||
UARTCellularInterface(PinName tx, PinName rx, PinName dcd = NC, PinName rts = NC, PinName cts = NC, PinName ri = NC,
|
||||
PinName dtr = NC, PinName dsr = NC, int baud = MBED_CONF_PPP_CELL_IFACE_BAUD_RATE,
|
||||
bool active_high = false,
|
||||
bool debug = false);
|
||||
PinName dtr = NC, PinName dsr = NC, int baud = MBED_CONF_PPP_CELL_IFACE_BAUD_RATE,
|
||||
bool active_high = false,
|
||||
bool debug = false);
|
||||
|
||||
/** Destructor
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue