mirror of
https://sourceware.org/git/glibc.git
synced 2025-12-24 17:51:17 +03:00
[BZ #2693]
* inet/Makefile (routines): Add inet6_opt and inet6_rth. * inet/Versions (libc, GLIBC_2.5): Add inet6_opt_init, inet6_opt_append, inet6_opt_finish, inet6_opt_set_val, inet6_opt_next, inet6_opt_find, inet6_opt_get_val, inet6_rth_space, inet6_rth_init, inet6_rth_add, inet6_rth_reverse, inet6_rth_segments, and inet6_rth_getaddr. * inet/netinet/ip6.h (struct ip6_rthdr0): Make ip6r0_addr a flexible array. * inet/netinet/in.h (struct ip6_mtuinfo): Define. Mark inet6_option_* interfaces as deprecated. Declare inet6_opt_init, inet6_opt_append, inet6_opt_finish, inet6_opt_set_val, inet6_opt_next, inet6_opt_find, inet6_opt_get_val, inet6_rth_space, inet6_rth_init, inet6_rth_add, inet6_rth_reverse, inet6_rth_segments, and inet6_rth_getaddr. * inet/inet6_opt.c: New file. * inet/inet6_rth.c: New file. * inet/netinet/icmp6.h: Pretty printing.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1991-1997, 2001, 2003 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991-1997, 2001, 2003, 2006 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -89,7 +89,8 @@ struct ip6_rthdr0
|
||||
uint8_t ip6r0_segleft; /* segments left */
|
||||
uint8_t ip6r0_reserved; /* reserved field */
|
||||
uint8_t ip6r0_slmap[3]; /* strict/loose bit map */
|
||||
struct in6_addr ip6r0_addr[1]; /* up to 23 addresses */
|
||||
/* followed by up to 127 struct in6_addr */
|
||||
struct in6_addr ip6r0_addr[0];
|
||||
};
|
||||
|
||||
/* Fragment header */
|
||||
@@ -101,14 +102,14 @@ struct ip6_frag
|
||||
uint32_t ip6f_ident; /* identification */
|
||||
};
|
||||
|
||||
#if BYTE_ORDER == BIG_ENDIAN
|
||||
#define IP6F_OFF_MASK 0xfff8 /* mask out offset from _offlg */
|
||||
#define IP6F_RESERVED_MASK 0x0006 /* reserved bits in ip6f_offlg */
|
||||
#define IP6F_MORE_FRAG 0x0001 /* more-fragments flag */
|
||||
#if BYTE_ORDER == BIG_ENDIAN
|
||||
# define IP6F_OFF_MASK 0xfff8 /* mask out offset from _offlg */
|
||||
# define IP6F_RESERVED_MASK 0x0006 /* reserved bits in ip6f_offlg */
|
||||
# define IP6F_MORE_FRAG 0x0001 /* more-fragments flag */
|
||||
#else /* BYTE_ORDER == LITTLE_ENDIAN */
|
||||
#define IP6F_OFF_MASK 0xf8ff /* mask out offset from _offlg */
|
||||
#define IP6F_RESERVED_MASK 0x0600 /* reserved bits in ip6f_offlg */
|
||||
#define IP6F_MORE_FRAG 0x0100 /* more-fragments flag */
|
||||
# define IP6F_OFF_MASK 0xf8ff /* mask out offset from _offlg */
|
||||
# define IP6F_RESERVED_MASK 0x0600 /* reserved bits in ip6f_offlg */
|
||||
# define IP6F_MORE_FRAG 0x0100 /* more-fragments flag */
|
||||
#endif
|
||||
|
||||
/* IPv6 options */
|
||||
@@ -175,7 +176,7 @@ struct ip6_opt_router
|
||||
};
|
||||
|
||||
/* Router alert values (in network byte order) */
|
||||
#if BYTE_ORDER == BIG_ENDIAN
|
||||
#if BYTE_ORDER == BIG_ENDIAN
|
||||
# define IP6_ALERT_MLD 0x0000
|
||||
# define IP6_ALERT_RSVP 0x0001
|
||||
# define IP6_ALERT_AN 0x0002
|
||||
|
||||
Reference in New Issue
Block a user