int outbound_control_header_filter(SoapOpH opHandle, void *data, void *opaqueData) { op_t *op = (op_t *)opHandle; WsmanMessage *msg = wsman_get_msg_from_op(opHandle); if(check_envelope_size(op->out_doc, op->maxsize, msg->charset)) { debug("****should not go here"); generate_op_fault(op, WSMAN_ENCODING_LIMIT, WSMAN_DETAIL_SERVICE_ENVELOPE_LIMIT); } return 0; }
int Redirect_transfer_action ( SoapOpH op, void* appData, void *opaqueData) { //Same function to be called for Get, Put, Create, Delete Actions WsmanMessage *msg = wsman_get_msg_from_op(op); SoapH soap = soap_get_op_soap(op); WsXmlDocH in_doc = soap_get_op_doc(op, 1); WsContextH cntx = ws_create_ep_context(soap, in_doc); WsManClient *cl=NULL; WsXmlDocH response=NULL; debug ("Test Get Endpoint Called"); cl = setup_redirect_client(cntx, msg->auth_data.username, msg->auth_data.password ); wsman_send_request(cl,cntx->indoc); if (wsmc_get_last_error(cl) != WS_LASTERR_OK ){ //CURL/ HTTP errors soap_set_op_doc(op, redirect_generate_fault( cntx->indoc , cl), 0); return 1; } response = wsmc_build_envelope_from_response(cl); soap_set_op_doc(op, ws_xml_duplicate_doc(response), 0); wsmc_release(cl); return 0; }