1 /* source: xio-ip6.h */
2 /* Copyright Gerhard Rieger and contributors (see file CHANGES) */
3 /* Published under the GNU General Public License V.2, see file COPYING */
5 #ifndef __xio_ip6_h_included
6 #define __xio_ip6_h_included 1
10 #ifndef INET6_ADDRSTRLEN
11 # define INET6_ADDRSTRLEN 46
14 extern const struct optdesc opt_ipv6_v6only
;
15 extern const struct optdesc opt_ipv6_join_group
;
16 extern const struct optdesc opt_ipv6_join_source_group
;
17 extern const struct optdesc opt_ipv6_pktinfo
;
18 extern const struct optdesc opt_ipv6_recvpktinfo
;
19 extern const struct optdesc opt_ipv6_rthdr
;
20 extern const struct optdesc opt_ipv6_recvrthdr
;
21 extern const struct optdesc opt_ipv6_authhdr
;
22 extern const struct optdesc opt_ipv6_dstopts
;
23 extern const struct optdesc opt_ipv6_recvdstopts
;
24 extern const struct optdesc opt_ipv6_hopopts
;
25 extern const struct optdesc opt_ipv6_unicast_hops
;
26 extern const struct optdesc opt_ipv6_recvhopopts
;
27 extern const struct optdesc opt_ipv6_flowinfo
;
28 extern const struct optdesc opt_ipv6_hoplimit
;
29 extern const struct optdesc opt_ipv6_recvhoplimit
;
30 extern const struct optdesc opt_ipv6_recverr
;
31 extern const struct optdesc opt_ipv6_tclass
;
32 extern const struct optdesc opt_ipv6_recvtclass
;
33 extern const struct optdesc opt_ipv6_recvpathmtu
;
35 extern int xioip6_pton(const char *src
, struct in6_addr
*dst
, const int ai_flags
[2]);
36 extern int xioparsenetwork_ip6(const char *rangename
, struct xiorange
*range
, const int ai_flags
[2]);
37 extern int xiorange_ip6andmask(struct xiorange
*range
);
40 int xiocheckrange_ip6(struct sockaddr_in6
*pa
, struct xiorange
*range
);
42 int xiolog_ancillary_ip6(struct single
*sfd
, struct cmsghdr
*cmsg
, int *num
, char *typbuff
, int typlen
, char *nambuff
, int namlen
, char *envbuff
, int envlen
, char *valbuff
, int vallen
);
44 xiosetsockaddrenv_ip6(int idx
, char *namebuff
, size_t namelen
,
45 char *valuebuff
, size_t valuelen
,
46 struct sockaddr_in6
*sa
, int ipproto
);
47 extern int xioapply_ipv6_join_group(xiosingle_t
*xfd
, struct opt
*opt
);
49 extern int xiotype_ip6_join_source_group(char* token
, const struct optname
*ent
, struct opt
*opt
);
50 extern int xioapply_ip6_join_source_group(struct single
*xfd
, struct opt
*opt
);
54 #endif /* !defined(__xio_ip6_h_included) */