annotate extensions/app_diameap/diameap.y @ 511:17435072de36

Search extensions conf files in the main configuration folder also
author Sebastien Decugis <sdecugis@nict.go.jp>
date Fri, 20 Aug 2010 15:18:58 +0900
parents 0c6e50a5291d
children 64e55fc10ab3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
425
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
1 /*****************************************************************************************************
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
2 * Software License Agreement (BSD License)
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
3 * Author : Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
4 *
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
5 * Copyright (c) 2009-2010, Souheil Ben Ayed, Teraoka Laboratory of Keio University, and the WIDE Project
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
6 * All rights reserved.
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
7 *
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
8 * Redistribution and use of this software in source and binary forms, with or without
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
9 * modification, are permitted provided that the following conditions are met:
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
10 *
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
11 * 1. Redistributions of source code must retain the above copyright
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
12 * notice, this list of conditions and the following disclaimer.
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
13 *
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
14 * 2. Redistributions in binary form must reproduce the above copyright
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
15 * notice, this list of conditions and the following disclaimer in the
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
16 * documentation and/or other materials provided with the distribution.
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
17 *
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
18 * 3. All advertising materials mentioning features or use of this software
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
19 * must display the following acknowledgement:
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
20 * This product includes software developed by Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>.
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
21 *
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
22 * 4. Neither the name of Souheil Ben Ayed, Teraoka Laboratory of Keio University or the WIDE Project nor the
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
23 * names of its contributors may be used to endorse or promote products
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
24 * derived from this software without specific prior written permission.
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
25 *
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' AND ANY
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
27 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
28 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
29 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
30 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
31 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
32 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
33 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
34 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
35 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
36 *****************************************************************************************************/
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
37
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
38
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
39 %{
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
40 #include <stdio.h>
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
41 #include "diameap_common.h"
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
42 #include "diameap.tab.h"
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
43
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
44 void yyerror (YYLTYPE *llocp, struct diameap_conf * config, const char *s);
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
45
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
46 extern int yywrap();
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
47 extern int yylex();
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
48
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
49
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
50 /* The Lex parser prototype */
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
51 int diameaplex(YYSTYPE *lvalp, YYLTYPE *llocp);
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
52
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
53
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
54 %}
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
55
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
56 %locations
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
57 %parse-param {struct diameap_conf * config}
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
58 %pure_parser
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
59 /*%defines */
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
60 %error-verbose
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
61 %debug
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
62
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
63 %union {
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
64 char *str;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
65 int val;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
66 char byte;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
67 }
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
68
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
69
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
70
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
71 /* In case of error in the lexical analysis */
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
72 %token LEX_ERROR
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
73
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
74 %token <val> NUM
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
75
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
76 %token <str> iSTRING
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
77
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
78 %token <byte> iBYTE
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
79
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
80 %token EAPMETHOD
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
81 %token AUTHORIZE
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
82 %token MODE
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
83 %token DIAMEAP_MYSQL
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
84 %token MAX_INVALID_EAP_PACKET
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
85 %token MULTI_ROUND_TIMEOUT
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
86
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
87 %%
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
88
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
89 confparams : /* empty */
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
90 | confparams EAPmethod
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
91 | confparams Authorize
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
92 | confparams DiamEAP_MySQL
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
93 | confparams MAX_Invalid_EAP_Packet
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
94 | confparams Multi_Round_Timeout
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
95 | confparams errors
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
96 {
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
97 yyerror(&yylloc, config, "Unrecognized configuration parameter.");
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
98 return EINVAL;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
99 }
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
100 ;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
101
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
102 errors : LEX_ERROR
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
103 | error
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
104 ;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
105
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
106
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
107 EAPmethod : EAPMETHOD '=' iSTRING ':' NUM ':' NUM ':' iSTRING ':' iSTRING ';'
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
108 {
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
109 char * infile, *cfile;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
110 FILE * fl;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
111
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
112 infile = $9;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
113 fl = fopen(infile, "r");
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
114 if ((fl == NULL) && (*infile != '/')) {
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
115 char * tmpfile=infile;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
116 CHECK_MALLOC_DO( infile = malloc( strlen(tmpfile) + strlen(DEFAULT_EXTENSIONS_PATH) + 2 ),
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
117 { yyerror (&yylloc, config, "Not enough memory"); YYERROR; } );
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
118 sprintf(infile, DEFAULT_EXTENSIONS_PATH "/%s", tmpfile);
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
119 free(tmpfile);
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
120 fl = fopen(infile, "r");
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
121 }
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
122 if (fl == NULL) {
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
123 int ret = errno;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
124 TRACE_DEBUG(INFO, "Unable to open %s plugin file %s for reading: %s\n", $3, infile, strerror(ret));
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
125 yyerror (&yylloc, config, "Error adding EAP Plugin");
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
126 YYERROR;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
127 }
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
128 fclose(fl);
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
129
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
130 cfile = $11;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
131
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
132 if(strlen(cfile)>0){
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
133 fl = fopen(cfile, "r");
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
134 if ((fl == NULL) && (*cfile != '/')) {
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
135 char * tmp = cfile;
511
17435072de36 Search extensions conf files in the main configuration folder also
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 425
diff changeset
136 CHECK_MALLOC_DO( cfile = malloc( strlen(tmp) + strlen(DEFAULT_CONF_PATH) + 2 ),
425
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
137 { yyerror (&yylloc, config, "Not enough memory"); YYERROR; } );
511
17435072de36 Search extensions conf files in the main configuration folder also
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 425
diff changeset
138 sprintf(cfile, DEFAULT_CONF_PATH "/%s", tmp);
425
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
139 free(tmp);
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
140 fl = fopen(cfile, "r");
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
141 }
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
142 if (fl == NULL) {
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
143
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
144 }
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
145 if(fl)
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
146 fclose(fl);
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
147 }
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
148
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
149 diameap_plugin_add($3,(char)$5,(char)$7,infile,cfile);
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
150 }
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
151 ;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
152
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
153 Authorize : AUTHORIZE '=' NUM ';'
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
154 {
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
155 if((int)$3)
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
156 config->authorize=1;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
157 }
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
158 ;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
159
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
160
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
161 DiamEAP_MySQL : DIAMEAP_MYSQL '=' iSTRING ',' iSTRING ',' iSTRING ',' iSTRING ';'
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
162 {
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
163 diameap_set_mysql_param($3,$5,$7,$9);
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
164 }
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
165 ;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
166
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
167 MAX_Invalid_EAP_Packet : MAX_INVALID_EAP_PACKET '=' NUM ';'
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
168 {
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
169 config->max_invalid_eap_packet=(int)$3;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
170 };
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
171
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
172 Multi_Round_Timeout : MULTI_ROUND_TIMEOUT '=' NUM ';'
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
173 {
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
174 config->multi_round_time_out=(unsigned int)$3;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
175 };
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
176
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
177
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
178 %%
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
179
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
180 void yyerror(YYLTYPE *llocp, struct diameap_conf * config,const char *str)
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
181 {
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
182 fprintf(stderr,"Error in %s ( on line %i column %i -> line %i column %i) : %s\n",config->conffile, llocp->first_line, llocp->first_column, llocp->last_line, llocp->last_column, str);
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
183 }
"Welcome to our mercurial repository"