added X.509 trust chain verification
[strongswan.git] / src / libstrongswan / definitions.c
1 /**
2 * @file definitions.c
3 *
4 * @brief General purpose definitions and macros.
5 *
6 */
7
8 /*
9 * Copyright (C) 2005 Jan Hutter, Martin Willi
10 * Hochschule fuer Technik Rapperswil
11 *
12 * This program is free software; you can redistribute it and/or modify it
13 * under the terms of the GNU General Public License as published by the
14 * Free Software Foundation; either version 2 of the License, or (at your
15 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
16 *
17 * This program is distributed in the hope that it will be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
19 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
20 * for more details.
21 */
22
23 #include <stdlib.h>
24
25 #include "definitions.h"
26
27 /*
28 * Described in header.
29 */
30 char *mapping_find(mapping_t * maps, int value)
31 {
32 int i = 0;
33 while (maps[i].value != MAPPING_END)
34 {
35 if (maps[i].value == value)
36 {
37 return maps[i].string;
38 }
39 i++;
40 }
41 return "INVALID MAPPING";
42 }
43
44 /*
45 * Described in header
46 */
47 const char *enum_name(enum_names *ed, unsigned long val)
48 {
49 enum_names *p;
50
51 for (p = ed; p != NULL; p = p->en_next_range)
52 {
53 if (p->en_first <= val && val <= p->en_last)
54 return p->en_names[val - p->en_first];
55 }
56 return NULL;
57 }
58