• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/gsoap/source_build_platform/gsoap/plugin/

Lines Matching refs:soap

130 wsa plugin should be registered with the currenct soap struct context. An
136 soap_register_plugin(soap, soap_wsa);
138 soap_wsa_request(soap, RequestMessageID, ToAddress, RequestAction);
139 soap_wsa_add_From(soap, FromAddress); // optional: add a 'From' address
141 if (soap_call_ns__example(soap, ToAddress, NULL, ...))
142 soap_print_fault(soap, stderr); // an error occurred
156 soap_register_plugin(soap, soap_wsa);
158 soap_wsa_request(soap, RequestMessageID, ToAddress, RequestAction);
159 soap_wsa_add_From(soap, FromAddress); // optional: add a 'From' address
160 soap_wsa_add_ReplyTo(soap, ReplyToAddress);
162 if (soap_call_ns__example(soap, ToAddress, NULL, ...))
164 if (soap->error == 202) // HTTP ACCEPTED
167 soap_print_fault(soap, stderr); // an error occurred
185 soap_register_plugin(soap, soap_wsa);
187 soap_wsa_request(soap, RequestMessageID, ToAddress, RequestAction);
188 soap_wsa_add_From(soap, FromAddress); // optional: add a 'From' address
189 soap_wsa_add_FaultTo(soap, FaultToAddress);
191 if (soap_call_ns__example(soap, ToAddress, NULL, ...))
193 if (soap->error == 202) // HTTP ACCEPTED
196 soap_print_fault(soap, stderr); // a connection error occurred
208 SOAP and HTTP errors set the soap->error attribute, as shown in this example:
210 if (soap_call_ns__example(soap, ToAddress, NULL, ...))
212 if (soap->error == 202) // HTTP ACCEPTED
215 soap_print_fault(soap, stderr); // a connection error occurred
224 if (soap_wsa_check_fault(soap, &fault))
242 if (soap_wsa_check_fault(soap, &fault, &info))
258 soap_register_plugin(soap, soap_wsa);
275 int ns__example(struct soap *soap, char *in, struct ns__exampleResponse *out)
276 { if (soap_wsa_check(soap))
277 return soap->error;
279 return soap_wsa_reply(soap, ResponseMessageID, ResponseAction);
292 int ns__example(struct soap *soap, char *in, struct ns__exampleResponse *out)
293 { if (soap_wsa_check(soap))
294 return soap->error;
297 return soap_wsa_sender_fault(soap, "Exception in service operation", NULL);
299 return soap_wsa_reply(soap, ResponseMessageID, ResponseAction);
334 int ns__exampleResponse(struct soap *soap, char *out)
335 { if (soap_wsa_check(soap))
336 return soap_send_empty_response(soap, 500); // HTTP 500 Internal Server Error
338 return soap_send_empty_response(soap, SOAP_OK); // HTTP 202 ACCEPTED
380 int SOAP_ENV__Fault(struct soap *soap, char *faultcode, char *faultstring, char *faultactor, struct SOAP_ENV__Detail *detail, struct SOAP_ENV__Code *SOAP_ENV__Code, struct SOAP_ENV__Reason *SOAP_ENV__Reason, char *SOAP_ENV__Node, char *SOAP_ENV__Role, struct SOAP_ENV__Detail *SOAP_ENV__Detail)
426 const char *soap_wsa_faultAction = "http://www.w3.org/2005/08/addressing/soap/fault";
441 static int soap_wsa_fault_subcode(struct soap *soap, int flag, const char *faultsubcode, const char *faultstring, const char *faultdetail);
443 static int soap_wsa_init(struct soap *soap, struct soap_wsa_data *data);
444 static void soap_wsa_delete(struct soap *soap, struct soap_plugin *p);
446 static int soap_wsa_header(struct soap *soap);
447 static void soap_wsa_set_error(struct soap *soap, const char **c, const char **s);
448 static int soap_wsa_response(struct soap *soap, int status, size_t count);
450 static int soap_wsa_alloc_header(struct soap *soap);
459 @fn int soap_wsa_request(struct soap *soap, const char *id, const char *to, const char *action)
462 @param soap
473 soap_wsa_request(struct soap *soap, const char *id, const char *to, const char *action)
474 { soap_wsa_alloc_header(soap);
475 soap_default_SOAP_ENV__Header(soap, soap->header);
476 soap->header->SOAP_WSA(MessageID) = soap_strdup(soap, id);
477 soap->header->SOAP_WSA(To) = soap_strdup(soap, to);
478 soap->header->SOAP_WSA(Action) = soap_strdup(soap, action);
483 @fn int soap_wsa_add_From(struct soap *soap, const char *from)
485 @param soap context
492 soap_wsa_add_From(struct soap *soap, const char *from)
493 { if (!soap->header)
495 soap->header->SOAP_WSA(From) = (SOAP_WSA_(,From)*)soap_malloc(soap, sizeof(SOAP_WSA_(,From)));
496 SOAP_WSA_(soap_default,EndpointReferenceType)(soap, soap->header->SOAP_WSA(From));
497 soap->header->SOAP_WSA(From)->Address = soap_strdup(soap, from);
502 @fn int soap_wsa_add_NoReply(struct soap *soap)
504 @param soap context
512 soap_wsa_add_NoReply(struct soap *soap)
513 { return soap_wsa_add_ReplyTo(soap, soap_wsa_noneURI);
517 @fn int soap_wsa_add_ReplyTo(struct soap *soap, const char *replyTo)
519 @param soap context
526 soap_wsa_add_ReplyTo(struct soap *soap, const char *replyTo)
527 { if (!soap->header)
530 { soap->header->SOAP_WSA(ReplyTo) = (SOAP_WSA_(,ReplyTo)*)soap_malloc(soap, sizeof(SOAP_WSA_(,ReplyTo)));
531 SOAP_WSA_(soap_default,EndpointReferenceType)(soap, soap->header->SOAP_WSA(ReplyTo));
532 soap->header->SOAP_WSA(ReplyTo)->Address = soap_strdup(soap, replyTo);
538 @fn int soap_wsa_add_FaultTo(struct soap *soap, const char *faultTo)
540 @param soap context
547 soap_wsa_add_FaultTo(struct soap *soap, const char *faultTo)
548 { if (!soap->header)
551 { soap->header->SOAP_WSA(FaultTo) = (SOAP_WSA_(,FaultTo)*)soap_malloc(soap, sizeof(SOAP_WSA_(,FaultTo)));
552 SOAP_WSA_(soap_default,EndpointReferenceType)(soap, soap->header->SOAP_WSA(FaultTo));
553 soap->header->SOAP_WSA(FaultTo)->Address = soap_strdup(soap, faultTo);
565 @fn int soap_wsa_check(struct soap *soap)
567 @param soap context
571 soap_wsa_check(struct soap *soap)
572 { if (!soap->header || !soap->header->SOAP_WSA(To) || !soap->header->SOAP_WSA(Action))
574 return soap_wsa_error(soap, wsa5__MessageAddressingHeaderRequired, NULL);
576 return soap_wsa_error(soap, "WS-Addressing header missing");
578 return soap_wsa_error(soap, SOAP_WSA(MessageInformationHeaderRequired));
590 @fn int soap_wsa_reply(struct soap *soap, const char *id, const char *action)
592 @param soap context
598 soap_wsa_reply(struct soap *soap, const char *id, const char *action)
599 { struct soap_wsa_data *data = (struct soap_wsa_data*)soap_lookup_plugin(soap, soap_wsa_id);
604 oldheader = soap->header;
605 soap->header = NULL;
608 return soap_send_empty_response(soap, SOAP_OK);
610 soap_wsa_alloc_header(soap);
611 newheader = soap->header;
612 soap_default_SOAP_ENV__Header(soap, newheader);
615 { newheader->SOAP_WSA(RelatesTo) = (SOAP_WSA_(,RelatesTo)*)soap_malloc(soap, sizeof(SOAP_WSA_(,RelatesTo)));
616 SOAP_WSA_(soap_default_,RelatesTo)(soap, newheader->SOAP_WSA(RelatesTo));
619 newheader->SOAP_WSA(MessageID) = soap_strdup(soap, id);
620 newheader->SOAP_WSA(Action) = soap_strdup(soap, action);
625 { struct soap *reply_soap = soap_copy(soap);
627 { soap_copy_stream(reply_soap, soap);
629 soap->socket = SOAP_INVALID_SOCKET; /* prevents close */
630 if (soap_connect(soap, newheader->SOAP_WSA(To), newheader->SOAP_WSA(Action)))
632 soap_copy_stream(soap, reply_soap);
634 err = soap_wsa_error(soap, SOAP_WSA(DestinationUnreachable), newheader->SOAP_WSA(To));
636 err = soap_wsa_error(soap, "WS-Addessing destination unreachable");
638 err = soap_wsa_error(soap, SOAP_WSA(DestinationUnreachable));
643 soap->header = NULL;
650 data->fresponse = soap->fresponse;
651 soap->fresponse = soap_wsa_response; /* response will be a POST */
659 soap->header = newheader;
670 @fn int soap_wsa_fault_subcode(struct soap *soap, int flag, const char *faultsubcode, const char *faultstring, const char *faultdetail)
672 @param soap context
680 soap_wsa_fault_subcode(struct soap *soap, int flag, const char *faultsubcode, const char *faultstring, const char *faultdetail)
681 { struct soap_wsa_data *data = (struct soap_wsa_data*)soap_lookup_plugin(soap, soap_wsa_id);
686 oldheader = soap->header;
687 soap->header = NULL;
689 soap_wsa_alloc_header(soap);
690 newheader = soap->header;
691 soap_default_SOAP_ENV__Header(soap, newheader);
694 { newheader->SOAP_WSA(RelatesTo) = (SOAP_WSA_(,RelatesTo)*)soap_malloc(soap, sizeof(SOAP_WSA_(,RelatesTo)));
695 SOAP_WSA_(soap_default_,RelatesTo)(soap, newheader->SOAP_WSA(RelatesTo));
704 { soap->keep_alive = 0;
705 soap_send_empty_response(soap, SOAP_OK); /* HTTP ACCEPTED */
706 if (soap_connect(soap, newheader->SOAP_WSA(To), newheader->SOAP_WSA(Action)))
708 soap_set_endpoint(soap, newheader->SOAP_WSA(To));
709 soap->action = newheader->SOAP_WSA(Action);
710 data->fresponse = soap->fresponse;
711 soap->fresponse = soap_wsa_response; /* response will be a POST */
718 soap->header = newheader;
720 return soap_sender_fault_subcode(soap, faultsubcode, faultstring, faultdetail);
721 return soap_receiver_fault_subcode(soap, faultsubcode, faultstring, faultdetail);
725 @fn int soap_wsa_sender_fault_subcode(struct soap *soap, const char *faultsubcode, const char *faultstring, const char *faultdetail)
727 @param soap context
734 soap_wsa_sender_fault_subcode(struct soap *soap, const char *faultsubcode, const char *faultstring, const char *faultdetail)
735 { return soap_wsa_fault_subcode(soap, 1, faultsubcode, faultstring, faultdetail);
739 @fn int soap_wsa_receiver_fault_subcode(struct soap *soap, const char *faultsubcode, const char *faultstring, const char *faultdetail)
741 @param soap context
748 soap_wsa_receiver_fault_subcode(struct soap *soap, const char *faultsubcode, const char *faultstring, const char *faultdetail)
749 { return soap_wsa_fault_subcode(soap, 0, faultsubcode, faultstring, faultdetail);
753 @fn int soap_wsa_sender_fault(struct soap *soap, const char *faultstring, const char *faultdetail)
755 @param soap context
761 soap_wsa_sender_fault(struct soap *soap, const char *faultstring, const char *faultdetail)
762 { return soap_wsa_fault_subcode(soap, 1, NULL, faultstring, faultdetail);
766 @fn int soap_wsa_receiver_fault(struct soap *soap, const char *faultstring, const char *faultdetail)
768 @param soap context
774 soap_wsa_receiver_fault(struct soap *soap, const char *faultstring, const char *faultdetail)
775 { return soap_wsa_fault_subcode(soap, 0, NULL, faultstring, faultdetail);
786 @fn int soap_wsa_check_fault(struct soap *soap, SOAP_WSA(FaultCodesType) *fault, char **info)
788 @param soap context
794 soap_wsa_check_fault(struct soap *soap, SOAP_WSA(FaultCodesType) *fault, char **info)
795 { if (soap->error && soap->fault && soap->fault->SOAP_ENV__Code)
796 { const char *code = *soap_faultsubcode(soap);
798 { SOAP_WSA__(soap_s2,FaultCodesType)(soap, code, fault);
802 if (soap->fault->detail)
803 detail = soap->fault->detail;
805 detail = soap->fault->SOAP_ENV__Detail;
820 return soap->error;
827 soap_wsa_check_fault(struct soap *soap, char **fault)
830 if (soap->error && soap->fault)
831 { if (soap->fault->detail)
832 detail = soap->fault->detail;
834 detail = soap->fault->SOAP_ENV__Detail;
839 return soap->error;
845 @fn int soap_wsa_check_fault(struct soap *soap, SOAP_WSA(FaultSubcodeValues) *fault)
847 @param soap context
852 soap_wsa_check_fault(struct soap *soap, SOAP_WSA(FaultSubcodeValues) *fault)
853 { if (soap->error && soap->fault && soap->fault->SOAP_ENV__Code)
854 { const char *code = *soap_faultsubcode(soap);
856 { SOAP_WSA__(soap_s2,FaultSubcodeValues)(soap, code, fault);
857 return soap->error;
866 @fn int soap_wsa_error(struct soap *soap, SOAP_WSA(FaultCodesType) fault, const char *info)
868 @param soap context
874 soap_wsa_error(struct soap *soap, SOAP_WSA(FaultCodesType) fault, const char *info)
875 { const char *code = SOAP_WSA_(soap,FaultCodesType2s)(soap, fault);
879 soap_wsa_sender_fault_subcode(soap, code, "A header representing a Message Addressing Property is not valid and the message cannot be processed.", NULL);
880 soap_faultdetail(soap);
881 if (soap->version == 1)
882 { soap->fault->detail->__type = SOAP_WSA_(SOAP_TYPE_,ProblemHeaderQName);
883 soap->fault->detail->fault = (void*)info;
886 { soap->fault->SOAP_ENV__Detail->__type = SOAP_WSA_(SOAP_TYPE_,ProblemHeaderQName);
887 soap->fault->SOAP_ENV__Detail->fault = (void*)info;
891 soap_wsa_sender_fault_subcode(soap, code, "Invalid address.", NULL);
894 soap_wsa_sender_fault_subcode(soap, code, "Invalid EPR.", NULL);
897 soap_wsa_sender_fault_subcode(soap, code, "Invalid cardinality of headers.", NULL);
900 soap_wsa_sender_fault_subcode(soap, code, "Missing EPR address.", NULL);
903 soap_wsa_sender_fault_subcode(soap, code, "Message contains the message ID of a message already received.", NULL);
906 soap_wsa_sender_fault_subcode(soap, code, "Action and SOAP action of the message do not match.", NULL);
909 soap_wsa_sender_fault_subcode(soap, code, "A required header representing a Message Addressing Property is not present.", NULL);
910 soap_faultdetail(soap);
911 if (soap->version == 1)
912 { soap->fault->detail->__type = SOAP_WSA_(SOAP_TYPE_,ProblemHeaderQName);
913 soap->fault->detail->fault = (void*)info;
916 { soap->fault->SOAP_ENV__Detail->__type = SOAP_WSA_(SOAP_TYPE_,ProblemHeaderQName);
917 soap->fault->SOAP_ENV__Detail->fault = (void*)info;
921 soap_wsa_sender_fault_subcode(soap, code, "No route can be determined to reach [destination]", NULL);
922 soap_faultdetail(soap);
923 if (soap->version == 1)
924 { soap->fault->detail->__type = SOAP_WSA_(SOAP_TYPE_,ProblemIRI);
925 soap->fault->detail->fault = (void*)info;
928 { soap->fault->SOAP_ENV__Detail->__type = SOAP_WSA_(SOAP_TYPE_,ProblemIRI);
929 soap->fault->SOAP_ENV__Detail->fault = (void*)info;
933 soap_wsa_sender_fault_subcode(soap, code, "The [action] cannot be processed at the receiver.", NULL);
934 soap_faultdetail(soap);
935 if (soap->version == 1)
936 { soap->fault->detail->__type = SOAP_WSA_(SOAP_TYPE_,ProblemAction);
937 soap->fault->detail->fault = (void*)soap_malloc(soap, sizeof(SOAP_WSA_(,ProblemAction)));
938 SOAP_WSA_(soap_default_,ProblemAction)(soap, (SOAP_WSA_(,ProblemAction)*)soap->fault->detail->fault);
939 ((SOAP_WSA_(,ProblemAction)*)soap->fault->detail->fault)->Action = (char*)info;
942 { soap->fault->SOAP_ENV__Detail->__type = SOAP_WSA_(SOAP_TYPE_,ProblemAction);
943 soap->fault->SOAP_ENV__Detail->fault = (void*)soap_malloc(soap, sizeof(SOAP_WSA_(,ProblemAction)));
944 SOAP_WSA_(soap_default_,ProblemAction)(soap, (SOAP_WSA_(,ProblemAction)*)soap->fault->SOAP_ENV__Detail->fault);
945 ((SOAP_WSA_(,ProblemAction)*)soap->fault->SOAP_ENV__Detail->fault)->Action = (char*)info;
949 soap_wsa_receiver_fault_subcode(soap, code, "The endpoint is unable to process the message at this time.", NULL);
950 soap_faultdetail(soap);
951 if (soap->version == 1)
952 { soap->fault->detail->__type = SOAP_WSA_(SOAP_TYPE_,ProblemIRI);
953 soap->fault->detail->fault = (void*)info;
956 { soap->fault->SOAP_ENV__Detail->__type = SOAP_WSA_(SOAP_TYPE_,ProblemIRI);
957 soap->fault->SOAP_ENV__Detail->fault = (void*)info;
967 soap_wsa_error(struct soap *soap, const char *fault)
968 { return soap_wsa_sender_fault_subcode(soap, NULL, fault, NULL);
972 @fn int soap_wsa_error(struct soap *soap, SOAP_WSA(FaultSubcodeValues) fault)
974 @param soap context
979 soap_wsa_error(struct soap *soap, SOAP_WSA(FaultSubcodeValues) fault)
980 { const char *code = SOAP_WSA_(soap,FaultSubcodeValues2s)(soap, fault);
984 return soap_wsa_sender_fault_subcode(soap, code, "A message information header is not valid and the message cannot be processed. The validity failure can be either structural or semantic, e.g. a [destination] that is not a URI or a [relationship] to a [message id] that was never issued.", "Invalid header");
986 return soap_wsa_sender_fault_subcode(soap, code, "A required message information header, To, MessageID, or Action, is not present.", "Missing Header QName");
988 return soap_wsa_sender_fault_subcode(soap, code, "No route can be determined to reach the destination role defined by the WS-Addressing To.", NULL);
990 return soap_wsa_sender_fault_subcode(soap, code, "The [action] cannot be processed at the receiver.", soap->action);
992 return soap_wsa_receiver_fault_subcode(soap, code, "The endpoint is unable to process the message at this time.", NULL);
1007 @fn int soap_wsa(struct soap *soap, struct soap_plugin *p, void *arg)
1009 @param soap context
1015 soap_wsa(struct soap *soap, struct soap_plugin *p, void *arg)
1018 p->data = (void*)SOAP_MALLOC(soap, sizeof(struct soap_wsa_data));
1022 { if (soap_wsa_init(soap, (struct soap_wsa_data*)p->data))
1023 { SOAP_FREE(soap, p->data);
1031 @fn int soap_wsa_init(struct soap *soap, struct soap_wsa_data *data)
1033 @param soap context
1038 soap_wsa_init(struct soap *soap, struct soap_wsa_data *data)
1040 data->fheader = soap->fheader;
1041 data->fseterror = soap->fseterror;
1042 soap->fheader = soap_wsa_header;
1043 soap->fseterror = soap_wsa_set_error;
1048 @fn void soap_wsa_delete(struct soap *soap, struct soap_plugin *p)
1050 @param soap context
1055 soap_wsa_delete(struct soap *soap, struct soap_plugin *p)
1057 SOAP_FREE(soap, p->data);
1067 @fn int soap_wsa_header(struct soap *soap)
1069 @param soap context
1076 soap_wsa_header(struct soap *soap)
1077 { struct soap_wsa_data *data = (struct soap_wsa_data*)soap_lookup_plugin(soap, soap_wsa_id);
1081 if (data->fheader && data->fheader(soap))
1082 return soap->error;
1083 if (soap->header && soap->header->SOAP_WSA(Action))
1084 soap->action = soap->header->SOAP_WSA(Action);
1089 @fn void soap_wsa_set_error(struct soap *soap, const char **c, const char **s)
1091 @param soap context
1096 soap_wsa_set_error(struct soap *soap, const char **c, const char **s)
1097 { struct soap_wsa_data *data = (struct soap_wsa_data*)soap_lookup_plugin(soap, soap_wsa_id);
1102 data->fseterror(soap, c, s);
1103 if (soap->error == SOAP_NO_METHOD)
1106 soap->error = soap_wsa_error(soap, SOAP_WSA(ActionNotSupported), soap->action);
1108 soap->error = soap_wsa_error(soap, "Action not supported");
1110 soap->error = soap_wsa_error(soap, SOAP_WSA(ActionNotSupported));
1116 @fn int soap_wsa_response(struct soap *soap, int status, size_t count)
1118 @param soap context
1123 soap_wsa_response(struct soap *soap, int status, size_t count)
1124 { struct soap_wsa_data *data = (struct soap_wsa_data*)soap_lookup_plugin(soap, soap_wsa_id);
1128 soap->fresponse = data->fresponse; /* reset (HTTP response) */
1129 return soap->fpost(soap, soap_strdup(soap, soap->endpoint), soap->host, soap->port, soap->path, soap->action, count);
1139 @fn int soap_wsa_alloc_header(struct soap *soap)
1141 @param soap context
1145 soap_wsa_alloc_header(struct soap *soap)
1146 { soap_header(soap);