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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
b90cb4c07160 Remove more newlines.
Thomas Klausner <tk@giga.or.at>
parents: 974
diff changeset
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 %%
"Welcome to our mercurial repository"