亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? checkheaders.cpp

?? 基于widcomm的藍牙傳輸功能程序
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/*****************************************************************************
**
**  Name:       checkheaders.cpp
**
**  File:       Verifies the methods in  CObexHeaders
**
**  Date        Modification
**  ------------------------ 
**  5Jun2001    Jim French  Create
**
**  Copyright (c) 2000-2004, Broadcom Corporation, All Rights Reserved.
**
*****************************************************************************/
#include "stdafx.h"

#include <windows.h>
#include <stdio.h>
#include <string.h>
#include "checkheaders.h"

ObexCheckHeaders::~ObexCheckHeaders()
{
}

ObexCheckHeaders::ObexCheckHeaders()
{
}

// test values to set in headers with Set* and Add* functions
// and to verify using Get* and Delete* functions in CObexHeaders
//
static UINT32 val_count = 5;
static WCHAR val_name[] = L"name header";
static unsigned char val_type[] = "type header";
static UINT32 val_length = 1000;
static char val_time[] = "20011225T235959";
static WCHAR val_description[] = L"description header";
static char val_target_base[] = "target ";
static int val_target_base_len = (int) strlen (val_target_base);
static char val_http_base[] = "HTTP ";
static int val_http_base_len = (int) strlen (val_http_base);
static unsigned char val_body[] = "body header";
static BOOL val_body_end = TRUE;
static unsigned char val_who[] = "who header";
static char val_app_param_base[] = "APP PARAM ";
static int val_app_param_base_len = (int) strlen (val_app_param_base);
static UINT8 val_app_param_tag_base = 200;
static char val_auth_challenge_base[] = "AUTH CHALLENGE ";
static int val_auth_challenge_base_len = (int) strlen (val_auth_challenge_base);
static UINT8 val_auth_challenge_tag_base = 210;
static char val_auth_response_base[] = "AUTH RESPONSE ";
static int val_auth_response_base_len = (int) strlen (val_auth_response_base);
static UINT8 val_auth_response_tag_base = 230;
static unsigned char val_object_class[] = "object class header";

// for user defined header test pick one of the valid types for variable select_user_defined_type
// OBEX_USER_TYPE_UNI  - Null terminated UNICODE text
// OBEX_USER_TYPE_ARRAY  - Octet array
// OBEX_USER_TYPE_BYTE  - Single byte
// OBEX_USER_TYPE_INT   - 32 bit integer

