320 lines
11 KiB
C
320 lines
11 KiB
C
/*******************************************************************************
|
|
* Copyright (C) 2004-2006 Intel Corp. All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are met:
|
|
*
|
|
* - Redistributions of source code must retain the above copyright notice,
|
|
* this list of conditions and the following disclaimer.
|
|
*
|
|
* - Redistributions in binary form must reproduce the above copyright notice,
|
|
* this list of conditions and the following disclaimer in the documentation
|
|
* and/or other materials provided with the distribution.
|
|
*
|
|
* - Neither the name of Intel Corp. nor the names of its
|
|
* contributors may be used to endorse or promote products derived from this
|
|
* software without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL Intel Corp. OR THE CONTRIBUTORS
|
|
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*******************************************************************************/
|
|
|
|
/**
|
|
* @author Anas Nashif
|
|
*/
|
|
|
|
#ifndef WSMAN_FAULTS_H_
|
|
#define WSMAN_FAULTS_H_
|
|
|
|
#define FAULT_SENDER_CODE "Sender"
|
|
#define FAULT_MUSTUNDERSTAND_CODE "MustUnderstand"
|
|
#define FAULT_RECEIVER_CODE "Receiver"
|
|
#define FAULT_SENDER_CODE_NS "s:Sender"
|
|
#define FAULT_RECEIVER_CODE_NS "s:Receiver"
|
|
#define FAULT_MUSTUNDERSTAND_CODE_NS "s:MustUnderstand"
|
|
|
|
enum __WsmanFaultCodeType
|
|
{
|
|
WSMAN_RC_OK = 0,
|
|
WSMAN_ACCESS_DENIED,
|
|
|
|
/** wsa:ActionNotSupported */
|
|
WSA_ACTION_NOT_SUPPORTED,
|
|
|
|
WSMAN_ALREADY_EXISTS,
|
|
/** wsen:CannotProcessFilter */
|
|
WSEN_CANNOT_PROCESS_FILTER,
|
|
|
|
WSMAN_CANNOT_PROCESS_FILTER,
|
|
WSMAN_CONCURRENCY,
|
|
/**wse:DeliveryModeRequestedUnavailable */
|
|
WSE_DELIVERY_MODE_REQUESTED_UNAVAILABLE,
|
|
|
|
WSMAN_DELIVERY_REFUSED,
|
|
/** wsa:DestinationUnreachable */
|
|
WSA_DESTINATION_UNREACHABLE,
|
|
|
|
WSMAN_ENCODING_LIMIT,
|
|
/** wsa:EndpointUnavailable */
|
|
WSA_ENDPOINT_UNAVAILABLE,
|
|
|
|
WSMAN_EVENT_DELIVER_TO_UNUSABLE,
|
|
|
|
/** wse:EventSourceUnableToProcess*/
|
|
WSE_EVENT_SOURCE_UNABLE_TO_PROCESS,
|
|
|
|
/** wsen:FilterDialectRequestedUnavailable */
|
|
WSEN_FILTER_DIALECT_REQUESTED_UNAVAILABLE,
|
|
|
|
/** wse:FilteringNotSupported */
|
|
WSE_FILTERING_NOT_SUPPORTED,
|
|
/** wsen:FilteringNotSupported */
|
|
WSEN_FILTERING_NOT_SUPPORTED,
|
|
/** wse:FilteringRequestedUnavailable */
|
|
WSE_FILTERING_REQUESTED_UNAVAILABLE,
|
|
|
|
WSMAN_FRAGMENT_DIALECT_NOT_SUPPORTED,
|
|
WSMAN_INTERNAL_ERROR,
|
|
WSMAN_INVALID_BOOKMARK,
|
|
|
|
// WSEN
|
|
WSEN_INVALID_ENUMERATION_CONTEXT,
|
|
|
|
/** wse:InvalidExpirationTime */
|
|
WSE_INVALID_EXPIRATION_TIME,
|
|
|
|
/** wsen:InvalidExpirationTime */
|
|
WSEN_INVALID_EXPIRATION_TIME,
|
|
/** wse:InvalidMessage */
|
|
WSE_INVALID_MESSAGE,
|
|
|
|
/** wsa:InvalidMessageInformationHeader */
|
|
WSA_INVALID_MESSAGE_INFORMATION_HEADER,
|
|
|
|
|
|
WSMAN_INVALID_OPTIONS,
|
|
WSMAN_INVALID_PARAMETER,
|
|
// WS-Transfer
|
|
WXF_INVALID_REPRESENTATION,
|
|
|
|
WSMAN_INVALID_SELECTORS,
|
|
/** wsa:MessageInformationHeaderRequired */
|
|
WSA_MESSAGE_INFORMATION_HEADER_REQUIRED,
|
|
|
|
WSMAN_NO_ACK,
|
|
WSMAN_QUOTA_LIMIT,
|
|
WSMAN_SCHEMA_VALIDATION_ERROR,
|
|
|
|
/** wsen:TimedOut */
|
|
WSEN_TIMED_OUT,
|
|
WSMAN_TIMED_OUT,
|
|
|
|
/** wse:UnableToRenew */
|
|
WSE_UNABLE_TO_RENEW,
|
|
|
|
/** wse:UnsupportedExpirationType */
|
|
WSE_UNSUPPORTED_EXPIRATION_TYPE,
|
|
|
|
/** wsen:UnsupportedExpirationType */
|
|
WSEN_UNSUPPORTED_EXPIRATION_TYPE,
|
|
|
|
WSMAN_UNSUPPORTED_FEATURE,
|
|
|
|
// SOAP
|
|
SOAP_FAULT_VERSION_MISMATCH,
|
|
// MustUnderstand
|
|
SOAP_FAULT_MUSTUNDERSTAND,
|
|
|
|
// wsmb:PolymorphismModeNotSupported
|
|
WSMB_POLYMORPHISM_MODE_NOT_SUPPORTED,
|
|
|
|
WSMAN_UNKNOWN
|
|
};
|
|
typedef enum __WsmanFaultCodeType WsmanFaultCodeType;
|
|
|
|
enum __WsmanFaultDetailType
|
|
{
|
|
WSMAN_DETAIL_OK = 0,
|
|
WSMAN_DETAIL_ACK,
|
|
WSMAN_DETAIL_ACTION_MISMATCH,
|
|
WSMAN_DETAIL_ALREADY_EXISTS,
|
|
WSMAN_DETAIL_AMBIGUOUS_SELECTORS,
|
|
WSMAN_DETAIL_ASYNCHRONOUS_REQUEST,
|
|
WSMAN_DETAIL_ADDRESSING_MODE,
|
|
WSMAN_DETAIL_AUTHERIZATION_MODE,
|
|
WSMAN_DETAIL_BOOKMARKS,
|
|
WSMAN_DETAIL_CHARECHTER_SET,
|
|
WSMAN_DETAIL_DELIVERY_RETRIES,
|
|
WSMAN_DETAIL_DUPLICATE_SELECTORS,
|
|
WSMAN_DETAIL_ENCODING_TYPE,
|
|
WSMAN_DETAIL_ENUMERATION_MODE,
|
|
WSMAN_DETAIL_EXPIRATION_TIME,
|
|
WSMAN_DETAIL_EXPIRED,
|
|
WSMAN_DETAIL_FILTERING_REQUIRED,
|
|
WSMAN_DETAIL_FORMAT_MISMATCH,
|
|
WSMAN_DETAIL_FORMAT_SECURITY_TOKEN,
|
|
WSMAN_DETAIL_FRAGMENT_LEVEL_ACCESS,
|
|
WSMAN_DETAIL_HEARTBEATS,
|
|
WSMAN_DETAIL_INSECURE_ADDRESS,
|
|
WSMAN_DETAIL_INSUFFICIENT_SELECTORS,
|
|
WSMAN_DETAIL_INVALID,
|
|
WSMAN_DETAIL_INVALID_ADDRESS,
|
|
WSMAN_DETAIL_INVALID_FORMAT,
|
|
WSMAN_DETAIL_INVALID_FRAGMENT,
|
|
WSMAN_DETAIL_INVALID_NAME,
|
|
WSMAN_DETAIL_INVALID_NAMESPACE,
|
|
WSMAN_DETAIL_INVALID_RESOURCEURI,
|
|
WSMAN_DETAIL_INVALID_SELECTOR_ASSIGNMENT,
|
|
WSMAN_DETAIL_INVALID_SYSTEM,
|
|
WSMAN_DETAIL_INVALID_TIMEOUT,
|
|
WSMAN_DETAIL_INVALID_VALUE,
|
|
WSMAN_DETAIL_INVALID_VALUES,
|
|
WSMAN_DETAIL_LOCALE,
|
|
WSMAN_DETAIL_MAX_ELEMENTS,
|
|
WSMAN_DETAIL_MAX_ENVELOPE_POLICY,
|
|
WSMAN_DETAIL_MAX_ENVELOPE_SIZE,
|
|
WSMAN_DETAIL_MAX_TIME,
|
|
WSMAN_DETAIL_MINIMUM_ENVELOPE_LIMIT,
|
|
WSMAN_DETAIL_MISSING_VALUES,
|
|
WSMAN_DETAIL_NOT_SUPPORTED,
|
|
WSMAN_DETAIL_OPERATION_TIMEOUT,
|
|
WSMAN_DETAIL_OPTION_LIMIT,
|
|
WSMAN_DETAIL_OPTION_SET,
|
|
WSMAN_DETAIL_READ_ONLY,
|
|
WSMAN_DETAIL_RESOURCE_OFFLINE,
|
|
WSMAN_DETAIL_RENAME,
|
|
WSMAN_DETAIL_SELECTOR_LIMIT,
|
|
WSMAN_DETAIL_SERVICE_ENVELOPE_LIMIT,
|
|
WSMAN_DETAIL_TARGET_ALREADY_EXISTS,
|
|
WSMAN_DETAIL_TYPE_MISMATCH,
|
|
WSMAN_DETAIL_UNEXPECTED_SELECTORS,
|
|
WSMAN_DETAIL_UNREPORTABLE_SUCCESS,
|
|
WSMAN_DETAIL_UNUSABLE_ADDRESS,
|
|
WSMAN_DETAIL_URI_LIMIT_EXCEEDED,
|
|
WSMAN_DETAIL_WHITESPACE,
|
|
|
|
// WS-Addressing
|
|
WSA_DETAIL_DUPLICATE_MESSAGE_ID,
|
|
|
|
// SOAP
|
|
SOAP_DETAIL_HEADER_NOT_UNDERSTOOD,
|
|
|
|
// WS-Trust
|
|
WST_DETAIL_UNSUPPORTED_TOKENTYPE,
|
|
|
|
// WS_Policy
|
|
WSP_DETAIL_INVALID_EPR,
|
|
|
|
// OpenWSMAN
|
|
OWSMAN_DETAIL_ENDPOINT_ERROR,
|
|
OWSMAN_NO_DETAILS,
|
|
OWSMAN_SYSTEM_ERROR /* keep this as last entry ! */
|
|
};
|
|
typedef enum __WsmanFaultDetailType WsmanFaultDetailType;
|
|
|
|
|
|
typedef enum {
|
|
WSMAN_STATUS_NONE,
|
|
|
|
/* Transport Errors */
|
|
WSMAN_STATUS_CANCELLED = 1,
|
|
WSMAN_STATUS_CANT_RESOLVE,
|
|
WSMAN_STATUS_CANT_RESOLVE_PROXY,
|
|
WSMAN_STATUS_CANT_CONNECT,
|
|
WSMAN_STATUS_CANT_CONNECT_PROXY,
|
|
WSMAN_STATUS_SSL_FAILED,
|
|
WSMAN_STATUS_IO_ERROR,
|
|
WSMAN_STATUS_MALFORMED,
|
|
WSMAN_STATUS_TRY_AGAIN,
|
|
|
|
/* HTTP Status Codes */
|
|
WSMAN_STATUS_CONTINUE = 100,
|
|
WSMAN_STATUS_SWITCHING_PROTOCOLS = 101,
|
|
WSMAN_STATUS_PROCESSING = 102, /* WebDAV */
|
|
|
|
WSMAN_STATUS_OK = 200,
|
|
WSMAN_STATUS_CREATED = 201,
|
|
WSMAN_STATUS_ACCEPTED = 202,
|
|
WSMAN_STATUS_NON_AUTHORITATIVE = 203,
|
|
WSMAN_STATUS_NO_CONTENT = 204,
|
|
WSMAN_STATUS_RESET_CONTENT = 205,
|
|
WSMAN_STATUS_PARTIAL_CONTENT = 206,
|
|
WSMAN_STATUS_MULTI_STATUS = 207, /* WebDAV */
|
|
|
|
WSMAN_STATUS_MULTIPLE_CHOICES = 300,
|
|
WSMAN_STATUS_MOVED_PERMANENTLY = 301,
|
|
WSMAN_STATUS_FOUND = 302,
|
|
WSMAN_STATUS_MOVED_TEMPORARILY = 302, /* RFC 2068 */
|
|
WSMAN_STATUS_SEE_OTHER = 303,
|
|
WSMAN_STATUS_NOT_MODIFIED = 304,
|
|
WSMAN_STATUS_USE_PROXY = 305,
|
|
WSMAN_STATUS_NOT_APPEARING_IN_THIS_PROTOCOL = 306, /* (reserved) */
|
|
WSMAN_STATUS_TEMPORARY_REDIRECT = 307,
|
|
|
|
WSMAN_STATUS_BAD_REQUEST = 400,
|
|
WSMAN_STATUS_UNAUTHORIZED = 401,
|
|
WSMAN_STATUS_PAYMENT_REQUIRED = 402, /* (reserved) */
|
|
WSMAN_STATUS_FORBIDDEN = 403,
|
|
WSMAN_STATUS_NOT_FOUND = 404,
|
|
WSMAN_STATUS_METHOD_NOT_ALLOWED = 405,
|
|
WSMAN_STATUS_NOT_ACCEPTABLE = 406,
|
|
WSMAN_STATUS_PROXY_AUTHENTICATION_REQUIRED = 407,
|
|
WSMAN_STATUS_PROXY_UNAUTHORIZED = WSMAN_STATUS_PROXY_AUTHENTICATION_REQUIRED,
|
|
WSMAN_STATUS_REQUEST_TIMEOUT = 408,
|
|
WSMAN_STATUS_CONFLICT = 409,
|
|
WSMAN_STATUS_GONE = 410,
|
|
WSMAN_STATUS_LENGTH_REQUIRED = 411,
|
|
WSMAN_STATUS_PRECONDITION_FAILED = 412,
|
|
WSMAN_STATUS_REQUEST_ENTITY_TOO_LARGE = 413,
|
|
WSMAN_STATUS_REQUEST_URI_TOO_LONG = 414,
|
|
WSMAN_STATUS_UNSUPPORTED_MEDIA_TYPE = 415,
|
|
WSMAN_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE = 416,
|
|
WSMAN_STATUS_INVALID_RANGE = WSMAN_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE,
|
|
WSMAN_STATUS_EXPECTATION_FAILED = 417,
|
|
WSMAN_STATUS_UNPROCESSABLE_ENTITY = 422, /* WebDAV */
|
|
WSMAN_STATUS_LOCKED = 423, /* WebDAV */
|
|
WSMAN_STATUS_FAILED_DEPENDENCY = 424, /* WebDAV */
|
|
|
|
WSMAN_STATUS_INTERNAL_SERVER_ERROR = 500,
|
|
WSMAN_STATUS_NOT_IMPLEMENTED = 501,
|
|
WSMAN_STATUS_BAD_GATEWAY = 502,
|
|
WSMAN_STATUS_SERVICE_UNAVAILABLE = 503,
|
|
WSMAN_STATUS_GATEWAY_TIMEOUT = 504,
|
|
WSMAN_STATUS_HTTP_VERSION_NOT_SUPPORTED = 505,
|
|
WSMAN_STATUS_INSUFFICIENT_STORAGE = 507, /* WebDAV search */
|
|
WSMAN_STATUS_NOT_EXTENDED = 510 /* RFC 2774 */
|
|
} WsmanKnownStatusCode;
|
|
|
|
|
|
|
|
struct __WsmanFaultCodeTable
|
|
{
|
|
WsmanFaultCodeType fault_code;
|
|
WsmanKnownStatusCode http_code;
|
|
char* fault_action;
|
|
char* subCodeNs;
|
|
char* code;
|
|
char* subCode;
|
|
char* reason;
|
|
};
|
|
typedef struct __WsmanFaultCodeTable WsmanFaultCodeTable;
|
|
|
|
struct __WsmanFaultDetailTable
|
|
{
|
|
WsmanFaultDetailType fault_code;
|
|
char* detail;
|
|
};
|
|
typedef struct __WsmanFaultDetailTable WsmanFaultDetailTable;
|
|
|
|
|
|
#endif /*WSMAN_FAULTS_H_*/
|