Skip to content

Commit 00bd352

Browse files
committed
libraries/WiFi: UDP write added and modified socket.write.
Signed-off-by: IFX-Anusha <[email protected]>
1 parent 553bd7e commit 00bd352

File tree

2 files changed

+22
-4
lines changed

2 files changed

+22
-4
lines changed

libraries/WiFi/src/SecSocket.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,14 +152,24 @@ bool Socket::accept(Socket & client_socket) {
152152

153153
uint32_t Socket::send(const void *data, uint32_t len) {
154154
uint32_t bytes_sent = 0;
155-
_last_error = cy_socket_send(socket, data, len,
156-
CY_SOCKET_FLAGS_NONE, &bytes_sent);
155+
switch (_protocol) {
156+
case SOCKET_PROTOCOL_TCP:
157+
_last_error = cy_socket_send(socket, data, len,
158+
CY_SOCKET_FLAGS_NONE, &bytes_sent);
159+
break;
160+
case SOCKET_PROTOCOL_UDP:
161+
_last_error = cy_socket_sendto(socket, data, len,
162+
CY_SOCKET_FLAGS_NONE, &address,
163+
sizeof(cy_socket_sockaddr_t), &bytes_sent);
164+
break;
165+
}
157166
if (_last_error != CY_RSLT_SUCCESS) {
158167
_status = SOCKET_STATUS_ERROR;
159168
}
160169

161170
return bytes_sent;
162171
}
172+
163173
uint32_t Socket::available() {
164174
return rx_buf.available();
165175
}

libraries/WiFi/src/WiFiUdp.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,19 @@ int WiFiUDP::endPacket() {
5353
}
5454

5555
size_t WiFiUDP::write(uint8_t) {
56-
return 0;
56+
return write(&byte, 1);
5757
}
5858

5959
size_t WiFiUDP::write(const uint8_t *buffer, size_t size) {
60-
return 0;
60+
if (size == 0) {
61+
return 0;
62+
}
63+
size_t bytes_written = socket.send(buffer, size);
64+
if (bytes_written != size) {
65+
_status = SOCKET_STATUS_ERROR;
66+
return 0;
67+
}
68+
return bytes_written;
6169
}
6270

6371
int WiFiUDP::parsePacket() {

0 commit comments

Comments
 (0)