static UINT8 select_user_defined_type = OBEX_USER_TYPE_BYTE;
static WCHAR user_defined_string[] = L"user defined string";
static UINT8 user_defined_array[] = "user defined array";
static UINT8 user_defined_byte = 150;
static UINT32 user_defined_int = 1234567;
static UINT8 user_defined_id = 50;
static CObexUserDefined val_user_defined;

	
CString ObexCheckHeaders::Fill()
{
	// put a value in every headers field
	// return with an error message on the first failure 

	// count header
	hdrs.SetCount(val_count);

	// name header
	if (!hdrs.SetName(val_name))
		return ("FAIL SetName");

	// type header
	if (!hdrs.SetType(val_type, sizeof(val_type)))
		return ("FAIL SetType");

	// length header
	hdrs.SetLength(val_length);

	// time header
	if (!hdrs.SetTime(val_time))
		return ("FAIL SetTime");
	
	// description header
	if (!hdrs.SetDescription(val_description))
		return ("FAIL SetDescription");

	// target header
	{
		int ii;
		for (ii = 0; ii < OBEX_MAX_TARGET; ii++)
		{
			UINT32 length = 0;
			if (hdrs.GetTargetLength(&length, ii))
				return ("FAIL target should not exist");

			UINT8 *p_val_in = (UINT8 *)malloc (val_target_base_len + OBEX_MAX_TARGET + 1);
			if (p_val_in == NULL)
				return ("FAIL target setup in add");
			strcpy((char *)p_val_in, val_target_base);
			UINT8 suffix[2];
			sprintf((char *)suffix,"%d", ii + 1);	// suffix shows which element 

			// make each target different value and length
			for (int jj = 0; jj < ii + 1; jj++)
				strcat((char *)p_val_in, (char *)suffix);
			if (!hdrs.AddTarget (p_val_in, (UINT32) strlen((char *)p_val_in)))
			{
				free (p_val_in);
				return ("FAIL AddTarget ");
			}
			free(p_val_in);

			// check count 
			if (hdrs.GetTargetCnt() != (UINT32)(ii+1))
				return ("FAIL GetTargetCnt");
		}

		// see if the method rejects too many entries
		if (hdrs.AddTarget((UINT8 *)val_target_base, val_target_base_len))
			return ("FAIL AddTarget allowed too many entries");

		// verify the final count of entries
		UINT32 cnt = hdrs.GetTargetCnt();
		if (cnt != OBEX_MAX_TARGET)
			return ("FAIL target final count");

	}

	// http header
	{
		int ii;
		for (ii = 0; ii < OBEX_MAX_HTTP; ii++)
		{
			UINT32 length = 0;
			if (hdrs.GetHttpLength(&length, ii))
				return ("FAIL http should not exist");

			UINT8 *p_val_in = (UINT8 *)malloc (val_http_base_len + OBEX_MAX_HTTP + 1);
			if (p_val_in == NULL)
				return ("FAIL http setup in add");
			strcpy((char *)p_val_in, val_http_base);
			UINT8 suffix[2];
			sprintf((char *)suffix,"%d", ii + 1);	// suffix shows which element 

			// make each http different value and length
			for (int jj = 0; jj < ii + 1; jj++)
				strcat((char *)p_val_in, (char *)suffix);
			if (!hdrs.AddHttp (p_val_in, (UINT32) strlen((char *)p_val_in)))
			{
				free (p_val_in);
				return ("FAIL AddHttp ");
			}
			free(p_val_in);

			// check count 
			if (hdrs.GetHttpCnt() != (UINT32)(ii+1))
				return ("FAIL GetHttpCnt");
		}

		// see if the method rejects too many entries
		if (hdrs.AddHttp((UINT8 *)val_http_base, val_http_base_len))
			return ("FAIL AddHttp allowed too many entries");

		// verify the final count of entries
		UINT32 cnt = hdrs.GetHttpCnt();
		if (cnt != OBEX_MAX_HTTP)
			return ("FAIL http final count");

	}
	
	// body header
	if (!hdrs.SetBody(val_body, sizeof(val_body), val_body_end))
		return ("FAIL SetBody");

	// who header
	if (!hdrs.SetWho(val_who, sizeof(val_who)))
		return ("FAIL SetWho");

	// app param header
			UINT8 suffix[2];
	{
		int ii;
		for (ii = 0; ii < OBEX_MAX_APP_PARAM; ii++)
		{
			UINT8 length = 0;
			if (hdrs.GetAppParamLength(&length, ii))
				return ("FAIL app param should not exist");

			UINT8 *p_val_in = (UINT8 *)malloc (val_app_param_base_len + OBEX_MAX_APP_PARAM + 1);
			if (p_val_in == NULL)
				return ("FAIL app param setup in add");
			strcpy((char *)p_val_in, val_app_param_base);
			sprintf((char *)suffix,"%d", ii + 1);	// suffix shows which element 

			// make each http different value and length
			for (UINT8 jj = 0; jj < ii + 1; jj++)
				strcat((char *)p_val_in, (char *)suffix);
			if (!hdrs.AddAppParam (val_app_param_tag_base + ii, (UINT8) strlen((char *)p_val_in), p_val_in))
			{
				free (p_val_in);
				return ("FAIL AddAppParam ");
			}
			free(p_val_in);

			// check count 
			if (hdrs.GetAppParamCnt() != (UINT32)(ii+1))
				return ("FAIL GetAppParamCnt");
		}

		// see if the method rejects too many entries
		if (hdrs.AddAppParam(val_app_param_tag_base, val_app_param_base_len, (UINT8 *)val_app_param_base))
			return ("FAIL AddAppParam allowed too many entries");

		// verify the final count of entries
		UINT32 cnt = hdrs.GetAppParamCnt();
		if (cnt != OBEX_MAX_APP_PARAM)
			return ("FAIL app param final count");

	}

	// auth challenge header
	{
		int ii;
		for (ii = 0; ii < OBEX_MAX_AUTH_CHALLENGE; ii++)
		{
			UINT8 length = 0;
			if (hdrs.GetAuthChallengeLength(&length, ii))
				return ("FAIL auth challenge should not exist");

			UINT8 *p_val_in = (UINT8 *)malloc (val_auth_challenge_base_len + OBEX_MAX_AUTH_CHALLENGE + 1);
			if (p_val_in == NULL)
				return ("FAIL auth challenge setup in add");
			strcpy((char *)p_val_in, val_auth_challenge_base);
			sprintf((char *)suffix,"%d", ii + 1);	// suffix shows which element 

			// make each http different value and length
			for (UINT8 jj = 0; jj < ii + 1; jj++)
				strcat((char *)p_val_in, (char *)suffix);
			if (!hdrs.AddAuthChallenge (val_auth_challenge_tag_base + ii, (UINT8) strlen((char *)p_val_in), p_val_in))
			{
				free (p_val_in);
				return ("FAIL AddAuthChallenge ");
			}
			free(p_val_in);

			// check count 
			if (hdrs.GetAuthChallengeCnt() != (UINT32)(ii+1))
				return ("FAIL GetAuthChallengeCnt");
		}

		// see if the method rejects too many entries
		if (hdrs.AddAuthChallenge(val_auth_challenge_tag_base, val_auth_challenge_base_len, (UINT8 *)val_auth_challenge_base))
			return ("FAIL AddAuthChallenge allowed too many entries");

		// verify the final count of entries
		UINT32 cnt = hdrs.GetAuthChallengeCnt();
		if (cnt != OBEX_MAX_AUTH_CHALLENGE)
			return ("FAIL auth challenge final count");

	}

	// auth response header
	{
		int ii;
		for (ii = 0; ii < OBEX_MAX_AUTH_RESPONSE; ii++)
		{
			UINT8 length = 0;
			if (hdrs.GetAuthResponseLength(&length, ii))
				return ("FAIL auth response should not exist");

			UINT8 *p_val_in = (UINT8 *)malloc (val_auth_response_base_len + OBEX_MAX_AUTH_RESPONSE + 1);
			if (p_val_in == NULL)
				return ("FAIL auth response setup in add");
			strcpy((char *)p_val_in, val_auth_response_base);
			sprintf((char *)suffix,"%d", ii + 1);	// suffix shows which element 

			// make each http different value and length
			for (UINT8 jj = 0; jj < ii + 1; jj++)
				strcat((char *)p_val_in, (char *)suffix);
			if (!hdrs.AddAuthResponse (val_auth_response_tag_base + ii, (UINT8) strlen((char *)p_val_in), p_val_in))
			{
				free (p_val_in);
				return ("FAIL AddAuthResponse ");
			}
			free(p_val_in);

			// check count 
			if (hdrs.GetAuthResponseCnt() != (UINT32)(ii+1))
				return ("FAIL GetAuthResponseCnt");
		}

		// see if the method rejects too many entries
		if (hdrs.AddAuthResponse(val_auth_response_tag_base, val_auth_response_base_len, (UINT8 *)val_auth_response_base))
			return ("FAIL AddAuthResponse allowed too many entries");

		// verify the final count of entries
		UINT32 cnt = hdrs.GetAuthResponseCnt();
		if (cnt != OBEX_MAX_AUTH_RESPONSE)
			return ("FAIL auth response final count");

	}


	// object class
	if (!hdrs.SetObjectClass(val_object_class, sizeof(val_object_class)))
		return ("FAIL SetObjectClass");


	// user defined header
	{
		// set up a CObexUserDefined object based on the type of user defined object
		switch (select_user_defined_type)
		{
		case OBEX_USER_TYPE_UNI:
			val_user_defined.SetHeader(user_defined_id, user_defined_string);
			break;
		case OBEX_USER_TYPE_ARRAY:
			val_user_defined.SetHeader(user_defined_id, user_defined_array, (UINT16) strlen ((char *)user_defined_array));
			break;
		case OBEX_USER_TYPE_BYTE:
			val_user_defined.SetHeader(user_defined_id, user_defined_byte);
			break;
		case OBEX_USER_TYPE_INT:
			val_user_defined.SetHeader(user_defined_id, user_defined_int);
			break;
		default:
			return ("FAIL user define header, invalid object type selected for test");
		}

		// add the user defined object 
		for (int ii = 0; ii < OBEX_MAX_USER_HDR; ii++)
		{
			if (!hdrs.AddUserDefined(&val_user_defined))
				return ("FAIL AddUserDefined");
		}
		// attempt to add another should ne rejected
		if (hdrs.AddUserDefined(&val_user_defined))
			return ("FAIL AddUserDefined allowed too many entries");
	}

	// all headers filled with success
	return ("Set values OK for all headers");
}


