Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

emulation on host: various fixes #7355

Merged
merged 1 commit into from Jun 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 2 additions & 2 deletions tests/host/common/MockWiFiServerSocket.cpp
Expand Up @@ -67,8 +67,8 @@ void WiFiServer::begin (uint16_t port, uint8_t backlog)
{
if (!backlog)
return;
_port = port;
return begin();
_port = port;
return begin();
}

void WiFiServer::begin ()
Expand Down
27 changes: 27 additions & 0 deletions tests/host/common/MocklwIP.cpp
Expand Up @@ -33,4 +33,31 @@ err_t etharp_request(struct netif *netif, const ip4_addr_t *ipaddr)
return ERR_OK;
}

err_t igmp_start(struct netif* netif)
{
(void)netif;
return ERR_OK;
}

err_t igmp_joingroup_netif(struct netif *netif, const ip4_addr_t *groupaddr)
{
(void)netif;
(void)groupaddr;
return ERR_OK;
}

err_t igmp_leavegroup_netif(struct netif *netif, const ip4_addr_t *groupaddr)
{
(void)netif;
(void)groupaddr;
return ERR_OK;
}

struct netif* netif_get_by_index(u8_t idx)
{
(void)idx;
return &netif0;
}


} // extern "C"
16 changes: 15 additions & 1 deletion tests/host/common/include/UdpContext.h
Expand Up @@ -28,6 +28,8 @@ class UdpContext;
#define GET_IP_HDR(pb) reinterpret_cast<ip_hdr*>(((uint8_t*)((pb)->payload)) - UDP_HLEN - IP_HLEN);
#define GET_UDP_HDR(pb) reinterpret_cast<udp_hdr*>(((uint8_t*)((pb)->payload)) - UDP_HLEN);

extern netif netif0;

class UdpContext
{
public:
Expand Down Expand Up @@ -86,12 +88,24 @@ class UdpContext
_dst.addr = staticMCastAddr;
}

void setMulticastInterface(netif* p_pNetIf)
{
(void)p_pNetIf;
// user multicast, and this is how it works with posix: send to multicast address:
_dst.addr = staticMCastAddr;
}

void setMulticastTTL(int ttl)
{
(void)ttl;
//mockverbose("TODO: UdpContext::setMulticastTTL\n");
}

netif* getInputNetif() const
{
return &netif0;
}

// warning: handler is called from tcp stack context
// esp_yield and non-reentrant functions which depend on it will fail
void onRx(rxhandler_t handler) {
Expand Down Expand Up @@ -246,7 +260,7 @@ class UdpContext
uint8_t addr[16];
};

inline err_t igmp_joingroup (const ip4_addr_t *ifaddr, const ip4_addr_t *groupaddr)
extern "C" inline err_t igmp_joingroup (const ip4_addr_t *ifaddr, const ip4_addr_t *groupaddr)
{
(void)ifaddr;
UdpContext::staticMCastAddr = groupaddr->addr;
Expand Down
1 change: 1 addition & 0 deletions tests/host/sys/pgmspace.h
Expand Up @@ -67,5 +67,6 @@ inline int vsnprintf_P(char *str, size_t size, const char *format, va_list ap) {
#define snprintf_P snprintf
#define sprintf_P sprintf
#define strncmp_P strncmp
#define strcat_P strcat

#endif