Mercurial > hg > freeDiameter
annotate extensions/app_diameap/diameap_server.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 | 3cbe458fbfa9 |
children | 915450ee91c7 |
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 /* handler for DiamEAP server callback */ |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
41 static struct disp_hdl * handle; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
42 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
43 /* session handler for DiamEAP sessions state machine */ |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
44 static struct session_handler * diameap_server_reg = NULL; |
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 |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
47 struct avp_max_occurences auth_avps[] = |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
48 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
49 { "Service-Type", 1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
50 { "Callback-Number", 1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
51 { "Callback-Id", 1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
52 { "Idle-Timeout", 1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
53 { "Port-Limit", 1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
54 { "NAS-Filter-Rule" - 1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
55 { "Filter-Id", -1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
56 { "Configuration-Token", -1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
57 { "QoS-Filter-Rule", -1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
58 { "Framed-Protocol", 1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
59 { "Framed-Routing", 1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
60 { "Framed-MTU", 1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
61 { "Framed-Compression", -1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
62 { "Framed-IP-Address", 1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
63 { "Framed-IP-Netmask", 1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
64 { "Framed-Route", -1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
65 { "Framed-Pool", 1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
66 { "Framed-Interface-Id", 1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
67 { "Framed-IPv6-Prefix", -1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
68 { "Framed-IPv6-Pool", 1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
69 { "Framed-IPv6-Route", -1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
70 { "Framed-IPX-Network", 1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
71 { "Framed-Appletalk-Link", 1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
72 { "Framed-Appletalk-Network", -1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
73 { "Framed-Appletalk-Zone", 1 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
74 { "NAS-IPv6-Address", 0 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
75 { "NAS-Identifier", 0 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
76 { "NAS-IP-Address", 0 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
77 { "NAS-Port", 0 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
78 { "NAS-Port-Id", 0 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
79 { "NAS-Port-Type", 0 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
80 { "Called-Station-Id", 0 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
81 { "Calling-Station-Id", 0 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
82 { "Connect-Info", 0 }, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
83 { "Originating-Line-Info", 0 } }; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
84 |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
85 |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
86 |
1088
1d1a20a0779d
Second part of changeset 1083, now the code compiles again. Still missing some functions implementation, though
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1027
diff
changeset
|
87 void diameap_cli_sess_cleanup(struct sess_state * diameap_sess_data, os0_t sid, void * opaque) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
88 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
89 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
90 CHECK_PARAMS_DO( diameap_sess_data, return ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
91 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
92 if (diameap_sess_data != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
93 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
94 if (diameap_sess_data->methodData != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
95 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
96 struct plugin * cplugin; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
97 if (diameap_plugin_get(diameap_sess_data->currentVendor, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
98 diameap_sess_data->currentMethod, &cplugin)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
99 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
100 TRACE_DEBUG(INFO,"%sUnable to access EAP Method plugin {Type=%d, Vendor=%d}.",DIAMEAP_EXTENSION,diameap_sess_data->currentMethod,diameap_sess_data->currentVendor); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
101 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
102 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
103 if (cplugin->eap_method_free) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
104 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
105 (*cplugin->eap_method_free)(diameap_sess_data->methodData); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
106 diameap_sess_data->methodData = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
107 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
108 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
109 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
110 TRACE_DEBUG(FULL+1,"%s[%s plugin] datafree function not available.",DIAMEAP_EXTENSION,cplugin->methodname); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
111 if (diameap_sess_data->methodData != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
112 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
113 free(diameap_sess_data->methodData); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
114 diameap_sess_data->methodData = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
115 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
116 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
117 if (diameap_sess_data->methodData) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
118 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
119 TRACE_DEBUG(INFO,"%sSession state was not been freed correctly!!!",DIAMEAP_EXTENSION); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
120 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
121 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
122 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
123 if (diameap_sess_data->user.password != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
124 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
125 free(diameap_sess_data->user.password); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
126 diameap_sess_data->user.password = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
127 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
128 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
129 if (diameap_sess_data->user.userid != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
130 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
131 free(diameap_sess_data->user.userid); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
132 diameap_sess_data->user.userid = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
133 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
134 free(diameap_sess_data); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
135 diameap_sess_data = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
136 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
137 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
138 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
139 static int diameap_initialize_diameap_sm( |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
140 struct diameap_state_machine * diameap_sm, |
1088
1d1a20a0779d
Second part of changeset 1083, now the code compiles again. Still missing some functions implementation, though
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1027
diff
changeset
|
141 struct sess_state * diameap_sess_data) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
142 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
143 TRACE_ENTRY("%p %p", diameap_sm, diameap_sess_data); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
144 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
145 int i; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
146 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
147 /* Initialize Long Term Variables */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
148 if (diameap_sess_data != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
149 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
150 diameap_sm->invalid_eappackets = diameap_sess_data->invalid_eappackets; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
151 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
152 /* Initialize eap state machine variables */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
153 /*User*/ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
154 diameap_sm->eap_sm.user.id = diameap_sess_data->user.id; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
155 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
156 if ((diameap_sess_data->user.userid != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
157 && (diameap_sess_data->user.useridLength > 0)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
158 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
159 diameap_sm->eap_sm.user.useridLength |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
160 = diameap_sess_data->user.useridLength; |
577
9dae8bc2d04a
Fix user name verification in EAP-TLS plugin
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
565
diff
changeset
|
161 CHECK_MALLOC(diameap_sm->eap_sm.user.userid= malloc(diameap_sm->eap_sm.user.useridLength+1)); |
9dae8bc2d04a
Fix user name verification in EAP-TLS plugin
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
565
diff
changeset
|
162 U8COPY(diameap_sm->eap_sm.user.userid,0,diameap_sm->eap_sm.user.useridLength+1,diameap_sess_data->user.userid); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
163 free(diameap_sess_data->user.userid); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
164 diameap_sess_data->user.userid = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
165 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
166 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
167 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
168 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
169 TRACE_DEBUG(INFO,"%s user not identified yet.",DIAMEAP_EXTENSION); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
170 diameap_sm->eap_sm.user.useridLength = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
171 diameap_sm->eap_sm.user.userid = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
172 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
173 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
174 if ((diameap_sess_data->user.password != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
175 && (diameap_sess_data->user.passwordLength > 0)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
176 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
177 diameap_sm->eap_sm.user.passwordLength |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
178 = diameap_sess_data->user.passwordLength; |
577
9dae8bc2d04a
Fix user name verification in EAP-TLS plugin
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
565
diff
changeset
|
179 CHECK_MALLOC(diameap_sm->eap_sm.user.password = malloc(diameap_sm->eap_sm.user.passwordLength+1)); |
9dae8bc2d04a
Fix user name verification in EAP-TLS plugin
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
565
diff
changeset
|
180 U8COPY(diameap_sm->eap_sm.user.password,0,diameap_sm->eap_sm.user.passwordLength+1, diameap_sess_data->user.password); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
181 free(diameap_sess_data->user.password); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
182 diameap_sess_data->user.password = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
183 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
184 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
185 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
186 diameap_sm->eap_sm.user.passwordLength = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
187 diameap_sm->eap_sm.user.password = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
188 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
189 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
190 diameap_sm->eap_sm.user.methodId = diameap_sess_data->user.methodId; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
191 for (i = 0; i < MAXMETHODS; i++) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
192 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
193 diameap_sm->eap_sm.user.methods[i].method |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
194 = diameap_sess_data->user.methods[i].method; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
195 diameap_sm->eap_sm.user.methods[i].vendor |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
196 = diameap_sess_data->user.methods[i].vendor; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
197 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
198 for (i = 0; i < MAXPROPOSEDMETHODS; i++) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
199 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
200 diameap_sm->eap_sm.user.proposedmethods[i].method |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
201 = diameap_sess_data->user.proposedmethods[i].method; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
202 diameap_sm->eap_sm.user.proposedmethods[i].vendor |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
203 = diameap_sess_data->user.proposedmethods[i].vendor; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
204 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
205 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
206 diameap_sm->eap_sm.user.pmethods = diameap_sess_data->user.pmethods; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
207 diameap_sm->eap_sm.user.proposed_eap_method |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
208 = diameap_sess_data->user.proposed_eap_method; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
209 diameap_sm->eap_sm.user.proposed_eap_method_vendor |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
210 = diameap_sess_data->user.proposed_eap_method_vendor; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
211 diameap_sm->eap_sm.user.success = diameap_sess_data->user.success; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
212 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
213 diameap_sm->eap_sm.currentId = diameap_sess_data->currentId; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
214 diameap_sm->eap_sm.currentVendor = diameap_sess_data->currentVendor; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
215 diameap_sm->eap_sm.lastId = diameap_sess_data->lastId; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
216 diameap_sm->eap_sm.methodState = diameap_sess_data->methodState; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
217 diameap_sm->eap_sm.currentMethod = diameap_sess_data->currentMethod; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
218 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
219 diameap_sm->eap_sm.methodData = diameap_sess_data->methodData; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
220 diameap_sess_data->methodData = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
221 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
222 if (diameap_sm->eap_sm.currentMethod != TYPE_NONE) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
223 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
224 diameap_plugin_get(diameap_sm->eap_sm.currentVendor, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
225 diameap_sm->eap_sm.currentMethod, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
226 &diameap_sm->eap_sm.selectedMethod); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
227 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
228 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
229 /* free session data*/ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
230 free(diameap_sess_data); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
231 diameap_sess_data = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
232 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
233 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
234 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
235 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
236 diameap_sm->invalid_eappackets = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
237 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
238 /* Initialize eap state machine variables */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
239 /*User*/ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
240 diameap_sm->eap_sm.user.id = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
241 diameap_sm->eap_sm.user.userid = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
242 diameap_sm->eap_sm.user.useridLength = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
243 diameap_sm->eap_sm.user.password = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
244 diameap_sm->eap_sm.user.passwordLength = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
245 diameap_sm->eap_sm.user.methodId = -1; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
246 for (i = 0; i < MAXMETHODS; i++) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
247 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
248 diameap_sm->eap_sm.user.methods[i].method = TYPE_NONE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
249 diameap_sm->eap_sm.user.methods[i].vendor = VENDOR_IETF; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
250 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
251 for (i = 0; i < MAXPROPOSEDMETHODS; i++) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
252 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
253 diameap_sm->eap_sm.user.proposedmethods[i].method = TYPE_NONE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
254 diameap_sm->eap_sm.user.proposedmethods[i].vendor = VENDOR_IETF; |
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 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
257 diameap_sm->eap_sm.user.pmethods = -1; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
258 diameap_sm->eap_sm.user.proposed_eap_method = TYPE_NONE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
259 diameap_sm->eap_sm.user.proposed_eap_method_vendor = VENDOR_IETF; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
260 diameap_sm->eap_sm.user.success = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
261 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
262 diameap_sm->eap_sm.currentId = -1; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
263 diameap_sm->eap_sm.currentVendor = VENDOR_IETF; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
264 diameap_sm->eap_sm.lastId = -1; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
265 diameap_sm->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
|
266 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
267 diameap_sm->eap_sm.currentMethod = TYPE_NONE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
268 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
269 diameap_sm->eap_sm.methodData = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
270 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
271 } |
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 diameap_sm->result_code = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
274 fd_list_init(&diameap_sm->attributes, NULL); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
275 fd_list_init(&diameap_sm->req_attributes, NULL); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
276 fd_list_init(&diameap_sm->ans_attributes, NULL); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
277 diameap_sm->failedavp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
278 diameap_sm->auth_request_val = AUTHENTICATE_ONLY; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
279 diameap_sm->verify_authorization = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
280 diameap_sm->authSuccess = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
281 diameap_sm->authFailure = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
282 diameap_sm->lastReqEAPavp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
283 diameap_sm->privateUser = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
284 diameap_sm->authorized = FALSE; |
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 diameap_sm->eap_sm.rxResp = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
287 diameap_sm->eap_sm.respId = -1; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
288 diameap_sm->eap_sm.respMethod = TYPE_NONE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
289 diameap_sm->eap_sm.respVendor = VENDOR_IETF; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
290 diameap_sm->eap_sm.respVendorMethod = TYPE_NONE; |
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 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
293 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
294 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
295 static int diameap_initialize_diameap_eap_interface( |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
296 struct diameap_eap_interface * eap_i) |
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 TRACE_ENTRY("%p", eap_i); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
299 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
300 //Initialize AAA-EAP Interface |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
301 eap_i->aaaEapResp = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
302 eap_i->aaaEapRespData.data = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
303 //Initialize EAP-AAA Interface |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
304 eap_i->aaaEapReq = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
305 eap_i->aaaEapNoReq = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
306 eap_i->aaaSuccess = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
307 eap_i->aaaFail = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
308 eap_i->aaaEapReqData.data = NULL; |
610
a137913d9f88
Added ability to extract the Extended MSK (EMSK) for future use
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
577
diff
changeset
|
309 eap_i->aaaEapMSKData = NULL; |
a137913d9f88
Added ability to extract the Extended MSK (EMSK) for future use
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
577
diff
changeset
|
310 eap_i->aaaEapEMSKData = NULL; |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
311 eap_i->aaaEapKeyAvailable = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
312 eap_i->aaaMethodTimeout = 0; |
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 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
315 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
316 |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
317 static int diameap_failed_avp(struct diameap_state_machine * diameap_sm, |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
318 struct avp * invalidavp) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
319 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
320 TRACE_ENTRY("%p %p",diameap_sm,invalidavp); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
321 if (!invalidavp) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
322 return EINVAL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
323 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
324 if (!diameap_sm) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
325 return EINVAL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
326 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
327 if (diameap_sm->failedavp == NULL) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
328 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
329 CHECK_FCT( fd_msg_avp_new( dataobj_failed_avp, 0, &diameap_sm->failedavp) ); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
330 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
331 CHECK_FCT( fd_msg_avp_add( diameap_sm->failedavp, MSG_BRW_LAST_CHILD, invalidavp ) ); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
332 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
333 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
334 else |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
335 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
336 //add multiple AVPs in Failed-AVP |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
337 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
338 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
339 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
340 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
341 static int diameap_parse_eap_resp(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:
639
diff
changeset
|
342 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
|
343 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
344 TRACE_ENTRY("%p %p",eap_sm, eappacket) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
345 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
346 eap_sm->rxResp = FALSE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
347 eap_sm->respId = -1; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
348 eap_sm->respMethod = TYPE_NONE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
349 eap_sm->respVendor = VENDOR_IETF; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
350 eap_sm->respVendorMethod = TYPE_NONE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
351 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
352 if (eappacket->data == NULL) |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
353 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
354 TRACE_DEBUG(INFO,"%s Empty EAP packet",DIAMEAP_EXTENSION); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
355 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
356 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
357 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
358 u16 plength; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
359 CHECK_FCT(diameap_eap_get_packetlength(eappacket,&plength)); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
360 if ((int) plength < EAP_HEADER) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
361 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
362 TRACE_DEBUG(INFO,"%s EAP packet length less than EAP header.",DIAMEAP_EXTENSION); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
363 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
364 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
365 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
366 u16 length; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
367 CHECK_FCT(diameap_eap_get_length(eappacket,&length)); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
368 if ((int) length < EAP_HEADER) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
369 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
370 TRACE_DEBUG(INFO,"%sEAP packet length field less than EAP header.",DIAMEAP_EXTENSION); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
371 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
372 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
373 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
374 if (plength < length) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
375 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
376 TRACE_DEBUG(INFO,"%sLength of received EAP packet is less than the value of the length field.",DIAMEAP_EXTENSION); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
377 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
378 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
379 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
380 eap_code code; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
381 CHECK_FCT(diameap_eap_get_code(eappacket,&code)); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
382 if (code == EAP_REQUEST || code == EAP_SUCCESS || code == EAP_FAILURE) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
383 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
384 TRACE_DEBUG(INFO,"%sOnly EAP Responses are accepted at EAP server side.",DIAMEAP_EXTENSION); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
385 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
386 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
387 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
388 u8 id; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
389 CHECK_FCT(diameap_eap_get_identifier(eappacket,&id)); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
390 eap_sm->respId = id; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
391 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
392 CHECK_FCT(diameap_eap_get_type(eappacket,&eap_sm->respMethod)); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
393 if ((eap_sm->methodState != EAP_M_PROPOSED) && (eap_sm->respMethod |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
394 == TYPE_NAK || eap_sm->respMethod == TYPE_EXPANDED_TYPES)) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
395 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
396 TRACE_DEBUG(INFO,"%sNAK or EXPANDED_NAK received after an EAP TYPE been selected",DIAMEAP_EXTENSION); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
397 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
398 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
399 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
400 if ((eap_sm->respMethod == TYPE_EXPANDED_TYPES) && (length < 20)) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
401 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
402 TRACE_DEBUG(INFO,"%s Truncated EAP Packet received.",DIAMEAP_EXTENSION); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
403 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
404 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
405 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
406 if ((eap_sm->respMethod == TYPE_NAK) && (eap_sm->currentMethod < 4)) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
407 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
408 TRACE_DEBUG(INFO,"%sNAK response not expected at this step (Only EAP type = 4 and above are accepted).",DIAMEAP_EXTENSION); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
409 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
410 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
411 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
412 if (eap_sm->respMethod == TYPE_EXPANDED_TYPES) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
413 { |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
414 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
|
415 //int len = 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
416 //u32 respVendor, respVendorMethod; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
417 data += 5; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
418 eap_sm->respVendor = G24BIGE(data); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
419 data += 3; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
420 eap_sm->respVendorMethod = G32BIGE(data); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
421 data += 4; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
422 /* while ((length - 12) > (len * 8)) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
423 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
424 if (((eap_type) G8(data)) != TYPE_EXPANDED_TYPES) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
425 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
426 return FALSE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
427 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
428 data += 1; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
429 respVendor = G24BIGE(data); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
430 data += 3; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
431 respVendorMethod = G32BIGE(data); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
432 eap_sm->user.proposedmethods[len].method = respVendor; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
433 eap_sm->user.proposedmethods[len].vendor = respVendorMethod; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
434 len++; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
435 data += 4; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
436 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
437 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
|
438 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
439 |
565
64e55fc10ab3
added configuration parameters for DiamEAP and EAP-TLS
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
444
diff
changeset
|
440 if((eap_sm->respMethod == TYPE_IDENTITY) && (length < 6)){ |
64e55fc10ab3
added configuration parameters for DiamEAP and EAP-TLS
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
444
diff
changeset
|
441 TRACE_DEBUG(INFO,"%sUser Identity missing",DIAMEAP_EXTENSION); |
64e55fc10ab3
added configuration parameters for DiamEAP and EAP-TLS
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
444
diff
changeset
|
442 return 0; |
64e55fc10ab3
added configuration parameters for DiamEAP and EAP-TLS
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
444
diff
changeset
|
443 } |
64e55fc10ab3
added configuration parameters for DiamEAP and EAP-TLS
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
444
diff
changeset
|
444 |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
445 eap_sm->rxResp = TRUE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
446 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
447 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
448 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
449 static int diameap_eappacket_new(struct eap_packet * eappacket, |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
450 struct avp_hdr * avpdata) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
451 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
452 TRACE_ENTRY("%p %p",eappacket,avpdata); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
453 eappacket->ulength = (u16) avpdata->avp_value->os.len; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
454 eappacket->data = (u8 *) avpdata->avp_value->os.data; |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
455 diameap_eap_get_packetlength(eappacket, &eappacket->length); |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
456 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
457 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
458 |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
459 static int diameap_parse_avps(struct diameap_state_machine * diameap_sm, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
460 struct msg * req, struct diameap_eap_interface * eap_i) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
461 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
462 TRACE_ENTRY("%p %p %p",diameap_sm,req,eap_i); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
463 struct avp * avp, *avp2; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
464 struct avp_hdr * avpdata; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
465 int ret; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
466 int depth; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
467 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
468 /* EAP-Payload data*/ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
469 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
470 CHECK_FCT(fd_msg_search_avp(req, dataobj_eap_payload, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
471 if (avp != NULL) |
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 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
474 CHECK_FCT(diameap_eappacket_new(&eap_i->aaaEapRespData, avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
475 eap_i->aaaEapResp = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
476 u16 length; |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
477 diameap_eap_get_length(&eap_i->aaaEapRespData, &length); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
478 if (length >= 4) |
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 eap_code code; |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
481 CHECK_FCT(diameap_eap_get_code(&eap_i->aaaEapRespData,&code)); |
425
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 if (code != EAP_RESPONSE) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
484 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
485 diameap_sm->result_code = 5004; /* DIAMETER_INVALID_AVP_VALUE 5004 */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
486 struct avp * invalidavp; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
487 union avp_value val; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
488 CHECK_FCT( fd_msg_avp_new ( dataobj_eap_payload, 0, &invalidavp)); |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
489 val.os.data = eap_i->aaaEapRespData.data; |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
490 val.os.len = eap_i->aaaEapRespData.length; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
491 CHECK_FCT( fd_msg_avp_setvalue( invalidavp, &val )) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
492 CHECK_FCT( diameap_failed_avp(diameap_sm, invalidavp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
493 TRACE_DEBUG(INFO,"%sIncorrect EAP Packet. EAP Code != Response.",DIAMEAP_EXTENSION); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
494 return 0; |
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 { |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
498 CHECK_FCT(diameap_parse_eap_resp(&diameap_sm->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
|
499 if (diameap_sm->eap_sm.rxResp == FALSE) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
500 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
501 diameap_sm->result_code = 1001; /*DIAMETER_MULTI_ROUND_AUTH*/ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
502 eap_i->aaaEapNoReq = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
503 eap_i->aaaEapResp = FALSE; |
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 } |
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 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
508 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
509 if (diameap_sm->eap_sm.currentMethod != TYPE_NONE) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
510 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
511 diameap_sm->result_code = 5004; /* DIAMETER_INVALID_AVP_VALUE 5004 */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
512 CHECK_FCT(diameap_failed_avp(diameap_sm, avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
513 TRACE_DEBUG(INFO,"%sEAP packet length < Minimum EAP packet length.",DIAMEAP_EXTENSION); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
514 return 1; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
515 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
516 //EAP start received |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
517 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
518 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
519 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
520 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
521 /* User-Name AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
522 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
523 CHECK_FCT(fd_msg_search_avp(req, dataobj_user_name, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
524 if (avp != NULL) |
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 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
527 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
528 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
529 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
530 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
531 attribute->attrib = "User-Name"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
532 attribute->value.os.data = avpdata->avp_value->os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
533 attribute->value.os.len = avpdata->avp_value->os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
534 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
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 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
537 /* EAP-Key-Name AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
538 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
539 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
540 CHECK_FCT(fd_msg_search_avp(req, dataobj_eap_key_name, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
541 if (avp != NULL) |
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 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
544 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
545 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
546 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
547 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
548 attribute->attrib = "EAP-Key-Name"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
549 attribute->value.os.data = avpdata->avp_value->os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
550 attribute->value.os.len = avpdata->avp_value->os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
551 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
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 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
554 /* Auth-Request-Type AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
555 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
556 CHECK_FCT(fd_msg_search_avp(req, dataobj_auth_request_type, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
557 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
558 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
559 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
560 diameap_sm->auth_request_val = avpdata->avp_value->i32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
561 } |
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 /* Authorization-Lifetime AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
564 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
565 CHECK_FCT(fd_msg_search_avp(req, dataobj_authorization_lifetime, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
566 if (avp != NULL) |
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 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
569 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
570 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
571 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
572 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
573 attribute->attrib = "Authorization-Lifetime"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
574 attribute->value.u32 = avpdata->avp_value->u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
575 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
576 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
577 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
578 /* Auth-Grace-Period AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
579 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
580 CHECK_FCT(fd_msg_search_avp(req, dataobj_auth_grace_period, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
581 if (avp != NULL) |
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 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
584 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
585 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
586 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
587 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
588 attribute->attrib = "Auth-Grace-Period"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
589 attribute->value.u32 = avpdata->avp_value->u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
590 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
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 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
593 /* Auth-Session-State AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
594 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
595 CHECK_FCT(fd_msg_search_avp(req, dataobj_auth_session_state, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
596 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
597 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
598 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
599 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
600 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
601 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
602 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
603 attribute->attrib = "Auth-Session-State"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
604 attribute->value.i32 = avpdata->avp_value->i32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
605 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
606 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
607 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
608 /* Origin-state-Id AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
609 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
610 CHECK_FCT(fd_msg_search_avp(req, dataobj_origin_state_id, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
611 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
612 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
613 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
614 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
615 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
616 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
617 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
618 attribute->attrib = "Origin-state-Id AVP"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
619 attribute->value.u32 = avpdata->avp_value->u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
620 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
621 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
622 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
623 /* NAS-Port AVP*/ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
624 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
625 CHECK_FCT(fd_msg_search_avp(req, dataobj_nas_port, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
626 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
627 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
628 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
629 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
630 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
631 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
632 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
633 attribute->attrib = "NAS-Port"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
634 attribute->value.u32 = avpdata->avp_value->u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
635 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
636 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
637 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
638 /* NAS-Port-Id AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
639 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
640 CHECK_FCT(fd_msg_search_avp(req, dataobj_nas_port_id, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
641 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
642 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
643 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
644 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
645 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
646 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
647 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
648 attribute->attrib = "NAS-Port-Id"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
649 attribute->value.os.data = avpdata->avp_value->os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
650 attribute->value.os.len = avpdata->avp_value->os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
651 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
652 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
653 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
654 /* NAS-Port-Type AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
655 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
656 CHECK_FCT(fd_msg_search_avp(req, dataobj_nas_port_type, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
657 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
658 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
659 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
660 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
661 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
662 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
663 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
664 attribute->attrib = "NAS-Port-Type"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
665 attribute->value.u32 = avpdata->avp_value->u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
666 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
667 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
668 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
669 /* Called-Station-Id AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
670 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
671 CHECK_FCT(fd_msg_search_avp(req, dataobj_called_station_id, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
672 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
673 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
674 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
675 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
676 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
677 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
678 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
679 attribute->attrib = "Called-Station-Id"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
680 attribute->value.os.data = avpdata->avp_value->os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
681 attribute->value.os.len = avpdata->avp_value->os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
682 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
683 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
684 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
685 /* Calling-Station-Id AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
686 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
687 CHECK_FCT(fd_msg_search_avp(req, dataobj_calling_station_id, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
688 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
689 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
690 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
691 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
692 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
693 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
694 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
695 attribute->attrib = "Calling-Station-Id"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
696 attribute->value.os.data = avpdata->avp_value->os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
697 attribute->value.os.len = avpdata->avp_value->os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
698 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
699 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
700 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
701 /* Connect-Info AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
702 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
703 CHECK_FCT(fd_msg_search_avp(req, dataobj_connect_info, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
704 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
705 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
706 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
707 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
708 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
709 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
710 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
711 attribute->attrib = "Connect-Info"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
712 attribute->value.os.data = avpdata->avp_value->os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
713 attribute->value.os.len = avpdata->avp_value->os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
714 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
715 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
716 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
717 /* Originating-Line-Info AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
718 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
719 CHECK_FCT(fd_msg_search_avp(req, dataobj_originating_line_info, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
720 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
721 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
722 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
723 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
724 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
725 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
726 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
727 attribute->attrib = "Originating-Line-Info"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
728 attribute->value.os.data = avpdata->avp_value->os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
729 attribute->value.os.len = avpdata->avp_value->os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
730 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
731 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
732 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
733 /* Service-Type AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
734 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
735 CHECK_FCT(fd_msg_search_avp(req, dataobj_service_type, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
736 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
737 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
738 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
739 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
740 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
741 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
742 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
743 attribute->attrib = "Service-Type"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
744 attribute->value.u32 = avpdata->avp_value->u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
745 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
746 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
747 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
748 /* Callback-Number AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
749 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
750 CHECK_FCT(fd_msg_search_avp(req, dataobj_callback_number, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
751 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
752 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
753 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
754 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
755 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
756 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
757 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
758 attribute->attrib = "Callback-Number"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
759 attribute->value.os.data = avpdata->avp_value->os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
760 attribute->value.os.len = avpdata->avp_value->os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
761 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
762 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
763 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
764 /* Port-Limit AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
765 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
766 CHECK_FCT(fd_msg_search_avp(req, dataobj_port_limit, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
767 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
768 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
769 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
770 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
771 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
772 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
773 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
774 attribute->attrib = "Port-Limit"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
775 attribute->value.u32 = avpdata->avp_value->u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
776 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
777 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
778 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
779 /* Framed-Protocol AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
780 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
781 CHECK_FCT(fd_msg_search_avp(req, dataobj_framed_protocol, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
782 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
783 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
784 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
785 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
786 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
787 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
788 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
789 attribute->attrib = "Framed-Protocol"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
790 attribute->value.u32 = avpdata->avp_value->u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
791 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
792 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
793 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
794 /* Framed-MTU AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
795 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
796 CHECK_FCT(fd_msg_search_avp(req, dataobj_framed_mtu, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
797 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
798 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
799 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
800 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
801 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
802 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
803 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
804 attribute->attrib = "Framed-MTU"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
805 attribute->value.u32 = avpdata->avp_value->u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
806 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
807 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
808 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
809 /* Framed-Compression AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
810 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
811 avp2 = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
812 CHECK_FCT(fd_msg_search_avp(req, dataobj_framed_compression, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
813 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
814 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
815 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
816 u32 Pi_Code = avpdata->avp_code; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
817 int depth; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
818 do |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
819 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
820 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
821 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
822 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
823 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
824 attribute->attrib = "Framed-Compression"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
825 attribute->value.u32 = avpdata->avp_value->u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
826 fd_list_insert_before(&diameap_sm->req_attributes, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
827 &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
828 ret = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
829 depth = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
830 ret = fd_msg_browse ( avp, MSG_BRW_NEXT, &avp2, &depth); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
831 if (avp2 != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
832 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
833 CHECK_FCT(fd_msg_avp_hdr(avp2, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
834 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
835 avp = avp2; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
836 } while ((avp2 != NULL) && (ret == 0) && (ret == 0) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
837 && (avpdata->avp_code == Pi_Code)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
838 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
839 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
840 /* Framed-IP-Address AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
841 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
842 CHECK_FCT(fd_msg_search_avp(req, dataobj_framed_ip_address, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
843 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
844 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
845 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
846 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
847 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
848 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
849 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
850 attribute->attrib = "Framed-IP-Address"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
851 attribute->value.os.data = avpdata->avp_value->os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
852 attribute->value.os.len = avpdata->avp_value->os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
853 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
854 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
855 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
856 /* Framed-IP-Netmask AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
857 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
858 CHECK_FCT(fd_msg_search_avp(req, dataobj_framed_ip_netmask, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
859 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
860 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
861 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
862 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
863 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
864 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
865 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
866 attribute->attrib = "Framed-IP-Netmask"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
867 attribute->value.os.data = avpdata->avp_value->os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
868 attribute->value.os.len = avpdata->avp_value->os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
869 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
870 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
871 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
872 /* Framed-Interface-Id AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
873 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
874 CHECK_FCT(fd_msg_search_avp(req, dataobj_framed_interface_id, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
875 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
876 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
877 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
878 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
879 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
880 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
881 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
882 attribute->attrib = "Framed-Interface-Id"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
883 attribute->value.u64 = avpdata->avp_value->u64; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
884 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
885 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
886 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
887 /* Framed-IPv6-Prefix AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
888 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
889 avp2 = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
890 CHECK_FCT(fd_msg_search_avp(req, dataobj_framed_ipv6_prefix, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
891 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
892 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
893 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
894 u32 Pi_Code = avpdata->avp_code; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
895 do |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
896 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
897 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
898 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
899 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
900 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
901 attribute->attrib = "Framed-IPv6-Prefix"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
902 attribute->value.u32 = avpdata->avp_value->u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
903 fd_list_insert_before(&diameap_sm->req_attributes, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
904 &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
905 ret = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
906 depth = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
907 ret = fd_msg_browse ( avp, MSG_BRW_NEXT, &avp2, &depth); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
908 if (avp2 != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
909 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
910 CHECK_FCT(fd_msg_avp_hdr(avp2, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
911 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
912 avp = avp2; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
913 } while ((avp2 != NULL) && (ret == 0) && (ret == 0) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
914 && (avpdata->avp_code == Pi_Code)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
915 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
916 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
917 /* Tunneling AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
918 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
919 avp2 = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
920 CHECK_FCT(fd_msg_search_avp(req, dataobj_tunneling, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
921 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
922 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
923 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
924 u32 Pi_Code = avpdata->avp_code; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
925 int depth; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
926 do |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
927 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
928 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
929 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
930 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
931 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
932 attribute->attrib = "Tunneling"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
933 //grouped AVP |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
934 fd_list_insert_before(&diameap_sm->req_attributes, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
935 &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
936 ret = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
937 depth = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
938 ret = fd_msg_browse ( avp, MSG_BRW_NEXT, &avp2, &depth); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
939 if (avp2 != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
940 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
941 CHECK_FCT(fd_msg_avp_hdr(avp2, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
942 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
943 avp = avp2; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
944 } while ((avp2 != NULL) && (ret == 0) && (ret == 0) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
945 && (avpdata->avp_code == Pi_Code)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
946 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
947 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
948 /* NAS-Identifier AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
949 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
950 CHECK_FCT(fd_msg_search_avp(req, dataobj_nas_identifier, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
951 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
952 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
953 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
954 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
955 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
956 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
957 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
958 attribute->attrib = "NAS-Identifier"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
959 attribute->value.os.data = avpdata->avp_value->os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
960 attribute->value.os.len = avpdata->avp_value->os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
961 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
962 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
963 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
964 /* NAS-IP-Address AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
965 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
966 CHECK_FCT(fd_msg_search_avp(req, dataobj_nas_ip_address, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
967 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
968 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
969 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
970 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
971 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
972 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
973 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
974 attribute->attrib = "NAS-IP-Address"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
975 attribute->value.os.data = avpdata->avp_value->os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
976 attribute->value.os.len = avpdata->avp_value->os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
977 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
978 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
979 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
980 /* NAS-IPv6-Address AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
981 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
982 CHECK_FCT(fd_msg_search_avp(req, dataobj_nas_ipv6_address, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
983 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
984 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
985 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
986 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
987 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
988 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
989 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
990 attribute->attrib = "NAS-IPv6-Address"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
991 attribute->value.os.data = avpdata->avp_value->os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
992 attribute->value.os.len = avpdata->avp_value->os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
993 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
994 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
995 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
996 /* State AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
997 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
998 CHECK_FCT(fd_msg_search_avp(req, dataobj_state, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
999 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1000 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1001 CHECK_FCT(fd_msg_avp_hdr(avp, &avpdata)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1002 struct avp_attribute * attribute; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1003 CHECK_MALLOC(attribute = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1004 memset(attribute, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1005 fd_list_init(&attribute->chain, attribute); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1006 attribute->attrib = "State"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1007 attribute->value.os.data = avpdata->avp_value->os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1008 attribute->value.os.len = avpdata->avp_value->os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1009 fd_list_insert_before(&diameap_sm->req_attributes, &attribute->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1010 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1011 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1012 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1013 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1014 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1015 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1016 static int diameap_sess_data_new( |
1088
1d1a20a0779d
Second part of changeset 1083, now the code compiles again. Still missing some functions implementation, though
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1027
diff
changeset
|
1017 struct sess_state *diameap_sess_data, |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1018 struct diameap_state_machine *diameap_sm) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1019 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1020 if (!diameap_sm) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1021 return EINVAL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1022 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1023 int i; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1024 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1025 diameap_sess_data->invalid_eappackets = diameap_sm->invalid_eappackets; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1026 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1027 diameap_sess_data->user.id = diameap_sm->eap_sm.user.id; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1028 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1029 if ((diameap_sm->eap_sm.user.userid != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1030 && (diameap_sm->eap_sm.user.useridLength > 0)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1031 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1032 diameap_sess_data->user.useridLength |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1033 = diameap_sm->eap_sm.user.useridLength; |
577
9dae8bc2d04a
Fix user name verification in EAP-TLS plugin
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
565
diff
changeset
|
1034 CHECK_MALLOC(diameap_sess_data->user.userid= malloc(diameap_sess_data->user.useridLength+1)); |
9dae8bc2d04a
Fix user name verification in EAP-TLS plugin
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
565
diff
changeset
|
1035 U8COPY(diameap_sess_data->user.userid,0,diameap_sess_data->user.useridLength+1,diameap_sm->eap_sm.user.userid); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1036 free(diameap_sm->eap_sm.user.userid); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1037 diameap_sm->eap_sm.user.userid = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1038 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1039 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1040 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1041 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1042 diameap_sess_data->user.useridLength = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1043 diameap_sess_data->user.userid = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1044 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1045 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1046 if ((diameap_sm->eap_sm.user.password != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1047 && (diameap_sm->eap_sm.user.passwordLength > 0)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1048 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1049 diameap_sess_data->user.passwordLength |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1050 = diameap_sm->eap_sm.user.passwordLength; |
577
9dae8bc2d04a
Fix user name verification in EAP-TLS plugin
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
565
diff
changeset
|
1051 CHECK_MALLOC(diameap_sess_data->user.password = malloc(diameap_sess_data->user.passwordLength+1)); |
9dae8bc2d04a
Fix user name verification in EAP-TLS plugin
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
565
diff
changeset
|
1052 U8COPY(diameap_sess_data->user.password,0,diameap_sess_data->user.passwordLength+1,diameap_sm->eap_sm.user.password); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1053 free(diameap_sm->eap_sm.user.password); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1054 diameap_sm->eap_sm.user.password = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1055 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1056 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1057 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1058 diameap_sess_data->user.passwordLength = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1059 diameap_sess_data->user.password = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1060 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1061 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1062 diameap_sess_data->user.methodId = diameap_sm->eap_sm.user.methodId; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1063 for (i = 0; i < MAXMETHODS; i++) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1064 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1065 diameap_sess_data->user.methods[i].method |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1066 = diameap_sm->eap_sm.user.methods[i].method; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1067 diameap_sess_data->user.methods[i].vendor |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1068 = diameap_sm->eap_sm.user.methods[i].vendor; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1069 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1070 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1071 for (i = 0; i < MAXPROPOSEDMETHODS; i++) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1072 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1073 diameap_sess_data->user.proposedmethods[i].method |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1074 = diameap_sm->eap_sm.user.proposedmethods[i].method; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1075 diameap_sess_data->user.proposedmethods[i].vendor |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1076 = diameap_sm->eap_sm.user.proposedmethods[i].vendor; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1077 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1078 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1079 diameap_sess_data->user.pmethods = diameap_sm->eap_sm.user.pmethods; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1080 diameap_sess_data->user.proposed_eap_method |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1081 = diameap_sm->eap_sm.user.proposed_eap_method; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1082 diameap_sess_data->user.proposed_eap_method_vendor |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1083 = diameap_sm->eap_sm.user.proposed_eap_method_vendor; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1084 diameap_sess_data->user.success = diameap_sm->eap_sm.user.success; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1085 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1086 diameap_sess_data->currentId = diameap_sm->eap_sm.currentId; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1087 diameap_sess_data->currentMethod = diameap_sm->eap_sm.currentMethod; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1088 diameap_sess_data->currentVendor = diameap_sm->eap_sm.currentVendor; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1089 diameap_sess_data->lastId = diameap_sm->eap_sm.lastId; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1090 diameap_sess_data->methodState = diameap_sm->eap_sm.methodState; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1091 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1092 diameap_sess_data->methodData = diameap_sm->eap_sm.methodData; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1093 diameap_sm->eap_sm.methodData = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1094 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1095 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1096 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1097 |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1098 static void free_attrib(struct auth_attribute * auth_attrib) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1099 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1100 if (auth_attrib == NULL) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1101 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1102 return; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1103 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1104 if (auth_attrib->attrib != NULL) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1105 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1106 free(auth_attrib->attrib); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1107 auth_attrib->attrib = NULL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1108 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1109 if (auth_attrib->op != NULL) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1110 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1111 free(auth_attrib->op); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1112 auth_attrib->op = NULL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1113 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1114 if (auth_attrib->value != NULL) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1115 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1116 free(auth_attrib->value); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1117 auth_attrib->value = NULL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1118 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1119 free(auth_attrib); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1120 auth_attrib = NULL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1121 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1122 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1123 static void free_avp_attrib(struct avp_attribute * avp_attrib) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1124 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1125 if(avp_attrib){ |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1126 free(avp_attrib); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1127 avp_attrib = NULL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1128 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1129 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1130 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1131 static void free_ans_attrib(struct avp_attribute * ans_attrib) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1132 { |
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:
1120
diff
changeset
|
1133 if(ans_attrib){ |
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:
1120
diff
changeset
|
1134 if (ans_attrib->tofree == 1) |
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:
1120
diff
changeset
|
1135 { |
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:
1120
diff
changeset
|
1136 if(ans_attrib->value.os.data){ |
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:
1120
diff
changeset
|
1137 free(ans_attrib->value.os.data); |
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:
1120
diff
changeset
|
1138 ans_attrib->value.os.data = 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:
1120
diff
changeset
|
1139 } |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1140 } |
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:
1120
diff
changeset
|
1141 free(ans_attrib); |
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:
1120
diff
changeset
|
1142 ans_attrib = NULL; |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1143 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1144 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1145 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1146 static int diameap_unlink_attributes_lists( |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1147 struct diameap_state_machine * diameap_sm) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1148 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1149 TRACE_ENTRY("%p ", diameap_sm); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1150 if (diameap_sm == NULL) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1151 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1152 return EINVAL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1153 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1154 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1155 while (!FD_IS_LIST_EMPTY(&diameap_sm->attributes)) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1156 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1157 struct fd_list * item = (struct fd_list *) diameap_sm->attributes.next; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1158 struct auth_attribute * auth = (struct auth_attribute *) item; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1159 fd_list_unlink(item); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1160 free_attrib(auth); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1161 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1162 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1163 while (!FD_IS_LIST_EMPTY(&diameap_sm->req_attributes)) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1164 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1165 struct fd_list * item = |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1166 (struct fd_list *) diameap_sm->req_attributes.next; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1167 struct avp_attribute * avp = (struct avp_attribute *) item; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1168 fd_list_unlink(item); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1169 free_avp_attrib(avp); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1170 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1171 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1172 while (!FD_IS_LIST_EMPTY(&diameap_sm->ans_attributes)) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1173 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1174 struct fd_list * item = |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1175 (struct fd_list *) diameap_sm->ans_attributes.next; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1176 struct avp_attribute * avp_ans = (struct avp_attribute *) item; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1177 fd_list_unlink(item); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1178 free_ans_attrib(avp_ans); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1179 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1180 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1181 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1182 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1183 |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1184 static void diameap_free(struct diameap_state_machine * diameap_sm) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1185 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1186 |
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:
1120
diff
changeset
|
1187 if (diameap_sm != NULL) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1188 { |
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:
1120
diff
changeset
|
1189 if (diameap_sm->eap_sm.user.userid != NULL) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1190 { |
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:
1120
diff
changeset
|
1191 free(diameap_sm->eap_sm.user.userid); |
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:
1120
diff
changeset
|
1192 diameap_sm->eap_sm.user.userid = NULL; |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1193 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1194 |
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:
1120
diff
changeset
|
1195 if (diameap_sm->eap_sm.user.password != NULL) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1196 { |
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:
1120
diff
changeset
|
1197 free(diameap_sm->eap_sm.user.password); |
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:
1120
diff
changeset
|
1198 diameap_sm->eap_sm.user.password = NULL; |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1199 } |
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:
1120
diff
changeset
|
1200 |
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:
1120
diff
changeset
|
1201 diameap_sm->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:
1120
diff
changeset
|
1202 |
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:
1120
diff
changeset
|
1203 if (diameap_sm->eap_sm.methodData != NULL) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1204 { |
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:
1120
diff
changeset
|
1205 |
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:
1120
diff
changeset
|
1206 struct plugin * cplugin; |
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:
1120
diff
changeset
|
1207 if (diameap_plugin_get(diameap_sm->eap_sm.currentVendor, |
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:
1120
diff
changeset
|
1208 diameap_sm->eap_sm.currentMethod, &cplugin)) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1209 { |
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:
1120
diff
changeset
|
1210 TRACE_DEBUG(INFO,"%sUnable to access EAP Method plugin {Type=%d, Vendor=%d}.",DIAMEAP_EXTENSION,diameap_sm->eap_sm.currentMethod,diameap_sm->eap_sm.currentVendor); |
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:
1120
diff
changeset
|
1211 } |
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:
1120
diff
changeset
|
1212 |
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:
1120
diff
changeset
|
1213 if (cplugin->eap_method_free) |
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:
1120
diff
changeset
|
1214 { |
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:
1120
diff
changeset
|
1215 (*cplugin->eap_method_free)(diameap_sm->eap_sm.methodData); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1216 diameap_sm->eap_sm.methodData = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1217 } |
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:
1120
diff
changeset
|
1218 else |
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:
1120
diff
changeset
|
1219 { |
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:
1120
diff
changeset
|
1220 TRACE_DEBUG(INFO,"%s[%s plugin] datafree function not available.",DIAMEAP_EXTENSION,cplugin->methodname); |
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:
1120
diff
changeset
|
1221 if (diameap_sm->eap_sm.methodData != 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:
1120
diff
changeset
|
1222 { |
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:
1120
diff
changeset
|
1223 free(diameap_sm->eap_sm.methodData); |
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:
1120
diff
changeset
|
1224 diameap_sm->eap_sm.methodData = 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:
1120
diff
changeset
|
1225 } |
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:
1120
diff
changeset
|
1226 } |
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:
1120
diff
changeset
|
1227 if (diameap_sm->eap_sm.methodData) |
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:
1120
diff
changeset
|
1228 { |
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:
1120
diff
changeset
|
1229 TRACE_DEBUG(INFO,"%sSession state was not been freed correctly!!!",DIAMEAP_EXTENSION); |
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:
1120
diff
changeset
|
1230 } |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1231 } |
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:
1120
diff
changeset
|
1232 |
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:
1120
diff
changeset
|
1233 if (diameap_sm->failedavp != 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:
1120
diff
changeset
|
1234 { |
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:
1120
diff
changeset
|
1235 CHECK_FCT_DO(fd_msg_free(diameap_sm->failedavp), ); |
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:
1120
diff
changeset
|
1236 } |
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:
1120
diff
changeset
|
1237 |
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:
1120
diff
changeset
|
1238 if (diameap_sm->lastReqEAPavp != 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:
1120
diff
changeset
|
1239 { |
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:
1120
diff
changeset
|
1240 CHECK_FCT_DO(fd_msg_free(diameap_sm->lastReqEAPavp), ); |
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:
1120
diff
changeset
|
1241 } |
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:
1120
diff
changeset
|
1242 |
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:
1120
diff
changeset
|
1243 CHECK_FCT_DO(diameap_unlink_attributes_lists(diameap_sm), ); |
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:
1120
diff
changeset
|
1244 |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1245 free(diameap_sm); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1246 diameap_sm = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1247 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1248 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1249 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1250 |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1251 static int diameap_get_avp_attribute(struct fd_list * avp_attributes, |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1252 char * attribute, struct avp_attribute ** avp_attrib, int unlink, |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1253 int *ret) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1254 { |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1255 TRACE_ENTRY("%p %p %p %d %p", avp_attributes, attribute, avp_attrib, unlink, ret); |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1256 if (avp_attributes == NULL) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1257 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1258 return EINVAL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1259 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1260 if (attribute == NULL) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1261 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1262 return EINVAL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1263 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1264 struct fd_list * attrib; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1265 for (attrib = avp_attributes->next; attrib != avp_attributes; attrib |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1266 = attrib->next) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1267 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1268 *avp_attrib = (struct avp_attribute *) attrib; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1269 if (strcmp((*avp_attrib)->attrib, attribute) == 0) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1270 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1271 *ret = 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1272 if (unlink == 1) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1273 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1274 fd_list_unlink(&(*avp_attrib)->chain); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1275 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1276 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1277 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1278 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1279 *avp_attrib = NULL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1280 *ret = 1; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1281 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1282 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1283 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1284 static int diameap_get_auth_attribute(struct fd_list * auth_attributes, |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1285 char * attribute, struct auth_attribute ** auth_attrib, int unlink, |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1286 int *ret) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1287 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1288 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1289 TRACE_ENTRY("%p %p %p %d %p", auth_attributes, attribute, auth_attrib, unlink, ret); |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1290 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1291 if (auth_attributes == NULL) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1292 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1293 return EINVAL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1294 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1295 if (attribute == NULL) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1296 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1297 return EINVAL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1298 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1299 |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1300 struct fd_list * attrib; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1301 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1302 for (attrib = auth_attributes->next; attrib != auth_attributes; attrib |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1303 = attrib->next) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1304 { |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1305 *auth_attrib = (struct auth_attribute *) attrib; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1306 if (strcmp((*auth_attrib)->attrib, attribute) == 0) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1307 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1308 *ret = 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1309 if (unlink == 1) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1310 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1311 fd_list_unlink(&(*auth_attrib)->chain); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1312 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1313 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1314 } |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1315 } |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1316 *auth_attrib = NULL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1317 *ret = 1; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1318 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1319 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1320 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1321 static int diameap_get_ans_attribute(struct fd_list * ans_attributes, |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1322 char * attribute, struct avp_attribute ** ans_attrib, int unlink, |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1323 int *ret) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1324 { |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1325 TRACE_ENTRY("%p %p %p %d %p", ans_attributes, attribute, ans_attrib, unlink, ret); |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1326 if (ans_attributes == NULL) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1327 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1328 return EINVAL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1329 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1330 if (attribute == NULL) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1331 { |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1332 return EINVAL; |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1333 } |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1334 struct fd_list * attrib; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1335 for (attrib = ans_attributes->next; attrib != ans_attributes; attrib |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1336 = attrib->next) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1337 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1338 *ans_attrib = (struct avp_attribute *) attrib; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1339 if (strcmp((*ans_attrib)->attrib, attribute) == 0) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1340 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1341 *ret = 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1342 if (unlink == 1) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1343 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1344 fd_list_unlink(&(*ans_attrib)->chain); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1345 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1346 return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1347 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1348 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1349 *ans_attrib = NULL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1350 *ret = 1; |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1351 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1352 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1353 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1354 static int diameap_answer_avp_attributes( |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1355 struct diameap_state_machine * diameap_sm) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1356 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1357 TRACE_ENTRY("%p",diameap_sm); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1358 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1359 if (diameap_sm == NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1360 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1361 return EINVAL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1362 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1363 int ret1, ret2; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1364 struct avp_attribute * avp_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1365 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1366 struct auth_attribute * auth_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1367 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1368 /* Authorization-Lifetime */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1369 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1370 CHECK_FCT(diameap_get_avp_attribute(&diameap_sm->req_attributes, "Authorization-Lifetime", &avp_attrib,1, &ret1)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1371 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1372 CHECK_FCT(diameap_get_auth_attribute(&diameap_sm->attributes, "Authorization-Lifetime", &auth_attrib,1, &ret2)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1373 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1374 if ((ret1 == 1) && (ret2 == 0) && (auth_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1375 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1376 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1377 CHECK_MALLOC(ans_attrib = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1378 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1379 memset(ans_attrib, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1380 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1381 fd_list_init(&ans_attrib->chain, NULL); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1382 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1383 ans_attrib->attrib = "Authorization-Lifetime"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1384 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1385 ans_attrib->value.u32 = atoi(auth_attrib->value); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1386 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1387 fd_list_insert_before(&diameap_sm->ans_attributes, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1388 &ans_attrib->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1389 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1390 free_attrib(auth_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1391 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1392 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1393 if ((ret1 == 0) && (ret2 == 1) && (avp_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1394 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1395 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1396 CHECK_MALLOC(ans_attrib = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1397 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1398 memset(ans_attrib, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1399 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1400 fd_list_init(&ans_attrib->chain, NULL); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1401 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1402 ans_attrib->attrib = "Authorization-Lifetime"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1403 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1404 ans_attrib->value.u32 = avp_attrib->value.u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1405 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1406 fd_list_insert_before(&diameap_sm->ans_attributes, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1407 &ans_attrib->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1408 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1409 free_avp_attrib(avp_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1410 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1411 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1412 if ((ret1 == 0) && (ret2 == 0) && (auth_attrib != NULL) && (avp_attrib |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1413 != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1414 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1415 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1416 CHECK_MALLOC(ans_attrib = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1417 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1418 memset(ans_attrib, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1419 fd_list_init(&ans_attrib->chain, NULL); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1420 ans_attrib->attrib = "Authorization-Lifetime"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1421 if (avp_attrib->value.u32 < atoi(auth_attrib->value)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1422 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1423 ans_attrib->value.u32 = avp_attrib->value.u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1424 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1425 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1426 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1427 ans_attrib->value.u32 = atoi(auth_attrib->value); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1428 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1429 fd_list_insert_before(&diameap_sm->ans_attributes, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1430 &ans_attrib->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1431 free_avp_attrib(avp_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1432 free_attrib(auth_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1433 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1434 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1435 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1436 /* Auth-Grace-Period */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1437 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1438 CHECK_FCT(diameap_get_avp_attribute(&diameap_sm->req_attributes, "Auth-Grace-Period", &avp_attrib,1, &ret1)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1439 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1440 CHECK_FCT(diameap_get_auth_attribute(&diameap_sm->attributes, "Auth-Grace-Period", &auth_attrib,1, &ret2)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1441 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1442 if ((ret1 == 1) && (ret2 == 0) && (auth_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1443 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1444 CHECK_MALLOC(ans_attrib = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1445 memset(ans_attrib, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1446 fd_list_init(&ans_attrib->chain, NULL); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1447 ans_attrib->attrib = "Auth-Grace-Period"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1448 ans_attrib->value.u32 = atoi(auth_attrib->value); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1449 fd_list_insert_before(&diameap_sm->ans_attributes, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1450 &ans_attrib->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1451 free_attrib(auth_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1452 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1453 if ((ret1 == 0) && (ret2 == 1) && (avp_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1454 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1455 CHECK_MALLOC(ans_attrib = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1456 memset(ans_attrib, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1457 fd_list_init(&ans_attrib->chain, NULL); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1458 ans_attrib->attrib = "Auth-Grace-Period"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1459 ans_attrib->value.u32 = avp_attrib->value.u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1460 fd_list_insert_before(&diameap_sm->ans_attributes, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1461 &ans_attrib->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1462 free_avp_attrib(avp_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1463 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1464 if ((ret1 == 0) && (ret2 == 0) && (auth_attrib != NULL) && (avp_attrib |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1465 != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1466 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1467 CHECK_MALLOC(ans_attrib = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1468 memset(ans_attrib, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1469 fd_list_init(&ans_attrib->chain, NULL); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1470 ans_attrib->attrib = "Auth-Grace-Period"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1471 if (avp_attrib->value.u32 < atoi(auth_attrib->value)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1472 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1473 ans_attrib->value.u32 = avp_attrib->value.u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1474 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1475 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1476 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1477 ans_attrib->value.u32 = atoi(auth_attrib->value); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1478 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1479 fd_list_insert_before(&diameap_sm->ans_attributes, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1480 &ans_attrib->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1481 free_attrib(auth_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1482 free_avp_attrib(avp_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1483 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1484 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1485 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1486 /* Auth-Session-State */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1487 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1488 CHECK_FCT(diameap_get_auth_attribute(&diameap_sm->attributes, "Auth-Session-State", &auth_attrib,1, &ret2)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1489 if ((ret2 == 0) && (auth_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1490 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1491 CHECK_MALLOC(ans_attrib = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1492 memset(ans_attrib, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1493 fd_list_init(&ans_attrib->chain, NULL); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1494 ans_attrib->attrib = "Auth-Session-State"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1495 ans_attrib->value.i32 = atoi(auth_attrib->value); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1496 fd_list_insert_before(&diameap_sm->ans_attributes, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1497 &ans_attrib->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1498 free_attrib(auth_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1499 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1500 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1501 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1502 /* Re-Auth-Request-Type */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1503 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1504 CHECK_FCT(diameap_get_auth_attribute(&diameap_sm->attributes, "Re-Auth-Request-Type", &auth_attrib,1, &ret2)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1505 if ((ret2 == 0) && (auth_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1506 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1507 CHECK_MALLOC(ans_attrib = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1508 memset(ans_attrib, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1509 fd_list_init(&ans_attrib->chain, NULL); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1510 ans_attrib->attrib = "Re-Auth-Request-Type"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1511 ans_attrib->value.i32 = atoi(auth_attrib->value); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1512 fd_list_insert_before(&diameap_sm->ans_attributes, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1513 &ans_attrib->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1514 free_attrib(auth_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1515 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1516 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1517 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1518 ans_attrib = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1519 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes, "Authorization-Lifetime", &ans_attrib,0, &ret1)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1520 if ((ret1 == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1521 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1522 CHECK_MALLOC(ans_attrib = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1523 memset(ans_attrib, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1524 fd_list_init(&ans_attrib->chain, NULL); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1525 ans_attrib->attrib = "Re-Auth-Request-Type"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1526 ans_attrib->value.i32 = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1527 fd_list_insert_before(&diameap_sm->ans_attributes, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1528 &ans_attrib->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1529 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1530 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1531 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1532 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1533 /* Session-Timeout */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1534 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1535 CHECK_FCT(diameap_get_auth_attribute(&diameap_sm->attributes, "Session-Timeout", &auth_attrib,1, &ret2)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1536 if ((ret2 == 0) && (auth_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1537 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1538 CHECK_MALLOC(ans_attrib = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1539 memset(ans_attrib, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1540 fd_list_init(&ans_attrib->chain, NULL); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1541 ans_attrib->attrib = "Session-Timeout"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1542 ans_attrib->value.u32 = atoi(auth_attrib->value); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1543 fd_list_insert_before(&diameap_sm->ans_attributes, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1544 &ans_attrib->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1545 free_attrib(auth_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1546 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1547 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1548 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1549 /* Multi-Round-Time-Out */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1550 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1551 CHECK_FCT(diameap_get_auth_attribute(&diameap_sm->attributes, "Multi-Round-Time-Out", &auth_attrib,1, &ret2)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1552 if ((ret2 == 0) && (auth_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1553 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1554 CHECK_MALLOC(ans_attrib = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1555 memset(ans_attrib, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1556 fd_list_init(&ans_attrib->chain, NULL); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1557 ans_attrib->attrib = "Multi-Round-Time-Out"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1558 ans_attrib->value.u32 = atoi(auth_attrib->value); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1559 fd_list_insert_before(&diameap_sm->ans_attributes, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1560 &ans_attrib->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1561 free_attrib(auth_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1562 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1563 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1564 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1565 /* Acct-Interim-Interval */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1566 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1567 CHECK_FCT(diameap_get_auth_attribute(&diameap_sm->attributes, "Acct-Interim-Interval", &auth_attrib,1, &ret2)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1568 if ((ret2 == 0) && (auth_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1569 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1570 CHECK_MALLOC(ans_attrib = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1571 memset(ans_attrib, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1572 fd_list_init(&ans_attrib->chain, NULL); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1573 ans_attrib->attrib = "Acct-Interim-Interval"; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1574 ans_attrib->value.u32 = atoi(auth_attrib->value); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1575 fd_list_insert_before(&diameap_sm->ans_attributes, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1576 &ans_attrib->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1577 free_attrib(auth_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1578 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1579 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1580 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1581 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1582 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1583 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1584 #define DIAMEAP_STR 1 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1585 #define DIAMEAP_NUM 2 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1586 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1587 #define DIAMEAP_OP_NO 0 //Not supported operator |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1588 #define DIAMEAP_OP_EQ 1 //== |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1589 #define DIAMEAP_OP_GT 2 //> |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1590 #define DIAMEAP_OP_LT 3 //< |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1591 #define DIAMEAP_OP_GE 4 //>= |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1592 #define DIAMEAP_OP_LE 5 //<= |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1593 #define DIAMEAP_OP_NE 6 //!= |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1594 #define DIAMEAP_OP_EX 7 //~= |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1595 #define EQ(A,B) A==B ? TRUE : FALSE |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1596 #define GT(A,B) A>B ? TRUE : FALSE |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1597 #define GE(A,B) A>=B ? TRUE : FALSE |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1598 #define LT(A,B) A<B ? TRUE : FALSE |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1599 #define LE(A,B) A<=B ? TRUE : FALSE |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1600 #define NE(A,B) A!=B ? TRUE : FALSE |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1601 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1602 int diameap_get_operator(char *operator) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1603 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1604 TRACE_ENTRY("%p",operator); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1605 if (strcmp(operator, "==") == 0) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1606 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1607 return DIAMEAP_OP_EQ; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1608 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1609 if (strcmp(operator, ">") == 0) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1610 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1611 return DIAMEAP_OP_GT; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1612 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1613 if (strcmp(operator, "<") == 0) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1614 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1615 return DIAMEAP_OP_LT; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1616 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1617 if (strcmp(operator, ">=") == 0) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1618 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1619 return DIAMEAP_OP_GE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1620 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1621 if (strcmp(operator, "<=") == 0) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1622 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1623 return DIAMEAP_OP_LE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1624 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1625 if (strcmp(operator, "!=") == 0) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1626 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1627 return DIAMEAP_OP_NE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1628 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1629 if (strcmp(operator, "~=") == 0) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1630 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1631 return DIAMEAP_OP_EX; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1632 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1633 return DIAMEAP_OP_NO; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1634 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1635 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1636 boolean is_operator(int format_type, char * operator) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1637 { |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1638 TRACE_ENTRY("%d %p",format_type,operator); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1639 if ((format_type == DIAMEAP_STR) && (strcmp(operator, "==") == 0 || strcmp( |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1640 operator, "~=") == 0 || strcmp(operator, "!=") == 0)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1641 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1642 return TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1643 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1644 if ((format_type == DIAMEAP_NUM) && (strcmp(operator, "~=") != 0)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1645 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1646 return TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1647 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1648 return FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1649 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1650 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1651 union avp_value diameap_get_num(char * num, enum dict_avp_basetype datatype) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1652 { |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1653 TRACE_ENTRY("%p %d",num,datatype); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1654 union avp_value val; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1655 switch (datatype) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1656 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1657 case AVP_TYPE_INTEGER32://i32 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1658 val.i32 = atoi(num); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1659 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1660 case AVP_TYPE_INTEGER64://i64 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1661 val.i64 = atoll(num); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1662 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1663 case AVP_TYPE_UNSIGNED32://u32 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1664 val.u32 = strtoul(num, NULL, 10); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1665 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1666 case AVP_TYPE_UNSIGNED64://u64 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1667 val.u64 = strtoull(num, NULL, 10); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1668 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1669 case AVP_TYPE_FLOAT32://f32 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1670 val.f32 = atof(num); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1671 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1672 case AVP_TYPE_FLOAT64://f64 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1673 val.f64 = strtod(num, NULL); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1674 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1675 default: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1676 TRACE_DEBUG(INFO, "%sUnknown AVP Base Type.",DIAMEAP_EXTENSION) |
1417
0918e88f7c33
fix warnings detected by Apple clang 11.0.0
Luke Mewburn <luke@mewburn.net>
parents:
1405
diff
changeset
|
1677 memset(&val, 0, sizeof(val)); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1678 ; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1679 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1680 return val; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1681 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1682 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1683 boolean diameap_check(union avp_value *A, char * B, char * operator, |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1684 enum dict_avp_basetype datatype) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1685 { |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1686 TRACE_ENTRY("%p %p %p %d",A,B,operator,datatype); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1687 if (((datatype == AVP_TYPE_OCTETSTRING) && (is_operator(DIAMEAP_STR, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1688 operator) == TRUE)) || ((datatype != AVP_TYPE_OCTETSTRING) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1689 && (datatype != AVP_TYPE_GROUPED) && (is_operator(DIAMEAP_NUM, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1690 operator) == TRUE))) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1691 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1692 switch (diameap_get_operator(operator)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1693 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1694 case DIAMEAP_OP_EQ: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1695 if ((datatype == AVP_TYPE_OCTETSTRING) && (is_operator(DIAMEAP_STR, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1696 operator) == TRUE)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1697 { |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1698 if (strcmp((char *)A->os.data, B) == 0) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1699 return TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1700 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1701 return FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1702 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1703 else if ((datatype != AVP_TYPE_OCTETSTRING) && (datatype |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1704 != AVP_TYPE_GROUPED) && (is_operator(DIAMEAP_NUM, operator) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1705 == TRUE)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1706 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1707 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1708 switch (datatype) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1709 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1710 case AVP_TYPE_INTEGER32://i32 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1711 return EQ(A->i32,diameap_get_num(B, datatype).i32); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1712 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1713 case AVP_TYPE_INTEGER64://i64 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1714 return EQ(A->i64,diameap_get_num(B, datatype).i64); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1715 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1716 case AVP_TYPE_UNSIGNED32://u32 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1717 return EQ(A->u32,diameap_get_num(B, datatype).u32); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1718 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1719 case AVP_TYPE_UNSIGNED64://u64 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1720 return EQ(A->u64,diameap_get_num(B, datatype).u64); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1721 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1722 case AVP_TYPE_FLOAT32://f32 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1723 return EQ(A->f32,diameap_get_num(B, datatype).f32); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1724 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1725 case AVP_TYPE_FLOAT64://f64 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1726 return EQ(A->f64,diameap_get_num(B, datatype).f64); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1727 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1728 default: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1729 return FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1730 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1731 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1732 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1733 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1734 return FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1735 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1736 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1737 case DIAMEAP_OP_EX: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1738 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1739 //string only |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1740 boolean authorized = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1741 if ((datatype == AVP_TYPE_OCTETSTRING) && (is_operator(DIAMEAP_STR, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1742 operator) == TRUE)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1743 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1744 regex_t rule_regexp; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1745 regcomp(&rule_regexp, B, REG_EXTENDED | REG_NOSUB | REG_ICASE); |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1746 if (regexec(&rule_regexp, (char *)A->os.data, 0, NULL, 0) != 0) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1747 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1748 authorized = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1749 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1750 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1751 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1752 authorized = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1753 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1754 regfree(&rule_regexp); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1755 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1756 return authorized; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1757 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1758 case DIAMEAP_OP_GT: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1759 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1760 if ((datatype != AVP_TYPE_OCTETSTRING) && (datatype |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1761 != AVP_TYPE_GROUPED) && (is_operator(DIAMEAP_NUM, operator) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1762 == TRUE)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1763 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1764 switch (datatype) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1765 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1766 case AVP_TYPE_INTEGER32://i32 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1767 return GT(A->i32, diameap_get_num(B, datatype).i32); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1768 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1769 case AVP_TYPE_INTEGER64://i64 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1770 return GT(A->i64, diameap_get_num(B, datatype).i64); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1771 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1772 case AVP_TYPE_UNSIGNED32://u32 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1773 return GT(A->u32, diameap_get_num(B, datatype).u32); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1774 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1775 case AVP_TYPE_UNSIGNED64://u64 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1776 return GT(A->u64, diameap_get_num(B, datatype).u64); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1777 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1778 case AVP_TYPE_FLOAT32://f32 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1779 return GT(A->f32, diameap_get_num(B, datatype).f32); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1780 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1781 case AVP_TYPE_FLOAT64://f64 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1782 return GT(A->f64, diameap_get_num(B, datatype).f64); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1783 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1784 default: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1785 return FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1786 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1787 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1788 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1789 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1790 return FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1791 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1792 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1793 case DIAMEAP_OP_GE: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1794 if ((datatype != AVP_TYPE_OCTETSTRING) && (datatype |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1795 != AVP_TYPE_GROUPED) && (is_operator(DIAMEAP_NUM, operator) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1796 == TRUE)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1797 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1798 switch (datatype) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1799 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1800 case AVP_TYPE_INTEGER32://i32 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1801 return GE(A->i32,diameap_get_num(B, datatype).i32); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1802 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1803 case AVP_TYPE_INTEGER64://i64 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1804 return GE(A->i64,diameap_get_num(B, datatype).i64); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1805 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1806 case AVP_TYPE_UNSIGNED32://u32 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1807 return GE(A->u32,diameap_get_num(B, datatype).u32); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1808 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1809 case AVP_TYPE_UNSIGNED64://u64 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1810 return GE(A->u64,diameap_get_num(B, datatype).u64); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1811 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1812 case AVP_TYPE_FLOAT32://f32 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1813 return GE(A->f32,diameap_get_num(B, datatype).f32); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1814 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1815 case AVP_TYPE_FLOAT64://f64 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1816 return GE(A->f64,diameap_get_num(B, datatype).f64); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1817 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1818 default: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1819 return FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1820 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1821 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1822 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1823 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1824 return FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1825 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1826 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1827 case DIAMEAP_OP_LT: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1828 if ((datatype != AVP_TYPE_OCTETSTRING) && (datatype |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1829 != AVP_TYPE_GROUPED) && (is_operator(DIAMEAP_NUM, operator) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1830 == TRUE)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1831 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1832 switch (datatype) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1833 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1834 case AVP_TYPE_INTEGER32://i32 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1835 return LT(A->i32, diameap_get_num(B, datatype).i32); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1836 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1837 case AVP_TYPE_INTEGER64://i64 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1838 return LT(A->i64, diameap_get_num(B, datatype).i64); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1839 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1840 case AVP_TYPE_UNSIGNED32://u32 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1841 return LT(A->u32, diameap_get_num(B, datatype).u32); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1842 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1843 case AVP_TYPE_UNSIGNED64://u64 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1844 return LT(A->u64, diameap_get_num(B, datatype).u64); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1845 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1846 case AVP_TYPE_FLOAT32://f32 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1847 return LT(A->f32, diameap_get_num(B, datatype).f32); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1848 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1849 case AVP_TYPE_FLOAT64://f64 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1850 return LT(A->f64, diameap_get_num(B, datatype).f64); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1851 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1852 default: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1853 return FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1854 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1855 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1856 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1857 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1858 return FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1859 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1860 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1861 case DIAMEAP_OP_LE: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1862 if ((datatype != AVP_TYPE_OCTETSTRING) && (datatype |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1863 != AVP_TYPE_GROUPED) && (is_operator(DIAMEAP_NUM, operator) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1864 == TRUE)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1865 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1866 switch (datatype) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1867 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1868 case AVP_TYPE_INTEGER32://i32 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1869 return LE(A->i32, diameap_get_num(B, datatype).i32); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1870 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1871 case AVP_TYPE_INTEGER64://i64 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1872 return LE(A->i64, diameap_get_num(B, datatype).i64); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1873 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1874 case AVP_TYPE_UNSIGNED32://u32 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1875 return LE(A->u32, diameap_get_num(B, datatype).u32); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1876 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1877 case AVP_TYPE_UNSIGNED64://u64 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1878 return LE(A->u64, diameap_get_num(B, datatype).u64); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1879 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1880 case AVP_TYPE_FLOAT32://f32 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1881 return LE(A->f32, diameap_get_num(B, datatype).f32); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1882 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1883 case AVP_TYPE_FLOAT64://f64 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1884 return LE(A->f64, diameap_get_num(B, datatype).f64); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1885 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1886 default: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1887 return FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1888 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1889 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1890 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1891 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1892 return FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1893 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1894 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1895 case DIAMEAP_OP_NE: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1896 if ((datatype == AVP_TYPE_OCTETSTRING) && (is_operator(DIAMEAP_STR, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1897 operator) == TRUE)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1898 { |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1899 if (strcmp((char *)A->os.data, B) != 0) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1900 return TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1901 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1902 return FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1903 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1904 else if ((datatype != AVP_TYPE_OCTETSTRING) && (datatype |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1905 != AVP_TYPE_GROUPED) && (is_operator(DIAMEAP_NUM, operator) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1906 == TRUE)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1907 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1908 switch (datatype) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1909 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1910 case AVP_TYPE_INTEGER32://i32 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1911 return NE(A->i32, diameap_get_num(B, datatype).i32); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1912 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1913 case AVP_TYPE_INTEGER64://i64 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1914 return NE(A->i64, diameap_get_num(B, datatype).i64); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1915 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1916 case AVP_TYPE_UNSIGNED32://u32 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1917 return NE(A->u32, diameap_get_num(B, datatype).u32); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1918 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1919 case AVP_TYPE_UNSIGNED64://u64 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1920 return NE(A->u64, diameap_get_num(B, datatype).u64); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1921 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1922 case AVP_TYPE_FLOAT32://f32 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1923 return NE(A->f32, diameap_get_num(B, datatype).f32); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1924 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1925 case AVP_TYPE_FLOAT64://f64 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1926 return NE(A->f64, diameap_get_num(B, datatype).f64); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1927 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1928 default: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1929 return FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1930 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1931 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1932 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1933 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1934 return FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1935 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1936 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1937 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1938 } |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
1939 return FALSE; |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1940 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1941 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1942 char * diameap_attribute_operator(char * op, int * toadd, boolean *isrule) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1943 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1944 TRACE_ENTRY("%p %p %p",op,toadd,isrule); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1945 char * attribute_op; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1946 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1947 if (op[0] == '+') |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1948 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1949 *toadd = 1; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1950 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1951 else if (op[strlen(op) - 1] == '+') |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1952 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1953 *toadd = 2; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1954 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1955 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1956 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1957 *toadd = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1958 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1959 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1960 switch (*toadd) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1961 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1962 case 1: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1963 attribute_op = malloc(strlen(op)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1964 memset(attribute_op, 0, strlen(op)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1965 strncpy(attribute_op, op + 1, strlen(op) - 1); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1966 attribute_op[strlen(op)] = '\0'; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1967 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1968 case 2: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1969 attribute_op = malloc(strlen(op)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1970 memset(attribute_op, 0, strlen(op)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1971 strncpy(attribute_op, op, strlen(op) - 1); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1972 attribute_op[strlen(op)] = '\0'; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1973 break; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1974 default: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1975 attribute_op = malloc(strlen(op) + 1); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1976 memset(attribute_op, 0, strlen(op) + 1); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1977 strcpy(attribute_op, op); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1978 attribute_op[strlen(op) + 1] = '\0'; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1979 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1980 if (strcmp(attribute_op, "=") == 0) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1981 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1982 *isrule = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1983 *toadd = 2; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1984 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1985 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1986 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1987 *isrule = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1988 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1989 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1990 return attribute_op; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1991 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1992 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1993 int diameap_answer_set_attribute_valueA(union avp_value *A, int *tofree, |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1994 enum dict_avp_basetype datatype, union avp_value * rval) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1995 { |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1996 TRACE_ENTRY("%p %p %d %p",A,tofree,datatype,rval); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1997 if (datatype == AVP_TYPE_OCTETSTRING) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
1998 { |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
1999 CHECK_MALLOC(rval->os.data=malloc(A->os.len)); |
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2000 memcpy(rval->os.data,A->os.data,A->os.len); |
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2001 rval->os.len = A->os.len; |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2002 *tofree = 1; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2003 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2004 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2005 { |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2006 *rval = *A; |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2007 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2008 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2009 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2010 int diameap_answer_set_attribute_valueB(char * B, int *tofree, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2011 enum dict_avp_basetype datatype, union avp_value * rval) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2012 { |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2013 TRACE_ENTRY("%p %p %d %p",B,tofree,datatype,rval); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2014 if (datatype == AVP_TYPE_OCTETSTRING) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2015 { |
444
25c111bec522
Fix small issue on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
438
diff
changeset
|
2016 CHECK_MALLOC(rval->os.data=malloc(strlen(B))); |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
2017 memcpy(rval->os.data,B,strlen(B)); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2018 rval->os.len = strlen(B); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2019 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2020 *tofree = 1; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2021 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2022 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2023 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2024 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2025 *rval = diameap_get_num(B, datatype); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2026 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2027 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2028 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2029 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2030 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2031 static int diameap_attribute_limits(char * attrib, int * max, int *ret) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2032 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2033 TRACE_ENTRY("%p %p %p",attrib,max,ret); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2034 if (attrib == NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2035 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2036 return EINVAL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2037 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2038 int i; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2039 for (i = 0; i < sizeof(auth_avps); i++) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2040 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2041 if (strcmp(auth_avps[i].avp_attribute, attrib) == 0) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2042 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2043 *max = auth_avps[i].max; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2044 *ret = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2045 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2046 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2047 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2048 *max = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2049 *ret = 1; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2050 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2051 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2052 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2053 static int diameap_answer_authorization_attributes( |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2054 struct diameap_state_machine * diameap_sm) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2055 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2056 TRACE_ENTRY("%p",diameap_sm); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2057 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2058 if (diameap_sm == NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2059 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2060 return EINVAL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2061 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2062 boolean checked = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2063 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2064 struct fd_list * attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2065 struct auth_attribute * auth_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2066 struct avp_attribute * avp_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2067 int ret; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2068 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2069 for (attrib = (&diameap_sm->attributes)->next; attrib |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2070 != (&diameap_sm->attributes); attrib = attrib->next) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2071 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2072 avp_attrib = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2073 auth_attrib = (struct auth_attribute *) attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2074 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2075 int toadd = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2076 boolean isrule = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2077 char * op; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2078 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2079 op = diameap_attribute_operator(auth_attrib->op, &toadd, &isrule); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2080 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2081 struct dict_object * dobj; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2082 struct dict_avp_data avpdata; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2083 fd_dict_search(fd_g_config->cnf_dict, DICT_AVP, AVP_BY_NAME, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2084 auth_attrib->attrib, &dobj, ENOENT); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2085 fd_dict_getval(dobj, &avpdata); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2086 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2087 checked = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2088 if (isrule == TRUE) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2089 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2090 CHECK_FCT(diameap_get_avp_attribute(&diameap_sm->req_attributes,auth_attrib->attrib,&avp_attrib,0,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2091 if (ret == 0) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2092 { |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2093 checked = diameap_check(&avp_attrib->value, auth_attrib->value, |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2094 op, avpdata.avp_basetype); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2095 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2096 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2097 if (checked == TRUE && toadd != 0) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2098 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2099 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2100 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2101 int max = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2102 diameap_attribute_limits(auth_attrib->attrib, &max, &ret); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2103 if ((ret == 0) && (max != 0)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2104 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2105 if (max == 1)//only one |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2106 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2107 int ret = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2108 diameap_get_ans_attribute(&diameap_sm->ans_attributes, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2109 auth_attrib->attrib, &ans_attrib, 0, &ret); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2110 if (ret == 1) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2111 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2112 ans_attrib = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2113 CHECK_MALLOC(ans_attrib = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2114 memset(ans_attrib, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2115 fd_list_init(&ans_attrib->chain, NULL); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2116 ans_attrib->attrib = strdup(auth_attrib->attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2117 if (toadd == 1) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2118 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2119 diameap_answer_set_attribute_valueA( |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2120 &avp_attrib->value, &ans_attrib->tofree, |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2121 avpdata.avp_basetype, &ans_attrib->value); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2122 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2123 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2124 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2125 diameap_answer_set_attribute_valueB( |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2126 auth_attrib->value, &ans_attrib->tofree, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2127 avpdata.avp_basetype, &ans_attrib->value); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2128 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2129 fd_list_insert_before(&diameap_sm->ans_attributes, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2130 &ans_attrib->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2131 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2132 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2133 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2134 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2135 //an answer avp is already added |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2136 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2137 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2138 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2139 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2140 ans_attrib = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2141 CHECK_MALLOC(ans_attrib = malloc(sizeof(struct avp_attribute))); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2142 memset(ans_attrib, 0, sizeof(struct avp_attribute)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2143 fd_list_init(&ans_attrib->chain, NULL); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2144 ans_attrib->attrib = auth_attrib->attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2145 if (toadd == 1) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2146 { |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2147 diameap_answer_set_attribute_valueA(&avp_attrib->value, |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2148 &ans_attrib->tofree, avpdata.avp_basetype, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2149 &ans_attrib->value); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2150 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2151 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2152 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2153 diameap_answer_set_attribute_valueB(auth_attrib->value, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2154 &ans_attrib->tofree, avpdata.avp_basetype, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2155 &ans_attrib->value); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2156 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2157 fd_list_insert_before(&diameap_sm->ans_attributes, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2158 &ans_attrib->chain); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2159 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2160 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2161 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2162 if (checked == FALSE) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2163 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2164 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2165 diameap_sm->authorized = FALSE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2166 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2167 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2168 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2169 diameap_sm->authorized = checked; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2170 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2171 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2172 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2173 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2174 |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
2175 |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2176 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2177 static int diameap_policy_decision(struct diameap_state_machine * diameap_sm, |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2178 struct diameap_eap_interface *eap_i) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2179 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2180 TRACE_ENTRY("%p %p",diameap_sm,eap_i); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2181 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2182 if ((eap_i->aaaFail == TRUE) && (eap_i->aaaSuccess == TRUE)) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2183 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2184 TRACE_DEBUG(INFO,"%s Incorrect EAP decision. EAP process should not return both success and failure for the same session.(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
|
2185 return -1; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2186 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2187 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2188 if (eap_i->aaaFail == TRUE) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2189 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2190 diameap_sm->result_code = 4001; /* DIAMETER_AUTHENTICATION_REJECTED 4001 */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2191 diameap_sm->authFailure = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2192 TRACE_DEBUG(FULL+1,"%s Auth failure: Authentication Rejected ",DIAMEAP_EXTENSION); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2193 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2194 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2195 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2196 if (eap_i->aaaSuccess == FALSE) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2197 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2198 diameap_sm->result_code = 1001; /* DIAMETER_MULTI_ROUND_AUTH 1001 */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2199 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2200 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2201 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2202 if (eap_i->aaaSuccess == TRUE) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2203 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2204 if (diameap_sm->auth_request_val == AUTHORIZE_AUTHENTICATE) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2205 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2206 if ((diameap_sm->verify_authorization == TRUE) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2207 && (diameap_sm->result_code == 0)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2208 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2209 diameap_sm->result_code = 2001; /* DIAMETER_SUCCESS 2001 */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2210 diameap_sm->authSuccess = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2211 TRACE_DEBUG(FULL+1,"%s Auth success: Authorization and Authentication ",DIAMEAP_EXTENSION); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2212 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2213 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2214 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2215 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2216 // |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2217 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2218 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2219 if (diameap_sm->auth_request_val == AUTHENTICATE_ONLY) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2220 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2221 diameap_sm->result_code = 2001; /* DIAMETER_SUCCESS 2001 */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2222 diameap_sm->authSuccess = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2223 TRACE_DEBUG(FULL+1,"%s Auth success: Authentication Only ",DIAMEAP_EXTENSION); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2224 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2225 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2226 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2227 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2228 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2229 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2230 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2231 static int diameap_add_avps(struct diameap_state_machine * diameap_sm, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2232 struct msg * ans, struct msg * req) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2233 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2234 TRACE_ENTRY("%p %p %p",diameap_sm,ans,req); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2235 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2236 struct avp * avp, *avp2; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2237 struct avp_hdr * avpdata; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2238 union avp_value avp_val; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2239 int ret = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2240 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2241 /* Origin-Host AVP and Origin-Realm AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2242 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2243 CHECK_FCT( fd_msg_add_origin ( ans, 0 ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2244 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2245 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2246 /* Auth-Application-Id AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2247 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2248 CHECK_FCT(fd_msg_avp_new(dataobj_auth_application_id, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2249 avp_val.u32 = diameap_config->application_id; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2250 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2251 CHECK_FCT(fd_msg_avp_add(ans, MSG_BRW_LAST_CHILD, avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2252 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2253 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2254 /* Auth-Request-Type AVP |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2255 * Enumerated values: |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2256 * AUTHENTICATE_ONLY 1 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2257 * AUTHORIZE_ONLY 2 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2258 * AUTHORIZE_AUTHENTICATE 3 */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2259 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2260 CHECK_FCT(fd_msg_avp_new(dataobj_auth_request_type, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2261 if (!diameap_config->authorize) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2262 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2263 //AUTHENTICATE ONLY |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2264 avp_val.i32 = AUTHENTICATE_ONLY; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2265 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2266 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2267 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2268 if (diameap_sm->auth_request_val == 3) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2269 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2270 //AUTHORIZE_AUTHENTICATE |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2271 avp_val.i32 = AUTHORIZE_AUTHENTICATE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2272 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2273 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2274 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2275 //AUTHENTICATE_ONLY |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2276 avp_val.i32 = AUTHENTICATE_ONLY; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2277 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2278 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2279 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2280 CHECK_FCT(fd_msg_avp_add(ans, MSG_BRW_LAST_CHILD, avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2281 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2282 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2283 /* Proxy-Info AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2284 CHECK_FCT(fd_msg_search_avp(req, dataobj_proxy_info, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2285 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2286 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2287 CHECK_FCT(fd_msg_avp_hdr ( avp, &avpdata ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2288 u32 proxy_info_code = avpdata->avp_code; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2289 int depth; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2290 do |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2291 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2292 ret = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2293 depth = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2294 CHECK_FCT(fd_msg_avp_hdr ( avp, &avpdata ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2295 if (avpdata->avp_code == proxy_info_code) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2296 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2297 CHECK_FCT(fd_msg_avp_add(ans, MSG_BRW_LAST_CHILD, avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2298 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2299 ret = fd_msg_browse ( avp, MSG_BRW_NEXT, &avp2, &depth); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2300 avp = avp2; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2301 } while ((avp != NULL) && (ret == 0) && (ret == 0)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2302 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2303 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2304 if (diameap_sm->eap_sm.user.userid) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2305 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2306 /* User-Name AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2307 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2308 CHECK_FCT(fd_msg_avp_new(dataobj_user_name, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2309 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2310 if (diameap_sm->privateUser == FALSE) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2311 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2312 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2313 avp_val.os.data = diameap_sm->eap_sm.user.userid; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2314 avp_val.os.len = diameap_sm->eap_sm.user.useridLength; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2315 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2316 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2317 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2318 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2319 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2320 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2321 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2322 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2323 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2324 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2325 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2326 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2327 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2328 static int diameap_add_user_sessions_avps( |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2329 struct diameap_state_machine * diameap_sm, struct msg * ans) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2330 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2331 TRACE_ENTRY("%p %p",diameap_sm,ans); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2332 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2333 struct avp * avp; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2334 union avp_value avp_val; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2335 int ret; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2336 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2337 /* Authorization-Lifetime AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2338 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2339 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2340 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Authorization-Lifetime",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2341 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2342 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2343 CHECK_FCT(fd_msg_avp_new(dataobj_authorization_lifetime, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2344 avp_val.u32 = ans_attrib->value.u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2345 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2346 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2347 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2348 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2349 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2350 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2351 /* Auth-Grace-Period AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2352 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2353 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2354 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Auth-Grace-Period",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2355 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2356 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2357 CHECK_FCT(fd_msg_avp_new(dataobj_auth_grace_period, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2358 avp_val.u32 = ans_attrib->value.u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2359 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2360 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2361 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2362 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2363 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2364 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2365 /* Auth-Session-State AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2366 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2367 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2368 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Auth-Session-State",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2369 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2370 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2371 CHECK_FCT(fd_msg_avp_new(dataobj_auth_session_state, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2372 avp_val.i32 = ans_attrib->value.i32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2373 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2374 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2375 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2376 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2377 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2378 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2379 /* Re-Auth-Request-Type AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2380 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2381 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2382 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Re-Auth-Request-Type",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2383 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2384 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2385 CHECK_FCT(fd_msg_avp_new(dataobj_re_auth_request_type, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2386 avp_val.i32 = ans_attrib->value.i32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2387 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2388 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2389 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2390 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2391 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2392 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2393 /* Session-Timeout AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2394 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2395 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2396 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Session-Timeout",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2397 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2398 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2399 CHECK_FCT(fd_msg_avp_new(dataobj_session_timeout, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2400 avp_val.u32 = ans_attrib->value.u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2401 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2402 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2403 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2404 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2405 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2406 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2407 /* Acct-Interim-Interval AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2408 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2409 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2410 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Acct-Interim-Interval",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2411 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2412 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2413 CHECK_FCT(fd_msg_avp_new(dataobj_acct_interim_interval, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2414 avp_val.u32 = ans_attrib->value.u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2415 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2416 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2417 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2418 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2419 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2420 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2421 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2422 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2423 static int diameap_add_authorization_avps( |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2424 struct diameap_state_machine * diameap_sm, struct msg * ans) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2425 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2426 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2427 TRACE_ENTRY("%p %p",diameap_sm, ans); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2428 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2429 struct avp * avp; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2430 union avp_value avp_val; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2431 int ret; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2432 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2433 if (diameap_sm == NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2434 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2435 return EINVAL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2436 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2437 if (ans == NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2438 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2439 return EINVAL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2440 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2441 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2442 /* Reply-Message */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2443 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2444 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2445 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Reply-Message",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2446 while ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2447 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2448 CHECK_FCT(fd_msg_avp_new(dataobj_reply_message, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2449 avp_val.os.data = ans_attrib->value.os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2450 avp_val.os.len = ans_attrib->value.os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2451 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2452 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2453 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2454 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Reply-Message",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2455 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2456 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2457 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2458 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2459 /* Service-Type */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2460 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2461 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2462 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Service-Type",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2463 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2464 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2465 CHECK_FCT(fd_msg_avp_new(dataobj_service_type, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2466 avp_val.i32 = ans_attrib->value.i32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2467 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2468 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2469 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2470 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2471 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2472 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2473 /* Callback-Number */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2474 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2475 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2476 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Callback-Number",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2477 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2478 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2479 CHECK_FCT(fd_msg_avp_new(dataobj_callback_number, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2480 avp_val.os.data = ans_attrib->value.os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2481 avp_val.os.len = ans_attrib->value.os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2482 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2483 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2484 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2485 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2486 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2487 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2488 /* Callback-Id */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2489 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2490 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2491 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Callback-Id",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2492 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2493 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2494 CHECK_FCT(fd_msg_avp_new(dataobj_callback_id, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2495 avp_val.os.data = ans_attrib->value.os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2496 avp_val.os.len = ans_attrib->value.os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2497 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2498 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2499 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2500 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2501 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2502 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2503 /* Idle-Timeout */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2504 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2505 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2506 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Idle-Timeout",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2507 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2508 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2509 CHECK_FCT(fd_msg_avp_new(dataobj_idle_timeout, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2510 avp_val.u32 = ans_attrib->value.u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2511 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2512 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2513 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2514 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2515 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2516 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2517 /* NAS-Filter-Rule */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2518 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2519 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2520 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"NAS-Filter-Rule",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2521 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2522 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2523 CHECK_FCT(fd_msg_avp_new(dataobj_nas_filter_rule, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2524 avp_val.u32 = ans_attrib->value.u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2525 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2526 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2527 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2528 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2529 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2530 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2531 /* Filter-Id */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2532 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2533 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2534 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Filter-Id",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2535 while ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2536 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2537 CHECK_FCT(fd_msg_avp_new(dataobj_filter_id, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2538 avp_val.os.data = ans_attrib->value.os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2539 avp_val.os.len = ans_attrib->value.os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2540 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2541 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2542 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2543 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Filter-Id",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2544 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2545 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2546 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2547 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2548 /* Configuration-Token */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2549 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2550 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2551 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Configuration-Token",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2552 while ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2553 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2554 CHECK_FCT(fd_msg_avp_new(dataobj_configuration_token, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2555 avp_val.os.data = ans_attrib->value.os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2556 avp_val.os.len = ans_attrib->value.os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2557 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2558 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2559 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2560 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Configuration-Token",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2561 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2562 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2563 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2564 /* QoS-Filter-Rule */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2565 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2566 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2567 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"QoS-Filter-Rule",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2568 while ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2569 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2570 CHECK_FCT(fd_msg_avp_new(dataobj_qos_filter_rule, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2571 avp_val.os.data = ans_attrib->value.os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2572 avp_val.os.len = ans_attrib->value.os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2573 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2574 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2575 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2576 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"QoS-Filter-Rule",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2577 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2578 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2579 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2580 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2581 /* Framed-Protocol */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2582 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2583 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2584 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-Protocol",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2585 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2586 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2587 CHECK_FCT(fd_msg_avp_new(dataobj_framed_protocol, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2588 avp_val.i32 = ans_attrib->value.i32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2589 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2590 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2591 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2592 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2593 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2594 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2595 /* Framed-Routing */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2596 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2597 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2598 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-Routing",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2599 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2600 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2601 CHECK_FCT(fd_msg_avp_new(dataobj_framed_routing, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2602 avp_val.i32 = ans_attrib->value.i32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2603 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2604 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2605 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2606 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2607 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2608 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2609 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2610 /* Framed-MTU */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2611 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2612 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2613 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-MTU",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2614 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2615 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2616 CHECK_FCT(fd_msg_avp_new(dataobj_framed_mtu, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2617 avp_val.u32 = ans_attrib->value.u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2618 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2619 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2620 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2621 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2622 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2623 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2624 /* Framed-Compression */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2625 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2626 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2627 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-Compression",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2628 while ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2629 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2630 CHECK_FCT(fd_msg_avp_new(dataobj_framed_compression, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2631 avp_val.i32 = ans_attrib->value.i32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2632 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2633 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2634 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2635 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-Compression",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2636 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2637 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2638 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2639 /* Framed-IP-Address */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2640 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2641 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2642 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-IP-Address",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2643 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2644 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2645 CHECK_FCT(fd_msg_avp_new(dataobj_framed_ip_address, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2646 avp_val.os.data = ans_attrib->value.os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2647 avp_val.os.len = ans_attrib->value.os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2648 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2649 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2650 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2651 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2652 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2653 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2654 /* Framed-IP-Netmask */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2655 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2656 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2657 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-IP-Netmask",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2658 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2659 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2660 CHECK_FCT(fd_msg_avp_new(dataobj_framed_ip_netmask, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2661 avp_val.os.data = ans_attrib->value.os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2662 avp_val.os.len = ans_attrib->value.os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2663 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2664 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2665 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2666 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2667 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2668 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2669 /* Framed-Route */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2670 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2671 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2672 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-Route",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2673 while ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2674 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2675 CHECK_FCT(fd_msg_avp_new(dataobj_framed_route, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2676 avp_val.os.data = ans_attrib->value.os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2677 avp_val.os.len = ans_attrib->value.os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2678 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2679 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2680 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2681 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-Route",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2682 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2683 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2684 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2685 /* Framed-Pool */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2686 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2687 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2688 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-Pool",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2689 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2690 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2691 CHECK_FCT(fd_msg_avp_new(dataobj_framed_pool, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2692 avp_val.os.data = ans_attrib->value.os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2693 avp_val.os.len = ans_attrib->value.os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2694 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2695 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2696 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2697 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2698 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2699 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2700 /* Framed-Interface-Id */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2701 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2702 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2703 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-Interface-Id",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2704 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2705 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2706 CHECK_FCT(fd_msg_avp_new(dataobj_framed_interface_id, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2707 avp_val.u64 = ans_attrib->value.u64; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2708 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2709 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2710 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2711 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2712 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2713 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2714 /* Framed-IPv6-Prefix */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2715 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2716 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2717 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-IPv6-Prefix",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2718 while ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2719 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2720 CHECK_FCT(fd_msg_avp_new(dataobj_framed_ipv6_prefix, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2721 avp_val.os.data = ans_attrib->value.os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2722 avp_val.os.len = ans_attrib->value.os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2723 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2724 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2725 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2726 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-IPv6-Prefix",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2727 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2728 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2729 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2730 /* Framed-IPv6-Route */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2731 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2732 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2733 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-IPv6-Route",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2734 while ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2735 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2736 CHECK_FCT(fd_msg_avp_new(dataobj_framed_ipv6_route, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2737 avp_val.os.data = ans_attrib->value.os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2738 avp_val.os.len = ans_attrib->value.os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2739 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2740 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2741 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2742 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-IPv6-Route",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2743 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2744 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2745 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2746 /* Framed-IPv6-Pool */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2747 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2748 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2749 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-IPv6-Pool",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2750 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2751 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2752 CHECK_FCT(fd_msg_avp_new(dataobj_framed_ipv6_pool, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2753 avp_val.os.data = ans_attrib->value.os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2754 avp_val.os.len = ans_attrib->value.os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2755 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2756 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2757 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2758 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2759 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2760 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2761 /* Framed-IPX-Network */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2762 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2763 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2764 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-IPX-Network",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2765 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2766 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2767 CHECK_FCT(fd_msg_avp_new(dataobj_framed_ipx_network, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2768 avp_val.u32 = ans_attrib->value.u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2769 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2770 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2771 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2772 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2773 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2774 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2775 /* Framed-AppleTalk-Link */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2776 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2777 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2778 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-AppleTalk-Link",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2779 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2780 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2781 CHECK_FCT(fd_msg_avp_new(dataobj_framed_appletalk_link, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2782 avp_val.u32 = ans_attrib->value.u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2783 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2784 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2785 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2786 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2787 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2788 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2789 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2790 /* Framed-AppleTalk-Network */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2791 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2792 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2793 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-AppleTalk-Network",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2794 while ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2795 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2796 CHECK_FCT(fd_msg_avp_new(dataobj_framed_appletalk_network, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2797 avp_val.u32 = ans_attrib->value.u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2798 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2799 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2800 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2801 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-AppleTalk-Network",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2802 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2803 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2804 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2805 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2806 /* Framed-AppleTalk-Zone */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2807 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2808 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2809 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-AppleTalk-Zone",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2810 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2811 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2812 CHECK_FCT(fd_msg_avp_new(dataobj_framed_appletalk_zone, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2813 avp_val.os.data = ans_attrib->value.os.data; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2814 avp_val.os.len = ans_attrib->value.os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2815 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2816 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2817 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2818 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2819 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2820 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2821 /* Tunneling */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2822 // |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2823 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2824 /* State */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2825 // |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2826 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2827 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2828 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2829 static int diameap_add_result_code(struct diameap_state_machine * diameap_sm, |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2830 struct msg * ans, struct session * sess) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2831 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2832 TRACE_ENTRY("%p %p",diameap_sm,ans); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2833 struct avp * avp; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2834 union avp_value avp_val; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2835 int ret; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2836 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2837 /* Result-Code AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2838 CHECK_FCT(fd_msg_avp_new(dataobj_result_code, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2839 avp_val.u32 = diameap_sm->result_code; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2840 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2841 /* Add Result-Code AVP to the message */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2842 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2843 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2844 /* Multi_Round_Time_Out AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2845 if (diameap_sm->result_code == 1001) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2846 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2847 struct timespec sess_timeout; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2848 CHECK_FCT(fd_msg_avp_new(dataobj_multi_round_time_out, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2849 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2850 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Multi-Round-Time-Out",&ans_attrib,1,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2851 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2852 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2853 avp_val.u32 = ans_attrib->value.u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2854 /* Update the session timeout with multi-round-time-out value */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2855 CHECK_SYS(clock_gettime(CLOCK_REALTIME,&sess_timeout)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2856 sess_timeout.tv_sec += diameap_config->multi_round_time_out; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2857 CHECK_FCT(fd_sess_settimeout(sess, &sess_timeout)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2858 free_ans_attrib(ans_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2859 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2860 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2861 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2862 avp_val.u32 = diameap_config->multi_round_time_out; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2863 /* Update the session timeout with multi-round-time-out value */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2864 CHECK_SYS(clock_gettime(CLOCK_REALTIME,&sess_timeout)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2865 sess_timeout.tv_sec += diameap_config->multi_round_time_out; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2866 CHECK_FCT(fd_sess_settimeout(sess, &sess_timeout)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2867 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2868 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2869 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2870 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2871 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2872 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2873 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2874 static int diameap_add_eap_payload(struct diameap_state_machine * diameap_sm, |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2875 struct msg * ans, struct diameap_eap_interface *eap_i) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2876 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2877 TRACE_ENTRY("%p %p",diameap_sm,ans); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2878 struct avp * avp; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2879 union avp_value avp_val; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2880 int ret; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2881 u32 Framed_MTU = 1500; //1500 default value |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2882 u32 NAS_Port_Type_HeaderLength = 4; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2883 int EAP_Max_Length = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2884 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2885 /* get Framed-MTU AVP value */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2886 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2887 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2888 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"Framed-MTU",&ans_attrib,0,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2889 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2890 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2891 Framed_MTU = ans_attrib->value.u32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2892 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2893 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2894 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2895 /* get NAS-Port-Type AVP value */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2896 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2897 struct avp_attribute * ans_attrib; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2898 CHECK_FCT(diameap_get_ans_attribute(&diameap_sm->ans_attributes,"NAS-Port-Type",&ans_attrib,0,&ret)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2899 if ((ret == 0) && (ans_attrib != NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2900 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2901 // = ans_attrib->value.i32; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2902 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2903 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2904 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2905 //TD take the link type into consideration when calculating EAP_MAX_Length |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2906 EAP_Max_Length = Framed_MTU - NAS_Port_Type_HeaderLength; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2907 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2908 if (eap_i->aaaEapReqData.length <= EAP_Max_Length) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2909 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2910 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2911 /* EAP-Payload AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2912 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2913 CHECK_FCT(fd_msg_avp_new(dataobj_eap_payload, 0, &avp)); |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2914 avp_val.os.data = eap_i->aaaEapReqData.data; |
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2915 avp_val.os.len = eap_i->aaaEapReqData.length; |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2916 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2917 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2918 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2919 if (diameap_sm->lastReqEAPavp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2920 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2921 fd_msg_free(diameap_sm->lastReqEAPavp); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2922 diameap_sm->lastReqEAPavp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2923 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2924 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2925 CHECK_FCT(fd_msg_avp_new(dataobj_eap_payload, 0, &diameap_sm->lastReqEAPavp)); |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2926 avp_val.os.data = eap_i->aaaEapReqData.data; |
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2927 avp_val.os.len = eap_i->aaaEapReqData.length; |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2928 CHECK_FCT(fd_msg_avp_setvalue(diameap_sm->lastReqEAPavp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2929 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2930 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2931 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2932 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2933 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2934 //if EAP Packet length > EAP_Max_Length |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2935 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2936 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2937 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2938 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2939 static int diameap_send(struct msg ** rmsg) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2940 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2941 TRACE_ENTRY("%p",rmsg); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2942 CHECK_FCT( fd_msg_send( rmsg, NULL, NULL)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2943 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2944 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2945 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2946 static int diameap_add_eap_success_avps( |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2947 struct diameap_state_machine * diameap_sm, struct msg * ans, |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2948 struct diameap_eap_interface *eap_i) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2949 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2950 TRACE_ENTRY("%p %p %p",diameap_sm,ans,eap_i); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2951 struct avp * avp; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2952 union avp_value avp_val; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2953 int ret; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2954 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2955 /* EAP-Master-Session-Key AVP */ |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2956 if (eap_i->aaaEapKeyAvailable == TRUE) |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2957 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2958 CHECK_FCT(fd_msg_avp_new(dataobj_eap_master_session_key, 0, &avp)); |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2959 avp_val.os.data = eap_i->aaaEapMSKData; |
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2960 avp_val.os.len = eap_i->aaaEapMSKLength; |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2961 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2962 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2963 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2964 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2965 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2966 /* EAP-Key-Name AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2967 struct avp_attribute * avp_attrib = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2968 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2969 CHECK_FCT(diameap_get_avp_attribute(&diameap_sm->req_attributes,"EAP-Key-Name",&avp_attrib,1,&ret)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2970 if ((avp_attrib != NULL) && (ret != 1)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2971 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2972 if (avp_attrib->value.os.len == 0) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2973 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2974 CHECK_FCT(fd_msg_avp_new(dataobj_eap_key_name, 0, &avp)); |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
2975 avp_val.os.data = NULL;// |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
2976 avp_val.os.len = 0;// |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2977 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2978 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2979 free_avp_attrib(avp_attrib); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2980 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2981 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2982 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2983 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2984 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2985 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2986 int diameap_authorize(struct diameap_state_machine * diameap_sm) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2987 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2988 TRACE_ENTRY("%p",diameap_sm); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2989 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
2990 CHECK_FCT(diameap_authorization_get_attribs(&diameap_sm->eap_sm.user, &diameap_sm->attributes)); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2991 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2992 diameap_sm->authorized = TRUE; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2993 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2994 CHECK_FCT_DO(diameap_answer_authorization_attributes(diameap_sm), |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2995 ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2996 if (diameap_sm->authorized == FALSE) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2997 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2998 diameap_sm->result_code = 4001; /* DIAMETER_AUTHENTICATION_REJECTED 4001 */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
2999 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3000 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3001 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3002 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3003 static int diameap_add_accounting_eap_auth_method( |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3004 struct diameap_state_machine * diameap_sm, struct msg * ans) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3005 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3006 TRACE_ENTRY("%p %p",diameap_sm,ans); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3007 int i = 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3008 struct avp * avp; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3009 union avp_value avp_val; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3010 /* Accounting-EAP-Auth-Method AVP */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3011 while (i < diameap_sm->eap_sm.user.methodId) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3012 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3013 CHECK_FCT(fd_msg_avp_new(dataobj_accounting_eap_auth_method, 0, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3014 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3015 avp_val.u64 = (u64) (((diameap_sm->eap_sm.user.methods[i].vendor) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3016 * pow((double) 2, (double) 32)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3017 + diameap_sm->eap_sm.user.methods[i].method); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3018 CHECK_FCT(fd_msg_avp_setvalue(avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3019 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3020 i++; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3021 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3022 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3023 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3024 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3025 static int diameap_add_eap_reissued_payload(struct msg * ans, struct msg * req) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3026 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3027 TRACE_ENTRY("%p %p", ans, req); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3028 struct avp * avp, *re_avp; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3029 union avp_value avp_val; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3030 struct avp_hdr * avphdr; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3031 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3032 if ((ans == NULL) || (req == NULL)) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3033 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3034 return EINVAL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3035 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3036 avp = NULL; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3037 CHECK_FCT(fd_msg_search_avp(req, dataobj_eap_payload, &avp)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3038 if (avp != NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3039 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3040 CHECK_FCT( fd_msg_avp_hdr(avp, &avphdr)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3041 CHECK_FCT( fd_msg_avp_new(dataobj_eap_reissued_payload, 0, &re_avp)); |
444
25c111bec522
Fix small issue on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
438
diff
changeset
|
3042 CHECK_MALLOC(avp_val.os.data=malloc(avphdr->avp_value->os.len)); |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3043 memcpy(avp_val.os.data,avphdr->avp_value->os.data,avphdr->avp_value->os.len); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3044 avp_val.os.len = avphdr->avp_value->os.len; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3045 CHECK_FCT(fd_msg_avp_setvalue(re_avp, &avp_val)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3046 CHECK_FCT( fd_msg_avp_add( ans, MSG_BRW_LAST_CHILD, re_avp ) ); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3047 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3048 else |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3049 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3050 TRACE_DEBUG(INFO,"%sUnable to find EAP-Payload AVP in received Diameter-EAP-Request.",DIAMEAP_EXTENSION); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3051 return 1; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3052 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3053 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3054 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3055 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3056 |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3057 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3058 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3059 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3060 static int diameap_server_callback(struct msg ** rmsg, struct avp * ravp, |
639
95a784729cac
Added new opaque pointer to fd_sess_handler_create and fd_disp_register for usability. Bumped API version number.
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
610
diff
changeset
|
3061 struct session * sess, void * opaque, enum disp_action * action) |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3062 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3063 TRACE_ENTRY("%p %p %p %p", rmsg, ravp, sess, action); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3064 |
1088
1d1a20a0779d
Second part of changeset 1083, now the code compiles again. Still missing some functions implementation, though
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1027
diff
changeset
|
3065 struct sess_state * diameap_sess_data = NULL; |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3066 struct diameap_state_machine * diameap_sm = NULL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3067 struct diameap_eap_interface eap_i; |
1405 | 3068 struct msg *req, *ans = NULL; |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3069 boolean non_fatal_error = FALSE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3070 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3071 if (rmsg == NULL) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3072 return EINVAL; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3073 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3074 req = *rmsg; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3075 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3076 CHECK_FCT_DO(fd_sess_state_retrieve(diameap_server_reg, sess, &diameap_sess_data), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3077 { TRACE_DEBUG(INFO,"%s retrieving session state failed.",DIAMEAP_EXTENSION); goto s_end;}); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3078 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3079 CHECK_MALLOC_DO(diameap_sm = malloc(sizeof(struct diameap_state_machine)), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3080 goto s_end); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3081 memset(diameap_sm, 0, sizeof(struct diameap_state_machine)); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3082 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3083 if (diameap_sess_data) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3084 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3085 diameap_sm->state = DIAMEAP_RECEIVED; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3086 diameap_sm->eap_sm.eap_state = EAP_IDLE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3087 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3088 else |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3089 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3090 diameap_sm->state = DIAMEAP_DISABLED; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3091 diameap_sm->eap_sm.eap_state = EAP_INITIALIZE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3092 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3093 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3094 while (diameap_sm->state != DIAMEAP_IDLE && diameap_sm->state |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3095 != DIAMEAP_END) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3096 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3097 switch (diameap_sm->state) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3098 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3099 case DIAMEAP_DISABLED: |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3100 if (rmsg) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3101 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3102 diameap_sm->state = DIAMEAP_INITIALIZE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3103 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3104 else |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3105 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3106 TRACE_DEBUG(INFO,"%sReceived empty Diameter EAP Request message.",DIAMEAP_EXTENSION); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3107 goto s_end; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3108 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3109 break; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3110 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3111 case DIAMEAP_INITIALIZE: |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3112 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3113 CHECK_FCT_DO(diameap_initialize_diameap_sm(diameap_sm,diameap_sess_data), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3114 { TRACE_DEBUG(INFO,"%s Initializing DiamEAP state machine failed.",DIAMEAP_EXTENSION); goto s_end;}) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3115 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3116 CHECK_FCT_DO(diameap_initialize_diameap_eap_interface(&eap_i), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3117 { TRACE_DEBUG(INFO,"%s Initializing DiamEAP-EAP Interface failed.",DIAMEAP_EXTENSION); goto s_end;}) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3118 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3119 TRACE_DEBUG(FULL+1,"%sParsing AVPs",DIAMEAP_EXTENSION) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3120 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3121 CHECK_FCT_DO(diameap_parse_avps(diameap_sm, req, &eap_i), TRACE_DEBUG(INFO,"%s Unable to parse Diameter-EAP-Request AVPs.",DIAMEAP_EXTENSION)) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3122 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3123 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3124 if ((diameap_sm->result_code != 0)) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3125 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3126 diameap_sm->state = DIAMEAP_SEND_ERROR_MSG; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3127 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3128 else |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3129 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3130 diameap_sm->state = DIAMEAP_AUTHENTICATION_VERIFY; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3131 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3132 break; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3133 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3134 case DIAMEAP_RECEIVED: |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3135 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3136 CHECK_FCT_DO(diameap_initialize_diameap_sm(diameap_sm,diameap_sess_data), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3137 { TRACE_DEBUG(INFO,"%s Initializing DiamEAP state machine failed.",DIAMEAP_EXTENSION); goto s_end;}) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3138 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3139 CHECK_FCT_DO(diameap_initialize_diameap_eap_interface(&eap_i), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3140 { TRACE_DEBUG(INFO,"%s Initializing DiamEAP-EAP Interface failed.",DIAMEAP_EXTENSION); goto s_end;}) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3141 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3142 TRACE_DEBUG(FULL+1,"%sParsing AVPs",DIAMEAP_EXTENSION) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3143 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3144 CHECK_FCT_DO(diameap_parse_avps(diameap_sm, req, &eap_i), TRACE_DEBUG(INFO,"%s Unable to parse Diameter-EAP-Request AVPs.",DIAMEAP_EXTENSION)) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3145 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3146 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3147 if (diameap_sm->result_code != 0) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3148 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3149 diameap_sm->state = DIAMEAP_SEND_ERROR_MSG; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3150 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3151 else |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3152 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3153 diameap_sm->state = DIAMEAP_AUTHENTICATION_VERIFY; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3154 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3155 break; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3156 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3157 case DIAMEAP_AUTHENTICATION_VERIFY: |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3158 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3159 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3160 TRACE_DEBUG(FULL+1,"%sVerify authentication",DIAMEAP_EXTENSION); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3161 CHECK_FCT_DO(diameap_eap_statemachine(&diameap_sm->eap_sm, &eap_i,&non_fatal_error), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3162 { TRACE_DEBUG(INFO,"%s EAP process failed.",DIAMEAP_EXTENSION); goto s_end;}); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3163 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3164 if (non_fatal_error == TRUE) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3165 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3166 TRACE_DEBUG(FULL+1,"%sAuthentication verify finished with a non-fatal-error.",DIAMEAP_EXTENSION); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3167 diameap_sm->state = DIAMEAP_SEND_ERROR_MSG; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3168 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3169 else |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3170 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3171 diameap_sm->state = DIAMEAP_SELECT_DECISION; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3172 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3173 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3174 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3175 break; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3176 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3177 case DIAMEAP_SELECT_DECISION: |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3178 |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
3179 CHECK_FCT_DO( diameap_policy_decision(diameap_sm,&eap_i), |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3180 goto s_end) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3181 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3182 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3183 if ((eap_i.aaaSuccess == TRUE) && (diameap_sm->auth_request_val |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3184 == AUTHORIZE_AUTHENTICATE) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3185 && (diameap_sm->verify_authorization == FALSE)) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3186 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3187 diameap_sm->state = DIAMEAP_AUTHORIZATION_VERIFY; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3188 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3189 else |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3190 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3191 diameap_sm->state = DIAMEAP_DIAMETER_EAP_ANSWER; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3192 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3193 break; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3194 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3195 case DIAMEAP_AUTHORIZATION_VERIFY: |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3196 diameap_sm->verify_authorization = TRUE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3197 TRACE_DEBUG(FULL+1,"%sVerify authorization",DIAMEAP_EXTENSION) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3198 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3199 CHECK_FCT_DO(diameap_authorize(diameap_sm), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3200 { TRACE_DEBUG(INFO,"%s Authorization check process failed.",DIAMEAP_EXTENSION); goto s_end;}) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3201 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3202 diameap_sm->state = DIAMEAP_SELECT_DECISION; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3203 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3204 break; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3205 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3206 case DIAMEAP_DIAMETER_EAP_ANSWER: |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3207 TRACE_DEBUG(FULL+1,"%screate Diameter EAP Answer",DIAMEAP_EXTENSION) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3208 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3209 CHECK_FCT_DO(fd_msg_new_answer_from_req(fd_g_config->cnf_dict, rmsg, 0), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3210 goto s_end) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3211 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3212 ans = *rmsg; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3213 TRACE_DEBUG(FULL+1,"%sAdding AVPs to Diameter EAP Answer.",DIAMEAP_EXTENSION) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3214 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3215 CHECK_FCT_DO( diameap_add_avps(diameap_sm, ans,req), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3216 { TRACE_DEBUG(INFO,"%s Unable to add AVPs to Diameter-EAP-Answer message.",DIAMEAP_EXTENSION);goto s_end;}) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3217 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3218 if (diameap_sm->authFailure == FALSE) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3219 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3220 if (diameap_sm->eap_sm.user.id != 0) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3221 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3222 TRACE_DEBUG(FULL+1,"%sSelect authentication attributes.",DIAMEAP_EXTENSION); |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
3223 CHECK_FCT_DO(diameap_authentication_get_attribs(&diameap_sm->eap_sm.user, &diameap_sm->attributes), |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3224 { TRACE_DEBUG(INFO,"%s Unable to get user's session attributes.",DIAMEAP_EXTENSION); goto s_end;}); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3225 TRACE_DEBUG(FULL+1,"%sCreate answer authentication attributes.",DIAMEAP_EXTENSION); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3226 CHECK_FCT_DO(diameap_answer_avp_attributes(diameap_sm), |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
3227 { TRACE_DEBUG(INFO,"%s Unable to generate answer attributes.",DIAMEAP_EXTENSION); goto s_end;}); |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3228 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3229 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3230 if (diameap_sm->authSuccess == FALSE) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3231 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3232 diameap_sm->state = DIAMEAP_SEND_REQUEST; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3233 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3234 else |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3235 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3236 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3237 diameap_sm->state = DIAMEAP_SEND_SUCCESS; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3238 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3239 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3240 else |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3241 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3242 diameap_sm->state = DIAMEAP_SEND_FAILURE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3243 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3244 break; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3245 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3246 case DIAMEAP_SEND_REQUEST: |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3247 TRACE_DEBUG(FULL+1,"%sAdding Result Code AVP to Diameter-EAP-Answer.",DIAMEAP_EXTENSION) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3248 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3249 CHECK_FCT_DO( diameap_add_result_code(diameap_sm, ans, sess), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3250 { TRACE_DEBUG(INFO,"%s Adding Result-Code AVP failed.",DIAMEAP_EXTENSION); goto s_end;}) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3251 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3252 TRACE_DEBUG(FULL+1,"%sAdding EAP-Payload to Diameter-EAP-Answer.",DIAMEAP_EXTENSION) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3253 ; |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
3254 CHECK_FCT_DO( diameap_add_eap_payload(diameap_sm, ans,&eap_i), |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3255 { TRACE_DEBUG(INFO,"%s Adding EAP-Payload AVP failed.",DIAMEAP_EXTENSION); goto s_end;}) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3256 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3257 TRACE_DEBUG(FULL+1,"%sStoring DiamEAP session data.",DIAMEAP_EXTENSION) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3258 ; |
1088
1d1a20a0779d
Second part of changeset 1083, now the code compiles again. Still missing some functions implementation, though
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1027
diff
changeset
|
3259 CHECK_MALLOC(diameap_sess_data = malloc(sizeof(struct sess_state))) |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3260 ; |
1088
1d1a20a0779d
Second part of changeset 1083, now the code compiles again. Still missing some functions implementation, though
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1027
diff
changeset
|
3261 memset(diameap_sess_data, 0, sizeof(struct sess_state)); |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3262 diameap_sess_data_new(diameap_sess_data, diameap_sm); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3263 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3264 CHECK_FCT_DO(fd_sess_state_store(diameap_server_reg, sess, &diameap_sess_data), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3265 { TRACE_DEBUG(INFO,"%s Storing session state failed.",DIAMEAP_EXTENSION); goto s_end;}) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3266 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3267 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3268 CHECK_FCT_DO( diameap_send(rmsg), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3269 goto s_end) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3270 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3271 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3272 diameap_sm->state = DIAMEAP_IDLE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3273 break; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3274 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3275 case DIAMEAP_SEND_FAILURE: |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3276 TRACE_DEBUG(FULL+1,"%sAdding Result Code AVP to Diameter-EAP-Answer.",DIAMEAP_EXTENSION) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3277 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3278 CHECK_FCT_DO( diameap_add_result_code(diameap_sm, ans, sess), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3279 { TRACE_DEBUG(INFO,"%s Adding Result-Code AVP failed.",DIAMEAP_EXTENSION); goto s_end;}) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3280 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3281 TRACE_DEBUG(FULL+1,"%sAdding EAP-Payload to Diameter-EAP-Answer.",DIAMEAP_EXTENSION) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3282 ; |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
3283 CHECK_FCT_DO( diameap_add_eap_payload(diameap_sm, ans,&eap_i), |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3284 { TRACE_DEBUG(INFO,"%s Adding EAP-Payload AVP failed.",DIAMEAP_EXTENSION); goto s_end;}) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3285 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3286 |
1120
c473581adff2
Cleanup some traces
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1088
diff
changeset
|
3287 LOG_N("%s Auth FAIL: %.*s",DIAMEAP_EXTENSION, diameap_sm->eap_sm.user.useridLength, diameap_sm->eap_sm.user.userid); |
c473581adff2
Cleanup some traces
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1088
diff
changeset
|
3288 |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3289 CHECK_FCT_DO( diameap_send(rmsg), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3290 goto s_end) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3291 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3292 diameap_sm->state = DIAMEAP_END; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3293 break; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3294 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3295 case DIAMEAP_SEND_SUCCESS: |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3296 TRACE_DEBUG(FULL+1,"%sAdding User session AVPs to Diameter-EAP-Answer.",DIAMEAP_EXTENSION) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3297 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3298 CHECK_FCT_DO(diameap_add_user_sessions_avps(diameap_sm,ans), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3299 { TRACE_DEBUG(INFO,"%s Adding user's session AVPs failed.",DIAMEAP_EXTENSION); goto s_end;}) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3300 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3301 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3302 if (diameap_sm->auth_request_val == AUTHORIZE_AUTHENTICATE) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3303 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3304 TRACE_DEBUG(FULL+1,"%sAdding Authorization AVPs to Diameter-EAP-Answer.",DIAMEAP_EXTENSION); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3305 CHECK_FCT_DO(diameap_add_authorization_avps(diameap_sm,ans), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3306 { TRACE_DEBUG(INFO,"%s Adding Authorization AVPs failed.",DIAMEAP_EXTENSION); goto s_end;}); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3307 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3308 TRACE_DEBUG(FULL+1,"%sAdding Result Code AVP to Diameter-EAP-Answer.",DIAMEAP_EXTENSION) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3309 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3310 CHECK_FCT_DO( diameap_add_result_code(diameap_sm, ans, sess), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3311 { TRACE_DEBUG(INFO,"%s Adding Result-Code AVP failed.",DIAMEAP_EXTENSION); goto s_end;}) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3312 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3313 TRACE_DEBUG(FULL+1,"%sAdding EAP-Payload to Diameter-EAP-Answer.",DIAMEAP_EXTENSION) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3314 ; |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
3315 CHECK_FCT_DO( diameap_add_eap_payload(diameap_sm, ans,&eap_i), |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3316 { TRACE_DEBUG(INFO,"%s Adding EAP-Payload AVP failed.",DIAMEAP_EXTENSION); goto s_end;}) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3317 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3318 TRACE_DEBUG(FULL+1,"%sAdding EAP success AVPs AVPs to Diameter-EAP-Answer.",DIAMEAP_EXTENSION) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3319 ; |
1027
0117a7746b21
Fix a number of errors and warnings introduced/highlighted by recent commits
Sebastien Decugis <sdecugis@freediameter.net>
parents:
639
diff
changeset
|
3320 CHECK_FCT_DO( diameap_add_eap_success_avps(diameap_sm, ans, &eap_i), |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3321 goto s_end) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3322 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3323 TRACE_DEBUG(FULL+1,"%sAdding Accounting-EAP-Auth-Method AVPs to Diameter-EAP-Answer.",DIAMEAP_EXTENSION) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3324 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3325 CHECK_FCT_DO(diameap_add_accounting_eap_auth_method(diameap_sm, ans), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3326 { TRACE_DEBUG(INFO,"%s Adding accounting AVP failed",DIAMEAP_EXTENSION); goto s_end;}) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3327 ; |
1120
c473581adff2
Cleanup some traces
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1088
diff
changeset
|
3328 |
c473581adff2
Cleanup some traces
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1088
diff
changeset
|
3329 LOG_N("%s Auth Success: %.*s",DIAMEAP_EXTENSION, diameap_sm->eap_sm.user.useridLength, diameap_sm->eap_sm.user.userid); |
c473581adff2
Cleanup some traces
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1088
diff
changeset
|
3330 |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3331 CHECK_FCT_DO( diameap_send(rmsg), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3332 goto s_end) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3333 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3334 diameap_sm->state = DIAMEAP_END; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3335 break; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3336 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3337 case DIAMEAP_SEND_ERROR_MSG: |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3338 diameap_sm->invalid_eappackets++; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3339 if (diameap_sm->invalid_eappackets |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3340 == diameap_config->max_invalid_eap_packet) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3341 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3342 diameap_sm->result_code = 4001;//DIAMETER_AUTHENTICATION_REJECTED |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3343 TRACE_DEBUG(FULL,"%s Maximum permitted invalid EAP Packet reached. Diameter Authentication Rejected.",DIAMEAP_EXTENSION); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3344 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3345 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3346 CHECK_FCT_DO(fd_msg_new_answer_from_req(fd_g_config->cnf_dict, rmsg, 0), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3347 goto s_end) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3348 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3349 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3350 ans = *rmsg; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3351 CHECK_FCT_DO( diameap_add_avps(diameap_sm, ans,req), |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3352 { TRACE_DEBUG(INFO,"%s Adding AVPs to Diameter-EAP-Answer message failed.",DIAMEAP_EXTENSION);goto s_end;}) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3353 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3354 if ((non_fatal_error == TRUE) && (diameap_sm->result_code == 0)) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3355 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3356 diameap_sm->result_code = 1001; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3357 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3358 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3359 if (diameap_sm->result_code == 1001) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3360 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3361 CHECK_FCT_DO( diameap_add_eap_reissued_payload(ans,req), goto s_end); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3362 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3363 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3364 if (diameap_sm->result_code == 5004) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3365 { |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3366 CHECK_FCT_DO( fd_msg_avp_add( ans , MSG_BRW_LAST_CHILD, diameap_sm->failedavp ),goto s_end ); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3367 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3368 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3369 CHECK_FCT_DO( diameap_add_result_code(diameap_sm, ans, sess), goto s_end) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3370 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3371 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3372 CHECK_FCT_DO( diameap_send(rmsg), goto s_end) |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3373 ; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3374 diameap_sm->state = DIAMEAP_IDLE; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3375 break; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3376 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3377 case DIAMEAP_END: |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3378 break; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3379 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3380 case DIAMEAP_IDLE: |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3381 break; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3382 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3383 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3384 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3385 diameap_free(diameap_sm); |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3386 |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3387 s_end: return 0; |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3388 } |
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3389 |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3390 int diameap_start_server(void) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3391 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3392 struct disp_when when; |
438
e7814e24e57b
Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
425
diff
changeset
|
3393 |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3394 /*create handler for sessions */ |
1088
1d1a20a0779d
Second part of changeset 1083, now the code compiles again. Still missing some functions implementation, though
Sebastien Decugis <sdecugis@freediameter.net>
parents:
1027
diff
changeset
|
3395 CHECK_FCT(fd_sess_handler_create(&diameap_server_reg, diameap_cli_sess_cleanup, NULL, NULL)); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3396 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3397 /* Register the callback */ |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3398 memset(&when, 0, sizeof(when)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3399 when.command = dataobj_diameap_cmd; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3400 when.app = dataobj_diameap_app; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3401 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3402 /* Register the callback for EAP Application */ |
639
95a784729cac
Added new opaque pointer to fd_sess_handler_create and fd_disp_register for usability. Bumped API version number.
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
610
diff
changeset
|
3403 CHECK_FCT(fd_disp_register(diameap_server_callback, DISP_HOW_CC, &when, NULL, |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3404 &handle)); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3405 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3406 if (handle == NULL) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3407 { |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3408 TRACE_DEBUG(INFO, "%sCannot register the callback !!!",DIAMEAP_EXTENSION); |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3409 return 1; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3410 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3411 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3412 } |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3413 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3414 int diameap_stop_server(void) |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3415 { |
639
95a784729cac
Added new opaque pointer to fd_sess_handler_create and fd_disp_register for usability. Bumped API version number.
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
610
diff
changeset
|
3416 CHECK_FCT(fd_sess_handler_destroy(&diameap_server_reg, NULL)); |
95a784729cac
Added new opaque pointer to fd_sess_handler_create and fd_disp_register for usability. Bumped API version number.
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
610
diff
changeset
|
3417 CHECK_FCT(fd_disp_unregister(&handle, NULL)); |
425
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3418 |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3419 return 0; |
0c6e50a5291d
New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff
changeset
|
3420 } |