mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-04 15:30:02 +00:00
2004-10-05 Paul Jakma <paul@dishone.st>
* sockopt.{c,h}: add sockopt_iphdrincl_swab_{htosys,systoh}, functions to change byte order between system IP_HDRINCL order and host order.
This commit is contained in:
parent
7347a2ad7c
commit
96e27c9928
@ -1,3 +1,9 @@
|
||||
2004-10-05 Paul Jakma <paul@dishone.st>
|
||||
|
||||
* sockopt.{c,h}: add sockopt_iphdrincl_swab_{htosys,systoh},
|
||||
functions to change byte order between system IP_HDRINCL order
|
||||
and host order.
|
||||
|
||||
2004-10-04 Hasso Tepper <hasso at quagga.net>
|
||||
|
||||
* memory.c, memory.h: Make char * argument of strdup functions const.
|
||||
|
@ -360,3 +360,29 @@ getsockopt_ifindex (int af, struct msghdr *msgh)
|
||||
return (ifindex = 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* swab iph between order system uses for IP_HDRINCL and host order */
|
||||
void
|
||||
sockopt_iphdrincl_swab_htosys (struct ip *iph)
|
||||
{
|
||||
/* BSD and derived take iph in network order, except for
|
||||
* ip_len and ip_off
|
||||
*/
|
||||
#ifndef HAVE_IP_HDRINCL_BSD_ORDER
|
||||
iph->ip_len = htons(iph->ip_len);
|
||||
iph->ip_off = htons(iph->ip_off);
|
||||
#endif /* HAVE_IP_HDRINCL_BSD_ORDER */
|
||||
|
||||
iph->ip_id = htons(iph->ip_id);
|
||||
}
|
||||
|
||||
void
|
||||
sockopt_iphdrincl_swab_systoh (struct ip *iph)
|
||||
{
|
||||
#ifndef HAVE_IP_HDRINCL_BSD_ORDER
|
||||
iph->ip_len = ntohs(iph->ip_len);
|
||||
iph->ip_off = ntohs(iph->ip_off);
|
||||
#endif /* HAVE_IP_HDRINCL_BSD_ORDER */
|
||||
|
||||
iph->ip_id = ntohs(iph->ip_id);
|
||||
}
|
||||
|
@ -92,4 +92,11 @@ int setsockopt_pktinfo (int, int, int);
|
||||
/* Ask for, and get, ifindex, by whatever method is supported. */
|
||||
int setsockopt_ifindex (int, int, int);
|
||||
int getsockopt_ifindex (int, struct msghdr *);
|
||||
|
||||
/* swab the fields in iph between the host order and system order expected
|
||||
* for IP_HDRINCL.
|
||||
*/
|
||||
void sockopt_iphdrincl_swab_htosys (struct ip *iph);
|
||||
void sockopt_iphdrincl_swab_systoh (struct ip *iph);
|
||||
|
||||
#endif /*_ZEBRA_SOCKOPT_H */
|
||||
|
Loading…
Reference in New Issue
Block a user