1 /* $NetBSD: inet_proto.h,v 1.2 2022/10/08 16:12:50 christos Exp $ */ 2 3 #ifndef _INET_PROTO_INFO_H_INCLUDED_ 4 #define _INET_PROTO_INFO_H_INCLUDED_ 5 6 /*++ 7 /* NAME 8 /* inet_proto_info 3h 9 /* SUMMARY 10 /* convert protocol names to assorted constants 11 /* SYNOPSIS 12 /* #include <inet_proto_info.h> 13 DESCRIPTION 14 .nf 15 16 /* 17 * External interface. 18 */ 19 typedef struct { 20 unsigned int ai_family; /* PF_UNSPEC, PF_INET, or PF_INET6 */ 21 unsigned int *ai_family_list; /* PF_INET and/or PF_INET6 */ 22 unsigned int *dns_atype_list; /* TAAAA and/or TA */ 23 unsigned char *sa_family_list; /* AF_INET6 and/or AF_INET */ 24 } INET_PROTO_INFO; 25 26 /* 27 * Some compilers won't link initialized data unless we call a function in 28 * the same source file. Therefore, inet_proto_info() is a function instead 29 * of a global variable. 30 */ 31 #define inet_proto_info() \ 32 (inet_proto_table ? (const INET_PROTO_INFO*) inet_proto_table : \ 33 inet_proto_init("default protocol setting", DEF_INET_PROTOCOLS)) 34 35 extern const INET_PROTO_INFO *inet_proto_init(const char *, const char *); 36 extern INET_PROTO_INFO *inet_proto_table; 37 38 #define INET_PROTO_NAME_IPV6 "ipv6" 39 #define INET_PROTO_NAME_IPV4 "ipv4" 40 #define INET_PROTO_NAME_ALL "all" 41 42 /* LICENSE 43 /* .ad 44 /* .fi 45 /* The Secure Mailer license must be distributed with this software. 46 /* AUTHOR(S) 47 /* Wietse Venema 48 /* IBM T.J. Watson Research 49 /* P.O. Box 704 50 /* Yorktown Heights, NY 10598, USA 51 /* 52 /* Wietse Venema 53 /* Google, Inc. 54 /* 111 8th Avenue 55 /* New York, NY 10011, USA 56 /*--*/ 57 58 #endif 59