Mercurial > hg > freeDiameter
annotate libfdcore/fdd.l @ 1554:566bb46cc73f
Updated copyright information
author | Sebastien Decugis <sdecugis@freediameter.net> |
---|---|
date | Tue, 06 Oct 2020 21:34:53 +0800 |
parents | 239ba25870d8 |
children |
rev | line source |
---|---|
8
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
1 /********************************************************************************************************* |
3e143f047f78
Backup for the week-end
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:
662
diff
changeset
|
3 * Author: Sebastien Decugis <sdecugis@freediameter.net> * |
8
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
4 * * |
1554
566bb46cc73f
Updated copyright information
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1397
diff
changeset
|
5 * Copyright (c) 2019, WIDE Project and NICT * |
8
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
6 * All rights reserved. * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
7 * * |
3e143f047f78
Backup for the week-end
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 * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
9 * permitted provided that the following conditions are met: * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
10 * * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
11 * * Redistributions of source code must retain the above * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
12 * copyright notice, this list of conditions and the * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
13 * following disclaimer. * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
14 * * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
15 * * Redistributions in binary form must reproduce the above * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
16 * copyright notice, this list of conditions and the * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
17 * following disclaimer in the documentation and/or other * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
18 * materials provided with the distribution. * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
19 * * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
20 * * Neither the name of the WIDE Project or NICT nor the * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
21 * names of its contributors may be used to endorse or * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
22 * promote products derived from this software without * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
23 * specific prior written permission of WIDE Project and * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
24 * NICT. * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
25 * * |
3e143f047f78
Backup for the week-end
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 * |
3e143f047f78
Backup for the week-end
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 * |
3e143f047f78
Backup for the week-end
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 * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
29 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * |
3e143f047f78
Backup for the week-end
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 * |
3e143f047f78
Backup for the week-end
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 * |
3e143f047f78
Backup for the week-end
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 * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
33 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
34 *********************************************************************************************************/ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
35 |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
36 /* Lex configuration parser. |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
37 * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
38 * This file defines the token for parsing the daemon's configuration file |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
39 * Note that each extension has a separate independant configuration file. |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
40 * |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
41 * Note : This module is NOT thread-safe. All processing must be done from one thread only. |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
42 */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
43 %{ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
44 /* Include the daemon's header files */ |
658
f198d16fa7f4
Initial commit for 1.1.0:
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
578
diff
changeset
|
45 #include "fdcore-internal.h" |
8
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
46 /* Include yacc tokens definitions */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
47 #include "fdd.tab.h" |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
48 |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
49 /* Update the column information */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
50 #ifdef DEBUG_LEX |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
51 #define YY_USER_ACTION { \ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
52 yylloc->first_column = yylloc->last_column + 1; \ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
53 yylloc->last_column = yylloc->first_column + yyleng - 1; \ |
940
9b00b868e308
Change to debug function instead of error macro in fdd.l debug
Sebastien Decugis <sdecugis@freediameter.net>
parents:
928
diff
changeset
|
54 fd_log_debug( \ |
979 | 55 "(%d:%d-%d:%d) matched rule %d, length=%d, txt='%s'", \ |
8
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
56 yylloc->first_line, yylloc->first_column, \ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
57 yylloc->last_line, yylloc->last_column, \ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
58 yy_act, yyleng, yytext); \ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
59 } |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
60 #else /* DEBUG_LEX */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
61 #define YY_USER_ACTION { \ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
62 yylloc->first_column = yylloc->last_column + 1; \ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
63 yylloc->last_column = yylloc->first_column + yyleng - 1; \ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
64 } |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
65 #endif |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
66 |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
67 /* %option noinput ? */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
68 #define YY_NO_INPUT |
925
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
69 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
70 /* Additional for files inclusion */ |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
71 #include <glob.h> |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
72 #include <string.h> |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
73 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
74 #define MAX_NESTED_CONF_FILES 5 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
75 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
76 struct nested_conffiles_t { |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
77 YY_BUFFER_STATE parent_level_state; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
78 glob_t filelist; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
79 int current_file; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
80 } nested_conffiles[MAX_NESTED_CONF_FILES]; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
81 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
82 int current_nested_level = 0; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
83 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
84 int globerrfct(const char *epath, int eerrno) |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
85 { |
974
2091bf698fb1
Remove newlines from fd_log_debug, TRACE_DEBUG, TRACE_ERROR, and TRACE_DEBUG_ERROR
Thomas Klausner <tk@giga.or.at>
parents:
969
diff
changeset
|
86 TRACE_ERROR("Failed to scan %s: %s", epath, strerror(eerrno)); |
925
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
87 return 1; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
88 } |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
89 |
8
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
90 %} |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
91 |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
92 %option bison-bridge bison-locations |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
93 %option noyywrap |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
94 %option nounput |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
95 |
925
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
96 %x in_include |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
97 |
8
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
98 /* Quoted string. Multilines do not match. */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
99 qstring \"[^\"\n]*\" |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
100 |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
101 %% |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
102 <*>\n { |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
103 /* Update the line count */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
104 yylloc->first_line++; |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
105 yylloc->last_line++; |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
106 yylloc->last_column=0; |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
107 } |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
108 |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
109 <*>([[:space:]]{-}[\n])+ ; /* Eat all spaces, not new lines */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
110 <*>#.*$ ; /* Eat all comments */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
111 |
925
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
112 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
113 include BEGIN(in_include); |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
114 /* Following an "include" keyword */ |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
115 <in_include>{ |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
116 {qstring} { /* Name of the file to include. This is directly sent to glob. */ |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
117 int globerror=0; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
118 char * buf = strdup(yytext+1); |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
119 if (buf[yyleng-2] != '"') |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
120 { |
974
2091bf698fb1
Remove newlines from fd_log_debug, TRACE_DEBUG, TRACE_ERROR, and TRACE_DEBUG_ERROR
Thomas Klausner <tk@giga.or.at>
parents:
969
diff
changeset
|
121 TRACE_ERROR("Unterminated string: %s", yytext); |
925
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
122 return LEX_ERROR; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
123 } |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
124 buf[yyleng-2] = '\0'; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
125 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
126 if (current_nested_level >= MAX_NESTED_CONF_FILES) |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
127 { |
974
2091bf698fb1
Remove newlines from fd_log_debug, TRACE_DEBUG, TRACE_ERROR, and TRACE_DEBUG_ERROR
Thomas Klausner <tk@giga.or.at>
parents:
969
diff
changeset
|
128 TRACE_ERROR("Too many recursion levels in configuration files includes"); |
925
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
129 return LEX_ERROR; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
130 } |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
131 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
132 /* glob the include */ |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
133 globerror = glob(buf, GLOB_ERR, globerrfct, &nested_conffiles[current_nested_level].filelist); |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
134 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
135 if (globerror == GLOB_NOSPACE) |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
136 { |
974
2091bf698fb1
Remove newlines from fd_log_debug, TRACE_DEBUG, TRACE_ERROR, and TRACE_DEBUG_ERROR
Thomas Klausner <tk@giga.or.at>
parents:
969
diff
changeset
|
137 TRACE_ERROR("Not enough memory to parse include directive."); |
925
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
138 return LEX_ERROR; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
139 } |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
140 if (globerror == GLOB_ABORTED) |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
141 { |
974
2091bf698fb1
Remove newlines from fd_log_debug, TRACE_DEBUG, TRACE_ERROR, and TRACE_DEBUG_ERROR
Thomas Klausner <tk@giga.or.at>
parents:
969
diff
changeset
|
142 TRACE_ERROR("An error was encountered in include directive."); |
925
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
143 return LEX_ERROR; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
144 } |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
145 if (globerror == GLOB_NOMATCH) |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
146 { |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
147 globfree(&nested_conffiles[current_nested_level].filelist); |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
148 goto nomatch; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
149 } |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
150 if (globerror) |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
151 { |
974
2091bf698fb1
Remove newlines from fd_log_debug, TRACE_DEBUG, TRACE_ERROR, and TRACE_DEBUG_ERROR
Thomas Klausner <tk@giga.or.at>
parents:
969
diff
changeset
|
152 TRACE_ERROR("Unexpected error in glob (%d).", globerror); |
925
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
153 return LEX_ERROR; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
154 } |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
155 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
156 /* We have a list of files to include. */ |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
157 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
158 /* save the current buffer for returning when this include has been parsed */ |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
159 nested_conffiles[current_nested_level].parent_level_state = YY_CURRENT_BUFFER; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
160 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
161 /* Start with the first match */ |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
162 nested_conffiles[current_nested_level].current_file = 0; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
163 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
164 yyin = fopen( nested_conffiles[current_nested_level].filelist.gl_pathv[0], "r" ); |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
165 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
166 if ( ! yyin ) |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
167 { |
965
9b37f34c1b1f
Some modifications to logging code:
Sebastien Decugis <sdecugis@freediameter.net>
parents:
961
diff
changeset
|
168 TRACE_ERROR("Error in %s: %s", nested_conffiles[current_nested_level].filelist.gl_pathv[0], strerror(errno)); |
925
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
169 return LEX_ERROR; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
170 } |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
171 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
172 yy_switch_to_buffer(yy_create_buffer( yyin, YY_BUF_SIZE )); |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
173 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
174 /* In case of recursive includes */ |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
175 current_nested_level++; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
176 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
177 nomatch: |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
178 BEGIN(INITIAL); |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
179 } |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
180 } |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
181 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
182 <<EOF>> { |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
183 if (current_nested_level == 0) |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
184 { |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
185 /* We are at the end of parsing */ |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
186 yyterminate(); |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
187 } |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
188 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
189 /* Otherwise we are doing an include statement */ |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
190 --current_nested_level; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
191 yy_delete_buffer(YY_CURRENT_BUFFER); |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
192 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
193 /* Go to next file, if any */ |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
194 nested_conffiles[current_nested_level].current_file++; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
195 if ( nested_conffiles[current_nested_level].filelist.gl_pathv[nested_conffiles[current_nested_level].current_file] == NULL ) |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
196 { |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
197 /* We have finished with this list of includes */ |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
198 globfree(&nested_conffiles[current_nested_level].filelist); |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
199 yy_switch_to_buffer(nested_conffiles[current_nested_level].parent_level_state); |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
200 } |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
201 else |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
202 { |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
203 /* Proceed to next included file */ |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
204 yyin = fopen( nested_conffiles[current_nested_level].filelist.gl_pathv[nested_conffiles[current_nested_level].current_file], "r" ); |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
205 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
206 if ( ! yyin ) |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
207 { |
965
9b37f34c1b1f
Some modifications to logging code:
Sebastien Decugis <sdecugis@freediameter.net>
parents:
961
diff
changeset
|
208 TRACE_ERROR("Error in %s: %s", nested_conffiles[current_nested_level].filelist.gl_pathv[nested_conffiles[current_nested_level].current_file], strerror(errno)); |
925
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
209 return LEX_ERROR; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
210 } |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
211 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
212 yy_switch_to_buffer(yy_create_buffer( yyin, YY_BUF_SIZE )); |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
213 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
214 /* In case of recursive includes */ |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
215 current_nested_level++; |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
216 } |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
217 |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
218 } |
e5a09fab5ef3
Add support for 'include' in freeDiameter configuration file
Sebastien Decugis <sdecugis@freediameter.net>
parents:
918
diff
changeset
|
219 |
8
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
220 {qstring} { |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
221 /* First copy the string without the quotes for use in the yacc parser */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
222 CHECK_MALLOC_DO( yylval->string = strdup(yytext+1), /* This allocates one useless tail char but... it's easier :D */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
223 return LEX_ERROR );/* on error, trig an error in yacc parser */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
224 |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
225 yylval->string[yyleng-2] = '\0'; |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
226 |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
227 /* the yacc parser will check the string is valid */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
228 return QSTRING; |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
229 } |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
230 |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
231 [[:digit:]]+ { |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
232 /* Convert this to an integer value */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
233 int ret = sscanf(yytext, "%i", &yylval->integer); |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
234 if (ret != 1) { |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
235 /* No matching: an error occurred */ |
974
2091bf698fb1
Remove newlines from fd_log_debug, TRACE_DEBUG, TRACE_ERROR, and TRACE_DEBUG_ERROR
Thomas Klausner <tk@giga.or.at>
parents:
969
diff
changeset
|
236 TRACE_ERROR("Unable to convert the value '%s' to a valid number: %s", yytext, strerror(errno)); |
8
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
237 return LEX_ERROR; /* trig an error in yacc parser */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
238 /* Maybe we could REJECT instead of failing here? */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
239 } |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
240 return INTEGER; |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
241 } |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
242 |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
243 /* Full words tokens (keywords) */ |
1394
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
244 (?i:"Identity") { return IDENTITY; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
245 (?i:"Realm") { return REALM; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
246 (?i:"Port") { return PORT; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
247 (?i:"SecPort") { return SECPORT; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
248 /* (?i:"SctpSec3436") { return SEC3436; } */ |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
249 (?i:"No_IPv6") { return NOIP6; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
250 (?i:"No_IP") { return NOIP; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
251 (?i:"No_TCP") { return NOTCP; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
252 (?i:"No_SCTP") { return NOSCTP; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
253 (?i:"Prefer_TCP") { return PREFERTCP; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
254 (?i:"TLS_old_method") { return OLDTLS; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
255 (?i:"SCTP_streams") { return SCTPSTREAMS; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
256 (?i:"AppServThreads") { return APPSERVTHREADS; } |
1397
239ba25870d8
Allow parametrizing the number of threads for routing in/out.
Thomas Klausner <tk@giga.or.at>
parents:
1396
diff
changeset
|
257 (?i:"RoutingInThreads") { return ROUTINGINTHREADS; } |
239ba25870d8
Allow parametrizing the number of threads for routing in/out.
Thomas Klausner <tk@giga.or.at>
parents:
1396
diff
changeset
|
258 (?i:"RoutingOutThreads") { return ROUTINGOUTTHREADS; } |
239ba25870d8
Allow parametrizing the number of threads for routing in/out.
Thomas Klausner <tk@giga.or.at>
parents:
1396
diff
changeset
|
259 (?i:"IncomingQueueLimit") { return QINLIMIT; } |
239ba25870d8
Allow parametrizing the number of threads for routing in/out.
Thomas Klausner <tk@giga.or.at>
parents:
1396
diff
changeset
|
260 (?i:"OutgoingQueueLimit") { return QOUTLIMIT; } |
239ba25870d8
Allow parametrizing the number of threads for routing in/out.
Thomas Klausner <tk@giga.or.at>
parents:
1396
diff
changeset
|
261 (?i:"LocalQueueLimit") { return QLOCALLIMIT; } |
1394
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
262 (?i:"ListenOn") { return LISTENON; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
263 (?i:"ThreadsPerServer") { return THRPERSRV; } |
1396
188c82b6690b
Add ProcessingPeersPattern and ProcessingPeersMinimum parameters.
Thomas Klausner <tk@giga.or.at>
parents:
1394
diff
changeset
|
264 (?i:"ProcessingPeersPattern") { return PROCESSINGPEERSPATTERN; } |
188c82b6690b
Add ProcessingPeersPattern and ProcessingPeersMinimum parameters.
Thomas Klausner <tk@giga.or.at>
parents:
1394
diff
changeset
|
265 (?i:"ProcessingPeersMinimum") { return PROCESSINGPEERSMINIMUM; } |
1394
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
266 (?i:"TcTimer") { return TCTIMER; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
267 (?i:"TwTimer") { return TWTIMER; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
268 (?i:"NoRelay") { return NORELAY; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
269 (?i:"LoadExtension") { return LOADEXT; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
270 (?i:"ConnectPeer") { return CONNPEER; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
271 (?i:"ConnectTo") { return CONNTO; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
272 (?i:"No_TLS") { return NOTLS; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
273 (?i:"TLS_Cred") { return TLS_CRED; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
274 (?i:"TLS_CA") { return TLS_CA; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
275 (?i:"TLS_CRL") { return TLS_CRL; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
276 (?i:"TLS_Prio") { return TLS_PRIO; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
277 (?i:"TLS_DH_bits") { return TLS_DH_BITS; } |
f17a56536790
fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents:
1189
diff
changeset
|
278 (?i:"TLS_DH_file") { return TLS_DH_FILE; } |
1397
239ba25870d8
Allow parametrizing the number of threads for routing in/out.
Thomas Klausner <tk@giga.or.at>
parents:
1396
diff
changeset
|
279 (?i:"RouteRecordInAnswers") { return RR_IN_ANSWERS; } |
239ba25870d8
Allow parametrizing the number of threads for routing in/out.
Thomas Klausner <tk@giga.or.at>
parents:
1396
diff
changeset
|
280 (?i:"Never") { return NEVER; } |
239ba25870d8
Allow parametrizing the number of threads for routing in/out.
Thomas Klausner <tk@giga.or.at>
parents:
1396
diff
changeset
|
281 (?i:"Always") { return ALWAYS; } |
8
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
282 |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
283 |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
284 /* Valid single characters for yyparse */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
285 <*>[=,:;{}] { return yytext[0]; } |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
286 |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
287 /* Unrecognized token */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
288 <*>[[:alnum:]]+ | /* This rule is only useful to print a complete token in error messages */ |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
289 /* Unrecognized character */ |
918
46f9982b7d26
Use logging routines for configuration file parsing (based on patch by Thomas)
Sebastien Decugis <sdecugis@freediameter.net>
parents:
740
diff
changeset
|
290 <*>. { |
974
2091bf698fb1
Remove newlines from fd_log_debug, TRACE_DEBUG, TRACE_ERROR, and TRACE_DEBUG_ERROR
Thomas Klausner <tk@giga.or.at>
parents:
969
diff
changeset
|
291 TRACE_ERROR("Unrecognized text on line %d col %d: '%s'.", yylloc->first_line, yylloc->first_column, yytext); |
8
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
292 return LEX_ERROR; |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
293 } |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
294 |
3e143f047f78
Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
295 %% |