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

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

?? ui_lib.c

?? 開源項目openssl的源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
	{	return ui->user_data;	}const char *UI_get0_result(UI *ui, int i)	{	if (i < 0)		{		UIerr(UI_F_UI_GET0_RESULT,UI_R_INDEX_TOO_SMALL);		return NULL;		}	if (i >= sk_UI_STRING_num(ui->strings))		{		UIerr(UI_F_UI_GET0_RESULT,UI_R_INDEX_TOO_LARGE);		return NULL;		}	return UI_get0_result_string(sk_UI_STRING_value(ui->strings, i));	}static int print_error(const char *str, size_t len, UI *ui)	{	UI_STRING uis;	memset(&uis, 0, sizeof(uis));	uis.type = UIT_ERROR;	uis.out_string = str;	if (ui->meth->ui_write_string		&& !ui->meth->ui_write_string(ui, &uis))		return -1;	return 0;	}int UI_process(UI *ui)	{	int i, ok=0;	if (ui->meth->ui_open_session && !ui->meth->ui_open_session(ui))		return -1;	if (ui->flags & UI_FLAG_PRINT_ERRORS)		ERR_print_errors_cb(			(int (*)(const char *, size_t, void *))print_error,			(void *)ui);	for(i=0; i<sk_UI_STRING_num(ui->strings); i++)		{		if (ui->meth->ui_write_string			&& !ui->meth->ui_write_string(ui,				sk_UI_STRING_value(ui->strings, i)))			{			ok=-1;			goto err;			}		}	if (ui->meth->ui_flush)		switch(ui->meth->ui_flush(ui))			{		case -1: /* Interrupt/Cancel/something... */			ok = -2;			goto err;		case 0: /* Errors */			ok = -1;			goto err;		default: /* Success */			ok = 0;			break;			}	for(i=0; i<sk_UI_STRING_num(ui->strings); i++)		{		if (ui->meth->ui_read_string)			{			switch(ui->meth->ui_read_string(ui,				sk_UI_STRING_value(ui->strings, i)))				{			case -1: /* Interrupt/Cancel/something... */				ok = -2;				goto err;			case 0: /* Errors */				ok = -1;				goto err;			default: /* Success */				ok = 0;				break;				}			}		} err:	if (ui->meth->ui_close_session && !ui->meth->ui_close_session(ui))		return -1;	return ok;	}int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f)())	{	if (ui == NULL)		{		UIerr(UI_F_UI_CTRL,ERR_R_PASSED_NULL_PARAMETER);		return -1;		}	switch(cmd)		{	case UI_CTRL_PRINT_ERRORS:		{		int save_flag = !!(ui->flags & UI_FLAG_PRINT_ERRORS);		if (i)			ui->flags |= UI_FLAG_PRINT_ERRORS;		else			ui->flags &= ~UI_FLAG_PRINT_ERRORS;		return save_flag;		}	case UI_CTRL_IS_REDOABLE:		return !!(ui->flags & UI_FLAG_REDOABLE);	default:		break;		}	UIerr(UI_F_UI_CTRL,UI_R_UNKNOWN_CONTROL_COMMAND);	return -1;	}int UI_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,	     CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func)        {	return CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_UI, argl, argp,				new_func, dup_func, free_func);        }int UI_set_ex_data(UI *r, int idx, void *arg)	{	return(CRYPTO_set_ex_data(&r->ex_data,idx,arg));	}void *UI_get_ex_data(UI *r, int idx)	{	return(CRYPTO_get_ex_data(&r->ex_data,idx));	}void UI_set_default_method(const UI_METHOD *meth)	{	default_UI_meth=meth;	}const UI_METHOD *UI_get_default_method(void)	{	if (default_UI_meth == NULL)		{		default_UI_meth=UI_OpenSSL();		}	return default_UI_meth;	}const UI_METHOD *UI_get_method(UI *ui)	{	return ui->meth;	}const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth)	{	ui->meth=meth;	return ui->meth;	}UI_METHOD *UI_create_method(char *name)	{	UI_METHOD *ui_method = (UI_METHOD *)OPENSSL_malloc(sizeof(UI_METHOD));	if (ui_method)		memset(ui_method, 0, sizeof(*ui_method));	ui_method->name = BUF_strdup(name);	return ui_method;	}/* BIG FSCKING WARNING!!!!  If you use this on a statically allocated method   (that is, it hasn't been allocated using UI_create_method(), you deserve   anything Murphy can throw at you and more!  You have been warned. */void UI_destroy_method(UI_METHOD *ui_method)	{	OPENSSL_free(ui_method->name);	ui_method->name = NULL;	OPENSSL_free(ui_method);	}int UI_method_set_opener(UI_METHOD *method, int (*opener)(UI *ui))	{	if (method)		{		method->ui_open_session = opener;		return 0;		}	else		return -1;	}int UI_method_set_writer(UI_METHOD *method, int (*writer)(UI *ui, UI_STRING *uis))	{	if (method)		{		method->ui_write_string = writer;		return 0;		}	else		return -1;	}int UI_method_set_flusher(UI_METHOD *method, int (*flusher)(UI *ui))	{	if (method)		{		method->ui_flush = flusher;		return 0;		}	else		return -1;	}int UI_method_set_reader(UI_METHOD *method, int (*reader)(UI *ui, UI_STRING *uis))	{	if (method)		{		method->ui_read_string = reader;		return 0;		}	else		return -1;	}int UI_method_set_closer(UI_METHOD *method, int (*closer)(UI *ui))	{	if (method)		{		method->ui_close_session = closer;		return 0;		}	else		return -1;	}int (*UI_method_get_opener(UI_METHOD *method))(UI*)	{	if (method)		return method->ui_open_session;	else		return NULL;	}int (*UI_method_get_writer(UI_METHOD *method))(UI*,UI_STRING*)	{	if (method)		return method->ui_write_string;	else		return NULL;	}int (*UI_method_get_flusher(UI_METHOD *method))(UI*)	{	if (method)		return method->ui_flush;	else		return NULL;	}int (*UI_method_get_reader(UI_METHOD *method))(UI*,UI_STRING*)	{	if (method)		return method->ui_read_string;	else		return NULL;	}int (*UI_method_get_closer(UI_METHOD *method))(UI*)	{	if (method)		return method->ui_close_session;	else		return NULL;	}enum UI_string_types UI_get_string_type(UI_STRING *uis)	{	if (!uis)		return UIT_NONE;	return uis->type;	}int UI_get_input_flags(UI_STRING *uis)	{	if (!uis)		return 0;	return uis->input_flags;	}const char *UI_get0_output_string(UI_STRING *uis)	{	if (!uis)		return NULL;	return uis->out_string;	}const char *UI_get0_action_string(UI_STRING *uis)	{	if (!uis)		return NULL;	switch(uis->type)		{	case UIT_PROMPT:	case UIT_BOOLEAN:		return uis->_.boolean_data.action_desc;	default:		return NULL;		}	}const char *UI_get0_result_string(UI_STRING *uis)	{	if (!uis)		return NULL;	switch(uis->type)		{	case UIT_PROMPT:	case UIT_VERIFY:		return uis->result_buf;	default:		return NULL;		}	}const char *UI_get0_test_string(UI_STRING *uis)	{	if (!uis)		return NULL;	switch(uis->type)		{	case UIT_VERIFY:		return uis->_.string_data.test_buf;	default:		return NULL;		}	}int UI_get_result_minsize(UI_STRING *uis)	{	if (!uis)		return -1;	switch(uis->type)		{	case UIT_PROMPT:	case UIT_VERIFY:		return uis->_.string_data.result_minsize;	default:		return -1;		}	}int UI_get_result_maxsize(UI_STRING *uis)	{	if (!uis)		return -1;	switch(uis->type)		{	case UIT_PROMPT:	case UIT_VERIFY:		return uis->_.string_data.result_maxsize;	default:		return -1;		}	}int UI_set_result(UI *ui, UI_STRING *uis, const char *result)	{	int l = strlen(result);	ui->flags &= ~UI_FLAG_REDOABLE;	if (!uis)		return -1;	switch (uis->type)		{	case UIT_PROMPT:	case UIT_VERIFY:		{		char number1[DECIMAL_SIZE(uis->_.string_data.result_minsize)+1];		char number2[DECIMAL_SIZE(uis->_.string_data.result_maxsize)+1];		BIO_snprintf(number1, sizeof(number1), "%d",			uis->_.string_data.result_minsize);		BIO_snprintf(number2, sizeof(number2), "%d",			uis->_.string_data.result_maxsize);		if (l < uis->_.string_data.result_minsize)			{			ui->flags |= UI_FLAG_REDOABLE;			UIerr(UI_F_UI_SET_RESULT,UI_R_RESULT_TOO_SMALL);			ERR_add_error_data(5,"You must type in ",				number1," to ",number2," characters");			return -1;			}		if (l > uis->_.string_data.result_maxsize)			{			ui->flags |= UI_FLAG_REDOABLE;			UIerr(UI_F_UI_SET_RESULT,UI_R_RESULT_TOO_LARGE);			ERR_add_error_data(5,"You must type in ",				number1," to ",number2," characters");			return -1;			}		}		if (!uis->result_buf)			{			UIerr(UI_F_UI_SET_RESULT,UI_R_NO_RESULT_BUFFER);			return -1;			}		BUF_strlcpy(uis->result_buf, result,			    uis->_.string_data.result_maxsize + 1);		break;	case UIT_BOOLEAN:		{		const char *p;		if (!uis->result_buf)			{			UIerr(UI_F_UI_SET_RESULT,UI_R_NO_RESULT_BUFFER);			return -1;			}		uis->result_buf[0] = '\0';		for(p = result; *p; p++)			{			if (strchr(uis->_.boolean_data.ok_chars, *p))				{				uis->result_buf[0] =					uis->_.boolean_data.ok_chars[0];				break;				}			if (strchr(uis->_.boolean_data.cancel_chars, *p))				{				uis->result_buf[0] =					uis->_.boolean_data.cancel_chars[0];				break;				}			}	default:		break;		}		}	return 0;	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩激情一区二区| 国产精品视频观看| 97se狠狠狠综合亚洲狠狠| 国产在线不卡视频| 粉嫩av一区二区三区| 福利一区在线观看| 99久久er热在这里只有精品66| 国产ts人妖一区二区| 成人av在线资源网| 色综合夜色一区| 欧美在线观看18| 欧美精品自拍偷拍| 日韩视频一区二区在线观看| 欧美成人aa大片| 久久久久久久久久久电影| 中文字幕欧美日本乱码一线二线| 国产亚洲美州欧州综合国| 国产精品剧情在线亚洲| 亚洲精品老司机| 香蕉久久夜色精品国产使用方法| 亚洲v日本v欧美v久久精品| 免费在线视频一区| 韩国欧美一区二区| 97久久精品人人澡人人爽| 欧美影院精品一区| 日韩一区二区电影| 亚洲国产精品激情在线观看| 亚洲女爱视频在线| 日本一不卡视频| 国产精品123区| 欧美在线播放高清精品| 日韩美女一区二区三区| 国产精品理论片| 视频一区欧美日韩| 国产69精品久久99不卡| 色综合久久综合| 91精品啪在线观看国产60岁| 亚洲国产激情av| 午夜精品爽啪视频| 国产成人精品免费一区二区| 欧美日韩五月天| 国产日韩亚洲欧美综合| 亚洲午夜电影网| 成人免费黄色大片| 欧美一区二区二区| 亚洲免费毛片网站| 国产精品自拍在线| 欧美日韩国产另类不卡| 国产精品久久久久久久久免费樱桃| 亚洲一区二区三区四区五区黄| 蜜臀va亚洲va欧美va天堂| aaa欧美大片| 久久综合999| 天堂va蜜桃一区二区三区漫画版| 成人成人成人在线视频| 欧美zozozo| 日本欧洲一区二区| 91久久精品一区二区| 欧美国产精品一区二区三区| 久久精品av麻豆的观看方式| 欧美性高清videossexo| 国产精品久久久久aaaa| 国产精品一品视频| 2021中文字幕一区亚洲| 蜜桃在线一区二区三区| 欧美性猛片xxxx免费看久爱| 亚洲欧美日韩国产成人精品影院| 国产精品一二三区在线| 欧美第一区第二区| 蜜桃精品视频在线| 欧美丰满少妇xxxbbb| 亚洲成a人v欧美综合天堂| 91视频免费看| 亚洲美女屁股眼交3| 成人av影视在线观看| 精品国产乱子伦一区| 欧美a级理论片| 欧美一级二级三级乱码| 日日欢夜夜爽一区| 91精品欧美一区二区三区综合在| 日韩有码一区二区三区| 欧美日本免费一区二区三区| 亚洲人成小说网站色在线| 不卡一区二区中文字幕| 国产精品久久影院| 94-欧美-setu| 亚洲影视在线播放| 欧美精品自拍偷拍| 久久99精品久久久| 国产午夜久久久久| 99久久精品国产网站| 亚洲一区二区三区四区在线免费观看 | 一区二区三区四区精品在线视频| 日本韩国欧美在线| 婷婷成人综合网| 精品欧美黑人一区二区三区| 国产精品中文字幕一区二区三区| 久久精品亚洲国产奇米99| 不卡视频免费播放| 亚洲综合av网| 精品人伦一区二区色婷婷| 国产精品亚洲午夜一区二区三区| 亚洲国产精品精华液ab| 在线观看亚洲精品视频| 日韩电影在线免费观看| 久久久久国产免费免费| 色婷婷av一区二区三区gif| 五月天激情综合网| 久久精品网站免费观看| 91麻豆6部合集magnet| 日韩电影在线一区二区| 中文字幕免费在线观看视频一区| 在线亚洲高清视频| 韩国av一区二区三区四区| 国产精品看片你懂得| 91精品国产91久久久久久最新毛片| 国产福利精品导航| 亚洲成a人v欧美综合天堂下载| 久久综合国产精品| 欧美三级在线看| 成人免费毛片高清视频| 男男gaygay亚洲| 亚洲美女偷拍久久| 国产欧美一区二区精品仙草咪| 欧美色手机在线观看| 国产成人av一区| 免费观看在线综合色| 亚洲综合在线电影| 国产欧美精品一区| 日韩精品一区二区三区视频在线观看 | 最新久久zyz资源站| 91精品国产综合久久精品| 99久久精品国产一区| 精品在线观看免费| 天堂精品中文字幕在线| 亚洲欧美日韩系列| 国产精品久久三| 久久综合久久99| 日韩亚洲国产中文字幕欧美| 欧美吻胸吃奶大尺度电影| 99re在线视频这里只有精品| 国产一区二区伦理| 奇米一区二区三区av| 亚洲成人你懂的| 亚洲欧洲制服丝袜| 亚洲日本在线a| 国产精品你懂的在线| 久久先锋资源网| 精品成人私密视频| 亚洲精品一区二区在线观看| 欧美狂野另类xxxxoooo| 欧美伊人精品成人久久综合97| 99精品在线观看视频| 国产精品一级片在线观看| 国产在线播放一区| 黄色日韩网站视频| 激情综合亚洲精品| 激情成人综合网| 国内外精品视频| 国产一区不卡精品| 国产成人免费视频精品含羞草妖精| 久久99精品国产麻豆婷婷洗澡| 久久se这里有精品| 国产精品一区二区三区乱码| 国产剧情在线观看一区二区| 国产精品18久久久久久久网站| 国产一区高清在线| 成人av手机在线观看| 91在线你懂得| 欧美日韩国产一区| 精品国产人成亚洲区| 中文一区一区三区高中清不卡| 国产精品欧美精品| 亚洲精品视频一区二区| 午夜伦理一区二区| 免费高清视频精品| 国产福利精品导航| 99v久久综合狠狠综合久久| 欧美体内she精高潮| 欧美一区二区播放| 久久精品免费在线观看| 亚洲欧美精品午睡沙发| 青青草国产成人av片免费 | 欧美v国产在线一区二区三区| 久久综合狠狠综合| 亚洲女子a中天字幕| 蜜臀精品久久久久久蜜臀 | 91论坛在线播放| 91精品国产综合久久国产大片| 久久久久久久久久看片| 一级女性全黄久久生活片免费| 三级不卡在线观看| av在线不卡观看免费观看| 欧美精品乱码久久久久久| 久久亚洲精精品中文字幕早川悠里| 亚洲欧美一区二区三区极速播放 | 亚洲欧洲精品成人久久奇米网| 亚洲国产精品一区二区www在线| 狠狠色丁香婷婷综合久久片| 91欧美一区二区|