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

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

?? ui_lib.c

?? 開源的ssl算法openssl,版本0.9.8H
?? 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)(void))	{	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一区二区三区免费野_久草精品视频
精品盗摄一区二区三区| 亚洲精选视频免费看| 国产丝袜美腿一区二区三区| 亚洲欧美一区二区三区久本道91 | 成人一区二区三区视频 | 国产精品久久久久婷婷| 天涯成人国产亚洲精品一区av| 国产成人精品免费在线| 欧美二区在线观看| 亚洲乱码国产乱码精品精可以看| 国产一区二区久久| 欧美日韩第一区日日骚| 最好看的中文字幕久久| 国产精品一区二区91| 欧美一区二区三区色| 亚洲国产精品久久久久秋霞影院| 白白色亚洲国产精品| 久久嫩草精品久久久精品| 日韩国产欧美在线观看| 日本韩国一区二区三区视频| 国产精品美女www爽爽爽| 久久国产剧场电影| 日韩一区二区三区在线视频| 亚洲高清在线精品| 日本电影亚洲天堂一区| 亚洲欧洲综合另类在线| 99热国产精品| 亚洲色图欧美激情| a在线欧美一区| 国产精品日日摸夜夜摸av| 国产成人精品免费看| 久久久精品tv| 国产91在线观看丝袜| 久久久777精品电影网影网| 精品一区二区久久| 欧美精品一区二区三区蜜桃视频| 蜜桃av一区二区三区电影| 91麻豆精品久久久久蜜臀| 午夜久久久影院| 91精品国产综合久久久蜜臀粉嫩| 日日夜夜精品视频免费| 日韩欧美国产精品| 国产一区二区三区四区五区入口| 久久色中文字幕| 成人视屏免费看| 亚洲乱码中文字幕| 欧美日韩免费观看一区二区三区 | 欧美激情自拍偷拍| 豆国产96在线|亚洲| 国产精品久久久久久久久果冻传媒| 成人免费毛片嘿嘿连载视频| 亚洲视频资源在线| 欧美在线综合视频| 久久精品免费看| 国产情人综合久久777777| 91在线视频播放| 午夜日韩在线电影| 国产日韩综合av| 色欧美乱欧美15图片| 婷婷久久综合九色综合绿巨人| 欧美一级一区二区| 国产成人免费网站| 亚洲最新视频在线播放| 日韩一区二区三区视频在线观看 | 久久精品人人做人人爽97| av影院午夜一区| 亚洲一区影音先锋| 欧美va日韩va| 色88888久久久久久影院按摩| 日本欧美大码aⅴ在线播放| 国产女人水真多18毛片18精品视频| 91农村精品一区二区在线| 美美哒免费高清在线观看视频一区二区 | 偷拍日韩校园综合在线| 国产亚洲精品7777| 欧美性xxxxxx少妇| 国产精品一区免费视频| 亚洲高清免费一级二级三级| 国产日产精品一区| 777色狠狠一区二区三区| 成人免费视频一区| 另类调教123区| 伊人开心综合网| 国产亚洲女人久久久久毛片| 欧美午夜精品一区| 粉嫩aⅴ一区二区三区四区 | 亚洲欧美视频一区| 欧美精品一区在线观看| 欧美日本一区二区在线观看| 成人亚洲精品久久久久软件| 青青草国产精品亚洲专区无| 亚洲精品网站在线观看| 国产午夜精品久久久久久免费视| 欧美久久久久久蜜桃| 成人网在线播放| 国产乱子伦一区二区三区国色天香| 亚洲一区在线看| 中文字幕制服丝袜成人av| 国产亚洲成av人在线观看导航 | 日本精品视频一区二区三区| 懂色av一区二区三区蜜臀| 久久99国产精品久久| 三级影片在线观看欧美日韩一区二区| 综合欧美一区二区三区| 国产日韩精品一区| 久久精品夜色噜噜亚洲a∨| 精品国产免费人成在线观看| 欧美一区日韩一区| 这里只有精品免费| 欧美日本视频在线| 欧美日韩一二区| 精品视频色一区| 欧美高清视频www夜色资源网| 欧美三级视频在线观看| 欧美色倩网站大全免费| 欧美曰成人黄网| 欧美视频在线观看一区| 欧美日免费三级在线| 在线观看91av| 欧美一卡二卡在线观看| 日韩美女主播在线视频一区二区三区| 欧美一区二区免费观在线| 欧美一级艳片视频免费观看| 日韩一区二区中文字幕| 精品国产a毛片| 久久九九99视频| 1024成人网| 亚洲永久免费视频| 奇米影视在线99精品| 久久黄色级2电影| 国产精品99久久久久久似苏梦涵| 国产成人高清在线| 91在线免费看| 欧美日韩性生活| 精品国产3级a| 国产精品拍天天在线| 亚洲天堂av一区| 首页国产欧美日韩丝袜| 麻豆freexxxx性91精品| 国产一区二区三区国产| 不卡av电影在线播放| 欧美日韩亚洲另类| 精品蜜桃在线看| 中文字幕一区二区5566日韩| 午夜私人影院久久久久| 激情丁香综合五月| 欧美精品日韩精品| 日韩美女天天操| 亚洲免费av观看| 麻豆精品新av中文字幕| 国产1区2区3区精品美女| 91黄色在线观看| 欧美不卡激情三级在线观看| 专区另类欧美日韩| 免费在线观看视频一区| 成人av在线看| 日韩一区二区在线免费观看| 国产精品免费视频一区| 日韩成人免费在线| 99久久夜色精品国产网站| 欧美一区二区高清| 国产精品久久久久久久久免费相片| 天堂在线亚洲视频| 粉嫩高潮美女一区二区三区 | 五月婷婷综合激情| 国产91精品欧美| 欧美一级日韩免费不卡| 亚洲精品视频一区| 狠狠色丁香久久婷婷综| 欧美日韩国产乱码电影| 国产精品乱码一区二区三区软件 | 国产91精品一区二区麻豆网站 | 色综合视频一区二区三区高清| 精品久久久久久久久久久久久久久 | 久久久久久久久久久久电影| 亚洲综合图片区| 成人精品免费看| 久久影院午夜论| 日韩一区精品字幕| 欧美午夜精品免费| 最新热久久免费视频| 国产成人在线电影| 日韩欧美国产一区二区三区| 亚洲国产精品一区二区www在线| 91丨九色丨蝌蚪富婆spa| 国产拍揄自揄精品视频麻豆| 麻豆一区二区三| 欧美人与性动xxxx| 夜夜嗨av一区二区三区| 欧美久久高跟鞋激| 亚洲一区二区三区四区中文字幕| av一二三不卡影片| 国产欧美日韩三级| 国产精品99久| 久久精品在线免费观看| 国产在线视视频有精品| 久久丝袜美腿综合| 国产精品99久久久久久久女警| 久久久精品国产免费观看同学| 国产酒店精品激情|