initial routine refined
This commit is contained in:
parent
3b8626069e
commit
afcddbd798
|
@ -82,16 +82,6 @@ struct ta_conf {
|
|||
};
|
||||
extern struct ta_conf * ta_conf;
|
||||
|
||||
typedef struct _s6a_config_t {
|
||||
c_uint8_t *identity;
|
||||
c_uint8_t *realm;
|
||||
} s6a_config_t;
|
||||
|
||||
CORE_DECLARE(status_t) s6a_config_init(int hss);
|
||||
|
||||
CORE_DECLARE(status_t) s6a_thread_start(int hss);
|
||||
CORE_DECLARE(void) s6a_thread_stop();
|
||||
|
||||
int s6a_app_init(void);
|
||||
void s6a_app_final(void);
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ status_t s6a_fd_init(const char *conffile)
|
|||
return CORE_OK;
|
||||
error:
|
||||
CHECK_FCT_DO( fd_core_shutdown(), );
|
||||
CHECK_FCT( fd_core_wait_shutdown_complete() );
|
||||
CHECK_FCT_DO( fd_core_wait_shutdown_complete(), );
|
||||
|
||||
return CORE_ERROR;
|
||||
}
|
||||
|
@ -77,16 +77,21 @@ status_t s6a_fd_hss_init()
|
|||
d_error("s6a_fd_init() failed");
|
||||
return rv;
|
||||
}
|
||||
ret = fd_core_wait_shutdown_complete();
|
||||
if (ret != 0)
|
||||
{
|
||||
return CORE_ERROR;
|
||||
d_error("fd_core_wait_shutdown_complete() failed");
|
||||
}
|
||||
|
||||
CHECK_FCT_DO( fd_core_wait_shutdown_complete(), return CORE_ERROR; );
|
||||
|
||||
return CORE_OK;
|
||||
}
|
||||
|
||||
void s6a_fd_hss_final()
|
||||
{
|
||||
int ret;
|
||||
|
||||
s6a_app_final();
|
||||
|
||||
CHECK_FCT_DO( fd_core_shutdown(), d_error("fd_core_shutdown() failed") );
|
||||
}
|
||||
|
||||
status_t s6a_fd_mme_init()
|
||||
{
|
||||
status_t rv;
|
||||
|
@ -101,17 +106,13 @@ status_t s6a_fd_mme_init()
|
|||
return CORE_OK;
|
||||
}
|
||||
|
||||
void s6a_fd_final()
|
||||
void s6a_fd_mme_final()
|
||||
{
|
||||
int ret;
|
||||
|
||||
s6a_app_final();
|
||||
|
||||
ret = fd_core_shutdown();
|
||||
if (ret != 0)
|
||||
{
|
||||
d_error("fd_core_shutdown() failed");
|
||||
}
|
||||
CHECK_FCT_DO( fd_core_shutdown(), d_error("fd_core_shutdown() failed") );
|
||||
CHECK_FCT_DO( fd_core_wait_shutdown_complete(),
|
||||
d_error("fd_core_wait_shutdown_complete() failed"));
|
||||
}
|
||||
|
||||
static void s6a_gnutls_log_func(int level, const char *str)
|
||||
|
|
|
@ -28,11 +28,11 @@ struct s6a_fd_config_t {
|
|||
extern struct s6a_fd_config_t *s6a_fd_config;
|
||||
|
||||
CORE_DECLARE(status_t) s6a_fd_hss_init();
|
||||
CORE_DECLARE(void) s6a_fd_hss_final();
|
||||
CORE_DECLARE(status_t) s6a_fd_mme_init();
|
||||
CORE_DECLARE(void) s6a_fd_final();
|
||||
CORE_DECLARE(void) s6a_fd_mme_final();
|
||||
|
||||
CORE_DECLARE(status_t) s6a_fd_config_apply();
|
||||
CORE_DECLARE(void) s6a_fd_config_init();
|
||||
CORE_DECLARE(char *) s6a_fd_hss_config();
|
||||
CORE_DECLARE(char *) s6a_fd_mme_config();
|
||||
|
||||
|
|
13
main.c
13
main.c
|
@ -55,8 +55,6 @@ static int check_signal(int signum)
|
|||
d_info("%s received",
|
||||
signum == SIGTERM ? "SIGTERM" : "SIGINT");
|
||||
|
||||
s6a_fd_final();
|
||||
|
||||
threads_stop();
|
||||
|
||||
return 1;
|
||||
|
@ -105,14 +103,14 @@ void logger_signal(int signum)
|
|||
}
|
||||
}
|
||||
|
||||
void test_signal(int signum)
|
||||
void s6a_fd_hss_signal(int signum)
|
||||
{
|
||||
fprintf(stderr, "asdfsadfsadfsdafasdfsadf = %d\n", signum);
|
||||
switch (signum)
|
||||
{
|
||||
case SIGTERM:
|
||||
case SIGINT:
|
||||
s6a_fd_final();
|
||||
s6a_fd_hss_final();
|
||||
break;
|
||||
case SIGHUP:
|
||||
break;
|
||||
|
@ -219,9 +217,9 @@ int main(int argc, char *argv[])
|
|||
/* Child */
|
||||
umask(027);
|
||||
|
||||
core_signal(SIGINT, test_signal);
|
||||
core_signal(SIGTERM, test_signal);
|
||||
core_signal(SIGHUP, test_signal);
|
||||
core_signal(SIGINT, s6a_fd_hss_signal);
|
||||
core_signal(SIGTERM, s6a_fd_hss_signal);
|
||||
core_signal(SIGHUP, s6a_fd_hss_signal);
|
||||
|
||||
s6a_fd_hss_init();
|
||||
|
||||
|
@ -229,7 +227,6 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
|
||||
/* Parent */
|
||||
s6a_fd_mme_init();
|
||||
}
|
||||
|
||||
{
|
||||
|
|
10
src/init.c
10
src/init.c
|
@ -7,7 +7,7 @@
|
|||
#include "core_debug.h"
|
||||
#include "core_thread.h"
|
||||
|
||||
#include "s6a_app.h"
|
||||
#include "s6a_lib.h"
|
||||
|
||||
#include "context.h"
|
||||
#include "event.h"
|
||||
|
@ -24,14 +24,18 @@ status_t cellwire_initialize(char *config_path)
|
|||
srand(time(NULL)*getpid());
|
||||
|
||||
rv = context_init();
|
||||
if (rv != CORE_OK)
|
||||
return rv;
|
||||
if (rv != CORE_OK) return rv;
|
||||
|
||||
rv = s6a_fd_mme_init();
|
||||
if (rv != CORE_OK) return rv;
|
||||
|
||||
return CORE_OK;
|
||||
}
|
||||
|
||||
void cellwire_terminate(void)
|
||||
{
|
||||
s6a_fd_mme_final();
|
||||
|
||||
context_final();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue