Mercurial > hg > freeDiameter
annotate extensions/app_diameap/diameap_eap.c @ 1417:0918e88f7c33
fix warnings detected by Apple clang 11.0.0
author | Luke Mewburn <luke@mewburn.net> |
---|---|
date | Tue, 18 Feb 2020 19:12:16 +1100 |
parents | 100a0925f809 |
children |
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 #include "diameap_common.h" |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
39 |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
40 static void diameap_ba_nextid(struct eap_state_machine * sm, int * id) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
41 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
42 TRACE_ENTRY("%p %p",sm,id); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
43 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
44 if (sm->currentId < 0) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
45 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
46 *id = (u8) (255 * rand() / RAND_MAX) & 0xFFU; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
47 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
48 else |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
49 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
50 *id = (sm->currentId++) & 0xFFU; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
51 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
52 if (*id == sm->lastId) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
53 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
54 *id=*id+1; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
55 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
56 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
57 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
58 static void diameap_ba_policyupdate(struct eap_state_machine * eap_sm, |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
610
diff
changeset
|
59 struct eap_packet *eapPacket) |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
60 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
61 TRACE_ENTRY("%p %p",eap_sm, eapPacket); |
1417
0918e88f7c33
fix warnings detected by Apple clang 11.0.0
Luke Mewburn <luke@mewburn.net>
parents:
1151
diff
changeset
|
62 if (eap_sm->respMethod == TYPE_NAK) |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
63 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
64 int id; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
65 eap_sm->user.pmethods = 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
66 u32 vendor; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
67 eap_type type; |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
610
diff
changeset
|
68 u8 *data = (u8 *) eapPacket->data; |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
69 data += 5; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
70 id = 5; |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
610
diff
changeset
|
71 while (id < eapPacket->length) |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
72 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
73 vendor = VENDOR_IETF; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
74 type = G8(data); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
75 if (diameap_plugin_exist(vendor, type) == TRUE) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
76 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
77 eap_sm->user.proposedmethods[id - 5].method = type; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
78 eap_sm->user.proposedmethods[id - 5].vendor = vendor; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
79 eap_sm->user.pmethods++; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
80 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
81 data++; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
82 id++; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
83 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
84 eap_sm->user.methodId = -1; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
85 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
86 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
87 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
88 static int diameap_ba_policygetnextmethod(struct eap_state_machine * eap_sm, |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
89 eap_type * eaptype, u32 * vendor) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
90 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
91 TRACE_ENTRY("%p %p %p",eap_sm,eaptype,vendor); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
92 *vendor = 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
93 *eaptype = TYPE_NONE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
94 if (eap_sm == NULL) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
95 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
96 return EINVAL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
97 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
98 |
1151
100a0925f809
Fix a number of issues reported by cppcheck: http://lists.freediameter.net/pipermail/dev/2013-May/000214.html
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1075
diff
changeset
|
99 eap_sm->selectedMethod = NULL; |
100a0925f809
Fix a number of issues reported by cppcheck: http://lists.freediameter.net/pipermail/dev/2013-May/000214.html
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1075
diff
changeset
|
100 |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
101 if (eap_sm->user.userid == NULL) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
102 { |
1417
0918e88f7c33
fix warnings detected by Apple clang 11.0.0
Luke Mewburn <luke@mewburn.net>
parents:
1151
diff
changeset
|
103 if (eap_sm->currentMethod == TYPE_NONE) |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
104 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
105 *vendor = VENDOR_IETF; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
106 *eaptype = TYPE_IDENTITY; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
107 if (eap_sm->selectedMethod != NULL) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
108 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
109 (*eap_sm->selectedMethod->eap_method_free)(eap_sm->methodData); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
110 eap_sm->methodData = NULL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
111 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
112 CHECK_FCT(diameap_plugin_get(VENDOR_IETF,TYPE_IDENTITY,&eap_sm->selectedMethod)); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
113 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
114 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
115 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
116 eap_sm->selectedMethod = NULL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
117 *vendor = 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
118 *eaptype = TYPE_NONE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
119 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
120 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
121 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
122 if (eap_sm->user.methodId == -1) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
123 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
124 if (eap_sm->user.proposed_eap_method >= TYPE_EAP_MD5) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
125 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
126 *vendor = eap_sm->user.proposed_eap_method_vendor; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
127 if (*vendor == VENDOR_IETF) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
128 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
129 *eaptype = eap_sm->user.proposed_eap_method; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
130 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
131 else |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
132 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
133 *eaptype = TYPE_EXPANDED_TYPES; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
134 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
135 if (eap_sm->selectedMethod != NULL) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
136 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
137 (*eap_sm->selectedMethod->eap_method_free)(eap_sm->methodData); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
138 eap_sm->methodData = NULL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
139 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
140 CHECK_FCT_DO(diameap_plugin_get(*vendor,*eaptype,&eap_sm->selectedMethod), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
141 { TRACE_DEBUG(INFO,"%s [EAP Protocol] Invalid EAP-TYPE %d (vendor %d)",DIAMEAP_EXTENSION,*eaptype,*vendor);return 1;}); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
142 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
143 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
144 eap_sm->user.proposed_eap_method = TYPE_NONE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
145 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
146 else |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
147 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
148 *vendor = eap_sm->user.proposedmethods[eap_sm->user.methodId].vendor; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
149 if (eap_sm->user.proposedmethods[eap_sm->user.methodId].vendor |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
150 == VENDOR_IETF) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
151 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
152 *eaptype |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
153 = eap_sm->user.proposedmethods[eap_sm->user.methodId].method; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
154 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
155 else |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
156 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
157 *eaptype = TYPE_EXPANDED_TYPES; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
158 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
159 if (eap_sm->selectedMethod != NULL) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
160 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
161 (*eap_sm->selectedMethod->eap_method_free)(eap_sm->methodData); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
162 eap_sm->methodData=NULL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
163 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
164 CHECK_FCT(diameap_plugin_get(eap_sm->user.proposedmethods[eap_sm->user.methodId].vendor,eap_sm->user.proposedmethods[eap_sm->user.methodId].method,&eap_sm->selectedMethod)); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
165 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
166 eap_sm->user.methodId++; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
167 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
168 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
169 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
170 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
171 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
172 static int diameap_ba_policygetdecision(struct eap_state_machine * eap_sm, |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
173 struct diameap_eap_interface * eap_i, decision * gdecision) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
174 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
175 TRACE_ENTRY("%p %p %p",eap_sm,eap_i,gdecision); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
176 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
177 if (eap_sm->user.userid != NULL) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
178 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
179 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
180 if (eap_sm->methodState == EAP_M_END) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
181 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
182 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
183 if (eap_sm->respMethod == TYPE_IDENTITY) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
184 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
185 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
186 *gdecision = DECISION_CONTINUE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
187 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
188 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
189 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
190 if ((eap_sm->respMethod == TYPE_NAK) || ((eap_sm->respMethod |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
191 == TYPE_EXPANDED_TYPES) && (eap_sm->respVendor |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
192 == VENDOR_IETF) && (eap_sm->respVendorMethod == TYPE_NAK))) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
193 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
194 goto SelectNextMethod; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
195 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
196 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
197 if (eap_sm->user.success == TRUE) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
198 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
199 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
200 *gdecision = DECISION_SUCCESS; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
201 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
202 else |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
203 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
204 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
205 *gdecision = DECISION_FAILURE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
206 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
207 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
208 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
209 else |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
210 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
211 goto SelectNextMethod; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
212 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
213 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
214 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
215 SelectNextMethod: if ((eap_sm->user.methodId |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
216 == (MAXPROPOSEDMETHODS - 1)) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
217 || ((eap_sm->user.proposedmethods[eap_sm->user.methodId + 1].method |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
218 == TYPE_NONE) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
219 && (eap_sm->user.proposedmethods[eap_sm->user.methodId |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
220 + 1].vendor == VENDOR_IETF))) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
221 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
222 TRACE_DEBUG(FULL+1, |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
223 "%s [EAP protocol] None of proposed EAP Methods authenticated the user.(FAILURE)",DIAMEAP_EXTENSION); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
224 *gdecision = DECISION_FAILURE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
225 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
226 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
227 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
228 eap_sm->user.methodId = 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
229 *gdecision = DECISION_CONTINUE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
230 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
231 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
232 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
233 if (eap_sm->currentMethod == TYPE_IDENTITY) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
234 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
235 *gdecision = DECISION_FAILURE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
236 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
237 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
238 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
239 *gdecision = DECISION_CONTINUE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
240 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
241 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
242 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
243 static boolean diameap_ba_policydopickup(eap_type type) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
244 { |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
610
diff
changeset
|
245 TRACE_ENTRY("%d",type); |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
246 if (type == TYPE_IDENTITY) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
247 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
248 return TRUE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
249 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
250 return FALSE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
251 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
252 |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
253 int diameap_eap_statemachine(struct eap_state_machine * eap_sm, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
254 struct diameap_eap_interface * eap_i, boolean * non_fatal_error) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
255 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
256 TRACE_ENTRY("%p %p %p", eap_sm, eap_i, non_fatal_error); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
257 int ret; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
258 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
259 if ((eap_sm->eap_state == EAP_IDLE) && (eap_i->aaaEapResp == TRUE)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
260 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
261 eap_sm->eap_state = EAP_RECEIVED; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
262 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
263 while (!((eap_sm->eap_state == EAP_IDLE) || (eap_sm->eap_state == EAP_END))) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
264 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
265 switch (eap_sm->eap_state) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
266 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
267 case EAP_INITIALIZE: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
268 if (eap_sm->rxResp == TRUE) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
269 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
270 eap_sm->lastId = eap_sm->currentId; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
271 eap_sm->currentId = eap_sm->respId; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
272 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
273 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
274 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
275 eap_sm->lastId = -1; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
276 eap_sm->currentId = -1; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
277 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
278 if (eap_sm->rxResp == FALSE) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
279 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
280 eap_sm->eap_state = EAP_SELECT_ACTION; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
281 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
282 else if ((eap_sm->respMethod == TYPE_NAK) || (eap_sm->respMethod |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
283 == TYPE_EXPANDED_TYPES && eap_sm->respVendor == VENDOR_IETF |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
284 && eap_sm->respVendorMethod == TYPE_NAK)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
285 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
286 eap_sm->eap_state = EAP_NAK; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
287 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
288 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
289 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
290 eap_sm->eap_state = EAP_PICK_UP_METHOD; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
291 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
292 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
293 case EAP_PICK_UP_METHOD: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
294 if (diameap_ba_policydopickup(eap_sm->respMethod) == TRUE) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
295 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
296 eap_sm->currentMethod = eap_sm->respMethod; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
297 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
298 if (diameap_plugin_get(eap_sm->currentVendor, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
299 eap_sm->currentMethod, &eap_sm->selectedMethod)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
300 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
301 TRACE_DEBUG(INFO,"%sNo EAP Method plugin available for EAP Method {Type=%d, Vendor=%d}.",DIAMEAP_EXTENSION,eap_sm->currentMethod, eap_sm->currentVendor); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
302 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
303 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
304 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
305 TRACE_DEBUG(FULL,"%sCurrent EAP Method {Type=%d, Vendor=%d} (EAP Method plugin selected).",DIAMEAP_EXTENSION,eap_sm->currentMethod, eap_sm->currentVendor); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
306 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
307 eap_sm->currentVendor = VENDOR_IETF; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
308 if (eap_sm->selectedMethod != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
309 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
310 ret = (*eap_sm->selectedMethod->eap_method_initPickUp)( |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
311 eap_sm); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
312 if (ret) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
313 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
314 TRACE_DEBUG(INFO, "%sEAP Method InitPickUp returned error.",DIAMEAP_EXTENSION); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
315 eap_sm->selectedMethod = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
316 eap_sm->currentMethod = TYPE_NONE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
317 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
318 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
319 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
320 if (eap_sm->currentMethod == TYPE_NONE) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
321 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
322 eap_sm->eap_state = EAP_SELECT_ACTION; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
323 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
324 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
325 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
326 eap_sm->eap_state = EAP_METHOD_RESPONSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
327 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
328 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
329 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
330 case EAP_RECEIVED: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
331 TRACE_DEBUG(FULL+1,"%s[EAP Protocol] New EAP Response received",DIAMEAP_EXTENSION) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
332 ; |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
610
diff
changeset
|
333 diameap_eap_dump(FULL + 1, &eap_i->aaaEapRespData); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
334 if ((eap_sm->rxResp == TRUE) && (eap_sm->respId |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
335 == eap_sm->currentId) && ((eap_sm->respMethod |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
336 == eap_sm->currentMethod) || ((eap_sm->respMethod |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
337 == TYPE_EXPANDED_TYPES) && (eap_sm->respVendor |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
338 == VENDOR_IETF) && (eap_sm->respVendorMethod |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
339 == eap_sm->currentMethod)))) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
340 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
341 eap_sm->eap_state = EAP_INTEGRITY_CHECK; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
342 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
343 else if ((eap_sm->rxResp == TRUE) && (eap_sm->respId |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
344 == eap_sm->currentId) && ((eap_sm->respMethod == TYPE_NAK) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
345 || (eap_sm->respMethod == TYPE_EXPANDED_TYPES |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
346 && eap_sm->respVendor == VENDOR_IETF |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
347 && eap_sm->respVendorMethod == TYPE_NAK)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
348 && (eap_sm->methodState == EAP_M_PROPOSED)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
349 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
350 eap_sm->eap_state = EAP_NAK; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
351 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
352 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
353 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
354 eap_sm->eap_state = EAP_DISCARD; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
355 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
356 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
357 case EAP_DISCARD: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
358 TRACE_DEBUG(INFO,"%s[EAP Protocol] Invalid EAP Packet received (Non fatal error).",DIAMEAP_EXTENSION) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
359 ; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
360 *non_fatal_error = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
361 eap_sm->eap_state = EAP_IDLE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
362 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
363 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
364 case EAP_SEND_REQUEST: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
365 TRACE_DEBUG(FULL+1,"%s[EAP Protocol] New EAP packet request created.",DIAMEAP_EXTENSION) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
366 ; |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
610
diff
changeset
|
367 diameap_eap_dump(FULL, &eap_i->aaaEapReqData); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
368 eap_i->aaaEapResp = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
369 eap_i->aaaEapReq = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
370 eap_sm->eap_state = EAP_IDLE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
371 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
372 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
373 case EAP_INTEGRITY_CHECK: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
374 if ((*eap_sm->selectedMethod->eap_method_check)(eap_sm, |
1075
54d1cb00331a
Use float type to solve /0 issue
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1052
diff
changeset
|
375 &eap_i->aaaEapRespData) == FALSE) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
376 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
377 TRACE_DEBUG(INFO,"%s[EAP Protocol] Invalid EAP packet received {Type=%d, Vendor=%d}. Integrity check failed (non fatal error).",DIAMEAP_EXTENSION,eap_sm->currentMethod,eap_sm->currentVendor); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
378 //non_fata_error |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
379 *non_fatal_error = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
380 eap_sm->eap_state = EAP_IDLE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
381 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
382 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
383 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
384 eap_sm->eap_state = EAP_METHOD_RESPONSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
385 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
386 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
387 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
388 case EAP_METHOD_REQUEST: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
389 eap_sm->lastId = eap_sm->currentId; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
390 diameap_ba_nextid(eap_sm, &eap_sm->currentId); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
391 CHECK_FCT((*eap_sm->selectedMethod->eap_method_buildReq)( |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
392 eap_sm, eap_sm->currentId,&eap_i->aaaEapReqData)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
393 ; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
394 if (eap_sm->selectedMethod->eap_method_getTimeout) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
395 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
396 if ((*eap_sm->selectedMethod->eap_method_getTimeout)(eap_sm, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
397 &eap_i->aaaMethodTimeout)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
398 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
399 TRACE_DEBUG(INFO,"%s[EAP Protocol] [%s plugin] getTimeout failed.",DIAMEAP_EXTENSION,eap_sm->selectedMethod->methodname); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
400 eap_i->aaaMethodTimeout = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
401 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
402 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
403 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
404 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
405 eap_i->aaaMethodTimeout = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
406 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
407 eap_sm->eap_state = EAP_SEND_REQUEST; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
408 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
409 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
410 case EAP_METHOD_RESPONSE: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
411 if (eap_sm->respMethod >= TYPE_EAP_MD5) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
412 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
413 if (eap_sm->user.methodId < 0) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
414 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
415 eap_sm->user.methodId = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
416 eap_sm->user.methods[eap_sm->user.methodId].vendor |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
417 = eap_sm->respVendor; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
418 eap_sm->user.methods[eap_sm->user.methodId].method |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
419 = eap_sm->respMethod; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
420 eap_sm->user.methodId++; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
421 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
422 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
423 else if (!((eap_sm->user.methods[eap_sm->user.methodId - 1].vendor |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
424 == eap_sm->respVendor) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
425 && (eap_sm->user.methods[eap_sm->user.methodId - 1].method |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
426 == eap_sm->respMethod))) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
427 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
428 eap_sm->user.methods[eap_sm->user.methodId].vendor |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
429 = eap_sm->respVendor; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
430 eap_sm->user.methods[eap_sm->user.methodId].method |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
431 = eap_sm->respMethod; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
432 eap_sm->user.methodId++; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
433 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
434 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
435 if ((*eap_sm->selectedMethod->eap_method_process)(eap_sm, |
1075
54d1cb00331a
Use float type to solve /0 issue
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1052
diff
changeset
|
436 &eap_i->aaaEapRespData)) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
437 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
438 TRACE_DEBUG(INFO,"%s[EAP Protocol] [%s plugin] Authentication process failed.",DIAMEAP_EXTENSION,eap_sm->selectedMethod->methodname); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
439 *non_fatal_error = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
440 eap_sm->eap_state = EAP_IDLE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
441 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
442 }else{ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
443 if ((*eap_sm->selectedMethod->eap_method_isDone)(eap_sm) == TRUE) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
444 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
445 /*diameap_ba_PolicyUpdate();*/ |
610
a137913d9f88
Added ability to extract the Extended MSK (EMSK) for future use
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
438
diff
changeset
|
446 eap_i->aaaEapMSKLength = 0; |
a137913d9f88
Added ability to extract the Extended MSK (EMSK) for future use
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
438
diff
changeset
|
447 eap_i->aaaEapEMSKLength = 0; |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
448 if (eap_sm->selectedMethod->eap_method_getKey) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
449 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
450 if ((*eap_sm->selectedMethod->eap_method_getKey)(eap_sm, |
610
a137913d9f88
Added ability to extract the Extended MSK (EMSK) for future use
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
438
diff
changeset
|
451 &eap_i->aaaEapMSKData, &eap_i->aaaEapMSKLength, |
a137913d9f88
Added ability to extract the Extended MSK (EMSK) for future use
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
438
diff
changeset
|
452 &eap_i->aaaEapEMSKData, &eap_i->aaaEapEMSKLength)) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
453 { |
1052
b3d623f04b6d
Fix a number of remaining compilation warnings
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1027
diff
changeset
|
454 TRACE_DEBUG(INFO,"%s[EAP Protocol] [%s plugin] Generating EAP Master Key failed.",DIAMEAP_EXTENSION,eap_sm->selectedMethod->methodname) |
610
a137913d9f88
Added ability to extract the Extended MSK (EMSK) for future use
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
438
diff
changeset
|
455 eap_i->aaaEapMSKLength = 0; |
a137913d9f88
Added ability to extract the Extended MSK (EMSK) for future use
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
438
diff
changeset
|
456 eap_i->aaaEapEMSKLength = 0; |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
457 eap_i->aaaEapKeyAvailable = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
458 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
459 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
460 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
461 eap_i->aaaEapKeyAvailable = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
462 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
463 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
464 eap_sm->methodState = EAP_M_END; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
465 eap_sm->eap_state = EAP_SELECT_ACTION; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
466 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
467 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
468 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
469 eap_sm->methodState = EAP_M_CONTINUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
470 eap_sm->eap_state = EAP_METHOD_REQUEST; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
471 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
472 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
473 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
474 case EAP_PROPOSE_METHOD: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
475 if (diameap_ba_policygetnextmethod(eap_sm, &eap_sm->currentMethod, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
476 &eap_sm->currentVendor)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
477 { |
1052
b3d623f04b6d
Fix a number of remaining compilation warnings
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1027
diff
changeset
|
478 TRACE_DEBUG(INFO,"%s[EAP Protocol] [%s plugin] Selecting EAP Method plugin failed.",DIAMEAP_EXTENSION,eap_sm->selectedMethod->methodname); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
479 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
480 *non_fatal_error = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
481 eap_sm->eap_state = EAP_END; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
482 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
483 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
484 TRACE_DEBUG(FULL,"%s[EAP Protocol] Selecting EAP Method plugin: %s(%d). [user: %s]",DIAMEAP_EXTENSION,eap_sm->selectedMethod->methodname,eap_sm->selectedMethod->methodtype,eap_sm->user.userid) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
485 ; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
486 if ((*eap_sm->selectedMethod->eap_method_init)(eap_sm)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
487 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
488 TRACE_DEBUG(INFO,"%s[EAP Protocol] [%s plugin] Initializing EAP plugin failed.",DIAMEAP_EXTENSION,eap_sm->selectedMethod->methodname); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
489 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
490 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
491 if ((eap_sm->currentMethod == TYPE_IDENTITY) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
492 || (eap_sm->currentMethod == TYPE_NOTIFICATION)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
493 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
494 eap_sm->methodState = EAP_M_CONTINUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
495 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
496 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
497 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
498 eap_sm->methodState = EAP_M_PROPOSED; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
499 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
500 eap_sm->eap_state = EAP_METHOD_REQUEST; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
501 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
502 case EAP_NAK: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
503 TRACE_DEBUG(FULL+1,"%s[EAP Protocol] EAP NAK Packet received.",DIAMEAP_EXTENSION) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
504 ; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
505 if (eap_sm->selectedMethod->eap_method_free) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
506 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
507 (*eap_sm->selectedMethod->eap_method_free)(eap_sm->methodData); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
508 eap_sm->methodData = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
509 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
510 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
511 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
512 if (eap_sm->methodData) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
513 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
514 free(eap_sm->methodData); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
515 eap_sm->methodData = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
516 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
517 } |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
610
diff
changeset
|
518 diameap_ba_policyupdate(eap_sm, &eap_i->aaaEapRespData); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
519 eap_sm->eap_state = EAP_SELECT_ACTION; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
520 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
521 case EAP_SELECT_ACTION: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
522 CHECK_FCT(diameap_ba_policygetdecision(eap_sm, eap_i,&eap_sm->sm_decision)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
523 ; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
524 switch (eap_sm->sm_decision) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
525 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
526 case DECISION_CONTINUE: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
527 eap_sm->eap_state = EAP_PROPOSE_METHOD; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
528 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
529 case DECISION_FAILURE: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
530 TRACE_DEBUG(FULL,"%s[EAP Protocol] Authentication Failure [User: %s].",DIAMEAP_EXTENSION,eap_sm->user.userid) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
531 ; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
532 eap_sm->lastId = eap_sm->currentId; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
533 diameap_ba_nextid(eap_sm, &eap_sm->currentId); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
534 CHECK_FCT(diameap_eap_new(EAP_FAILURE, (u8) eap_sm->currentId, TYPE_NONE, NULL, 0,&eap_i->aaaEapReqData)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
535 ; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
536 eap_i->aaaFail = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
537 *non_fatal_error = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
538 eap_sm->eap_state = EAP_END; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
539 if (eap_sm->methodData) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
540 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
541 if (eap_sm->selectedMethod->eap_method_free) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
542 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
543 (*eap_sm->selectedMethod->eap_method_free)( |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
544 eap_sm->methodData); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
545 eap_sm->methodData = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
546 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
547 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
548 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
549 free(eap_sm->methodData); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
550 eap_sm->methodData = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
551 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
552 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
553 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
554 case DECISION_SUCCESS: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
555 TRACE_DEBUG(FULL,"%s[EAP Protocol] Authentication Success [User: %s].",DIAMEAP_EXTENSION,eap_sm->user.userid) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
556 ; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
557 eap_sm->lastId = eap_sm->currentId; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
558 diameap_ba_nextid(eap_sm, &eap_sm->currentId); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
559 CHECK_FCT(diameap_eap_new(EAP_SUCCESS, (u8) eap_sm->currentId, TYPE_NONE, NULL, 0,&eap_i->aaaEapReqData)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
560 ; |
610
a137913d9f88
Added ability to extract the Extended MSK (EMSK) for future use
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
438
diff
changeset
|
561 if (eap_i->aaaEapMSKData != NULL) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
562 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
563 TRACE_DEBUG(FULL+1,"%s[EAP Protocol] EAP Key available [User: %s].",DIAMEAP_EXTENSION,eap_sm->user.userid); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
564 eap_i->aaaEapKeyAvailable = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
565 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
566 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
567 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
568 TRACE_DEBUG(FULL+1,"%s[EAP Protocol] No EAP Key available [User: %s].",DIAMEAP_EXTENSION,eap_sm->user.userid); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
569 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
570 eap_i->aaaSuccess = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
571 *non_fatal_error = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
572 eap_sm->eap_state = EAP_END; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
573 if (eap_sm->selectedMethod->eap_method_free) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
574 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
575 (*eap_sm->selectedMethod->eap_method_free)( |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
576 eap_sm->methodData); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
577 eap_sm->methodData = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
578 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
579 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
580 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
581 if (eap_sm->methodData) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
582 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
583 free(eap_sm->methodData); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
584 eap_sm->methodData = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
585 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
586 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
587 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
588 default: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
589 TRACE_DEBUG(INFO,"%sIncorrect EAP Decision.(Please report this problem.)",DIAMEAP_EXTENSION) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
590 ; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
591 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
592 break; |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
593 |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
594 case EAP_END: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
595 break; |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
596 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
597 case EAP_IDLE: |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
598 break; |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
599 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
600 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
601 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
602 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
603 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
604 |