📄 radius_task.c
字号:
/* radius_task.c *//* Implementations of fucntions that handle RADIUS task initialization. *//* Copyright 1984 - 2000 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history____________________01c,11mar02,md Enhancement - moving polling socket read to seperate tasks and replace taskLock/unLock with rwos_radius_data_mutex01b,19dec00,md fixed synchronized initialization01a,19dec00,md merged from visual source safe*/#include <stdio.h>#include "radius.h"#include <vnvrmstr.h>#include "radius_task.h"/*// Function prototypes.// ------------------------*/static void radius_print_wrn_banner (void);/*// Defined in NVRAM.c// ******************// extern NVRAM_CLASS nvram;*/extern enum TEST initialize_nvram (char *cptr_file_name, ULONG location_of_ini_file, char *cptr_section_name, void *vptr_location_of_configuration_table);#ifdef __SYNCHRONIZED_INITIALIZATION__extern SEM_ID g_sem_radius_sync_init;extern bool initialize_status;#endif/*// RADIUS configuration table.// ------------------------*/extern CONFIGURATION_TABLE radius_configuration_table;char radius_configuration_text[RWOS_MAXIMUM_FILE_SIZE+1]={"<uninitialized>\n"};/****************************************************************************************//*// External interface.*/void radius_task_initialize(const char* p_configuration_data){ char* p_radius_module_data; p_radius_module_data = rw_memory_allocate (RWOS_MAXIMUM_FILE_SIZE + 1); if (p_radius_module_data == NULL) { radius_printf (RADIUS_ALARM_PRINTF, "radius_task_initialize: memory allocation failed!\n");#ifdef __SYNCHRONIZED_INITIALIZATION__ semGive (g_sem_radius_sync_init);#endif return; } /* // Initialize RTM configuration table. */ strcpy (p_radius_module_data, radius_configuration_text); /* // Initialize configuration table. */ if (initialize_nvram(NULL, (ULONG)p_radius_module_data,"RADIUS_CLIENT Application", (void*)&radius_configuration_table) == FAIL) { radius_printf (RADIUS_ALARM_PRINTF, "radius_task_initialize: NVRAM initialization failed!\n"); rw_memory_free ((void *)p_radius_module_data);#ifdef __SYNCHRONIZED_INITIALIZATION__ semGive (g_sem_radius_sync_init);#endif return; } rw_memory_free ((void *)p_radius_module_data); /* Create the RADIUS data mutex. */ rwos_radius_data_mutex = rwos_mutex_create("RADIUS_DATA"); if (rwos_radius_data_mutex == INVALID_HANDLE) { radius_printf (RADIUS_ALARM_PRINTF, "radius_task_initialize: Could not create radius data mutex.\n"); return; } /* // Perform RADIUS application initialization. */ if (initialize_radius (10) == FAIL) { radius_printf (RADIUS_ALARM_PRINTF, "radius_task_initialize: RADIUS Client package initialization failed!\n");#ifdef __SYNCHRONIZED_INITIALIZATION__ semGive (g_sem_radius_sync_init);#endif return; } radius_printf (RADIUS_INITIALIZATION_PRINTF, "radius_task_initialize(): Initialization successfully completed.\n"); radius_print_wrn_banner (); #ifdef __SYNCHRONIZED_INITIALIZATION__ initialize_status = true; semGive (g_sem_radius_sync_init);#endif} /*******************************************************************************************/static void radius_print_wrn_banner (void){ radius_printf (RADIUS_TRACE_PRINTF,"\n"); radius_printf (RADIUS_TRACE_PRINTF,"************************************************************\n"); radius_printf (RADIUS_TRACE_PRINTF,"********** Wind River Networks, Inc. **********\n"); radius_printf (RADIUS_TRACE_PRINTF,"***** RADIUS Client *****\n"); radius_printf (RADIUS_TRACE_PRINTF,"************************************************************\n"); radius_printf (RADIUS_TRACE_PRINTF,"\n"); return;}/*******************************************************************************************/void RADIUSAuthSocketReadTask (void* p_socket_object){ while (1) { receive_radius_packet (p_socket_object); } /* while */ /* Should never get here. */ return;}/*******************************************************************************************/void RADIUSAcctSocketReadTask (void* p_socket_object){ while (1) { receive_radius_packet (p_socket_object); } /* while */ /* Should never get here. */ return;}/*******************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -