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

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

?? engine.c

?? mediastreamer2是開源的網絡傳輸媒體流的庫
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* apps/engine.c -*- mode: C; c-file-style: "eay" -*- *//* Written by Richard Levitte <richard@levitte.org> for the OpenSSL * project 2000. *//* ==================================================================== * Copyright (c) 2000 The OpenSSL Project.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer.  * * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. * * 3. All advertising materials mentioning features or use of this *    software must display the following acknowledgment: *    "This product includes software developed by the OpenSSL Project *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" * * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to *    endorse or promote products derived from this software without *    prior written permission. For written permission, please contact *    licensing@OpenSSL.org. * * 5. Products derived from this software may not be called "OpenSSL" *    nor may "OpenSSL" appear in their names without prior written *    permission of the OpenSSL Project. * * 6. Redistributions of any form whatsoever must retain the following *    acknowledgment: *    "This product includes software developed by the OpenSSL Project *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" * * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * ==================================================================== * * This product includes cryptographic software written by Eric Young * (eay@cryptsoft.com).  This product includes software written by Tim * Hudson (tjh@cryptsoft.com). * */#ifndef OPENSSL_NO_ENGINE#include <stdio.h>#include <stdlib.h>#include <string.h>#ifdef OPENSSL_NO_STDIO#define APPS_WIN16#endif#include "apps.h"#include <openssl/err.h>#include <openssl/engine.h>#include <openssl/ssl.h>#undef PROG#define PROG	engine_mainstatic const char *engine_usage[]={"usage: engine opts [engine ...]\n"," -v[v[v[v]]] - verbose mode, for each engine, list its 'control commands'\n","               -vv will additionally display each command's description\n","               -vvv will also add the input flags for each command\n","               -vvvv will also show internal input flags\n"," -c          - for each engine, also list the capabilities\n"," -t[t]       - for each engine, check that they are really available\n","               -tt will display error trace for unavailable engines\n"," -pre <cmd>  - runs command 'cmd' against the ENGINE before any attempts\n","               to load it (if -t is used)\n"," -post <cmd> - runs command 'cmd' against the ENGINE after loading it\n","               (only used if -t is also provided)\n"," NB: -pre and -post will be applied to all ENGINEs supplied on the command\n"," line, or all supported ENGINEs if none are specified.\n"," Eg. '-pre \"SO_PATH:/lib/libdriver.so\"' calls command \"SO_PATH\" with\n"," argument \"/lib/libdriver.so\".\n",NULL};static void identity(void *ptr)	{	return;	}static int append_buf(char **buf, const char *s, int *size, int step)	{	int l = strlen(s);	if (*buf == NULL)		{		*size = step;		*buf = OPENSSL_malloc(*size);		if (*buf == NULL)			return 0;		**buf = '\0';		}	if (**buf != '\0')		l += 2;		/* ", " */	if (strlen(*buf) + strlen(s) >= (unsigned int)*size)		{		*size += step;		*buf = OPENSSL_realloc(*buf, *size);		}	if (*buf == NULL)		return 0;	if (**buf != '\0')		BUF_strlcat(*buf, ", ", *size);	BUF_strlcat(*buf, s, *size);	return 1;	}static int util_flags(BIO *bio_out, unsigned int flags, const char *indent)	{	int started = 0, err = 0;	/* Indent before displaying input flags */	BIO_printf(bio_out, "%s%s(input flags): ", indent, indent);	if(flags == 0)		{		BIO_printf(bio_out, "<no flags>\n");		return 1;		}        /* If the object is internal, mark it in a way that shows instead of         * having it part of all the other flags, even if it really is. */	if(flags & ENGINE_CMD_FLAG_INTERNAL)		{		BIO_printf(bio_out, "[Internal] ");		}	if(flags & ENGINE_CMD_FLAG_NUMERIC)		{		if(started)			{			BIO_printf(bio_out, "|");			err = 1;			}		BIO_printf(bio_out, "NUMERIC");		started = 1;		}	/* Now we check that no combinations of the mutually exclusive NUMERIC,	 * STRING, and NO_INPUT flags have been used. Future flags that can be	 * OR'd together with these would need to added after these to preserve	 * the testing logic. */	if(flags & ENGINE_CMD_FLAG_STRING)		{		if(started)			{			BIO_printf(bio_out, "|");			err = 1;			}		BIO_printf(bio_out, "STRING");		started = 1;		}	if(flags & ENGINE_CMD_FLAG_NO_INPUT)		{		if(started)			{			BIO_printf(bio_out, "|");			err = 1;			}		BIO_printf(bio_out, "NO_INPUT");		started = 1;		}	/* Check for unknown flags */	flags = flags & ~ENGINE_CMD_FLAG_NUMERIC &			~ENGINE_CMD_FLAG_STRING &			~ENGINE_CMD_FLAG_NO_INPUT &			~ENGINE_CMD_FLAG_INTERNAL;	if(flags)		{		if(started) BIO_printf(bio_out, "|");		BIO_printf(bio_out, "<0x%04X>", flags);		}	if(err)		BIO_printf(bio_out, "  <illegal flags!>");	BIO_printf(bio_out, "\n");	return 1;	}static int util_verbose(ENGINE *e, int verbose, BIO *bio_out, const char *indent)	{	static const int line_wrap = 78;	int num;	int ret = 0;	char *name = NULL;	char *desc = NULL;	int flags;	int xpos = 0;	STACK *cmds = NULL;	if(!ENGINE_ctrl(e, ENGINE_CTRL_HAS_CTRL_FUNCTION, 0, NULL, NULL) ||			((num = ENGINE_ctrl(e, ENGINE_CTRL_GET_FIRST_CMD_TYPE,					0, NULL, NULL)) <= 0))		{#if 0		BIO_printf(bio_out, "%s<no control commands>\n", indent);#endif		return 1;		}	cmds = sk_new_null();	if(!cmds)		goto err;	do {		int len;		/* Get the command input flags */		if((flags = ENGINE_ctrl(e, ENGINE_CTRL_GET_CMD_FLAGS, num,					NULL, NULL)) < 0)			goto err;                if (!(flags & ENGINE_CMD_FLAG_INTERNAL) || verbose >= 4)                        {                        /* Get the command name */                        if((len = ENGINE_ctrl(e, ENGINE_CTRL_GET_NAME_LEN_FROM_CMD, num,                                NULL, NULL)) <= 0)                                goto err;                        if((name = OPENSSL_malloc(len + 1)) == NULL)                                goto err;                        if(ENGINE_ctrl(e, ENGINE_CTRL_GET_NAME_FROM_CMD, num, name,                                NULL) <= 0)                                goto err;                        /* Get the command description */                        if((len = ENGINE_ctrl(e, ENGINE_CTRL_GET_DESC_LEN_FROM_CMD, num,                                NULL, NULL)) < 0)                                goto err;                        if(len > 0)                                {                                if((desc = OPENSSL_malloc(len + 1)) == NULL)                                        goto err;                                if(ENGINE_ctrl(e, ENGINE_CTRL_GET_DESC_FROM_CMD, num, desc,                                        NULL) <= 0)                                        goto err;                                }                        /* Now decide on the output */                        if(xpos == 0)                                /* Do an indent */                                xpos = BIO_printf(bio_out, indent);                        else                                /* Otherwise prepend a ", " */                                xpos += BIO_printf(bio_out, ", ");                        if(verbose == 1)                                {                                /* We're just listing names, comma-delimited */                                if((xpos > (int)strlen(indent)) &&					(xpos + (int)strlen(name) > line_wrap))                                        {                                        BIO_printf(bio_out, "\n");                                        xpos = BIO_printf(bio_out, indent);                                        }                                xpos += BIO_printf(bio_out, "%s", name);                                }                        else                                {                                /* We're listing names plus descriptions */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产日韩综合久久精品| 99re视频精品| 99久久精品国产导航| 在线观看91av| 一区二区三区色| 国产精品亚洲视频| 制服丝袜成人动漫| 一区二区三区在线不卡| 国产福利一区二区| 日韩午夜av电影| 一区二区三区日韩| 91影视在线播放| 中文久久乱码一区二区| 极品少妇xxxx偷拍精品少妇| 欧美精品少妇一区二区三区 | 一区二区三区四区av| 国产精品一二一区| 日韩欧美亚洲一区二区| 亚洲成人激情综合网| 92国产精品观看| 欧美—级在线免费片| 激情综合色播激情啊| 欧美日本精品一区二区三区| 一区二区三区**美女毛片| 99热在这里有精品免费| 国产欧美精品一区| 国产精品自拍三区| 亚洲国产精品成人久久综合一区| 国模无码大尺度一区二区三区| 日韩欧美第一区| 免费高清在线视频一区·| 91精品国产91久久综合桃花| 天天操天天色综合| 欧美日韩国产高清一区二区三区| 亚洲国产一区二区三区青草影视 | 亚洲欧美一区二区三区国产精品| 丰满少妇久久久久久久| 国产欧美日韩三区| 播五月开心婷婷综合| 国产精品理论在线观看| www.日韩大片| 亚洲最色的网站| 欧美精品日韩精品| 美女在线视频一区| 国产性色一区二区| 99国内精品久久| 亚洲最新视频在线观看| 欧美一级欧美三级在线观看| 国产一区二区美女| 亚洲日本护士毛茸茸| 欧美伊人精品成人久久综合97| 亚洲成av人片| 久久久国产午夜精品| 99国产精品99久久久久久| 亚洲精品五月天| 日韩一区二区视频| 成人午夜精品一区二区三区| 亚洲综合色噜噜狠狠| 4hu四虎永久在线影院成人| 国产精品一区二区三区四区| 亚洲码国产岛国毛片在线| 欧美一区二区三区影视| 国产成人一级电影| 亚洲国产欧美在线| 精品久久99ma| 色乱码一区二区三区88 | 亚洲精品日韩一| 日韩午夜激情视频| 色天天综合色天天久久| 久久成人18免费观看| 中文字幕一区视频| 91精品视频网| 99国产精品99久久久久久| 男人的天堂久久精品| 成人欧美一区二区三区白人| 制服.丝袜.亚洲.另类.中文| 成人小视频在线| 日av在线不卡| 亚洲欧美日韩人成在线播放| 欧美成va人片在线观看| 色激情天天射综合网| 成人性视频免费网站| 视频一区视频二区中文| 综合网在线视频| 久久久久久99久久久精品网站| 欧美美女网站色| 一本久久a久久免费精品不卡| 国产伦精一区二区三区| 日韩高清中文字幕一区| 亚洲男人的天堂av| 中文字幕欧美日韩一区| 精品美女在线播放| 51久久夜色精品国产麻豆| 欧美在线观看一二区| 9久草视频在线视频精品| 国产麻豆午夜三级精品| 免费不卡在线观看| 午夜精品福利久久久| 夜夜嗨av一区二区三区| 亚洲少妇最新在线视频| 国产情人综合久久777777| 久久中文字幕电影| 欧美大片在线观看| 欧美成人乱码一区二区三区| 欧美电影影音先锋| 欧美一区二区三区爱爱| 欧美日韩视频在线一区二区 | 午夜精品久久久久久久99水蜜桃| 亚洲欧美区自拍先锋| 亚洲色欲色欲www| 国产精品人人做人人爽人人添 | 国产高清久久久久| 国内精品视频666| 久久66热re国产| 久久成人免费电影| 精品一区二区av| 国产精品乡下勾搭老头1| 国模一区二区三区白浆| 国产精品一级黄| 成人av在线电影| 91麻豆精品在线观看| 91麻豆国产福利精品| 色拍拍在线精品视频8848| 91久久一区二区| 国产精品每日更新在线播放网址| 99久久伊人网影院| 99久久99久久精品免费看蜜桃| 成人天堂资源www在线| bt欧美亚洲午夜电影天堂| 91最新地址在线播放| 欧美伊人久久大香线蕉综合69| 欧美人牲a欧美精品| 日韩精品一区二区三区swag| 26uuu欧美| 中文字幕一区二区5566日韩| 夜夜嗨av一区二区三区中文字幕| 日韩国产一区二| 国产精品456| 色av一区二区| 日韩一区二区高清| 国产日韩欧美一区二区三区综合| 国产精品国产三级国产aⅴ原创| 亚洲精品大片www| 美国av一区二区| gogo大胆日本视频一区| 欧美精品日韩一区| 日本一区免费视频| 亚洲国产精品久久久久婷婷884| 麻豆精品视频在线观看视频| 丁香激情综合国产| 欧美性猛交xxxx黑人交| 欧美本精品男人aⅴ天堂| 综合欧美亚洲日本| 久久国产精品第一页| 国产白丝网站精品污在线入口| 日本久久精品电影| 精品国产免费一区二区三区四区| 最新久久zyz资源站| 日韩电影在线观看一区| 99热精品国产| 欧美xfplay| 午夜精品爽啪视频| 91在线一区二区三区| 欧美精品一区二区三区四区| 一区二区三区高清在线| 国产高清亚洲一区| 日韩免费成人网| 一区二区三区欧美| 成人午夜视频免费看| 日韩欧美高清一区| 午夜电影一区二区三区| 99久久精品免费| 久久久久99精品国产片| 日韩激情中文字幕| 91国产免费看| 国产精品素人视频| 精品一区二区三区香蕉蜜桃| 欧美视频你懂的| 中文字幕一区二区不卡| 国产精品亚洲综合一区在线观看| 制服丝袜中文字幕一区| 亚洲综合精品自拍| 91香蕉国产在线观看软件| 国产视频亚洲色图| 国内精品视频一区二区三区八戒| 91精品国产一区二区| 性感美女极品91精品| 色噜噜狠狠色综合欧洲selulu| 国产精品美女久久久久aⅴ国产馆| 国产自产高清不卡| 久久先锋影音av| 国产美女精品一区二区三区| 欧美精品一区二区三区蜜桃视频| 日本女人一区二区三区| 欧美一区二区免费视频| 天堂影院一区二区| 91精品一区二区三区在线观看| 天堂精品中文字幕在线| 91.麻豆视频| 麻豆一区二区三|