Skip to content

Commit 6a28bce

Browse files
author
Arto Kinnunen
committed
Remove API changes
-Remove Nanostack::add_ethernet_interface API change -Add get_mac_address to MeshEthernetInterface -Fix compiler warnings by adding overrides
1 parent 9ede631 commit 6a28bce

File tree

8 files changed

+46
-20
lines changed

8 files changed

+46
-20
lines changed

connectivity/nanostack/include/nanostack-interface/Nanostack.h

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ class Nanostack : public OnboardNetworkStack, private mbed::NonCopyable<Nanostac
4343
nsapi_error_t add_ethernet_interface(EMAC &emac, bool default_if, OnboardNetworkStack::Interface **interface_out) override;
4444
nsapi_error_t add_ethernet_interface(EMAC &emac, bool default_if, OnboardNetworkStack::Interface **interface_out, const uint8_t *mac_addr) override;
4545

46+
/* Local variant with stronger typing and manual address specification */
47+
nsapi_error_t add_ethernet_interface(EMAC &emac, bool default_if, Nanostack::EthernetInterface **interface_out, const uint8_t *mac_addr = NULL);
48+
4649
nsapi_error_t add_ppp_interface(PPP &ppp, bool default_if, OnboardNetworkStack::Interface **interface_out) override;
4750

4851
/* Local variant with stronger typing and manual address specification */
@@ -72,7 +75,7 @@ class Nanostack : public OnboardNetworkStack, private mbed::NonCopyable<Nanostac
7275
* @param interface_name Network interface name
7376
* @return NSAPI_ERROR_OK on success, negative error code on failure.
7477
*/
75-
virtual nsapi_error_t gethostbyname(const char *name, SocketAddress *address, nsapi_version_t version, const char *interface_name);
78+
virtual nsapi_error_t gethostbyname(const char *name, SocketAddress *address, nsapi_version_t version, const char *interface_name) override;
7679

7780
/** Translate a hostname to an IP address (asynchronous) using network interface name.
7881
*
@@ -96,7 +99,7 @@ class Nanostack : public OnboardNetworkStack, private mbed::NonCopyable<Nanostac
9699
* a positive unique id that represents the hostname translation operation
97100
* and can be passed to cancel.
98101
*/
99-
virtual nsapi_value_or_error_t gethostbyname_async(const char *name, hostbyname_cb_t callback, nsapi_version_t version, const char *interface_name);
102+
virtual nsapi_value_or_error_t gethostbyname_async(const char *name, hostbyname_cb_t callback, nsapi_version_t version, const char *interface_name) override;
100103

101104
/** Get a domain name server from a list of servers to query
102105
*
@@ -105,9 +108,10 @@ class Nanostack : public OnboardNetworkStack, private mbed::NonCopyable<Nanostac
105108
*
106109
* @param index Index of the DNS server, starts from zero
107110
* @param address Destination for the host address
111+
* @param interface_name Network interface name
108112
* @return 0 on success, negative error code on failure
109113
*/
110-
virtual nsapi_error_t get_dns_server(int index, SocketAddress *address, const char *interface_name);
114+
virtual nsapi_error_t get_dns_server(int index, SocketAddress *address, const char *interface_name) override;
111115

