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

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

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

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

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

示例1: ssl_readable

int ssl_readable(struct worker_t *self, struct client_t *c){	int r;	int sslerr, err;		//hlog(LOG_DEBUG, "ssl_readable fd %d", c->fd);		ssl_clear_error();		r = SSL_read(c->ssl_con->connection, c->ibuf + c->ibuf_end, c->ibuf_size - c->ibuf_end - 1);		if (r > 0) {		/* we got some data... process */		//hlog(LOG_DEBUG, "SSL_read fd %d returned %d bytes of data", c->fd, r);				/* TODO: whatever the client_readable does */		return client_postread(self, c, r);	}		sslerr = SSL_get_error(c->ssl_con->connection, r);	err = (sslerr == SSL_ERROR_SYSCALL) ? errno : 0;		if (sslerr == SSL_ERROR_WANT_READ) {		hlog(LOG_DEBUG, "ssl_readable fd %d: SSL_read wants to read again, doing it later", c->fd);				if (c->obuf_end - c->obuf_start > 0) {			/* tell the poller that we have outgoing data */			xpoll_outgoing(&self->xp, c->xfd, 1);		}				return 0;	}		if (sslerr == SSL_ERROR_WANT_WRITE) {		hlog(LOG_INFO, "ssl_readable fd %d: SSL_read wants to write (peer starts SSL renegotiation?), calling ssl_write", c->fd);		return ssl_write(self, c);	}		c->ssl_con->no_wait_shutdown = 1;	c->ssl_con->no_send_shutdown = 1;		if (sslerr == SSL_ERROR_ZERO_RETURN || ERR_peek_error() == 0) {		hlog(LOG_DEBUG, "ssl_readable fd %d: peer shutdown SSL cleanly", c->fd);		client_close(self, c, CLIERR_EOF);		return -1;	}		if (err) {		hlog(LOG_DEBUG, "ssl_readable fd %d: I/O syscall error: %s", c->fd, strerror(err));	} else {		char ebuf[255];				ERR_error_string_n(sslerr, ebuf, sizeof(ebuf));		hlog(LOG_INFO, "ssl_readable fd %d failed with ret %d sslerr %d errno %d: %s (%s)",			c->fd, r, sslerr, err, ebuf, ERR_reason_error_string(sslerr));	}		client_close(self, c, err);	return -1;}
开发者ID:N0NB,项目名称:aprx,代码行数:60,


示例2: disable_ssl

static void disable_ssl(int do_errors){    if(do_errors)    {	char buf[256];	unsigned long e;	while((e = ERR_get_error()))	{	    ERR_error_string_n(e, buf, sizeof(buf) - 1);	    Debug((DEBUG_DEBUG, "%s", buf));	    if (serverbooting) {		(void)fprintf(stderr, "%s/n", buf);	    }	}    }   if (sslable) {	if ((bootopt & BOOT_TTY) && (bootopt & BOOT_DEBUG))	    (void)fprintf(stderr, "disable_ssl(): EVP_cleanup()/n");	EVP_cleanup();    }    if(ctx) {	if ((bootopt & BOOT_TTY) && (bootopt & BOOT_DEBUG))	    (void)fprintf(stderr, "disable_ssl(): SSL_CTX_free()/n");    	SSL_CTX_free(ctx);    }    Debug((DEBUG_DEBUG, "SSL support is disabled."));    sslable = 0;    return;}
开发者ID:EvelynSubarrow,项目名称:utf-ircd,代码行数:30,


示例3: dst__openssl_toresult3

isc_result_tdst__openssl_toresult3(isc_logcategory_t *category,		       const char *funcname, isc_result_t fallback) {	isc_result_t result;	unsigned long err;	const char *file, *data;	int line, flags;	char buf[256];	result = toresult(fallback);	isc_log_write(dns_lctx, category,		      DNS_LOGMODULE_CRYPTO, ISC_LOG_WARNING,		      "%s failed (%s)", funcname,		      isc_result_totext(result));	if (result == ISC_R_NOMEMORY)		goto done;	for (;;) {		err = ERR_get_error_line_data(&file, &line, &data, &flags);		if (err == 0U)			goto done;		ERR_error_string_n(err, buf, sizeof(buf));		isc_log_write(dns_lctx, category,			      DNS_LOGMODULE_CRYPTO, ISC_LOG_INFO,			      "%s:%s:%d:%s", buf, file, line,			      (flags & ERR_TXT_STRING) ? data : "");	}    done:	ERR_clear_error();	return (result);}
开发者ID:enukane,项目名称:netbsd-src,代码行数:34,


示例4: SSL_get_error

Boolean SSLSocket::incompleteSecureReadOccurred(Sint32 retCode){    Sint32 err = SSL_get_error(static_cast<SSL*>(_SSLConnection), retCode);    Boolean isIncompleteRead =         ((err == SSL_ERROR_SYSCALL) &&        (_sslReadErrno == EAGAIN || _sslReadErrno == EINTR)) ||        (err == SSL_ERROR_WANT_READ) ||        (err == SSL_ERROR_WANT_WRITE);    if (Tracer::isTraceOn())    {        unsigned long rc = ERR_get_error ();        char buff[256];        ERR_error_string_n (rc, buff, sizeof (buff)); // added in OpenSSL 0.9.6        PEG_TRACE((TRC_SSL, Tracer::LEVEL4,            "In SSLSocket::incompleteSecureReadOccurred : err = %d %s",            err, buff));        if (!isIncompleteRead && retCode < 0)        {            PEG_TRACE((TRC_DISCARDED_DATA, Tracer::LEVEL4,                "In SSLSocket::incompleteSecureReadOccurred : err = %d %s",                err, buff));        }    }    return isIncompleteRead;}
开发者ID:host1812,项目名称:scx_plugin_public,代码行数:30,


示例5: msn_ssl_new

MsnSsl *msn_ssl_new (void){    MsnSsl *ssl;    ssl = g_new0 (MsnSsl, 1);    ssl->ctx = SSL_CTX_new (SSLv23_client_method ());    if (ssl->ctx == NULL)    {        char errmsg[128] = {0};        ERR_error_string_n (ERR_get_error (), errmsg, 128);        g_print ("error: %s/n", errmsg);        msn_ssl_free (ssl);        return NULL;    }    /* turn on all SSL implementation bug workarounds. */    SSL_CTX_set_options (ssl->ctx, SSL_OP_ALL);    /* don't do the verification. */    SSL_CTX_set_verify (ssl->ctx, SSL_VERIFY_NONE, NULL);    ssl->ssl = SSL_new (ssl->ctx);    return ssl;}
开发者ID:felipec,项目名称:libgmsn,代码行数:26,


示例6: while

/** * Serves the entire OpenSSL error queue and logs each error. * The last error is not logged but returned in 'errstr'. * * If 'rkb' is non-NULL broker-specific logging will be used, * else it will fall back on global 'rk' debugging. */static char *rd_kafka_ssl_error (rd_kafka_t *rk, rd_kafka_broker_t *rkb,				 char *errstr, size_t errstr_size) {    unsigned long l;    const char *file, *data;    int line, flags;    int cnt = 0;    while ((l = ERR_get_error_line_data(&file, &line, &data, &flags)) != 0) {	char buf[256];	if (cnt++ > 0) {		/* Log last message */		if (rkb)			rd_rkb_log(rkb, LOG_ERR, "SSL", "%s", errstr);		else			rd_kafka_log(rk, LOG_ERR, "SSL", "%s", errstr);	}		ERR_error_string_n(l, buf, sizeof(buf));	rd_snprintf(errstr, errstr_size, "%s:%d: %s: %s",		    file, line, buf, (flags & ERR_TXT_STRING) ? data : "");    }    if (cnt == 0)    	    rd_snprintf(errstr, errstr_size, "No error");        return errstr;}
开发者ID:BitRussell,项目名称:librdkafka,代码行数:37,


示例7: reportError

void reportError(SSL* ssl, int result){	if (result <= 0)	{		int error = SSL_get_error(ssl, result);		switch (error)		{		case SSL_ERROR_ZERO_RETURN:			cout << "SSL_ERROR_ZERO_RETURN" << endl;			break;		case SSL_ERROR_NONE:			cout << "SSL_ERROR_NONE" << endl;			break;		case SSL_ERROR_WANT_READ:			cout << "SSL_ERROR_WANT_READ" << endl;			break;		default:			char buffer[256];			while (error != 0)			{				ERR_error_string_n(error, buffer, sizeof(buffer));				cout << "Error: " << error << " - " << buffer << endl;				error = ERR_get_error();			}			break;		}	}}
开发者ID:RaymonSHan,项目名称:learning,代码行数:29,


示例8: opensslconnect

static Pfd*opensslconnect(char *host){	Pfd *pfd;	BIO *sbio;	SSL_CTX *ctx;	SSL *ssl;	static int didinit;	char buf[1024];	if(!didinit){		httpsinit();		didinit = 1;	}	ctx = SSL_CTX_new(SSLv23_client_method());	sbio = BIO_new_ssl_connect(ctx);	BIO_get_ssl(sbio, &ssl);	SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY);		snprint(buf, sizeof buf, "%s:https", host);	BIO_set_conn_hostname(sbio, buf);		if(BIO_do_connect(sbio) <= 0 || BIO_do_handshake(sbio) <= 0){		ERR_error_string_n(ERR_get_error(), buf, sizeof buf);		BIO_free_all(sbio);		werrstr("openssl: %s", buf);		return nil;	}	pfd = emalloc(sizeof *pfd);	pfd->sbio = sbio;	return pfd;}
开发者ID:00001,项目名称:plan9port,代码行数:34,


示例9: openssl_error

int openssl_error(neo4j_logger_t *logger, uint_fast8_t level,        const char *file, unsigned int line){    unsigned long code = ERR_get_error();    if (code == 0)    {        neo4j_log_error(logger, "OpenSSL error not available (%s:%d)",                file, line);        return NEO4J_UNEXPECTED_ERROR;    }    if (ERR_get_error() != 0)    {        neo4j_log_error(logger, "OpenSSL error stack too deep (%s:%d)",                file, line);        return NEO4J_UNEXPECTED_ERROR;    }    char ebuf[256];    ERR_error_string_n(code, ebuf, sizeof(ebuf));    neo4j_log(logger, level, "OpenSSL error: %lu:%s:%s:%s", code,            ERR_lib_error_string(code),            ERR_func_error_string(code),            ERR_reason_error_string(code));    return NEO4J_UNEXPECTED_ERROR;}
开发者ID:Dan-McG,项目名称:libneo4j-client,代码行数:27,


示例10: ERR_print_errors_cb

void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void *u),                         void *u){    unsigned long l;    char buf[256];    char buf2[4096];    const char *file, *data;    int line, flags;    /*     * We don't know what kind of thing CRYPTO_THREAD_ID is. Here is our best     * attempt to convert it into something we can print.     */    union {        CRYPTO_THREAD_ID tid;        unsigned long ltid;    } tid;    tid.ltid = 0;    tid.tid = CRYPTO_THREAD_get_current_id();    while ((l = ERR_get_error_line_data(&file, &line, &data, &flags)) != 0) {        ERR_error_string_n(l, buf, sizeof(buf));        BIO_snprintf(buf2, sizeof(buf2), "%lu:%s:%s:%d:%s/n", tid.ltid, buf,                     file, line, (flags & ERR_TXT_STRING) ? data : "");        if (cb(buf2, strlen(buf2), u) <= 0)            break;              /* abort outputting the error report */    }}
开发者ID:Ana06,项目名称:openssl,代码行数:28,