CString ObexCheckHeaders::Verify()
{
	//////////////////////////////////////////////////////////////////////////////
	// Get every header field and compare with the value set by Fill().
	// Return with an error message on the frst failure

	// count header
	UINT32 val_count_out = 0;
	if (hdrs.GetCount(&val_count_out))
	{
		if (val_count != val_count_out)
			return ("FAIL count verify");
	}
	else
		return ("FAIL count present");

	// name header
	{
		UINT32 length = 0;
		WCHAR *p_array = NULL;

		if (hdrs.GetNameLength (&length))
		{
			if (wcslen(val_name) + 1 != length)
				return ("FAIL name length verify");
			p_array = (WCHAR *)malloc((length+1)*sizeof (WCHAR));
			if (!hdrs.GetName(p_array))
				return ("FAIL name present verify");
			if (wcsncmp(val_name, p_array, wcslen(val_name)))
			{
				free (p_array);
				return ("FAIL name verify");
			}
			free (p_array);
		}
		else
			return ("FAIL name present");
	}

	// type header
	{	unsigned char *p_octets = NULL;
		UINT32 length = 0;
		if (hdrs.GetTypeLength(&length))
		{
			if (sizeof(val_type) != length)
				return ("FAIL type length verify");
			p_octets = (unsigned char *)malloc(length);
			if (!hdrs.GetType(p_octets))
				return ("FAIL type present verify");
			if (memcmp(val_type, p_octets, sizeof(val_type)))
			{
				free (p_octets);
				return ("FAIL type verify");
			}
			free (p_octets);
		}
		else
			return ("FAIL type present");
	}

	// length header
	UINT32 val_length_out = 0;
	if (hdrs.GetLength(&val_length_out))
	{
		if (val_length != val_length_out)
			return ("FAIL length verify");
	}
	else
		return ("FAIL length present");

	// time header
	{
		char time_str[17] = "";
		if (!hdrs.GetTime(time_str))
			return ("FAIL time present");

		if (strcmp(time_str, val_time) != 0)
			return ("FAIL time verify");
	}

	// description header
	{
		UINT32 length = 0;
		WCHAR *p_array = NULL;

		if (hdrs.GetDescriptionLength (&length))

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩高清不卡一区| 久久亚洲一区二区三区明星换脸 | 亚洲欧美综合色| 亚洲一区在线视频| 六月婷婷色综合| 成人激情综合网站| 在线观看视频91| 亚洲精品一线二线三线| 1区2区3区欧美| 蜜臀av一级做a爰片久久| 成人网男人的天堂| 欧美精品乱人伦久久久久久| 国产色一区二区| 午夜精品123| 成人丝袜18视频在线观看| 欧美日本一区二区在线观看| 国产色91在线| 天天综合色天天综合| 成人午夜又粗又硬又大| 制服丝袜亚洲播放| 国产精品视频线看| 秋霞电影一区二区| 色综合欧美在线视频区| 欧美电影免费提供在线观看| 中文字幕在线一区免费| 日韩高清在线一区| 91论坛在线播放| 久久色.com| 日本女人一区二区三区| 91美女蜜桃在线| 国产揄拍国内精品对白| 91国偷自产一区二区使用方法| 日韩久久精品一区| 亚洲综合久久久| 成人高清av在线| 26uuu亚洲| 午夜国产精品一区| 色综合天天视频在线观看| 久久久噜噜噜久久人人看| 日韩av一区二| 色播五月激情综合网| 亚洲国产精品传媒在线观看| 蜜桃精品视频在线观看| 欧美日韩你懂得| 亚洲人成在线观看一区二区| 国产精品1024| 26uuu久久综合| 美女一区二区三区在线观看| 欧美撒尿777hd撒尿| 亚洲欧洲成人精品av97| 成人午夜在线免费| 国产色一区二区| 国产麻豆精品视频| 日韩精品一区二区在线| 日韩精品欧美成人高清一区二区| 色综合一区二区| 成人免费一区二区三区视频| 国产iv一区二区三区| 久久久久久久久伊人| 蜜桃久久久久久| 欧美一区二区三区色| 亚洲大片一区二区三区| 欧美亚洲国产一区在线观看网站 | 成+人+亚洲+综合天堂| 国产亚洲精品超碰| 国产尤物一区二区在线| 久久综合色播五月| 国产中文字幕精品| 2020国产精品自拍| 国产精品一区二区在线观看不卡| 26uuu国产日韩综合| 国产精品一区专区| 久久精品欧美日韩精品 | 国产精品免费aⅴ片在线观看| 韩国毛片一区二区三区| 久久综合久久综合九色| 国产在线精品国自产拍免费| 久久先锋影音av鲁色资源网| 国产伦精一区二区三区| 日本一区免费视频| www.亚洲精品| 亚洲乱码国产乱码精品精小说| 91香蕉视频污| 亚洲一区二区三区不卡国产欧美| 欧美综合亚洲图片综合区| 亚洲成人一区在线| 日韩情涩欧美日韩视频| 激情五月激情综合网| 国产午夜精品福利| 99国产精品久久久久| 伊人开心综合网| 欧美人妇做爰xxxⅹ性高电影| 日韩经典一区二区| 精品盗摄一区二区三区| 国产成人三级在线观看| 亚洲色图在线播放| 欧美日韩一区精品| 久久成人久久鬼色| 国产拍揄自揄精品视频麻豆| 97国产一区二区| 日韩综合小视频| 久久精品在这里| 91老师片黄在线观看| 日韩精品欧美精品| 国产日本亚洲高清| 色久综合一二码| 蜜臀av一级做a爰片久久| 国产日韩欧美激情| 91福利社在线观看| 免费人成在线不卡| 国产精品久久久一本精品| 欧美午夜精品一区二区蜜桃| 久久国产精品99精品国产 | 不卡一区二区中文字幕| 亚洲一区av在线| 精品国产乱码久久久久久影片| 成人午夜视频在线观看| 五月婷婷久久综合| 国产人成亚洲第一网站在线播放| 99re成人在线| 蜜臀av国产精品久久久久 | 91丨九色丨尤物| 日本v片在线高清不卡在线观看| 久久精品一区二区三区不卡| 欧洲一区在线电影| 国产精品白丝jk白祙喷水网站| 亚洲免费av高清| 久久综合九色综合久久久精品综合| 91一区二区三区在线播放| 蜜乳av一区二区三区| 亚洲女厕所小便bbb| 亚洲精品一区二区三区福利 | 亚洲午夜久久久久久久久电影院| 精品国产sm最大网站免费看| 欧美影视一区在线| 国产v日产∨综合v精品视频| 五月婷婷久久综合| 18欧美乱大交hd1984| 精品精品欲导航| 欧美性色黄大片手机版| 成人听书哪个软件好| 老司机免费视频一区二区| 亚洲一区免费观看| 国产精品天干天干在观线| 日韩欧美一区二区不卡| 在线观看成人小视频| 成人一级片在线观看| 678五月天丁香亚洲综合网| 91色视频在线| 国产成人99久久亚洲综合精品| 日韩制服丝袜av| 亚洲一区二区五区| ...av二区三区久久精品| 久久色在线观看| 欧美mv和日韩mv的网站| 欧美欧美欧美欧美首页| 99re热这里只有精品免费视频| 国产精品一区二区免费不卡| 久久机这里只有精品| 五月天久久比比资源色| 亚洲综合在线电影| 亚洲视频中文字幕| 国产精品久久久久影院老司 | 国产精品一区二区黑丝| 久久国产乱子精品免费女| 日精品一区二区三区| 亚洲成年人影院| 亚洲国产美女搞黄色| 一区二区三区四区视频精品免费 | 麻豆视频一区二区| 日韩国产一区二| 无吗不卡中文字幕| 亚洲电影第三页| 亚洲一级二级在线| 亚洲综合在线第一页| 一区二区三区自拍| 亚洲免费观看高清完整| 亚洲欧洲日韩女同| 综合久久给合久久狠狠狠97色| 国产精品女同一区二区三区| 国产欧美精品一区| 国产欧美精品国产国产专区| 国产三级精品三级| 欧美国产亚洲另类动漫| 欧美国产日产图区| ...中文天堂在线一区| 亚洲青青青在线视频| 亚洲精品乱码久久久久久| 亚洲黄色av一区| 亚洲电影欧美电影有声小说| 天天免费综合色| 蜜臀av国产精品久久久久| 精品一区二区三区欧美| 国产一区二区看久久| 丁香婷婷综合色啪| 91亚洲资源网| 欧美日韩国产大片| 日韩精品一区在线观看| 久久久精品国产99久久精品芒果| 久久精品夜色噜噜亚洲aⅴ|