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

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

?? checkheaders.cpp

?? 基于widcomm的藍牙傳輸功能程序
?? CPP
?? 第 1 頁 / 共 3 頁
字號:

	// auth response header
	{
		int ii;
		UINT8 length_out = 0;
		BOOL failed = FALSE;
		UINT8 *p_val_out = NULL;
		UINT8 *p_val_in = NULL;
		UINT8 tag;
		char err_msg[256];

		for (ii = 0; ii < OBEX_MAX_AUTH_RESPONSE; ii++)
		{
			if (!hdrs.GetAuthResponseLength(&length_out, ii))
			{
				sprintf(err_msg, "FAIL auth response %d should exist", ii + 1);
				failed = TRUE;
				break;
			}

			p_val_out = (UINT8 *)malloc (length_out);
			if (p_val_out == NULL)
			{
				sprintf(err_msg, "FAIL GetAuthResponse %d malloc fail in verify ", ii + 1);
				failed = TRUE;
				break;
			}

			// fetch the value for the current index
			if ( !hdrs.GetAuthResponse(&tag, p_val_out, ii))
			{
				sprintf(err_msg, "FAIL GetAuthResponse %d", ii + 1);
				failed = TRUE;
				break;
			}

			// build expected value the same as when added
			p_val_in = (UINT8 *)malloc (val_auth_response_base_len + OBEX_MAX_AUTH_RESPONSE + 1);
			if (p_val_in == NULL)
			{
				sprintf(err_msg, "FAIL GetAuthResponse %d malloc in compare", ii + 1);
				failed = TRUE;
				break;
			}

			strcpy((char *)p_val_in, val_auth_response_base);
			UINT8 suffix[2];
			sprintf((char *)suffix,"%d", ii + 1);	// suffix shows which element 

			// make each http different value and length and each tag value different
			for (int jj = 0; jj < ii + 1; jj++)
				strcat((char *)p_val_in, (char *)suffix);

			// verify tag value; each is different
			if (tag != val_auth_response_tag_base + ii)
			{
				sprintf(err_msg, "FAIL GetAuthResponse %d tag in compare", ii + 1);
				failed = TRUE;
				break;
			}

			// they should match in length and content, fail if not
			if (length_out != strlen((char *)p_val_in))
			{
				sprintf(err_msg, "FAIL auth response %d length in compare", ii + 1);
				failed = TRUE;
				break;
			}

			if (strncmp((char *)p_val_in, (char *)p_val_out, length_out) != 0)
			{
				sprintf(err_msg, "FAIL auth response %d match in compare", ii + 1);
				failed = TRUE;
				break;
			}

			// free malloced arrays
			if (p_val_in != NULL)
			{
				free (p_val_in);
				p_val_in = NULL;
			}
			if (p_val_out != NULL)
			{
				free (p_val_out);
				p_val_out = NULL;
			}
		}

		// free malloced arrays
		if (p_val_in != NULL)
			free (p_val_in);
		if (p_val_out != NULL)
			free (p_val_out);

		if (failed)
			return (err_msg);
	}

	// object class header
	{	unsigned char *p_octets = NULL;
		UINT32 length = 0;
		if (hdrs.GetObjectClassLength(&length))
		{
			if (sizeof(val_object_class) != length)
				return ("FAIL object class length verify");
			p_octets = (unsigned char *)malloc(length);
			if (!hdrs.GetObjectClass(p_octets))
				return ("FAIL object class present verify");
			if (memcmp(val_object_class, p_octets, sizeof(val_object_class)))
			{
				free (p_octets);
				return ("FAIL object class verify");
			}
			free (p_octets);
		}
		else
			return ("FAIL object class present");
	}

	// user defined header
	{
		BOOL failed = FALSE;
		UINT8 *p_val_array_out = NULL;
		WCHAR *p_val_string_out = NULL;
		char err_msg[256] = "";
		int ii;

		for (ii = 0; ii < OBEX_MAX_USER_HDR; ii++)
		{
			UINT16 length_out;

			CObexUserDefined user_defined_out;
			if (!hdrs.GetUserDefinedLength(&length_out, ii))
			{
				sprintf(err_msg, "FAIL user defined %d should exist to get length", ii + 1);
				failed = TRUE;
				break;
			}
			if (!hdrs.GetUserDefined(&user_defined_out, ii))
			{
				sprintf(err_msg, "FAIL user defined %d should exist to get CObexUserDefined object", ii + 1);
				failed = TRUE;
				break;
			}

			// verify content
			UINT8 user_type_out;
			UINT8 id_out;

			user_type_out = user_defined_out.GetUserType(&id_out);
			if (id_out != user_defined_id)
			{
				sprintf(err_msg, "FAIL user_defined %d type verify", ii + 1);
				break;
			}

			if (user_type_out != select_user_defined_type)
			{
				sprintf(err_msg, "FAIL user_defined %d id value verify", ii + 1);
				break;
			}


			switch(user_type_out)
			{
			case OBEX_USER_TYPE_UNI:
				length_out = user_defined_out.GetLength();
				p_val_string_out = (WCHAR *)malloc ((length_out+1)*sizeof(WCHAR));
				if (p_val_string_out == NULL)
				{
					sprintf(err_msg, "FAIL GetUserDefined %d malloc fail in verify text", ii + 1);
					failed = TRUE;
					break;
				}

				user_defined_out.GetText(p_val_string_out);

				// input aand output should match in length and content, fail if not
				if (length_out != wcslen(user_defined_string) + 1)	// include null terminator
				{
					sprintf(err_msg, "FAIL GetUserDefined %d text length compare", ii + 1);
					failed = TRUE;
					break;
				}

				if (wcsncmp(user_defined_string, p_val_string_out, length_out) != 0)
				{
					sprintf(err_msg, "FAIL GetUserDefined %d text compare", ii + 1);
					failed = TRUE;
					break;
				}
				break;

			case OBEX_USER_TYPE_ARRAY:
				length_out = user_defined_out.GetLength();
				p_val_array_out = (UINT8 *)malloc (length_out);
				if (p_val_array_out == NULL)
				{
					sprintf(err_msg, "FAIL GetUserDefined %d malloc fail in verify data", ii + 1);
					failed = TRUE;
					break;
				}

				user_defined_out.GetOctets(p_val_array_out);

				// input and output should match in length and content, fail if not
				if (length_out != strlen((char *)user_defined_array))
				{
					sprintf(err_msg, "FAIL GetUserDefined %d data length compare", ii + 1);
					failed = TRUE;
					break;
				}

				if (strncmp((char *)user_defined_array, (char *)p_val_array_out, length_out) != 0)
				{
					sprintf(err_msg, "FAIL GetUserDefined %d data compare", ii + 1);
					failed = TRUE;
					break;
				}
				break;

			case OBEX_USER_TYPE_BYTE:
				UINT8 byte_out;
				user_defined_out.GetByte(&byte_out);
				if (byte_out != user_defined_byte)
					sprintf(err_msg, "FAIL user defined %d byte verify", ii + 1);
				break;
			case OBEX_USER_TYPE_INT:
				UINT32 four_byte_out;
				user_defined_out.GetFourByte(&four_byte_out);
				if (four_byte_out != user_defined_int)
					sprintf(err_msg, "FAIL user defined %d four byte verify", ii + 1);
				break;
			default:
				sprintf(err_msg, "FAIL user_defined %d type out unknown", user_type_out);
				break;
			}

			// free malloced arrays
			if (p_val_string_out != NULL)
			{
				free (p_val_string_out);
				p_val_string_out = NULL;
			}
			if (p_val_array_out != NULL)
			{
				free (p_val_array_out);
				p_val_array_out = NULL;
			}
		}

		// free malloced arrays
		if (p_val_string_out != NULL)
		{
			free (p_val_string_out);
			p_val_string_out = NULL;
		}
		if (p_val_array_out != NULL)
		{
			free (p_val_array_out);
			p_val_array_out = NULL;
		}

		if ((failed) || (strlen(err_msg) != 0))
			return (err_msg);
	}

	////////////////////////////////////////////////////////////////////////////////
	// if we get this far all the fields verified
	// now delete them all and verify that you cannot 'get' them anymore

	// count header
	hdrs.DeleteCount();
	if (hdrs.GetCount(&val_count_out))
	{
		return ("FAIL count delete");
	}

	// name header
	{
		UINT32 length = 0;
		hdrs.DeleteName();
		if (hdrs.GetNameLength(&length))
			return ("FAIL name delete");
	}

	// type header
	{
		UINT32 length = 0;
		hdrs.DeleteType();
		if (hdrs.GetTypeLength(&length))
			return ("FAIL type delete");
	}

	// length header
	hdrs.DeleteLength();
	if (hdrs.GetLength(&val_length_out))
	{
		return ("FAIL length delete");
	}


	// time header
	hdrs.DeleteTime();
	{
		char time_str[25] = "";
		if (hdrs.GetTime(time_str))
			return ("FAIL time delete");
	}

	// description header
	{
		UINT32 length = 0;
		hdrs.DeleteDescription();
		if (hdrs.GetDescriptionLength(&length))
			return ("FAIL description delete");
	}


	// target header
	{
		int ii;
		UINT32 length_out = 0;

		for (ii = 0; ii < OBEX_MAX_TARGET; ii++)
		{
			if (!hdrs.DeleteTarget(0))	// forces first one out and contraction of list
				return ("FAIL target delete first");
			if (hdrs.GetTargetLength(&length_out, OBEX_MAX_TARGET - 1 - ii)) // this one should be gone
				return ("FAIL target delete non-existent");
		}
	}

	// http header
	{
		int ii;
		UINT32 length_out = 0;

		for (ii = 0; ii < OBEX_MAX_HTTP; ii++)
		{
			if (!hdrs.DeleteHttp(0))	// forces first one out and contraction of list
				return ("FAIL http delete first");
			if (hdrs.GetHttpLength(&length_out, OBEX_MAX_HTTP - 1 - ii)) // this one should be gone
				return ("FAIL http delete non-existent");
		}
	}
	
	// body header
	{
		UINT32 length = 0;

		hdrs.DeleteBody();
		if (hdrs.GetBodyLength(&length))
			return ("FAIL body delete");
	}
	
	// who header
	{
		UINT32 length = 0;
		hdrs.DeleteWho();
		if (hdrs.GetWhoLength(&length))
			return ("FAIL who delete");
	}

	// app param header
	{
		int ii;
		UINT8 length_out = 0;

		for (ii = 0; ii < OBEX_MAX_APP_PARAM; ii++)
		{
			UINT32 current_cnt = hdrs.GetAppParamCnt();
			if (current_cnt == 0)
				return ("FAIL app param delete - no entries");
			if (!hdrs.DeleteAppParam(current_cnt - 1))	// delete last existing entry in the list
				return ("FAIL app param delete last");
			if (hdrs.GetAppParamLength(&length_out, current_cnt - 1)) // this one should be gone
				return ("FAIL app param delete non-existent");
		}
	}

	// auth challenge header
	{
		int ii;
		UINT8 length_out = 0;

		for (ii = 0; ii < OBEX_MAX_AUTH_CHALLENGE; ii++)
		{
			if (!hdrs.DeleteAuthChallenge(0))	// forces first one out and contraction of list
				return ("FAIL auth challenge delete first");
			if (hdrs.GetAuthChallengeLength(&length_out, OBEX_MAX_AUTH_CHALLENGE - 1 - ii)) // this one should be gone
				return ("FAIL auth challenge delete non-existent");
		}
	}

	// auth response header
	{
		int ii;
		UINT8 length_out = 0;

		for (ii = 0; ii < OBEX_MAX_AUTH_RESPONSE; ii++)
		{
			UINT32 current_cnt = hdrs.GetAuthResponseCnt();
			if (current_cnt == 0)
				return ("FAIL auth response delete - no entries");
			if (!hdrs.DeleteAuthResponse(current_cnt - 1))	// delete last existing entry in the list
				return ("FAIL auth response delete last");
			if (hdrs.GetAuthResponseLength(&length_out, current_cnt - 1)) // this one should be gone
				return ("FAIL auth response delete non-existent");
		}
	}


	// object class header
	{
		UINT32 length = 0;
		hdrs.DeleteObjectClass();
		if (hdrs.GetObjectClassLength(&length))
			return ("FAIL object class delete");
	}


	// user defined header
	{
		int ii;
		UINT16 length_out = 0;

		for (ii = 0; ii < OBEX_MAX_USER_HDR; ii++)
		{
			if (!hdrs.DeleteUserDefined(0))	// forces first one out and contraction of list
				return ("FAIL user defined delete first");
			if (hdrs.GetUserDefinedLength(&length_out, OBEX_MAX_USER_HDR - 1 - ii)) // this one should be gone
				return ("FAIL user defined delete non-existent");
		}
	}

	///////////////////////////////////////////////////////////////////////////////
	// all headers verified and really deleted
	return ("Verify values OK for all headers");
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区不卡免费| 91精品国产一区二区人妖| 在线电影国产精品| 欧美激情在线观看视频免费| 亚洲与欧洲av电影| 国产一区二区三区国产| 欧美性生活影院| 国产日本欧美一区二区| 日本不卡中文字幕| 色综合色狠狠综合色| 精品黑人一区二区三区久久| 亚洲一区二区三区精品在线| 国产91综合网| 制服丝袜av成人在线看| 亚洲免费av高清| 国产精品99久久久久久有的能看| 1000部国产精品成人观看| 久久狠狠亚洲综合| 欧美日韩在线观看一区二区 | 日韩vs国产vs欧美| 一本一道波多野结衣一区二区| 久久免费视频色| 奇米888四色在线精品| 在线观看欧美精品| 最新不卡av在线| 国产ts人妖一区二区| 精品久久人人做人人爽| 日韩中文字幕1| 欧美色视频一区| 亚洲精品欧美专区| 94色蜜桃网一区二区三区| 久久久精品免费网站| 麻豆成人久久精品二区三区红| 欧美日韩在线综合| 一区二区三区在线免费视频| av亚洲精华国产精华精华| 国产性天天综合网| 激情图片小说一区| 欧美www视频| 免费高清成人在线| 91精品在线麻豆| 日韩高清在线电影| 宅男噜噜噜66一区二区66| 午夜伊人狠狠久久| 欧美日韩国产欧美日美国产精品| 亚洲精品综合在线| 日本久久精品电影| 亚洲精品美国一| 色激情天天射综合网| 亚洲精品老司机| 在线观看国产91| 一区二区在线免费观看| 日本韩国一区二区三区| 亚洲一二三四在线| 久久久天堂av| 一区二区三区毛片| 欧美中文字幕一区二区三区 | 亚洲国产另类av| 国产一区二区三区免费播放| 精品国产精品网麻豆系列 | 久久精品欧美一区二区三区不卡 | 亚洲男人的天堂av| 91久久精品网| 亚洲v日本v欧美v久久精品| 欧美日韩国产一二三| 青青草成人在线观看| 精品理论电影在线观看| 国产一区二区三区免费播放| 国产精品美女久久久久高潮| 91丨九色porny丨蝌蚪| 亚洲一区二区精品视频| 69堂国产成人免费视频| 精品综合免费视频观看| 国产亚洲一本大道中文在线| 99久久精品国产毛片| 亚洲国产精品嫩草影院| 欧美一区二区三区免费| 国产永久精品大片wwwapp| 国产精品视频免费看| 在线精品视频免费播放| 免费观看一级特黄欧美大片| 久久综合九色综合97婷婷女人| 成人手机在线视频| 亚洲一区二区综合| 日韩三级av在线播放| 高清在线不卡av| 亚洲综合色丁香婷婷六月图片| 欧美一区二区人人喊爽| 国产91在线观看| 亚洲一区二区三区四区的| 日韩女优毛片在线| 成人app软件下载大全免费| 一区二区不卡在线视频 午夜欧美不卡在| 欧美久久一二三四区| 国产自产高清不卡| 亚洲欧美日韩成人高清在线一区| 6080日韩午夜伦伦午夜伦| 国产91丝袜在线18| 亚洲国产成人porn| 久久久蜜臀国产一区二区| 91行情网站电视在线观看高清版| 秋霞电影网一区二区| 国产精品蜜臀av| 3atv一区二区三区| 99久久婷婷国产综合精品| 日韩va欧美va亚洲va久久| 国产精品久久久久久久久图文区 | 国产精品综合在线视频| 一区二区三区中文字幕电影| 精品国产一区二区三区四区四 | 日韩中文字幕一区二区三区| 国产日韩精品一区二区三区| 亚洲老妇xxxxxx| 欧美不卡一区二区| 欧洲一区二区三区免费视频| 国产在线视视频有精品| 一区二区三区视频在线观看| 久久―日本道色综合久久| 欧美午夜不卡在线观看免费| 懂色av中文一区二区三区| 日韩影院在线观看| 亚洲欧美日韩综合aⅴ视频| 精品国产sm最大网站免费看| 欧美性猛交xxxx乱大交退制版 | 亚洲成av人片一区二区梦乃| 蜜臀久久99精品久久久久久9| 欧美高清在线视频| 日韩欧美中文一区二区| 色婷婷激情一区二区三区| 国产精品系列在线播放| 美美哒免费高清在线观看视频一区二区 | 偷偷要91色婷婷| 日韩一区中文字幕| 日韩亚洲欧美一区| 欧美体内she精视频| av在线综合网| 国产河南妇女毛片精品久久久| 日韩精品国产欧美| 一区二区三区精密机械公司| 中国av一区二区三区| 久久综合999| 日韩亚洲欧美一区二区三区| 欧美片在线播放| 日本精品视频一区二区| 懂色av一区二区三区免费看| 精品一区二区三区欧美| 欧美三级在线播放| 91污在线观看| 成人精品一区二区三区四区| 国产高清视频一区| 国内精品伊人久久久久影院对白| 免费视频最近日韩| 视频一区二区三区中文字幕| 亚洲第一福利一区| 亚洲一区二区精品3399| 一个色综合网站| 亚洲精品ww久久久久久p站 | 欧美日韩卡一卡二| 欧美中文字幕一区二区三区| 色婷婷av久久久久久久| 91啪亚洲精品| 91视频免费播放| 91亚洲精华国产精华精华液| 成a人片亚洲日本久久| 成人久久18免费网站麻豆| 成人午夜激情片| 成人一区二区三区| 成人午夜电影网站| 波波电影院一区二区三区| 成人av午夜电影| 91亚洲精品乱码久久久久久蜜桃| 99久久精品国产麻豆演员表| 97aⅴ精品视频一二三区| 一本色道久久综合精品竹菊| 91亚洲国产成人精品一区二三| 91视频免费播放| 欧美在线观看禁18| 8x福利精品第一导航| 宅男在线国产精品| 欧美成人vps| 2020日本不卡一区二区视频| 久久久亚洲精华液精华液精华液| 国产清纯白嫩初高生在线观看91| 国产精品毛片大码女人| 亚洲三级小视频| 一区二区三区在线免费观看| 亚洲超碰97人人做人人爱| 免费国产亚洲视频| 国产精品亚洲一区二区三区妖精 | 亚洲伊人色欲综合网| 日韩成人伦理电影在线观看| 久久电影网站中文字幕| 国产精品一区二区三区网站| 成人蜜臀av电影| 日本乱人伦aⅴ精品| 91精品国产福利在线观看| 精品国产网站在线观看| 欧美国产日本韩| 亚洲伦理在线免费看| 无吗不卡中文字幕|