📄 pppcfgar.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 + -