示例11: tqsl_getErrorString_v

DLLEXPORT const char *tqsl_getErrorString_v(int err) {	static char buf[256];	unsigned long openssl_err;	int adjusted_err;	if (err == 0)		return "NO ERROR";	if (err == TQSL_CUSTOM_ERROR) {		if (tQSL_CustomError[0] == 0)			return "Unknown custom error";		else {			strncpy(buf, tQSL_CustomError, sizeof buf);			return buf;		}	}	if (err == TQSL_SYSTEM_ERROR) {		strcpy(buf, "System error: ");		if (strlen(tQSL_ErrorFile) > 0) {			strncat(buf, tQSL_ErrorFile, sizeof buf - strlen(buf));			strncat(buf, ": ", sizeof buf - strlen(buf));		}		strncat(buf, strerror(errno), sizeof buf - strlen(buf));		return buf;	}	if (err == TQSL_OPENSSL_ERROR) {		openssl_err = ERR_get_error();		strcpy(buf, "OpenSSL error: ");		if (openssl_err)			ERR_error_string_n(openssl_err, buf + strlen(buf), sizeof buf - strlen(buf));		else			strncat(buf, "[error code not available]", sizeof buf - strlen(buf));		return buf;	}	if (err == TQSL_ADIF_ERROR) {		buf[0] = 0;		if (strlen(tQSL_ErrorFile) > 0) {			strncpy(buf, tQSL_ErrorFile, sizeof buf);			strncat(buf, ": ", sizeof buf - strlen(buf));		}		strncat(buf, tqsl_adifGetError(tQSL_ADIF_Error), sizeof buf - strlen(buf));		return buf;	}	if (err == TQSL_CABRILLO_ERROR) {		buf[0] = 0;		if (strlen(tQSL_ErrorFile) > 0) {			strncpy(buf, tQSL_ErrorFile, sizeof buf);			strncat(buf, ": ", sizeof buf - strlen(buf));		}		strncat(buf, tqsl_cabrilloGetError(tQSL_Cabrillo_Error), sizeof buf - strlen(buf));		return buf;	}	if (err == TQSL_OPENSSL_VERSION_ERROR) {		sprintf(buf, "Incompatible OpenSSL Library version %d.%d.%d; expected %d.%d.%d",			int(SSLeay() >> 28) & 0xff, int(SSLeay() >> 20) & 0xff, int(SSLeay() >> 12) & 0xff,			int(OPENSSL_VERSION_NUMBER >> 28) & 0xff, int(OPENSSL_VERSION_NUMBER >> 20) & 0xff,			int(OPENSSL_VERSION_NUMBER >> 12) & 0xff);		return buf;	}
开发者ID:jj1bdx,项目名称:tqsllib-freebsd-port,代码行数:59,


示例12: openssl_errormsg

char*openssl_errormsg(char *buf, size_t len) {	ERR_error_string_n(ERR_get_error(), buf, len);	/* clear rest of errors in OpenSSL "error buffer" */	ERR_clear_error();	return(buf);}
开发者ID:msftguy,项目名称:openssh-sc,代码行数:8,


示例13: ssl_error

static const char *ssl_error(void){    /* Minimum requirement is 120 characters */    static char ssl_errbuf[256];    ERR_error_string_n(ERR_get_error(), ssl_errbuf, sizeof(ssl_errbuf));    return ssl_errbuf;}
开发者ID:DNSSEC-Tools,项目名称:DNSSEC-Tools,代码行数:8,


示例14: get_ssl_error

static const char *get_ssl_error(unsigned long err){	static char buf[512];	ERR_error_string_n(err, buf, sizeof buf);	return buf;}
开发者ID:Macs,项目名称:NeoIRCd,代码行数:8,


示例15: LogSSLErrors

// This dumps the SSL error stack to the log.static void LogSSLErrors(const std::string& prefix) {  char error_buf[200];  unsigned long err;  while ((err = ERR_get_error())) {    ERR_error_string_n(err, error_buf, sizeof(error_buf));    LOG(LS_ERROR) << prefix << ": " << error_buf << "/n";  }}
开发者ID:Abhi347,项目名称:s3eTxmpp,代码行数:9,


示例16: ERR_error_string_n

    std::string SSLManager::getSSLErrorMessage(int code) {        // 120 from the SSL documentation for ERR_error_string        static const size_t msglen = 120;        char msg[msglen];        ERR_error_string_n(code, msg, msglen);        return msg;    }
开发者ID:ChowZenki,项目名称:mongo,代码行数:8,


示例17: sslerror_log

NOEXPORT void sslerror_log(unsigned long err, char *txt) {    char *error_string;    error_string=str_alloc(256);    ERR_error_string_n(err, error_string, 256);    s_log(LOG_ERR, "%s: %lX: %s", txt, err, error_string);    str_free(error_string);}
开发者ID:NickolasLapp,项目名称:stunnel,代码行数:8,


示例18: log_ssl_error_stack

/* Logs the SSL error stack. */static void log_ssl_error_stack(void) {  unsigned long err;  while ((err = ERR_get_error()) != 0) {    char details[256];    ERR_error_string_n(err, details, sizeof(details));    gpr_log(GPR_ERROR, "%s", details);  }}
开发者ID:Infixz,项目名称:grpc,代码行数:9,


示例19: log_crypto_err

voidlog_crypto_err(const char* str){#ifdef HAVE_SSL	/* error:[error code]:[library name]:[function name]:[reason string] */	char buf[128];	unsigned long e;	ERR_error_string_n(ERR_get_error(), buf, sizeof(buf));	log_err("%s crypto %s", str, buf);	while( (e=ERR_get_error()) ) {		ERR_error_string_n(e, buf, sizeof(buf));		log_err("and additionally crypto %s", buf);	}#else	(void)str;#endif /* HAVE_SSL */}
开发者ID:derekmarcotte,项目名称:freebsd,代码行数:17,


示例20: as_tls_read_once

intas_tls_read_once(as_socket* sock, void* buf, size_t len){	int rv = SSL_read(sock->ssl, buf, (int)len);	if (rv > 0) {		return rv;	}	else {		int sslerr = SSL_get_error(sock->ssl, rv);		unsigned long errcode;		char errbuf[1024];		switch (sslerr) {		case SSL_ERROR_WANT_READ:			return -1;		case SSL_ERROR_WANT_WRITE:			return -2;		case SSL_ERROR_SSL:			log_verify_details(sock);			errcode = ERR_get_error();			ERR_error_string_n(errcode, errbuf, sizeof(errbuf));			as_log_warn("SSL_read_once failed: %s", errbuf);			return -3;		case SSL_ERROR_SYSCALL:			errcode = ERR_get_error();			if (errcode != 0) {				ERR_error_string_n(errcode, errbuf, sizeof(errbuf));				as_log_warn("SSL_read_once I/O error: %s", errbuf);			}			else {				if (rv == 0) {					as_log_warn("SSL_read_once I/O error: unexpected EOF");				}				else {					as_log_warn("SSL_read_once I/O error: %d", as_last_error());				}			}			return -4;		case SSL_ERROR_ZERO_RETURN:			as_log_debug("SSL_read_once: server closed connection");			return -5;		default:			as_log_warn("SSL_read_once: unexpected ssl error: %d", sslerr);			return -6;		}	}}
开发者ID:aerospike,项目名称:aerospike-client-c,代码行数:46,


示例21: Exception

SSLException::SSLException()    : Exception(ERR_peek_error()) {    SSL_load_error_strings();    char error_message[256];    ERR_error_string_n(ERR_peek_error(), error_message, 256);    set_error_message(error_message);}
开发者ID:glycerine,项目名称:yield,代码行数:8,


示例22: print_errors

void print_errors(){  unsigned long err, line;  char *file;  while((err = ERR_get_error_line((const char**)&file, (int*)&line))){    ERR_error_string_n(err, err_str_buf, 128);    fprintf(stderr, "%s in %s at line %ld", err_str_buf, file, line);  }}
开发者ID:hitchiker42,项目名称:my-code,代码行数:8,


示例23: ossSSLGetErrorMessage

char* ossSSLGetErrorMessage(INT32 error){#define _MSG_LEN 256   static OSS_THREAD_LOCAL char buf[_MSG_LEN];   char* errorMsg;   INT32 err = ERR_get_error();   switch(error)   {   case SSL_ERROR_WANT_READ:   case SSL_ERROR_WANT_WRITE:      errorMsg = "possibly timed out during connect";      break;   case SSL_ERROR_ZERO_RETURN:      errorMsg = "SSL network connection closed";      break;   case SSL_ERROR_SYSCALL:      if (0 != err)      {         ERR_error_string_n(err, buf, _MSG_LEN);         errorMsg = buf;      }      else      {         INT32 lastError;#ifdef _WINDOWS         lastError = WSAGetLastError();#else         lastError = errno;#endif         ossSnprintf(buf, _MSG_LEN, "the SSL BIO reported an I/O error, "            "system errno: %d", lastError);         errorMsg = buf;      }      break;   case SSL_ERROR_SSL:      ERR_error_string_n(err, buf, _MSG_LEN);      errorMsg = buf;      break;   default:      errorMsg = "unrecognized SSL error";   }   return errorMsg;}
开发者ID:Andrew8305,项目名称:SequoiaDB,代码行数:45,


示例24: ERR_error_string_n

/* ERR_error_string_n should be used instead for ret != NULL * as ERR_error_string cannot know how large the buffer is */char *ERR_error_string(unsigned long e, char *ret)	{	static char buf[256];	if (ret == NULL) ret=buf;	ERR_error_string_n(e, ret, 256);	return(ret);	}
开发者ID:ahenroid,项目名称:ptptl-0.2,代码行数:11,


示例25: errstr_main

interrstr_main(int argc, char **argv){	unsigned long ulval;	char *ularg, *ep;	int argsused, i;	char buf[256];	int ret = 0;	if (single_execution) {		if (pledge("stdio rpath", NULL) == -1) {			perror("pledge");			exit(1);		}	}	memset(&errstr_config, 0, sizeof(errstr_config));	if (options_parse(argc, argv, errstr_options, NULL, &argsused) != 0) {		errstr_usage();		return (1);	}	if (errstr_config.stats) {		BIO *out;		if ((out = BIO_new_fp(stdout, BIO_NOCLOSE)) == NULL) {			fprintf(stderr, "Out of memory");			return (1);		}		lh_ERR_STRING_DATA_node_stats_bio(ERR_get_string_table(), out);		lh_ERR_STRING_DATA_stats_bio(ERR_get_string_table(), out);		lh_ERR_STRING_DATA_node_usage_stats_bio(			    ERR_get_string_table(), out);		BIO_free_all(out);	}	for (i = argsused; i < argc; i++) {		errno = 0;		ularg = argv[i];		ulval = strtoul(ularg, &ep, 16);		if (strchr(ularg, '-') != NULL ||		    (ularg[0] == '/0' || *ep != '/0') ||		    (errno == ERANGE && ulval == ULONG_MAX)) {			printf("%s: bad error code/n", ularg);			ret++;			continue;		}		ERR_error_string_n(ulval, buf, sizeof(buf));		printf("%s/n", buf);	}	return (ret);}
开发者ID:bbbrumley,项目名称:openbsd,代码行数:57,


示例26: ERR_error_string_n

/* * ERR_error_string_n should be used instead for ret != NULL as * ERR_error_string cannot know how large the buffer is */char *ERR_error_string(unsigned long e, char *ret){    static char buf[256];    if (ret == NULL)        ret = buf;    ERR_error_string_n(e, ret, (int)sizeof(buf));    return ret;}
开发者ID:dgalaxy,项目名称:openssl,代码行数:13,


示例27: ossSSLERRGetErrorMessage

char* ossSSLERRGetErrorMessage(INT32 error){#define _MSG_LEN 256   static OSS_THREAD_LOCAL char buf[_MSG_LEN];   ERR_error_string_n(error, buf, _MSG_LEN);   return buf;}
开发者ID:Andrew8305,项目名称:SequoiaDB,代码行数:9,


示例28: as_tls_connect_once

intas_tls_connect_once(as_socket* sock){	int rv = SSL_connect(sock->ssl);	if (rv == 1) {		log_session_info(sock);		return 1;	}	int sslerr = SSL_get_error(sock->ssl, rv);	unsigned long errcode;	char errbuf[1024];	switch (sslerr) {	case SSL_ERROR_WANT_READ:		return -1;	case SSL_ERROR_WANT_WRITE:		return -2;	case SSL_ERROR_SSL:		log_verify_details(sock);		errcode = ERR_get_error();		ERR_error_string_n(errcode, errbuf, sizeof(errbuf));		as_log_warn("SSL_connect_once failed: %s", errbuf);		return -3;	case SSL_ERROR_SYSCALL:		errcode = ERR_get_error();		if (errcode != 0) {			ERR_error_string_n(errcode, errbuf, sizeof(errbuf));			as_log_warn("SSL_connect_once I/O error: %s", errbuf);		}		else {			if (rv == 0) {				as_log_warn("SSL_connect_once I/O error: unexpected EOF");			}			else {				as_log_warn("SSL_connect_once I/O error: %d", as_last_error());			}		}		return -4;	default:		as_log_warn("SSL_connect_once: unexpected ssl error: %d", sslerr);		return -5;		break;	}}
开发者ID:aerospike,项目名称:aerospike-client-c,代码行数:44,


示例29: SSL_get_error

std::string Utility::convertSSLError(SSL* pSSL, int errCode){		std::string errMsg;	if (errCode > 0) return "no error";	int connectErr = SSL_get_error(pSSL, errCode);	long lErr = 0;	char buf[512];		switch (connectErr)	{	case SSL_ERROR_ZERO_RETURN:		// connection closed		errMsg = "connection closed by server";		break;	case SSL_ERROR_WANT_READ:		errMsg = "want read";		break;	case SSL_ERROR_WANT_WRITE:		errMsg = "want write";		break;	case SSL_ERROR_WANT_CONNECT: 		errMsg = "want connect";		break;	case SSL_ERROR_WANT_ACCEPT:		errMsg = "want accept";		break;	case SSL_ERROR_WANT_X509_LOOKUP:		errMsg = "want lookup";		break;	case SSL_ERROR_SYSCALL:		errMsg = "syscall";		break;	case SSL_ERROR_SSL:		lErr = ERR_get_error();		if (errCode == 0)		{			errMsg = "EOF was observed";		}		else if (errCode == -1)		{			errMsg = "The underlying BIO reported an I/O error";		}		else		{			ERR_error_string_n(lErr, buf, 512);			errMsg = buf;		}		break;	default:		errMsg = "none";	}	return errMsg;}
开发者ID:carvalhomb,项目名称:tsmells,代码行数:56,


示例30: cipher_evp

static char *	cipher_evp (const unsigned char *key, int keylen, const unsigned char *plaintext, int plaintextlen, const EVP_CIPHER *type, int *retsize, int ivsize){        unsigned char *outbuf;        int     outlen = 0;	int	extralen = 0;	unsigned char	*iv = NULL;	unsigned long errcode;	u_32int_t	randomval;	int		iv_count;        EVP_CIPHER_CTX a;        EVP_CIPHER_CTX_init(&a);	EVP_CIPHER_CTX_set_padding(&a, 0);	if (ivsize < 0)		ivsize = 0;		/* Shenanigans! */	if (ivsize > 0)	{	    if (ivsize % sizeof(u_32int_t) != 0)		panic(1, "The IV size for a crypto type you're using is %d "			"which is not a multiple of %d", 			ivsize, sizeof(u_32int_t));	    iv = new_malloc(ivsize);	    for (iv_count = 0; iv_count < ivsize; iv_count += sizeof(u_32int_t))	    {		randomval = arc4random();  		memmove(iv + iv_count, &randomval, sizeof(u_32int_t));	    }	}	outbuf = new_malloc(plaintextlen + 100);	if (iv)		memcpy(outbuf, iv, ivsize);        EVP_EncryptInit_ex(&a, type, NULL, NULL, iv);	EVP_CIPHER_CTX_set_key_length(&a, keylen);        EVP_EncryptInit_ex(&a, NULL, NULL, key, NULL);        EVP_EncryptUpdate(&a, outbuf + ivsize, &outlen, plaintext, plaintextlen);	EVP_EncryptFinal_ex(&a, outbuf + ivsize + outlen, &extralen);        EVP_CIPHER_CTX_cleanup(&a);	outlen += extralen;	ERR_load_crypto_strings();	while ((errcode = ERR_get_error()))	{	    char r[256];	    ERR_error_string_n(errcode, r, 256);	    yell("ERROR: %s", r);	}	*retsize = outlen + ivsize;	if (iv)		new_free(&iv);		/* XXX Is this correct? */	return outbuf;}
开发者ID:Cloudxtreme,项目名称:epic5,代码行数:56,



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


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