Skip to content

Commit 4b265c1

Browse files
authored
Modify IPv6 code (#291)
* Modify IPv6 code - Modify IPv6 UDP * update server_drv.cpp
1 parent 9a60388 commit 4b265c1

File tree

7 files changed

+21
-20
lines changed

7 files changed

+21
-20
lines changed

Arduino_package/hardware/cores/ambd/ard_socket.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -516,29 +516,29 @@ int get_receive_v6(int sock, void *recv_data, int len, int flags, uint32_t *peer
516516
return ret;
517517
}
518518

519-
void ipv6_udp_server(void) {
519+
void ipv6_udp_server(char *data_recv, const char *data_send)
520+
{
520521
int server_fd;
521522
struct sockaddr_in6 client_addr;
522523

523524
unsigned int addrlen = sizeof(struct sockaddr_in6);
524525

525-
char send_data[MAX_SEND_SIZE] = "Hi client!";
526-
char recv_data[MAX_RECV_SIZE];
527-
528-
//create socket
526+
// char send_data[MAX_SEND_SIZE] = "Hi client!";
527+
// char recv_data[MAX_RECV_SIZE];
529528

529+
// create socket
530530
server_fd = start_server_v6(UDP_SERVER_PORT, 1);
531531

532532
while (1) {
533-
memset(recv_data, 0, MAX_RECV_SIZE);
533+
memset(data_recv, 0, MAX_RECV_SIZE);
534534
// if (get_receive_v6(server_fd, recv_data, MAX_SEND_SIZE, 0, UDP_SERVER_IP, UDP_SERVER_PORT) <= 0) {
535-
if (lwip_recvfrom(server_fd, recv_data, MAX_RECV_SIZE, 0, (struct sockaddr *)&client_addr, &addrlen) > 0) {
536-
printf("\r\n [INFO] Receive data : %s\n", recv_data);
537-
//Send Response
538-
if (lwip_sendto(server_fd, send_data, MAX_SEND_SIZE, 0, (struct sockaddr *)&client_addr, addrlen) == -1) {
539-
printf("\r\n [ERROR] Send data failed\n");
535+
if (lwip_recvfrom(server_fd, data_recv, MAX_RECV_SIZE, 0, (struct sockaddr *)&client_addr, &addrlen) > 0) {
536+
printf("\r\n[INFO] Receive data : %s\n", data_recv);
537+
// Send Response
538+
if (lwip_sendto(server_fd, data_send, MAX_SEND_SIZE, 0, (struct sockaddr *)&client_addr, addrlen) == -1) {
539+
printf("\r\n[ERROR] %s Send data failed\n", __FUNCTION__);
540540
} else {
541-
printf("\r\n [INFO] Send data successfully\n");
541+
printf("\r\n[INFO] Send data successfully\n");
542542
}
543543
}
544544
}

Arduino_package/hardware/cores/ambd/ard_socket.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ int get_receive(int sock, uint8_t *data, int length, int flag, uint32_t *peer_ad
2727
int get_receive_v6(int server_fd, void *recv_data, int len, int flags, uint32_t *peer_addr, uint16_t *peer_port);
2828
int sendto_data(int sock, const uint8_t *data, uint16_t len, uint32_t peer_ip, uint16_t peer_port);
2929
int sendto_data_v6(int sock, const void *send_data, size_t len, uint32_t peer_ip, uint16_t peer_port);
30-
void ipv6_udp_server(void);
30+
void ipv6_udp_server(char *data_recv, const char *data_send);
3131

3232
// OTA
3333
int ota_bind_socket(int server_socket, int OTAport);

Arduino_package/hardware/cores/ambd/server_drv.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ int ServerDrv::getIPv6Status()
231231
return get_ipv6_status();
232232
}
233233

234-
void ServerDrv::setIPv6UDPServer(void)
234+
void ServerDrv::setIPv6UDPServer(char *data_recv, char *data_send)
235235
{
236-
ipv6_udp_server();
236+
ipv6_udp_server(data_recv, data_send);
237237
}

Arduino_package/hardware/cores/ambd/server_drv.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class ServerDrv {
4343
int setSockRecvTimeout(int sock, int timeout);
4444
static int enableIPv6();
4545
static int getIPv6Status();
46-
void setIPv6UDPServer(void);
46+
void setIPv6UDPServer(char *data_recv, char *data_send);
4747

4848
private:
4949
bool _available;

Arduino_package/hardware/libraries/WiFi/examples/IPv6UDPServer/IPv6UDPServer.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ void setup() {
4848
printWifiStatus();
4949

5050
// if you get a connection, report back via serial:
51-
UDPserver.UDPServerv6();
51+
UDPserver.UDPServerv6(data_recv, data_send);
5252
}
5353

5454
void loop() {}

Arduino_package/hardware/libraries/WiFi/src/WiFiUdp.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,7 @@ int WiFiUDP::getIPv6Status() {
244244
return serverDrv.getIPv6Status();
245245
}
246246

247-
void WiFiUDP::UDPServerv6(void) {
248-
serverDrv.setIPv6UDPServer();
247+
void WiFiUDP::UDPServerv6(char *data_recv, char *data_send)
248+
{
249+
serverDrv.setIPv6UDPServer(data_recv, data_send);
249250
}

Arduino_package/hardware/libraries/WiFi/src/WiFiUdp.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ class WiFiUDP : public UDP {
102102
// IPv6 related
103103
virtual int enableIPv6();
104104
virtual int getIPv6Status();
105-
virtual void UDPServerv6(void);
105+
virtual void UDPServerv6(char* data_recv, char* data_send);
106106

107107
friend class WiFiDrv;
108108
using Print::write;

0 commit comments

Comments
 (0)