Skip to content

Commit

Permalink
fix lwip_recvfrom from IP's erpr setting serror
Browse files Browse the repository at this point in the history
  • Loading branch information
lyzsuper committed Nov 16, 2020
1 parent bf53b69 commit 148da7e
Show file tree
Hide file tree
Showing 9 changed files with 42 additions and 34 deletions.
15 changes: 9 additions & 6 deletions erpc_idl/erpc_shim/rpc_wifi_api.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Generated by erpcgen 1.7.4 on Wed Nov 4 11:07:47 2020.
* Generated by erpcgen 1.7.4 on Sat Nov 14 13:53:09 2020.
*
* AUTOGENERATED - DO NOT EDIT
*/
Expand Down Expand Up @@ -77,10 +77,11 @@ enum _rpc_wifi_drv_ids
krpc_wifi_drv_rpc_wifi_get_band_type_id = 60,
krpc_wifi_drv_rpc_wifi_set_tx_pause_data_id = 61,
krpc_wifi_drv_rpc_wifi_get_reconnect_data_id = 62,
krpc_wifi_drv_rpc_wifi_scan_start_id = 63,
krpc_wifi_drv_rpc_wifi_is_scaning_id = 64,
krpc_wifi_drv_rpc_wifi_scan_get_ap_records_id = 65,
krpc_wifi_drv_rpc_wifi_scan_get_ap_num_id = 66,
krpc_wifi_drv_rpc_wifi_clear_reconnect_data_id = 63,
krpc_wifi_drv_rpc_wifi_scan_start_id = 64,
krpc_wifi_drv_rpc_wifi_is_scaning_id = 65,
krpc_wifi_drv_rpc_wifi_scan_get_ap_records_id = 66,
krpc_wifi_drv_rpc_wifi_scan_get_ap_num_id = 67,
};

/*! @brief rpc_wifi_tcpip identifiers */
Expand Down Expand Up @@ -300,6 +301,8 @@ int32_t rpc_wifi_set_tx_pause_data(uint32_t NewState);

int32_t rpc_wifi_get_reconnect_data(binary_t * wifi_info);

int32_t rpc_wifi_clear_reconnect_data(void);

int32_t rpc_wifi_scan_start(void);

bool rpc_wifi_is_scaning(void);
Expand Down Expand Up @@ -376,7 +379,7 @@ int32_t rpc_lwip_recv(int32_t s, binary_t * mem, uint32_t len, int32_t flags, ui

int32_t rpc_lwip_read(int32_t s, binary_t * mem, uint32_t len, uint32_t timeout);

int32_t rpc_lwip_recvfrom(int32_t s, binary_t * mem, uint32_t len, int32_t flags, const binary_t * from, uint32_t * fromlen, uint32_t timeout);
int32_t rpc_lwip_recvfrom(int32_t s, binary_t * mem, uint32_t len, int32_t flags, binary_t * from, uint32_t * fromlen, uint32_t timeout);

int32_t rpc_lwip_send(int32_t s, const binary_t * dataptr, int32_t flags);

Expand Down
8 changes: 4 additions & 4 deletions erpc_idl/erpc_shim/rpc_wifi_api_client.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Generated by erpcgen 1.7.4 on Thu Nov 12 10:35:46 2020.
* Generated by erpcgen 1.7.4 on Sat Nov 14 13:53:09 2020.
*
* AUTOGENERATED - DO NOT EDIT
*/
Expand Down Expand Up @@ -4696,7 +4696,7 @@ int32_t rpc_lwip_read(int32_t s, binary_t * mem, uint32_t len, uint32_t timeout)
}

