42 |
recv_tcp(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err) |
recv_tcp(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err) |
43 |
{ |
{ |
44 |
struct netconn *conn; |
struct netconn *conn; |
45 |
|
u16_t len; |
46 |
|
|
47 |
conn = arg; |
conn = arg; |
48 |
|
|
49 |
if(conn == NULL) { |
if(conn == NULL) { |
55 |
|
|
56 |
conn->err = err; |
conn->err = err; |
57 |
if (p != NULL) { |
if (p != NULL) { |
58 |
conn->recv_avail += p->tot_len; |
len = p->tot_len; |
59 |
/* Register event with callback */ |
conn->recv_avail += len; |
60 |
if (conn->callback) |
} |
61 |
(*conn->callback)(conn, NETCONN_EVT_RCVPLUS, p->tot_len); |
else |
62 |
} |
len = 0; |
63 |
|
/* Register event with callback */ |
64 |
|
if (conn->callback) |
65 |
|
(*conn->callback)(conn, NETCONN_EVT_RCVPLUS, len); |
66 |
sys_mbox_post(conn->recvmbox, p); |
sys_mbox_post(conn->recvmbox, p); |
67 |
} |
} |
68 |
return ERR_OK; |
return ERR_OK; |