update it

This commit is contained in:
Sukchan Lee 2017-02-28 12:03:53 +09:00
parent d499463df6
commit 70eb194b0b
9 changed files with 45 additions and 40 deletions

View File

@ -8,8 +8,8 @@ libs6a_la_SOURCES = \
s6a_app.h
nodist_libs6a_la_SOURCES = \
s6a_init.c s6a_fd.c s6a_config.c \
s6a_app.c s6a_dict.c s6a_serv.c s6a_cli.c
s6a_init.c s6a_config.c s6a_fd.c s6a_app.c s6a_dict.c \
s6a_hss.c s6a_mme.c
libs6a_la_DEPENDENCIES = \
$(top_srcdir)/lib/s6a/freeDiameter/libs6afreeDiameter.la

View File

@ -20,8 +20,8 @@ static void s6a_config_dump(void)
}
/* Function to display statistics periodically */
static void * s6a_stats(void * arg) {
static void * s6a_stats(void * arg)
{
struct timespec start, now;
struct ta_stats copy;
@ -42,27 +42,27 @@ static void * s6a_stats(void * arg) {
CHECK_SYS_DO( clock_gettime(CLOCK_REALTIME, &now), );
/* Now, display everything */
fd_log_debug( "------- app_test statistics ---------");
LOG_N( "------- app_test statistics ---------");
if (now.tv_nsec >= start.tv_nsec) {
fd_log_debug( " Executing for: %d.%06ld sec",
LOG_N( " Executing for: %d.%06ld sec",
(int)(now.tv_sec - start.tv_sec),
(long)(now.tv_nsec - start.tv_nsec) / 1000);
} else {
fd_log_debug( " Executing for: %d.%06ld sec",
LOG_N( " Executing for: %d.%06ld sec",
(int)(now.tv_sec - 1 - start.tv_sec),
(long)(now.tv_nsec + 1000000000 - start.tv_nsec) / 1000);
}
if (s6a_config->mode & MODE_HSS) {
fd_log_debug( " HSS: %llu message(s) echoed", copy.nb_echoed);
LOG_N( " HSS: %" C_UINT64_T_FMT " message(s) echoed", copy.nb_echoed);
}
if (s6a_config->mode & MODE_MME) {
fd_log_debug( " MME:");
fd_log_debug( " %llu message(s) sent", copy.nb_sent);
fd_log_debug( " %llu error(s) received", copy.nb_errs);
fd_log_debug( " %llu answer(s) received", copy.nb_recv);
LOG_N( " MME:");
LOG_N( " %" C_UINT64_T_FMT " message(s) sent", copy.nb_sent);
LOG_N( " %" C_UINT64_T_FMT " error(s) received", copy.nb_errs);
LOG_N( " %" C_UINT64_T_FMT " answer(s) received", copy.nb_recv);
}
fd_log_debug( "-------------------------------------");
LOG_N( "-------------------------------------");
}
return NULL; /* never called */
@ -71,6 +71,9 @@ static void * s6a_stats(void * arg) {
/* entry point */
int s6a_app_init(int mode)
{
/* Configure Application Mode(MME, HSS) */
s6a_config->mode = mode;
/* Initialize the mutex */
CHECK_POSIX( pthread_mutex_init(&s6a_config->stats_lock, NULL) );
@ -81,12 +84,12 @@ int s6a_app_init(int mode)
/* Start the signal handler thread */
if (s6a_config->mode & MODE_MME) {
CHECK_FCT( s6a_cli_init() );
CHECK_FCT( s6a_mme_init() );
}
/* Install the handlers for incoming messages */
if (s6a_config->mode & MODE_HSS) {
CHECK_FCT( s6a_serv_init() );
CHECK_FCT( s6a_hss_init() );
}
/* Advertise the support for the test application in the peer */
@ -102,9 +105,9 @@ int s6a_app_init(int mode)
void s6a_app_final(void)
{
if (s6a_config->mode & MODE_MME)
s6a_cli_fini();
s6a_mme_final();
if (s6a_config->mode & MODE_HSS)
s6a_serv_fini();
s6a_hss_final();
CHECK_FCT_DO( fd_thr_term(&s6a_stats_th), );
CHECK_POSIX_DO( pthread_mutex_destroy(&s6a_config->stats_lock), );

View File

@ -131,20 +131,20 @@ CORE_DECLARE(void) s6a_final(void);
CORE_DECLARE(int) s6a_fd_init(const char *conffile);
CORE_DECLARE(void) s6a_fd_final();
CORE_DECLARE(int) s6a_app_init(int mode);
CORE_DECLARE(void) s6a_app_final(void);
CORE_DECLARE(int) s6a_hss_init(void);
CORE_DECLARE(void) s6a_hss_final(void);
CORE_DECLARE(int) s6a_mme_init(void);
CORE_DECLARE(void) s6a_mme_final(void);
CORE_DECLARE(char *) s6a_hss_config();
CORE_DECLARE(char *) s6a_mme_config();
CORE_DECLARE(status_t) s6a_config_apply();
CORE_DECLARE(int) s6a_app_init(int mode);
CORE_DECLARE(void) s6a_app_final(void);
CORE_DECLARE(int) s6a_dict_init(void);
CORE_DECLARE(int) s6a_serv_init(void);
CORE_DECLARE(void) s6a_serv_fini(void);
CORE_DECLARE(int) s6a_cli_init(void);
CORE_DECLARE(void) s6a_cli_fini(void);
#ifdef __cplusplus
}
#endif /* __cplusplus */

View File

@ -1,3 +1,5 @@
#define TRACE_MODULE _s6a_dict
#include "core_debug.h"
#include "s6a_app.h"

View File

@ -14,7 +14,7 @@ int s6a_fd_init(const char *conffile)
{
int ret;
d_trace_level(&_s6a_fd, 0);
d_trace_level(&_s6a_fd, 1);
gnutls_global_set_log_function(s6a_gnutls_log_func);
gnutls_global_set_log_level(TRACE_MODULE);

View File

@ -1,3 +1,5 @@
#define TRACE_MODULE _s6a_hss
#include "core_debug.h"
#include "s6a_app.h"
@ -73,7 +75,7 @@ static int s6a_air_cb( struct msg ** msg, struct avp * avp,
return 0;
}
int s6a_serv_init(void)
int s6a_hss_init(void)
{
struct disp_when data;
@ -92,7 +94,7 @@ int s6a_serv_init(void)
return 0;
}
void s6a_serv_fini(void)
void s6a_hss_final(void)
{
if (s6a_hdl_fb) {
(void) fd_disp_unregister(&s6a_hdl_fb, NULL);

View File

@ -75,12 +75,6 @@ static int check_signal(int signum)
return 1;
}
case SIGUSR1:
{
void s6a_cli_test_message();
s6a_cli_test_message();
break;
}
default:
{
d_error("Unknown signal number = %d\n", signum);

View File

@ -1,3 +1,5 @@
#define TRACE_MODULE _s6a_mme
#include "core_debug.h"
#include "s6a_app.h"
@ -229,19 +231,15 @@ out:
return;
}
int s6a_cli_init(void)
int s6a_mme_init(void)
{
CHECK_FCT( fd_sess_handler_create(&s6a_cli_reg, (void *)free, NULL, NULL) );
// CHECK_FCT( fd_event_trig_regcb(s6a_config->signal, "test_app.cli", s6a_cli_test_message ) );
return 0;
}
void s6a_cli_fini(void)
void s6a_mme_final(void)
{
// CHECK_FCT_DO( fd_sig_unregister(s6a_config->signal), /* continue */ );
CHECK_FCT_DO( fd_sess_handler_destroy(&s6a_cli_reg, NULL), /* continue */ );
return;

6
main.c
View File

@ -49,6 +49,12 @@ static int check_signal(int signum)
return 1;
}
case SIGUSR1:
{
void s6a_cli_test_message();
s6a_cli_test_message();
break;
}
default:
{
d_error("Unknown signal number = %d\n", signum);