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

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

?? bss_sock.c

?? OpenSSL 0.9.8k 最新版OpenSSL
?? C
字號:
/* crypto/bio/bss_sock.c *//* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * * This package is an SSL implementation written * by Eric Young (eay@cryptsoft.com). * The implementation was written so as to conform with Netscapes SSL. *  * This library is free for commercial and non-commercial use as long as * the following conditions are aheared to.  The following conditions * apply to all code found in this distribution, be it the RC4, RSA, * lhash, DES, etc., code; not just the SSL code.  The SSL documentation * included with this distribution is covered by the same copyright terms * except that the holder is Tim Hudson (tjh@cryptsoft.com). *  * Copyright remains Eric Young's, and as such any Copyright notices in * the code are not to be removed. * If this package is used in a product, Eric Young should be given attribution * as the author of the parts of the library used. * This can be in the form of a textual message at program startup or * in documentation (online or textual) provided with the package. *  * 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 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 acknowledgement: *    "This product includes cryptographic software written by *     Eric Young (eay@cryptsoft.com)" *    The word 'cryptographic' can be left out if the rouines from the library *    being used are not cryptographic related :-). * 4. If you include any Windows specific code (or a derivative thereof) from  *    the apps directory (application code) you must include an acknowledgement: *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" *  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND * ANY EXPRESS 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 AUTHOR OR 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. *  * The licence and distribution terms for any publically available version or * derivative of this code cannot be changed.  i.e. this code cannot simply be * copied and put under another distribution licence * [including the GNU Public Licence.] */#include <stdio.h>#include <errno.h>#define USE_SOCKETS#include "cryptlib.h"#ifndef OPENSSL_NO_SOCK#include <openssl/bio.h>#ifdef WATT32#define sock_write SockWrite  /* Watt-32 uses same names */#define sock_read  SockRead#define sock_puts  SockPuts#endifstatic int sock_write(BIO *h, const char *buf, int num);static int sock_read(BIO *h, char *buf, int size);static int sock_puts(BIO *h, const char *str);static long sock_ctrl(BIO *h, int cmd, long arg1, void *arg2);static int sock_new(BIO *h);static int sock_free(BIO *data);int BIO_sock_should_retry(int s);static BIO_METHOD methods_sockp=	{	BIO_TYPE_SOCKET,	"socket",	sock_write,	sock_read,	sock_puts,	NULL, /* sock_gets, */	sock_ctrl,	sock_new,	sock_free,	NULL,	};BIO_METHOD *BIO_s_socket(void)	{	return(&methods_sockp);	}BIO *BIO_new_socket(int fd, int close_flag)	{	BIO *ret;	ret=BIO_new(BIO_s_socket());	if (ret == NULL) return(NULL);	BIO_set_fd(ret,fd,close_flag);	return(ret);	}static int sock_new(BIO *bi)	{	bi->init=0;	bi->num=0;	bi->ptr=NULL;	bi->flags=0;	return(1);	}static int sock_free(BIO *a)	{	if (a == NULL) return(0);	if (a->shutdown)		{		if (a->init)			{			SHUTDOWN2(a->num);			}		a->init=0;		a->flags=0;		}	return(1);	}	static int sock_read(BIO *b, char *out, int outl)	{	int ret=0;	if (out != NULL)		{		clear_socket_error();		ret=readsocket(b->num,out,outl);		BIO_clear_retry_flags(b);		if (ret <= 0)			{			if (BIO_sock_should_retry(ret))				BIO_set_retry_read(b);			}		}	return(ret);	}static int sock_write(BIO *b, const char *in, int inl)	{	int ret;		clear_socket_error();	ret=writesocket(b->num,in,inl);	BIO_clear_retry_flags(b);	if (ret <= 0)		{		if (BIO_sock_should_retry(ret))			BIO_set_retry_write(b);		}	return(ret);	}static long sock_ctrl(BIO *b, int cmd, long num, void *ptr)	{	long ret=1;	int *ip;	switch (cmd)		{	case BIO_CTRL_RESET:		num=0;	case BIO_C_FILE_SEEK:		ret=0;		break;	case BIO_C_FILE_TELL:	case BIO_CTRL_INFO:		ret=0;		break;	case BIO_C_SET_FD:		sock_free(b);		b->num= *((int *)ptr);		b->shutdown=(int)num;		b->init=1;		break;	case BIO_C_GET_FD:		if (b->init)			{			ip=(int *)ptr;			if (ip != NULL) *ip=b->num;			ret=b->num;			}		else			ret= -1;		break;	case BIO_CTRL_GET_CLOSE:		ret=b->shutdown;		break;	case BIO_CTRL_SET_CLOSE:		b->shutdown=(int)num;		break;	case BIO_CTRL_PENDING:	case BIO_CTRL_WPENDING:		ret=0;		break;	case BIO_CTRL_DUP:	case BIO_CTRL_FLUSH:		ret=1;		break;	default:		ret=0;		break;		}	return(ret);	}static int sock_puts(BIO *bp, const char *str)	{	int n,ret;	n=strlen(str);	ret=sock_write(bp,str,n);	return(ret);	}int BIO_sock_should_retry(int i)	{	int err;	if ((i == 0) || (i == -1))		{		err=get_last_socket_error();#if defined(OPENSSL_SYS_WINDOWS) && 0 /* more microsoft stupidity? perhaps not? Ben 4/1/99 */		if ((i == -1) && (err == 0))			return(1);#endif		return(BIO_sock_non_fatal_error(err));		}	return(0);	}int BIO_sock_non_fatal_error(int err)	{	switch (err)		{#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_NETWARE)# if defined(WSAEWOULDBLOCK)	case WSAEWOULDBLOCK:# endif# if 0 /* This appears to always be an error */#  if defined(WSAENOTCONN)	case WSAENOTCONN:#  endif# endif#endif#ifdef EWOULDBLOCK# ifdef WSAEWOULDBLOCK#  if WSAEWOULDBLOCK != EWOULDBLOCK	case EWOULDBLOCK:#  endif# else	case EWOULDBLOCK:# endif#endif#if defined(ENOTCONN)	case ENOTCONN:#endif#ifdef EINTR	case EINTR:#endif#ifdef EAGAIN# if EWOULDBLOCK != EAGAIN	case EAGAIN:# endif#endif#ifdef EPROTO	case EPROTO:#endif#ifdef EINPROGRESS	case EINPROGRESS:#endif#ifdef EALREADY	case EALREADY:#endif		return(1);		/* break; */	default:		break;		}	return(0);	}#endif  /* #ifndef OPENSSL_NO_SOCK */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人激情文学综合网| 久久99久久精品欧美| 精品蜜桃在线看| 91麻豆精品国产综合久久久久久| 一本在线高清不卡dvd| 91麻豆精品视频| 97久久人人超碰| 在线观看视频91| 欧美久久一区二区| 日韩亚洲国产中文字幕欧美| 欧美一级在线观看| 久久男人中文字幕资源站| 国产三级一区二区三区| 国产精品久久久久影院亚瑟| 国产精品久久久久久久岛一牛影视 | 亚洲三级视频在线观看| 国产精品三级在线观看| 日韩久久一区二区| 亚洲综合视频网| 久久精品久久99精品久久| 黑人巨大精品欧美一区| 成人综合在线视频| 在线免费观看不卡av| 9191精品国产综合久久久久久| 日韩欧美国产精品一区| 国产日产欧美一区二区三区 | 99精品在线观看视频| 91激情五月电影| 日韩免费看的电影| 中文字幕成人网| 五月激情六月综合| 国产99久久精品| 在线观看91精品国产入口| 日韩三级中文字幕| 国产精品福利一区| 蜜臀av亚洲一区中文字幕| caoporm超碰国产精品| 欧美精品久久99| 一区精品在线播放| 久久99最新地址| 在线日韩一区二区| 久久久五月婷婷| 亚洲444eee在线观看| 国产ts人妖一区二区| 欧美日韩综合不卡| 国产午夜亚洲精品理论片色戒| 亚洲国产精品影院| 99精品国产99久久久久久白柏| 欧美精品欧美精品系列| 综合欧美亚洲日本| 精品写真视频在线观看| 欧美日韩国产在线观看| 国产精品国产自产拍高清av| 久久精品国产久精国产爱| 色婷婷精品大在线视频| 国产欧美一区二区精品秋霞影院 | 99精品欧美一区二区三区小说| 91精品国产综合久久久久久久| 综合婷婷亚洲小说| 国产+成+人+亚洲欧洲自线| 日韩一级片在线观看| 亚洲成人免费电影| 色婷婷亚洲精品| 亚洲美女免费在线| 99久久国产综合色|国产精品| 久久亚洲私人国产精品va媚药| 日韩国产欧美三级| 欧美久久久久久久久久| 亚洲制服丝袜一区| 91片黄在线观看| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产suv一区二区三区88区| 欧美α欧美αv大片| 日本欧美一区二区三区| 7777精品伊人久久久大香线蕉的 | 国产精品免费久久久久| 国产成人精品影视| 久久精品一二三| 国产69精品久久久久777| 国产日韩欧美激情| 成人免费视频国产在线观看| 中文字幕欧美日本乱码一线二线 | 日韩美女视频一区| 在线视频你懂得一区| 亚洲综合精品久久| 正在播放一区二区| 日韩高清在线观看| 欧美成人高清电影在线| 精品一区二区免费在线观看| 久久蜜桃一区二区| 99久久伊人久久99| 亚洲国产综合视频在线观看| 6080午夜不卡| 国产一区不卡精品| 一区在线中文字幕| 欧美精品乱人伦久久久久久| 九色综合国产一区二区三区| 国产亚洲va综合人人澡精品| av中文一区二区三区| 亚洲综合男人的天堂| 日韩一区二区三区免费观看| 国产精品一区二区三区网站| 国产精品不卡一区二区三区| 色天天综合色天天久久| 午夜精品一区二区三区三上悠亚| 精品99久久久久久| 99热这里都是精品| 日本一不卡视频| 中文字幕成人网| 4438x亚洲最大成人网| 国产+成+人+亚洲欧洲自线| 亚洲欧洲99久久| 精品久久国产字幕高潮| 91影视在线播放| 国产主播一区二区三区| 一区二区三区色| 久久在线免费观看| 欧亚一区二区三区| 国产精品一区二区视频| 天堂蜜桃91精品| 国产精品女同一区二区三区| 欧美巨大另类极品videosbest | 美女高潮久久久| 亚洲女女做受ⅹxx高潮| 亚洲精品一区二区三区福利| 99在线精品免费| 国内精品不卡在线| 亚洲成av人影院| 国产精品美女久久久久aⅴ | 亚洲一二三级电影| 国产精品人妖ts系列视频| 欧美不卡视频一区| 5858s免费视频成人| 色女孩综合影院| 91在线精品一区二区| 国产高清视频一区| 精品一区二区在线看| 美女爽到高潮91| 亚洲激情图片qvod| 欧美经典一区二区| www成人在线观看| 91精品国产综合久久精品麻豆| 色天使久久综合网天天| 99久久精品免费| 91在线视频18| 91网站最新网址| 色综合久久久久综合99| 91免费小视频| 97精品电影院| 在线看国产一区二区| 色综合天天做天天爱| 99精品欧美一区二区三区小说| 成人午夜伦理影院| 成人黄色软件下载| 不卡av免费在线观看| 成年人国产精品| 91麻豆精东视频| 色婷婷亚洲精品| 欧美日韩dvd在线观看| 91精品啪在线观看国产60岁| 欧美一区二区三区在线视频| 欧美一区二区三区性视频| 欧美一区二区三区四区视频| 欧美肥大bbwbbw高潮| 日韩一区二区在线观看视频播放| 日韩欧美一区在线| 欧美成人欧美edvon| 久久综合99re88久久爱| 中文字幕不卡一区| 亚洲精品五月天| 日韩中文欧美在线| 国产一区二区在线视频| 不卡一区二区三区四区| 在线观看国产日韩| 日韩一区二区不卡| 久久精品人人爽人人爽| 亚洲欧美日韩一区| 偷拍与自拍一区| 国产美女精品一区二区三区| 91在线播放网址| 91精品久久久久久久91蜜桃| 久久综合九色综合97婷婷| 欧美激情在线一区二区| 亚洲一区二区三区国产| 精品一区二区三区在线观看| 成人久久视频在线观看| 欧美日韩在线播放三区四区| 精品国产自在久精品国产| 自拍偷拍国产精品| 久久精品国产免费| 色综合色狠狠天天综合色| 精品国产污网站| 亚洲日本一区二区| 精品一区二区三区免费观看| 色婷婷国产精品久久包臀| 亚洲精品一区在线观看| 亚洲小少妇裸体bbw| 成人免费av网站| 日韩午夜av电影| 亚洲国产视频网站|