112116
/** Opens a socket
113117
*

connectivity/nanostack/mbed-mesh-api/mbed-mesh-api/MeshInterfaceNanostack.h

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,20 +26,13 @@
2626
class Nanostack::Interface : public OnboardNetworkStack::Interface, private mbed::NonCopyable<Nanostack::Interface> {
2727
public:
2828
nsapi_error_t get_ip_address(SocketAddress *address) final;
29-
char *get_mac_address(char *buf, nsapi_size_t buflen);
29+
char *get_mac_address(char *buf, nsapi_size_t buflen) override;
3030
nsapi_error_t set_mac_address(uint8_t *buf, nsapi_size_t buflen);
3131
nsapi_error_t get_netmask(SocketAddress *address) final;
3232
nsapi_error_t get_gateway(SocketAddress *address) override;
3333
void attach(mbed::Callback<void(nsapi_event_t, intptr_t)> status_cb) final;
3434
nsapi_connection_status_t get_connection_status() const final;
35-
36-
void get_mac_address(uint8_t *buf) const
37-
{
38-
NanostackMACPhy *phy = interface_phy.nanostack_mac_phy();
39-
if (phy) {
40-
phy->get_mac_address(buf);
41-
}
42-
}
35+
virtual void get_mac_address(uint8_t *buf) const;
4336

4437
/**
4538
* \brief Callback from C-layer

connectivity/nanostack/mbed-mesh-api/mbed-mesh-api/NanostackEthernetInterface.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@ class Nanostack::EthernetInterface final : public Nanostack::Interface {
2828
nsapi_ip_stack_t stack = DEFAULT_STACK,
2929
bool blocking = true) override;
3030
nsapi_error_t bringdown() override;
31+
void get_mac_address(uint8_t *buf);
3132
char *get_mac_address(char *buf, nsapi_size_t buflen) override;
3233

33-
char *get_interface_name(char *buf);
34+
char *get_interface_name(char *buf) override;
3435
private:
3536
friend class Nanostack;
3637
friend class NanostackEthernetInterface;

connectivity/nanostack/mbed-mesh-api/mbed-mesh-api/NanostackPPPInterface.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class Nanostack::PPPInterface final : public Nanostack::Interface {
3232
typedef mbed::Callback<void (uint8_t up, int8_t device_id)> link_state_cb_t;
3333
void set_link_state_changed_callback(link_state_cb_t link_state_cb);
3434

35-
char *get_interface_name(char *buf);
35+
char *get_interface_name(char *buf) override;
3636
private:
3737
friend class Nanostack;
3838
PPPInterface(NanostackPPPPhy &phy) : Interface(phy) {}

connectivity/nanostack/mbed-mesh-api/source/MeshInterfaceNanostack.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,14 @@ nsapi_connection_status_t Nanostack::Interface::get_connection_status() const
8484
return _connect_status;
8585
}
8686

87+
void Nanostack::Interface::get_mac_address(uint8_t *buf) const
88+
{
89+
NanostackMACPhy *phy = interface_phy.nanostack_mac_phy();
90+
if (phy) {
91+
phy->get_mac_address(buf);
92+
}
93+
}
94+
8795
void Nanostack::Interface::attach(
8896
mbed::Callback<void(nsapi_event_t, intptr_t)> status_cb)
8997
{

connectivity/nanostack/mbed-mesh-api/source/NanostackEMACInterface.cpp

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ void EMACPhy::set_mac_address(uint8_t *mac)
191191
memcpy(mac_addr, mac, sizeof mac_addr);
192192
}
193193

194-
nsapi_error_t Nanostack::add_ethernet_interface(EMAC &emac, bool default_if, OnboardNetworkStack::Interface **interface_out, const uint8_t *mac_addr)
194+
nsapi_error_t Nanostack::add_ethernet_interface(EMAC &emac, bool default_if, Nanostack::EthernetInterface **interface_out, const uint8_t *mac_addr)
195195
{
196196
if (single_phy) {
197197
return NSAPI_ERROR_DEVICE_ERROR;
@@ -224,7 +224,18 @@ nsapi_error_t Nanostack::add_ethernet_interface(EMAC &emac, bool default_if, Onb
224224
return NSAPI_ERROR_OK;
225225
}
226226

227-
nsapi_error_t Nanostack::add_ethernet_interface(EMAC &emac, bool default_if, OnboardNetworkStack::Interface **interface_out)
227+
nsapi_error_t Nanostack::add_ethernet_interface(EMAC &emac, bool default_if, OnboardNetworkStack::Interface **interface_out, const uint8_t *mac_addr)
228228
{
229-
return Nanostack::add_ethernet_interface(emac, default_if, interface_out, nullptr);
229+
Nanostack::EthernetInterface *interface;
230+
nsapi_error_t err = add_ethernet_interface(emac, default_if, &interface, mac_addr);
231+
*interface_out = interface;
232+
return err;
230233
}
234+
235+
nsapi_error_t Nanostack::add_ethernet_interface(EMAC &emac, bool default_if, OnboardNetworkStack::Interface **interface_out)
236+
{
237+
Nanostack::EthernetInterface *interface;
238+
nsapi_error_t err = add_ethernet_interface(emac, default_if, &interface);
239+
*interface_out = interface;
240+
return err;
241+
}

connectivity/nanostack/mbed-mesh-api/source/NanostackEthernetInterface.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,18 @@ char *Nanostack::EthernetInterface::get_interface_name(char *buf)
133133
return buf;
134134
};
135135

136+
void Nanostack::EthernetInterface::get_mac_address(uint8_t *buf)
137+
{
138+
if (!buf) {
139+
return;
140+
}
141+
142+
get_phy().get_mac_address(buf);
143+
}
144+
136145
char *Nanostack::EthernetInterface::get_mac_address(char *buf, nsapi_size_t buflen)
137146
{
138-
uint8_t mac_buf[NSAPI_MAC_BYTES];
147+
uint8_t mac_buf[NSAPI_MAC_BYTES] = {0};
139148

140149
if (!buf || buflen < NSAPI_MAC_SIZE) {
141150
return NULL;

connectivity/netsocket/include/netsocket/EMACInterface.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ class EMACInterface : public virtual NetworkInterface {
8787
const char *get_mac_address() override;
8888

8989
/** @copydoc NetworkInterface::set_mac_address */
90-
nsapi_error_t set_mac_address(uint8_t *mac_addr, nsapi_size_t addr_len);
90+
nsapi_error_t set_mac_address(uint8_t *mac_addr, nsapi_size_t addr_len) override;
9191

9292
/** @copydoc NetworkInterface::get_ip_address */
9393
nsapi_error_t get_ip_address(SocketAddress *address) override;
@@ -151,7 +151,7 @@ class EMACInterface : public virtual NetworkInterface {
151151
char _ip_address[NSAPI_IPv6_SIZE] {};
152152
char _netmask[NSAPI_IPv4_SIZE] {};
153153
char _gateway[NSAPI_IPv4_SIZE] {};
154-
uint8_t _hw_mac_addr[NSAPI_MAC_BYTES];
154+
uint8_t _hw_mac_addr[NSAPI_MAC_BYTES] {};
155155
mbed::Callback<void(nsapi_event_t, intptr_t)> _connection_status_cb;
156156
};
157157

0 commit comments

Comments
 (0)