/** Manages the currently open network connections, including TCP and (if enabled) UDP. */\r
static void uIPManagement_ManageConnections(void)\r
{\r
+ /* Poll TCP connections for more data to send back to the host */\r
+ for (uint8_t i = 0; i < UIP_CONNS; i++)\r
+ {\r
+ uip_poll_conn(&uip_conns[i]);\r
+\r
+ /* If a response was generated, send it */\r
+ if (uip_len > 0)\r
+ {\r
+ /* Add destination MAC to outgoing packet */\r
+ uip_arp_out();\r
+\r
+ RNDIS_Host_SendPacket(&Ethernet_RNDIS_Interface, uip_buf, uip_len);\r
+ }\r
+ }\r
+\r
/* Manage open connections for timeouts */\r
if (timer_expired(&ConnectionTimer))\r
{\r
if(flag == UIP_POLL_REQUEST) {
if((uip_connr->tcpstateflags & UIP_TS_MASK) == UIP_ESTABLISHED &&
!uip_outstanding(uip_connr)) {
+ uip_len = uip_slen = 0;
uip_flags = UIP_POLL;
UIP_APPCALL();
goto appsend;
} else if((uip_connr->tcpstateflags & UIP_TS_MASK) == UIP_ESTABLISHED) {
/* If there was no need for a retransmission, we poll the
application for new data. */
+ uip_len = uip_slen = 0;
uip_flags = UIP_POLL;
UIP_APPCALL();
goto appsend;