/* Create a new BIO to wrap communication around a bufferevent. If close_flag * is true, the bufferevent will be freed when the BIO is closed. */ static BIO * BIO_new_bufferevent(struct bufferevent *bufferevent, int close_flag) { BIO *result; if (!bufferevent) return NULL; if (!(result = BIO_new(BIO_s_bufferevent()))) return NULL; BIO_set_init(result, 1); BIO_set_data(result, bufferevent); BIO_set_shutdown(result, close_flag ? 1 : 0); return result; }
/* Create a new BIO to wrap communication around a bufferevent. If close_flag * is true, the bufferevent will be freed when the BIO is closed. */ static BIO * BIO_new_bufferevent(struct bufferevent *bufferevent, int close_flag) { BIO *result; if (!bufferevent) return NULL; if (!(result = BIO_new(BIO_s_bufferevent()))) return NULL; result->init = 1; result->ptr = bufferevent; result->shutdown = close_flag ? 1 : 0; return result; }