Added espnetworkutils
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
set(headers
|
set(headers
|
||||||
src/asyncudplistener.h
|
src/asyncudplistener.h
|
||||||
src/espcrc32builder.h
|
src/espcrc32builder.h
|
||||||
|
src/espnetworkutils.h
|
||||||
src/esprandom.h
|
src/esprandom.h
|
||||||
src/lockhelper.h
|
src/lockhelper.h
|
||||||
src/lockingqueue.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(&_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(&_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};
|
struct netif *netif{NULL};
|
||||||
void *nif{NULL};
|
void *nif{NULL};
|
||||||
|
@@ -15,6 +15,7 @@
|
|||||||
// local includes
|
// local includes
|
||||||
#include "cppmacros.h"
|
#include "cppmacros.h"
|
||||||
#include "delayedconstruction.h"
|
#include "delayedconstruction.h"
|
||||||
|
#include "espnetworkutils.h"
|
||||||
#include "wrappers/queue.h"
|
#include "wrappers/queue.h"
|
||||||
|
|
||||||
namespace espcpputils {
|
namespace espcpputils {
|
||||||
@@ -25,7 +26,7 @@ class UdpPacketWrapper
|
|||||||
public:
|
public:
|
||||||
UdpPacketWrapper(pbuf *pb, const ip_addr_t *addr, uint16_t port, struct netif * netif);
|
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; }
|
size_t length() const { return _len; }
|
||||||
bool isBroadcast() const
|
bool isBroadcast() const
|
||||||
{
|
{
|
||||||
@@ -71,7 +72,7 @@ public:
|
|||||||
|
|
||||||
uint16_t remotePort() const { return _remotePort; }
|
uint16_t remotePort() const { return _remotePort; }
|
||||||
|
|
||||||
void remoteMac(uint8_t * mac) const { std::memcpy(mac, _remoteMac, 6); }
|
mac_t remoteMac() const { return _remoteMac; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const pbuf *_pb;
|
const pbuf *_pb;
|
||||||
@@ -80,7 +81,7 @@ private:
|
|||||||
uint16_t _localPort;
|
uint16_t _localPort;
|
||||||
ip_addr_t _remoteIp;
|
ip_addr_t _remoteIp;
|
||||||
uint16_t _remotePort;
|
uint16_t _remotePort;
|
||||||
uint8_t _remoteMac[6];
|
mac_t _remoteMac;
|
||||||
const uint8_t *_data;
|
const uint8_t *_data;
|
||||||
size_t _len;
|
size_t _len;
|
||||||
size_t _index;
|
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