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

📄 pppcfgar.c

📁 这是全套的PPP协议的源码
💻 C
字号:
/* pppcfgar.c - configuration parameter: alternate and range value processor *//* Copyright 1999 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01b,04feb02	vk 	Modified range and alternate value proceesing functions as part of 				memory reduction process01a,30,sj 	derived from Routerware source base*//**$Log:: /Rtrware/devdrvrs/ppp/pppcfga $ *  * 7     10/01/98 11:43a Alex * Updated the PPP source code to conform * to a single build.  *  * 6     4/30/98 3:03p Alex * Ppp v4.2.0 check in *  * 1     4/24/98 12:10a Release Engineer * code cleanup, code style changes, * linted, system level test * PPP v4.2.0*/#include "vxWorks.h"#include "stddef.h"#include "stdio.h"#include "ctype.h"#include "string.h"#include "stdlib.h"#include "ppp/kstart.h"#include "ppp/kppp.h"#include "private/ppp/vpppstr.h"#include "private/ppp/pppoptn.h"LOCAL char *parse_alternate_ppp_option_line (char *cptr_option_string,				     char *cptr_return_ncp_name,				     char *cptr_return_option_name,				     BYTE *bptr_return_option_number,				     char *cptr_value_type_string,				     char *cptr_value_string,				     BYTE *bptr_number_of_parameters_processed);LOCAL char *parse_range_ppp_option_line (char *cptr_option_string,				    char *cptr_return_ncp_name,				    char *cptr_return_option_name,				    BYTE *bptr_return_option_number,				    char *cptr_value_type_string,				    char *cptr_value_string_low,				    char *cptr_value_string_high,				    char *cptr_value_string_step,				    BYTE *bptr_number_of_parameters_processed);/*************************************************************************//*	PPP Port Option = 00,IPCP,IP Address,3,Alternate,IP,128.1.60.2   *//*************************************************************************//******************************************************************************** get_alternate_option_values*/TEST get_alternate_option_values    (    char *cptr_option_string,    char *cptr_return_ncp_name,    char *cptr_return_option_name,    BYTE *bptr_return_option_number,    BYTE *bptr_return_data,    BYTE *bptr_return_length,    BOOLEAN *eptr_return_value_swapped    )    {    char value_type_string[12];    char value_string[80];    BYTE number_of_fields_scanned;    char *cptr_value = NULL; 	bzero (value_type_string, sizeof (value_type_string));	bzero (value_string, sizeof (value_string));    number_of_fields_scanned = 0x00;    cptr_value = parse_alternate_ppp_option_line (cptr_option_string,				cptr_return_ncp_name,cptr_return_option_name,				bptr_return_option_number,value_type_string,				value_string,&number_of_fields_scanned);    if (number_of_fields_scanned != 6)	{	printf("Illegal Number of PPP Options %02x Entered %s!!!\r\n",		    number_of_fields_scanned,cptr_option_string);	return (FAIL);	}    get_option_value (&value_type_string[0],&value_string[0],bptr_return_data,			bptr_return_length,eptr_return_value_swapped);    return (PASS);    }/******************************************************************************** parse_alternate_ppp_option_line -*/LOCAL char *parse_alternate_ppp_option_line     (    char *cptr_option_string,    char *cptr_return_ncp_name,    char *cptr_return_option_name,    BYTE *bptr_return_option_number,    char *cptr_value_type_string,    char *cptr_value_string,    BYTE *bptr_number_of_parameters_processed    )    {    char *cptr_parameter = NULL;     char option_number_string[4];    ULONG option_number = 0;     char * holder = NULL;    char alternate_string[14];    bzero (option_number_string, sizeof (option_number_string));	bzero (alternate_string, sizeof (alternate_string));	*bptr_number_of_parameters_processed = 0;    cptr_parameter = strtok_r (cptr_option_string,",\n",&holder);    cptr_parameter = copy_parameter (cptr_return_ncp_name,cptr_parameter,				&holder,bptr_number_of_parameters_processed);    cptr_parameter = copy_parameter (cptr_return_option_name,cptr_parameter,				&holder,bptr_number_of_parameters_processed);    cptr_parameter = copy_parameter (&option_number_string[0],cptr_parameter,				&holder,bptr_number_of_parameters_processed);    cptr_parameter = copy_parameter (&alternate_string[0],cptr_parameter,				&holder,bptr_number_of_parameters_processed);    cptr_parameter = copy_parameter (cptr_value_type_string,cptr_parameter,				&holder,bptr_number_of_parameters_processed);    copy_parameter (cptr_value_string,cptr_parameter,&holder,		    bptr_number_of_parameters_processed);    sscanf (option_number_string,"%ld",&option_number);    *bptr_return_option_number = (BYTE) option_number;    return (cptr_parameter);    }/***********************************************************************//* PPP Port Remote Option = 00,IPCP IP Address,3,Range,IP,128.1.60.2,						    128.1.60.3,0.0.0.1 *//***********************************************************************//******************************************************************************** get_range_option_values - */TEST get_range_option_values    (    char *cptr_option_string,    char *cptr_return_ncp_name,    char *cptr_return_option_name,    BYTE *bptr_return_option_number,    BYTE *bptr_return_data,    BYTE *bptr_return_length,    BOOLEAN *eptr_return_value_swapped    )    {    char value_type_string[12];    char value_string_low[80];    char value_string_high[80];    char value_string_step[80];    char *cptr_value = NULL;    BYTE number_of_fields_scanned;    bzero (value_type_string, sizeof (value_type_string));	    bzero (value_string_low, sizeof (value_string_low));    bzero (value_string_high, sizeof (value_string_high));    bzero (value_string_step, sizeof (value_string_step));    number_of_fields_scanned = 0x00;    cptr_value = parse_range_ppp_option_line (cptr_option_string,				cptr_return_ncp_name,cptr_return_option_name,				bptr_return_option_number,value_type_string,				value_string_low,value_string_high,				value_string_step,&number_of_fields_scanned);    if (number_of_fields_scanned != 8)	{	printf("Illegal Number of PPP Options %02x Entered %s!!!\r\n",		number_of_fields_scanned, cptr_option_string);	return (FAIL);	}    get_option_value (&value_type_string[0],&value_string_low[0],		bptr_return_data,bptr_return_length,eptr_return_value_swapped);    bptr_return_data = (BYTE *) (bptr_return_data + *bptr_return_length);    get_option_value (&value_type_string[0],&value_string_high[0],		bptr_return_data,bptr_return_length,eptr_return_value_swapped);	    bptr_return_data = (BYTE *) (bptr_return_data + *bptr_return_length);    get_option_value (&value_type_string[0],&value_string_step[0],		bptr_return_data,bptr_return_length,eptr_return_value_swapped);    *bptr_return_length = (BYTE) (*bptr_return_length * 3);    return (PASS);    }/******************************************************************************** parse_range_ppp_option_line -*/LOCAL char *parse_range_ppp_option_line    (    char *cptr_option_string,    char *cptr_return_ncp_name,    char *cptr_return_option_name,    BYTE *bptr_return_option_number,    char *cptr_value_type_string,    char *cptr_value_string_low,    char *cptr_value_string_high,    char *cptr_value_string_step,    BYTE *bptr_number_of_parameters_processed    )    {    char *cptr_parameter = NULL;    char option_number_string[4];    ULONG option_number = 0;    char * holder = NULL;    char alternate_string[14];	bzero (option_number_string, sizeof (option_number_string));	bzero (alternate_string, sizeof (alternate_string));    cptr_parameter = strtok_r (cptr_option_string,",\n",&holder);    cptr_parameter = copy_parameter (cptr_return_ncp_name,cptr_parameter,				&holder,bptr_number_of_parameters_processed);    cptr_parameter = copy_parameter (cptr_return_option_name,cptr_parameter,				&holder,bptr_number_of_parameters_processed);    cptr_parameter = copy_parameter (&option_number_string[0],cptr_parameter,				&holder,bptr_number_of_parameters_processed);    cptr_parameter = copy_parameter (&alternate_string[0],cptr_parameter,				&holder,bptr_number_of_parameters_processed);    cptr_parameter = copy_parameter (cptr_value_type_string,cptr_parameter,				&holder,bptr_number_of_parameters_processed);    cptr_parameter = copy_parameter (cptr_value_string_low,cptr_parameter,				&holder,bptr_number_of_parameters_processed);    cptr_parameter = copy_parameter (cptr_value_string_high,cptr_parameter,				&holder,bptr_number_of_parameters_processed);    copy_parameter (cptr_value_string_step,cptr_parameter,				&holder,bptr_number_of_parameters_processed);    sscanf (option_number_string,"%ld",&option_number);    *bptr_return_option_number = (BYTE) option_number;    return (cptr_parameter);    }

⌨️ 快捷键说明

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