407 |
/* chksum zero must become 0xffff, as zero means 'no checksum' */ |
/* chksum zero must become 0xffff, as zero means 'no checksum' */ |
408 |
if (udphdr->chksum == 0x0000) udphdr->chksum = 0xffff; |
if (udphdr->chksum == 0x0000) udphdr->chksum = 0xffff; |
409 |
/* output to IP */ |
/* output to IP */ |
410 |
err = ip_output_if (q, src_ip, &pcb->remote_ip, UDP_TTL, IP_PROTO_UDPLITE, netif); |
err = ip_output_if (p, src_ip, &pcb->remote_ip, pcb->ttl, pcb->tos, IP_PROTO_UDPLITE, netif); |
411 |
snmp_inc_udpoutdatagrams(); |
snmp_inc_udpoutdatagrams(); |
412 |
} else { |
} else { |
413 |
LWIP_DEBUGF(UDP_DEBUG, ("udp_send: UDP packet length %u\n", q->tot_len)); |
LWIP_DEBUGF(UDP_DEBUG, ("udp_send: UDP packet length %u\n", q->tot_len)); |
422 |
snmp_inc_udpoutdatagrams(); |
snmp_inc_udpoutdatagrams(); |
423 |
LWIP_DEBUGF(UDP_DEBUG, ("udp_send: ip_output_if (,,,,IP_PROTO_UDP,)\n")); |
LWIP_DEBUGF(UDP_DEBUG, ("udp_send: ip_output_if (,,,,IP_PROTO_UDP,)\n")); |
424 |
/* output to IP */ |
/* output to IP */ |
425 |
err = ip_output_if (q, src_ip, &pcb->remote_ip, UDP_TTL, IP_PROTO_UDP, netif); |
err = ip_output_if(p, src_ip, &pcb->remote_ip, pcb->ttl, pcb->tos, IP_PROTO_UDP, netif); |
426 |
} |
} |
427 |
|
|
428 |
/* did we chain a header earlier? */ |
/* did we chain a header earlier? */ |
650 |
/* initialize PCB to all zeroes */ |
/* initialize PCB to all zeroes */ |
651 |
memset(pcb, 0, sizeof(struct udp_pcb)); |
memset(pcb, 0, sizeof(struct udp_pcb)); |
652 |
} |
} |
653 |
|
|
654 |
|
pcb->ttl = UDP_TTL; |
655 |
|
|
656 |
return pcb; |
return pcb; |
657 |
} |
} |
658 |
/*-----------------------------------------------------------------------------------*/ |
/*-----------------------------------------------------------------------------------*/ |