⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 radius_task.c

📁 vxworks下radius协议栈 的源代码
💻 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 + -