http_off_t http_req_body_get_sync(HTTP_REQ *request, ACL_VSTREAM *stream, void *buf, int size) { HTTP_CHAT_CTX *ctx; if (request->hdr_req->hdr.content_length == 0) { /* 扩展了HTTP请求协议部分, 允许请求数据为块传输 */ if (request->hdr_req->hdr.chunked == 0) return 0; } if (request->ctx == NULL) { ctx = new_ctx(); ctx->hdr = &request->hdr_req->hdr; ctx->stream = stream; /* 扩展了HTTP请求协议部分, 允许请求数据为块传输 */ ctx->chunked = request->hdr_req->hdr.chunked; ctx->chunk_len = request->hdr_req->hdr.content_length; ctx->body_len = 0; ctx->read_cnt = 0; if (ctx->chunked) ctx->chunk.chunk_oper = CHUNK_OPER_HEAD; request->ctx = (void*) ctx; request->free_ctx = free_ctx; } else ctx = (HTTP_CHAT_CTX*) request->ctx; ctx->flag = request->flag; return body_get(ctx, buf, size); }
http_off_t http_res_body_get_sync(HTTP_RES *respond, ACL_VSTREAM *stream, void *buf, int size) { HTTP_CHAT_CTX *ctx; if (respond->hdr_res->hdr.content_length == 0) { /* 块传输协议优先于 content-length */ if (respond->hdr_res->hdr.chunked == 0) return 0; } if (respond->ctx == NULL) { ctx = new_ctx(); ctx->hdr = &respond->hdr_res->hdr; ctx->stream = stream; ctx->chunked = respond->hdr_res->hdr.chunked; ctx->chunk_len = respond->hdr_res->hdr.content_length; ctx->body_len = 0; ctx->read_cnt = 0; if (ctx->chunked) ctx->chunk.chunk_oper = CHUNK_OPER_HEAD; respond->ctx = (void*) ctx; respond->free_ctx = free_ctx; } else ctx = (HTTP_CHAT_CTX*) respond->ctx; ctx->flag = respond->flag; return body_get(ctx, buf, size); }
BIO *neo4j_openssl_new_bio(BIO *delegate, const char *hostname, int port, const neo4j_config_t *config, uint_fast32_t flags) { neo4j_logger_t *logger = neo4j_get_logger(config, "tls"); SSL_CTX *ctx = new_ctx(config, logger); if (ctx == NULL) { return NULL; } BIO *ssl_bio = BIO_new_ssl(ctx, 1); if (ssl_bio == NULL) { errno = openssl_error(logger, NEO4J_LOG_ERROR, __FILE__, __LINE__); SSL_CTX_free(ctx); goto failure; } SSL_CTX_free(ctx); BIO_push(ssl_bio, delegate); if (BIO_set_close(ssl_bio, BIO_CLOSE) != 1) { errno = openssl_error(logger, NEO4J_LOG_ERROR, __FILE__, __LINE__); goto failure; } int result = BIO_do_handshake(ssl_bio); if (result != 1) { if (result == 0) { errno = NEO4J_NO_SERVER_TLS_SUPPORT; goto failure; } errno = openssl_error(logger, NEO4J_LOG_ERROR, __FILE__, __LINE__); goto failure; } SSL *ssl = NULL; BIO_get_ssl(ssl_bio, &ssl); assert(ssl != NULL); if (verify(ssl, hostname, port, config, flags, logger)) { goto failure; } return ssl_bio; int errsv; failure: errsv = errno; BIO_free(ssl_bio); errno = errsv; return NULL; }
void GrowWindow::update_attributes() { if ( strcmp( input_file_name, file_name) != 0 || (window_ctx && strcmp( window_ctx->owner, owner) != 0)) { // New graph, create new context #if 0 int ur_x = int( (x_right - vertical_scrollbar * scrollbar_width) * ctx->mw.zoom_factor_x) - ctx->mw.offset_x; int ll_x = int( x_left * ctx->mw.zoom_factor_x) - ctx->mw.offset_x; int ur_y = int( (y_high - horizontal_scrollbar * scrollbar_width) * ctx->mw.zoom_factor_y) - ctx->mw.offset_y; int ll_y = int( (y_low + y_low_offs) * ctx->mw.zoom_factor_y) - ctx->mw.offset_y; if ( window_ctx) window_ctx->draw_buffer_only = ctx->draw_buffer_only; glow_draw_set_clip_rectangle( ctx, ll_x, ll_y, ur_x, ur_y); #endif int ur_x = int( x_right * ctx->mw.zoom_factor_x) - ctx->mw.offset_x; int ll_x = int( x_left * ctx->mw.zoom_factor_x) - ctx->mw.offset_x; int ur_y = int( y_high * ctx->mw.zoom_factor_y) - ctx->mw.offset_y; int ll_y = int( y_low * ctx->mw.zoom_factor_y) - ctx->mw.offset_y; ctx->gdraw->set_clip_rectangle( &ctx->mw, ll_x, ll_y, ur_x, ur_y); if ( window_ctx) { if ( window_ctx->trace_started) window_ctx->trace_close(); delete window_ctx; fill_drawtype = original_fill_drawtype = glow_eDrawType_Inherit; fill = 0; } strcpy( file_name, input_file_name); new_ctx(); //#if 0 ctx->gdraw->reset_clip_rectangle( &ctx->mw); //#endif } if ( window_ctx) { window_ctx->mw.subwindow_scale = window_scale; window_ctx->mw.zoom_factor_x = window_ctx->mw.zoom_factor_y = window_ctx->mw.subwindow_scale * ctx->mw.zoom_factor_x; window_ctx->a.zoom(); } configure_scrollbars(); if ( v_scrollbar) v_scrollbar->set_colors( scrollbar_bg_color, scrollbar_color); if ( h_scrollbar) h_scrollbar->set_colors( scrollbar_bg_color, scrollbar_color); }
static void hdr_get_async(ctx_type type, HTTP_HDR *hdr, ACL_ASTREAM *astream, HTTP_HDR_NOTIFY notify, void *arg, int timeout) { const char *myname = "hdr_get_async"; HTTP_CHAT_CTX *ctx; ACL_VSTREAM *stream; if (hdr == NULL || astream == NULL || notify == NULL) acl_msg_fatal("%s: input invalid", myname); stream = acl_aio_vstream(astream); stream->rw_timeout = 0; /* bug fix, --zsx, 2007.7.7 */ if (hdr->chat_ctx == NULL) { hdr->chat_ctx = new_ctx(type); hdr->chat_free_ctx_fn = free_ctx_fn; } ctx = (HTTP_CHAT_CTX*) hdr->chat_ctx; ctx->hdr = hdr; ctx->timeout = timeout; ctx->notify.hdr_notify = notify; ctx->arg = arg; ctx->status = CHAT_S_HDR; if (0) { acl_aio_ctl(astream, ACL_AIO_CTL_READ_HOOK_ADD, hdr_gets_ready, ctx, ACL_AIO_CTL_TIMEOUT, timeout, ACL_AIO_CTL_END); acl_aio_gets_nonl(astream); } else { acl_aio_ctl(astream, ACL_AIO_CTL_TIMEOUT, timeout, ACL_AIO_CTL_END); acl_aio_enable_read(astream, hdr_can_read, ctx); } }
/** * @brief * This function is called from vn_addvnr() before vn_addvnr() inserts a * new name/value pair. If we return zero, the insertion of the given * <ID, name, value> tuple will not occur (but processing of the file * will continue normally); if we return nonzero, the insertion of * the given tuple will occur (and again, processing continues normally). * * Currently we use this function to perform these actions: * * for the "cpus" attribute, build a list of the CPUs belonging * to given vnodes * * for the "mems" attribute, to record the memory node number of * the memory board belonging to a given vnode (note that in * contrast to CPUs, of which there may be more than one, the * model for memory is that of a single (logical) memory board * per vnode) * * for the "sharing" attribute, we simply remember the attribute * value for later use in make_cpuset(), q.v. * * for the "resources_available.mem" attribute, set a flag that * tells us to remember to do the memreserved adjustment * * @param[in] vnid - vnode id * @param[in] attr - attributes * @param[in] attrval - attribute value * * @return int * @retval -1 Failure * @retval 0,1 Success * */ int vn_callback(const char *vnid, char *attr, char *attrval) { static void *ctx = NULL; #if defined(MOM_CPUSET) static char memres[] = "resources_available.mem"; /* * If we're setting the memory on a vnode, turn on a flag telling * us to remember to do the memreserved adjustment. */ if ((do_memreserved_adjustment == 0) && (strcmp(attr, memres) == 0)) { do_memreserved_adjustment = 1; return (1); } #endif /* MOM_CPUSET */ if (strcmp(attr, "cpus") == 0) { mom_vninfo_t *mvp; sprintf(log_buffer, "vnid %s, attr %s, val %s", vnid, attr, attrval); log_event(PBSEVENT_DEBUG3, 0, 0, __func__, log_buffer); if ((ctx == NULL) && ((ctx = new_ctx()) == NULL)) return (-1); if ((mvp = vnid2mominfo(vnid, ctx)) == NULL) return (0); add_CPUlist(mvp, attrval); return (0); } else if (strcmp(attr, "mems") == 0) { mom_vninfo_t *mvp; sprintf(log_buffer, "vnid %s, attr %s, val %s", vnid, attr, attrval); log_event(PBSEVENT_DEBUG3, 0, 0, __func__, log_buffer); if ((ctx == NULL) && ((ctx = new_ctx()) == NULL)) return (-1); if ((mvp = vnid2mominfo(vnid, ctx)) == NULL) return (0); mvp->mvi_memnum = atoi(attrval); #if defined(MOM_CPUSET) && (CPUSET_VERSION >= 4) if (memmask_add(mvp->mvi_memnum) != 0) return (-1); #endif /* MOM_CPUSET && CPUSET_VERSION >= 4 */ return (0); } else if (strcmp(attr, "sharing") == 0) { mom_vninfo_t *mvp; if ((ctx == NULL) && ((ctx = new_ctx()) == NULL)) return (-1); if ((mvp = vnid2mominfo(vnid, ctx)) == NULL) return (0); mvp->mvi_sharing = str_to_vnode_sharing(attrval); return (1); } else return (1); }
int be_visitor_structure_cdr_op_cs::visit_structure (be_structure *node) { if (node->cli_stub_cdr_op_gen () || node->imported () || node->is_local ()) { return 0; } // Set the substate as generating code for the types defined in our scope. this->ctx_->sub_state (TAO_CodeGen::TAO_CDR_SCOPE); if (this->visit_scope (node) == -1) { ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("be_visitor_structure_cdr_op_cs::") ACE_TEXT ("visit_structure - ") ACE_TEXT ("codegen for scope failed\n")), -1); } TAO_OutStream *os = this->ctx_->stream (); *os << be_nl_2 << "// TAO_IDL - Generated from" << be_nl << "// " << __FILE__ << ":" << __LINE__ << be_nl; *os << be_global->core_versioning_begin () << be_nl; // Set the sub state as generating code for the output operator. this->ctx_->sub_state (TAO_CodeGen::TAO_CDR_OUTPUT); *os << "::CORBA::Boolean operator<< (" << be_idt << be_idt_nl << "TAO_OutputCDR &strm," << be_nl << "const " << node->name () << " &_tao_aggregate)" << be_uidt << be_uidt_nl << "{" << be_idt_nl; be_visitor_context new_ctx (*this->ctx_); be_visitor_cdr_op_field_decl field_decl (&new_ctx); if (field_decl.visit_scope (node) == -1) { ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("be_visitor_structure_cdr_op_cs::") ACE_TEXT ("visit_structure - ") ACE_TEXT ("codegen for field decl failed\n")), -1); } *os << "return" << be_idt_nl; if (this->visit_scope (node) == -1) { ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("be_visitor_structure_cdr_op_cs::") ACE_TEXT ("visit_structure - ") ACE_TEXT ("codegen for scope failed\n")), -1); } *os << ";" << be_uidt << be_uidt_nl << "}" << be_nl_2; // Set the substate as generating code for the input operator. this->ctx_->sub_state (TAO_CodeGen::TAO_CDR_INPUT); *os << "::CORBA::Boolean operator>> (" << be_idt << be_idt_nl << "TAO_InputCDR &"; if (! node->is_local ()) { *os << "strm"; } *os << "," << be_nl << node->name () << " &"; if (! node->is_local ()) { *os << "_tao_aggregate"; } *os << ")" << be_uidt << be_uidt_nl << "{" << be_idt_nl; if (node->is_local ()) { *os << "return false;"; } else { new_ctx.sub_state (TAO_CodeGen::TAO_CDR_INPUT); if (field_decl.visit_scope (node) == -1) { ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("be_visitor_structure_cdr_op_cs::") ACE_TEXT ("visit_structure - ") ACE_TEXT ("codegen for field ") ACE_TEXT ("decl scope failed\n")), -1); } *os << "return" << be_idt_nl; if (this->visit_scope (node) == -1) { ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("be_visitor_structure_cdr_op_cs") ACE_TEXT ("::visit_structure - ") ACE_TEXT ("codegen for scope failed\n")), -1); } *os << ";" << be_uidt << be_uidt; } *os << be_uidt_nl << "}" << be_nl; if (be_global->gen_ostream_operators ()) { node->gen_ostream_operator (os, false); } *os << be_global->core_versioning_end () << be_nl; node->cli_stub_cdr_op_gen (true); return 0; }
int be_visitor_valuetype_cdr_op_cs::visit_valuetype (be_valuetype *node) { // Already generated and/or we are imported. Don't do anything. if (node->cli_stub_cdr_op_gen () || node->imported () || ! node->is_defined ()) { return 0; } // Generate helper functions implementation. if (node->gen_helper_stubs () == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_valuetype_cdr_op_cs::" "visit_valuetype - " "codegen for helper functions failed\n"), -1); } TAO_OutStream *os = this->ctx_->stream (); node->cli_stub_cdr_op_gen (true); if (this->visit_scope (node) == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_valuetype_cdr_op_ci" "::visit_valuetype - " "codegen for scope failed\n"), -1); } *os << be_nl_2 << "// TAO_IDL - Generated from" << be_nl << "// " << __FILE__ << ":" << __LINE__ << be_nl_2; *os << be_global->core_versioning_begin () << be_nl; // Set the sub state as generating code for the output operator. this->ctx_->sub_state(TAO_CodeGen::TAO_CDR_OUTPUT); *os << "::CORBA::Boolean" << be_nl << "operator<< (" << be_idt << be_idt_nl << "TAO_OutputCDR &strm," << be_nl << "const " << node->full_name () << " *_tao_valuetype" << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl; *os << "return" << be_idt_nl << "::CORBA::ValueBase::_tao_marshal (" << be_idt << be_idt_nl << "strm," << be_nl << "_tao_valuetype," << be_nl << "reinterpret_cast<ptrdiff_t> (&" << node->full_name () << "::_downcast)" << be_uidt_nl << ");" << be_uidt << be_uidt << be_uidt_nl << "}" << be_nl_2; *os << "::CORBA::Boolean" << be_nl << "operator>> (" << be_idt << be_idt_nl << "TAO_InputCDR &strm," << be_nl << node->full_name () << " *&_tao_valuetype" << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl; *os << "return " << node->full_name () << "::_tao_unmarshal (strm, _tao_valuetype);" << be_uidt_nl << "}" << be_nl_2; if (be_global->gen_ostream_operators ()) { node->gen_ostream_operator (os, false); } *os << be_global->core_versioning_end () << be_nl; if (!node->is_abstract ()) { // Functions that marshal state. be_visitor_context new_ctx (*this->ctx_); be_visitor_valuetype_marshal_cs visitor (&new_ctx); visitor.visit_valuetype (node); } return 0; }
int be_visitor_exception_cdr_op_cs::visit_exception (be_exception *node) { if (node->cli_stub_cdr_op_gen () || node->imported () || node->is_local ()) { return 0; } this->ctx_->sub_state(TAO_CodeGen::TAO_CDR_SCOPE); if (this->visit_scope (node) == -1) { ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("(be_visitor_exception_cdr_op_cs::") ACE_TEXT ("visit_exception - ") ACE_TEXT ("codegen for scope failed\n")), -1); } TAO_OutStream *os = this->ctx_->stream (); *os << be_nl_2 << "// TAO_IDL - Generated from" << be_nl << "// " << __FILE__ << ":" << __LINE__; *os << be_global->core_versioning_begin () << be_nl; // Set the sub state as generating code for the output operator. this->ctx_->sub_state (TAO_CodeGen::TAO_CDR_OUTPUT); *os << be_nl_2 << "::CORBA::Boolean operator<< (" << be_idt << be_idt_nl << "TAO_OutputCDR &strm," << be_nl << "const " << node->name () << " &_tao_aggregate)" << be_uidt << be_uidt_nl << "{" << be_idt_nl; // Do we have any members? if (node->nmembers () > 0) { be_visitor_context new_ctx (*this->ctx_); be_visitor_cdr_op_field_decl field_decl (&new_ctx); if (field_decl.visit_scope (node) == -1) { ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("be_visitor_exception_cdr_op_cs::") ACE_TEXT ("visit_exception - ") ACE_TEXT ("codegen for field decl scope failed\n")), -1); } // some members *os << "// First marshal the repository ID." << be_nl << "if (strm << _tao_aggregate._rep_id ())" << be_idt_nl << "{" << be_idt_nl << "// Now marshal the members (if any)." << be_nl << "return (" << be_idt_nl; if (this->visit_scope (node) == -1) { ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("be_visitor_exception_cdr_op_cs::") ACE_TEXT ("visit_exception - ") ACE_TEXT ("codegen for scope failed\n")), -1); } *os << be_uidt_nl << " );" << be_uidt_nl << "}" << be_uidt_nl << "else" << be_idt_nl << "{" << be_idt_nl << "return false;" << be_uidt_nl << "}" << be_uidt << be_uidt_nl; } else { // No members. *os << "// Marshal the repository ID." << be_nl << "return (strm << _tao_aggregate._rep_id ());" << be_uidt_nl; } *os << "}" << be_nl_2; // Set the substate as generating code for the input operator. this->ctx_->sub_state(TAO_CodeGen::TAO_CDR_INPUT); *os << "::CORBA::Boolean operator>> (" << be_idt << be_idt_nl << "TAO_InputCDR &"; if (node->nmembers () > 0) { *os << "strm," << be_nl << node->name () << " &_tao_aggregate)" << be_uidt << be_uidt_nl; } else { *os << "," << be_nl << node->name () << "&)" << be_uidt << be_uidt_nl; } *os << "{" << be_idt_nl; // WARNING: This method is not symmetric with respect to the // encoding function! // Exceptions are strange.... the repository ID is retrieved by the // caller, and they invoke this method only to demarshal the // members. While the marshaling method encodes both... // Do we have any members? if (node->nmembers () > 0) { be_visitor_context new_ctx (*this->ctx_); be_visitor_cdr_op_field_decl field_decl (&new_ctx); if (field_decl.visit_scope (node) == -1) { ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("be_visitor_exception_cdr_op_cs::") ACE_TEXT ("visit_exception - ") ACE_TEXT ("codegen for field decl failed\n")), -1); } // Some members. *os << "// Demarshal the members." << be_nl << "return (" << be_idt_nl; if (this->visit_scope (node) == -1) { ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("be_visitor_exception_cdr_op_cs::") ACE_TEXT ("visit_exception - ") ACE_TEXT ("codegen for scope failed\n")), -1); } *os << be_uidt_nl << ");" << be_uidt_nl; } else { *os << "return true;" << be_uidt_nl; } *os << "}" << be_nl; if (be_global->gen_ostream_operators ()) { node->gen_ostream_operator (os, false); } *os << be_global->core_versioning_end () << be_nl; node->cli_stub_cdr_op_gen (1); return 0; }
void GrowWindow::open( ifstream& fp) { int type; int end_found = 0; char dummy[40]; int tmp; for (;;) { if ( !fp.good()) { fp.clear(); fp.getline( dummy, sizeof(dummy)); printf( "** Read error GrowWindow: \"%d %s\"\n", type, dummy); } fp >> type; switch( type) { case glow_eSave_GrowWindow: break; case glow_eSave_GrowWindow_file_name: fp >> file_name; break; case glow_eSave_GrowWindow_scrollbar_width: fp >> scrollbar_width; break; case glow_eSave_GrowWindow_scrollbar_color: fp >> tmp; scrollbar_color = (glow_eDrawType)tmp; break; case glow_eSave_GrowWindow_scrollbar_bg_color: fp >> tmp; scrollbar_bg_color = (glow_eDrawType)tmp; break; case glow_eSave_GrowWindow_vertical_scrollbar: fp >> vertical_scrollbar; break; case glow_eSave_GrowWindow_horizontal_scrollbar: fp >> horizontal_scrollbar; break; case glow_eSave_GrowWindow_window_scale: fp >> window_scale; break; case glow_eSave_GrowWindow_owner: fp.get(); fp.getline( owner, sizeof(owner)); break; case glow_eSave_GrowWindow_rect_part: GrowRect::open( fp); break; case glow_eSave_GrowWindow_userdata_cb: if ( ctx->userdata_open_callback) (ctx->userdata_open_callback)(&fp, this, glow_eUserdataCbType_Node); break; case glow_eSave_End: end_found = 1; break; default: cout << "GrowWindow:open syntax error" << endl; fp.getline( dummy, sizeof(dummy)); } if ( end_found) break; } if ( strcmp( file_name, "") != 0) new_ctx(); configure_scrollbars(); }