netsocket: fix astyle coding style

pull/8591/head
Martin Kojtal 2018-10-30 15:11:04 +00:00
parent 884a7748b2
commit 63160d8c5b
12 changed files with 203 additions and 190 deletions

View File

@ -10,6 +10,7 @@ features/storage/FEATURE_STORAGE
features/frameworks features/frameworks
features/FEATURE_BLE/targets features/FEATURE_BLE/targets
features/unsupported/ features/unsupported/
features/netsocket/emac-drivers
hal/storage_abstraction hal/storage_abstraction
features/nanostack/coap-service features/nanostack/coap-service
features/nanostack/sal-stack-nanostack features/nanostack/sal-stack-nanostack

View File

@ -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, _socket = socket,
_stack = parent->_stack; _stack = parent->_stack;

View File

@ -70,12 +70,14 @@ public:
* @param stack Network stack as target for socket * @param stack Network stack as target for socket
* @return 0 on success, negative error code on failure * @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); return tcp_socket.open(stack);
} }
template <typename S> template <typename S>
nsapi_error_t open(S *stack) { nsapi_error_t open(S *stack)
{
return open(nsapi_create_stack(stack)); return open(nsapi_create_stack(stack));
} }

View File

@ -33,8 +33,8 @@ TLSSocketWrapper::TLSSocketWrapper(Socket *transport, const char *hostname, cont
_clicert(NULL), _clicert(NULL),
#endif #endif
_ssl_conf(NULL), _ssl_conf(NULL),
_connect_transport(control==TRANSPORT_CONNECT || 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), _close_transport(control == TRANSPORT_CLOSE || control == TRANSPORT_CONNECT_AND_CLOSE),
_handshake_completed(false), _handshake_completed(false),
_cacert_allocated(false), _cacert_allocated(false),
_clicert_allocated(false), _clicert_allocated(false),
@ -50,7 +50,8 @@ TLSSocketWrapper::TLSSocketWrapper(Socket *transport, const char *hostname, cont
} }
} }
TLSSocketWrapper::~TLSSocketWrapper() { TLSSocketWrapper::~TLSSocketWrapper()
{
if (_transport) { if (_transport) {
close(); close();
} }
@ -120,13 +121,13 @@ nsapi_error_t TLSSocketWrapper::set_client_cert_key(const void *client_cert, siz
int ret; int ret;
mbedtls_x509_crt *crt = new mbedtls_x509_crt; mbedtls_x509_crt *crt = new mbedtls_x509_crt;
mbedtls_x509_crt_init(crt); mbedtls_x509_crt_init(crt);
if((ret = mbedtls_x509_crt_parse(crt, static_cast<const unsigned char *>(client_cert), if ((ret = mbedtls_x509_crt_parse(crt, static_cast<const unsigned char *>(client_cert),
client_cert_len)) != 0) { client_cert_len)) != 0) {
print_mbedtls_error("mbedtls_x509_crt_parse", ret); print_mbedtls_error("mbedtls_x509_crt_parse", ret);
return NSAPI_ERROR_PARAMETER; return NSAPI_ERROR_PARAMETER;
} }
mbedtls_pk_init(&_pkctx); mbedtls_pk_init(&_pkctx);
if((ret = mbedtls_pk_parse_key(&_pkctx, static_cast<const unsigned char *>(client_private_key_pem), if ((ret = mbedtls_pk_parse_key(&_pkctx, static_cast<const unsigned char *>(client_private_key_pem),
client_private_key_len, NULL, 0)) != 0) { client_private_key_len, NULL, 0)) != 0) {
print_mbedtls_error("mbedtls_pk_parse_key", ret); print_mbedtls_error("mbedtls_pk_parse_key", ret);
return NSAPI_ERROR_PARAMETER; 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; nsapi_error_t _error;
const char DRBG_PERS[] = "mbed TLS client"; const char DRBG_PERS[] = "mbed TLS client";
@ -154,7 +156,7 @@ nsapi_error_t TLSSocketWrapper::do_handshake() {
int ret; int ret;
if ((ret = mbedtls_ctr_drbg_seed(&_ctr_drbg, mbedtls_entropy_func, &_entropy, if ((ret = mbedtls_ctr_drbg_seed(&_ctr_drbg, mbedtls_entropy_func, &_entropy,
(const unsigned char *) DRBG_PERS, (const unsigned char *) DRBG_PERS,
sizeof (DRBG_PERS))) != 0) { sizeof(DRBG_PERS))) != 0) {
print_mbedtls_error("mbedtls_crt_drbg_init", ret); print_mbedtls_error("mbedtls_crt_drbg_init", ret);
_error = ret; _error = ret;
return _error; return _error;
@ -177,7 +179,7 @@ nsapi_error_t TLSSocketWrapper::do_handshake() {
return _error; 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 #ifdef MBEDTLS_X509_CRT_PARSE_C
/* Start the handshake, the rest will be done in onReceive() */ /* Start the handshake, the rest will be done in onReceive() */
@ -205,13 +207,13 @@ nsapi_error_t TLSSocketWrapper::do_handshake() {
#ifdef MBEDTLS_X509_CRT_PARSE_C #ifdef MBEDTLS_X509_CRT_PARSE_C
/* Prints the server certificate and verify it. */ /* Prints the server certificate and verify it. */
const size_t buf_size = 1024; 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_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); tr_debug("Server certificate:\r\n%s\r\n", buf);
uint32_t flags = mbedtls_ssl_get_verify_result(&_ssl); uint32_t flags = mbedtls_ssl_get_verify_result(&_ssl);
if( flags != 0 ) { if (flags != 0) {
/* Verification failed. */ /* Verification failed. */
mbedtls_x509_crt_verify_info(buf, buf_size, "\r ! ", flags); mbedtls_x509_crt_verify_info(buf, buf_size, "\r ! ", flags);
tr_error("Certificate verification failed:\r\n%s", buf); 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; int ret;
if (!_transport) { if (!_transport) {
@ -255,7 +258,8 @@ nsapi_size_or_error_t TLSSocketWrapper::sendto(const SocketAddress &, const void
return send(data, size); 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; int ret;
if (!_transport) { if (!_transport) {
@ -287,7 +291,8 @@ nsapi_size_or_error_t TLSSocketWrapper::recvfrom(SocketAddress *address, void *d
return recv(data, size); 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 #ifdef MBEDTLS_ERROR_C
char *buf = new char[128]; char *buf = new char[128];
mbedtls_strerror(err, buf, 128); mbedtls_strerror(err, buf, 128);
@ -309,8 +314,8 @@ void TLSSocketWrapper::my_debug(void *ctx, int level, const char *file, int line
(void) ctx; (void) ctx;
/* Extract basename from file */ /* Extract basename from file */
for(p = basename = file; *p != '\0'; p++) { for (p = basename = file; *p != '\0'; p++) {
if(*p == '/' || *p == '\\') { if (*p == '/' || *p == '\\') {
basename = p + 1; 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); mbedtls_x509_crt_info(buf, buf_size - 1, " ", crt);
tr_debug("%s", buf); tr_debug("%s", buf);
if (*flags == 0) if (*flags == 0) {
tr_info("No verification issue for this certificate\n"); tr_info("No verification issue for this certificate\n");
else } else {
{
mbedtls_x509_crt_verify_info(buf, buf_size, " ! ", *flags); mbedtls_x509_crt_verify_info(buf, buf_size, " ! ", *flags);
tr_info("%s\n", buf); 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 */ #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; int recv;
TLSSocketWrapper *my = static_cast<TLSSocketWrapper *>(ctx); 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) { if (NSAPI_ERROR_WOULD_BLOCK == recv) {
return MBEDTLS_ERR_SSL_WANT_READ; return MBEDTLS_ERR_SSL_WANT_READ;
} else if(recv < 0) { } else if (recv < 0) {
tr_error("Socket recv error %d", recv); tr_error("Socket recv error %d", recv);
} }
// Propagate also Socket errors to SSL, it allows negative error codes to be returned here. // Propagate also Socket errors to SSL, it allows negative error codes to be returned here.
return recv; 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; int size = -1;
TLSSocketWrapper *my = static_cast<TLSSocketWrapper *>(ctx); 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) { if (NSAPI_ERROR_WOULD_BLOCK == size) {
return MBEDTLS_ERR_SSL_WANT_WRITE; return MBEDTLS_ERR_SSL_WANT_WRITE;
} else if(size < 0){ } else if (size < 0) {
tr_error("Socket send error %d", size); tr_error("Socket send error %d", size);
} }
// Propagate also Socket errors to SSL, it allows negative error codes to be returned here. // Propagate also Socket errors to SSL, it allows negative error codes to be returned here.
return size; return size;
} }
#ifdef MBEDTLS_X509_CRT_PARSE_C #ifdef MBEDTLS_X509_CRT_PARSE_C
@ -401,7 +407,7 @@ int TLSSocketWrapper::set_own_cert(mbedtls_x509_crt *crt)
} }
_clicert = crt; _clicert = crt;
if (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); print_mbedtls_error("mbedtls_ssl_conf_own_cert", ret);
} }
} }
@ -442,7 +448,7 @@ mbedtls_ssl_config *TLSSocketWrapper::get_ssl_config()
MBEDTLS_SSL_PRESET_DEFAULT)) != 0) { MBEDTLS_SSL_PRESET_DEFAULT)) != 0) {
print_mbedtls_error("mbedtls_ssl_config_defaults", ret); print_mbedtls_error("mbedtls_ssl_config_defaults", ret);
set_ssl_config(NULL); 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; return NULL;
} }
/* It is possible to disable authentication by passing /* It is possible to disable authentication by passing

View File

@ -219,17 +219,17 @@ private:
Socket *_transport; Socket *_transport;
#ifdef MBEDTLS_X509_CRT_PARSE_C #ifdef MBEDTLS_X509_CRT_PARSE_C
mbedtls_x509_crt* _cacert; mbedtls_x509_crt *_cacert;
mbedtls_x509_crt* _clicert; mbedtls_x509_crt *_clicert;
#endif #endif
mbedtls_ssl_config* _ssl_conf; mbedtls_ssl_config *_ssl_conf;
bool _connect_transport:1; bool _connect_transport: 1;
bool _close_transport:1; bool _close_transport: 1;
bool _handshake_completed:1; bool _handshake_completed: 1;
bool _cacert_allocated:1; bool _cacert_allocated: 1;
bool _clicert_allocated:1; bool _clicert_allocated: 1;
bool _ssl_conf_allocated:1; bool _ssl_conf_allocated: 1;
}; };

View File

@ -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"); success = at->send("AT+CLCK=\"SC\",1,\"%s\"", pin) && at->recv("OK");
} else { } else {
/* use the SIM unlocked */ /* 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; return NSAPI_ERROR_AUTH_FAILURE;
} }
@ -397,7 +399,7 @@ bool PPPCellularInterface::nwk_registration(uint8_t nwk_type)
retry_counter++; retry_counter++;
} }
give_up: give_up:
return registered; return registered;
} }
@ -444,7 +446,8 @@ nsapi_error_t PPPCellularInterface::initialize_sim_card()
return nsapi_error; 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 */ /* overwrite the default pin by user provided pin */
_pin = pin; _pin = pin;
} }
@ -583,7 +586,7 @@ nsapi_error_t PPPCellularInterface::connect()
} }
do { do {
retry_init: retry_init:
retcode = NSAPI_ERROR_OK; retcode = NSAPI_ERROR_OK;

View File

@ -30,14 +30,14 @@ class NetworkStack;
* UBX-13001820 - AT Commands Example Application Note (Section 4.1.4.5) * UBX-13001820 - AT Commands Example Application Note (Section 4.1.4.5)
*/ */
typedef enum { typedef enum {
GSM=0, GSM = 0,
COMPACT_GSM=1, COMPACT_GSM = 1,
UTRAN=2, UTRAN = 2,
EDGE=3, EDGE = 3,
HSDPA=4, HSDPA = 4,
HSUPA=5, HSUPA = 5,
HSDPA_HSUPA=6, HSDPA_HSUPA = 6,
LTE=7 LTE = 7
} radio_access_nwk_type; } radio_access_nwk_type;
/** /**
@ -45,7 +45,7 @@ typedef enum {
* to connect. * to connect.
*/ */
typedef enum { typedef enum {
CIRCUIT_SWITCHED=0, CIRCUIT_SWITCHED = 0,
PACKET_SWITCHED PACKET_SWITCHED
} nwk_type; } nwk_type;
@ -54,15 +54,15 @@ typedef enum {
* UBX-13001820 - AT Commands Example Application Note (Section 7.10.3) * UBX-13001820 - AT Commands Example Application Note (Section 7.10.3)
*/ */
typedef enum { typedef enum {
CSD_NOT_REGISTERED_NOT_SEARCHING=0, CSD_NOT_REGISTERED_NOT_SEARCHING = 0,
CSD_REGISTERED=1, CSD_REGISTERED = 1,
CSD_NOT_REGISTERED_SEARCHING=2, CSD_NOT_REGISTERED_SEARCHING = 2,
CSD_REGISTRATION_DENIED=3, CSD_REGISTRATION_DENIED = 3,
CSD_UNKNOWN_COVERAGE=4, CSD_UNKNOWN_COVERAGE = 4,
CSD_REGISTERED_ROAMING=5, CSD_REGISTERED_ROAMING = 5,
CSD_SMS_ONLY=6, CSD_SMS_ONLY = 6,
CSD_SMS_ONLY_ROAMING=7, CSD_SMS_ONLY_ROAMING = 7,
CSD_CSFB_NOT_PREFERRED=9 CSD_CSFB_NOT_PREFERRED = 9
} nwk_registration_status_csd; } nwk_registration_status_csd;
/** /**
@ -70,20 +70,20 @@ typedef enum {
* UBX-13001820 - AT Commands Example Application Note (Section 18.27.3) * UBX-13001820 - AT Commands Example Application Note (Section 18.27.3)
*/ */
typedef enum { typedef enum {
PSD_NOT_REGISTERED_NOT_SEARCHING=0, PSD_NOT_REGISTERED_NOT_SEARCHING = 0,
PSD_REGISTERED=1, PSD_REGISTERED = 1,
PSD_NOT_REGISTERED_SEARCHING=2, PSD_NOT_REGISTERED_SEARCHING = 2,
PSD_REGISTRATION_DENIED=3, PSD_REGISTRATION_DENIED = 3,
PSD_UNKNOWN_COVERAGE=4, PSD_UNKNOWN_COVERAGE = 4,
PSD_REGISTERED_ROAMING=5, PSD_REGISTERED_ROAMING = 5,
PSD_EMERGENCY_SERVICES_ONLY=8 PSD_EMERGENCY_SERVICES_ONLY = 8
} nwk_registration_status_psd; } nwk_registration_status_psd;
typedef struct { typedef struct {
char ccid[20+1]; //!< Integrated Circuit Card ID char ccid[20 + 1]; //!< Integrated Circuit Card ID
char imsi[15+1]; //!< International Mobile Station Identity char imsi[15 + 1]; //!< International Mobile Station Identity
char imei[15+1]; //!< International Mobile Equipment Identity char imei[15 + 1]; //!< International Mobile Equipment Identity
char meid[18+1]; //!< Mobile Equipment IDentifier char meid[18 + 1]; //!< Mobile Equipment IDentifier
int flags; int flags;
radio_access_nwk_type rat; radio_access_nwk_type rat;
nwk_registration_status_csd reg_status_csd; nwk_registration_status_csd reg_status_csd;
@ -403,7 +403,7 @@ protected:
* *
* @return true if registration is successful * @return true if registration is successful
*/ */
bool nwk_registration(uint8_t nwk_type=PACKET_SWITCHED); bool nwk_registration(uint8_t nwk_type = PACKET_SWITCHED);
}; };

View File

@ -229,7 +229,8 @@ Case cases[] = { Case("UDP echo test", test_udp_echo),
Case("TCP async echo test", test_tcp_echo_async), Case("TCP async echo test", test_tcp_echo_async),
#endif #endif
Case("Connect with credentials", test_connect_credentials), Case("Connect with credentials", test_connect_credentials),
Case("Connect with preset credentials", test_connect_preset_credentials) }; Case("Connect with preset credentials", test_connect_preset_credentials)
};
Specification specification(test_setup, cases); Specification specification(test_setup, cases);
@ -284,13 +285,13 @@ static int fix(int size, int limit)
static void do_udp_echo(UDPSocket *sock, SocketAddress *host_address, int size) static void do_udp_echo(UDPSocket *sock, SocketAddress *host_address, int size)
{ {
bool success = false; bool success = false;
void * recv_data = malloc(size); void *recv_data = malloc(size);
TEST_ASSERT(recv_data != NULL); TEST_ASSERT(recv_data != NULL);
// Retry this a few times, don't want to fail due to a flaky link // 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++) { 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); 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) if ((sock->sendto(*host_address, (void *) test_data, size) == size)
&& (sock->recvfrom(host_address, recv_data, size) == size)) { && (sock->recvfrom(host_address, recv_data, size) == size)) {
TEST_ASSERT(memcmp(test_data, recv_data, size) == 0); TEST_ASSERT(memcmp(test_data, recv_data, size) == 0);
success = true; success = true;
@ -340,7 +341,7 @@ static void async_cb(bool *callback_triggered)
static void do_tcp_echo_async(TCPSocket *sock, int size, static void do_tcp_echo_async(TCPSocket *sock, int size,
bool *callback_triggered) bool *callback_triggered)
{ {
void * recv_data = malloc(size); void *recv_data = malloc(size);
int recv_size = 0; int recv_size = 0;
int remaining_size; int remaining_size;
int x, y; int x, y;
@ -370,7 +371,7 @@ static void do_tcp_echo_async(TCPSocket *sock, int size,
y = memcmp(test_data, recv_data, size); y = memcmp(test_data, recv_data, size);
if (y != 0) { if (y != 0) {
tr_debug("Sent %d, |%*.*s|", size, size, size, test_data); 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 // 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 // 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. // 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) static void use_connection(OnboardCellularInterface *driver)
{ {
const char * ip_address = driver->get_ip_address(); const char *ip_address = driver->get_ip_address();
const char * net_mask = driver->get_netmask(); const char *net_mask = driver->get_netmask();
const char * gateway = driver->get_gateway(); const char *gateway = driver->get_gateway();
TEST_ASSERT(driver->is_connected()); TEST_ASSERT(driver->is_connected());