Added espnetworkutils
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
set(headers
|
||||
src/asyncudplistener.h
|
||||
src/espcrc32builder.h
|
||||
src/espnetworkutils.h
|
||||
src/esprandom.h
|
||||
src/lockhelper.h
|
||||
src/lockingqueue.h
|
||||
|
@ -111,7 +111,7 @@ UdpPacketWrapper::UdpPacketWrapper(pbuf *pb, const ip_addr_t *raddr, uint16_t rp
|
||||
std::memcpy(&_localIp.u_addr.ip6.addr, (uint8_t *)ip6hdr->dest.addr, 16);
|
||||
std::memcpy(&_remoteIp.u_addr.ip6.addr, (uint8_t *)ip6hdr->src.addr, 16);
|
||||
}
|
||||
std::memcpy(_remoteMac, eth->src.addr, 6);
|
||||
_remoteMac = mac_t{eth->src.addr};
|
||||
|
||||
struct netif *netif{NULL};
|
||||
void *nif{NULL};
|
||||
|
@ -15,6 +15,7 @@
|
||||
// local includes
|
||||
#include "cppmacros.h"
|
||||
#include "delayedconstruction.h"
|
||||
#include "espnetworkutils.h"
|
||||
#include "wrappers/queue.h"
|
||||
|
||||
namespace espcpputils {
|
||||
@ -25,7 +26,7 @@ class UdpPacketWrapper
|
||||
public:
|
||||
UdpPacketWrapper(pbuf *pb, const ip_addr_t *addr, uint16_t port, struct netif * netif);
|
||||
|
||||
const uint8_t * data() const { return _data; }
|
||||
const uint8_t *data() const { return _data; }
|
||||
size_t length() const { return _len; }
|
||||
bool isBroadcast() const
|
||||
{
|
||||
@ -71,7 +72,7 @@ public:
|
||||
|
||||
uint16_t remotePort() const { return _remotePort; }
|
||||
|
||||
void remoteMac(uint8_t * mac) const { std::memcpy(mac, _remoteMac, 6); }
|
||||
mac_t remoteMac() const { return _remoteMac; }
|
||||
|
||||
private:
|
||||
const pbuf *_pb;
|
||||
@ -80,7 +81,7 @@ private:
|
||||
uint16_t _localPort;
|
||||
ip_addr_t _remoteIp;
|
||||
uint16_t _remotePort;
|
||||
uint8_t _remoteMac[6];
|
||||
mac_t _remoteMac;
|
||||
const uint8_t *_data;
|
||||
size_t _len;
|
||||
size_t _index;
|
||||
|
25
src/espnetworkutils.h
Normal file
25
src/espnetworkutils.h
Normal file
@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
|
||||
// system includes
|
||||
#include <array>
|
||||
#include <string>
|
||||
|
||||
namespace espcpputils {
|
||||
class mac_t : public std::array<uint8_t, 6>
|
||||
{
|
||||
public:
|
||||
using std::array<uint8_t, 6>::array;
|
||||
|
||||
explicit mac_t(const uint8_t *ptr)
|
||||
{
|
||||
std::copy(ptr, ptr+6, std::begin(*this));
|
||||
}
|
||||
|
||||
std::string toString() const
|
||||
{
|
||||
char macStr[18]{0};
|
||||
snprintf(macStr, 18, "%02X:%02X:%02X:%02X:%02X:%02X", at(0), at(1), at(2), at(3), at(4), at(5));
|
||||
return std::string{macStr};
|
||||
}
|
||||
};
|
||||
} // namespace
|
Reference in New Issue
Block a user