Skip to content

Commit f468c9b

Browse files
authored
Merge pull request #12830 from kivaisan/fix_bg96_offload_dns_query
Cellular: Fix BG96 offloaded DNS query for new API
2 parents 27405bf + fe98dbe commit f468c9b

File tree

5 files changed

+18
-4
lines changed

5 files changed

+18
-4
lines changed

TESTS/netsocket/dns/asynchronous_dns_multi_ip.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
* limitations under the License.
1616
*/
1717

18-
#if defined(MBED_CONF_RTOS_PRESENT)
18+
#if defined(MBED_CONF_RTOS_PRESENT) && !defined(MBED_CONF_CELLULAR_OFFLOAD_DNS_QUERIES)
1919

2020
#include "mbed.h"
2121
#include "greentea-client/test_env.h"
@@ -118,4 +118,4 @@ void ASYNCHRONOUS_DNS_MULTI_IP()
118118
TEST_ASSERT_EQUAL(0, result_dns_failure);
119119
TEST_ASSERT_EQUAL(0, result_exp_timeout);
120120
}
121-
#endif // defined(MBED_CONF_RTOS_PRESENT)
121+
#endif // defined(MBED_CONF_RTOS_PRESENT) && !defined(MBED_CONF_CELLULAR_OFFLOAD_DNS_QUERIES)

TESTS/netsocket/dns/dns_tests.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,10 @@ struct dns_application_data_multi_ip {
7373

7474
extern const char dns_test_hosts[MBED_CONF_APP_DNS_TEST_HOSTS_NUM][DNS_TEST_HOST_LEN];
7575
extern const char dns_test_hosts_second[MBED_CONF_APP_DNS_TEST_HOSTS_NUM][DNS_TEST_HOST_LEN];
76+
77+
#ifndef MBED_CONF_CELLULAR_OFFLOAD_DNS_QUERIES
7678
extern const char dns_test_hosts_multi_ip[MBED_CONF_APP_DNS_SIMULT_QUERIES][DNS_TEST_HOST_LEN];
79+
#endif
7780

7881
/*
7982
* Utility functions

TESTS/netsocket/dns/main.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,10 @@ NetworkInterface *net;
4242

4343
const char dns_test_hosts[MBED_CONF_APP_DNS_TEST_HOSTS_NUM][DNS_TEST_HOST_LEN] = MBED_CONF_APP_DNS_TEST_HOSTS;
4444
const char dns_test_hosts_second[MBED_CONF_APP_DNS_TEST_HOSTS_NUM][DNS_TEST_HOST_LEN] = MBED_CONF_APP_DNS_TEST_HOSTS_SECOND;
45+
46+
#ifndef MBED_CONF_CELLULAR_OFFLOAD_DNS_QUERIES
4547
const char dns_test_hosts_multi_ip[MBED_CONF_APP_DNS_SIMULT_QUERIES][DNS_TEST_HOST_LEN] = MBED_CONF_APP_DNS_TEST_MULTI_IP_HOSTS;
48+
#endif
4649

4750
// Callback used for asynchronous DNS result
4851
void hostbyname_cb(void *data, nsapi_error_t result, SocketAddress *address)
@@ -221,8 +224,10 @@ Case cases[] = {
221224
Case("SYNCHRONOUS_DNS", SYNCHRONOUS_DNS),
222225
Case("SYNCHRONOUS_DNS_MULTIPLE", SYNCHRONOUS_DNS_MULTIPLE),
223226
Case("SYNCHRONOUS_DNS_INVALID", SYNCHRONOUS_DNS_INVALID),
227+
#ifndef MBED_CONF_CELLULAR_OFFLOAD_DNS_QUERIES
224228
Case("SYNCHRONOUS_DNS_MULTI_IP", SYNCHRONOUS_DNS_MULTI_IP),
225229
Case("ASYNCHRONOUS_DNS_MULTI_IP", ASYNCHRONOUS_DNS_MULTI_IP),
230+
#endif
226231
};
227232

228233
Specification specification(test_setup, cases, greentea_teardown, greentea_continue_handlers);

TESTS/netsocket/dns/synchronous_dns_multi_ip.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
* limitations under the License.
1616
*/
1717

18+
#if !defined(MBED_CONF_CELLULAR_OFFLOAD_DNS_QUERIES)
19+
1820
#include "mbed.h"
1921
#include "greentea-client/test_env.h"
2022
#include "unity.h"
@@ -84,3 +86,5 @@ void SYNCHRONOUS_DNS_MULTI_IP()
8486
TEST_ASSERT_EQUAL(0, result_dns_failure);
8587
TEST_ASSERT_EQUAL(0, result_exp_timeout);
8688
}
89+
90+
#endif // !defined(MBED_CONF_CELLULAR_OFFLOAD_DNS_QUERIES)

features/cellular/framework/targets/QUECTEL/BG96/QUECTEL_BG96_CellularStack.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ static const char BG96_SUPPORTED_CIPHER_SUITE[] = "0xFFFF"; // Support all
2929
// Later can be expanded to support multiple contexts. Modem supports IDs 0-5.
3030
static const int sslctxID = 0;
3131

32+
static const int BG96_ASYNC_DNS_QUERY_ID = 1; // BG96 driver only supports one request, so using id 1
33+
3234
using namespace mbed;
3335

3436
QUECTEL_BG96_CellularStack::QUECTEL_BG96_CellularStack(ATHandler &atHandler, int cid, nsapi_ip_stack_t stack_type, AT_CellularDevice &device) :
@@ -191,7 +193,7 @@ void QUECTEL_BG96_CellularStack::urc_qiurc_dnsgip()
191193
}
192194
SocketAddress address;
193195
if (read_dnsgip(address, _dns_version)) {
194-
_dns_callback(NSAPI_ERROR_OK, &address);
196+
_dns_callback(1, &address);
195197
} else {
196198
_dns_callback(NSAPI_ERROR_DNS_FAILURE, NULL);
197199
}
@@ -496,7 +498,7 @@ nsapi_value_or_error_t QUECTEL_BG96_CellularStack::gethostbyname_async(const cha
496498
_dns_version = version;
497499
}
498500

499-
return _at.unlock_return_error() ? NSAPI_ERROR_DNS_FAILURE : NSAPI_ERROR_OK;
501+
return _at.unlock_return_error() ? NSAPI_ERROR_DNS_FAILURE : BG96_ASYNC_DNS_QUERY_ID;
500502
}
501503

502504
nsapi_error_t QUECTEL_BG96_CellularStack::gethostbyname_async_cancel(int id)

0 commit comments

Comments
 (0)