Home | History | Annotate | Line # | Download | only in util
      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