@@ -329,6 +329,7 @@ UIPClient::flush()
329
329
void
330
330
uipclient_appcall (void )
331
331
{
332
+ uint16_t send_len = 0 ;
332
333
uip_userdata_t *u = (uip_userdata_t *)uip_conn->appstate ;
333
334
if (!u && uip_connected ())
334
335
{
@@ -406,7 +407,7 @@ uipclient_appcall(void)
406
407
UIPClient::_dumpAllData ();
407
408
#endif
408
409
uip_conn->appstate = NULL ;
409
- goto nodata ;
410
+ goto finish ;
410
411
}
411
412
if (uip_acked ())
412
413
{
@@ -424,28 +425,25 @@ uipclient_appcall(void)
424
425
{
425
426
if (u->packets_out [1 ] == NOBLOCK)
426
427
{
427
- uip_len = u->out_pos ;
428
- if (uip_len > 0 )
428
+ send_len = u->out_pos ;
429
+ if (send_len > 0 )
429
430
{
430
- Enc28J60Network::resizeBlock (u->packets_out [0 ],0 ,uip_len );
431
+ Enc28J60Network::resizeBlock (u->packets_out [0 ],0 ,send_len );
431
432
}
432
433
}
433
434
else
434
- uip_len = Enc28J60Network::blockSize (u->packets_out [0 ]);
435
- if (uip_len > 0 )
435
+ send_len = Enc28J60Network::blockSize (u->packets_out [0 ]);
436
+ if (send_len > 0 )
436
437
{
437
438
UIPEthernetClass::uip_hdrlen = ((uint8_t *)uip_appdata)-uip_buf;
438
- UIPEthernetClass::uip_packet = Enc28J60Network::allocBlock (UIPEthernetClass::uip_hdrlen+uip_len );
439
+ UIPEthernetClass::uip_packet = Enc28J60Network::allocBlock (UIPEthernetClass::uip_hdrlen+send_len );
439
440
if (UIPEthernetClass::uip_packet != NOBLOCK)
440
441
{
441
- Enc28J60Network::copyPacket (UIPEthernetClass::uip_packet,UIPEthernetClass::uip_hdrlen,u->packets_out [0 ],0 ,uip_len );
442
+ Enc28J60Network::copyPacket (UIPEthernetClass::uip_packet,UIPEthernetClass::uip_hdrlen,u->packets_out [0 ],0 ,send_len );
442
443
UIPEthernetClass::packetstate |= UIPETHERNET_SENDPACKET;
443
- uip_send (uip_appdata,uip_len);
444
- return ;
445
444
}
446
- else
447
- goto nodata;
448
445
}
446
+ goto finish;
449
447
}
450
448
}
451
449
// don't close connection unless all outgoing packets are sent
@@ -474,8 +472,9 @@ uipclient_appcall(void)
474
472
}
475
473
}
476
474
}
477
- nodata:
478
- uip_len=0 ;
475
+ finish:
476
+ uip_send (uip_appdata,send_len);
477
+ uip_len = send_len;
479
478
}
480
479
481
480
uip_userdata_t *
0 commit comments