// rpc_wifi_lwip interface rpc_lwip_recvfrom function client shim.
int32_t rpc_lwip_recvfrom(int32_t s, binary_t * mem, uint32_t len, int32_t flags, const binary_t * from, uint32_t * fromlen, uint32_t timeout)
int32_t rpc_lwip_recvfrom(int32_t s, binary_t * mem, uint32_t len, int32_t flags, binary_t * from, uint32_t * fromlen, uint32_t timeout)
{
erpc_status_t err = kErpcStatus_Success;

Expand All @@ -4722,8 +4722,6 @@ int32_t rpc_lwip_recvfrom(int32_t s, binary_t * mem, uint32_t len, int32_t flags

codec->write(flags);

write_binary_t_struct(codec, from);

codec->write(*fromlen);

codec->write(timeout);
Expand All @@ -4734,6 +4732,8 @@ int32_t rpc_lwip_recvfrom(int32_t s, binary_t * mem, uint32_t len, int32_t flags

read_binary_t_struct(codec, mem);

read_binary_t_struct(codec, from);

codec->read(fromlen);

codec->read(&result);
Expand Down
17 changes: 9 additions & 8 deletions erpc_idl/erpc_shim/rpc_wifi_api_server.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Generated by erpcgen 1.7.4 on Thu Nov 12 10:35:46 2020.
* Generated by erpcgen 1.7.4 on Sat Nov 14 13:53:09 2020.
*
* AUTOGENERATED - DO NOT EDIT
*/
Expand Down Expand Up @@ -5602,11 +5602,6 @@ erpc_status_t rpc_wifi_lwip_service::rpc_lwip_recvfrom_shim(Codec * codec, Messa
uint32_t len;
int32_t flags;
binary_t *from = NULL;
from = (binary_t *) erpc_malloc(sizeof(binary_t));
if (from == NULL)
{
codec->updateStatus(kErpcStatus_MemoryError);
}
uint32_t fromlen;
uint32_t timeout;
int32_t result;
Expand All @@ -5619,8 +5614,6 @@ erpc_status_t rpc_wifi_lwip_service::rpc_lwip_recvfrom_shim(Codec * codec, Messa

codec->read(&flags);

read_binary_t_struct(codec, from);

codec->read(&fromlen);

codec->read(&timeout);
Expand All @@ -5631,6 +5624,12 @@ erpc_status_t rpc_wifi_lwip_service::rpc_lwip_recvfrom_shim(Codec * codec, Messa
codec->updateStatus(kErpcStatus_MemoryError);
}

from = (binary_t *) erpc_malloc(sizeof(binary_t));
if (from == NULL)
{
codec->updateStatus(kErpcStatus_MemoryError);
}

err = codec->getStatus();
if (!err)
{
Expand All @@ -5657,6 +5656,8 @@ erpc_status_t rpc_wifi_lwip_service::rpc_lwip_recvfrom_shim(Codec * codec, Messa

write_binary_t_struct(codec, mem);

write_binary_t_struct(codec, from);

codec->write(fromlen);

codec->write(result);
Expand Down
2 changes: 1 addition & 1 deletion erpc_idl/erpc_shim/rpc_wifi_callback_server.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Generated by erpcgen 1.7.4 on Wed Nov 4 11:07:47 2020.
* Generated by erpcgen 1.7.4 on Sat Nov 14 13:53:09 2020.
*
* AUTOGENERATED - DO NOT EDIT
*/
Expand Down
2 changes: 1 addition & 1 deletion erpc_idl/erpc_shim/rpc_wifi_callback_server.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Generated by erpcgen 1.7.4 on Wed Nov 4 11:07:47 2020.
* Generated by erpcgen 1.7.4 on Sat Nov 14 13:53:09 2020.
*
* AUTOGENERATED - DO NOT EDIT
*/
Expand Down
4 changes: 2 additions & 2 deletions erpc_idl/rpc_wifi_lwip.erpc
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ interface rpc_wifi_lwip{
rpc_lwip_available(int32 s) -> int32
rpc_lwip_recv(int32 s, out binary mem, uint32 len, int32 flags, uint32 timeout) -> int32
rpc_lwip_read(int32 s, out binary mem, uint32 len, uint32 timeout) -> int32
rpc_lwip_recvfrom(int32 s, out binary mem, uint32 len, int32 flags, in binary from, inout uint32 fromlen, uint32 timeout) -> int32
rpc_lwip_recvfrom(int32 s, out binary mem, uint32 len, int32 flags, out binary from, inout uint32 fromlen, uint32 timeout) -> int32
rpc_lwip_send(int32 s, in binary dataptr, int32 flags) -> int32
rpc_lwip_sendmsg(int32 s, in binary msg_name, in binary msg_iov, in binary msg_control, int32 msg_flags, int32 flags) -> int32
rpc_lwip_sendto(int32 s, in binary dataptr, int32 flags, in binary to, uint32 tolen) -> int32
Expand Down Expand Up @@ -60,4 +60,4 @@ interface rpc_wifi_mbedtls{
rpc_wifi_verify_ssl_fingerprint(uint32 ssl_client, string fp, string domain_name) -> bool
rpc_wifi_verify_ssl_dn(uint32 ssl_client, string domain_name) -> bool
rpc_wifi_ssl_strerror(int32 errnum, out binary buffer, uint32 buflen) -> void
}
}
2 changes: 1 addition & 1 deletion src/erpc_shim/rpc_wifi_api.h
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,7 @@ int32_t rpc_lwip_recv(int32_t s, binary_t * mem, uint32_t len, int32_t flags, ui

int32_t rpc_lwip_read(int32_t s, binary_t * mem, uint32_t len, uint32_t timeout);

int32_t rpc_lwip_recvfrom(int32_t s, binary_t * mem, uint32_t len, int32_t flags, const binary_t * from, uint32_t * fromlen, uint32_t timeout);
int32_t rpc_lwip_recvfrom(int32_t s, binary_t * mem, uint32_t len, int32_t flags, binary_t * from, uint32_t * fromlen, uint32_t timeout);

int32_t rpc_lwip_send(int32_t s, const binary_t * dataptr, int32_t flags);

Expand Down
17 changes: 9 additions & 8 deletions src/erpc_shim/rpc_wifi_api_server.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Generated by erpcgen 1.7.4 on Thu Nov 12 10:35:46 2020.
* Generated by erpcgen 1.7.4 on Sat Nov 14 13:53:09 2020.
*
* AUTOGENERATED - DO NOT EDIT
*/
Expand Down Expand Up @@ -5602,11 +5602,6 @@ erpc_status_t rpc_wifi_lwip_service::rpc_lwip_recvfrom_shim(Codec * codec, Messa
uint32_t len;
int32_t flags;
binary_t *from = NULL;
from = (binary_t *) erpc_malloc(sizeof(binary_t));
if (from == NULL)
{
codec->updateStatus(kErpcStatus_MemoryError);
}
uint32_t fromlen;
uint32_t timeout;
int32_t result;
Expand All @@ -5619,8 +5614,6 @@ erpc_status_t rpc_wifi_lwip_service::rpc_lwip_recvfrom_shim(Codec * codec, Messa

codec->read(&flags);

read_binary_t_struct(codec, from);

codec->read(&fromlen);

codec->read(&timeout);
Expand All @@ -5631,6 +5624,12 @@ erpc_status_t rpc_wifi_lwip_service::rpc_lwip_recvfrom_shim(Codec * codec, Messa
codec->updateStatus(kErpcStatus_MemoryError);
}

from = (binary_t *) erpc_malloc(sizeof(binary_t));
if (from == NULL)
{
codec->updateStatus(kErpcStatus_MemoryError);
}

err = codec->getStatus();
if (!err)
{
Expand All @@ -5657,6 +5656,8 @@ erpc_status_t rpc_wifi_lwip_service::rpc_lwip_recvfrom_shim(Codec * codec, Messa

write_binary_t_struct(codec, mem);

write_binary_t_struct(codec, from);

codec->write(fromlen);

codec->write(result);
Expand Down
9 changes: 6 additions & 3 deletions src/wifi/wifi_api.c
Original file line number Diff line number Diff line change
Expand Up @@ -1060,13 +1060,12 @@ int32_t rpc_lwip_read(int32_t s, binary_t *mem, uint32_t len, uint32_t timeout)
return ret;
}

int32_t rpc_lwip_recvfrom(int32_t s, binary_t *mem, uint32_t len, int32_t flags, const binary_t *from, uint32_t *fromlen, uint32_t timeout)
int32_t rpc_lwip_recvfrom(int32_t s, binary_t *mem, uint32_t len, int32_t flags, binary_t *from, uint32_t *fromlen, uint32_t timeout)
{

log_d("called");
uint8_t *_mem = (uint8_t *)erpc_malloc((len + 1) * sizeof(uint8_t));
int32_t ret = -1;
struct sockaddr *_from = (struct sockaddr *)from->data;
struct sockaddr * _from = (struct sockaddr *)erpc_malloc(sizeof(struct sockaddr));
ret = lwip_recvfrom(s, _mem, len, flags, _from, (socklen_t *)fromlen);
if (ret > 0)
{
Expand All @@ -1078,6 +1077,10 @@ int32_t rpc_lwip_recvfrom(int32_t s, binary_t *mem, uint32_t len, int32_t flags,
mem->data = _mem;
mem->dataLength = 1;
}

from->data = (uint8_t *)_from;
from->dataLength = sizeof(struct sockaddr);

return ret;
}

Expand Down

0 comments on commit 148da7e

Please sign in to comment.