1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-07-29 05:21:37 +03:00

Migrate from astyle to clang-format (#8464)

This commit is contained in:
Maxim Prokhorov
2022-02-20 19:23:33 +03:00
committed by Max Prokhorov
parent 46190b61f1
commit 19b7a29720
241 changed files with 15925 additions and 16197 deletions

View File

@ -39,176 +39,189 @@
#include <assert.h>
#include <net/if.h>
int mockUDPSocket ()
int mockUDPSocket()
{
int s;
if ((s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1 || fcntl(s, F_SETFL, O_NONBLOCK) == -1)
{
fprintf(stderr, MOCK "UDP socket: %s", strerror(errno));
exit(EXIT_FAILURE);
}
return s;
int s;
if ((s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1 || fcntl(s, F_SETFL, O_NONBLOCK) == -1)
{
fprintf(stderr, MOCK "UDP socket: %s", strerror(errno));
exit(EXIT_FAILURE);
}
return s;
}
bool mockUDPListen (int sock, uint32_t dstaddr, uint16_t port, uint32_t mcast)
bool mockUDPListen(int sock, uint32_t dstaddr, uint16_t port, uint32_t mcast)
{
int optval;
int mockport;
int optval;
int mockport;
mockport = port;
if (mockport < 1024 && mock_port_shifter)
{
mockport += mock_port_shifter;
fprintf(stderr, MOCK "=====> UdpServer port: %d shifted to %d (use option -s) <=====\n", port, mockport);
}
else
fprintf(stderr, MOCK "=====> UdpServer port: %d <=====\n", mockport);
mockport = port;
if (mockport < 1024 && mock_port_shifter)
{
mockport += mock_port_shifter;
fprintf(stderr, MOCK "=====> UdpServer port: %d shifted to %d (use option -s) <=====\n",
port, mockport);
}
else
fprintf(stderr, MOCK "=====> UdpServer port: %d <=====\n", mockport);
optval = 1;
if (setsockopt(sock, SOL_SOCKET, SO_REUSEPORT, &optval, sizeof(optval)) == -1)
fprintf(stderr, MOCK "SO_REUSEPORT failed\n");
optval = 1;
if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval)) == -1)
fprintf(stderr, MOCK "SO_REUSEADDR failed\n");
optval = 1;
if (setsockopt(sock, SOL_SOCKET, SO_REUSEPORT, &optval, sizeof(optval)) == -1)
fprintf(stderr, MOCK "SO_REUSEPORT failed\n");
optval = 1;
if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval)) == -1)
fprintf(stderr, MOCK "SO_REUSEADDR failed\n");
struct sockaddr_in servaddr;
memset(&servaddr, 0, sizeof(servaddr));
struct sockaddr_in servaddr;
memset(&servaddr, 0, sizeof(servaddr));
// Filling server information
servaddr.sin_family = AF_INET;
(void) dstaddr;
//servaddr.sin_addr.s_addr = htonl(global_source_address);
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(mockport);
// Filling server information
servaddr.sin_family = AF_INET;
(void)dstaddr;
// servaddr.sin_addr.s_addr = htonl(global_source_address);
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(mockport);
// Bind the socket with the server address
if (bind(sock, (const struct sockaddr *)&servaddr, sizeof(servaddr)) < 0)
{
fprintf(stderr, MOCK "UDP bind on port %d failed: %s\n", mockport, strerror(errno));
return false;
}
else
mockverbose("UDP server on port %d (sock=%d)\n", mockport, sock);
// Bind the socket with the server address
if (bind(sock, (const struct sockaddr*)&servaddr, sizeof(servaddr)) < 0)
{
fprintf(stderr, MOCK "UDP bind on port %d failed: %s\n", mockport, strerror(errno));
return false;
}
else
mockverbose("UDP server on port %d (sock=%d)\n", mockport, sock);
if (!mcast)
mcast = inet_addr("224.0.0.1"); // all hosts group
if (mcast)
{
// https://web.cs.wpi.edu/~claypool/courses/4514-B99/samples/multicast.c
// https://stackoverflow.com/questions/12681097/c-choose-interface-for-udp-multicast-socket
if (!mcast)
mcast = inet_addr("224.0.0.1"); // all hosts group
if (mcast)
{
// https://web.cs.wpi.edu/~claypool/courses/4514-B99/samples/multicast.c
// https://stackoverflow.com/questions/12681097/c-choose-interface-for-udp-multicast-socket
struct ip_mreq mreq;
mreq.imr_multiaddr.s_addr = mcast;
//mreq.imr_interface.s_addr = htonl(global_source_address);
mreq.imr_interface.s_addr = htonl(INADDR_ANY);
struct ip_mreq mreq;
mreq.imr_multiaddr.s_addr = mcast;
// mreq.imr_interface.s_addr = htonl(global_source_address);
mreq.imr_interface.s_addr = htonl(INADDR_ANY);
if (host_interface)
{
if (host_interface)
{
#if __APPLE__
int idx = if_nametoindex(host_interface);
if (setsockopt(sock, IPPROTO_TCP, IP_BOUND_IF, &idx, sizeof(idx)) == -1)
int idx = if_nametoindex(host_interface);
if (setsockopt(sock, IPPROTO_TCP, IP_BOUND_IF, &idx, sizeof(idx)) == -1)
#else
if (setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, host_interface, strlen(host_interface)) == -1)
if (setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, host_interface,
strlen(host_interface))
== -1)
#endif
fprintf(stderr, MOCK "UDP multicast: can't setup bind/output on interface %s: %s\n", host_interface, strerror(errno));
if (setsockopt(sock, IPPROTO_IP, IP_MULTICAST_IF, &mreq.imr_interface, sizeof(struct in_addr)) == -1)
fprintf(stderr, MOCK "UDP multicast: can't setup bind/input on interface %s: %s\n", host_interface, strerror(errno));
}
fprintf(stderr, MOCK "UDP multicast: can't setup bind/output on interface %s: %s\n",
host_interface, strerror(errno));
if (setsockopt(sock, IPPROTO_IP, IP_MULTICAST_IF, &mreq.imr_interface,
sizeof(struct in_addr))
== -1)
fprintf(stderr, MOCK "UDP multicast: can't setup bind/input on interface %s: %s\n",
host_interface, strerror(errno));
}
if (setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq)) < 0)
{
fprintf(stderr, MOCK "can't join multicast group addr %08x\n", (int)mcast);
return false;
}
else
mockverbose("joined multicast group addr %08lx\n", (long)ntohl(mcast));
}
if (setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq)) < 0)
{
fprintf(stderr, MOCK "can't join multicast group addr %08x\n", (int)mcast);
return false;
}
else
mockverbose("joined multicast group addr %08lx\n", (long)ntohl(mcast));
}
return true;
return true;
}
size_t mockUDPFillInBuf (int sock, char* ccinbuf, size_t& ccinbufsize, uint8_t& addrsize, uint8_t addr[16], uint16_t& port)
size_t mockUDPFillInBuf(int sock, char* ccinbuf, size_t& ccinbufsize, uint8_t& addrsize,
uint8_t addr[16], uint16_t& port)
{
struct sockaddr_storage addrbuf;
socklen_t addrbufsize = std::min((socklen_t)sizeof(addrbuf), (socklen_t)16);
struct sockaddr_storage addrbuf;
socklen_t addrbufsize = std::min((socklen_t)sizeof(addrbuf), (socklen_t)16);
size_t maxread = CCBUFSIZE - ccinbufsize;
ssize_t ret = ::recvfrom(sock, ccinbuf + ccinbufsize, maxread, 0/*flags*/, (sockaddr*)&addrbuf, &addrbufsize);
if (ret == -1)
{
if (errno != EAGAIN)
fprintf(stderr, MOCK "UDPContext::(read/peek): filling buffer for %zd bytes: %s\n", maxread, strerror(errno));
ret = 0;
}
size_t maxread = CCBUFSIZE - ccinbufsize;
ssize_t ret = ::recvfrom(sock, ccinbuf + ccinbufsize, maxread, 0 /*flags*/, (sockaddr*)&addrbuf,
&addrbufsize);
if (ret == -1)
{
if (errno != EAGAIN)
fprintf(stderr, MOCK "UDPContext::(read/peek): filling buffer for %zd bytes: %s\n",
maxread, strerror(errno));
ret = 0;
}
if (ret > 0)
{
port = ntohs(((sockaddr_in*)&addrbuf)->sin_port);
if (addrbuf.ss_family == AF_INET)
memcpy(&addr[0], &(((sockaddr_in*)&addrbuf)->sin_addr.s_addr), addrsize = 4);
else
{
fprintf(stderr, MOCK "TODO UDP+IPv6\n");
exit(EXIT_FAILURE);
}
}
if (ret > 0)
{
port = ntohs(((sockaddr_in*)&addrbuf)->sin_port);
if (addrbuf.ss_family == AF_INET)
memcpy(&addr[0], &(((sockaddr_in*)&addrbuf)->sin_addr.s_addr), addrsize = 4);
else
{
fprintf(stderr, MOCK "TODO UDP+IPv6\n");
exit(EXIT_FAILURE);
}
}
return ccinbufsize += ret;
return ccinbufsize += ret;
}
size_t mockUDPPeekBytes (int sock, char* dst, size_t usersize, int timeout_ms, char* ccinbuf, size_t& ccinbufsize)
size_t mockUDPPeekBytes(int sock, char* dst, size_t usersize, int timeout_ms, char* ccinbuf,
size_t& ccinbufsize)
{
(void) sock;
(void) timeout_ms;
if (usersize > CCBUFSIZE)
fprintf(stderr, MOCK "CCBUFSIZE(%d) should be increased by %zd bytes (-> %zd)\n", CCBUFSIZE, usersize - CCBUFSIZE, usersize);
(void)sock;
(void)timeout_ms;
if (usersize > CCBUFSIZE)
fprintf(stderr, MOCK "CCBUFSIZE(%d) should be increased by %zd bytes (-> %zd)\n", CCBUFSIZE,
usersize - CCBUFSIZE, usersize);
size_t retsize = 0;
if (ccinbufsize)
{
// data already buffered
retsize = usersize;
if (retsize > ccinbufsize)
retsize = ccinbufsize;
}
memcpy(dst, ccinbuf, retsize);
return retsize;
size_t retsize = 0;
if (ccinbufsize)
{
// data already buffered
retsize = usersize;
if (retsize > ccinbufsize)
retsize = ccinbufsize;
}
memcpy(dst, ccinbuf, retsize);
return retsize;
}
void mockUDPSwallow (size_t copied, char* ccinbuf, size_t& ccinbufsize)
void mockUDPSwallow(size_t copied, char* ccinbuf, size_t& ccinbufsize)
{
// poor man buffer
memmove(ccinbuf, ccinbuf + copied, ccinbufsize - copied);
ccinbufsize -= copied;
// poor man buffer
memmove(ccinbuf, ccinbuf + copied, ccinbufsize - copied);
ccinbufsize -= copied;
}
size_t mockUDPRead (int sock, char* dst, size_t size, int timeout_ms, char* ccinbuf, size_t& ccinbufsize)
size_t mockUDPRead(int sock, char* dst, size_t size, int timeout_ms, char* ccinbuf,
size_t& ccinbufsize)
{
size_t copied = mockUDPPeekBytes(sock, dst, size, timeout_ms, ccinbuf, ccinbufsize);
mockUDPSwallow(copied, ccinbuf, ccinbufsize);
return copied;
size_t copied = mockUDPPeekBytes(sock, dst, size, timeout_ms, ccinbuf, ccinbufsize);
mockUDPSwallow(copied, ccinbuf, ccinbufsize);
return copied;
}
size_t mockUDPWrite (int sock, const uint8_t* data, size_t size, int timeout_ms, uint32_t ipv4, uint16_t port)
size_t mockUDPWrite(int sock, const uint8_t* data, size_t size, int timeout_ms, uint32_t ipv4,
uint16_t port)
{
(void) timeout_ms;
// Filling server information
struct sockaddr_in peer;
peer.sin_family = AF_INET;
peer.sin_addr.s_addr = ipv4; //XXFIXME should use lwip_htonl?
peer.sin_port = htons(port);
int ret = ::sendto(sock, data, size, 0/*flags*/, (const sockaddr*)&peer, sizeof(peer));
if (ret == -1)
{
fprintf(stderr, MOCK "UDPContext::write: write(%d): %s\n", sock, strerror(errno));
return 0;
}
if (ret != (int)size)
{
fprintf(stderr, MOCK "UDPContext::write: short write (%d < %zd) (TODO)\n", ret, size);
exit(EXIT_FAILURE);
}
(void)timeout_ms;
// Filling server information
struct sockaddr_in peer;
peer.sin_family = AF_INET;
peer.sin_addr.s_addr = ipv4; // XXFIXME should use lwip_htonl?
peer.sin_port = htons(port);
int ret = ::sendto(sock, data, size, 0 /*flags*/, (const sockaddr*)&peer, sizeof(peer));
if (ret == -1)
{
fprintf(stderr, MOCK "UDPContext::write: write(%d): %s\n", sock, strerror(errno));
return 0;
}
if (ret != (int)size)
{
fprintf(stderr, MOCK "UDPContext::write: short write (%d < %zd) (TODO)\n", ret, size);
exit(EXIT_FAILURE);
}
return ret;
return ret;
}