/usr/include/postfix/cidr_match.h is in postfix-dev 2.9.1-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | #ifndef _CIDR_MATCH_H_INCLUDED_
#define _CIDR_MATCH_H_INCLUDED_
/*++
/* NAME
/* dict_cidr 3h
/* SUMMARY
/* CIDR-style pattern matching
/* SYNOPSIS
/* #include <cidr_match.h>
/* DESCRIPTION
/* .nf
/*
* System library.
*/
#include <limits.h> /* CHAR_BIT */
/*
* Utility library.
*/
#include <myaddrinfo.h> /* MAI_V6ADDR_BYTES etc. */
#include <vstring.h>
/*
* External interface.
*
* Address length is protocol dependent. Find out how large our address byte
* strings should be.
*/
#ifdef HAS_IPV6
# define CIDR_MATCH_ABYTES MAI_V6ADDR_BYTES
#else
# define CIDR_MATCH_ABYTES MAI_V4ADDR_BYTES
#endif
/*
* Each parsed CIDR pattern can be member of a linked list.
*/
typedef struct CIDR_MATCH {
unsigned char net_bytes[CIDR_MATCH_ABYTES]; /* network portion */
unsigned char mask_bytes[CIDR_MATCH_ABYTES]; /* network mask */
unsigned char addr_family; /* AF_XXX */
unsigned char addr_byte_count; /* typically, 4 or 16 */
unsigned char addr_bit_count; /* optimization */
unsigned char mask_shift; /* optimization */
struct CIDR_MATCH *next; /* next entry */
} CIDR_MATCH;
extern VSTRING *cidr_match_parse(CIDR_MATCH *, char *, VSTRING *);
extern CIDR_MATCH *cidr_match_execute(CIDR_MATCH *, const char *);
/* LICENSE
/* .ad
/* .fi
/* The Secure Mailer license must be distributed with this software.
/* AUTHOR(S)
/* Wietse Venema
/* IBM T.J. Watson Research
/* P.O. Box 704
/* Yorktown Heights, NY 10598, USA
/*--*/
#endif
|