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