static const char *output_packet; /* used by first send udp */
static int output_packet_len = 0;
-static void nc_wait_arp_handler (uchar * pkt, unsigned dest, unsigned src,
+static void nc_wait_arp_handler(uchar *pkt, unsigned dest,
+ IPaddr_t sip, unsigned src,
unsigned len)
{
NetState = NETLOOP_SUCCESS; /* got arp reply - quit net loop */
}
-static void nc_handler (uchar * pkt, unsigned dest, unsigned src,
+static void nc_handler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,
unsigned len)
{
if (input_size)
return;
output_recursion = 1;
- if ((len = strlen (s)) > 512)
- len = 512;
-
- nc_send_packet (s, len);
+ len = strlen(s);
+ while (len) {
+ int send_len = min(len, 512);
+ nc_send_packet(s, send_len);
+ len -= send_len;
+ s += send_len;
+ }
output_recursion = 0;
}