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

📄 pap.c

📁 在S3C2440上运行的"电子日历“(支持平年,闰年,星期自动调整). 开发环境是RVDS2.2
💻 C
字号:
/**---------------------版权 (c)----------------------------------------------------------***
***                     作者:颜章健		                                              ***
***                     邮件:jenkinyan@163.com                                           ***
***                                                                                       ***
***---------------------File Info---------------------------------------------------------***
*** 创 建 人:			颜章健															  ***
*** 创建日期:			2008-03-13														  ***
*** 创建版本:																			  ***
*** 文件描述:			口令验证协议													  ***
***---------------------------------------------------------------------------------------***
*** 修 订 人:																			  ***
*** 修订日期:																			  ***
*** 修订版本:					      													  ***
*** 修订描述																			  ***
***---------------------------------------------------------------------------------------**/
#include "config.h"


NET_PKT		PapData;


/********************************************************************************************
*** 函数名称:			
*** 函数描述:			
*** 入    口:			
*** 出    口:			
********************************************************************************************/
void	PapPutFrame(uint8 Code)
{
	uint16			Length = 0;
	static	uint8	Id = 0;
	PAP_HEAD		head;
	NET_PKT			PapPkt;	
	NET_PKT			*p;
	
	p = &PapData;
	while(p != NULL)
	{
		Length += p->Length;
		p  = p->Next;
	}
	
		
	head.s.Code 	= Code;
	head.s.Id		= Id++;
	Length      	= Length + 4;
	head.b[3]       = Length;
	head.b[2]       = Length >> 8;
	
	PapPkt.Next   	= &PapData;
	PapPkt.Data   	= head.b;
	PapPkt.Length 	= 4;		

	LinkLayer.PutFrame(PPPF_PAP,&PapPkt);
}

/********************************************************************************************
*** 函数名称:			
*** 函数描述:	PAP主动发送用户名和密码		
*** 入    口:			
*** 出    口:			
********************************************************************************************/
void	PapRequest(void)
{
	NET_PKT	Password;
	
	#ifdef	DEBUG
	_printf("发送用户名和密码\r\n");			
	#endif	
	
	PapData.Data    = (uint8 *)LinkLayer.Config.Username;
	PapData.Length  = (uint8)LinkLayer.Config.Username[0] + 1;
	PapData.Next    = &Password;
	
	Password.Data   = (uint8 *)LinkLayer.Config.Password;
	Password.Length = (uint8)LinkLayer.Config.Password[0] + 1;
	Password.Next   = NULL;
	
	PapPutFrame(PAPF_REQ);
}

/********************************************************************************************
*** 函数名称:			
*** 函数描述:			
*** 入    口:			
*** 出    口:			
********************************************************************************************/
void	PapProcess(void)
{
	uint8	Code;

	Code = *LinkLayer.Rxd;
	LinkLayer.Rxd += 4;	
	LinkLayer.Rxl -= 4;
	
	switch(Code)
	{
		case	PAPF_ACK:
			#ifdef	DEBUG
			_printf("PAP验证通过\r\n");
			_printf("\r\n");
			_printf("PPP进入网络配置阶段:");				
			#endif
			LinkLayer.State = PPPS_NCP;
			NcpRequest();			
			break;
			
		case	PAPF_NAK:
			#ifdef	DEBUG
			_printf("用户名或密码错误\r\n");			
			#endif
			break;
		
		case	PAPF_REQ:
			#ifdef	DEBUG
			_printf("忽略请求\r\n");			
			#endif
			break;
			
		default:
			#ifdef	DEBUG
			_printf("未知类型数据\r\n");			
			#endif
			break;
	}	
}

/********************************************************************************************
*** 					文件结束														  ***	
********************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -