Skip to content

Commit 53924e9

Browse files
Move Ethernet socket level stuff to utility/socket.cpp
1 parent abb37e2 commit 53924e9

File tree

4 files changed

+19
-5
lines changed

4 files changed

+19
-5
lines changed

libraries/Ethernet/src/EthernetClient.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ int EthernetClient::connect(IPAddress ip, uint16_t port) {
4040
return 0;
4141

4242
for (int i = 0; i < MAX_SOCK_NUM; i++) {
43-
uint8_t s = W5100.readSnSR(i);
43+
uint8_t s = socketStatus(i);
4444
if (s == SnSR::CLOSED || s == SnSR::FIN_WAIT || s == SnSR::CLOSE_WAIT) {
4545
_sock = i;
4646
break;
@@ -88,7 +88,7 @@ size_t EthernetClient::write(const uint8_t *buf, size_t size) {
8888

8989
int EthernetClient::available() {
9090
if (_sock != MAX_SOCK_NUM)
91-
return W5100.getRXReceivedSize(_sock);
91+
return recvAvailable(_sock);
9292
return 0;
9393
}
9494

@@ -153,7 +153,7 @@ uint8_t EthernetClient::connected() {
153153

154154
uint8_t EthernetClient::status() {
155155
if (_sock == MAX_SOCK_NUM) return SnSR::CLOSED;
156-
return W5100.readSnSR(_sock);
156+
return socketStatus(_sock);
157157
}
158158

159159
// the next function allows us to use the client returned by

libraries/Ethernet/src/EthernetUdp.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ uint8_t EthernetUDP::begin(uint16_t port) {
4141
return 0;
4242

4343
for (int i = 0; i < MAX_SOCK_NUM; i++) {
44-
uint8_t s = W5100.readSnSR(i);
44+
uint8_t s = socketStatus(i);
4545
if (s == SnSR::CLOSED || s == SnSR::FIN_WAIT) {
4646
_sock = i;
4747
break;
@@ -120,7 +120,7 @@ int EthernetUDP::parsePacket()
120120
// discard any remaining bytes in the last packet
121121
flush();
122122

123-
if (W5100.getRXReceivedSize(_sock) > 0)
123+
if (recvAvailable(_sock) > 0)
124124
{
125125
//HACK - hand-parse the UDP packet using TCP recv method
126126
uint8_t tmpBuf[8];

libraries/Ethernet/src/utility/socket.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ uint8_t socket(SOCKET s, uint8_t protocol, uint16_t port, uint8_t flag)
3030
}
3131

3232

33+
uint8_t socketStatus(SOCKET s)
34+
{
35+
return W5100.readSnSR(s);
36+
}
37+
38+
3339
/**
3440
* @brief This function close the socket and parameter is "s" which represent the socket number
3541
*/
@@ -176,6 +182,12 @@ int16_t recv(SOCKET s, uint8_t *buf, int16_t len)
176182
}
177183

178184

185+
int16_t recvAvailable(SOCKET s)
186+
{
187+
return W5100.getRXReceivedSize(s);
188+
}
189+
190+
179191
/**
180192
* @brief Returns the first byte in the receive queue (no checking)
181193
*

libraries/Ethernet/src/utility/socket.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@
44
#include "utility/w5100.h"
55

66
extern uint8_t socket(SOCKET s, uint8_t protocol, uint16_t port, uint8_t flag); // Opens a socket(TCP or UDP or IP_RAW mode)
7+
extern uint8_t socketStatus(SOCKET s);
78
extern void close(SOCKET s); // Close socket
89
extern uint8_t connect(SOCKET s, uint8_t * addr, uint16_t port); // Establish TCP connection (Active connection)
910
extern void disconnect(SOCKET s); // disconnect the connection
1011
extern uint8_t listen(SOCKET s); // Establish TCP connection (Passive connection)
1112
extern uint16_t send(SOCKET s, const uint8_t * buf, uint16_t len); // Send data (TCP)
1213
extern int16_t recv(SOCKET s, uint8_t * buf, int16_t len); // Receive data (TCP)
14+
extern int16_t recvAvailable(SOCKET s);
1315
extern uint16_t peek(SOCKET s, uint8_t *buf);
1416
extern uint16_t sendto(SOCKET s, const uint8_t * buf, uint16_t len, uint8_t * addr, uint16_t port); // Send data (UDP/IP RAW)
1517
extern uint16_t recvfrom(SOCKET s, uint8_t * buf, uint16_t len, uint8_t * addr, uint16_t *port); // Receive data (UDP/IP RAW)

0 commit comments

Comments
 (0)