annotate extensions/acl_wl/aw_conf.l @ 1554:566bb46cc73f

Updated copyright information
author Sebastien Decugis <sdecugis@freediameter.net>
date Tue, 06 Oct 2020 21:34:53 +0800
parents 0dff6a604b0a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
161
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
1 /*********************************************************************************************************
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
2 * Software License Agreement (BSD License) *
740
4a9f08d6b6ba Updated my mail address
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 258
diff changeset
3 * Author: Sebastien Decugis <sdecugis@freediameter.net> *
161
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
4 * *
1554
566bb46cc73f Updated copyright information
Sebastien Decugis <sdecugis@freediameter.net>
parents: 1354
diff changeset
5 * Copyright (c) 2019, WIDE Project and NICT *
161
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
6 * All rights reserved. *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
7 * *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
8 * Redistribution and use of this software in source and binary forms, with or without modification, are *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
9 * permitted provided that the following conditions are met: *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
10 * *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
11 * * Redistributions of source code must retain the above *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
12 * copyright notice, this list of conditions and the *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
13 * following disclaimer. *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
14 * *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
15 * * Redistributions in binary form must reproduce the above *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
16 * copyright notice, this list of conditions and the *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
17 * following disclaimer in the documentation and/or other *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
18 * materials provided with the distribution. *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
19 * *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
20 * * Neither the name of the WIDE Project or NICT nor the *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
21 * names of its contributors may be used to endorse or *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
22 * promote products derived from this software without *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
23 * specific prior written permission of WIDE Project and *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
24 * NICT. *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
25 * *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
27 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
28 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
29 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
30 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
31 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
32 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
33 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
34 *********************************************************************************************************/
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
35
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
36 /* Lex extension's configuration parser.
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
37 *
1354
0dff6a604b0a acl_wl: add reload support using SIGUSR1
Thomas Klausner <tk@giga.or.at>
parents: 1057
diff changeset
38 * The configuration file contains a default priority, and a list of peers with optional overwrite priority.
161
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
39 * -- see the app_test.conf.sample file for more detail.
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
40 */
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
41
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
42 %{
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
43 #include "acl_wl.h"
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
44 /* Include yacc tokens definitions */
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
45 #include "aw_conf.tab.h"
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
46
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
47 /* Update the column information */
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
48 #define YY_USER_ACTION { \
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
49 yylloc->first_column = yylloc->last_column + 1; \
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
50 yylloc->last_column = yylloc->first_column + yyleng - 1; \
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
51 }
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
52
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
53 /* Avoid warning with newer flex */
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
54 #define YY_NO_INPUT
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
55
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
56 static int curflag = 0;
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
57
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
58 %}
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
59
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
60 %option bison-bridge bison-locations
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
61 %option noyywrap
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
62 %option nounput
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
63
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
64 %%
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
65
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
66 /* Update the line count, reset flag value */
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
67 \n {
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
68 yylloc->first_line++;
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
69 yylloc->last_line++;
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
70 yylloc->last_column=0;
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
71 curflag = 0;
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
72 }
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
73
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
74 /* Eat all spaces but not new lines */
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
75 ([[:space:]]{-}[\n])+ ;
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
76 /* Eat all comments */
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
77 #.*$ ;
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
78
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
79 /* Match the two allowed flags directly in LEX */
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
80 ALLOW_IPSEC {
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
81 curflag |= PI_SEC_NONE;
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
82 }
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
83
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
84 ALLOW_OLD_TLS {
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
85 curflag |= PI_SEC_TLS_OLD;
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
86 }
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
87
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
88 /* Any other string is considered a fqdn or partial fqdn with a star. The star can only be the first label. */
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
89 (\*|[[:alnum:]][[:alnum:]-]*)(\.[[:alnum:]][[:alnum:]-]*)+ {
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
90 /* We matched a valid label, let's directly save it into the tree. The function will issue the appropriate warnings. */
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
91 CHECK_FCT_DO( aw_tree_add(yytext, curflag), return LEX_ERROR);
1057
1c6c8fa622ff Use yylval to make gcc happy
Sebastien Decugis <sdecugis@freediameter.net>
parents: 974
diff changeset
92 yylval->string = yytext;
161
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
93 return FQDN;
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
94 }
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
95
926
69d55a534aff Improve configuration parser of acl_wl extension, to avoid errors sent on stdout/stderr
Sebastien Decugis <sdecugis@freediameter.net>
parents: 741
diff changeset
96 /* No match */
69d55a534aff Improve configuration parser of acl_wl extension, to avoid errors sent on stdout/stderr
Sebastien Decugis <sdecugis@freediameter.net>
parents: 741
diff changeset
97 <*>[[:alnum:]]+ | /* This rule is only useful to print a complete token in error messages */
69d55a534aff Improve configuration parser of acl_wl extension, to avoid errors sent on stdout/stderr
Sebastien Decugis <sdecugis@freediameter.net>
parents: 741
diff changeset
98 <*>. {
974
2091bf698fb1 Remove newlines from fd_log_debug, TRACE_DEBUG, TRACE_ERROR, and TRACE_DEBUG_ERROR
Thomas Klausner <tk@giga.or.at>
parents: 965
diff changeset
99 TRACE_ERROR("Unrecognized text on line %d col %d: '%s'.", yylloc->first_line, yylloc->first_column, yytext);
926
69d55a534aff Improve configuration parser of acl_wl extension, to avoid errors sent on stdout/stderr
Sebastien Decugis <sdecugis@freediameter.net>
parents: 741
diff changeset
100 return LEX_ERROR;
69d55a534aff Improve configuration parser of acl_wl extension, to avoid errors sent on stdout/stderr
Sebastien Decugis <sdecugis@freediameter.net>
parents: 741
diff changeset
101 }
69d55a534aff Improve configuration parser of acl_wl extension, to avoid errors sent on stdout/stderr
Sebastien Decugis <sdecugis@freediameter.net>
parents: 741
diff changeset
102
161
645ff1487c23 Draft for ACL white-list extension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
103 %%
"Welcome to our mercurial repository"