您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ BIO_set_retry_write函数代码示例

51自学网 2021-06-01 19:50:28
  C++
这篇教程C++ BIO_set_retry_write函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中BIO_set_retry_write函数的典型用法代码示例。如果您正苦于以下问题:C++ BIO_set_retry_write函数的具体用法?C++ BIO_set_retry_write怎么用?C++ BIO_set_retry_write使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了BIO_set_retry_write函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: tou_socket_write

static int tou_socket_write(BIO *b, const char *in, int inl)	{	int ret;#ifdef DEBUG_TOU_BIO	fprintf(stderr, "tou_socket_write(%p,%p,%d)/n",b,in,inl);#endif		clear_tou_socket_error(b->num);	/* call tou library */	ret=tou_write(b->num,in,inl);	BIO_clear_retry_flags(b);	if (ret <= 0)		{		if (BIO_tou_socket_should_retry(b->num,ret))		{			BIO_set_retry_write(b);#ifdef DEBUG_TOU_BIO			fprintf(stderr, "tou_socket_write() setting retry flag/n");#endif		}		}#ifdef DEBUG_TOU_BIO	fprintf(stderr, "tou_socket_write() = %d/n", ret);#endif	return(ret);	}
开发者ID:MrKID,项目名称:RetroShare,代码行数:26,


示例2: dgram_write

static int dgram_write(BIO *b, const char *in, int inl)	{	int ret;	bio_dgram_data *data = (bio_dgram_data *)b->ptr;	clear_socket_error();    if ( data->connected )        ret=writesocket(b->num,in,inl);    else#if defined(NETWARE_CLIB) && defined(NETWARE_BSDSOCK)        ret=sendto(b->num, (char *)in, inl, 0, &data->peer, sizeof(data->peer));#else        ret=sendto(b->num, in, inl, 0, &data->peer, sizeof(data->peer));#endif	BIO_clear_retry_flags(b);	if (ret <= 0)		{		if (BIO_sock_should_retry(ret))			{			BIO_set_retry_write(b);  			data->_errno = get_last_socket_error();#if 0 /* higher layers are responsible for querying MTU, if necessary */			if ( data->_errno == EMSGSIZE)				/* retrieve the new MTU */				BIO_ctrl(b, BIO_CTRL_DGRAM_QUERY_MTU, 0, NULL);#endif			}		}	return(ret);	}
开发者ID:8003178550,项目名称:dsploit,代码行数:32,


示例3: tlso_bio_write

static inttlso_bio_write( BIO *b, const char *buf, int len ){	struct tls_data		*p;	int			ret;		if ( buf == NULL || len <= 0 ) return 0;		p = (struct tls_data *)b->ptr;	if ( p == NULL || p->sbiod == NULL ) {		return 0;	}	ret = LBER_SBIOD_WRITE_NEXT( p->sbiod, (char *)buf, len );	BIO_clear_retry_flags( b );	if ( ret < 0 ) {		int err = sock_errno();		if ( err == EAGAIN || err == EWOULDBLOCK ) {			BIO_set_retry_write( b );		}	}	return ret;}
开发者ID:cptaffe,项目名称:openldap,代码行数:26,


示例4: memory_write

static int memory_write(BIO *b, const char *in, int inl){	int ret = -1;	char strBuffer[MAX_UDP_PACKET_SIZE];	BIO_memory_data* pData = (BIO_memory_data*)b->ptr;		//	strBuffer[0] = (char)(CW_PROTOCOL_VERSION << 4) | (char)(CW_PACKET_CRYPT);	strBuffer[1] = strBuffer[2] = strBuffer[3] = 0;	//	memcpy(&strBuffer[4], in, inl);	//	errno = 0;	ret = sendto(pData->sock, strBuffer, inl + 4, 0, (struct sockaddr*)&pData->sendAddress, sizeof(struct sockaddr_storage));	//BIO_clear_retry_flags(b);	if (ret <= 0)	{		if (errno == EINTR)			BIO_set_retry_write(b);  	}	else	{		ret -= 4;	}		return ret;}
开发者ID:kernel-digger,项目名称:openCAPWAP,代码行数:30,


示例5: _mongoc_stream_tls_bio_write

static int_mongoc_stream_tls_bio_write (BIO        *b,                              const char *buf,                              int         len){   mongoc_stream_tls_t *tls;   mongoc_iovec_t iov;   int ret;   BSON_ASSERT (b);   BSON_ASSERT (buf);   if (!(tls = b->ptr)) {      return -1;   }   iov.iov_base = (void *)buf;   iov.iov_len = len;   errno = 0;   ret = (int)mongoc_stream_writev (tls->base_stream, &iov, 1,                                    tls->timeout_msec);   BIO_clear_retry_flags (b);   if ((ret < 0) && MONGOC_ERRNO_IS_AGAIN (errno)) {      BIO_set_retry_write (b);   }   return ret;}
开发者ID:jeromelebel,项目名称:mongo-c-driver,代码行数:30,


示例6: ACE_ASYNCH_BIO_WRITE_NAME

intACE_ASYNCH_BIO_WRITE_NAME (BIO * pBIO, const char * buf, int len){  BIO_clear_retry_flags (pBIO);  ACE_SSL_Asynch_Stream * p_stream =    static_cast<ACE_SSL_Asynch_Stream *> (pBIO->ptr);  if (pBIO->init == 0 || p_stream == 0 || buf == 0 || len <= 0)    return -1;  BIO_clear_retry_flags (pBIO);  int errval = 0;  int retval =    ACE_SSL_Asynch_Stream_Accessor::write (p_stream,                                           buf,                                           len,                                           errval);  if (retval >= 0)    return retval;  if (errval == EINPROGRESS)    BIO_set_retry_write (pBIO);  return -1;}
开发者ID:CCJY,项目名称:ACE,代码行数:29,


示例7: ssl_write

static int ssl_write(BIO *bio, const char *out, int outl) {  SSL *ssl = bio->ptr;  if (ssl == NULL) {    return 0;  }  BIO_clear_retry_flags(bio);  const int ret = SSL_write(ssl, out, outl);  switch (SSL_get_error(ssl, ret)) {    case SSL_ERROR_WANT_WRITE:      BIO_set_retry_write(bio);      break;    case SSL_ERROR_WANT_READ:      BIO_set_retry_read(bio);      break;    case SSL_ERROR_WANT_CONNECT:      BIO_set_retry_special(bio);      bio->retry_reason = BIO_RR_CONNECT;      break;    case SSL_ERROR_NONE:    case SSL_ERROR_SYSCALL:    case SSL_ERROR_SSL:    default:      break;  }  return ret;}
开发者ID:alagoutte,项目名称:proto-quic,代码行数:33,


示例8: dgram_write

static intdgram_write(BIO *b, const char *in, int inl){	int ret;	bio_dgram_data *data = (bio_dgram_data *)b->ptr;	errno = 0;	if (data->connected)		ret = write(b->num, in, inl);	else {		int peerlen = sizeof(data->peer);		if (data->peer.sa.sa_family == AF_INET)			peerlen = sizeof(data->peer.sa_in);		else if (data->peer.sa.sa_family == AF_INET6)			peerlen = sizeof(data->peer.sa_in6);		ret = sendto(b->num, in, inl, 0, &data->peer.sa, peerlen);	}	BIO_clear_retry_flags(b);	if (ret <= 0) {		if (BIO_dgram_should_retry(ret)) {			BIO_set_retry_write(b);			data->_errno = errno;			/*			 * higher layers are responsible for querying MTU,			 * if necessary			 */		}	}	return (ret);}
开发者ID:randombit,项目名称:hacrypto,代码行数:33,


示例9: bio_bufferevent_write

/* Called to write data info the BIO */static intbio_bufferevent_write(BIO *b, const char *in, int inlen){	struct bufferevent *bufev = BIO_get_data(b);	struct evbuffer *output;	size_t outlen;	BIO_clear_retry_flags(b);	if (!BIO_get_data(b))		return -1;	output = bufferevent_get_output(bufev);	outlen = evbuffer_get_length(output);	/* Copy only as much data onto the output buffer as can fit under the	 * high-water mark. */	if (bufev->wm_write.high && bufev->wm_write.high <= (outlen+inlen)) {		if (bufev->wm_write.high <= outlen) {			/* If no data can fit, we'll need to retry later. */			BIO_set_retry_write(b);			return -1;		}		inlen = bufev->wm_write.high - outlen;	}	EVUTIL_ASSERT(inlen > 0);	evbuffer_add(output, in, inlen);	return inlen;}
开发者ID:CTSRD-CHERI,项目名称:cheribsd,代码行数:31,


示例10: tls_bio_mbuf_write

/** write to a mbuf. * (internal openssl use via the tls_mbuf method) * @return bytes written on success (0<= ret <=src_len), -1 on error or buffer * full (in this case sets should_retry_write). */static int tls_bio_mbuf_write(BIO* b, const char* src, int src_len){	struct tls_bio_mbuf_data* d;	struct tls_mbuf* wr;	int ret;	ret = 0;#if OPENSSL_VERSION_NUMBER < 0x010100000L	d = b->ptr;#else	d = BIO_get_data(b);#endif	BIO_clear_retry_flags(b);	if (unlikely(d == 0 || d->wr->buf == 0)) {		if (d == 0)			BUG("tls_BIO_mbuf %p: write called with null b->ptr/n", b);		else {			/* this form of calling write with a null buffer is used			   as a shortcut when no data is available =>			   simulate EAGAIN/WANT_WRITE */			TLS_BIO_DBG("write (%p, %p, %d) called with null buffer"					" => simulating WANT_WRITE/n", b, src, src_len);			BIO_set_retry_write(b);		}		return -1;	}	wr = d->wr;	if (unlikely(wr->size == wr->used && src_len)) {		/* mimic non-blocking socket behaviour */		TLS_BIO_DBG("write (%p, %p, %d) called with full wr buffer (%d)"					" => simulating WANT_WRITE/n", b, src, src_len, wr->used);		BIO_set_retry_write(b);		return -1;	}	ret = MIN_int(wr->size - wr->used, src_len);	memcpy(wr->buf + wr->used, src, ret);	wr->used += ret;/*	if (unlikely(ret < src_len))		BIO_set_retry_write();*/	TLS_BIO_DBG("write called (%p, %p, %d) => %d/n", b, src, src_len, ret);	return ret;}
开发者ID:albertollamaso,项目名称:kamailio,代码行数:48,


示例11: fd_write

static int fd_write(BIO *b, const char *in, int inl) {  int ret = write(b->num, in, inl);  BIO_clear_retry_flags(b);  if (ret <= 0) {    if (bio_fd_should_retry(ret)) {      BIO_set_retry_write(b);    }  }  return ret;}
开发者ID:RobinWuDev,项目名称:Qt,代码行数:11,


示例12: _goconn_bio_write

int _goconn_bio_write (BIO *bio, const char *buf, int len) {  struct goconn_bio_write_return ret;  ret = goconn_bio_write(bio, (char *) buf, len);  BIO_clear_retry_flags(bio);  if (ret.r0 == -1 && ret.r1 == EAGAIN) {    BIO_set_retry_write(bio);  }  return ret.r0;}
开发者ID:codemedic,项目名称:sslconn,代码行数:11,


示例13: fd_write

static int fd_write(BIO *b, const char *in, int inl){    int ret;    clear_sys_error();    ret = UP_write(b->num, in, inl);    BIO_clear_retry_flags(b);    if (ret <= 0) {        if (BIO_fd_should_retry(ret))            BIO_set_retry_write(b);    }    return (ret);}
开发者ID:03050903,项目名称:godot,代码行数:12,


示例14: sock_write

static int sock_write(BIO *b, const char *in, int inl) {  int ret;  bio_clear_socket_error();  ret = send(b->num, in, inl, 0);  BIO_clear_retry_flags(b);  if (ret <= 0) {    if (bio_fd_should_retry(ret)) {      BIO_set_retry_write(b);    }  }  return ret;}
开发者ID:xin3liang,项目名称:platform_external_chromium_org_third_party_boringssl_src,代码行数:13,


示例15: sock_write

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;}
开发者ID:RTEMS,项目名称:rtems-libbsd,代码行数:13,


示例16: url_bio_bwrite

static int url_bio_bwrite(BIO *b, const char *buf, int len){    URLContext *h = GET_BIO_DATA(b);    int ret = ffurl_write(h, buf, len);    if (ret >= 0)        return ret;    BIO_clear_retry_flags(b);    if (ret == AVERROR(EAGAIN))        BIO_set_retry_write(b);    if (ret == AVERROR_EXIT)        return 0;    return -1;}
开发者ID:Rodeo314,项目名称:tim-libav,代码行数:13,


示例17: sock_write

static int sock_write(BIO *b, const char *in, int inl)	{	int ret;		clear_socket_error();	ret=ssl_sendmsg((struct socket*)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);	}
开发者ID:millken,项目名称:zhuxianB30,代码行数:14,


示例18: bio_bufq_write

static int bio_bufq_write(BIO *h, const char *buf, int size){  uint64_t n;  ph_bufq_t *q = h->ptr;  BIO_clear_retry_flags(h);  if (ph_bufq_append(q, buf, size, &n) != PH_OK) {    BIO_set_retry_write(h);    errno = EAGAIN;    return -1;  }  return (int)n;}
开发者ID:DreamDuo,项目名称:libphenom,代码行数:14,


示例19: nbiof_write

static int nbiof_write (BIO * b, const char *in, int inl){    NBIO_TEST *nt;    int ret = 0;    int num;    unsigned char n;    if ((in == NULL) || (inl <= 0))        return (0);    if (b->next_bio == NULL)        return (0);    nt = (NBIO_TEST *) b->ptr;    BIO_clear_retry_flags (b);#if 1    if (nt->lwn > 0)    {        num = nt->lwn;        nt->lwn = 0;    }    else    {        RAND_pseudo_bytes (&n, 1);        num = (n & 7);    }    if (inl > num)        inl = num;    if (num == 0)    {        ret = -1;        BIO_set_retry_write (b);    }    else#endif    {        ret = BIO_write (b->next_bio, in, inl);        if (ret < 0)        {            BIO_copy_next_retry (b);            nt->lwn = inl;        }    }    return (ret);}
开发者ID:274914765,项目名称:C,代码行数:50,


示例20: my_sock_write

static intmy_sock_write(BIO *h, const char *buf, int size){	int			res = 0;	res = send(h->num, buf, size, 0);	if (res <= 0)	{		if (errno == EINTR)		{			BIO_set_retry_write(h);		}	}	return res;}
开发者ID:denishpatel,项目名称:postgres,代码行数:16,


示例21: bio_nwrite0

/* non-copying interface: provide pointer to region to write to *   bio_nwrite0:  check how much space is available *   bio_nwrite:   also increase length * (example usage:  bio_nwrite0(), write to buffer, bio_nwrite() *  or just         bio_nwrite(), write to buffer) */static ossl_ssize_t bio_nwrite0(BIO *bio, char **buf)	{	struct bio_bio_st *b;	size_t num;	size_t write_offset;	BIO_clear_retry_flags(bio);	if (!bio->init)		return 0;	b = bio->ptr;	assert(b != NULL);	assert(b->peer != NULL);	assert(b->buf != NULL);	b->request = 0;	if (b->closed)		{		BIOerr(BIO_F_BIO_NWRITE0, BIO_R_BROKEN_PIPE);		return -1;		}	assert(b->len <= b->size);	if (b->len == b->size)		{		BIO_set_retry_write(bio);		return -1;		}	num = b->size - b->len;	write_offset = b->offset + b->len;	if (write_offset >= b->size)		write_offset -= b->size;	if (write_offset + num > b->size)		/* no ring buffer wrap-around for non-copying interface		 * (to fulfil the promise by BIO_ctrl_get_write_guarantee,		 * BIO_nwrite may have to be called twice) */		num = b->size - write_offset;	if (buf != NULL)		*buf = b->buf + write_offset;	assert(write_offset + num <= b->size);	return num;	}
开发者ID:Aorjoa,项目名称:bootloader,代码行数:53,


示例22: bio_cb_read

static intbio_cb_read(BIO *bio, char *buf, int size){	struct tls *ctx = bio->ptr;	int rv;	BIO_clear_retry_flags(bio);	rv = (ctx->read_cb)(ctx, buf, size, ctx->cb_arg);	if (rv == TLS_WANT_POLLIN) {		BIO_set_retry_read(bio);		rv = -1;	} else if (rv == TLS_WANT_POLLOUT) {		BIO_set_retry_write(bio);		rv = -1;	}	return (rv);}
开发者ID:2trill2spill,项目名称:nextgen,代码行数:17,


示例23: sock_write

static int sock_write(BIO *b, const char *in, int inl) {  int ret;  bio_clear_socket_error();#if defined(OPENSSL_WINDOWS)  ret = send(b->num, in, inl, 0);#else  ret = write(b->num, in, inl);#endif  BIO_clear_retry_flags(b);  if (ret <= 0) {    if (bio_fd_should_retry(ret)) {      BIO_set_retry_write(b);    }  }  return ret;}
开发者ID:MateusDeSousa,项目名称:FiqueRico,代码行数:17,


示例24: transport_bio_tsg_write

static int transport_bio_tsg_write(BIO* bio, const char* buf, int num){	int status;	rdpTsg* tsg;	tsg = (rdpTsg*) bio->ptr;	status = tsg_write(tsg, (BYTE*) buf, num);	BIO_clear_retry_flags(bio);	if (status <= 0)	{		BIO_set_retry_write(bio);	}	return num;}
开发者ID:lenky0401,项目名称:FreeRDP,代码行数:17,


示例25: my_sock_write

static intmy_sock_write(BIO *h, const char *buf, int size){	int			res = 0;	res = secure_raw_write(((Port *) BIO_get_data(h)), buf, size);	BIO_clear_retry_flags(h);	if (res <= 0)	{		/* If we were interrupted, tell caller to retry */		if (errno == EINTR || errno == EWOULDBLOCK || errno == EAGAIN)		{			BIO_set_retry_write(h);		}	}	return res;}
开发者ID:adityavs,项目名称:postgres,代码行数:18,


示例26: amqp_openssl_bio_write

static int amqp_openssl_bio_write(BIO* b, const char *in, int inl) {  int flags = 0;  int fd;  int res;#ifdef MSG_NOSIGNAL  flags |= MSG_NOSIGNAL;#endif  BIO_get_fd(b, &fd);  res = send(fd, in, inl, flags);  BIO_clear_retry_flags(b);  if (res <= 0 && amqp_openssl_bio_should_retry(res)) {    BIO_set_retry_write(b);  }  return res;}
开发者ID:mkpurcell,项目名称:rabbitmq-c,代码行数:19,


示例27: dgram_write

static int dgram_write(BIO *b, const char *in, int inl)	{	int ret;	bio_dgram_data *data = (bio_dgram_data *)b->ptr;	clear_socket_error();	if ( data->connected )		ret=writesocket(b->num,in,inl);	else		{		int peerlen = sizeof(data->peer);		if (data->peer.sa.sa_family == AF_INET)			peerlen = sizeof(data->peer.sa_in);#if OPENSSL_USE_IVP6		else if (data->peer.sa.sa_family == AF_INET6)			peerlen = sizeof(data->peer.sa_in6);#endif#if defined(NETWARE_CLIB) && defined(NETWARE_BSDSOCK)		ret=TINYCLR_SSL_SENDTO(b->num, (char *)in, inl, 0, &data->peer.sa, peerlen);#else		ret=TINYCLR_SSL_SENDTO(b->num, in, inl, 0, &data->peer.sa, peerlen);#endif		}	BIO_clear_retry_flags(b);	if (ret <= 0)		{		if (BIO_dgram_should_retry(ret))			{			BIO_set_retry_write(b);  			data->_errno = get_last_socket_error();#if 0 /* higher layers are responsible for querying MTU, if necessary */			if ( data->_errno == EMSGSIZE)				/* retrieve the new MTU */				BIO_ctrl(b, BIO_CTRL_DGRAM_QUERY_MTU, 0, NULL);#endif			}		}	return(ret);	}
开发者ID:Wampamba-Nooh,项目名称:MicroFrameworkSDK-Mono,代码行数:42,


示例28: my_sock_write

static intmy_sock_write(BIO *h, const char *buf, int size){	int			res = 0;	prepare_for_client_write();	res = send(h->num, buf, size, 0);	if (res <= 0)	{		if (errno == EINTR)		{			BIO_set_retry_write(h);		}	}	client_write_ended();	return res;}
开发者ID:andyli029,项目名称:incubator-hawq,代码行数:20,


示例29: bio_stm_write

static int bio_stm_write(BIO *h, const char *buf, int size){  uint64_t nwrote;  ph_stream_t *stm = h->ptr;  if (buf == NULL || size == 0 || stm == NULL) {    return 0;  }  BIO_clear_retry_flags(h);  if (ph_stm_write(stm, buf, size, &nwrote)) {    return (int)nwrote;  }  if (should_retry(stm)) {    BIO_set_retry_write(h);  }  return -1;}
开发者ID:DreamDuo,项目名称:libphenom,代码行数:20,



注:本文中的BIO_set_retry_write函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ BIO_should_retry函数代码示例
C++ BIO_set_retry_read函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。