1    | #ifndef READ_WHICH_KEYTYPES
2    | #define READ_WHICH_KEYTYPES
3    | 
4    | /***************************************
5    |   $Revision: 1.11 $
6    | 
7    |   Which Keytypes module (wk)
8    | 
9    |   Status: NOT REVUED, NOT TESTED
10   | 
11   |   ******************/ /******************
12   |   Copyright (c) 1999                              RIPE NCC
13   |  
14   |   All Rights Reserved
15   |   
16   |   Permission to use, copy, modify, and distribute this software and its
17   |   documentation for any purpose and without fee is hereby granted,
18   |   provided that the above copyright notice appear in all copies and that
19   |   both that copyright notice and this permission notice appear in
20   |   supporting documentation, and that the name of the author not be
21   |   used in advertising or publicity pertaining to distribution of the
22   |   software without specific, written prior permission.
23   |   
24   |   THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
25   |   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS; IN NO EVENT SHALL
26   |   AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
27   |   DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
28   |   AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
29   |   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
30   |   ***************************************/
31   | #include "bitmask.h"
32   | 
33   | /*+ Enumeration of which keytypes: +*/
34   | typedef enum WK_Type_t {
35   |   WK_NAME=0,         /*+ A name                              +*/
36   |   WK_NIC_HDL,        /*+ NIC_HDL                             +*/
37   |   WK_EMAIL,          /*+ RFC822 e-mail address               +*/
38   |   WK_MNTNER,         /*+ Maintainer name                     +*/
39   |   WK_KEY_CERT,       /*+ PGPKEY                              +*/
40   |   WK_IPADDRESS,      /*+ IP address                          +*/
41   |   WK_IPRANGE,        /*+ IP range                            +*/
42   |   WK_IPPREFIX,       /*+ IP prefix                           +*/
43   |   WK_IP6PREFIX,      /*+ IPv6 prefix                         +*/
44   |   WK_NETNAME,        /*+ Network name                        +*/
45   |   WK_NET6NAME,       /*+ IPv6 Network name                   +*/
46   |   WK_AUTNUM,         /*+ AS number                           +*/
47   |   WK_ASSETNAME,      /*+ AS set name                         +*/
48   |   WK_ROUTESETNAME,   /*+ Route set name                      +*/
49   |   WK_DOMAIN,         /*+ Domain name                         +*/
50   |   WK_HOSTNAME,       /*+ Host name                           +*/
51   |   WK_LIMERICK,       /*+ Limerick name                       +*/
52   |   WK_ASRANGE,        /*+ AS range (possibly only beginning)  +*/
53   |   WK_FILTERSET,      /*+ filter-set name                     +*/
54   |   WK_PEERINGSET,     /*+ peering-set name                    +*/
55   |   WK_RTRSET,         /*+ router-set name                     +*/
56   |   WK_END
57   | } WK_Type;
58   | 
59   | /* for easy maintenance, the tables that depend on the enums are defined here.
60   |    They must be kept in sync with each other. Also, the WK_new function must
61   |    be kept in sync!!!
62   | 
63   |    Guarded with WK_IMPL so that they are compiled only once, inside wk.c
64   |  */ 
65   | #ifdef WK_IMPL
66   | char * const Keytypes[] = {
67   |   "name",
68   |   "nic_hdl",
69   |   "email",
70   |   "mntner",
71   |   "key_cert",
72   |   "ipaddress",
73   |   "iprange",
74   |   "ipprefix",
75   |   "ip6prefix",
76   |   "netname",
77   |   "net6name",
78   |   "autnum",
79   |   "assetname",
80   |   "routesetname",
81   |   "domain",
82   |   "hostname",
83   |   "limerick",
84   |   "asrange",
85   |   NULL
86   | }; /* Keytypes[] */
87   | 
88   | #endif 
89   | 
90   | char *WK_to_string(mask_t wk);
91   | mask_t WK_new(char *key);
92   | 
93   | #endif /* READ_WHICH_KEYTYPES */