annotate libfdcore/fdd.l @ 1396:188c82b6690b

Add ProcessingPeersPattern and ProcessingPeersMinimum parameters. If this is configured, the process will accept all connections from peers matching ProcessingPeersPattern, but will NOT accept connections from other peers until ProcessingPeersMinimum peers of the first type are connected. This allows relays to only go online if there are enough worker peers connected behind them.
author Thomas Klausner <tk@giga.or.at>
date Fri, 15 Nov 2019 11:38:30 +0100
parents f17a56536790
children 239ba25870d8
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 * *
928
5053f1abcf5d Updated copyright information
Sebastien Decugis <sdecugis@freediameter.net>
parents: 925
diff changeset
5 * Copyright (c) 2013, 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; }
f17a56536790 fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents: 1189
diff changeset
257 (?i:"ListenOn") { return LISTENON; }
f17a56536790 fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents: 1189
diff changeset
258 (?i:"ThreadsPerServer") { return THRPERSRV; }
1396
188c82b6690b Add ProcessingPeersPattern and ProcessingPeersMinimum parameters.
Thomas Klausner <tk@giga.or.at>
parents: 1394
diff changeset
259 (?i:"ProcessingPeersPattern") { return PROCESSINGPEERSPATTERN; }
188c82b6690b Add ProcessingPeersPattern and ProcessingPeersMinimum parameters.
Thomas Klausner <tk@giga.or.at>
parents: 1394
diff changeset
260 (?i:"ProcessingPeersMinimum") { return PROCESSINGPEERSMINIMUM; }
1394
f17a56536790 fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents: 1189
diff changeset
261 (?i:"TcTimer") { return TCTIMER; }
f17a56536790 fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents: 1189
diff changeset
262 (?i:"TwTimer") { return TWTIMER; }
f17a56536790 fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents: 1189
diff changeset
263 (?i:"NoRelay") { return NORELAY; }
f17a56536790 fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents: 1189
diff changeset
264 (?i:"LoadExtension") { return LOADEXT; }
f17a56536790 fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents: 1189
diff changeset
265 (?i:"ConnectPeer") { return CONNPEER; }
f17a56536790 fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents: 1189
diff changeset
266 (?i:"ConnectTo") { return CONNTO; }
f17a56536790 fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents: 1189
diff changeset
267 (?i:"No_TLS") { return NOTLS; }
f17a56536790 fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents: 1189
diff changeset
268 (?i:"TLS_Cred") { return TLS_CRED; }
f17a56536790 fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents: 1189
diff changeset
269 (?i:"TLS_CA") { return TLS_CA; }
f17a56536790 fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents: 1189
diff changeset
270 (?i:"TLS_CRL") { return TLS_CRL; }
f17a56536790 fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents: 1189
diff changeset
271 (?i:"TLS_Prio") { return TLS_PRIO; }
f17a56536790 fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents: 1189
diff changeset
272 (?i:"TLS_DH_bits") { return TLS_DH_BITS; }
f17a56536790 fdd.l: whitespace simplification
Thomas Klausner <tk@giga.or.at>
parents: 1189
diff changeset
273 (?i:"TLS_DH_file") { return TLS_DH_FILE; }
8
3e143f047f78 Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
274
3e143f047f78 Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
275
3e143f047f78 Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
276 /* Valid single characters for yyparse */
3e143f047f78 Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
277 <*>[=,:;{}] { return yytext[0]; }
3e143f047f78 Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
278
3e143f047f78 Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
279 /* Unrecognized token */
3e143f047f78 Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
280 <*>[[: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
281 /* 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
282 <*>. {
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
283 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
284 return LEX_ERROR;
3e143f047f78 Backup for the week-end
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff changeset
285 }
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 %%
"Welcome to our mercurial repository"