annotate extensions/app_diameap/diameap.c @ 1534:c83e60f28632

dict_dcca_3gpp: simplify rule creation Refactor local_rules_definition to simplify rule creation (to avoid c99 struct initialisers that result in long lines). No change to generated rules.
author Luke Mewburn <luke@mewburn.net>
date Mon, 20 Apr 2020 12:12:42 +1000
parents c473581adff2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
425
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
1 /*****************************************************************************************************
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
2 * Software License Agreement (BSD License)
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
3 * Author : Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
4 *
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
5 * Copyright (c) 2009-2010, Souheil Ben Ayed, Teraoka Laboratory of Keio University, and the WIDE Project
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
6 * All rights reserved.
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
7 *
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
8 * Redistribution and use of this software in source and binary forms, with or without
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
9 * modification, are permitted provided that the following conditions are met:
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
10 *
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
11 * 1. Redistributions of source code must retain the above copyright
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
12 * notice, this list of conditions and the following disclaimer.
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
13 *
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
14 * 2. Redistributions in binary form must reproduce the above copyright
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
15 * notice, this list of conditions and the following disclaimer in the
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
16 * documentation and/or other materials provided with the distribution.
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
17 *
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
18 * 3. All advertising materials mentioning features or use of this software
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
19 * must display the following acknowledgement:
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
20 * This product includes software developed by Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>.
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
21 *
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
22 * 4. Neither the name of Souheil Ben Ayed, Teraoka Laboratory of Keio University or the WIDE Project nor the
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
23 * names of its contributors may be used to endorse or promote products
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
24 * derived from this software without specific prior written permission.
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
25 *
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' AND ANY
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
27 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
28 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
29 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
30 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
31 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
32 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
33 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
34 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
35 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
36 *****************************************************************************************************/
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
37
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
38 #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
425
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
41
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
42 /* DiamEAP Configuration */
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
43 static struct diameap_conf conf;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
44 struct diameap_conf * diameap_config = &conf;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
45
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
46 /* The entry point */
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
47 static int diameap_main(char * conffile)
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 TRACE_ENTRY("%p", conffile);
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
50
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
51 memset(diameap_config, 0, sizeof(struct diameap_conf));
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
52
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
53 /* Initialize configuration */
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
54 CHECK_FCT(diameap_init(conffile));
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
55
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
56 /* Start Diameter EAP Application (Back-end Authenticator ) */
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
57 CHECK_FCT(diameap_start_server());
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
58
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
59 /* Announce the support of Diameter EAP Application to other peers */
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
60 CHECK_FCT(fd_disp_app_support(dataobj_diameap_app, dataobj_diameap_ven, 1, 0));
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
61
1120
c473581adff2 Cleanup some traces
Sebastien Decugis <sdecugis@freediameter.net>
parents: 732
diff changeset
62 LOG_D("%sDiameter EAP Application Extension started successfully.",DIAMEAP_EXTENSION);
425
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
63
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
64 return 0;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
65 }
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
66
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
67 void fd_ext_fini(void)
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
68 {
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
69 TRACE_DEBUG(FULL,"%sStopping the server",DIAMEAP_EXTENSION);
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
70 CHECK_FCT_DO(diameap_stop_server(),
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
71 { TRACE_DEBUG(INFO,"%sStopping the server: Error occurred.",DIAMEAP_EXTENSION);});
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
72
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
73 if (db_conn)
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
74 {
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
75 TRACE_DEBUG(FULL,"%sDisconnecting from MySQL Server",DIAMEAP_EXTENSION);
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
76 diameap_mysql_disconnect();
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
77 }
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
78
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
79 TRACE_DEBUG(FULL,"%sUnloading EAP Methods plug-ins: Error occurred.",DIAMEAP_EXTENSION);
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
80 CHECK_FCT_DO(diameap_plugin_unload(),
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
81 { TRACE_DEBUG(INFO,"%sUnloading EAP Methods plug-ins: Error occurred.",DIAMEAP_EXTENSION);});
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
82 return;
0c6e50a5291d New app_diameap Diameter EAP Application
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents:
diff changeset
83 }
438
e7814e24e57b Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents: 425
diff changeset
84
e7814e24e57b Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents: 425
diff changeset
85 /* Define the entry point */
732
4a0b61061a6d Added simple mechanism to declare dependencies between extensions
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 438
diff changeset
86 EXTENSION_ENTRY("DiamEAP", diameap_main, "dict_eap")
438
e7814e24e57b Corrected compilation warnings on app_diameap
Souheil Ben Ayed <souheil@tera.ics.keio.ac.jp>
parents: 425
diff changeset
87 ;
"Welcome to our mercurial repository"