summaryrefslogtreecommitdiff
path: root/usr/src/lib/libkmsagent/common
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libkmsagent/common')
-rw-r--r--usr/src/lib/libkmsagent/common/ApplianceParameters.h402
-rw-r--r--usr/src/lib/libkmsagent/common/AutoMutex.h157
-rw-r--r--usr/src/lib/libkmsagent/common/ClientSoapFaultCodes.h225
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgent.cpp3856
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgent.h1163
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentAESKeyWrap.h85
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentChallenge.cpp317
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentChallenge.h111
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentCryptoUtilities.cpp115
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentCryptoUtilities.h100
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentDataUnitCache.cpp202
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentDataUnitCache.h99
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentFatalState.cpp79
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentKeyCallout.cpp43
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentKeyCallout.h55
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentKnownAnswerTests.cpp454
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentKnownAnswerTests.h63
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentLoadBalancer.cpp1169
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentLoadBalancer.h339
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentPKICert.cpp308
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentPKICertOpenSSL.cpp313
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentPKICommon.cpp159
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentPKICommon.h293
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentPKIKey.cpp153
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentPKIKeyOpenSSL.cpp412
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentPKIimpl.h165
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentSoapUtilities.cpp148
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentSoapUtilities.h75
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentStorage.cpp1575
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentStorage.h175
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentStringUtilities.cpp235
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgentStringUtilities.h135
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAgent_direct.h942
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAuditLogger.cpp191
-rw-r--r--usr/src/lib/libkmsagent/common/KMSAuditLogger.h144
-rw-r--r--usr/src/lib/libkmsagent/common/KMSClientProfile.cpp2878
-rw-r--r--usr/src/lib/libkmsagent/common/KMSClientProfile.h456
-rw-r--r--usr/src/lib/libkmsagent/common/KMSClientProfileImpl.h344
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/AgentServiceNamespace.cpp22
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/CAServiceNamespace.cpp21
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/CertificateServiceNamespace.cpp22
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/DiscoveryServiceNamespace.cpp22
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMSAgentWebServiceNamespaces.h34
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_Agent.nsmap36
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_AgentC.cpp8820
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_AgentClient.cpp847
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_AgentH.h1827
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_AgentStub.h834
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_CA.nsmap36
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_CAC.cpp2648
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_CAClient.cpp148
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_CAH.h702
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_CAStub.h286
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_Certificate.nsmap36
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_CertificateC.cpp2425
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_CertificateClient.cpp102
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_CertificateH.h652
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_CertificateStub.h262
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_Discovery.nsmap36
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_DiscoveryC.cpp2904
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_DiscoveryClient.cpp100
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_DiscoveryH.h757
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/KMS_DiscoveryStub.h301
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/envC.cpp1359
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/envH.h329
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/envStub.h151
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/stdsoap2.cpp15632
-rw-r--r--usr/src/lib/libkmsagent/common/SOAP/stdsoap2.h2444
-rw-r--r--usr/src/lib/libkmsagent/common/SYSCommon.c2307
-rw-r--r--usr/src/lib/libkmsagent/common/SYSCommon.h1168
-rw-r--r--usr/src/lib/libkmsagent/common/ieee80211_crypto.c201
-rw-r--r--usr/src/lib/libkmsagent/common/k_setupssl.c223
-rw-r--r--usr/src/lib/libkmsagent/common/k_setupssl.h66
-rw-r--r--usr/src/lib/libkmsagent/common/mapfile-vers43
74 files changed, 0 insertions, 65938 deletions
diff --git a/usr/src/lib/libkmsagent/common/ApplianceParameters.h b/usr/src/lib/libkmsagent/common/ApplianceParameters.h
deleted file mode 100644
index 9fec9719a1..0000000000
--- a/usr/src/lib/libkmsagent/common/ApplianceParameters.h
+++ /dev/null
@@ -1,402 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/*-----------------------------------------------------------------------------
-* File: ApplianceParameters.h
------------------------------------------------------------------------------*/
-
-#ifndef ApplianceParameters_h
-#define ApplianceParameters_h
-
-// Server Config
-
-#define DEFAULT_SERVER_LOG_FILENAME "KeyMgrLog.log"
-#define DEFAULT_SERVER_CONFIG_FILENAME "ServerConfig.cfg"
-#define DEFAULT_CONNECTION_QUEUE_SIZE 100
-#define DEFAULT_THREAD_POOL_SIZE 8
-#define DEFAULT_THREAD_POOL_MIN_IDLE_THREADS 8
-#define DEFAULT_THREAD_POOL_MAX_IDLE_THREADS 8
-#define DEFAULT_THREAD_POOL_MAINTENANCE_FREQUENCY_IN_SECONDS 0
-#define DEFAULT_THREAD_POOL_SHRINK_BY 0
-#define DEFAULT_THREAD_POOL_SPAWN_BY 0
-#define DEFAULT_THREAD_POOL_ORIGINAL_SIZE 8
-#define DEFAULT_SOCKET_TIMEOUT_IN_SECONDS 60
-// former default for SSL_Accept timeout was 10s - increased to 20s to support HP LTO-4
-#define DEFAULT_SSL_ACCEPT_TIMEOUT_IN_SECONDS 20
-#define DEFAULT_SOCKET_CONNECTION_BACKLOG 100
-#define DEFAULT_MANAGEMENT_SERVICE_MAX_CONNECTIONS 10
-#define DEFAULT_CA_SERVICE_PORT_NUMBER 3331
-#define DEFAULT_CERTIFICATE_SERVICE_PORT_NUMBER 3332
-#define DEFAULT_MANAGEMENT_SERVICE_PORT_NUMBER 3333
-#define DEFAULT_AGENT_SERVICE_PORT_NUMBER 3334
-#define DEFAULT_DISCOVERY_SERVICE_PORT_NUMBER 3335
-#define DEFAULT_REPLICATION_SERVICE_PORT_NUMBER 3336
-#define EXTENDED_SSL_SESSION_CACHE_TIMEOUT 86400
-#define DEFAULT_DATABASE_MAINTENANCE_FREQUENCY_IN_SECONDS 86400
-#define DEFAULT_TRIGGER_DATABASE_MAINTENANCE_TIMEOUT_IN_SECONDS 30
-#define DEFAULT_AUDIT_LOG_MAINTENANCE_FREQUENCY_IN_SECONDS 3600
-// see CR 6689920
-#define DEFAULT_KEY_POOL_MAINTENANCE_FREQUENCY_IN_SECONDS 15
-#define KEY_POOL_MINIMUM_SIZE 1000
-#define KEY_POOL_MAXIMUM_SIZE 200000
-#define DEFAULT_KEY_GENERATION_BATCH_SIZE 10
-#define DEFAULT_REPLICATION_ANTI_ENTROPY_FREQUENCY_IN_SECONDS 60
-#define DEFAULT_MAXIMUM_REPLICATION_MESSAGE_SIZE_IN_BYTES 8192
-#define DEFAULT_MAXIMUM_JOIN_CLUSTER_MESSAGE_SIZE_IN_BYTES 262144
-#define DEFAULT_MAXIMUM_JOIN_CLUSTER_KMA_ENTRIES 20
-#define DEFAULT_REPLICATION_THROTTLE_TIME_IN_MILLISECONDS 1000
-#define DEFAULT_REPLICATION_SPREAD_TIME_IN_MILLISECONDS 3000
-#define DEFAULT_REPLICATION_TIMEOUT_IN_SECONDS 15
-#define DEFAULT_RETRIEVE_ROOT_CA_CERTIFICATE_TIMEOUT_IN_SECONDS 15
-#define DEFAULT_RETRIEVE_APPLIANCE_CERTIFICATE_TIMEOUT_IN_SECONDS 15
-#define DEFAULT_JOIN_CLUSTER_TIMEOUT_IN_SECONDS 15
-#define DEFAULT_JOIN_CLUSTER_REPLICATED_IN_SECONDS 10
-#define DEFAULT_REQUEST_ANTI_ENTROPY_PUSH_TIMEOUT_IN_SECONDS 60
-#define DEFAULT_PUSH_UPDATES_TIMEOUT_IN_SECONDS 60
-#define DEFAULT_CLUSTER_PEER_STATUS_TIMEOUT_IN_SECONDS 10
-#define DEFAULT_TABLE_LOCK_TIMEOUT_IN_SECONDS 2
-#define DEFAULT_REPLICATION_TABLE_LOCK_TIMEOUT_IN_SECONDS 8
-#define DEFAULT_TRANSACTION_RETRY_TIMEOUT_IN_SECONDS 4
-#define DEFAULT_KEY_STORE_GROW_SIZE_IN_SLOTS 10000
-// Since write-caching is disabled on the hard disk, this is not necessary to force overwrites to disk
-#define DEFAULT_KEY_STORE_OVERWRITE_BUFFER_EXTRA_SIZE 0
-#define DEFAULT_KEY_STORE_OVERWRITE_PASS_COUNT 7
-#define DEFAULT_CLOCK_ADJUSTMENT_LIMIT_IN_SECONDS 300
-#define DEFAULT_DATABASE_START_TIMEOUT_IN_SECONDS 30
-#define DEFAULT_DATABASE_TRANSACTION_RETRY_COUNT 10
-#define DEFAULT_DATABASE_TRANSACTION_RETRY_SLEEP_IN_MILLISECONDS 1000
-#define DEFAULT_MAX_SNMP_TRAP_QUEUE_SIZE 10000
-#define DEFAULT_SNMP_TIMEOUT_IN_SECONDS 10
-#define DEFAULT_SNMP_RETRY_LIMIT 1
-#define DEFAULT_FILE_TRANSFER_MAXIMUM_CHUNK_SIZE_IN_KILOBYTES 1024
-#define DEFAULT_CERTIFICATE_START_TIME_SHIFT_IN_SECONDS (60*60*24)
-#define DEFAULT_DISCOVERY_FREQUENCY_IN_SECONDS (60*10)
-#define DEFAULT_AUDIT_LOG_FAIL_BACK_FREQUENCY_IN_SECONDS (60*10)
-#define DEFAULT_NTP_PEER_UPDATE_FREQUENCY_IN_SECONDS 23
-#define DEFAULT_NTP_PEER_UPDATE_QUERY_INTERVAL 156
-#define DEFAULT_SYSTEM_DUMP_LOG_LINE_COUNT 5000
-#define DEFAULT_MASTER_KEY_PROVIDER_MAINTENANCE_FREQUENCY_IN_SECONDS 3600
-#define DEFAULT_SEND_PUSH_UPDATES_TO_JOIN_PEER_KMA_IN_SECONDS 3600
-#define DEFAULT_PENDING_QUORUM_OPERATION_EXPIRATION_FREQUENCY_IN_SECONDS 600
-#define DEFAULT_SUPPORT_ACCOUNT_MAX_PASSWORD_AGE_IN_DAYS 7
-#define DEFAULT_REPLICATION_ACCELERATION_TIMEOUT_IN_SECONDS 300
-
-#define DEFAULT_DATABASE_ADMINISTRATOR_USERNAME "dbadmin"
-#define DEFAULT_DATABASE_ADMINISTRATOR_PASSWORD "npwd4kms2"
-#define DEFAULT_DATABASE_NAME "keymgr"
-#define DEFAULT_DATABASE_PARAMS ""
-#define DEFAULT_DATABASE_USERNAME "keymgr"
-#define DEFAULT_DATABASE_PASSWORD "npwd4kms2"
-#define DEFAULT_KEY_STORE_FILE_NAME "KeyStore.dat"
-#define DEFAULT_OPENSSL_ROOT_CA_CERTIFICATE_FILE_NAME "RootCACertificate.crt"
-#define DEFAULT_OPENSSL_APPLIANCE_KEY_PAIR_FILE_NAME "KMAKeyPair.pem"
-#ifndef WIN32
-#define DEFAULT_OPENSSL_AGENT_PRIVATE_KEY_DIR "/var/opt/SUNWkms2/data/"
-#endif
-
-#ifndef DEFAULT_SERVER_VERSION
-#define DEFAULT_SERVER_VERSION "2.1.04"
-#endif
-#define DEFAULT_SNMP_TRAP_GENERIC_TRAP_OID "1.3.6.1.4.1.42.2"
-#define DEFAULT_SNMP_TRAP_DATE_TIME_OID "1.3.6.1.4.1.42.2.1"
-#define DEFAULT_SNMP_TRAP_AUDIT_CLASS_OID "1.3.6.1.4.1.42.2.2"
-#define DEFAULT_SNMP_TRAP_AUDIT_OPERATION_OID "1.3.6.1.4.1.42.2.3"
-#define DEFAULT_SNMP_TRAP_AUDIT_CONDITION_OID "1.3.6.1.4.1.42.2.4"
-#define DEFAULT_SNMP_TRAP_AUDIT_SEVERITY_OID "1.3.6.1.4.1.42.2.5"
-#define DEFAULT_SNMP_TRAP_ENTITY_ID_OID "1.3.6.1.4.1.42.2.6"
-#define DEFAULT_SNMP_TRAP_NETWORK_ADDRESS_OID "1.3.6.1.4.1.42.2.7"
-#define DEFAULT_SNMP_TRAP_MESSAGE_OID "1.3.6.1.4.1.42.2.8"
-#define DEFAULT_SNMP_TRAP_AUDIT_SOLUTION_OID "1.3.6.1.4.1.42.2.9"
-#define DEFAULT_BACKUP_FILE_NAME "BackupFile"
-#define DEFAULT_RESTORE_FILE_NAME "RestoreFile"
-#define DEFAULT_CACHED_BACKUP_FILE_NAME "/var/opt/SUNWkms2/CachedBackupFile"
-#define DEFAULT_CACHED_CORE_SECURITY_XML_FILE_NAME "/var/opt/SUNWkms2/CachedCoreSecurityXMLFile"
-#define DEFAULT_CACHED_BACKUP_KEY_XML_FILE_NAME "/var/opt/SUNWkms2/CachedBackupKeyXMLFile"
-#define DEFAULT_SOFTWARE_UPGRADE_FILE_NAME "/SUNWkms2/boxcar/SoftwareUpgradeFile"
-#define DEFAULT_IMPORT_10KEYS_FILE_NAME "Import10KeysFile"
-#define DEFAULT_KEY_SHARING_EXPORT_FILE_NAME "KeySharingExport.dat"
-#define DEFAULT_KEY_SHARING_IMPORT_FILE_NAME "KeySharingImport.dat"
-#define DEFAULT_JOIN_PEER_KMA_FILE_NAME "/var/opt/SUNWkms2/data/JoinPeerKMAFile"
-
-#define DEFAULT_PRIMARY_NETWORK_IF "bge0"
-#define DEFAULT_SECONDARY_NETWORK_IF "aggr1"
-#define DEFAULT_AGGREGATE_NETWORK "nge1 nge0"
-#define DEFAULT_PRIMARY_ALIAS "KMA-Mgmt"
-#define DEFAULT_SECONDARY_ALIAS "KMA-Service"
-#define DEFAULT_DATABASE_FILE_SYSTEM_PATH "/var/lib/pgsql"
-#define DEFAULT_BUNDLE_SOFTWARE_COMMAND "/opt/SUNWkms2/bin/BundleSoftwareUpgrade"
-#define DEFAULT_FLAR_FILE_PATH "/SUNWkms2/boxcar/SoftwareUpgrade.flar"
-
-// System Calls (Config)
-
-#define DEFAULT_SERVER_RESTART_COMMAND "/usr/sbin/svcadm restart kms2 > /dev/null 2>&1"
-#define DEFAULT_SET_IP_CONFIGURATION_COMMAND "/opt/SUNWkms2/bin/SetIPAddresses"
-#define DEFAULT_RESET_TO_FACTORY_DEFAULT_COMMAND "/opt/SUNWkms2/bin/ResetAndZeroizeLauncher > /dev/null 2>&1"
-#define DEFAULT_RESET_TO_FACTORY_AND_ZEROIZE_DEFAULT_COMMAND "/opt/SUNWkms2/bin/ResetAndZeroizeLauncher -zeroize > /dev/null 2>&1"
-#define DEFAULT_SHUTDOWN_COMMAND "/usr/sbin/shutdown -y -g 5 -i 5 'KMS is shutting down the system' > /dev/null 2>&1"
-#define DEFAULT_ENABLE_SUPPORT_COMMAND "/bin/passwd -u support > /dev/null 2>&1"
-#define DEFAULT_DISABLE_SUPPORT_COMMAND "/bin/passwd -l support > /dev/null 2>&1"
-#define DEFAULT_REGENERATE_SSH_KEYS_COMMAND "/opt/SUNWkms2/bin/RegenerateSSHKeys > /dev/null 2>&1"
-#define DEFAULT_DISPLAY_SSH_KEYS_COMMAND "/opt/SUNWkms2/bin/GetSSHKeys"
-#define DEFAULT_ENABLE_SSH_COMMAND "/usr/sbin/svcadm enable ssh > /dev/null 2>&1"
-#define DEFAULT_DISABLE_SSH_COMMAND "/opt/SUNWkms2/bin/DisableSSH > /dev/null 2>&1"
-#define DEFAULT_GET_SUPPORT_STATUS_COMMAND "/opt/SUNWkms2/bin/StateOfSupport"
-#define DEFAULT_GET_SSH_STATUS_COMMAND "/opt/SUNWkms2/bin/StateOfSSHD"
-#define DEFAULT_ENABLE_SERVER_STARTUP_COMMAND "/bin/true"
-#define DEFAULT_SERVER_STARTUP_COMMAND "/usr/sbin/svcadm enable kms2 > /dev/null 2>&1"
-#define DEFAULT_SOFTWARE_UPGRADE_COMMAND "/opt/SUNWkms2/bin/InstallSoftwareVersion"
-#define DEFAULT_LIST_SOFTWARE_VERSIONS_COMMAND "/opt/SUNWkms2/bin/ListSoftwareVersions"
-#define DEFAULT_STOP_SOFTWARE_AND_RUN_COMMAND "echo Stop and run not implemented" // "/usr/local/bin/StopSoftwareAndRun"
-#define DEFAULT_VERIFY_SOFTWARE_COMMAND "/opt/SUNWkms2/bin/VerifySoftwareFile"
-#define DEFAULT_VERIFY_ACTIVATE_COMMAND "/opt/SUNWkms2/bin/VerifyActivateSoftware"
-#define DEFAULT_CHANGE_SOFTWARE_COMMAND "/opt/SUNWkms2/bin/ChangeSoftwareVersion"
-#define DEFAULT_REBOOT_SYSTEM_COMMAND "/usr/sbin/shutdown -y -g 5 -i 6 'KMS is rebooting the system' > /dev/null 2>&1"
-#define DEFAULT_STOP_SERVER_COMMAND "/usr/sbin/svcadm disable kms2"
-#define DEFAULT_INTERFACE_CONFIG_COMMAND "/usr/sbin/ifconfig"
-#define DEFAULT_SYSTEM_DUMP_COMMAND "/opt/SUNWkms2/bin/SystemDump"
-#define DEFAULT_CONFIGURE_NTP_COMMAND "/opt/SUNWkms2/bin/ConfigureNTP"
-#define DEFAULT_SET_TIMEZONE_COMMAND "/opt/SUNWkms2/bin/SetTimezone"
-#define DEFAULT_GET_KEYBOARD_LAYOUT_COMMAND "/opt/SUNWkms2/bin/GetKeyboardLayout"
-#define DEFAULT_SET_KEYBOARD_LAYOUT_COMMAND "/opt/SUNWkms2/bin/SetKeyboardLayout"
-#define DEFAULT_CONFIGURE_PRIMARY_ADMIN_COMMAND "/opt/SUNWkms2/bin/ConfigurePrimaryAdmin"
-#define DEFAULT_GET_IPV6_ADDRESS_COMMAND "/opt/SUNWkms2/bin/GetIPv6Address"
-#define DEFAULT_INITIALIZE_SCA6000_COMMAND "/opt/SUNWkms2/bin/InitializeSCA6000"
-#define DEFAULT_QUERY_SYSTEM_MESSAGES_COMMAND "/opt/SUNWkms2/bin/QuerySystemMessages"
-
-// @see StringUtilities.cpp
-#define DEFAULT_PENDING_QUORUM_OPERATION_TIMEOUT "P2D" // Default to 2 days (defined by ISO 8601)
-#define PENDING_OPERATIONS_VERSION_STRING "2.2"
-
-// PKI
-
-#define KEY_SIZE 2048
-#define CRL_DAYS 365
-#define CRL_HOURS 0
-#define PKI_FORMAT FILE_FORMAT_PEM
-#define DER_FORMAT FILE_FORMAT_DER
-#define PKCS12_FORMAT FILE_FORMAT_PKCS12
-#define PKI_UNPROTECTED_PASSWORD "password"
-#define DN_O_ROOT_CA "Oracle"
-#define DN_OU_ROOT_CA "KMS"
-#define DN_CN_ROOT_CA "RootCA"
- // NOTE: Do not directly use the following values.
- // Use the configurable Security Parameter values instead
-#define DEFAULT_ROOT_CA_CERTIFICATE_LIFETIME "P49Y"
-#define DEFAULT_CERTIFICATE_LIFETIME "P49Y"
-#define AUTHENTICATION_SECRET_LENGTH 20
-#define AUTHENTICATION_CHALLENGE_LENGTH 20
-#define AUTHENTICATION_RESPONSE_LENGTH 20
-#define AUTHENTICATION_ITERATION_TIME_IN_MILLISECONDS 100
-// reduce the time for agents since we support agents on embedded processors
-#define AGENT_AUTHENTICATION_ITERATION_TIME_IN_MILLISECONDS 10
-#define MIN_AUTHENTICATION_ITERATION_COUNT 40000 // a bit less than 1/10 second on standard Appliance hardware
-#define MAX_AUTHENTICATION_ITERATION_COUNT 400000 // a bit less that 1 second on standard Appliance hardware
-
-// Core Security
-
-#define MAX_CORE_SECURITY_KEY_SPLIT_COUNT 10
-#define CORE_SECURITY_HMAC_LENGTH 64
-#define MAX_CORE_SECURITY_PAD_LENGTH 16
-
-//------------- to be removed: Transfer Partner code is obsolete -----------
-#define MAX_KEY_DISTRIBUTION_PUBLIC_KEY_COUNT 4
-#define MAX_CORE_SECURITY_PUBLIC_KEY_LENGTH 256
-//--------------------------------------------------------------------------
-
-// SOAP Services
-
-// TODO: make functions instead of macros?
-
-#define SOAP_SERVER_ERROR( pstSoap ) (soap_receiver_fault( pstSoap, "Server Error", NULL ))
-// This has been replaced with SoapClientError:
-//#define SOAP_CLIENT_ERROR( pstSoap, sMessage ) (soap_sender_fault( pstSoap, sMessage, NULL ))
-#define SOAP_IS_CLIENT_ERROR( pstSoap ) (strcmp( *soap_faultcode( pstSoap ), pstSoap->version == 2 ? "SOAP-ENV:Sender" : "SOAP-ENV:Client" ) == 0)
-#define GET_SOAP_FAULTCODE( pstSoap ) ((soap_set_fault( pstSoap ),*soap_faultcode( pstSoap )) ? (*soap_faultcode( pstSoap )) : "Unknown")
-#define GET_SOAP_FAULTSTRING( pstSoap ) ((soap_set_fault( pstSoap ),*soap_faultstring( pstSoap )) ? (*soap_faultstring( pstSoap )) : "Unknown")
-#define GET_SOAP_FAULTDETAIL( pstSoap ) ((soap_set_fault( pstSoap ),*soap_faultdetail( pstSoap )) ? (*soap_faultdetail( pstSoap )) : "Unknown")
-#define SOAP_AUDIT_LOG_MESSAGE( pStringTable, pstSoap ) ( CAuditMessage( CAuditLogger::AUDIT_VALUE_SOAP_FAULTCODE, GET_SOAP_FAULTCODE( pstSoap ) ) + CAuditMessage( CAuditLogger::AUDIT_VALUE_SOAP_FAULTSTRING, GET_SOAP_FAULTSTRING( pstSoap ) ) + CAuditMessage( CAuditLogger::AUDIT_VALUE_SOAP_FAULTDETAIL, GET_SOAP_FAULTDETAIL( pstSoap ) ) )
-#define SOAP_HTTP_PROTOCOL "http://"
-#define SOAP_HTTPS_PROTOCOL "https://"
-
-// Data Entry
-
-#define MINIMUM_WIDE_STRING_VALUE_LENGTH 1
-#define MAXIMUM_WIDE_STRING_VALUE_LENGTH 64
-#define MAXIMUM_UTF8_STRING_VALUE_LENGTH ( MAXIMUM_WIDE_STRING_VALUE_LENGTH * 6 )
-#define MINIMUM_WIDE_TEXT_VALUE_LENGTH 1
-#define MAXIMUM_WIDE_TEXT_VALUE_LENGTH 8192
-#define MAXIMUM_UTF8_TEXT_VALUE_LENGTH ( MAXIMUM_WIDE_TEXT_VALUE_LENGTH * 6 )
-
-// Business Logic
-
-#define AUDIT_ID_BUFFER_LENGTH 16
-#define CERTIFICATE_SERIAL_NUMBER_BUFFER_LENGTH 16
-#define BACKUP_ID_BUFFER_LENGTH 16
-#define DATA_UNIT_ID_HEX_STRING_LENGTH 32
-#define DATA_UNIT_KEY_ID_BUFFER_LENGTH 30
-#define DATA_UNIT_KEY_ID_HEX_STRING_LENGTH (DATA_UNIT_KEY_ID_BUFFER_LENGTH*2)
-#define MAXIMUM_QUERY_NEXT_PAGE_SIZE 1000
-#define MAXIMUM_QUERY_FILTER_PARAMS_COUNT 100
-#define MAXIMUM_LIST_DATA_UNIT_STATUS_PARAMS_COUNT ( MAXIMUM_QUERY_FILTER_PARAMS_COUNT )
-#define MAXIMUM_LIST_AUDIT_LOGS_FOR_AGENTS_PARAMS_COUNT ( MAXIMUM_QUERY_FILTER_PARAMS_COUNT )
-#define MAXIMUM_LIST_AUDIT_LOGS_FOR_DATA_UNITS_PARAMS_COUNT ( MAXIMUM_QUERY_FILTER_PARAMS_COUNT )
-#define MAXIMUM_LIST_AUDIT_LOGS_FOR_KEYS_PARAMS_COUNT ( MAXIMUM_QUERY_FILTER_PARAMS_COUNT )
-// 0 allows unlimited # of DUs to be exported, positive int constricts the size
-#define DEFAULT_KEYSHARING_MAXIMUM_EXPORT_DATA_UNITS_RESULT_SIZE 0
-#define TRANSFER_PARTNER_KEY_ID_LENGTH 32
-#define TRANSFER_PARTNER_KEY_VALUE_LENGTH 259
-#define TRANSFER_PARTNER_KEY_VALUE_HEX_STRING_LENGTH (TRANSFER_PARTNER_KEY_VALUE_LENGTH*2)
- // NOTE: Do not directly use the following value.
- // Use the configurable Security Parameter value instead
-#define DEFAULT_MAX_FAILED_RETRIEVE_CERTIFICATE_ATTEMPTS 5
- // The obvious logic for determining if a key's bits are on a backup is as follows:
- // The key must have been created before the backup was created:
- // Backup.CreatedDate >= DataUnitKey.CreatedDate
- // And the key must not have been destroyed before the backup was created:
- // (DataUnitKey.DestroyedDate IS NULL) OR (Backup.CreatedDate <= DataUnitKey.DestroyedDate)
- // This logic would be fine in a single-appliance cluster, or if we had (or when we have)
- // time synchronization. But right now the appliances in a cluster may have different
- // times from each other, and that makes it dangerous to use a simple date comparison.
- // (Note that when determining if a key is on a backup, we *really* don't want false
- // negatives, but we don't mind false positives so much, within reason.)
- // To address this, the best solution we came up with is to use a "backup date window".
- // Instead of simply using the CreatedDate of a backup in our logic, we'll use:
- // (Backup.CreatedDate + BACKUP_DATE_WINDOW_INTERVAL) >= DataUnitKey.CreatedDate
- // and
- // (DataUnitKey.DestroyedDate IS NULL) OR ((Backup.CreatedDate - BACKUP_DATE_WINDOW_INTERVAL) <= DataUnitKey.DestroyedDate)
- // Note that the adding and subtracting of BACKUP_DATE_WINDOW_INTERVAL effectively increases
- // the chance that the calculation will show that a key's bits are on a backup.
- // It's still possible to get false negatives, and there will be more false positives,
- // but if BACKUP_DATE_WINDOW_INTERVAL is set to the largest reasonable value that
- // appliances' clocks could differ by, then we can eliminate false negatives to a
- // fairly high degree of probability. (We can raise the probability to any arbitrary
- // amount by increasing the window, but the trade-off is that we'll have more and more
- // false positives.)
-#define DEFAULT_BACKUP_DATE_WINDOW_IN_SECONDS 300
-
-// Security Parameter Constraints
-
-#define MINIMUM_LONG_TERM_RETENTION_AUDIT_LOG_SIZE_LIMIT 1000
-#define MAXIMUM_LONG_TERM_RETENTION_AUDIT_LOG_SIZE_LIMIT 1000000
-#define MINIMUM_LONG_TERM_RETENTION_AUDIT_LOG_LIFETIME "P7D"
-#define MINIMUM_MEDIUM_TERM_RETENTION_AUDIT_LOG_SIZE_LIMIT 1000
-#define MAXIMUM_MEDIUM_TERM_RETENTION_AUDIT_LOG_SIZE_LIMIT 1000000
-#define MINIMUM_MEDIUM_TERM_RETENTION_AUDIT_LOG_LIFETIME "P7D"
-#define MINIMUM_SHORT_TERM_RETENTION_AUDIT_LOG_SIZE_LIMIT 1000
-#define MAXIMUM_SHORT_TERM_RETENTION_AUDIT_LOG_SIZE_LIMIT 1000000
-#define MINIMUM_SHORT_TERM_RETENTION_AUDIT_LOG_LIFETIME "P7D"
-#define MINIMUM_AUDIT_LOG_MAINTENANCE_FREQUENCY "PT1M"
-#define MINIMUM_ROOT_CA_CERTIFICATE_LIFETIME "P1M"
-#define MINIMUM_CERTIFICATE_LIFETIME "P1M"
-#define MINIMUM_RETRIEVE_CERTIFICATE_ATTEMPT_LIMIT 1
-#define MAXIMUM_RETRIEVE_CERTIFICATE_ATTEMPT_LIMIT 1000
-#define MINIMUM_PASSPHRASE_MINIMUM_LENGTH 8
-#define MAXIMUM_PASSPHRASE_MINIMUM_LENGTH ( MAXIMUM_WIDE_STRING_VALUE_LENGTH )
-#define MINIMUM_MANAGEMENT_SESSION_TIMEOUT_IN_MINUTES 0
-#define MAXIMUM_MANAGEMENT_SESSION_TIMEOUT_IN_MINUTES 60
-
-// The SYSTEM_FIPS_MODE_ONLY_ values must match those in
-// enum KMS_Management__FIPSModeOnly in KMS_Management_SOAP.h and
-// enum KMSManagement_FIPSModeOnly in KMSManagement.h
-#define SYSTEM_FIPS_MODE_ONLY_UNCHANGED (-1)
-#define SYSTEM_FIPS_MODE_ONLY_FALSE 0
-#define SYSTEM_FIPS_MODE_ONLY_TRUE 1
-#define MINIMUM_FIPS_MODE_ONLY ( SYSTEM_FIPS_MODE_ONLY_FALSE )
-#define MAXIMUM_FIPS_MODE_ONLY ( SYSTEM_FIPS_MODE_ONLY_TRUE )
-
-#define DEFAULT_MINIMUM_PASSPHRASE_LENGTH 8
-#define DEFAULT_MANAGEMENT_SESSION_TIMEOUT_IN_MINUTES 15
-#define DEFAULT_FIPS_MODE_ONLY ( SYSTEM_FIPS_MODE_ONLY_FALSE )
-
-// To limit maximum query size, we limit # created
-// this is probably (hopefully) temporary
-#define MAXIMUM_CREATION_COUNT 999
-
-// Audit Log
-
-#define AUDIT_LOG_DEFAULT_SIZE_LONG_TERM_RETENTION 1000000
-#define AUDIT_LOG_DEFAULT_SIZE_MEDIUM_TERM_RETENTION 100000
-#define AUDIT_LOG_DEFAULT_SIZE_SHORT_TERM_RETENTION 10000
-#define AUDIT_LOG_DEFAULT_LIFETIME_DAYS_LONG_TERM_RETENTION "P2Y"
-#define AUDIT_LOG_DEFAULT_LIFETIME_DAYS_MEDIUM_TERM_RETENTION "P3M"
-#define AUDIT_LOG_DEFAULT_LIFETIME_DAYS_SHORT_TERM_RETENTION "P7D"
-
-// Replication
-
-// schema version 7: change to soap Discovery Service for supporting DNS
-// schema version 8: change to soap Agent Service for RetrieveDataUnitKeys
-// schema version 9: ensure that Ready keys appear in current backup
-// schema version 10: IPv6 support and AES key wrap
-// schema version 11: ICSF integration, distributed quorum, SNMP v2
-// schema version 12: replication acceleration
-#define REPLICATION_SCHEMA_VERSION_MIN 8
-#define REPLICATION_SCHEMA_VERSION_MAX 12
-#define REPLICATION_SCHEMA_VERSION_KEYS_IN_BACKUP 9
-#define REPLICATION_SCHEMA_VERSION_IPV6_ADDRESSES 10
-#define REPLICATION_SCHEMA_VERSION_AES_KEY_WRAP 10
-#define REPLICATION_SCHEMA_VERSION_MASTER_KEY_MODE 11
-#define REPLICATION_SCHEMA_VERSION_DISTRIBUTED_QUORUM 11
-#define REPLICATION_SCHEMA_VERSION_SNMP_PROTOCOL_VERSION_TWO 11
-#define REPLICATION_SCHEMA_VERSION_REPLICATION_ACCELERATION 12
-// value to return on inactive software versions
-#define REPLICATION_SCHEMA_VERSION_INVALID 0
-
-// Key Sharing Transfer Formats
-
-#define TRANSFER_FORMAT_INVALID (-100)
-#define TRANSFER_FORMAT_DEFAULT (-1)
-#define TRANSFER_FORMAT_LEGACY 0
-#define TRANSFER_FORMAT_LEGACY_VERSION_STRING "2.0.1"
-#define TRANSFER_FORMAT_FIPS 1
-#define TRANSFER_FORMAT_FIPS_VERSION_STRING "2.1"
-
-// Master Key Modes
-#define _MASTER_KEY_MODE_OFF 0
-#define _MASTER_KEY_MODE_ALL_KEYS 1
-#define _MASTER_KEY_MODE_RECOVER_KEYS_ONLY 2
-
-// Derived/Master Key stuff
-#define KEY_VERSION_PREFIX_LENGTH 2
-#define KEY_VERSION_PREFIX_HEX_LENGTH (KEY_VERSION_PREFIX_LENGTH*2)
-#define NON_DERIVED_KEY_VERSION 0x0000
-#define NON_DERIVED_KEY_VERSION_HEX (L"0000")
-#define DERIVED_KEY_VERSION 0x0001
-#define DERIVED_KEY_VERSION_HEX (L"0001")
-#define MASTER_KEY_ID_PREFIX_HEX (L"0000")
-#define MASTER_KEY_ID_PREFIX_LENGTH 2
-#define MASTER_KEY_ID_PREFIX_HEX_LENGTH (MASTER_KEY_ID_PREFIX_LENGTH*2)
-#define MASTER_KEY_ID_KMAID_LENGTH 8
-#define MASTER_KEY_ID_KMAID_HEX_LENGTH (MASTER_KEY_ID_KMAID_LENGTH*2)
-#define MASTER_KEY_ID_RANDOM_LENGTH 8
-#define MASTER_KEY_ID_LENGTH (MASTER_KEY_ID_PREFIX_LENGTH + MASTER_KEY_ID_KMAID_LENGTH + MASTER_KEY_ID_RANDOM_LENGTH)
-#define MASTER_KEY_ID_HEX_LENGTH (MASTER_KEY_ID_LENGTH*2) // ICSF can only handle 32-byte string IDs for keys
-#define MASTER_KEY_ID_BASE64_LENGTH 32
-#define DATA_UNIT_KEY_ID_HEX_LENGTH (DATA_UNIT_KEY_ID_BUFFER_LENGTH*2)
-
-// SNMP Manager protocol version stuff
-#define SYSTEM_SNMP_PROTOCOL_VERSION_THREE 0
-#define SYSTEM_SNMP_PROTOCOL_VERSION_TWO 1
-
-#endif //ApplianceParameters_h
diff --git a/usr/src/lib/libkmsagent/common/AutoMutex.h b/usr/src/lib/libkmsagent/common/AutoMutex.h
deleted file mode 100644
index 31943e8559..0000000000
--- a/usr/src/lib/libkmsagent/common/AutoMutex.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/*------------------------------------------------------------------------------
- * Module : AutoMutex.h
- -----------------------------------------------------------------------------*/
-
-#ifndef AutoMutex_h
-#define AutoMutex_h
-
-#include "SYSCommon.h"
-
-class CAutoMutex
-{
-public:
-
- /*---------------------------------------------------------------------------
- * Constructor:
- * Locks the given mutex handle.
- *
- * Input
- * -----
- * i_hMutex Mutex handle
- *
- * Output
- * ------
- * (none)
- *
- * Return value (none)
- *
- *--------------------------------------------------------------------------*/
-
- CAutoMutex( K_MUTEX_HANDLE i_hMutex )
- : m_hMutex( 0 ),
- m_bLocked( false )
- {
- if ( i_hMutex )
- {
- Lock( i_hMutex );
- }
- }
-
-
- /*---------------------------------------------------------------------------
- * Destructor:
- * Unlocks this mutex.
- *
- * Input
- * -----
- * (none)
- *
- * Output
- * ------
- * (none)
- *
- * Return value (none)
- *
- *--------------------------------------------------------------------------*/
-
- virtual ~CAutoMutex()
- {
- if ( m_bLocked )
- {
- Unlock();
- }
- }
-
- /*---------------------------------------------------------------------------
- * Function: Lock
- *
- * Description:
- * Locks this mutex handle. If i_hMutex is null, the handle passed to the
- * constructor will be used. Fatals if there is no valid handle.
- *
- * Input
- * -----
- * i_hMutex Mutex handle to lock
- *
- * Output
- * ------
- * (none)
- *
- * Return value (none)
- *
- *--------------------------------------------------------------------------*/
-
- void Lock( K_MUTEX_HANDLE i_hMutex = 0 )
- {
- FATAL_ASSERT( !m_bLocked );
-
- if ( i_hMutex )
- {
- m_hMutex = i_hMutex;
- }
-
- FATAL_ASSERT( m_hMutex );
- K_LockMutex( m_hMutex );
- m_bLocked = true;
- }
-
-
- /*---------------------------------------------------------------------------
- * Function: Unlock
- *
- * Description:
- * Unlocks the mutex handle passed to the constructor or to a previous
- * Lock call. Fatals if the mutex is not locked.
- *
- * Input
- * -----
- * (none)
- *
- * Output
- * ------
- * (none)
- *
- * Return value (none)
- *
- *--------------------------------------------------------------------------*/
-
- void Unlock()
- {
- FATAL_ASSERT( m_bLocked );
- FATAL_ASSERT( m_hMutex );
- K_UnlockMutex( m_hMutex );
- m_bLocked = false;
- }
-
-private:
- K_MUTEX_HANDLE m_hMutex;
- bool m_bLocked;
-};
-
-
-#endif // AutoMutex_h
diff --git a/usr/src/lib/libkmsagent/common/ClientSoapFaultCodes.h b/usr/src/lib/libkmsagent/common/ClientSoapFaultCodes.h
deleted file mode 100644
index 9d67d176ed..0000000000
--- a/usr/src/lib/libkmsagent/common/ClientSoapFaultCodes.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef CLIENTSOAPFAULTCODES_H
-#define CLIENTSOAPFAULTCODES_H
-
-/**
- * Enumeration of error codes that have corresponding soap error strings.
- * Note: These start at 1000 to avoid overlapping with other soap error codes
- *
- * The format of these enumerations is roughly as follows:
- *
- * Start with CLIENT_ERROR_
- *
- * Next, put AGENT if the error is intended for the KMA Agent interface
- * put MANAGER if the error is intended for the KMS Manager interface
- * put SERVER if the error is the fault of the KMS server for any interface
- *
- * After that, briefly describe the error.
- */
-enum SoapClientErrorCode
-{
- INVALID_CLIENT_ERROR = 0,
- CLIENT_ERROR_ACCESS_DENIED = 1000,
- CLIENT_ERROR_SERVER_BUSY,
- CLIENT_ERROR_AUTHENTICATION_FAILED,
- CLIENT_ERROR_NETWORK_ADDRESS_UNREACHABLE,
- CLIENT_ERROR_INVALID_EXPECTED_PEER_LAST_KNOWN_TIMESTAMP_VECTOR,
- CLIENT_ERROR_INCOMPATIBLE_VERSION,
- CLIENT_ERROR_INCOMPATIBLE,
- CLIENT_ERROR_BUNDLE_ALREADY_IN_PROGRESS,
- CLIENT_ERROR_AGENT_INVALID_PARAMETERS,
- CLIENT_ERROR_AGENT_KEY_DOES_NOT_EXIST,
- CLIENT_ERROR_AGENT_KEY_DESTROYED,
- CLIENT_ERROR_AGENT_DATA_UNIT_ID_NOT_FOUND_EXTERNAL_ID_EXISTS,
- CLIENT_ERROR_AGENT_DATA_UNIT_EXPIRED,
- CLIENT_ERROR_INVALID_DATA_UNIT_ID,
- CLIENT_ERROR_INVALID_KEY_ID,
- CLIENT_ERROR_AGENT_DUPLICATE_EXTERNAL_ID,
- CLIENT_ERROR_AGENT_INVALID_EXTERNAL_ID,
- CLIENT_ERROR_AGENT_DATA_UNIT_NOT_REKEYABLE,
- CLIENT_ERROR_AGENT_APPLIANCE_LOCKED,
- CLIENT_ERROR_AGENT_INVALID_PASSPHRASE,
- CLIENT_ERROR_DATA_UNIT_NOT_FOUND,
- CLIENT_ERROR_AGENT_NO_READY_KEYS,
- CLIENT_ERROR_MANAGER_INVALID_PARAMETERS,
- CLIENT_ERROR_MANAGER_DATA_UNIT_NOT_DESTROYED,
- CLIENT_ERROR_MANAGER_APPLIANCE_EXISTS,
- CLIENT_ERROR_MANAGER_APPLIANCE_DOES_NOT_EXIST,
- CLIENT_ERROR_MANAGER_CANNOT_DELETE_LOCAL_APPLIANCE,
- CLIENT_ERROR_MANAGER_APPLIANCE_IN_USE,
- CLIENT_ERROR_MANAGER_AGENT_EXISTS,
- CLIENT_ERROR_MANAGER_AGENT_DOES_NOT_EXIST,
- CLIENT_ERROR_MANAGER_AGENT_IN_USE,
- CLIENT_ERROR_MANAGER_USER_EXISTS,
- CLIENT_ERROR_MANAGER_USER_DOES_NOT_EXIST,
- CLIENT_ERROR_MANAGER_USER_IN_USE,
- CLIENT_ERROR_MANAGER_ROLE_DOES_NOT_EXIST,
- CLIENT_ERROR_MANAGER_USER_ROLE_EXISTS,
- CLIENT_ERROR_MANAGER_USER_ROLE_DOES_NOT_EXIST,
- CLIENT_ERROR_MANAGER_CANNOT_DELETE_ONLY_SECURITY_OFFICER,
- CLIENT_ERROR_MANAGER_CANNOT_REMOVE_ONLY_SECURITY_OFFICER_ROLE,
- CLIENT_ERROR_MANAGER_SITE_EXISTS,
- CLIENT_ERROR_MANAGER_SITE_DOES_NOT_EXIST,
- CLIENT_ERROR_MANAGER_SITE_IN_USE,
- CLIENT_ERROR_MANAGER_CANNOT_SET_PASSPHRASE_FOR_LOCAL_APPLIANCE,
- CLIENT_ERROR_MANAGER_INVALID_PASSPHRASE,
- CLIENT_ERROR_MANAGER_LIFETIME_OVERRIDE_NOT_PERMITTED,
- CLIENT_ERROR_MANAGER_AGENT_ALREADY_IN_KEY_GROUP,
- CLIENT_ERROR_MANAGER_AGENT_ALREADY_HAS_DEFAULT_KEY_GROUP,
- CLIENT_ERROR_MANAGER_AGENT_NOT_IN_KEY_GROUP,
- CLIENT_ERROR_MANAGER_CORE_SECURITY_ALREADY_LOCKED,
- CLIENT_ERROR_MANAGER_CORE_SECURITY_ALREADY_UNLOCKED,
- CLIENT_ERROR_MANAGER_BACKUP_ID_DOES_NOT_EXIST,
- CLIENT_ERROR_MANAGER_BACKUP_DOES_NOT_EXIST,
- CLIENT_ERROR_MANAGER_BACKUP_RESTORE_DENIED,
- CLIENT_ERROR_MANAGER_BACKUP_OR_RESTORE_IN_PROGRESS,
- CLIENT_ERROR_MANAGER_BACKUP_RESTORE_FILE_DUPLICATE_ENTITY_FAILURE,
- CLIENT_ERROR_MANAGER_BACKUP_RESTORE_FILE_INVALID,
- CLIENT_ERROR_MANAGER_FILE_CHUNK_OFFSET_INVALID,
- CLIENT_ERROR_MANAGER_FILE_CHUNK_IO_ERROR,
- CLIENT_ERROR_MANAGER_BACKUP_ALREADY_DESTROYED,
- CLIENT_ERROR_MANAGER_BACKUP_DESTROYED,
- CLIENT_ERROR_MANAGER_BACKUP_NOT_AVAILABLE,
- CLIENT_ERROR_MANAGER_CLOCK_ADJUSTMENT_LIMIT_EXCEEDED,
- CLIENT_ERROR_MANAGER_CLOCK_ADJUSTMENT_ALREADY_PERFORMED_TODAY,
- CLIENT_ERROR_MANAGER_CLOCK_ADJUSTMENT_FAILED,
- CLIENT_ERROR_MANAGER_SOFTWARE_UPGRADE_FILE_NOT_FOUND,
- CLIENT_ERROR_MANAGER_SOFTWARE_UPGRADE_FAILED,
- CLIENT_ERROR_MANAGER_LIST_SOFTWARE_VERSIONS_FAILED,
- CLIENT_ERROR_MANAGER_CHANGE_SOFTWARE_VERSION_FAILED,
- CLIENT_ERROR_MANAGER_VERIFY_SOFTWARE_UPLOAD_FAILED,
- CLIENT_ERROR_MANAGER_SNMP_MANAGER_EXISTS,
- CLIENT_ERROR_MANAGER_SNMP_MANAGER_DOES_NOT_EXIST,
- CLIENT_ERROR_MANAGER_TRANSFER_PARTNER_DOES_NOT_EXIST,
- CLIENT_ERROR_MANAGER_TRANSFER_PARTNER_EXISTS,
- CLIENT_ERROR_MANAGER_TRANSFER_PARTNER_IN_USE,
- CLIENT_ERROR_MANAGER_TRANSFER_PARTNER_ALREADY_IN_KEY_GROUP,
- CLIENT_ERROR_MANAGER_TRANSFER_PARTNER_NOT_IN_KEY_GROUP,
- CLIENT_ERROR_MANAGER_TRANSFER_PARTNER_NOT_ENABLED,
- CLIENT_ERROR_MANAGER_TRANSFER_PARTNER_NOT_ALLOWED_EXPORT_TO,
- CLIENT_ERROR_MANAGER_TRANSFER_PARTNER_HAS_NO_PUBLIC_KEYS,
- CLIENT_ERROR_MANAGER_TRANSFER_PARTNER_PUBLIC_KEY_ID_ALREADY_EXISTS,
- CLIENT_ERROR_MANAGER_APPLIANCE_LOCKED,
- CLIENT_ERROR_MANAGER_DATA_UNIT_EXPIRED,
- CLIENT_ERROR_MANAGER_UNEXPECTED_TRANSFER_PARTNER,
- CLIENT_ERROR_MANAGER_KEY_GROUP_DOES_NOT_ALLOW_EXPORT_FROM,
- CLIENT_ERROR_MANAGER_TRANSFER_PARTNER_KEY_GROUP_ACCESS_DENIED,
- CLIENT_ERROR_MANAGER_TRANSFER_PARTNER_NOT_ALLOWED_IMPORT_FROM,
- CLIENT_ERROR_MANAGER_KEY_GROUP_NOT_ALLOWED_IMPORT_TO,
- CLIENT_ERROR_MANAGER_DUPLICATE_DATA_UNIT_ID,
- CLIENT_ERROR_MANAGER_DUPLICATE_DATA_UNIT_KEY_ID,
- CLIENT_ERROR_MANAGER_DUPLICATE_EXTERNAL_ID,
- CLIENT_ERROR_MANAGER_CORE_SECURITY_PUBLIC_KEY_NOT_FOUND,
- CLIENT_ERROR_MANAGER_CHANGE_PRIMARY_LOCAL_NETWORK_ADDRESS_DENIED,
- CLIENT_ERROR_MANAGER_CHANGE_SECONDARY_LOCAL_NETWORK_ADDRESS_DENIED,
- CLIENT_ERROR_MANAGER_KEY_POLICY_EXISTS,
- CLIENT_ERROR_MANAGER_KEY_POLICY_DOES_NOT_EXIST,
- CLIENT_ERROR_MANAGER_KEY_POLICY_IN_USE,
- CLIENT_ERROR_MANAGER_CHANGE_SOFTWARE_VERSION_IN_PROGRESS,
- CLIENT_ERROR_MANAGER_VERIFY_SOFTWARE_UPLOAD_IN_PROGRESS,
- CLIENT_ERROR_MANAGER_APPLY_SOFTWARE_VERSION_IN_PROGRESS,
- CLIENT_ERROR_MANAGER_KEY_GROUP_EXISTS,
- CLIENT_ERROR_MANAGER_KEY_GROUP_DOES_NOT_EXIST,
- CLIENT_ERROR_MANAGER_KEY_GROUP_IN_USE,
- CLIENT_ERROR_MANAGER_KEY_DOES_NOT_EXIST,
- CLIENT_ERROR_MANAGER_KEY_ALREADY_COMPROMISED,
- CLIENT_ERROR_MANAGER_KEY_ALREADY_IN_KEY_GROUP,
- CLIENT_ERROR_MANAGER_INVALID_BACKUP_ID,
- CLIENT_ERROR_MANAGER_LIMIT_EXCEEDED,
- CLIENT_ERROR_MANAGER_SYSTEM_DUMP_FAILED,
- CLIENT_ERROR_MANAGER_SYSTEM_DUMP_DOES_NOT_EXIST,
- CLIENT_ERROR_MANAGER_ADD_NTP_SERVER_FAILED,
- CLIENT_ERROR_MANAGER_DELETE_NTP_SERVER_FAILED,
- CLIENT_ERROR_MANAGER_NTP_SERVER_SPECIFIED,
- CLIENT_ERROR_MANAGER_GET_LOCAL_CLOCK_FAILED,
- CLIENT_ERROR_MANAGER_ADJUST_LOCAL_CLOCK_FAILED,
- CLIENT_ERROR_MANAGER_NEED_CORE_SECURITY_BACKUP,
- CLIENT_ERROR_MANAGER_KEY_DESTRUCTION_IN_PROGRESS,
- CLIENT_ERROR_IMPORT_10KEYS_ALREADY_UPLOADED,
- CLIENT_ERROR_IMPORT_10KEYS_FILE_DOES_NOT_EXIST,
- CLIENT_ERROR_IMPORT_10KEYS_INVALID_FILE_FORMAT,
- CLIENT_ERROR_IMPORT_10KEYS_FILE_READ_ERROR,
- CLIENT_ERROR_IMPORT_10KEYS_FAILED,
- CLIENT_ERROR_IMPORT_10KEYS_DUPLICATE_KEY_ID_AND_VALUE,
- CLIENT_ERROR_IMPORT_10KEYS_DUPLICATE_KEY_ID,
- CLIENT_ERROR_IMPORT_10KEYS_KEY_VALUE_NOT_HEX,
- CLIENT_ERROR_INVALID_BACKUP_TIME,
- CLIENT_ERROR_KEY_TRANSFER_IN_PROGRESS,
- CLIENT_ERROR_KEY_TRANSFER_FILE_NOT_VALIDATED,
- CLIENT_ERROR_LOCAL_APPLIANCE_NOT_PEER_SERVER,
- CLIENT_ERROR_CANNOT_CONTACT_PEER_SERVER,
- CLIENT_ERROR_MISMATCHED_SIGNING_PUBLIC_KEY_ID,
- CLIENT_ERROR_MISMATCHED_ENCRYPTION_PUBLIC_KEY_ID,
- CLIENT_ERROR_DATA_UNIT_HAS_NO_EXPORTABLE_KEYS,
- CLIENT_ERROR_SOME_KEYS_NOT_EXPORTABLE, // This is actually a warning -- should we treat it differently? Start at 2000?
- CLIENT_ERROR_UPDATE_REPLICATION_SCHEMA,
- CLIENT_ERROR_NOT_SUPPORTED,
- CLIENT_ERROR_AGENT_KWK_NOT_REGISTERED,
- CLIENT_ERROR_AGENT_KWK_ID_MISMATCH,
- CLIENT_ERROR_LIST_KMA_NETWORK_ADDRESSES_FAILED,
- CLIENT_ERROR_GET_KMA_DNS_INFORMATION_FAILED,
- CLIENT_ERROR_LIST_KMA_ROUTING_TABLE_ENTRIES_FAILED,
- CLIENT_ERROR_EXPORT_FORMAT_DISALLOWED,
- CLIENT_ERROR_TRANSFER_FORMAT_DISALLOWED,
- CLIENT_ERROR_FIPS_MODE_REQUIRED,
- CLIENT_ERROR_CLIENT_UPGRADE_REQUIRED,
- CLIENT_ERROR_RESTORE_INVALID_BACKUP_XML_FORMAT,
- CLIENT_ERROR_MANAGER_INVALID_MASTER_KEY_PROVIDER_PARAMETERS,
- CLIENT_ERROR_MANAGER_PENDED_OPERATION_ID_DOES_NOT_EXIST,
- CLIENT_ERROR_INVALID_PENDED_OPERATION_TYPE,
- CLIENT_ERROR_SERVER_HSM_REQUIRED_BUT_MISSING,
- CLIENT_ERROR_MANAGER_INTERNAL,
- CLIENT_ERROR_AGENT_INVALID_HMAC,
- CLIENT_ERROR_AGENT_INVALID_KEY,
- CLIENT_ERROR_QUORUM_NOT_MET,
- CLIENT_ERROR_MANAGER_CANNOT_QUERY_NTP_SERVER,
- CLIENT_ERROR_MANAGER_NTP_SERVER_DELTA_TOO_BIG,
- CLIENT_ERROR_MANAGER_CANNOT_UPDATE_NTP_CONFIG,
- CLIENT_ERROR_MANAGER_CANNOT_CONTACT_SNMP_MANAGER,
- CLIENT_ERROR_MANAGER_CORE_SECURITY_ERROR_INTERNAL,
- CLIENT_ERROR_MANAGER_CORE_SECURITY_NOT_FOUND,
-
- // NOTE: When you add a new CLIENT_ERROR_* definition above this comment,
- // you should also add:
- //
- // 1) A case statement for it near the end of the switch
- // statement in the GetSoapClientErrorCodeMessage() routine
- // in the Common/SoapFaults/ClientSoapFaults.cpp file
- // 2) A case statement for it near the end of the switch
- // statement in the GetTranslatedSoapFault() routine in the
- // Common/SoapFaults/ClientSoapErrorTranslator.cpp file
- // 3) A case statement for it near the end of the switch statement
- // in the GetErrorString routine in the
- // Client/Manager/Global.cpp file
-
- CLIENT_ERROR_LAST
-};
-
-
-#define GET_FAULT_CODE(errstr) (atoi(errstr))
-
-#endif //CLIENTSOAPFAULTCODES_H
diff --git a/usr/src/lib/libkmsagent/common/KMSAgent.cpp b/usr/src/lib/libkmsagent/common/KMSAgent.cpp
deleted file mode 100644
index bb95e737c6..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgent.cpp
+++ /dev/null
@@ -1,3856 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgent.cpp
- */
-
-#ifdef WIN32
-#define _WIN32_WINNT 0x0400
-#include <windows.h>
-#include <process.h>
-#endif
-
-#include <stdlib.h>
-
-#include "KMSClientProfile.h"
-
-#include "KMS_AgentStub.h"
-#include "KMS_DiscoveryStub.h"
-
-#include "KMSClientProfileImpl.h"
-#include "KMSAgent.h"
-#include "KMSAuditLogger.h"
-#include "KMSAgentSoapUtilities.h"
-#include "KMSAgentStringUtilities.h"
-#include "KMSAgentPKICommon.h"
-#include "KMSAgentLoadBalancer.h"
-
-#include "KMSAgentWebServiceNamespaces.h"
-#include "k_setupssl.h"
-
-#include "ApplianceParameters.h"
-
-#include "AutoMutex.h"
-#include "KMSAgentKeyCallout.h"
-
-#include "KMSAgentLoadBalancer.h"
-#include "KMSAgentDataUnitCache.h"
-
-#ifdef K_SOLARIS_PLATFORM
-#include "KMSAgentStorage.h"
-#endif
-
-#include "ClientSoapFaultCodes.h"
-
-#ifdef METAWARE
-#include "debug.h"
-#include "sizet.h"
-typedef unsigned char uint8_t;
-typedef unsigned short uint16_t;
-typedef unsigned int uint32_t;
-typedef unsigned long long uint64_t;
-#endif
-
-#include "KMSAgentAESKeyWrap.h"
-#include "KMSAgentKnownAnswerTests.h"
-
-#if defined(METAWARE) && defined(DEBUG_RETURNS)
-extern "C" void ecpt_trace_msg (ECPT_TRACE_ENTRY*, char*, ...);
-
-#define RETURN(a) { ecpt_trace_msg( trace,"(returned=%x)",(a)); return(a); }
-
-#else
-#define RETURN(a) return(a)
-#endif
-
-/* KMS_AGENT_VERSION_STRING gets passed in via compilation flags */
-extern "C" const char KMSAgent_Version[KMS_MAX_VERSION_LENGTH + 1] = KMS_AGENT_VERSION_STRING;
-
-
-/* The following enum and structs are used for QueryParameters in
- * ListKeyGroup. Since they are only used in implementation code,
- * so they are not in the header file in order to hide these details
- */
-
-
-/*---------------------------Start Query Parameters Declartion -------- */
-
-#define KMS_MAX_AGENT_FILTER_PARAMETERS 10
-
-enum KMSAgent_SortOrder
-{
- SORT_ORDER_ASCENDING = 0,
- SORT_ORDER_DESCENDING
-};
-
-enum KMSAgent_FilterOperator
-{
- FILTER_OPERATOR_EQUAL = 0,
- FILTER_OPERATOR_NOT_EQUAL,
- FILTER_OPERATOR_GREATER_THAN,
- FILTER_OPERATOR_LESS_THAN,
- FILTER_OPERATOR_GREATER_THAN_OR_EQUAL,
- FILTER_OPERATOR_LESS_THAN_OR_EQUAL,
- FILTER_OPERATOR_STARTS_WITH
-};
-
-struct KMSAgent_FilterParameters
-{
- utf8char m_wsFieldName[KMS_MAX_FIELD_NAME + 1];
- enum KMSAgent_FilterOperator m_eFilterOperator;
- utf8char m_wsFieldValue[KMS_MAX_FIELD_VALUE + 1];
-};
-
-struct KMSAgent_QueryParameters
-{
- utf8char m_wsSortFieldName[KMS_MAX_FIELD_NAME + 1];
- enum KMSAgent_SortOrder m_eSortOrder;
-
- struct KMSAgent_FilterParameters m_aFilterParameters[KMS_MAX_AGENT_FILTER_PARAMETERS];
- int m_iSizeFilterParameters;
-
- utf8char m_wsPreviousPageLastIDValue[KMS_MAX_ID + 1];
- utf8char m_wsPreviousPageLastSortFieldValue[KMS_MAX_FIELD_VALUE + 1];
-};
-
-/*---------------------------End Of Query Parameters Declaration -------- */
-
-#ifdef METAWARE
-int CAgentLoadBalancer::FailOver (int i_iFailedApplianceIndex,
- struct soap *i_pstSoap);
-#endif
-
-extern const char * KMSAgent_GetVersion ()
-{
- return (KMSAgent_Version);
-}
-
-static bool CopyQueryParametersFromRequest
-(
- struct soap *i_pstSoap,
- int i_iPageSize,
- struct KMS_Agent::KMS_Agent__QueryParameters *i_pQueryParameters,
- struct KMSAgent_QueryParameters *i_pSourceQueryParameters
- )
-{
-
- // set page size
- i_pQueryParameters->NextPageSize = i_iPageSize;
-
- // copy sort field name
- i_pQueryParameters->SortFieldName = (char *)
- soap_malloc(i_pstSoap,
- sizeof (i_pSourceQueryParameters->m_wsSortFieldName));
- if (i_pQueryParameters->SortFieldName == NULL)
- {
- return (false);
- }
- strncpy(i_pQueryParameters->SortFieldName,
- i_pSourceQueryParameters->m_wsSortFieldName,
- sizeof (i_pSourceQueryParameters->m_wsSortFieldName));
- i_pQueryParameters->SortFieldName[sizeof (i_pSourceQueryParameters->m_wsSortFieldName)-1] = 0;
-
- // sort order
- i_pQueryParameters->SortOrder =
- (enum KMS_Agent::KMS_Agent__SortOrder)i_pSourceQueryParameters->m_eSortOrder;
-
- // copy filter parameters
- i_pQueryParameters->FilterParameters.__size =
- i_pSourceQueryParameters->m_iSizeFilterParameters;
-
- if (i_pQueryParameters->FilterParameters.__size > 0)
- {
- i_pQueryParameters->
- FilterParameters.__ptr =
- (struct KMS_Agent::KMS_Agent__FilterParameters *)soap_malloc
- (i_pstSoap,
- sizeof (KMS_Agent::KMS_Agent__FilterParameters) *
- i_pQueryParameters->FilterParameters.__size);
-
- if (i_pQueryParameters->FilterParameters.__ptr == NULL)
- {
- return (false);
- }
- }
- else
- {
- i_pQueryParameters->FilterParameters.__ptr = NULL;
- }
-
- for (int i = 0; i < i_pSourceQueryParameters->m_iSizeFilterParameters; i++)
- {
- struct KMS_Agent::KMS_Agent__FilterParameters *pParameters;
-
- pParameters = &(i_pQueryParameters->FilterParameters.__ptr[i]);
-
- // copy field name
- pParameters->FieldName = (
- utf8cstr) soap_malloc(i_pstSoap,
- sizeof (i_pSourceQueryParameters->
- m_aFilterParameters[i].m_wsFieldName));
- if (pParameters->FieldName == NULL)
- {
- return (false);
- }
-
- strncpy(pParameters->FieldName,
- i_pSourceQueryParameters->m_aFilterParameters[i].m_wsFieldName,
- sizeof (i_pSourceQueryParameters->
- m_aFilterParameters[i].m_wsFieldName));
- pParameters->FieldName[sizeof (i_pSourceQueryParameters->
- m_aFilterParameters[i].m_wsFieldName)-1] = '\0';
-
- // copy field value
- pParameters->FieldValue =
- (utf8cstr) soap_malloc
- (i_pstSoap,
- sizeof (i_pSourceQueryParameters->m_aFilterParameters[i].m_wsFieldValue));
- if (pParameters->FieldValue == NULL)
- {
- return (false);
- }
-
- strncpy(pParameters->FieldValue,
- i_pSourceQueryParameters->m_aFilterParameters[i].m_wsFieldValue,
- sizeof (i_pSourceQueryParameters->m_aFilterParameters[i].m_wsFieldValue));
- pParameters->FieldValue[sizeof (i_pSourceQueryParameters->m_aFilterParameters[i].m_wsFieldValue)-1] = '\0';
-
- // copy FilterOperator
- pParameters->FilterOperator =
- (KMS_Agent::KMS_Agent__FilterOperator)
- i_pSourceQueryParameters->m_aFilterParameters[i].m_eFilterOperator;
- }
-
- // copy PreviousPageLastIDValue
- i_pQueryParameters->PreviousPageLastIDValue =
- (utf8cstr) soap_malloc(i_pstSoap,
- sizeof (i_pSourceQueryParameters->m_wsPreviousPageLastIDValue));
- if (i_pQueryParameters->PreviousPageLastIDValue == NULL)
- {
- return (false);
- }
- strncpy(i_pQueryParameters->PreviousPageLastIDValue,
- i_pSourceQueryParameters->m_wsPreviousPageLastIDValue,
- sizeof (i_pSourceQueryParameters->m_wsPreviousPageLastIDValue));
- i_pQueryParameters->PreviousPageLastIDValue[sizeof (i_pSourceQueryParameters->m_wsPreviousPageLastIDValue)-1] = '\0';
-
- // copy PreviousPageLastIDValue
- i_pQueryParameters->PreviousPageLastSortFieldValue =
- (utf8cstr) soap_malloc(i_pstSoap,
- sizeof (i_pSourceQueryParameters->
- m_wsPreviousPageLastSortFieldValue));
- if (i_pQueryParameters->PreviousPageLastSortFieldValue == NULL)
- {
- return (false);
- }
- strncpy(i_pQueryParameters->PreviousPageLastSortFieldValue,
- i_pSourceQueryParameters->m_wsPreviousPageLastSortFieldValue,
- sizeof (i_pSourceQueryParameters->
- m_wsPreviousPageLastSortFieldValue));
- i_pQueryParameters->PreviousPageLastSortFieldValue[sizeof (i_pSourceQueryParameters->
- m_wsPreviousPageLastSortFieldValue)-1] = 0;
-
- return (true);
-}
-
-static void CopyQueryParametersFromResponse (
- struct KMSAgent_QueryParameters *i_pQueryParameters,
- struct KMS_Agent::KMS_Agent__QueryParameters *i_pSourceQueryParameters)
-{
-
- // copy sort field name
- if (i_pSourceQueryParameters->SortFieldName)
- {
- strncpy(i_pQueryParameters->m_wsSortFieldName,
- i_pSourceQueryParameters->SortFieldName,
- sizeof(i_pQueryParameters->m_wsSortFieldName));
- i_pQueryParameters->m_wsSortFieldName[sizeof(i_pQueryParameters->m_wsSortFieldName)-1] = '\0';
- }
-
- // copy order
- i_pQueryParameters->m_eSortOrder =
- (KMSAgent_SortOrder) i_pSourceQueryParameters->SortOrder;
-
- // copy filter parameters
- i_pQueryParameters->m_iSizeFilterParameters =
- i_pSourceQueryParameters->FilterParameters.__size;
-
- // we only accept this amount of parameters
- if (i_pQueryParameters->m_iSizeFilterParameters >= KMS_MAX_AGENT_FILTER_PARAMETERS)
- {
- // this should not happen, but just for defending the code
- i_pQueryParameters->m_iSizeFilterParameters = KMS_MAX_AGENT_FILTER_PARAMETERS;
- }
-
- for (int i = 0; i < i_pQueryParameters->m_iSizeFilterParameters; i++)
- {
- struct KMS_Agent::KMS_Agent__FilterParameters *pParameters;
-
- pParameters = i_pSourceQueryParameters->FilterParameters.__ptr + i;
-
- i_pQueryParameters->m_aFilterParameters[i].m_eFilterOperator
- = (KMSAgent_FilterOperator) pParameters->FilterOperator;
-
- if (pParameters->FieldName)
- {
- strncpy(i_pQueryParameters->m_aFilterParameters[i].m_wsFieldName,
- pParameters->FieldName,
- sizeof (i_pQueryParameters->m_aFilterParameters[i].m_wsFieldName));
- i_pQueryParameters->
- m_aFilterParameters[i].m_wsFieldName[sizeof (i_pQueryParameters->m_aFilterParameters[i].m_wsFieldName) - 1] = '\0';
- }
-
- if (pParameters->FieldValue)
- {
- strncpy(i_pQueryParameters->m_aFilterParameters[i].m_wsFieldValue,
- pParameters->FieldValue,
- sizeof(i_pQueryParameters->m_aFilterParameters[i].m_wsFieldValue));
- i_pQueryParameters->
- m_aFilterParameters[i].m_wsFieldValue[sizeof(i_pQueryParameters->m_aFilterParameters[i].m_wsFieldValue)-1] = '\0';
- }
- }
- // copy PreviousPageLastIDValue
- if (i_pSourceQueryParameters->PreviousPageLastIDValue)
- {
- strncpy(i_pQueryParameters->m_wsPreviousPageLastIDValue,
- i_pSourceQueryParameters->PreviousPageLastIDValue,
- sizeof(i_pQueryParameters->m_wsPreviousPageLastIDValue));
- i_pQueryParameters->m_wsPreviousPageLastIDValue[sizeof(i_pQueryParameters->m_wsPreviousPageLastIDValue)-1] = '\0';
- }
-
- // copy PreviousPageLastSortFieldValue
- if (i_pSourceQueryParameters->PreviousPageLastSortFieldValue)
- {
- strncpy(i_pQueryParameters->m_wsPreviousPageLastSortFieldValue,
- i_pSourceQueryParameters->PreviousPageLastSortFieldValue,
- sizeof(i_pQueryParameters->m_wsPreviousPageLastSortFieldValue));
- i_pQueryParameters->m_wsPreviousPageLastSortFieldValue[sizeof(i_pQueryParameters->m_wsPreviousPageLastSortFieldValue)-1] = '\0';
- }
-
-}
-
-/**
- * copies data unit to the soap data unit structure, placing the xsd_string types on the
- * gsoap heap.
- * @return(false if soap_malloc fails
- */
-static bool CopyDataUnitFromRequest (struct soap *i_pstSoap,
- struct KMS_Agent::KMS_Agent__DataUnit *i_pDataUnit,
- const KMSAgent_DataUnit * const i_pSourceDataUnit)
-{
-
- if (i_pSourceDataUnit)
- {
- // copy field name
- i_pDataUnit->DataUnitID =
- (utf8cstr) soap_malloc(i_pstSoap,
- 2 * sizeof (i_pSourceDataUnit->m_acDataUnitID) + 1);
- if (i_pDataUnit->DataUnitID == NULL)
- {
- return (false);
- }
-
- ConvertBinaryToUTF8HexString(i_pDataUnit->DataUnitID,
- i_pSourceDataUnit->m_acDataUnitID,
- KMS_DATA_UNIT_ID_SIZE);
- }
- else
- {
- strcpy(i_pDataUnit->DataUnitID, "");
- }
-
- i_pDataUnit->ExternalUniqueID = (utf8cstr) soap_malloc(i_pstSoap,
- 2 * sizeof (i_pSourceDataUnit->m_acExternalUniqueID) + 1);
- if (i_pDataUnit->ExternalUniqueID == NULL)
- {
- return (false);
- }
-
- if (i_pSourceDataUnit->m_iExternalUniqueIDLength > 0 &&
- i_pSourceDataUnit->m_iExternalUniqueIDLength <= KMS_MAX_EXTERNAL_UNIQUE_ID_SIZE)
- {
- ConvertBinaryToUTF8HexString(i_pDataUnit->ExternalUniqueID,
- i_pSourceDataUnit->m_acExternalUniqueID,
- i_pSourceDataUnit->m_iExternalUniqueIDLength);
- }
- else
- {
- strcpy(i_pDataUnit->ExternalUniqueID, "");
- }
-
- i_pDataUnit->ExternalTag = (utf8cstr) soap_malloc(i_pstSoap, sizeof (i_pSourceDataUnit->m_acExternalTag));
- if (i_pDataUnit->ExternalTag == NULL)
- {
- return (false);
- }
-
- if (strlen(i_pSourceDataUnit->m_acExternalTag) <= sizeof (i_pSourceDataUnit->m_acExternalTag))
- {
- strncpy(i_pDataUnit->ExternalTag,
- i_pSourceDataUnit->m_acExternalTag,
- sizeof (i_pSourceDataUnit->m_acExternalTag));
- i_pDataUnit->ExternalTag[sizeof (i_pSourceDataUnit->m_acExternalTag)-1] = '\0';
- }
- else
- {
- strcpy(i_pDataUnit->ExternalTag, "");
- }
-
- i_pDataUnit->Description = (utf8cstr) soap_malloc(i_pstSoap, sizeof (i_pSourceDataUnit->m_acDescription));
- if (i_pDataUnit->Description == NULL)
- {
- return (false);
- }
- if (strlen(i_pSourceDataUnit->m_acDescription) <= sizeof (i_pSourceDataUnit->m_acDescription))
- {
- strncpy(i_pDataUnit->Description,
- i_pSourceDataUnit->m_acDescription,
- sizeof (i_pSourceDataUnit->m_acDescription));
- i_pDataUnit->Description[sizeof (i_pSourceDataUnit->m_acDescription)-1] = '\0';
- }
- else
- {
- strcpy(i_pDataUnit->Description, "");
- }
-
- i_pDataUnit->DataUnitState = (KMS_Agent::KMS_Agent__DataUnitState) i_pSourceDataUnit->m_iDataUnitState;
-
- return (true);
-}
-
-/**
- * Converts an ExternalUniqueID value to UTF8Hexstring value from gSoap managed heap storage
- * @param i_pstSoap pointer to gSoap runtime
- * @param i_pExternalUniqueID non-NULL pointer to an external unique id to be converted
- * @return(NULL if memory cannot be allocated
- */
-static char * ConvertBinaryDataFromRequest (struct soap *i_pstSoap,
- const unsigned char * i_pBinaryData,
- int i_iBinaryDataLen)
-{
- char * pBinaryData = (char *) soap_malloc(i_pstSoap, 2 * i_iBinaryDataLen + 1);
- if (pBinaryData != NULL)
- {
- ConvertBinaryToUTF8HexString(pBinaryData,
- i_pBinaryData,
- i_iBinaryDataLen);
- }
- return (pBinaryData);
-}
-
-/**
- * Converts a UTF8 char string value to a fixed length array from
- * gSoap managed heap storage
- * @param pointer to gSoap runtime
- * @param i_pUTF8string non-NULL pointer to a null terminated UTF8 string
- * @param i_iLen size of arrray to be allocated
- * @return(NULL if gSoap allocated storage could not be obtained
- */
-static char * ConvertUTF8StringFromRequest (struct soap *i_pstSoap,
- const char * const i_pUTF8string,
- size_t i_iLen)
-{
- char * pUTF8string = NULL;
- pUTF8string = (char *) soap_malloc(i_pstSoap, i_iLen);
- if (pUTF8string != NULL)
- {
- strncpy(pUTF8string, i_pUTF8string, i_iLen);
- pUTF8string[i_iLen-1] = '\0';
- }
- return (pUTF8string);
-}
-
-static KMSAgent_ArrayOfKeyGroups * CopyKeyGroupsResponse
-(
- struct KMS_Agent::KMS_Agent__ArrayOfKeyGroups *i_pKeyGroupsResponse
- )
-{
- // alloc memory for result
- KMSAgent_ArrayOfKeyGroups *pResult =
- (KMSAgent_ArrayOfKeyGroups *) calloc(1, sizeof (KMSAgent_ArrayOfKeyGroups));
-
- // no memory, return
- if (pResult == NULL)
- {
- return (NULL);
- }
-
- // copy size
- pResult->m_iSize = i_pKeyGroupsResponse->__size;
-
- // if the size is 0, return(an empty result
- if (pResult->m_iSize == 0)
- {
- return (pResult);
- }
-
- // alloc memory for all key groups
- pResult->m_pKeyGroups = (KMSAgent_KeyGroup*)
- calloc(1, sizeof (KMSAgent_KeyGroup) * pResult->m_iSize);
-
- if (pResult->m_pKeyGroups == NULL)
- {
- free(pResult);
- return (NULL);
- }
-
- for (int i = 0; i < pResult->m_iSize; i++)
- {
- KMSAgent_KeyGroup *pKeyGroup;
-
- pKeyGroup = &(pResult->m_pKeyGroups[i]);
-
- strncpy(pKeyGroup->m_acKeyGroupID,
- i_pKeyGroupsResponse->__ptr[i].KeyGroupID,
- sizeof(pKeyGroup->m_acKeyGroupID));
- pKeyGroup->m_acKeyGroupID[sizeof(pKeyGroup->m_acKeyGroupID)-1] = '\0';
-
- strncpy(pKeyGroup->m_acDescription,
- i_pKeyGroupsResponse->__ptr[i].Description,
- sizeof(pKeyGroup->m_acDescription));
- pKeyGroup->m_acDescription[sizeof(pKeyGroup->m_acDescription)-1] = '\0';
- }
-
- return (pResult);
-}
-/**
- * allocate storage for the KMSAgent_ArrayOfKeys struct and the array of keys returned in the
- * soap response.
- * @param i_pProfile pointer to profile
- * @param io_pClusterIndex pointer to the cluster index value which is used
- * by AES Key Unwrap to access the KWK for the KMA corresponding to the
- * cluster index.
- * @param i_pKeysResponse pointer to the soap response' array of keys struct
- * @return(pointer to allocated KMSAgent_ArrayOfKeys and the corresponding keys, returns NULL
- * on any error and frees any allocated storage before returning. For response data validation errors a
- * message will be logged.
- */
-static KMSAgent_ArrayOfKeys * CopyDataUnitKeysResponse (
- KMSClientProfile *i_pProfile,
- int * const io_pClusterIndex,
- struct KMS_Agent::KMS_Agent__ArrayOfKeys *i_pKeysResponse)
-{
- KMSAgent_ArrayOfKeys * pResult =
- (KMSAgent_ArrayOfKeys *) calloc(1, sizeof (KMSAgent_ArrayOfKeys));
-
- if (pResult == NULL)
- {
- return (NULL);
- }
-
- // if the size is 0, return(an empty result
- if (i_pKeysResponse->__size == 0)
- {
- return (pResult);
- }
-
- if (i_pKeysResponse->__size > KMS_MAX_PAGE_SIZE)
- {
- free(pResult);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEY_ARRAY_SIZE_RESPONSE,
- NULL,
- NULL,
- NULL);
- return (NULL);
- }
-
- pResult->m_iSize = i_pKeysResponse->__size;
-
- // alloc memory for all keys returned
- pResult->m_pKeys = (KMSAgent_Key*)
- calloc(1, sizeof (KMSAgent_Key) * i_pKeysResponse->__size);
-
- if (pResult->m_pKeys == NULL)
- {
- free(pResult);
- return (NULL);
- // no memory, don't log
- }
-
- // copy keys from response
- for (int i = 0; i < i_pKeysResponse->__size; i++)
- {
- if (KMS_KEY_ID_SIZE != ConvertUTF8HexStringToBinary(
- i_pKeysResponse->__ptr[i].KeyID, NULL))
- {
- free(pResult->m_pKeys);
- free(pResult);
-
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEY_RESPONSE,
- NULL,
- NULL,
- NULL);
- return (NULL);
- }
-
- ConvertUTF8HexStringToBinary(
- i_pKeysResponse->__ptr[i].KeyID, pResult->m_pKeys[i].m_acKeyID);
-
- if ((KMS_AGENT_KEY_STATE) i_pKeysResponse->__ptr[i].KeyState < KMS_KEY_STATE_ACTIVE_PROTECT_AND_PROCESS ||
- (KMS_AGENT_KEY_STATE) i_pKeysResponse->__ptr[i].KeyState > KMS_KEY_STATE_COMPROMISED)
- {
- free(pResult->m_pKeys);
- free(pResult);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEY_STATE_RESPONSE,
- NULL,
- NULL,
- NULL);
- return (NULL);
- }
- pResult->m_pKeys[i].m_iKeyState = (KMS_AGENT_KEY_STATE) i_pKeysResponse->__ptr[i].KeyState;
-
- if ((KMS_KEY_TYPE) i_pKeysResponse->__ptr[i].KeyType != (KMS_KEY_TYPE)KMS_KEY_TYPE_AES_256)
- {
- free(pResult->m_pKeys);
- free(pResult);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEY_TYPE_RESPONSE,
- NULL,
- NULL,
- NULL);
- return (NULL);
- }
- pResult->m_pKeys[i].m_iKeyType = (KMS_KEY_TYPE) i_pKeysResponse->__ptr[i].KeyType;
-
- strncpy(pResult->m_pKeys[i].m_acKeyGroupID,
- i_pKeysResponse->__ptr[i].KeyGroupID,
- sizeof(pResult->m_pKeys[i].m_acKeyGroupID));
- pResult->m_pKeys[i].m_acKeyGroupID[sizeof(pResult->m_pKeys[i].m_acKeyGroupID)-1] = '\0';
-
- CAgentLoadBalancer *pAgentLoadBalancer = reinterpret_cast
- <CAgentLoadBalancer *> (i_pProfile->m_pAgentLoadBalancer);
-
- if (pAgentLoadBalancer->AESKeyWrapSupported(*io_pClusterIndex))
- {
- if (i_pKeysResponse->__ptr[i].Key.__size != KMS_MAX_WRAPPED_KEY_SIZE)
- {
- free(pResult->m_pKeys);
- free(pResult);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_WRAPPED_KEY_LENGTH_RESPONSE,
- NULL,
- NULL,
- NULL);
- return (NULL);
- }
- else
- {
- if (pAgentLoadBalancer->AESKeyUnwrap(io_pClusterIndex,
- i_pKeysResponse->__ptr[i].Key.__ptr,
- pResult->m_pKeys[i].m_acKey) == false)
- {
- free(pResult->m_pKeys);
- free(pResult);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_AESKEYUNWRAP_ERROR,
- NULL,
- NULL,
- NULL);
-
- return (NULL);
- }
- }
- }
- else // non-AES Key Wrap
- {
- if (i_pKeysResponse->__ptr[i].Key.__size != KMS_MAX_KEY_SIZE)
- {
- free(pResult->m_pKeys);
- free(pResult);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEY_LENGTH_RESPONSE,
- NULL,
- NULL,
- NULL);
- return (NULL);
- }
-
- memcpy(pResult->m_pKeys[i].m_acKey,
- i_pKeysResponse->__ptr[i].Key.__ptr,
- KMS_MAX_KEY_SIZE);
- }
-
- pResult->m_pKeys[i].m_iKeyLength = KMS_MAX_KEY_SIZE;
-
- if (KMSAgentKeyCallout(pResult->m_pKeys[i].m_acKey) != 0)
- {
- free(pResult->m_pKeys);
- free(pResult);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_KEY_CALLOUT_ERROR,
- NULL,
- NULL,
- NULL);
- return (NULL);
- }
- }
-
- return (pResult);
-}
-
-/**
- * This function returns the API status code based upon the error string in the profile and
- * availability of KMAs. KMA availability determination is based upon the i_iKMAFailoverReturnCode
- * parameter and the size of the cluster. A cluster size of 0 is an indicator that there are
- * no KMAs available, unless cluster discovery is disabled by the profile's cluster discovery
- * frequency.
- *
- * @param i_pProfile pointer to the profile
- * @param i_iKMAFailoverReturnCode the return(code from CAgentLoadBalancer::Failover() or 0
- * if it was not called. This is used to for determining if KMS_AGENT_STATUS_KMS_UNAVAILABLE
- * needs to be returned.
- * @returns KMS_AGENT_STATUS_GENERIC_ERROR
- * unless the profile's last error message field contains a message substring matching one of the
- * KMSAgent service soap fault strings.
- *
- */
-static KMS_AGENT_STATUS KMSAgent_GetLastStatusCode (KMSClientProfile *i_pProfile,
- int i_iKMAFailoverReturnCode)
-{
- bool bServerError = false;
-
- FATAL_ASSERT(i_pProfile);
-
- // see KMSAgentLoadBalancer.h for return codes from Failover
-
- if (i_iKMAFailoverReturnCode == CAgentLoadBalancer::NO_FIPS_KMA_AVAILABLE)
- {
- return (KMS_AGENT_STATUS_NO_FIPS_KMAS_AVAILABLE);
- }
-
- // parse for server errors -
- // when KMAs have no ready keys we want to inform the client, vs reporting that the KMS is unavailable
- bServerError = ServerError(i_pProfile->m_wsErrorString, 0);
-
- // parse for Soap errors
- const char* sFaultstringStart = strstr(i_pProfile->m_wsErrorString, "SoapFaultString=");
-
- int iErrorCode = INVALID_CLIENT_ERROR; // initially
-
-
- // if there is a Soap error
- if (sFaultstringStart)
- {
- if (SSL_InvalidCertificate(sFaultstringStart))
- {
- // this can be caused by the KMS invalidating the agent's cert
- return (KMS_AGENT_STATUS_ACCESS_DENIED);
- }
- iErrorCode = GET_FAULT_CODE(sFaultstringStart + strlen("SoapFaultString="));
- }
-
-
-#ifdef METAWARE
- // log the failure code/cause to the event log
- LogToFile(i_iKMAFailoverReturnCode, i_pProfile->m_wsErrorString);
- LogToFile(iErrorCode, "error code");
-#endif
-
-
- // parse return code passed in from last call to FailOver, Balance or BalanceByDataUnitKeyID
- // if failover reported no kma and there is a valid server error and client couldn't get keys
- if (i_iKMAFailoverReturnCode == CAgentLoadBalancer::NO_KMA_AVAILABLE &&
- bServerError &&
- iErrorCode == CLIENT_ERROR_AGENT_NO_READY_KEYS)
- {
- return (KMS_AGENT_STATUS_KMS_UNAVAILABLE);
- }
-
- // if there is a server error and we are doing discovery
- if (bServerError &&
- ((i_pProfile->m_iClusterDiscoveryFrequency > 0 &&
- i_pProfile->m_iClusterNum == 0)
- || iErrorCode == CLIENT_ERROR_AGENT_APPLIANCE_LOCKED))
- {
- return (KMS_AGENT_STATUS_KMS_UNAVAILABLE);
- }
-
- if (bServerError && i_iKMAFailoverReturnCode == CAgentLoadBalancer::NO_KMA_AVAILABLE)
- {
- return (KMS_AGENT_STATUS_KMS_UNAVAILABLE);
- }
-
- if ( i_iKMAFailoverReturnCode == CAgentLoadBalancer::AES_KEY_UNWRAP_ERROR )
- return (KMS_AGENT_AES_KEY_UNWRAP_ERROR);
- if ( i_iKMAFailoverReturnCode == CAgentLoadBalancer::AES_KEY_WRAP_SETUP_ERROR )
- return (KMS_AGENT_AES_KEY_WRAP_SETUP_ERROR);
-
- if (iErrorCode == CLIENT_ERROR_ACCESS_DENIED)
- return (KMS_AGENT_STATUS_ACCESS_DENIED);
- if (iErrorCode == CLIENT_ERROR_SERVER_BUSY)
- return (KMS_AGENT_STATUS_SERVER_BUSY);
- if (iErrorCode == CLIENT_ERROR_AGENT_INVALID_PARAMETERS)
- return (KMS_AGENT_STATUS_INVALID_PARAMETER);
- if (iErrorCode == CLIENT_ERROR_AGENT_KEY_DOES_NOT_EXIST)
- return (KMS_AGENT_STATUS_KEY_DOES_NOT_EXIST);
- if (iErrorCode == CLIENT_ERROR_AGENT_KEY_DESTROYED)
- return (KMS_AGENT_STATUS_KEY_DESTROYED);
- if (iErrorCode == CLIENT_ERROR_AGENT_DATA_UNIT_ID_NOT_FOUND_EXTERNAL_ID_EXISTS)
- return (KMS_AGENT_STATUS_DATA_UNIT_ID_NOT_FOUND_EXTERNAL_ID_EXISTS);
- if (iErrorCode == CLIENT_ERROR_AGENT_DUPLICATE_EXTERNAL_ID)
- return (KMS_AGENT_STATUS_EXTERNAL_UNIQUE_ID_EXISTS);
- if (iErrorCode == CLIENT_ERROR_AGENT_NO_READY_KEYS)
- return (KMS_AGENT_STATUS_KMS_NO_READY_KEYS);
-
- // this check is made last to allow other specific errors that may have occurred to take precedence,
- // e.g. return access denied before reporting No FIPS KMAs
- if (i_pProfile->m_eKMSmode == FIPS_MODE &&
- KMSClient_NoFIPSCompatibleKMAs(i_pProfile))
- {
- return (KMS_AGENT_STATUS_NO_FIPS_KMAS_AVAILABLE);
- }
-
- return (KMS_AGENT_STATUS_GENERIC_ERROR);
-}
-
-/*---------------------------------------------------------------------------
- * Function: KMSAgent_InitializeLibrary
- *--------------------------------------------------------------------------*/
-#include "KMSAuditLogger.h"
-
-extern "C"
-KMS_AGENT_STATUS KMSAgent_InitializeLibrary (utf8cstr const i_pWorkingDirectory,
- int i_bUseFileLog)
-
-{
- bool bSuccess;
-
-#if defined(METAWARE)
-#warn "debug timing is on"
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_InitializeLibrary);
-#endif
-
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("KMSAgent_InitializeLibrary : Entered");
-#endif
-
- bSuccess = KMSClient_InitializeLibrary(
- i_pWorkingDirectory,
- i_bUseFileLog);
-
- if (bSuccess)
- {
- RETURN(KMS_AGENT_STATUS_OK);
- }
-
- RETURN(KMS_AGENT_STATUS_GENERIC_ERROR);
-}
-
-/*---------------------------------------------------------------------------
- * Function: KMSAgent_KnownAnswerTests
- *
- *--------------------------------------------------------------------------*/
-KMS_AGENT_STATUS KMSAgent_KnownAnswerTests()
-{
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_KnownAnswerTests);
-#endif
-
- // Known Answer Test on AES Key Wrap code
- if ( KnownAnswerTestAESKeyWrap() != 0 )
- {
- RETURN(KMS_AGENT_STATUS_FIPS_KAT_AES_KEYWRAP_ERROR);
- }
-
- if ( KnownAnswerTestAESECB() != 0 )
- {
- RETURN(KMS_AGENT_STATUS_FIPS_KAT_AES_ECB_ERROR);
- }
-
- if ( KnownAnswerTestHMACSHA1() != 0 )
- {
- RETURN(KMS_AGENT_STATUS_FIPS_KAT_HMAC_SHA1_ERROR);
- }
-
- RETURN(KMS_AGENT_STATUS_OK);
-
-}
-
-/*---------------------------------------------------------------------------
- * Function: KMSAgent_FinalizeLibrary
- *
- *--------------------------------------------------------------------------*/
-
-extern "C"
-KMS_AGENT_STATUS KMSAgent_FinalizeLibrary ()
-{
- bool bSuccess;
-
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_FinalizeLibrary);
-#endif
-
- bSuccess = KMSClient_FinalizeLibrary();
-
- if (bSuccess)
- {
- RETURN(KMS_AGENT_STATUS_OK);
- }
-
- RETURN(KMS_AGENT_STATUS_GENERIC_ERROR);
-}
-
-/*---------------------------------------------------------------------------
- * Function: KMSAgent_GetLastErrorMessage
- *
- *--------------------------------------------------------------------------*/
-
-extern "C"
-utf8cstr KMSAgent_GetLastErrorMessage (KMSClientProfile* i_pProfile)
-{
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_GetLastErrorMessage);
-#endif
-
- if (i_pProfile == NULL)
- {
- RETURN(NULL);
- }
-
- RETURN(KMSClient_GetLastErrorMessage(i_pProfile));
-}
-
-/*---------------------------------------------------------------------------
- * Function: KMSAgent_GetClusterInformation
- *
- *--------------------------------------------------------------------------*/
-extern "C"
-KMS_AGENT_STATUS KMSAgent_GetClusterInformation (
- KMSClientProfile * const i_pProfile,
- int i_iEntitySiteIDSize,
- int i_iClusterEntryArraySize,
- utf8cstr const o_pEntitySiteID,
- int * const o_pApplianceNum,
- KMSClusterEntry * const o_pClusterEntryArray)
-{
- bool bSuccess;
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_GetClusterInformation);
-#endif
-
- if (!i_pProfile)
- {
- Log(AUDIT_CLIENT_AGENT_GET_CLUSTER_INFORMATION_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Profile arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (!o_pEntitySiteID || (i_iEntitySiteIDSize <= (KMS_MAX_ENTITY_SITE_ID)))
- {
- Log(AUDIT_CLIENT_AGENT_GET_CLUSTER_INFORMATION_INVALID_PARAMETERS,
- NULL,
- NULL,
- "EntitySiteIDSize arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (i_iClusterEntryArraySize > KMS_MAX_CLUSTER_NUM)
- {
- Log(AUDIT_CLIENT_AGENT_GET_CLUSTER_INFORMATION_INVALID_PARAMETERS,
- NULL,
- NULL,
- "i_iClusterEntryArraySize exceeds KMS_MAX_CLUSTER_NUM");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (!o_pApplianceNum)
- {
- Log(AUDIT_CLIENT_AGENT_GET_CLUSTER_INFORMATION_INVALID_PARAMETERS,
- NULL,
- NULL,
- "ApplianceNum arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (!o_pClusterEntryArray ||
- (i_iClusterEntryArraySize <= 0))
- {
- Log(AUDIT_CLIENT_AGENT_GET_CLUSTER_INFORMATION_INVALID_PARAMETERS,
- NULL,
- NULL,
- "ClusterEntry or Size arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (!KMSClient_ProfileLoaded(i_pProfile))
- {
- RETURN(KMS_AGENT_STATUS_PROFILE_NOT_LOADED);
- }
-
- CAutoMutex oAutoMutex((K_MUTEX_HANDLE) i_pProfile->m_pLock);
-
- bSuccess = KMSClient_GetClusterInformation(
- i_pProfile,
- o_pEntitySiteID,
- i_iEntitySiteIDSize,
- o_pApplianceNum,
- o_pClusterEntryArray,
- i_iClusterEntryArraySize);
-
- // KMSClient_GetClusterInformation logs if there was an error
-
- if (bSuccess)
- {
- RETURN(KMS_AGENT_STATUS_OK);
- }
-
- RETURN(KMSAgent_GetLastStatusCode(i_pProfile, 0));
-}
-
-extern "C"
-KMS_AGENT_STATUS KMSAgent_SelectAppliance (
- KMSClientProfile * const i_pProfile,
- utf8cstr const i_pApplianceAddress)
-{
- bool bSuccess;
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_SelectAppliance);
-#endif
-
- if (!i_pProfile)
- {
- Log(AUDIT_CLIENT_AGENT_SELECT_APPLIANCE_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Profile arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (!i_pApplianceAddress)
- {
- Log(AUDIT_CLIENT_AGENT_GET_CLUSTER_INFORMATION_INVALID_PARAMETERS,
- NULL,
- NULL,
- "ApplianceAddress arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (!KMSClient_ProfileLoaded(i_pProfile))
- {
- RETURN(KMS_AGENT_STATUS_PROFILE_NOT_LOADED);
- }
-
- // All modes are supported by this function.
-
- bSuccess = KMSClient_SelectAppliance(i_pProfile, i_pApplianceAddress);
-
- if (bSuccess)
- {
- RETURN(KMS_AGENT_STATUS_OK);
- }
-
- RETURN(KMSAgent_GetLastStatusCode(i_pProfile, 0));
-}
-
-/*---------------------------------------------------------------------------
- * Function: KMSAgent_LoadProfile
- *
- *--------------------------------------------------------------------------*/
-extern "C"
-KMS_AGENT_STATUS KMSAgent_LoadProfile (
- KMSClientProfile * const io_pProfile,
- utf8cstr const i_pProfileName,
- utf8cstr const i_pAgentID,
- utf8cstr const i_pPassphrase,
- utf8cstr const i_pInitialApplianceAddress,
- int i_iTransactionTimeout,
- int i_iFailOverLimit,
- int i_iClusterDiscoveryFrequency,
- int i_eKMSmode)
-{
- bool bSuccess;
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_LoadProfile);
-#endif
-
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("KMSAgent_LoadProfile : Entered");
-#endif
- if (!io_pProfile ||
- !i_pProfileName || (strlen(i_pProfileName) <= 0))
- {
- Log(AUDIT_CLIENT_AGENT_LOAD_PROFILE_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Profile or Name arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (!i_pInitialApplianceAddress || (strlen(i_pInitialApplianceAddress) <= 0))
- {
- Log(AUDIT_CLIENT_AGENT_LOAD_PROFILE_INVALID_PARAMETERS,
- NULL,
- NULL,
- "InitialApplianceAddress arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (i_iTransactionTimeout <= 0)
- {
- Log(AUDIT_CLIENT_AGENT_LOAD_PROFILE_INVALID_PARAMETERS,
- NULL,
- NULL,
- "TransactionTimeout arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (i_iClusterDiscoveryFrequency < 0)
- {
- Log(AUDIT_CLIENT_AGENT_LOAD_PROFILE_INVALID_PARAMETERS,
- NULL,
- NULL,
- "ClusterDiscoveryFrequency arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- // for enrollment both arguments are required
- if ((i_pAgentID && !i_pPassphrase) || (i_pPassphrase && !i_pAgentID))
- {
- Log(AUDIT_CLIENT_AGENT_LOAD_PROFILE_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Enrollment requires AgentID & Passphrase");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (i_pAgentID && (strlen(i_pAgentID) <= 0))
- {
- Log(AUDIT_CLIENT_AGENT_LOAD_PROFILE_INVALID_PARAMETERS,
- NULL,
- NULL,
- "AgentID arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (i_pPassphrase && (strlen(i_pPassphrase) <= 0))
- {
- Log(AUDIT_CLIENT_AGENT_LOAD_PROFILE_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Passphrase arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if ( i_eKMSmode != DEFAULT_MODE && i_eKMSmode != FIPS_MODE )
- {
- Log(AUDIT_CLIENT_AGENT_LOAD_PROFILE_INVALID_PARAMETERS,
- NULL,
- NULL,
- "KMS security mode arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (KMSClient_ProfileLoaded(io_pProfile))
- {
- Log(AUDIT_CLIENT_AGENT_LOAD_PROFILE_PROFILE_ALREADY_LOADED,
- NULL,
- NULL,
- "profile is already loaded and should be unloaded first");
- RETURN(KMS_AGENT_STATUS_PROFILE_ALREADY_LOADED);
- }
-
- memset(io_pProfile, 0, sizeof (KMSClientProfile));
- char sInitialApplianceAddress[KMS_MAX_NETWORK_ADDRESS+1];
- strncpy(sInitialApplianceAddress, i_pInitialApplianceAddress, sizeof(sInitialApplianceAddress));
- sInitialApplianceAddress[sizeof(sInitialApplianceAddress)-1] = '\0';
-
- // Convert to lower case
-
- for ( size_t i = 0; i < strlen( sInitialApplianceAddress ); i++ )
- {
- if ( isupper( sInitialApplianceAddress[i] ) )
- {
- sInitialApplianceAddress[i] = tolower( sInitialApplianceAddress[i] );
- }
- }
-
- bSuccess = KMSClient_LoadProfile(
- io_pProfile,
- i_pProfileName,
- i_pAgentID,
- i_pPassphrase,
- sInitialApplianceAddress,
- i_iTransactionTimeout,
- i_iFailOverLimit,
- i_iClusterDiscoveryFrequency,
- i_eKMSmode);
-
- if (bSuccess)
- {
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("KMSAgent_LoadProfile : Returned ok");
-#endif
- RETURN(KMS_AGENT_STATUS_OK);
- }
-
- // when not enrolling & cluster discovery is disabled there are no
- // soap transactions so failover would not have occurred
- bool bEnrolling = i_pAgentID && i_pPassphrase;
-
- if (!bEnrolling &&
- i_iClusterDiscoveryFrequency == 0)
- {
- RETURN(KMSAgent_GetLastStatusCode(io_pProfile, 0));
- }
- else
- {
-// if (i_eKMSmode == FIPS_MODE &&
-// KMSClient_NoFIPSCompatibleKMAs(io_pProfile))
-// {
-// RETURN(KMSAgent_GetLastStatusCode(io_pProfile,
-// CAgentLoadBalancer::NO_FIPS_KMA_AVAILABLE));
-// }
-
- RETURN(KMSAgent_GetLastStatusCode(io_pProfile,
- CAgentLoadBalancer::NO_KMA_AVAILABLE));
- }
-}
-
-/*---------------------------------------------------------------------------
- * Function: KMSAgent_UnloadProfile
- *
- *--------------------------------------------------------------------------*/
-extern "C"
-KMS_AGENT_STATUS KMSAgent_UnloadProfile (KMSClientProfile * const i_pProfile)
-{
- bool bSuccess;
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_UnloadProfile);
-#endif
-
- if (!i_pProfile)
- {
- Log(AUDIT_CLIENT_AGENT_UNLOAD_PROFILE_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Profile arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (!KMSClient_ProfileLoaded(i_pProfile))
- {
- RETURN(KMS_AGENT_STATUS_PROFILE_NOT_LOADED);
- }
-
- bSuccess = KMSClient_UnloadProfile(i_pProfile);
-
- if (bSuccess)
- {
- RETURN(KMS_AGENT_STATUS_OK);
- }
-
- RETURN(KMSAgent_GetLastStatusCode(i_pProfile, 0));
-}
-
-/*---------------------------------------------------------------------------
- * Function: KMSAgent_DeleteProfile
- *
- *--------------------------------------------------------------------------*/
-extern "C"
-KMS_AGENT_STATUS KMSAgent_DeleteProfile (utf8cstr i_pProfileName)
-{
- bool bSuccess;
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_DeleteProfile);
-#endif
-
- if (!i_pProfileName || (strlen(i_pProfileName) <= 0))
- {
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- bSuccess = KMSClient_DeleteProfile(i_pProfileName);
-
- if (bSuccess)
- {
- RETURN(KMS_AGENT_STATUS_OK);
- }
-
- RETURN(KMS_AGENT_STATUS_GENERIC_ERROR);
-}
-
-/*---------------------------------------------------------------------------
- * Function: KMSAgent_ListKeyGroups
- *
- *--------------------------------------------------------------------------*/
-
-extern "C"
-KMS_AGENT_STATUS KMSAgent_ListKeyGroups (
- KMSClientProfile * const i_pProfile,
- KMSAgent_ArrayOfKeyGroups* * const o_ppKeyGroups)
-{
- bool bSuccess;
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_ListKeyGroups);
-#endif
-
- int bIsLastPage;
- struct KMSAgent_QueryParameters stQueryParameters;
-
- if (!i_pProfile)
- {
- Log(AUDIT_CLIENT_AGENT_LIST_KEY_GROUPS_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Profile arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (!o_ppKeyGroups)
- {
- Log(AUDIT_CLIENT_AGENT_LIST_KEY_GROUPS_INVALID_PARAMETERS,
- NULL,
- NULL,
- "KeyGroups arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (!KMSClient_ProfileLoaded(i_pProfile))
- {
- RETURN(KMS_AGENT_STATUS_PROFILE_NOT_LOADED);
- }
-
- CAutoMutex oAutoMutex((K_MUTEX_HANDLE) i_pProfile->m_pLock);
-
- struct soap *pstSoap = (struct soap *) i_pProfile->m_pvSoap;
-
- // Get Key Groups
- memset(&stQueryParameters, 0, sizeof (stQueryParameters));
-
- struct KMS_Agent::KMS_Agent__QueryParameters oQueryParameters;
- struct KMS_Agent::KMS_Agent__ListKeyGroupsResponse oResponse;
-
- memset(&oQueryParameters, 0, sizeof (oQueryParameters));
-
- bSuccess = CopyQueryParametersFromRequest(pstSoap,
- KMS_MAX_LIST_KEY_GROUPS,
- &oQueryParameters,
- &stQueryParameters);
- if (!bSuccess)
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory, don't log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
-
- CAgentLoadBalancer *pLoadBalancer =
- (CAgentLoadBalancer *) i_pProfile->m_pAgentLoadBalancer;
-
- int iIndex = pLoadBalancer->Balance();
-
- if ( iIndex >= 0 )
- {
- do
- {
- const char* sURL =
- pLoadBalancer->GetHTTPSURL(iIndex, i_pProfile->m_iPortForAgentService);
- strncpy(i_pProfile->m_sURL, sURL, sizeof(i_pProfile->m_sURL));
- i_pProfile->m_sURL[sizeof(i_pProfile->m_sURL)-1] = '\0';
-
- bSuccess = KMS_Agent::soap_call_KMS_Agent__ListKeyGroups(
- pstSoap,
- sURL,
- NULL,
- oQueryParameters,
- oResponse) == SOAP_OK;
-
- if (!bSuccess)
- {
- iIndex = pLoadBalancer->FailOver(iIndex, pstSoap);
-
- char sKmaAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH];
- char sSoapFaultMsg[g_iMAX_SOAP_FAULT_MESSAGE_LENGTH];
-
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- GetSoapFault(sSoapFaultMsg, pstSoap);
-
- LogError(i_pProfile, AUDIT_CLIENT_AGENT_LIST_KEY_GROUPS_SOAP_ERROR,
- NULL,
- sKmaAddress,
- sSoapFaultMsg);
- }
- else
- {
- pLoadBalancer->UpdateResponseStatus(iIndex);
- }
- }
- while (iIndex >= 0 && (!bSuccess));
- }
- else
- {
- bSuccess = false;
- }
-
- if (bSuccess)
- {
- bIsLastPage = oResponse.LastPage;
-
- *o_ppKeyGroups = CopyKeyGroupsResponse(&oResponse.KeyGroups);
- if (*o_ppKeyGroups == NULL)
- {
- bSuccess = false;
- // no memory, don't log
- }
-
- CopyQueryParametersFromResponse(&stQueryParameters,
- &oResponse.NextPageQueryParameters);
- }
-
- // free allocated memory for output if error condition
- // Clean up SOAP
-
- soap_destroy(pstSoap);
- soap_end(pstSoap);
-
- if (bSuccess)
- RETURN(KMS_AGENT_STATUS_OK);
-
- RETURN(KMSAgent_GetLastStatusCode(i_pProfile, iIndex));
-}
-
-/*---------------------------------------------------------------------------
- * Function: KMSAgent_FreeArrayOfKeyGroups
- *
- *--------------------------------------------------------------------------*/
-
-extern "C"
-void KMSAgent_FreeArrayOfKeyGroups (
- struct KMSAgent_ArrayOfKeyGroups *i_pArrayOfKeyGroups)
-{
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_FreeArrayOfKeyGroups);
-#endif
- if (!i_pArrayOfKeyGroups)
- {
- return;
- }
-
- // free memory for all information groups
- if (i_pArrayOfKeyGroups->m_pKeyGroups)
- {
- free(i_pArrayOfKeyGroups->m_pKeyGroups);
- }
-
- free(i_pArrayOfKeyGroups);
-}
-
-extern "C"
-KMS_AGENT_STATUS KMSAgent_CreateKey (
- KMSClientProfile * const i_pProfile,
- const KMSAgent_DataUnit * const i_pDataUnit,
- KEY_GROUP_ID const i_pKeyGroupID,
- KMSAgent_Key * const o_pKey)
-{
- bool bSuccess;
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_CreateKey);
-#endif
-
- if (!i_pProfile)
- {
- Log(AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Profile arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (!o_pKey)
- {
- Log(AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Key arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (!KMSClient_ProfileLoaded(i_pProfile))
- {
- RETURN(KMS_AGENT_STATUS_PROFILE_NOT_LOADED);
- }
-
- if (i_pKeyGroupID &&
- strlen(i_pKeyGroupID) > KMS_MAX_KEY_GROUP_ID_SIZE)
- {
- Log(AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_PARAMETERS,
- NULL,
- NULL,
- "GroupID arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- CAutoMutex oAutoMutex((K_MUTEX_HANDLE) i_pProfile->m_pLock);
-
- struct KMS_Agent::KMS_Agent__DataUnit
- stDataUnit = {(char *)"", (char *)"", (char *)"",
- (char *)"",
- (KMS_Agent::KMS_Agent__DataUnitState) 0};
-
- struct soap *pstSoap = (struct soap *) i_pProfile->m_pvSoap;
- struct KMS_Agent::KMS_Agent__CreateKeyResponse oResponse;
-
- if (i_pDataUnit != NULL)
- {
- if (!CopyDataUnitFromRequest(pstSoap,
- &stDataUnit,
- i_pDataUnit))
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
- }
-
- char * pKeyGroupID = NULL;
- if (i_pKeyGroupID)
- {
- pKeyGroupID = ConvertUTF8StringFromRequest(pstSoap,
- i_pKeyGroupID,
- KMS_MAX_KEY_GROUP_ID_SIZE + 1);
- if (pKeyGroupID == NULL)
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
- }
-
- CAgentLoadBalancer *pLoadBalancer =
- (CAgentLoadBalancer *) i_pProfile->m_pAgentLoadBalancer;
-
- char sKmaAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH];
- char sSoapFaultMsg[g_iMAX_SOAP_FAULT_MESSAGE_LENGTH];
-
- int iIndex;
- UTF8_KEYID acKWKID;
- bool bClientAESKeyWrapSetupError = false;
-
- if (i_pDataUnit)
- {
- // attempt to maintain affinity with KMA for specified DU ID
- iIndex = pLoadBalancer->BalanceByDataUnitID(
- i_pDataUnit->m_acDataUnitID,
- KMS_DATA_UNIT_ID_SIZE);
- }
- else
- {
- iIndex = pLoadBalancer->Balance();
- }
-
- if (iIndex >= 0)
- {
- do
- {
- bSuccess = true;
- const char* sURL = pLoadBalancer->GetHTTPSURL(
- iIndex,
- i_pProfile->m_iPortForAgentService);
-
- strncpy(i_pProfile->m_sURL, sURL, sizeof(i_pProfile->m_sURL));
-
- i_pProfile->m_sURL[sizeof(i_pProfile->m_sURL)-1] = '\0';
-
- Long64 lKMAID = pLoadBalancer->GetKMAID(iIndex);
-
- if (bSuccess && pLoadBalancer->AESKeyWrapSupported(iIndex))
- {
- // if this fails we want to utilize normal failover logic, GetKWKID
- // logs error
- bSuccess = pLoadBalancer->GetKWKID(iIndex, lKMAID, pstSoap,
- acKWKID, &bClientAESKeyWrapSetupError) ? true : false;
- if (bSuccess)
- {
- bSuccess = KMS_Agent::soap_call_KMS_Agent__CreateKey2(
- pstSoap,
- sURL,
- NULL,
- stDataUnit,
- i_pKeyGroupID ? pKeyGroupID : (char *) "",
- acKWKID,
- //NOTE: this is ugly but the soap response struct's are the same for both flavors of CreateKey
- *(reinterpret_cast<struct KMS_Agent::KMS_Agent__CreateKey2Response *>(&oResponse))) == SOAP_OK;
- }
- }
- else if (bSuccess) // NO AES Key Wrap
- {
- bSuccess = KMS_Agent::soap_call_KMS_Agent__CreateKey(
- pstSoap,
- sURL,
- NULL,
- stDataUnit,
- i_pKeyGroupID ? pKeyGroupID : (char *) "",
- oResponse) == SOAP_OK;
- }
-
- // don'f failover for Client side AES Key Wrap setup problems
- if (!bSuccess && !bClientAESKeyWrapSetupError)
- {
- iIndex = pLoadBalancer->FailOver(iIndex, pstSoap);
-
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- GetSoapFault(sSoapFaultMsg, pstSoap);
-
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_CREATE_KEY_SOAP_ERROR,
- NULL,
- sKmaAddress,
- sSoapFaultMsg);
- }
- if (bSuccess)
- {
- pLoadBalancer->UpdateResponseStatus(iIndex);
- }
- }
- while (iIndex >= 0 && (!bSuccess) && (!bClientAESKeyWrapSetupError));
- }
- else
- {
- bSuccess = false;
- }
-
-
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("CreateKey gets keyID %s (size %x) \n",
- oResponse.Key.KeyID,
- sizeof (oResponse.Key.KeyID));
-#endif
-
-
- if (bSuccess)
- {
- if (KMS_KEY_ID_SIZE != ConvertUTF8HexStringToBinary(
- oResponse.Key.KeyID, NULL))
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_KEYID_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- bSuccess = false;
- }
-
- ConvertUTF8HexStringToBinary(
- oResponse.Key.KeyID, // in
- o_pKey->m_acKeyID); // out
-
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("CreateKey gets keyState %x (size %x) \n",
- oResponse.Key.KeyState,
- sizeof (oResponse.Key.KeyState));
-#endif
-
- if ((KMS_AGENT_KEY_STATE) oResponse.Key.KeyState < KMS_KEY_STATE_ACTIVE_PROTECT_AND_PROCESS ||
- (KMS_AGENT_KEY_STATE) oResponse.Key.KeyState > KMS_KEY_STATE_COMPROMISED)
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_KEY_STATE_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- bSuccess = false;
- }
-
- o_pKey->m_iKeyState = (KMS_AGENT_KEY_STATE) oResponse.Key.KeyState;
-
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("CreateKey o_pKey->m_iKeyState %x (size %x) = "
- "(KMS_AGENT_KEY_STATE) oResponse.Key.KeyState %x (size %x)\n",
- o_pKey->m_iKeyState,
- sizeof (o_pKey->m_iKeyState),
- oResponse.Key.KeyState,
- sizeof (oResponse.Key.KeyState));
-#endif
-
-
- if ((KMS_KEY_TYPE) oResponse.Key.KeyType != KMS_KEY_TYPE_AES_256)
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_KEY_TYPE_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- bSuccess = false;
- }
- o_pKey->m_iKeyType = (KMS_KEY_TYPE) oResponse.Key.KeyType;
-
- if (strlen(oResponse.Key.KeyGroupID) > KMS_MAX_KEY_GROUP_ID_SIZE)
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_KEY_GROUP_ID_LENGTH_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- bSuccess = false;
- }
- else
- {
- strncpy(o_pKey->m_acKeyGroupID,
- oResponse.Key.KeyGroupID,
- sizeof(o_pKey->m_acKeyGroupID));
- o_pKey->m_acKeyGroupID[sizeof(o_pKey->m_acKeyGroupID)-1] = '\0';
- }
-
- if ( bSuccess && pLoadBalancer->AESKeyWrapSupported(iIndex))
- {
- // verify KWK ID matches what was registered
- if (oResponse.Key.Key.__size != KMS_MAX_WRAPPED_KEY_SIZE)
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_WRAPPED_KEY_LENGTH_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- bSuccess = false;
- }
- else
- {
- if (pLoadBalancer->AESKeyUnwrap(&iIndex, oResponse.Key.Key.__ptr,
- o_pKey->m_acKey) == false)
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_CREATE_KEY_AESKEYUNWRAP_ERROR,
- NULL,
- sKmaAddress,
- NULL);
-
- bSuccess = false;
- }
- }
- }
- else if (bSuccess) // non-AES key wrap
- {
- if (oResponse.Key.Key.__size != KMS_MAX_KEY_SIZE)
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_KEY_LENGTH_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- bSuccess = false;
- }
- else
- {
- memcpy(o_pKey->m_acKey,
- oResponse.Key.Key.__ptr,
- KMS_MAX_KEY_SIZE);
- }
- }
-
- if (bSuccess)
- {
- o_pKey->m_iKeyLength = KMS_MAX_KEY_SIZE;
-
- if (KMSAgentKeyCallout(o_pKey->m_acKey) != 0)
- {
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_CREATE_KEY_KEY_CALLOUT_ERROR,
- NULL,
- NULL,
- NULL);
- bSuccess = false;
- }
- }
- }
-
- if (bSuccess)
- {
- // add Key ID and the creating KMA IP address to the DU cache
- CDataUnitCache* pDataUnitCache = (CDataUnitCache*) i_pProfile->m_pDataUnitCache;
-
- if (i_pProfile->m_iClusterDiscoveryFrequency != 0) // load balancing enabled
- {
- bSuccess = pDataUnitCache->Insert(
- NULL,
- 0,
- o_pKey->m_acKeyID,
- KMS_KEY_ID_SIZE,
- pLoadBalancer->GetApplianceNetworkAddress(iIndex));
- }
- }
- // free allocated memory for output if error condition
- // Clean up SOAP
-
- soap_destroy(pstSoap);
- soap_end(pstSoap);
-
- if (bSuccess)
- {
- RETURN(KMS_AGENT_STATUS_OK);
- }
-
- RETURN(KMSAgent_GetLastStatusCode(i_pProfile,
- bClientAESKeyWrapSetupError ?
- CAgentLoadBalancer::AES_KEY_WRAP_SETUP_ERROR : iIndex));
-}
-
-extern "C"
-KMS_AGENT_STATUS KMSAgent_CreateDataUnit (
- KMSClientProfile * const i_pProfile,
- const unsigned char * i_pExternalUniqueID,
- int i_iExternalUniqueIDIDLen,
- utf8cstr const i_pExternalTag,
- utf8cstr const i_pDescription,
- KMSAgent_DataUnit * const o_pDataUnit)
-{
- bool bSuccess;
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_CreateDataUnit);
-#endif
-
-#if defined(DEBUG) && defined(METAWARE)
-#warn "debug Create Data Unit is on"
- log_printf("KMSAgent_CreateDataUnit entered\n");
- log_printf("KMSAgent_CreateDataUnit profile=%x\n", i_pProfile);
-#endif
-
- if (!i_pProfile)
- {
- Log(AUDIT_CLIENT_AGENT_CREATE_DATA_UNIT_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Profile arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (!o_pDataUnit)
- {
- Log(AUDIT_CLIENT_AGENT_CREATE_DATA_UNIT_INVALID_PARAMETERS,
- NULL,
- NULL,
- "DataUnit arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (!KMSClient_ProfileLoaded(i_pProfile))
- {
- RETURN(KMS_AGENT_STATUS_PROFILE_NOT_LOADED);
- }
-
- CAutoMutex oAutoMutex((K_MUTEX_HANDLE) i_pProfile->m_pLock);
-
- // validate input parms
-
- if (i_pExternalUniqueID &&
- (i_iExternalUniqueIDIDLen <= 0 ||
- i_iExternalUniqueIDIDLen > KMS_MAX_EXTERNAL_UNIQUE_ID_SIZE))
- {
- Log(AUDIT_CLIENT_AGENT_CREATE_DATA_UNIT_INVALID_PARAMETERS,
- NULL,
- NULL,
- "ExternalUniqueID arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (i_pExternalTag && strlen(i_pExternalTag) > KMS_MAX_EXTERNAL_TAG)
- {
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (i_pDescription && strlen(i_pDescription) > KMS_MAX_DESCRIPTION)
- {
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- struct soap *pstSoap = (struct soap *) i_pProfile->m_pvSoap;
- struct KMS_Agent::KMS_Agent__CreateDataUnitResponse oResponse;
-
- char * pExternalUniqueID = NULL;
- if (i_pExternalUniqueID)
- {
- pExternalUniqueID = ConvertBinaryDataFromRequest(pstSoap,
- i_pExternalUniqueID,
- i_iExternalUniqueIDIDLen);
- if (pExternalUniqueID == NULL)
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
- }
-
- char * pExternalTag = NULL;
- if (i_pExternalTag)
- {
- pExternalTag = ConvertUTF8StringFromRequest(pstSoap,
- i_pExternalTag,
- strlen(i_pExternalTag) + 1);
- if (pExternalTag == NULL)
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
- }
-
- char * pDescription = NULL;
- if (i_pDescription)
- {
- pDescription = ConvertUTF8StringFromRequest(pstSoap,
- i_pDescription,
- strlen(i_pDescription) + 1);
- if (pDescription == NULL)
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
- }
-
- CAgentLoadBalancer *pLoadBalancer =
- (CAgentLoadBalancer *) i_pProfile->m_pAgentLoadBalancer;
- int iIndex = pLoadBalancer->Balance();
-
- if (iIndex >= 0)
- {
- do
- {
- const char* sURL = pLoadBalancer->GetHTTPSURL(
- iIndex,
- i_pProfile->m_iPortForAgentService);
-
- strncpy(i_pProfile->m_sURL, sURL, sizeof(i_pProfile->m_sURL));
-
- i_pProfile->m_sURL[sizeof(i_pProfile->m_sURL)-1] = '\0';
-
- bSuccess = KMS_Agent::soap_call_KMS_Agent__CreateDataUnit(
- pstSoap,
- sURL,
- NULL,
- i_pExternalUniqueID ? pExternalUniqueID : (char *) "",
- i_pExternalTag ? pExternalTag : (char *) "",
- i_pDescription ? pDescription : (char *) "",
- oResponse) == SOAP_OK;
-
- if (!bSuccess)
- {
- iIndex = pLoadBalancer->FailOver(iIndex, pstSoap);
-
- char sKmaAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH];
- char sSoapFaultMsg[g_iMAX_SOAP_FAULT_MESSAGE_LENGTH];
-
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- GetSoapFault(sSoapFaultMsg, pstSoap);
-
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_CREATE_DATA_UNIT_SOAP_ERROR,
- NULL,
- sKmaAddress,
- sSoapFaultMsg);
- }
- else
- {
- pLoadBalancer->UpdateResponseStatus(iIndex);
- }
-
- }
- while (iIndex >= 0 && (!bSuccess));
- }
- else
- {
- bSuccess = false;
- }
-
- if (bSuccess)
- {
- int iDataUnitIDLength;
- iDataUnitIDLength = ConvertUTF8HexStringToBinary(
- oResponse.DataUnit.DataUnitID, o_pDataUnit->m_acDataUnitID);
-
- if (iDataUnitIDLength != KMS_DATA_UNIT_ID_SIZE)
- {
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("iDataUnitIDLength (%x) != KMS_DATA_UNIT_ID_SIZE (%x)",
- iDataUnitIDLength,
- KMS_DATA_UNIT_ID_SIZE);
-#endif
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_CREATE_DATA_UNIT_RESPONSE_INVALID_DU_ID_LENGTH,
- NULL,
- NULL,
- NULL);
- bSuccess = false;
- }
- o_pDataUnit->m_iExternalUniqueIDLength = ConvertUTF8HexStringToBinary(
- oResponse.DataUnit.ExternalUniqueID, o_pDataUnit->m_acExternalUniqueID);
-
- if (strlen(oResponse.DataUnit.ExternalTag) > KMS_MAX_EXTERNAL_TAG)
- {
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_CREATE_DATA_UNIT_RESPONSE_INVALID_EXTERNAL_TAG_LENGTH,
- NULL,
- NULL,
- NULL);
- bSuccess = false;
- }
- else
- {
- strncpy(o_pDataUnit->m_acExternalTag,
- oResponse.DataUnit.ExternalTag,
- sizeof(o_pDataUnit->m_acExternalTag));
- o_pDataUnit->m_acExternalTag[sizeof(o_pDataUnit->m_acExternalTag)-1] = '\0';
- }
-
- if (strlen(oResponse.DataUnit.Description) > KMS_MAX_DESCRIPTION)
- {
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_CREATE_DATA_UNIT_RESPONSE_INVALID_DESCRIPTION_LENGTH,
- NULL,
- NULL,
- NULL);
- bSuccess = false;
- }
- else
- {
- strcpy(o_pDataUnit->m_acDescription,
- oResponse.DataUnit.Description);
- }
-
- o_pDataUnit->m_iDataUnitState =
- (KMS_AGENT_DATA_UNIT_STATE) oResponse.DataUnit.DataUnitState;
- }
-
- if (bSuccess)
- {
- // add data unit ID and the creating KMA IP address to the DU cache
- CDataUnitCache* pDataUnitCache = (CDataUnitCache*) i_pProfile->m_pDataUnitCache;
-
- if (i_pProfile->m_iClusterDiscoveryFrequency != 0) // load balancing enabled
- {
- bSuccess = pDataUnitCache->Insert(
- o_pDataUnit->m_acDataUnitID,
- KMS_DATA_UNIT_ID_SIZE,
- NULL, 0,
- pLoadBalancer->GetApplianceNetworkAddress(iIndex));
- }
- }
-
- // free allocated memory for output if error condition
- // Clean up SOAP
-
- soap_destroy(pstSoap);
- soap_end(pstSoap);
-
- if (bSuccess)
- {
- RETURN(KMS_AGENT_STATUS_OK);
- }
-
- RETURN(KMSAgent_GetLastStatusCode(i_pProfile, iIndex));
-}
-
-extern "C"
-KMS_AGENT_STATUS KMSAgent_DisassociateDataUnitKeys (
- KMSClientProfile * const i_pProfile,
- const KMSAgent_DataUnit * const i_pDataUnit)
-{
- bool bSuccess;
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_DisassociateDataUnitKeys);
-#endif
-
- if (!i_pProfile)
- {
- Log(AUDIT_CLIENT_AGENT_DISASSOCIATE_DATA_UNIT_KEYS_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Profile arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (!i_pDataUnit)
- {
- Log(AUDIT_CLIENT_AGENT_DISASSOCIATE_DATA_UNIT_KEYS_INVALID_PARAMETERS,
- NULL,
- NULL,
- "DataUnit arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (!KMSClient_ProfileLoaded(i_pProfile))
- {
- RETURN(KMS_AGENT_STATUS_PROFILE_NOT_LOADED);
- }
-
- CAutoMutex oAutoMutex((K_MUTEX_HANDLE) i_pProfile->m_pLock);
-
- struct KMS_Agent::KMS_Agent__DataUnit stDataUnit = {(char *)"",
- (char *)"", (char *)"", (char *)"",
- (KMS_Agent::KMS_Agent__DataUnitState) 0};
-
- struct soap *pstSoap = (struct soap *) i_pProfile->m_pvSoap;
- struct KMS_Agent::KMS_Agent__DisassociateDataUnitKeysResponse oResponse;
-
- if (!CopyDataUnitFromRequest(pstSoap,
- &stDataUnit,
- i_pDataUnit))
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
-
- CAgentLoadBalancer *pLoadBalancer =
- (CAgentLoadBalancer *) i_pProfile->m_pAgentLoadBalancer;
- int iIndex = pLoadBalancer->BalanceByDataUnitID(
- i_pDataUnit->m_acDataUnitID,
- KMS_DATA_UNIT_ID_SIZE);
-
- if (iIndex >= 0)
- {
- do
- {
- const char* sURL = pLoadBalancer->GetHTTPSURL(
- iIndex,
- i_pProfile->m_iPortForAgentService);
-
- strncpy(i_pProfile->m_sURL, sURL, sizeof(i_pProfile->m_sURL));
-
- i_pProfile->m_sURL[sizeof(i_pProfile->m_sURL)-1] = '\0';
-
- bSuccess = KMS_Agent::soap_call_KMS_Agent__DisassociateDataUnitKeys(
- pstSoap,
- sURL,
- NULL,
- stDataUnit,
- oResponse) == SOAP_OK;
-
- if (!bSuccess)
- {
- iIndex = pLoadBalancer->FailOver(iIndex, pstSoap);
-
- char sKmaAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH];
- char sSoapFaultMsg[g_iMAX_SOAP_FAULT_MESSAGE_LENGTH];
-
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- GetSoapFault(sSoapFaultMsg, pstSoap);
-
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_DISASSOCIATE_DATA_UNIT_KEYS_SOAP_ERROR,
- NULL,
- sKmaAddress,
- sSoapFaultMsg);
- }
- else
- {
- pLoadBalancer->UpdateResponseStatus(iIndex);
- }
- }
- while (iIndex >= 0 && (!bSuccess));
- }
- else
- {
- bSuccess = false;
- }
-
- // no response data for this transaction
-
- // free allocated memory for output if error condition
- // Clean up SOAP
-
- soap_destroy(pstSoap);
- soap_end(pstSoap);
-
- if (bSuccess)
- {
- RETURN(KMS_AGENT_STATUS_OK);
- }
-
- RETURN(KMSAgent_GetLastStatusCode(i_pProfile, iIndex));
-}
-
-extern "C"
-KMS_AGENT_STATUS KMSAgent_RetrieveKey (
- KMSClientProfile * const i_pProfile,
- const unsigned char * const i_pKeyID,
- const KMSAgent_DataUnit * const i_pDataUnit,
- utf8cstr const i_pKeyGroupID,
- KMSAgent_Key * const o_pKey)
-{
- bool bSuccess;
-
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_RetrieveKey);
-#endif
-
- if (!i_pProfile)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Profile arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (!i_pKeyID)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_PARAMETERS,
- NULL,
- NULL,
- "KeyID arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (!o_pKey)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Key arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (!KMSClient_ProfileLoaded(i_pProfile))
- {
- RETURN(KMS_AGENT_STATUS_PROFILE_NOT_LOADED);
- }
-
- CAutoMutex oAutoMutex((K_MUTEX_HANDLE) i_pProfile->m_pLock);
-
- if (i_pKeyGroupID &&
- strlen(i_pKeyGroupID) > KMS_MAX_KEY_GROUP_ID_SIZE)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_PARAMETERS,
- NULL,
- NULL,
- "GroupID arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- struct KMS_Agent::KMS_Agent__DataUnit stDataUnit = {
- (char *)"", (char *)"", (char *)"", (char *)"",
- (KMS_Agent::KMS_Agent__DataUnitState) 0};
-
- struct soap *pstSoap = (struct soap *) i_pProfile->m_pvSoap;
- struct KMS_Agent::KMS_Agent__RetrieveKeyResponse oResponse;
-
- char * pKeyID = NULL;
- pKeyID = ConvertBinaryDataFromRequest(pstSoap,
- i_pKeyID,
- KMS_KEY_ID_SIZE);
- if (pKeyID == NULL)
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
-
- if (i_pDataUnit != NULL)
- {
- if (!CopyDataUnitFromRequest(pstSoap,
- &stDataUnit,
- i_pDataUnit))
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
- }
-
- char * pKeyGroupID = NULL;
- if (i_pKeyGroupID)
- {
- pKeyGroupID = ConvertUTF8StringFromRequest(pstSoap,
- i_pKeyGroupID,
- KMS_MAX_KEY_GROUP_ID_SIZE + 1);
- if (pKeyGroupID == NULL)
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
- }
-
- UTF8_KEYID acKWKID;
-
- char sKmaAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH];
- char sSoapFaultMsg[g_iMAX_SOAP_FAULT_MESSAGE_LENGTH];
- bool bClientAESKeyWrapSetupError = false;
-
- CAgentLoadBalancer *pLoadBalancer =
- (CAgentLoadBalancer *) i_pProfile->m_pAgentLoadBalancer;
- int iIndex = pLoadBalancer->BalanceByDataUnitKeyID(i_pKeyID, KMS_KEY_ID_SIZE);
-
- if (iIndex >= 0)
- {
- do
- {
- bSuccess = true;
- const char* sURL = pLoadBalancer->GetHTTPSURL(
- iIndex,
- i_pProfile->m_iPortForAgentService);
-
- strncpy(i_pProfile->m_sURL, sURL, sizeof(i_pProfile->m_sURL));
-
- i_pProfile->m_sURL[sizeof(i_pProfile->m_sURL)-1] = '\0';
-
- Long64 lKMAID = pLoadBalancer->GetKMAID(iIndex);
-
- if (bSuccess && pLoadBalancer->AESKeyWrapSupported(iIndex))
- {
- // if this fails we want to utilize normal failover logic, GetKWKID
- // logs error
- bSuccess = pLoadBalancer->GetKWKID(iIndex, lKMAID, pstSoap,
- acKWKID, &bClientAESKeyWrapSetupError) ? true : false;
- if (bSuccess)
- {
- bSuccess = KMS_Agent::soap_call_KMS_Agent__RetrieveKey2(
- pstSoap,
- sURL,
- NULL,
- pKeyID,
- stDataUnit,
- i_pKeyGroupID ? i_pKeyGroupID : (char *) "",
- acKWKID,
- //NOTE: this is ugly but the soap response struct's are the same for both flavors of CreateKey
- *(reinterpret_cast<struct KMS_Agent::KMS_Agent__RetrieveKey2Response *>(&oResponse))) == SOAP_OK;
- }
- }
- else if (bSuccess) // NO AES Key Wrap
- {
- bSuccess = KMS_Agent::soap_call_KMS_Agent__RetrieveKey(
- pstSoap,
- sURL,
- NULL,
- pKeyID,
- stDataUnit,
- i_pKeyGroupID ? i_pKeyGroupID : (char *) "",
- oResponse) == SOAP_OK;
- }
-
- // don'f failover for Client side AES Key Wrap setup problems
- if (!bSuccess && !bClientAESKeyWrapSetupError)
- {
- iIndex = pLoadBalancer->FailOver(iIndex, pstSoap);
-
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- GetSoapFault(sSoapFaultMsg, pstSoap);
-
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_KEY_SOAP_ERROR,
- NULL,
- sKmaAddress,
- sSoapFaultMsg);
- }
- if (bSuccess)
- {
- pLoadBalancer->UpdateResponseStatus(iIndex);
- }
- }
- while (iIndex >= 0 && (!bSuccess) && (!bClientAESKeyWrapSetupError));
- }
- else
- {
- bSuccess = false;
- }
-
- if (bSuccess)
- {
- if (KMS_KEY_ID_SIZE != ConvertUTF8HexStringToBinary(
- oResponse.Key.KeyID, NULL))
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_KEYID_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- bSuccess = false;
- }
- }
-
- if (bSuccess)
- {
- ConvertUTF8HexStringToBinary(
- oResponse.Key.KeyID, o_pKey->m_acKeyID);
-
- //if ( oResponse.Key.KeyState < (KMS_Agent__KeyState)KMS_KEY_STATE_ACTIVE_PROTECT_AND_PROCESS ||
- // oResponse.Key.KeyState > (KMS_Agent__KeyState)KMS_KEY_STATE_COMPROMISED )
- if ((KMS_AGENT_KEY_STATE) oResponse.Key.KeyState < KMS_KEY_STATE_ACTIVE_PROTECT_AND_PROCESS ||
- (KMS_AGENT_KEY_STATE) oResponse.Key.KeyState > KMS_KEY_STATE_COMPROMISED)
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_KEY_STATE_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- bSuccess = false;
- }
-
- o_pKey->m_iKeyState = (KMS_AGENT_KEY_STATE) oResponse.Key.KeyState;
-
- if ((KMS_KEY_TYPE) oResponse.Key.KeyType != KMS_KEY_TYPE_AES_256)
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_KEY_TYPE_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- bSuccess = false;
- }
-
- o_pKey->m_iKeyType = (KMS_KEY_TYPE) oResponse.Key.KeyType;
-
- if (strlen(oResponse.Key.KeyGroupID) > KMS_MAX_KEY_GROUP_ID_SIZE)
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_KEY_GROUP_ID_LENGTH_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- bSuccess = false;
- }
- else
- {
- strncpy(o_pKey->m_acKeyGroupID,
- oResponse.Key.KeyGroupID,
- sizeof(o_pKey->m_acKeyGroupID));
- o_pKey->m_acKeyGroupID[sizeof(o_pKey->m_acKeyGroupID)-1] = '\0';
- }
-
- if ( bSuccess && pLoadBalancer->AESKeyWrapSupported(iIndex))
- {
- // verify KWK ID matches what was registered
- if (oResponse.Key.Key.__size != KMS_MAX_WRAPPED_KEY_SIZE)
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_WRAPPED_KEY_LENGTH_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- bSuccess = false;
- }
- else
- {
- if (pLoadBalancer->AESKeyUnwrap(&iIndex, oResponse.Key.Key.__ptr,
- o_pKey->m_acKey) == false)
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_KEY_AESKEYUNWRAP_ERROR,
- NULL,
- sKmaAddress,
- NULL);
-
- bSuccess = false;
- }
- }
- }
- else if (bSuccess) // non-AES key wrap
- {
- if (oResponse.Key.Key.__size != KMS_MAX_KEY_SIZE)
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_KEY_LENGTH_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- bSuccess = false;
- }
- else
- {
- memcpy(o_pKey->m_acKey,
- oResponse.Key.Key.__ptr,
- KMS_MAX_KEY_SIZE);
- }
- }
-
- if (bSuccess)
- {
- o_pKey->m_iKeyLength = KMS_MAX_KEY_SIZE;
-
- if (KMSAgentKeyCallout(o_pKey->m_acKey) != 0)
- {
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_KEY_KEY_CALLOUT_ERROR,
- NULL,
- NULL,
- NULL);
- bSuccess = false;
- }
- }
- }
-
- // free allocated memory for output if error condition
- // Clean up SOAP
-
- soap_destroy(pstSoap);
- soap_end(pstSoap);
-
- if (bSuccess)
- {
- RETURN(KMS_AGENT_STATUS_OK);
- }
-
- RETURN(KMSAgent_GetLastStatusCode(i_pProfile,
- bClientAESKeyWrapSetupError ?
- CAgentLoadBalancer::AES_KEY_WRAP_SETUP_ERROR : iIndex));
-}
-
-extern "C"
-KMS_AGENT_STATUS KMSAgent_RetrieveDataUnit (
- KMSClientProfile * const i_pProfile,
- const unsigned char * const i_pDataUnitID,
- const unsigned char * const i_pExternalUniqueID,
- int i_iExternalUniqueIDLen,
- utf8cstr const i_pExternalTag,
- utf8cstr const i_pDescription,
- KMSAgent_DataUnit * const o_pDataUnit)
-{
- bool bSuccess;
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_RetrieveDataUnit);
-#endif
-
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("KMSAgent_RetrieveDataUnit entered\n");
-#endif
-
- // required parms
- if (!i_pProfile)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Profile arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (!i_pDataUnitID)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_INVALID_PARAMETERS,
- NULL,
- NULL,
- "DataUnitID arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (!o_pDataUnit)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_INVALID_PARAMETERS,
- NULL,
- NULL,
- "DataUnit arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
-
-
- if (!KMSClient_ProfileLoaded(i_pProfile))
- {
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("KMSAgent_RetrieveDataUnit profile not loaded\n");
-#endif
- RETURN(KMS_AGENT_STATUS_PROFILE_NOT_LOADED);
- }
-
- CAutoMutex oAutoMutex((K_MUTEX_HANDLE) i_pProfile->m_pLock);
-
- // validate input parms
-
- if (i_pExternalUniqueID &&
- (i_iExternalUniqueIDLen <= 0 ||
- i_iExternalUniqueIDLen > KMS_MAX_EXTERNAL_UNIQUE_ID_SIZE))
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_INVALID_PARAMETERS,
- NULL,
- NULL,
- "ExternalUniqueID arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (i_pExternalTag && strlen(i_pExternalTag) > KMS_MAX_EXTERNAL_TAG)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_INVALID_PARAMETERS,
- NULL,
- NULL,
- "ExternalTag arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (i_pDescription &&
- strlen(i_pDescription) > KMS_MAX_DESCRIPTION)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Description arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- // prepare args to soap transaction
-
- struct soap *pstSoap = (struct soap *) i_pProfile->m_pvSoap;
- struct KMS_Agent::KMS_Agent__RetrieveDataUnitResponse oResponse;
-
- char * pDataUnitID = NULL;
- pDataUnitID = ConvertBinaryDataFromRequest(pstSoap,
- i_pDataUnitID,
- KMS_DATA_UNIT_ID_SIZE);
- //sizeof(DATA_UNIT_ID) );
- if (pDataUnitID == NULL)
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
-
- char * pExternalUniqueID = NULL;
- if (i_pExternalUniqueID)
- {
- pExternalUniqueID = ConvertBinaryDataFromRequest(pstSoap,
- i_pExternalUniqueID,
- i_iExternalUniqueIDLen);
- if (pExternalUniqueID == NULL)
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
- }
-
- char * pExternalTag = NULL;
- if (i_pExternalTag)
- {
- pExternalTag = ConvertUTF8StringFromRequest(pstSoap,
- i_pExternalTag,
- KMS_MAX_EXTERNAL_TAG + 1);
- if (pExternalTag == NULL)
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
- }
-
- char * pDescription = NULL;
- if (i_pDescription)
- {
- pDescription = ConvertUTF8StringFromRequest(pstSoap,
- i_pDescription,
- KMS_MAX_DESCRIPTION + 1);
- if (pDescription == NULL)
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
- }
-
- CAgentLoadBalancer *pLoadBalancer =
- (CAgentLoadBalancer *) i_pProfile->m_pAgentLoadBalancer;
- int iIndex = pLoadBalancer->BalanceByDataUnitID(i_pDataUnitID,
- KMS_DATA_UNIT_ID_SIZE);
-
- if ( iIndex >= 0 )
- {
- do
- {
- const char* sURL = pLoadBalancer->GetHTTPSURL(
- iIndex,
- i_pProfile->m_iPortForAgentService);
-
- strncpy(i_pProfile->m_sURL, sURL, sizeof(i_pProfile->m_sURL));
-
- i_pProfile->m_sURL[sizeof(i_pProfile->m_sURL)-1] = '\0';
-
- bSuccess = KMS_Agent::soap_call_KMS_Agent__RetrieveDataUnit(
- pstSoap,
- sURL,
- NULL,
- pDataUnitID,
- i_pExternalUniqueID ? pExternalUniqueID : (char *) "",
- i_pExternalTag ? pExternalTag : (char *) "",
- i_pDescription ? pDescription : (char *) "",
- oResponse) == SOAP_OK;
-
- if (!bSuccess)
- {
- iIndex = pLoadBalancer->FailOver(iIndex, pstSoap);
-
- char sKmaAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH];
- char sSoapFaultMsg[g_iMAX_SOAP_FAULT_MESSAGE_LENGTH];
-
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- GetSoapFault(sSoapFaultMsg, pstSoap);
-
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_SOAP_ERROR,
- NULL,
- sKmaAddress,
- sSoapFaultMsg);
- }
- else
- {
- pLoadBalancer->UpdateResponseStatus(iIndex);
- }
- }
- while (iIndex >= 0 && (!bSuccess));
- }
- else
- {
- bSuccess = false;
- }
-
- if (bSuccess)
- {
- ConvertUTF8HexStringToBinary(
- oResponse.DataUnit.DataUnitID, o_pDataUnit->m_acDataUnitID);
-
- o_pDataUnit->m_iExternalUniqueIDLength = ConvertUTF8HexStringToBinary(
- oResponse.DataUnit.ExternalUniqueID, o_pDataUnit->m_acExternalUniqueID);
-
- if (strlen(oResponse.DataUnit.ExternalTag) > KMS_MAX_EXTERNAL_TAG)
- {
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_RESPONSE_INVALID_EXTERNAL_TAG_LENGTH,
- NULL,
- NULL,
- NULL);
- bSuccess = false;
- }
- else
- {
- strncpy(o_pDataUnit->m_acExternalTag,
- oResponse.DataUnit.ExternalTag,
- sizeof(o_pDataUnit->m_acExternalTag));
- o_pDataUnit->m_acExternalTag[sizeof(o_pDataUnit->m_acExternalTag)-1] = '\0';
- }
-
- if (strlen(oResponse.DataUnit.Description) > KMS_MAX_DESCRIPTION)
- {
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_RESPONSE_INVALID_DESCRIPTION_LENGTH,
- NULL,
- NULL,
- NULL);
- bSuccess = false;
- }
- else
- {
- strcpy(o_pDataUnit->m_acDescription,
- oResponse.DataUnit.Description);
- }
-
- o_pDataUnit->m_iDataUnitState =
- (KMS_AGENT_DATA_UNIT_STATE) oResponse.DataUnit.DataUnitState;
- }
-
- // free allocated memory for output if error condition
- // Clean up SOAP
-
- soap_destroy(pstSoap);
- soap_end(pstSoap);
-
- if (bSuccess)
- {
- RETURN(KMS_AGENT_STATUS_OK);
- }
-
- RETURN(KMSAgent_GetLastStatusCode(i_pProfile, iIndex));
-}
-
-extern "C"
-KMS_AGENT_STATUS KMSAgent_RetrieveDataUnitByExternalUniqueID (
- KMSClientProfile * const i_pProfile,
- const unsigned char* const i_pExternalUniqueID,
- int i_iExternalUniqueIDLen,
- utf8cstr const i_pExternalTag,
- utf8cstr const i_pDescription,
- KMSAgent_DataUnit * const o_pDataUnit)
-{
- bool bSuccess;
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_RetrieveDataUnitByExternalUniqueID);
-#endif
-
- // required parms
- if (!i_pProfile)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_BY_EXTERNAL_UNIQUE_ID_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Profile arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (!i_pExternalUniqueID)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_BY_EXTERNAL_UNIQUE_ID_INVALID_PARAMETERS,
- NULL,
- NULL,
- "ExternalUniqueID arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (!o_pDataUnit)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_BY_EXTERNAL_UNIQUE_ID_INVALID_PARAMETERS,
- NULL,
- NULL,
- "DataUnit arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (!KMSClient_ProfileLoaded(i_pProfile))
- {
- RETURN(KMS_AGENT_STATUS_PROFILE_NOT_LOADED);
- }
-
- CAutoMutex oAutoMutex((K_MUTEX_HANDLE) i_pProfile->m_pLock);
-
- // validate input parms
-
- if (i_iExternalUniqueIDLen <= 0 ||
- i_iExternalUniqueIDLen > KMS_MAX_EXTERNAL_UNIQUE_ID_SIZE)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_BY_EXTERNAL_UNIQUE_ID_INVALID_PARAMETERS,
- NULL,
- NULL,
- "ExternalUniqueIDLen arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (i_pExternalTag && strlen(i_pExternalTag) > KMS_MAX_EXTERNAL_TAG)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_BY_EXTERNAL_UNIQUE_ID_INVALID_PARAMETERS,
- NULL,
- NULL,
- "ExternalTag arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (i_pDescription &&
- strlen(i_pDescription) > KMS_MAX_DESCRIPTION)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_BY_EXTERNAL_UNIQUE_ID_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Description arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- // prepare args to soap transaction
-
- struct soap *pstSoap = (struct soap *) i_pProfile->m_pvSoap;
- struct KMS_Agent::KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse oResponse;
-
- char * pExternalUniqueID = NULL;
- pExternalUniqueID = ConvertBinaryDataFromRequest(pstSoap,
- i_pExternalUniqueID,
- i_iExternalUniqueIDLen);
- if (pExternalUniqueID == NULL)
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
-
- char * pExternalTag = NULL;
- if (i_pExternalTag)
- {
- pExternalTag = ConvertUTF8StringFromRequest(pstSoap,
- i_pExternalTag,
- KMS_MAX_EXTERNAL_TAG + 1);
- if (pExternalTag == NULL)
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
- }
-
- char * pDescription = NULL;
- if (i_pDescription)
- {
- pDescription = ConvertUTF8StringFromRequest(pstSoap,
- i_pDescription,
- KMS_MAX_DESCRIPTION + 1);
- if (pDescription == NULL)
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
- }
-
- CAgentLoadBalancer *pLoadBalancer =
- (CAgentLoadBalancer *) i_pProfile->m_pAgentLoadBalancer;
- int iIndex = pLoadBalancer->Balance();
-
- if ( iIndex >= 0 )
- {
- do
- {
- const char* sURL = pLoadBalancer->GetHTTPSURL(
- iIndex,
- i_pProfile->m_iPortForAgentService);
-
- strncpy(i_pProfile->m_sURL, sURL, sizeof(i_pProfile->m_sURL));
-
- i_pProfile->m_sURL[sizeof(i_pProfile->m_sURL)-1] = '\0';
-
- bSuccess = KMS_Agent::
- soap_call_KMS_Agent__RetrieveDataUnitByExternalUniqueID(
- pstSoap,
- sURL,
- NULL,
- pExternalUniqueID,
- i_pExternalTag ? pExternalTag : (char *) "",
- i_pDescription ? pDescription : (char *) "",
- oResponse) == SOAP_OK;
-
- if (!bSuccess)
- {
- iIndex = pLoadBalancer->FailOver(iIndex, pstSoap);
-
- char sKmaAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH];
- char sSoapFaultMsg[g_iMAX_SOAP_FAULT_MESSAGE_LENGTH];
-
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- GetSoapFault(sSoapFaultMsg, pstSoap);
-
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_BY_EXTERNAL_UNIQUE_ID_SOAP_ERROR,
- NULL,
- sKmaAddress,
- sSoapFaultMsg);
- }
- else
- {
- pLoadBalancer->UpdateResponseStatus(iIndex);
- }
- }
- while (iIndex >= 0 && (!bSuccess));
- }
- else
- {
- bSuccess = false;
- }
-
- if (bSuccess)
- {
- ConvertUTF8HexStringToBinary(
- oResponse.DataUnit.DataUnitID, o_pDataUnit->m_acDataUnitID);
-
- o_pDataUnit->m_iExternalUniqueIDLength = ConvertUTF8HexStringToBinary(
- oResponse.DataUnit.ExternalUniqueID,
- o_pDataUnit->m_acExternalUniqueID);
-
- if (strlen(oResponse.DataUnit.ExternalTag) > KMS_MAX_EXTERNAL_TAG)
- {
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_BY_EXTERNAL_UNIQUE_ID_RESPONSE_INVALID_EXTERNAL_TAG_LENGTH,
- NULL,
- NULL,
- NULL);
- bSuccess = false;
- }
- else
- {
- strncpy(o_pDataUnit->m_acExternalTag,
- oResponse.DataUnit.ExternalTag,
- sizeof(o_pDataUnit->m_acExternalTag));
- o_pDataUnit->m_acExternalTag[sizeof(o_pDataUnit->m_acExternalTag)-1] = '\0';
- }
-
- if (strlen(oResponse.DataUnit.Description) > KMS_MAX_DESCRIPTION)
- {
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_BY_EXTERNAL_UNIQUE_ID_RESPONSE_INVALID_DESCRIPTION_LENGTH,
- NULL,
- NULL,
- NULL);
- bSuccess = false;
- }
- else
- {
- strcpy(o_pDataUnit->m_acDescription,
- oResponse.DataUnit.Description);
- }
-
- o_pDataUnit->m_iDataUnitState =
- (KMS_AGENT_DATA_UNIT_STATE) oResponse.DataUnit.DataUnitState;
-
- if (bSuccess)
- {
- // RetrieveDataUnitByExternalUniqueID may create a DU so add data unit ID
- // and the KMA IP address to the DU cache
- CDataUnitCache* pDataUnitCache = (CDataUnitCache*) i_pProfile->m_pDataUnitCache;
-
- if (i_pProfile->m_iClusterDiscoveryFrequency != 0) // load balancing enabled
- {
- bSuccess = pDataUnitCache->Insert(
- o_pDataUnit->m_acDataUnitID,
- KMS_DATA_UNIT_ID_SIZE,
- NULL, 0,
- pLoadBalancer->GetApplianceNetworkAddress(iIndex));
- }
- }
- }
-
- // free allocated memory for output if error condition
- // Clean up SOAP
-
- soap_destroy(pstSoap);
- soap_end(pstSoap);
-
- if (bSuccess)
- {
- RETURN(KMS_AGENT_STATUS_OK);
- }
-
- RETURN(KMSAgent_GetLastStatusCode(i_pProfile, iIndex));
-}
-
-extern "C"
-KMS_AGENT_STATUS KMSAgent_RetrieveDataUnitKeys (
- KMSClientProfile * const i_pProfile,
- const KMSAgent_DataUnit * const i_pDataUnit,
- int i_iPageSize,
- int i_iPageOffset,
- int* const o_piKeysRemaining,
- const unsigned char * const i_pKeyID,
- KMSAgent_ArrayOfKeys* * const o_ppKeys)
-{
- bool bSuccess;
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_RetrieveDataUnitKeys);
-#endif
-
- if (!i_pProfile)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Profile arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (!i_pDataUnit)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_PARAMETERS,
- NULL,
- NULL,
- "DataUnit arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (!o_piKeysRemaining)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_PARAMETERS,
- NULL,
- NULL,
- "KeysRemaining arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (!o_ppKeys)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Keys arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (i_pKeyID && i_iPageOffset != 0)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_PARAMETERS,
- NULL,
- NULL,
- "KeyID and PageOffset are mutually exclusive");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (!KMSClient_ProfileLoaded(i_pProfile))
- {
- RETURN(KMS_AGENT_STATUS_PROFILE_NOT_LOADED);
- }
-
- CAutoMutex oAutoMutex((K_MUTEX_HANDLE) i_pProfile->m_pLock);
-
- // validate input parms
-
- if (i_iPageSize <= 0 || i_iPageSize > KMS_MAX_PAGE_SIZE)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_PARAMETERS,
- NULL,
- NULL,
- "PageSize arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (i_iPageOffset < 0)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_PARAMETERS,
- NULL,
- NULL,
- "PageOffset arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- // prepare args to soap transaction
-
- struct KMS_Agent::KMS_Agent__DataUnit stDataUnit = {
- (char *)"", (char *)"", (char *)"", (char *)"",
- (KMS_Agent::KMS_Agent__DataUnitState) 0};
-
- struct soap *pstSoap = (struct soap *) i_pProfile->m_pvSoap;
- struct KMS_Agent::KMS_Agent__RetrieveDataUnitKeysResponse oResponse;
-
- if (!CopyDataUnitFromRequest(pstSoap,
- &stDataUnit,
- i_pDataUnit))
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
-
- char * pKeyID = NULL;
- if (i_pKeyID)
- {
- pKeyID = ConvertBinaryDataFromRequest(pstSoap,
- i_pKeyID,
- KMS_KEY_ID_SIZE);
- if (pKeyID == NULL)
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
- }
-
- UTF8_KEYID acKWKID;
- char sKmaAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH];
- char sSoapFaultMsg[g_iMAX_SOAP_FAULT_MESSAGE_LENGTH];
- bool bClientAESKeyWrapSetupError = false;
-
- CAgentLoadBalancer *pLoadBalancer =
- (CAgentLoadBalancer *) i_pProfile->m_pAgentLoadBalancer;
-
- int iIndex = pLoadBalancer->BalanceByDataUnitID(i_pDataUnit->m_acDataUnitID,
- KMS_DATA_UNIT_ID_SIZE);
-
- if (iIndex >= 0)
- {
- do
- {
- bSuccess = true;
-
- const char* sURL = pLoadBalancer->GetHTTPSURL(
- iIndex,
- i_pProfile->m_iPortForAgentService);
-
- strncpy(i_pProfile->m_sURL, sURL, sizeof(i_pProfile->m_sURL));
-
- i_pProfile->m_sURL[sizeof(i_pProfile->m_sURL)-1] = 0;
-
- Long64 lKMAID = pLoadBalancer->GetKMAID(iIndex);
-
- if (bSuccess && pLoadBalancer->AESKeyWrapSupported(iIndex))
- {
- // if this fails we want to utilize normal failover logic, GetKWKID
- // logs error
- bSuccess = pLoadBalancer->GetKWKID(iIndex, lKMAID, pstSoap,
- acKWKID, &bClientAESKeyWrapSetupError) ? true : false;
- if (bSuccess)
- {
- bSuccess = KMS_Agent::soap_call_KMS_Agent__RetrieveDataUnitKeys2(
- pstSoap,
- sURL,
- NULL,
- stDataUnit,
- i_iPageSize,
- i_iPageOffset,
- pKeyID,
- acKWKID,
- *(reinterpret_cast<struct KMS_Agent::KMS_Agent__RetrieveDataUnitKeys2Response *>(&oResponse))) == SOAP_OK;
- }
- }
- else if (bSuccess) // No AES Key Wrap
- {
- bSuccess = KMS_Agent::soap_call_KMS_Agent__RetrieveDataUnitKeys(
- pstSoap,
- sURL,
- NULL,
- stDataUnit,
- i_iPageSize,
- i_iPageOffset,
- pKeyID,
- oResponse) == SOAP_OK;
- }
-
- // don'f failover for Client side AES Key Wrap setup problems
- if (!bSuccess && !bClientAESKeyWrapSetupError)
- {
- iIndex = pLoadBalancer->FailOver(iIndex, pstSoap);
-
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- GetSoapFault(sSoapFaultMsg, pstSoap);
-
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_SOAP_ERROR,
- NULL,
- sKmaAddress,
- sSoapFaultMsg);
- }
- if (bSuccess)
- {
- pLoadBalancer->UpdateResponseStatus(iIndex);
- }
- }
- while (iIndex >= 0 && (!bSuccess) && (!bClientAESKeyWrapSetupError));
- }
- else
- {
- bSuccess = false;
- }
-
- // validate response
-
- if (bSuccess && oResponse.KeysRemaining < 0)
- {
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEYS_REMAINING_RESPONSE,
- NULL,
- NULL,
- NULL);
- bSuccess = false;
- }
-
- if (bSuccess &&
- (oResponse.Keys.__size < 0 ||
- oResponse.Keys.__size > i_iPageSize))
- {
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEYS_SIZE_RESPONSE,
- NULL,
- NULL,
- NULL);
- bSuccess = false;
- }
-
- if ( bSuccess && pLoadBalancer->AESKeyWrapSupported(iIndex))
- {
- // verify KWK ID matches what was registered
- }
-
- if (bSuccess)
- {
- *o_ppKeys = CopyDataUnitKeysResponse(i_pProfile, &iIndex, &oResponse.Keys);
-
- if (*o_ppKeys == NULL)
- {
- // CopyDataUnitKeysResponse logs errors
- bSuccess = false;
- }
- *o_piKeysRemaining = (int) oResponse.KeysRemaining;
- }
-
- // free allocated memory for output if error condition
- // Clean up SOAP
-
- soap_destroy(pstSoap);
- soap_end(pstSoap);
-
- if (bSuccess)
- {
- RETURN(KMS_AGENT_STATUS_OK);
- }
-
- RETURN(KMSAgent_GetLastStatusCode(i_pProfile,
- bClientAESKeyWrapSetupError ?
- CAgentLoadBalancer::AES_KEY_WRAP_SETUP_ERROR : iIndex));
-}
-
-extern "C"
-KMS_AGENT_STATUS KMSAgent_RetrieveProtectAndProcessKey (
- KMSClientProfile * const i_pProfile,
- const KMSAgent_DataUnit * const i_pDataUnit,
- utf8cstr const i_pKeyGroupID,
- KMSAgent_Key * const o_pKey)
-{
- bool bSuccess;
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_RetrieveProtectAndProcessKey);
-#endif
-
- if (!i_pProfile || !i_pDataUnit || !o_pKey)
- {
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (!i_pProfile)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Profile arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (!i_pDataUnit)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_PARAMETERS,
- NULL,
- NULL,
- "DataUnit arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (!o_pKey)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Key arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (i_pKeyGroupID &&
- strlen(i_pKeyGroupID) > KMS_MAX_KEY_GROUP_ID_SIZE)
- {
- Log(AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_PARAMETERS,
- NULL,
- NULL,
- "GroupID arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (!KMSClient_ProfileLoaded(i_pProfile))
- {
- RETURN(KMS_AGENT_STATUS_PROFILE_NOT_LOADED);
- }
-
- CAutoMutex oAutoMutex((K_MUTEX_HANDLE) i_pProfile->m_pLock);
-
- struct KMS_Agent::KMS_Agent__DataUnit stDataUnit = {
- (char *)"", (char *)"", (char *)"", (char *)"",
- (KMS_Agent::KMS_Agent__DataUnitState) 0};
-
- struct soap *pstSoap = (struct soap *) i_pProfile->m_pvSoap;
- struct KMS_Agent::KMS_Agent__RetrieveProtectAndProcessKeyResponse oResponse;
-
- if (i_pDataUnit != NULL)
- {
- if (!CopyDataUnitFromRequest(pstSoap,
- &stDataUnit,
- i_pDataUnit))
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
- }
-
- char * pKeyGroupID = NULL;
- if (i_pKeyGroupID)
- {
- pKeyGroupID = ConvertUTF8StringFromRequest(pstSoap,
- i_pKeyGroupID,
- KMS_MAX_KEY_GROUP_ID_SIZE + 1);
- if (pKeyGroupID == NULL)
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- // no memory dont' log
- RETURN(KMS_AGENT_STATUS_NO_MEMORY);
- }
- }
-
- char sKmaAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH];
- char sSoapFaultMsg[g_iMAX_SOAP_FAULT_MESSAGE_LENGTH];
- bool bClientAESKeyWrapSetupError = false;
- UTF8_KEYID acKWKID;
-
- CAgentLoadBalancer *pLoadBalancer = (CAgentLoadBalancer *) i_pProfile->m_pAgentLoadBalancer;
- int iIndex = pLoadBalancer->BalanceByDataUnitID(i_pDataUnit->m_acDataUnitID,
- KMS_DATA_UNIT_ID_SIZE);
-
- if (iIndex >= 0)
- {
- do
- {
- bSuccess = true;
- const char* sURL = pLoadBalancer->GetHTTPSURL(
- iIndex,
- i_pProfile->m_iPortForAgentService);
-
- strncpy(i_pProfile->m_sURL, sURL, sizeof(i_pProfile->m_sURL));
-
- i_pProfile->m_sURL[sizeof(i_pProfile->m_sURL)-1] = '\0';
-
- Long64 lKMAID = pLoadBalancer->GetKMAID(iIndex);
-
- if (bSuccess && pLoadBalancer->AESKeyWrapSupported(iIndex))
- {
- // if this fails we want to utilize normal failover logic, GetKWKID
- // logs error
- bSuccess = pLoadBalancer->GetKWKID(iIndex, lKMAID, pstSoap,
- acKWKID, &bClientAESKeyWrapSetupError)
- ? true : false;
- if (bSuccess)
- {
- bSuccess = KMS_Agent::soap_call_KMS_Agent__RetrieveProtectAndProcessKey2(
- pstSoap,
- sURL,
- NULL,
- stDataUnit,
- i_pKeyGroupID ? i_pKeyGroupID : (char *) "",
- acKWKID,
- *(reinterpret_cast<struct KMS_Agent::KMS_Agent__RetrieveProtectAndProcessKey2Response *>(&oResponse))) == SOAP_OK;
- }
- }
- else if (bSuccess) // No AES Key Wrap
- {
- bSuccess = KMS_Agent::soap_call_KMS_Agent__RetrieveProtectAndProcessKey(
- pstSoap,
- sURL,
- NULL,
- stDataUnit,
- i_pKeyGroupID ? i_pKeyGroupID : (char *) "",
- oResponse) == SOAP_OK;
- }
-
- // don'f failover for Client side AES Key Wrap setup problems
- if (!bSuccess && !bClientAESKeyWrapSetupError)
- {
- iIndex = pLoadBalancer->FailOver(iIndex, pstSoap);
-
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- GetSoapFault(sSoapFaultMsg, pstSoap);
-
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_SOAP_ERROR,
- NULL,
- sKmaAddress,
- sSoapFaultMsg);
- }
- else
- {
- pLoadBalancer->UpdateResponseStatus(iIndex);
- }
- }
- while (iIndex >= 0 && (!bSuccess) && (!bClientAESKeyWrapSetupError));
- }
- else
- {
- bSuccess = false;
- }
-
- if (bSuccess)
- {
- if (KMS_KEY_ID_SIZE != ConvertUTF8HexStringToBinary(
- oResponse.Key.KeyID, NULL))
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_KEYID_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- bSuccess = false;
- }
- }
-
- if (bSuccess)
- {
- ConvertUTF8HexStringToBinary(
- oResponse.Key.KeyID, o_pKey->m_acKeyID);
-
- if ((KMS_AGENT_KEY_STATE) oResponse.Key.KeyState < KMS_KEY_STATE_ACTIVE_PROTECT_AND_PROCESS ||
- (KMS_AGENT_KEY_STATE) oResponse.Key.KeyState > KMS_KEY_STATE_COMPROMISED)
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_KEY_STATE_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- bSuccess = false;
- }
-
- o_pKey->m_iKeyState = (KMS_AGENT_KEY_STATE) oResponse.Key.KeyState;
-
- if ((KMS_KEY_TYPE) oResponse.Key.KeyType != KMS_KEY_TYPE_AES_256)
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_KEY_TYPE_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- bSuccess = false;
- }
-
- o_pKey->m_iKeyType = (KMS_KEY_TYPE) oResponse.Key.KeyType;
-
- if (strlen(oResponse.Key.KeyGroupID) > KMS_MAX_KEY_GROUP_ID_SIZE)
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_KEY_GROUP_ID_LENGTH_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- bSuccess = false;
- }
- else
- {
- strncpy(o_pKey->m_acKeyGroupID,
- oResponse.Key.KeyGroupID,
- sizeof(o_pKey->m_acKeyGroupID));
- o_pKey->m_acKeyGroupID[sizeof(o_pKey->m_acKeyGroupID)-1] = '\0';
- }
-
- if ( bSuccess && pLoadBalancer->AESKeyWrapSupported(iIndex))
- {
- // verify KWK ID matches what was registered
- if (oResponse.Key.Key.__size != KMS_MAX_WRAPPED_KEY_SIZE)
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_WRAPPED_KEY_LENGTH_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- bSuccess = false;
- }
- else
- {
- if (pLoadBalancer->AESKeyUnwrap(&iIndex, oResponse.Key.Key.__ptr,
- o_pKey->m_acKey) == false)
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_AESKEYUNWRAP_ERROR,
- NULL,
- sKmaAddress,
- NULL);
-
- bSuccess = false;
- }
- }
- }
- else if (bSuccess) // non-AES key wrap
- {
- if (oResponse.Key.Key.__size != KMS_MAX_KEY_SIZE)
- {
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_KEY_LENGTH_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- bSuccess = false;
- }
- else
- {
- memcpy(o_pKey->m_acKey,
- oResponse.Key.Key.__ptr,
- KMS_MAX_KEY_SIZE);
- }
- }
-
- if (bSuccess)
- {
- o_pKey->m_iKeyLength = KMS_MAX_KEY_SIZE;
-
- if (KMSAgentKeyCallout(o_pKey->m_acKey) != 0)
- {
- LogError(i_pProfile,
- AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_KEY_CALLOUT_ERROR,
- NULL,
- NULL,
- NULL);
- bSuccess = false;
- }
- }
- }
-
- if (bSuccess)
- {
- // add Key ID and the creating KMA IP address to the DU cache
- CDataUnitCache* pDataUnitCache = (CDataUnitCache*) i_pProfile->m_pDataUnitCache;
-
- if (i_pProfile->m_iClusterDiscoveryFrequency != 0) // load balancing enabled
- {
- bSuccess = pDataUnitCache->Insert(
- NULL,
- 0,
- o_pKey->m_acKeyID,
- KMS_KEY_ID_SIZE,
- pLoadBalancer->GetApplianceNetworkAddress(iIndex));
- }
- }
-
- // free allocated memory for output if error condition
- // Clean up SOAP
-
- soap_destroy(pstSoap);
- soap_end(pstSoap);
-
- if (bSuccess)
- {
- RETURN(KMS_AGENT_STATUS_OK);
- }
-
- RETURN(KMSAgent_GetLastStatusCode(i_pProfile,
- bClientAESKeyWrapSetupError ?
- CAgentLoadBalancer::AES_KEY_WRAP_SETUP_ERROR : iIndex));
-}
-
-extern "C"
-void KMSAgent_FreeArrayOfKeys (
- KMSAgent_ArrayOfKeys* i_pArrayOfKeys)
-{
-#if defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_FreeArrayOfKeys);
-#endif
- if (!i_pArrayOfKeys)
- {
- return;
- }
-
- // free memory for all information groups
- if (i_pArrayOfKeys->m_pKeys)
- {
- free(i_pArrayOfKeys->m_pKeys);
- }
-
- free(i_pArrayOfKeys);
-}
-
-/*---------------------------------------------------------------------------
- * Function: KMSAgent_CreateAuditLog
- *
- *--------------------------------------------------------------------------*/
-extern "C"
-KMS_AGENT_STATUS KMSAgent_CreateAuditLog (
- KMSClientProfile* i_pProfile,
- enum KMS_AUDIT_LOG_RETENTION i_iRetention,
- enum KMS_AUDIT_LOG_CONDITION i_iCondition,
- int i_bIssueAlert,
- utf8cstr i_pMessage)
-{
- bool bSuccess = true;
-#ifdef DEBUG_TIMING
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE(trace, KMSAgent_CreateAuditLog);
-#endif
-
- // START_STACK_CHECK;
-
- if (!i_pProfile)
- {
- Log(AUDIT_CLIENT_AGENT_CREATED_AUDIT_LOG_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Profile arg");
-
- // END_STACK_CHECK;
-
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- // check arguments
- if (i_iRetention > KMS_AUDIT_LOG_SHORT_TERM_RETENTION)
- {
- Log(AUDIT_CLIENT_AGENT_CREATE_AUDIT_LOG_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Retention arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (i_iCondition > KMS_AUDIT_LOG_WARNING_CONDITION)
- {
- Log(AUDIT_CLIENT_AGENT_CREATE_AUDIT_LOG_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Condition arg");
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
-
- if (!i_pMessage || (strlen(i_pMessage) <= 0))
- {
- Log(AUDIT_CLIENT_AGENT_CREATE_AUDIT_LOG_INVALID_PARAMETERS,
- NULL,
- NULL,
- "Message arg");
- // END_STACK_CHECK;
- RETURN(KMS_AGENT_STATUS_INVALID_PARAMETER);
- }
- if (!KMSClient_ProfileLoaded(i_pProfile))
- {
- // END_STACK_CHECK;
- RETURN(KMS_AGENT_STATUS_PROFILE_NOT_LOADED);
- }
-
- CAutoMutex oAutoMutex((K_MUTEX_HANDLE) i_pProfile->m_pLock);
-
- struct soap* pstSoap = (struct soap*) i_pProfile->m_pvSoap;
-
- // Create Audit Log
-
- KMS_Agent::KMS_Agent__CreateAuditLogResponse oResponse;
-
- CAgentLoadBalancer *pLoadBalancer =
- (CAgentLoadBalancer *) i_pProfile->m_pAgentLoadBalancer;
-
- int iIndex = pLoadBalancer->Balance();
- if (iIndex >= 0)
- {
- do
- {
- const char* sURL = pLoadBalancer->
- GetHTTPSURL(iIndex, i_pProfile->m_iPortForAgentService);
- strncpy(i_pProfile->m_sURL, sURL, sizeof(i_pProfile->m_sURL));
- i_pProfile->m_sURL[sizeof(i_pProfile->m_sURL)-1] = '\0';
-
- bSuccess = KMS_Agent::soap_call_KMS_Agent__CreateAuditLog(
- pstSoap,
- sURL,
- NULL,
- (enum KMS_Agent::KMS_Agent__AuditLogRetention)i_iRetention,
- (enum KMS_Agent::KMS_Agent__AuditLogCondition)i_iCondition,
- i_bIssueAlert ? true : false,
- i_pMessage,
- oResponse) == SOAP_OK;
-
-
- if (!bSuccess)
- {
- char sSoapFaultMsg[g_iMAX_SOAP_FAULT_MESSAGE_LENGTH];
- char sKmaAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH];
-
- GetSoapFault(sSoapFaultMsg, pstSoap);
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
-
- iIndex = pLoadBalancer->FailOver(iIndex, pstSoap);
-
- LogError(i_pProfile, AUDIT_CLIENT_AGENT_CREATE_AUDIT_LOG_SOAP_ERROR,
- NULL,
- sKmaAddress,
- sSoapFaultMsg);
- }
- else
- {
- pLoadBalancer->UpdateResponseStatus(iIndex);
- }
- }
- while (iIndex >= 0 && (!bSuccess));
- }
- else
- {
- bSuccess = false;
- }
-
- // free allocated memory for output if error condition
- // Clean up SOAP
-
- soap_destroy(pstSoap);
- soap_end(pstSoap);
-
- if (bSuccess)
- {
- // END_STACK_CHECK;
- RETURN(KMS_AGENT_STATUS_OK);
- }
-
- // END_STACK_CHECK;
- RETURN(KMSAgent_GetLastStatusCode(i_pProfile, iIndex));
-}
-
-#ifdef KMSUSERPKCS12
-/*
- * This function allows the user to change the PIN on the PKCS12
- * file that holds the clients private key and cert.
- */
-extern "C"
-KMS_AGENT_STATUS KMSAgent_ChangeLocalPWD(
- KMSClientProfile* i_pProfile,
- utf8cstr const i_pOldPassphrase,
- utf8cstr const i_pNewPassphrase)
-{
- CCertificate *pCert;
- CPrivateKey *pKey;
- bool bSuccess;
-
- pCert = new CCertificate;
- pKey = new CPrivateKey;
-
- bSuccess = GetPKCS12CertAndKey(i_pProfile, i_pOldPassphrase,
- pCert, pKey);
- if (!bSuccess)
- return(KMSAgent_GetLastStatusCode(i_pProfile, 0));
-
- bSuccess = StoreAgentPKI(i_pProfile, pCert, pKey, i_pNewPassphrase);
- if (!bSuccess)
- return(KMSAgent_GetLastStatusCode(i_pProfile, 0));
-
- return (KMS_AGENT_STATUS_OK);
-}
-#endif /* KMSUSERPKCS12 */
diff --git a/usr/src/lib/libkmsagent/common/KMSAgent.h b/usr/src/lib/libkmsagent/common/KMSAgent.h
deleted file mode 100644
index b06da4b6a8..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgent.h
+++ /dev/null
@@ -1,1163 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/** @file KMSAgent.h
- * @defgroup EncryptionAgent Encryption Agent API
- *
- * The Agent API is used to communicate with the KMS Appliance for the
- * purpose of registering storage devices, obtaining device keys, and
- * receiving notifications of storage device events such as destruction.
- *
- */
-#ifndef KMS_AGENT_H
-#define KMS_AGENT_H
-
-#include "KMSClientProfile.h"
-
-/*---------------------------------------------------------------------------
- * The following ifdef block is the standard way of creating macros which
- * make exporting from a DLL simpler. All files within this DLL are compiled
- * with the KMS_AGENT_EXPORT symbol defined on the command line. this symbol
- * should not be defined on any project that uses this DLL. This way any
- * other project whose source files include this file see KMS Agent API functions
- * as being imported from a DLL, wheras this DLL sees symbols defined with
- * this macro as being exported.
- *--------------------------------------------------------------------------*/
-#ifdef KMS_AGENT_EXPORT
-#define KMS_AGENT_API __declspec(dllexport)
-#else
-#define KMS_AGENT_API __declspec(dllimport)
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*---------------------------------------------------------------------------
- * Return Codes
- *--------------------------------------------------------------------------*/
-
-/**
- * The status type returned on API calls
- */
-typedef int KMS_AGENT_STATUS;
-
-/**
- * successful status
- */
-#define KMS_AGENT_STATUS_OK 0
-
-/* error status values */
-/**
- * generic error is a catch all for a wide variety of errors, see the specific
- * entry in the audit log for the details. In general, the client API will return
- * one of the specific status codes.
- */
-#define KMS_AGENT_STATUS_GENERIC_ERROR 100
-
-/**
- * insufficient memory for the agent library to complete the request
- */
-#define KMS_AGENT_STATUS_NO_MEMORY 102
-
-/**
- * parameter error, invalid input
- */
-#define KMS_AGENT_STATUS_INVALID_PARAMETER 103
-
-/**
- * an API call was made before the profile was loaded
- */
-#define KMS_AGENT_STATUS_PROFILE_NOT_LOADED 104
-
-/**
- * upon receipt of a key the callout function returned an error
- */
-#define KMS_AGENT_STATUS_KEY_CALLOUT_FAILURE 105
-
-/**
- * the specified profile failover attempts have been exceeded or no KMAs are available within the cluster
- */
-#define KMS_AGENT_STATUS_KMS_UNAVAILABLE 106
-
-/**
- * the KMS does not have any keys in the READY state, this is a KMS issue that requires attention
- * from a KMS administrator.
- */
-#define KMS_AGENT_STATUS_KMS_NO_READY_KEYS 107
-
-/**
- * the FIPS 140-2 known answer test (KAK) failed for AES Key wrap.
- */
-#define KMS_AGENT_STATUS_FIPS_KAT_AES_KEYWRAP_ERROR 108
-
-/**
- * #FIPS_MODE was specified on #KMSAgent_LoadProfile
- * but no FIPS compatible KMAs are currently
- * available. Also, it may be that no FIPS compatible KMAs have been
- * configured within the KMS.
- */
-#define KMS_AGENT_STATUS_NO_FIPS_KMAS_AVAILABLE 109
-
-/**
- * the profile was already successfully loaded and should be unloaded
- * before attempting to load it again
- */
-#define KMS_AGENT_STATUS_PROFILE_ALREADY_LOADED 110
-
-/**
- * the FIPS 140-2 known answer test (KAK) failed for AES ECB.
- */
-#define KMS_AGENT_STATUS_FIPS_KAT_AES_ECB_ERROR 111
-
-/**
- * the FIPS 140-2 known answer test (KAK) failed for HMAC-SHA1.
- */
-#define KMS_AGENT_STATUS_FIPS_KAT_HMAC_SHA1_ERROR 112
-
-/*
- * SOAP Sender Errors - client errors associated with a KMS SOAP service
- */
-
-/**
- * the following conditions can result in access denied being returned by the KMSAgent Soap service:
- * <ul>
- * <li>Agent is not enabled on the KMS
- * <li>Invalid DataUnitID or DataUnit does not exist
- * <li>Invalid ExternalUniqueID or DataUnit does not exist with specified ID
- * <li>Invalid ExternalTag
- * <li>Invalid KeyID
- * <li>Invalid KeyGroup or KeyGroup does not exist
- * <li>The Agent ID is not recognized as an agent by the KMS, i.e. the agent may not exist or the
- * ID represents another kind of entity.
- * <li>No KeyGroup specified and the Agent is not configured to have a default KeyGroup
- * <li>Agent does not have access to the specified KeyGroup
- * </ul>
- * to prevent leakage of information the specific details for access being denied are not
- * disclosed. Audit log entries at the KMS can be used to determine specific reasons for
- * access being denied.
- */
-#define KMS_AGENT_STATUS_ACCESS_DENIED 200
-
-/**
- * This error status is only returned when received from the KMS and the transaction
- * timeout has been exceeded.
- */
-#define KMS_AGENT_STATUS_SERVER_BUSY 201
-
-/**
- * a data unit already exists with the specified external unique identifier
- */
-#define KMS_AGENT_STATUS_EXTERNAL_UNIQUE_ID_EXISTS 202
-
-/**
- * The external unique ID specified was found to exist but the corresponding
- * DataUnitID did not exist.
- */
-#define KMS_AGENT_STATUS_DATA_UNIT_ID_NOT_FOUND_EXTERNAL_ID_EXISTS 203
-
-
-/**
- * The specified key has been destroyed or is unknown to the KMS
- */
-#define KMS_AGENT_STATUS_KEY_DOES_NOT_EXIST 204
-
-/**
- * The requested key has been destroyed.
- */
-#define KMS_AGENT_STATUS_KEY_DESTROYED 205
-
-/**
- * The key received from a KMA encountered an error during AES Key Unwrapping
- */
-#define KMS_AGENT_AES_KEY_UNWRAP_ERROR 206
-
-/**
- * An error occurred during establishment of an AES Key-Encryption Key
- */
-#define KMS_AGENT_AES_KEY_WRAP_SETUP_ERROR 207
-
-/*
- * Failed to decrypt the client private key data file due to incorrect PIN
- */
-#define KMS_AGENT_LOCAL_AUTH_FAILURE 208
-
-/**
- * supported key types
- */
-enum KMS_KEY_TYPE
-{
- /**
- * AES 256 key type
- */
- KMS_KEY_TYPE_AES_256
-};
-
-/**
- * This enumerator type defines the various Key States.
- */
-enum KMS_AGENT_KEY_STATE
-{
- KMS_KEY_STATE_GENERATED = 0,
- KMS_KEY_STATE_READY,
-
- /**
- * A key in this state can be used for both encryption and decryption.
- * A key is placed into this state when it is assigned. The assignment is done when an encryption agent requests a new key be created.
- */
- KMS_KEY_STATE_ACTIVE_PROTECT_AND_PROCESS,
-
- /**
- * A key in this state can be used for decryption but not encryption. When an agent determines that none of the keys available to
- * it (e.g., for a specific data unit that is being read or written) are in the protect-and-process state, it should create a new key.
- * Keys transition from protect-and-process to process only when the encryption period for the key expires.
- */
- KMS_KEY_STATE_ACTIVE_PROCESS_ONLY,
-
- /**
- * The key has passed its cryptoperiod but may still be needed to process (decrypt) information. Auditable events are generated
- * when keys in this state are provided to the agent.
- */
- KMS_KEY_STATE_DEACTIVATED,
-
- /**
- * Keys are compromised when they are released to or discovered by an unauthorized entity.
- * Compromised keys should not be used to protect information, but may be used to process information.
- * Auditable events are generated
- * when keys in this state are provided to the agent.
- */
- KMS_KEY_STATE_COMPROMISED,
-
- KMS_KEY_STATE_DESTROYED_INCOMPLETE,
- KMS_KEY_STATE_DESTROYED_COMPLETE,
- KMS_KEY_STATE_DESTROYED_COMPROMISED_INCOMPLETE,
- KMS_KEY_STATE_DESTROYED_COMPROMISED_COMPLETE
-
-};
-
-/*---------------------------------------------------------------------------
- * Data Unit State
- *--------------------------------------------------------------------------*/
-
-/**
- * this enumeration defines the DataUnit states
- */
-enum KMS_AGENT_DATA_UNIT_STATE
-{
- /**
- * When a data unit has been created, but has not yet had any keys created it will be in "no key" state.
- * This should be a short, transient condition that will be exited as soon as a key has been created.
- */
- KMS_DATA_UNIT_STATE_NO_KEY = 0,
-
- /**
- * Normal is a substate of readable. In this state, a data unit has at least one protect-and-process state key that can be used to encrypt data.
- * The data unit is therefore writable.
- */
- KMS_DATA_UNIT_STATE_READABLE_NORMAL,
-
- /**
- * Needs rekey is a substate of readable. In this state, the data unit has no protect-and-process keys.
- * Data should not be encrypted and written to the data unit unless the data unit is rekeyed and a new, active key is assigned.
- * Its the responsibility of the agent to avoid using a key that is not in protect-and-process state for encryption.
- * The data unit may have keys that are in process only, deactivated, or compromised state. Any of these keys can be used for decryption.
- */
- KMS_DATA_UNIT_STATE_READABLE_NEEDS_REKEY,
-
- /**
- * When all of the keys for a data unit are destroyed, the data unit is shredded. The data unit cannot be read or written.
- * However, a new key can be created for the data unit. This will return the data unit to normal state, allowing it to be read and written.
- */
- KMS_DATA_UNIT_STATE_SHREDDED
-};
-
-/**
- * This enumeration type defines Audit Log Retention values
- */
-enum KMS_AUDIT_LOG_RETENTION
-{
- /**
- * specifies that an audit log entry should have long term retention
- */
- KMS_AUDIT_LOG_LONG_TERM_RETENTION = 0,
- /**
- * specifies that an audit log entry should have medium term retention
- */
- KMS_AUDIT_LOG_MEDIUM_TERM_RETENTION,
- /**
- * specifies that an audit log entry should have short term retention
- */
- KMS_AUDIT_LOG_SHORT_TERM_RETENTION
-};
-
-/**
- * This enumeration type defines Audit Log Condition values
- */
-enum KMS_AUDIT_LOG_CONDITION
-{
- /**
- * specifies that an audit log entry should should indicate a success condition
- */
- KMS_AUDIT_LOG_SUCCESS_CONDITION = 0,
-
- /**
- * specifies that an audit log entry should should indicate an error condition
- */
- KMS_AUDIT_LOG_ERROR_CONDITION,
-
- /**
- * specifies that an audit log entry should should indicate a warning condition
- */
- KMS_AUDIT_LOG_WARNING_CONDITION
-};
-
-/**
- * supported security modes
- */
-enum KMS_SECURITY_MODE
-{
- /**
- * agent will work with any level of KMA
- */
- DEFAULT_MODE = 0,
-
- /**
- * agent will only communicate with KMAs supporting FIPS 140-2 so that
- * keys are encrypted at the KMA using AES Key Wrap.
- */
- FIPS_MODE
-};
-
-/*---------------------------------------------------------------------------
- * API Input/Output Data Structures
- *--------------------------------------------------------------------------*/
-/**
- * typedef for descriptions used in various places within the API
- */
-typedef utf8char DESCRIPTION [KMS_MAX_DESCRIPTION+1];
-
-/**
- * typedef for key group ID
- */
-typedef utf8char KEY_GROUP_ID[KMS_MAX_ID+1];
-
-/**
- * typedef for the Key Group struct
- */
-typedef struct KMSAgent_KeyGroup KMSAgent_KeyGroup;
-
-/** \struct KMSAgent_KeyGroup
- * a Key Group with its ID and description
- */
-struct KMSAgent_KeyGroup
-{
- /**
- * the unique ID of the KeyGroup
- */
- KEY_GROUP_ID m_acKeyGroupID;
-
- /**
- * the description of the KeyGroup
- */
- DESCRIPTION m_acDescription;
-};
-
-/**
- * An array of Key Groups
- */
-typedef struct KMSAgent_ArrayOfKeyGroups KMSAgent_ArrayOfKeyGroups;
-
-/** \struct KMSAgent_ArrayOfKeyGroups
- * An array of Key Groups
- */
-struct KMSAgent_ArrayOfKeyGroups
-{
- /**
- * pointer to an array of Key Groups
- */
- KMSAgent_KeyGroup* m_pKeyGroups;
-
- /**
- * the number of Key Groups in the array
- */
- int m_iSize;
-};
-
-
-/**
- * typedef for a Key struct
- */
-typedef struct KMSAgent_Key KMSAgent_Key;
-
-/** \struct KMSAgent_Key
- * key and its associated properites: KeyID, state, type, lenth, KeyGroup and the Key value
- */
-struct KMSAgent_Key
-{
- /**
- * the unique ID of the key
- */
- KEY_ID m_acKeyID;
-
- /**
- * the state of the Key
- */
- enum KMS_AGENT_KEY_STATE m_iKeyState;
-
- /**
- * the type of the key, e.g. AES_256
- */
- enum KMS_KEY_TYPE m_iKeyType;
-
- /**
- * the unique ID of the KeyGroup
- */
- KEY_GROUP_ID m_acKeyGroupID;
-
- /**
- * the key in plaintext.
- */
- KEY m_acKey;
-
- /**
- * length of #m_acKey
- */
- int m_iKeyLength;
-};
-
-/**
- * typedef for the External Unique ID
- */
-typedef unsigned char EXTERNAL_UNIQUE_ID [KMS_MAX_EXTERNAL_UNIQUE_ID_SIZE];
-
-/**
- * typedef for the Data Unit ID
- */
-typedef unsigned char DATA_UNIT_ID [KMS_DATA_UNIT_ID_SIZE];
-
-/**
- * typedef for the External Tag
- */
-typedef utf8char EXTERNAL_TAG [KMS_MAX_EXTERNAL_TAG+1];
-
-/**
- * typedef for aData Unit structure.
- */
-typedef struct KMSAgent_DataUnit KMSAgent_DataUnit;
-
-/** \struct KMSAgent_DataUnit
- * struct for a DataUnit and its associated properties: DataUnitID, external unique ID,
- * external tag, description and state. Data units are associated with zero or more keys.
- */
-struct KMSAgent_DataUnit
-{
- /**
- * the unique DataUnit ID provided by the KMS
- */
- DATA_UNIT_ID m_acDataUnitID;
-
- /**
- * a unique external ID for the data unit that is provided by the agent, may be NULL if one is not provided.
- * The KMS will enforce the uniqueness of this identifier and not allow multiple data units having the same
- * #m_acExternalUniqueID value.
- */
- EXTERNAL_UNIQUE_ID m_acExternalUniqueID;
- /**
- * the length in bytes of the #m_acExternalUniqueID field that represents the
- * ID. The length
- * must be less than or equal to #KMS_MAX_EXTERNAL_UNIQUE_ID_SIZE
- */
- int m_iExternalUniqueIDLength;
-
- /**
- * an external tag representing information pertinent to the data unit, for example a volume serial number
- */
- EXTERNAL_TAG m_acExternalTag;
-
- /**
- * a description of the data unit
- */
- DESCRIPTION m_acDescription;
-
- /**
- * the state of the DataUnit
- */
- enum KMS_AGENT_DATA_UNIT_STATE m_iDataUnitState;
-
-};
-
-/**
- * typedef for a list of keys
- */
-typedef struct KMSAgent_ArrayOfKeys KMSAgent_ArrayOfKeys;
-
-/** \struct KMSAgent_ArrayOfKeys
- * struct for an array of keys
- */
-struct KMSAgent_ArrayOfKeys
-{
- /**
- * keys are in chronological order based upon key creation date. However,
- * when page offset argument to #KMSAgent_RetrieveDataUnitKeys
- * is 0 the first key in the array will be the key in the
- * #KMS_KEY_STATE_ACTIVE_PROTECT_AND_PROCESS.
- */
- KMSAgent_Key* m_pKeys;
-
- /**
- * the number of keys in the list
- */
- int m_iSize;
-};
-
-/**
- * @return the version string for the KMS Agent Library
- */
-const char * KMSAgent_GetVersion();
-
-/**
- *
- * This function initializes the KMS Agent API library. It
- * should be called before any other functions are invoked. Internally,
- * sets up the SSL library and Logging module.
- *
- * @param i_pWorkingDirectory Working directory of the program which uses the
- * library. Default is "." if NULL is passed.
- * @param i_bUseFileLog: True(1) if errors should go to a log file in the working directory.
- * If false(0) then errors will not be logged to a file.
- *
- * @return #KMS_AGENT_STATUS_OK
- * @return #KMS_AGENT_STATUS_GENERIC_ERROR if library initialization fails
- */
-KMS_AGENT_STATUS KMSAgent_InitializeLibrary(
- const utf8cstr i_pWorkingDirectory,
- int i_bUseFileLog );
-
-/**
- * This function exercises FIPS 140-2 Known Answer Tests for certified algorithms
- * used in the agent toolkit. This function should only be called once and may
- * be called prior to #KMSAgent_InitializeLibrary.
- *
- * @return #KMS_AGENT_STATUS_OK
- * @return #KMS_AGENT_STATUS_FIPS_KAT_AES_KEYWRAP_ERROR
- * @return #KMS_AGENT_STATUS_FIPS_KAT_AES_ECB_ERROR
- * @return #KMS_AGENT_STATUS_FIPS_KAT_HMAC_SHA1_ERROR
- */
-KMS_AGENT_STATUS KMSAgent_KnownAnswerTests();
-
-/**
- * This function finalizes the KMS Agent API library. It should
- * be called when the library is not needed by the program. Internally it
- * cleans up the SSL library and Logging module.
- *
- * @return #KMS_AGENT_STATUS_OK
- * @return #KMS_AGENT_STATUS_GENERIC_ERROR if library finalization fails
- *
- */
-KMS_AGENT_STATUS KMSAgent_FinalizeLibrary();
-
-/**
- * This function can be used to get the last error message when
- * an API function encounters an error. These error messages also
- * are written to the log, if file logging was enabled during library
- * initialization.
- *
- * @param i_pProfile an initialized #KMSClientProfile; the failed
- * function must have used this profile.
- * @return the pointer to the last error message or NULL
- *
- */
-utf8cstr KMSAgent_GetLastErrorMessage(
- KMSClientProfile* i_pProfile );
-
-
- /**
- * Get the cluster information by calling the KMS_Discovery service using the KMA specified in the
- * profile, no load balancing will occur. If discovery to this KMA fails then discovery will be
- * attempted using previously retrieved cluster information.
- *
- * If #KMSAgent_LoadProfile was called with an IPv6 address for
- * the <code>i_pInitialApplianceAddress</code> argument then the <code>o_pClusterEntryArray</code> will contain
- * IPv6 addresses instead of IPv4 addresses for each KMA that has an IPv6 address.
- * @see #KMSAgent_LoadProfile and #KMSAgent_SelectAppliance.
- *
- * If the size of the cluster returned by the KMS_Discovery servic exceeds <code>i_iClusterEntryArraySize</code>
- * then the KMA list is filtered to contain the
- * first <code>i_iClusterEntryArraySize</code> KMAs that meet the profile's FIPS setting, agent site and are reported as responding by the
- * KMS discover cluster response.
- *
- * @param i_pProfile a pointer to an initialized #KMSClientProfile structure
- * @param i_iEntitySiteIDSize the buffer size of the entity site ID including null terminator
- * (should be greater than #KMS_MAX_ENTITY_SITE_ID )
- * @param i_iClusterEntryArraySize the array size for cluster entries (must be less than or equal to #KMS_MAX_CLUSTER_NUM )
- * @param o_pEntitySiteID a buffer allocated by the caller to store the agent's (aka entity) Site ID
- * @param o_pApplianceNum the returned number of appliances in the cluster
- * @param o_pClusterEntryArray a buffer allocated by the caller to store the array of cluster entries
- *
- * @return #KMS_AGENT_STATUS_OK
- * @return #KMS_AGENT_STATUS_INVALID_PARAMETER
- * @return #KMS_AGENT_STATUS_GENERIC_ERROR
- * @return #KMS_AGENT_STATUS_ACCESS_DENIED
- * @return #KMS_AGENT_STATUS_PROFILE_NOT_LOADED
- * @return #KMS_AGENT_STATUS_SERVER_BUSY
- * @return #KMS_AGENT_STATUS_KMS_UNAVAILABLE
- * @return #KMS_AGENT_STATUS_NO_FIPS_KMAS_AVAILABLE
- */
- KMS_AGENT_STATUS KMSAgent_GetClusterInformation(
- KMSClientProfile * const i_pProfile,
- int i_iEntitySiteIDSize,
- int i_iClusterEntryArraySize,
- utf8cstr const o_pEntitySiteID,
- int * const o_pApplianceNum,
- KMSClusterEntry * const o_pClusterEntryArray);
-
-/**
- * Specifies the Key Management Appliance to be used
- * for retrieving cluster information.
- *
- * @param i_pProfile a pointer to an initialized #KMSClientProfile
- * structure
- * @param i_pApplianceAddress the IP address of the appliance. IPv6 addresses
- * must be enclosed in brackets, [], see #KMSAgent_LoadProfile.
- *
- * @return #KMS_AGENT_STATUS_OK
- * @return #KMS_AGENT_STATUS_INVALID_PARAMETER
- * @return #KMS_AGENT_STATUS_GENERIC_ERROR
- * @return #KMS_AGENT_STATUS_PROFILE_NOT_LOADED
- *
- */
-KMS_AGENT_STATUS KMSAgent_SelectAppliance(
- KMSClientProfile* const i_pProfile,
- utf8cstr const i_pApplianceAddress );
-
-/**
- * Load profile handles both agent enrollment with the KMS and post enrollment setup.
- * <p>
- * <b>Enrollment Behavior</b>
- * <br>
- * When a passphrase is supplied enrollment, or reenrollment, with a KMS cluster is attempted in order
- * to establish a mutual trust relationship. Enrollment occurs with the KMA in the cluster specified
- * by <code>i_pApplianceAddress</code>.
- * <p>
- * The KMS CA web service is used for CA certificate retrieval prior to
- * invoking the KMS Certificate web service. Certficate retrieval via these services
- * uses the <code>i_pApplianceAddress</code> for enrollment. Cluster discovery is then performed to
- * identify the set of KMAs within the cluster.
- * Successful enrollment results in
- * persistent storage of the CA X.509 certificate, agent X.509 certificate and private key.
- * </p>
- * Once enrolled successfully the KMS
- * will then disable usage of the agent's passphrase for enrollment as a security precaution.
- * Subsequent enrollment will require a new passphrase.
- * <p>
- * <b>Post Enrollment Behavior</b>
- * <br>
- * When a passphrase is not provided a profile is assumed to exist and the library profile structure
- * is initialized from persistent storage with the configuration settings(agent ID,
- * KMA service port numbers, KMA Address, transaction timeout, discovery frequency, transaction timeout
- * and failover limit), cluster information(agent's site ID and KMA cluster information and KMA status) and
- * enrollment items: the CA certificate, Agent Certificate and agent private key.
- * <p>
- * Finally, cluster discovery is performed(unless disabled), and a load balancer is initialized
- * for balancing transactions across KMAs within the
- * cluster and for handling transaction failover scenarios.
- * Subsequent API calls using the profile will invoke cluster discovery at the frequency specified
- * by <code>iClusterDiscoveryFrequency</code>. Updated discovery information is persisted with the
- * profile. The load balancer maintains affinity to KMAs within the same site as the agent for
- * agent transactions unless an error requires failover
- * to another KMA in the cluster. An agent's site ID may also be updated by a discovery
- * operation.
- *
- * @param io_pProfile a pointer to a #KMSClientProfile buffer allocated by the caller
- * @param i_pProfileName the profile name
- * @param i_pAgentID Optional. For a new profile the encryption agent's ID is required.
- * @param i_pPassphrase Optional. For a new profile the encryption agent's passphrase is required. This passphrase
- * may only be used once for a successful retrieval of the Certificate and agent private key.
- * @param i_pInitialApplianceAddress the initial IP Address of an Appliance in the KMS Cluster that is reachable by this agent. If
- * enrollment has previously occurred specification of an initial IP address that is not
- * a member of the profile's cluster information will force the cluster information
- * to be deleted and discovery to be performed with the new IP address.
- * An IPv6 address may be supplied but must be enclosed with brackets, [], in accordance
- * with RFC 2396, "Format for Literal IPv6 Addresses in URL's". Supplying an IPv6 address will cause
- * the agent library to utilize KMA IPv6 addresses over IPv4 addresses when they are available,
- * otherwise IPv4 KMA addresses will be used.
- * @param i_iTransactionTimeout the timeout setting for a transaction in seconds, must be a positive value.
- * @param i_iFailOverLimit Failed KMA transactions will be retried up to this limit. Once this limit
- * has been reached API calls will return #KMS_AGENT_STATUS_KMS_UNAVAILABLE.
- * Specify -1 for unlimited failover attempts, 0 for no failover. The worst case completion time for
- * an API call is approximately equal to <code>i_iFailOverLimit</code> * <code>i_iTransactionTimeout</code>.
- *
- * @param i_iClusterDiscoveryFrequency
- * frequency of calling cluster discovery service
- * in seconds (use 0 to disable load balancing and periodic cluster discovery)
- * @param i_eKMSmode specifies the KMS operational mode that the
- * agent should enforce. Setting this to #FIPS_MODE
- * causes the agent to only communicate with KMAs in the
- * cluster that support AES key wrapping for key requests.
- * This is not a persisted setting and is only applicable
- * to the current session.
- *
- * @return #KMS_AGENT_STATUS_OK
- * @return #KMS_AGENT_STATUS_INVALID_PARAMETER
- * @return #KMS_AGENT_STATUS_GENERIC_ERROR
- * @return #KMS_AGENT_STATUS_PROFILE_NOT_LOADED
- * @return #KMS_AGENT_STATUS_PROFILE_ALREADY_LOADED
- * @return #KMS_AGENT_STATUS_ACCESS_DENIED
- * @return #KMS_AGENT_STATUS_SERVER_BUSY
- * @return #KMS_AGENT_STATUS_KMS_UNAVAILABLE
- * @return #KMS_AGENT_STATUS_NO_FIPS_KMAS_AVAILABLE
- */
-KMS_AGENT_STATUS KMSAgent_LoadProfile(
- KMSClientProfile* const io_pProfile,
- utf8cstr const i_pProfileName,
- utf8cstr const i_pAgentID,
- utf8cstr const i_pPassphrase,
- utf8cstr const i_pInitialApplianceAddress,
- int i_iTransactionTimeout,
- int i_iFailOverLimit,
- int i_iClusterDiscoveryFrequency,
- int i_eKMSmode );
-
-
-/**
- * Destroy the profile information in memory, the agent's profile configuration,
- * cluster information, certificate and
- * private key are retained in persistant storage.
- *
- * @param i_pProfile a pointer to an initialized KMSClientProfile
- * structure.
- *
- * @return #KMS_AGENT_STATUS_OK
- * @return #KMS_AGENT_STATUS_INVALID_PARAMETER
- *
- */
-KMS_AGENT_STATUS KMSAgent_UnloadProfile(
- KMSClientProfile* const i_pProfile );
-
-/**
- * Delete the profile information from persistent storage. The agent's profile configuration,
- * cluster information, certificate and
- * private key are discared, see #KMSAgent_LoadProfile for how to initialize
- * the profile again. The profile should be unloaded prior to making this call.
- *
- * @param i_pProfileName the profile name
- *
- * @return #KMS_AGENT_STATUS_OK
- * @return #KMS_AGENT_STATUS_INVALID_PARAMETER
- * @return #KMS_AGENT_STATUS_GENERIC_ERROR
- */
-KMS_AGENT_STATUS KMSAgent_DeleteProfile(
- utf8cstr i_pProfileName );
-
-/**
- * Fetch the key groups this agent is allowed to access. The caller should invoke #KMSAgent_FreeArrayOfKeyGroups
- * to release the allocated memory resources for the array. Up to #KMS_MAX_LIST_KEY_GROUPS key groups will be
- * returned.
- *
- * @param i_pProfile an initialized #KMSClientProfile
- * @param o_ppKeyGroups a buffer allocated by this routine for the array of Key Groups and individual key groups
- * that this agent is allowed to access
- *
- * @return #KMS_AGENT_STATUS_OK
- * @return #KMS_AGENT_STATUS_INVALID_PARAMETER
- * @return #KMS_AGENT_STATUS_PROFILE_NOT_LOADED
- * @return #KMS_AGENT_STATUS_NO_MEMORY
- * @return #KMS_AGENT_STATUS_GENERIC_ERROR
- * @return #KMS_AGENT_STATUS_ACCESS_DENIED
- * @return #KMS_AGENT_STATUS_INVALID_PARAMETER
- * @return #KMS_AGENT_STATUS_SERVER_BUSY
- * @return #KMS_AGENT_STATUS_KMS_UNAVAILABLE
- * @return #KMS_AGENT_STATUS_NO_FIPS_KMAS_AVAILABLE
- */
-KMS_AGENT_STATUS KMSAgent_ListKeyGroups(
- KMSClientProfile* const i_pProfile,
- KMSAgent_ArrayOfKeyGroups** const o_ppKeyGroups );
-
-/**
- * Helper function which frees memory allocated for the output
- * to #KMSAgent_ListKeyGroups.
- *
- * @param i_pArrayOfKeyGroups a pointer to #KMSAgent_ArrayOfKeyGroups
- *
- * @return void
- *
- */
-void KMSAgent_FreeArrayOfKeyGroups(
- KMSAgent_ArrayOfKeyGroups* i_pArrayOfKeyGroups );
-
-/**
- * Creates a Key for the specified data unit. If a data unit is provided then the key will be associated with
- * the data unit. The type of key created is dictated by the KMS key policy for the key group. This policy is set up by KMS
- * administrators to be compatible with agents associated with the key group.
- * If KeyGroup is provided then the new key is associated with the specified KeyGroup, otherwise the agent's
- * default KeyGroup is associated with the key.
- * @param i_pProfile an initialized #KMSClientProfile
- * @param i_pDataUnit Optional. a pointer to a data unit to be associated with the key, if known.
- * @param i_pKeyGroupID Optional, the KeyGroup ID to be assigned to the new Key, if known. Pass NULL
- * if unknown and the new key will be associated with the agent's default key group
- * @param o_pKey A pointer to a buffer for returning the new key and key associated data.
- *
- * @return #KMS_AGENT_STATUS_OK
- * @return #KMS_AGENT_STATUS_INVALID_PARAMETER
- * @return #KMS_AGENT_STATUS_PROFILE_NOT_LOADED
- * @return #KMS_AGENT_STATUS_NO_MEMORY
- * @return #KMS_AGENT_STATUS_KEY_CALLOUT_FAILURE
- * @return #KMS_AGENT_STATUS_GENERIC_ERROR
- * @return #KMS_AGENT_STATUS_ACCESS_DENIED
- * @return #KMS_AGENT_STATUS_SERVER_BUSY
- * @return #KMS_AGENT_STATUS_EXTERNAL_UNIQUE_ID_EXISTS
- * @return #KMS_AGENT_STATUS_KMS_UNAVAILABLE
- * @return #KMS_AGENT_STATUS_KMS_NO_READY_KEYS
- * @return #KMS_AGENT_STATUS_NO_FIPS_KMAS_AVAILABLE
- * @return #KMS_AGENT_AES_KEY_UNWRAP_ERROR
- * @return #KMS_AGENT_AES_KEY_WRAP_SETUP_ERROR
- */
-KMS_AGENT_STATUS KMSAgent_CreateKey(
- KMSClientProfile* const i_pProfile,
- const KMSAgent_DataUnit* const i_pDataUnit,
- KEY_GROUP_ID const i_pKeyGroupID,
- KMSAgent_Key* const o_pKey);
-
-/**
- * Creates a DataUnit with the specified external unique id and external tag.
- *
- * @param i_pProfile an initialized #KMSClientProfile
- * @param i_pExternalUniqueID Optional. A unique data unit identifier to be associated with
- * the data unit. Uniqueness is enforced by the KMS. See also #KMSAgent_RetrieveDataUnit.
- * @param i_iExternalUniqueIDIDLen Length in bytes of the external unique identifier. If
- * <code>i_pExternalUniqueID</code> is NULL then this field is ignored, otherwise a positive length must be provided.
- * @param i_pExternalTag Optional, but recommended. Pointer to an External Tag for the data unit, e.g. a volume serial number.
- * @param i_pDescription Optional, a textual description of the data unit.
- * @param o_pDataUnit a pointer to a DataUnit buffer where
- * data unit information is returned
- *
- * @return #KMS_AGENT_STATUS_OK
- * @return #KMS_AGENT_STATUS_INVALID_PARAMETER
- * @return #KMS_AGENT_STATUS_PROFILE_NOT_LOADED
- * @return #KMS_AGENT_STATUS_NO_MEMORY
- * @return #KMS_AGENT_STATUS_GENERIC_ERROR
- * @return #KMS_AGENT_STATUS_ACCESS_DENIED
- * @return #KMS_AGENT_STATUS_SERVER_BUSY
- * @return #KMS_AGENT_STATUS_EXTERNAL_UNIQUE_ID_EXISTS
- * @return #KMS_AGENT_STATUS_KMS_UNAVAILABLE
- * @return #KMS_AGENT_STATUS_NO_FIPS_KMAS_AVAILABLE
-*/
-KMS_AGENT_STATUS KMSAgent_CreateDataUnit(
- KMSClientProfile* const i_pProfile,
- const unsigned char * i_pExternalUniqueID,
- int i_iExternalUniqueIDIDLen,
- utf8cstr const i_pExternalTag,
- utf8cstr const i_pDescription,
- KMSAgent_DataUnit* const o_pDataUnit);
-
-/**
- * The agent may use this function to inform the KMS that the DataUnit has, or will be, overwritten.
- * The KMS will remove the association from the specified DataUnit to all its keys, excluding its key
- * in the #KMS_KEY_STATE_ACTIVE_PROTECT_AND_PROCESS state. By utilizing this API, agent's can help keep the
- * number of keys returned by #KMSAgent_RetrieveDataUnitKeys to just the keys being used on the Data Unit.
- *
- * @param i_pProfile an initialized #KMSClientProfile
- * @param i_pDataUnit A pointer to the data unit
- *
- * @return #KMS_AGENT_STATUS_OK
- * @return #KMS_AGENT_STATUS_INVALID_PARAMETER
- * @return #KMS_AGENT_STATUS_PROFILE_NOT_LOADED
- * @return #KMS_AGENT_STATUS_NO_MEMORY
- * @return #KMS_AGENT_STATUS_GENERIC_ERROR
- * @return #KMS_AGENT_STATUS_ACCESS_DENIED
- * @return #KMS_AGENT_STATUS_SERVER_BUSY
- * @return #KMS_AGENT_STATUS_EXTERNAL_UNIQUE_ID_EXISTS
- * @return #KMS_AGENT_STATUS_KMS_UNAVAILABLE
- * @return #KMS_AGENT_STATUS_NO_FIPS_KMAS_AVAILABLE
- */
-KMS_AGENT_STATUS KMSAgent_DisassociateDataUnitKeys(
- KMSClientProfile* const i_pProfile,
- const KMSAgent_DataUnit* const i_pDataUnit);
-
-
-/**
- * retrieve a key by the Key's ID, optionally specifying the Data Unit and KeyGroup to be
- * associated with the key. Supplying the Data Unit information allows the KMS to add an
- * association between the Key and the Data Unit. The assumption being made is that the key being
- * retrieved has been used on the specified Data Unit and needs to be associated with it. This
- * side affect allows the KMS to build up its knowledge of key usage as it relies upon agents
- * for discovering and reporting how keys are being used on Data Units. For example, when keys
- * are imported into a KMS the information associating keys with DataUnits may not be provided,
- * consequently the KMS is unaware of what DataUnits were encrypted with a particular key.
- *
- * @param i_pProfile an initialized KMSClientProfile
- * @param i_pKeyID The ID of the Key being requested
- * @param i_pDataUnit Optional. If non-NULL, the KMS will verify that an association exists between the key and the Data Unit and create
- * the association if it is missing.
- * @param i_pKeyGroupID Optional. If non-NULL, and the key is not already associated with a KeyGroup, then the KMS will associate the key with the specified KeyGroup.
- * @param o_pKey A pointer to a buffer allcoated by the caller for returning the new key and key associated data.
- *
- * @return #KMS_AGENT_STATUS_OK
- * @return #KMS_AGENT_STATUS_INVALID_PARAMETER
- * @return #KMS_AGENT_STATUS_PROFILE_NOT_LOADED
- * @return #KMS_AGENT_STATUS_NO_MEMORY
- * @return #KMS_AGENT_STATUS_KEY_CALLOUT_FAILURE
- * @return #KMS_AGENT_STATUS_GENERIC_ERROR
- * @return #KMS_AGENT_STATUS_ACCESS_DENIED
- * @return #KMS_AGENT_STATUS_SERVER_BUSY
- * @return #KMS_AGENT_STATUS_EXTERNAL_UNIQUE_ID_EXISTS
- * @return #KMS_AGENT_STATUS_KEY_DOES_NOT_EXIST
- * @return #KMS_AGENT_STATUS_KEY_DESTROYED
- * @return #KMS_AGENT_STATUS_KMS_UNAVAILABLE
- * @return #KMS_AGENT_STATUS_NO_FIPS_KMAS_AVAILABLE
- * @return #KMS_AGENT_AES_KEY_UNWRAP_ERROR
- * @return #KMS_AGENT_AES_KEY_WRAP_SETUP_ERROR
- */
-KMS_AGENT_STATUS KMSAgent_RetrieveKey(
- KMSClientProfile* const i_pProfile,
- const unsigned char * const i_pKeyID,
- const KMSAgent_DataUnit* const i_pDataUnit,
- utf8cstr const i_pKeyGroupID,
- KMSAgent_Key* const o_pKey);
-
-/**
- * Retrieve a Data Unit by its data unit identifier.
- *
- * @param i_pProfile an initialized #KMSClientProfile
- * @param i_pDataUnitID the data unit ID by which retrieval will be performed
- * @param i_pExternalUniqueID Optional, a unique data unit identifier to be associated with
- * the data unit. Uniqueness is enforced by the KMS.
- * @param i_iExternalUniqueIDLen Length in bytes of the external unique identifier, must be positive. If
- * <code>i_pExternalUniqueID</code> is NULL then this field is ignored.
- * @param i_pExternalTag Optional, but recommended. Pointer to a data unit external tag, e.g. volser
- * @param i_pDescription Optional, a textual description of the data unit.
- * @param o_pDataUnit a pointer to a DataUnit buffer allocated by the caller where
- * data unit information is returned
- *
- * @return #KMS_AGENT_STATUS_OK
- * @return #KMS_AGENT_STATUS_INVALID_PARAMETER
- * @return #KMS_AGENT_STATUS_PROFILE_NOT_LOADED
- * @return #KMS_AGENT_STATUS_NO_MEMORY
- * @return #KMS_AGENT_STATUS_GENERIC_ERROR
- * @return #KMS_AGENT_STATUS_ACCESS_DENIED
- * @return #KMS_AGENT_STATUS_SERVER_BUSY
- * @return #KMS_AGENT_STATUS_EXTERNAL_UNIQUE_ID_EXISTS
- * @return #KMS_AGENT_STATUS_KMS_UNAVAILABLE
- * @return #KMS_AGENT_STATUS_NO_FIPS_KMAS_AVAILABLE
- */
-KMS_AGENT_STATUS KMSAgent_RetrieveDataUnit(
- KMSClientProfile* const i_pProfile,
- const unsigned char * const i_pDataUnitID,
- const unsigned char * const i_pExternalUniqueID,
- int i_iExternalUniqueIDLen,
- utf8cstr const i_pExternalTag,
- utf8cstr const i_pDescription,
- KMSAgent_DataUnit* const o_pDataUnit);
-
-/**
- * Retrieve a Data Unit by its external unique identifier.
- * If the KMS does not contain a data unit with the specified unique identifier then a data unit will
- * be created. The new data unit will contain the external unique identifier and the external tag, if
- * provided.
- *
- * @param i_pProfile an initialized #KMSClientProfile
- * @param i_pExternalUniqueID A unique data unit identifier to be associated with
- * the data unit. Uniqueness is enforced by the KMS.
- * @param i_iExternalUniqueIDLen Length in bytes of the external unique identifier, must be positive.
- * @param i_pExternalTag Optional, but recommended. Pointer to a data unit external tag, e.g. volser
- * @param i_pDescription Optional, a textual description of the data unit.
- * @param o_pDataUnit a pointer to a DataUnit buffer allocated by the caller where
- * data unit information is returned
- *
- * @return #KMS_AGENT_STATUS_OK
- * @return #KMS_AGENT_STATUS_INVALID_PARAMETER
- * @return #KMS_AGENT_STATUS_PROFILE_NOT_LOADED
- * @return #KMS_AGENT_STATUS_NO_MEMORY
- * @return #KMS_AGENT_STATUS_GENERIC_ERROR
- * @return #KMS_AGENT_STATUS_ACCESS_DENIED
- * @return #KMS_AGENT_STATUS_SERVER_BUSY
- * @return #KMS_AGENT_STATUS_EXTERNAL_UNIQUE_ID_EXISTS
- * @return #KMS_AGENT_STATUS_KMS_UNAVAILABLE
- * @return #KMS_AGENT_STATUS_NO_FIPS_KMAS_AVAILABLE
- */
-KMS_AGENT_STATUS KMSAgent_RetrieveDataUnitByExternalUniqueID(
- KMSClientProfile* const i_pProfile,
- const unsigned char* const i_pExternalUniqueID,
- int i_iExternalUniqueIDLen,
- utf8cstr const i_pExternalTag,
- utf8cstr const i_pDescription,
- KMSAgent_DataUnit* const o_pDataUnit);
-
-/**
- * retrieve keys assigned to a Data Unit.
- * Agents should consult the state of each key that is returned and only
- * use the key in the #KMS_KEY_STATE_ACTIVE_PROTECT_AND_PROCESS state for encryption. The agent service
- * attempts to return the most recently created key in the #KMS_KEY_STATE_ACTIVE_PROTECT_AND_PROCESS state
- * as the first key in the list when a <code>i_pKeyID</code> is not specified. This cannot be guaranteed as
- * there may not be a key in the #KMS_KEY_STATE_ACTIVE_PROTECT_AND_PROCESS state for the specified
- * data unit. The rest of the keys returned are sorted in ascending order by the time in which
- * they were created on the server.
- * #KMSAgent_DisassociateDataUnitKeys may be used to manage the
- * size of the key list associated with a data unit.
- * The <code>i_iPageSize</code>, <code>i_iPageOffset</code> and <code>o_piKeysRemaining</code> parameters may be used for retrieving
- * subsets of the list. For the <code>i_pKeyID</code> argument see the parameter's description.
- * Callers should invoke#KMSAgent_FreeArrayOfKeys when finished with the buffer of keys.
- *
- * @param i_pProfile an initialized #KMSClientProfile
- * @param i_pDataUnit The Data Unit for which all keys will be retrieved.
- * @param i_iPageSize the number of keys to be retrieved, up to #KMS_MAX_PAGE_SIZE.
- * @param i_iPageOffset the offset from the start of the data unit's key list. Set this to zero for
- * retrieval from the start of the list or if <code>i_pKeyID</code> is non-null.
- * When set to zero the first key returned in the list
- * will be the most recently created key in the #KMS_KEY_STATE_ACTIVE_PROTECT_AND_PROCESS state.
- * @param o_piKeysRemaining a pointer to an integer where the number of keys remaining in the list will be returned
- * @param i_pKeyID Optional. If non-null, the caller provides a pointer to a KeyID that is used for
- * the retrieval and the list returned begins with the specified data unit's KeyID and up to
- * <code>i_iPageSize</code> keys associated with the data unit having an activation date greater than the key
- * corresponding to <code>i_pKeyID</code>. The first key in the list is not guaranteed
- * to be in the #KMS_KEY_STATE_ACTIVE_PROTECT_AND_PROCESS state. If the specified <code>i_pKeyID</code>
- * is not associated with the Data Unit then the behavior is like #KMSAgent_RetrieveKey and
- * a single key is returned.
- * When non-null the <code>i_iPageOffset</code>
- * argument must be 0, these arguments are mutually exclusive.
- * @param o_ppKeys a pointer to pointer to a #KMSAgent_ArrayOfKeys struct allocated by this routine for returning the specified number of
- * Data Unit's keys and key associated data. Up to <code>i_iPageSize</code>
- * keys will be returned. Callers should invoke #KMSAgent_FreeArrayOfKeys
- * when finished with the buffer of keys.
- * @return #KMS_AGENT_STATUS_OK
- * @return #KMS_AGENT_STATUS_INVALID_PARAMETER
- * @return #KMS_AGENT_STATUS_PROFILE_NOT_LOADED
- * @return #KMS_AGENT_STATUS_NO_MEMORY
- * @return #KMS_AGENT_STATUS_GENERIC_ERROR
- * @return #KMS_AGENT_STATUS_ACCESS_DENIED
- * @return #KMS_AGENT_STATUS_KEY_CALLOUT_FAILURE
- * @return #KMS_AGENT_STATUS_SERVER_BUSY
- * @return #KMS_AGENT_STATUS_EXTERNAL_UNIQUE_ID_EXISTS
- * @return #KMS_AGENT_STATUS_KMS_UNAVAILABLE
- * @return #KMS_AGENT_STATUS_KEY_DOES_NOT_EXIST if <code>i_pKeyID</code> does not exist in the KMS.
- * @return #KMS_AGENT_STATUS_KEY_DESTROYED if <code>i_pKeyID</code> has been destroyed.
- * @return #KMS_AGENT_STATUS_NO_FIPS_KMAS_AVAILABLE
- * @return #KMS_AGENT_AES_KEY_UNWRAP_ERROR
- * @return #KMS_AGENT_AES_KEY_WRAP_SETUP_ERROR
- */
-KMS_AGENT_STATUS KMSAgent_RetrieveDataUnitKeys(
- KMSClientProfile* const i_pProfile,
- const KMSAgent_DataUnit* const i_pDataUnit,
- int i_iPageSize,
- int i_iPageOffset,
- int* const o_piKeysRemaining,
- const unsigned char * const i_pKeyID,
- KMSAgent_ArrayOfKeys** const o_ppKeys);
-
-/**
- * returns a key in the #KMS_KEY_STATE_ACTIVE_PROTECT_AND_PROCESS for the specified data unit. A new
- * key will be created if the data unit does not have a key in the protect and process state or if the
- * agent is not authorized to access the key in the protect and process state.
- * @param i_pProfile an initialized #KMSClientProfile
- * @param i_pDataUnit The Data Unit for which a key in the protect and process state will be returned.
- * @param i_pKeyGroupID Optional. If non-NULL and a new key is to be created, the KMS will associate the key with the specified KeyGroup
- * @param o_pKey A pointer to a buffer for returning the protect and process key. If the data unit
- * is associated with multiple keys in the protect and process state then the
- * most recently created protect and process key is returned.
- *
- * @return #KMS_AGENT_STATUS_OK
- * @return #KMS_AGENT_STATUS_INVALID_PARAMETER
- * @return #KMS_AGENT_STATUS_PROFILE_NOT_LOADED
- * @return #KMS_AGENT_STATUS_NO_MEMORY
- * @return #KMS_AGENT_STATUS_GENERIC_ERROR
- * @return #KMS_AGENT_STATUS_ACCESS_DENIED
- * @return #KMS_AGENT_STATUS_KEY_CALLOUT_FAILURE
- * @return #KMS_AGENT_STATUS_SERVER_BUSY
- * @return #KMS_AGENT_STATUS_EXTERNAL_UNIQUE_ID_EXISTS
- * @return #KMS_AGENT_STATUS_KMS_UNAVAILABLE
- * @return #KMS_AGENT_STATUS_KMS_NO_READY_KEYS
- * @return #KMS_AGENT_STATUS_NO_FIPS_KMAS_AVAILABLE
- * @return #KMS_AGENT_AES_KEY_UNWRAP_ERROR
- * @return #KMS_AGENT_AES_KEY_WRAP_SETUP_ERROR
- */
-KMS_AGENT_STATUS KMSAgent_RetrieveProtectAndProcessKey(
- KMSClientProfile* const i_pProfile,
- const KMSAgent_DataUnit* const i_pDataUnit,
- utf8cstr const i_pKeyGroupID,
- KMSAgent_Key* const o_pKey);
-
-/**
- * Helper function which frees memory allocated for the output to #KMSAgent_RetrieveDataUnitKeys.
- * @param i_pArrayOfKeys The array of keys to be freed
- */
-void KMSAgent_FreeArrayOfKeys(
- KMSAgent_ArrayOfKeys* i_pArrayOfKeys);
-
-/**
- * create an entry in the KMS audit log
- *
- * @param i_pProfile an initialized #KMSClientProfile
- * @param i_iRetention the retention of audit log, can be one of:
- * #KMS_AUDIT_LOG_LONG_TERM_RETENTION
- * #KMS_AUDIT_LOG_MEDIUM_TERM_RETENTION
- * #KMS_AUDIT_LOG_SHORT_TERM_RETENTION
- * @param i_iCondition the condition of audit log, can be one of:
- * #KMS_AUDIT_LOG_SUCCESS_CONDITION
- * #KMS_AUDIT_LOG_ERROR_CONDITION
- * #KMS_AUDIT_LOG_WARNING_CONDITION
- * @param i_bIssueAlert issue alert (SNMP INFORM) for this audit
- * @param i_pMessage the message text to be logged
- *
- * @return #KMS_AGENT_STATUS_OK
- * @return #KMS_AGENT_STATUS_INVALID_PARAMETER
- * @return #KMS_AGENT_STATUS_PROFILE_NOT_LOADED
- * @return #KMS_AGENT_STATUS_GENERIC_ERROR
- * @return #KMS_AGENT_STATUS_ACCESS_DENIED
- * @return #KMS_AGENT_STATUS_SERVER_BUSY
- * @return #KMS_AGENT_STATUS_KMS_UNAVAILABLE
- * @return #KMS_AGENT_STATUS_NO_FIPS_KMAS_AVAILABLE
- */
-KMS_AGENT_STATUS KMSAgent_CreateAuditLog(
- KMSClientProfile* i_pProfile,
- enum KMS_AUDIT_LOG_RETENTION i_iRetention,
- enum KMS_AUDIT_LOG_CONDITION i_iCondition,
- int i_bIssueAlert,
- utf8cstr i_pMessage );
-
-
-#ifdef KMSUSERPKCS12
-#include <sys/types.h>
-KMS_AGENT_STATUS KMSAgent_ChangeLocalPWD(
- KMSClientProfile* i_pProfile,
- utf8cstr const i_pOldPassphrase,
- utf8cstr const i_pNewPassphrase);
-
-#define KMSAGENT_PROFILE_FLAGS uint32_t
-
-KMS_AGENT_STATUS
-KMSAgent_GetProfileStatus(
- char *i_pProfileName,
- KMSAGENT_PROFILE_FLAGS *flags);
-
-
-#define KMSAGENT_PROFILE_EXISTS_FLAG 0x01
-#define KMSAGENT_CLIENTKEY_EXISTS_FLAG 0x02
-#endif /* KMSUSERPKCS12 */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentAESKeyWrap.h b/usr/src/lib/libkmsagent/common/KMSAgentAESKeyWrap.h
deleted file mode 100644
index 0a77573a00..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentAESKeyWrap.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/*
- * \file KMSAgentAESKeyWrap.h
- */
-
-#ifndef KMSAgentAESKeyWrap_H
-#define KMSAgentAESKeyWrap_H
-
-#ifdef WIN32
-#include <string.h>
-typedef unsigned char uint8_t;
-typedef unsigned short uint16_t;
-typedef unsigned int uint32_t;
-typedef unsigned long long uint64_t;
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- /**
- * AES Key Wrap (see RFC 3394). No logging is performed since this
- * functions must execute in a Known Answer Test prior to
- * #KMSAgent_InitializeLibrary.
- * @param kek The AES symmetric key-encryption key
- * @param kek_len The size, in bytes, of the KEK
- * @param pt The plain text key to be AES key wrapped
- * @param len The "n" parameter from RFC3394, i.e. the number of 64-bit key data
- * blocks. For example, with 256 bit plain text keys n=4.
- * @param ct The resulting AES wrapped key. The size of ct needs to allow
- * for the 64-bit integrity check value, i.e. sizeof(pt+8)
- */
- void aes_key_wrap (const uint8_t *kek,
- size_t kek_len,
- const uint8_t *pt,
- size_t len,
- uint8_t *ct);
-
- /**
- * AES Key Unwrap (see RFC 3394). No logging is performed since this
- * functions must execute in a Known Answer Test prior to
- * #KMSAgent_InitializeLibrary.
- * @param kek The AES symmetric key-encryption key
- * @param kek_len The size, in bytes, of the KEK
- * @param ct The AES wrapped key.
- * @param pt The resulting, unwrapped, plain text key.
- * @param len The "n" parameter from RFC3394, i.e. the number of 64-bit key data
- * blocks. For example, with 256 bit plain text keys n=4.
- * @return 0 on success, non-zero otherwise
- */
- int aes_key_unwrap (const uint8_t *kek,
- size_t kek_len,
- const uint8_t *ct,
- uint8_t *pt,
- size_t len);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* KMSAgentAESKeyWrap_H */
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentChallenge.cpp b/usr/src/lib/libkmsagent/common/KMSAgentChallenge.cpp
deleted file mode 100644
index 637191a2af..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentChallenge.cpp
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentChallenge.cpp
- */
-
-#include "KMSAgentChallenge.h"
-#include "KMSAgentCryptoUtilities.h"
-#include "KMSAgentStringUtilities.h"
-#include "ApplianceParameters.h"
-#include "SYSCommon.h"
-
-extern "C" int Log2(char* msg1,
- char* msg2);
-
-#ifdef METAWARE
-#include "debug.h"
-#endif
-
-
-/**
- * ComputeChallengeResponse
- */
-bool ComputeChallengeResponse(
- const unsigned char* i_pAuthenticationSecret,
- int i_iAuthenticationSecretLength,
- const unsigned char* i_pRootCACertificate,
- int i_iRootCACertificateLength,
- const unsigned char* i_pAuthenticationChallenge,
- int i_iAuthenticationChallengeLength,
- unsigned char* o_pAuthenticationChallengeResponse,
- int i_iAuthenticationChallengeResponseLength )
-{
-
- bool rc;
-
-#ifdef DEBUG
- Log2 ("KMSAgent_LoadProfile::ComputeChallengeResponse", "Entered");
-#endif
- FATAL_ASSERT( i_iAuthenticationChallengeResponseLength == HMAC_LENGTH );
-
- // challenge response is HMAC-SHA1( RootCACertificate ||
- // AuthenticationChallenge, AuthenticationSecret )
- const unsigned char* aBuffersToHMAC[2];
- int aBuffersToHMACSize[2];
-
- aBuffersToHMAC[0] = i_pRootCACertificate;
- aBuffersToHMACSize[0] = i_iRootCACertificateLength;
-
- aBuffersToHMAC[1] = i_pAuthenticationChallenge;
- aBuffersToHMACSize[1] = i_iAuthenticationChallengeLength;
-
- rc = HMACBuffers(
- 2,
- aBuffersToHMAC,
- aBuffersToHMACSize,
- i_pAuthenticationSecret,
- i_iAuthenticationSecretLength,
- o_pAuthenticationChallengeResponse );
-
-#if defined(METAWARE) && defined(DEBUG)
- int j=0;
-
- j+=snprintf(outmsg+j, OUTMSG_SIZE,
- "length=%x\n",
- i_iAuthenticationSecretLength);
-
- for (int i=0 ; i< i_iAuthenticationSecretLength; i++)
- {
- j+=snprintf(outmsg+j, OUTMSG_SIZE,
- "%x",
- i_pAuthenticationSecret[i]);
- }
- snprintf(outmsg+j, OUTMSG_SIZE, "\n");
-
- Log2("Secret = ",outmsg);
-#endif
-
-#if defined(METAWARE) && defined(DEBUG)
- j=0;
-
- j+=snprintf(outmsg+j, OUTMSG_SIZE,
- "length=%x\n",
- i_iRootCACertificateLength);
-
- for (i=0 ; i< i_iRootCACertificateLength; i++)
- {
- j+=snprintf(outmsg+j, OUTMSG_SIZE,
- "%x",
- i_pRootCACertificate[i]);
- }
- snprintf(outmsg+j, OUTMSG_SIZE, "\n");
-
- Log2("i_pRootCACertificate = ",outmsg);
-#endif
-
-#if defined(METAWARE) && defined(DEBUG)
- j=0;
-
- j+=snprintf(outmsg+j, OUTMSG_SIZE,
- "length=%x\n",
- i_iAuthenticationChallengeLength);
-
- for (i=0 ; i< i_iAuthenticationChallengeLength; i++)
- {
- j+=snprintf(outmsg+j, OUTMSG_SIZE,
- "%x",
- i_pAuthenticationChallenge[i]);
- }
- snprintf(outmsg+j, OUTMSG_SIZE, "\n");
-
- Log2("i_pAuthenticationChallenge = ",outmsg);
-#endif
-
-#if defined(METAWARE) && defined(DEBUG)
- j=0;
-
- j+=snprintf(outmsg+j, OUTMSG_SIZE,
- "length=%x\n",
- i_iAuthenticationChallengeResponseLength);
-
- for (i=0 ; i< i_iAuthenticationChallengeResponseLength; i++)
- {
- j+=snprintf(outmsg+j, OUTMSG_SIZE,
- "%x",
- o_pAuthenticationChallengeResponse[i]);
- }
- snprintf(outmsg+j, OUTMSG_SIZE, "\n");
-
- Log2("o_pAuthenticationChallengeResponse = ",outmsg);
-#endif
-
- return rc;
-
-#undef __IAM__
-}
-
-/**
- * ComputeEntityHashedPassphraseAndAuthenticationSecret
- */
-bool ComputeEntityHashedPassphraseAndAuthenticationSecret(
- const char* i_sPassphrase,
- char* const o_sHexHashedPassphrase,
- int* const o_piAuthenticationHashIterationCount,
- char* const o_sHexAuthenticationSecret )
-{
- // HashedPassphrase is SHA1( Passphrase-UTF-8 )
- // Using UTF-8 ensures the same result on different platforms with
- // different wide character representations.
- // This hashed passphrase value is used to wrap entity
- // private key materials.
-#if defined(METAWARE) && defined(DEBUG)
- Log2 ("KMSAgent_LoadProfile::ComputeEntityHashedPassphraseAndAuthenticationSecret",
- "Entered");
-#endif
-
- unsigned char aHashedPassphrase[HASH_LENGTH];
-
- memset(aHashedPassphrase, 0, HASH_LENGTH);
-
- if ( strlen(i_sPassphrase) > 0 )
- {
- if ( !HashBuffer(
- (unsigned char*)i_sPassphrase,
- strlen(i_sPassphrase),
- aHashedPassphrase) )
- {
- return false;
- }
- }
-
- ConvertBinaryToUTF8HexString( o_sHexHashedPassphrase,
- aHashedPassphrase,
- HASH_LENGTH );
-
- // HexAuthenticationSecret is SHA1( SHA1( ... ( SHA1(
- // HashedPassphrase ) ) ) The number of iterations is time bounded
- // at 1/10 of a second, and also bounded by fixed minimum and
- // maximum values (to prevent too weak of a computation and to
- // prevent a DoS, respectively). This value is used as the shared
- // secret in challenge-response authentication exchanges.
-
- *o_piAuthenticationHashIterationCount = 0;
-
- unsigned long iStartTickCount = K_GetTickCount();
-
- while ( *o_piAuthenticationHashIterationCount <
- MAX_AUTHENTICATION_ITERATION_COUNT
- && ( *o_piAuthenticationHashIterationCount <
- MIN_AUTHENTICATION_ITERATION_COUNT
- || iStartTickCount +
- AUTHENTICATION_ITERATION_TIME_IN_MILLISECONDS >
- K_GetTickCount() ) )
- {
- if ( !HashBuffer(
- aHashedPassphrase,
- HASH_LENGTH,
- aHashedPassphrase) )
- {
- return false;
- }
-
- (*o_piAuthenticationHashIterationCount)++;
- }
-
- ConvertBinaryToUTF8HexString( o_sHexAuthenticationSecret,
- aHashedPassphrase, HASH_LENGTH );
-
-#if defined(METAWARE) && defined(DEBUG)
- snprintf(outmsg, OUTMSG_SIZE,
- "o_sHexAuthenticationSecret=%x o_piAuth..."
- "= %x aHashedPassphrase=%s\n",
- o_sHexAuthenticationSecret,
- *o_piAuthenticationHashIterationCount,
- aHashedPassphrase);
- Log2("ComputeEntityHashedPassphraseAndAuthenticationSecret ",
- outmsg);
-#endif
-
- return true;
-}
-
-/**
- * ComputeFixedEntityHashedPassphraseAndAuthenticationSecret
- */
-bool ComputeFixedEntityHashedPassphraseAndAuthenticationSecret(
- const char* i_sPassphrase,
- char* const o_sHexHashedPassphrase,
- int i_iAuthenticationHashIterationCount,
- char* const o_sHexAuthenticationSecret )
-{
- // compute same values as
- // ComputeEntityHashedPassphraseAndAuthenticationSecret, except
- // iteration count is fixed
-#if defined(METAWARE) && defined(DEBUG)
- Log2 ("KMSAgent_LoadProfile::"
- "ComputeFixedEntityHashedPassphraseAndAuthenticationSecret", "Entered");
-#endif
-
- // detect attempts to cause weak computation or DoS attack
- if ( i_iAuthenticationHashIterationCount <
- MIN_AUTHENTICATION_ITERATION_COUNT ||
- i_iAuthenticationHashIterationCount >
- MAX_AUTHENTICATION_ITERATION_COUNT )
- {
- return false;
- }
-
-
- unsigned char aHashedPassphrase[HASH_LENGTH];
-
- memset(aHashedPassphrase, 0, HASH_LENGTH);
-
- if ( strlen(i_sPassphrase) > 0 )
- {
- if ( !HashBuffer(
- (unsigned char*)i_sPassphrase,
- strlen(i_sPassphrase),
- aHashedPassphrase) )
- {
- return false;
- }
- }
-
- ConvertBinaryToUTF8HexString( o_sHexHashedPassphrase,
- aHashedPassphrase, HASH_LENGTH );
-
- int i;
- for ( i = 0; i < i_iAuthenticationHashIterationCount; i++ )
- {
- if ( !HashBuffer(
- aHashedPassphrase,
- HASH_LENGTH,
- aHashedPassphrase) )
- {
- return false;
- }
- }
-
- ConvertBinaryToUTF8HexString( o_sHexAuthenticationSecret,
- aHashedPassphrase, HASH_LENGTH );
-
-#if defined(METAWARE) && defined(DEBUG)
- snprintf(outmsg, OUTMSG_SIZE,
- "i_iAuth %x \n",
- i_iAuthenticationHashIterationCount);
-
- Log2("ComputeEntityHashedPassphraseAndAuthenticationSecret ",
- outmsg);
-#endif
-
-
- return true;
-}
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentChallenge.h b/usr/src/lib/libkmsagent/common/KMSAgentChallenge.h
deleted file mode 100644
index b259f13e69..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentChallenge.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentChallenge.h
- */
-
-#ifndef KMSAagentChallenge_H
-#define KMSAagentChallenge_H
-
-/**
- * computes the response to the KMA's challenge using
- * HMAC-SHA1( RootCACertificate || AuthenticationChallenge,
- * AuthenticationSecret ). The AuthenticationSecret is
- * used as the key in the HMAC-SHA1 computation.
- *
- * @param i_pAuthenticationSecret
- * @param i_iAuthenticationSecretLength
- * @param i_pRootCACertificate
- * @param i_iRootCACertificateLength
- * @param i_pAuthenticationChallenge
- * @param i_iAuthenticationChallengeLength
- * @param o_pAuthenticationChallengeResponse
- * @param i_iAuthenticationChallengeResponseLength
- *
- * @return boolean success indicator
- */
-bool ComputeChallengeResponse(
- const unsigned char* i_pAuthenticationSecret,
- int i_iAuthenticationSecretLength,
- const unsigned char* i_pRootCACertificate,
- int i_iRootCACertificateLength,
- const unsigned char* i_pAuthenticationChallenge,
- int i_iAuthenticationChallengeLength,
- unsigned char* o_pAuthenticationChallengeResponse,
- int i_iAuthenticationChallengeResponseLength );
-
-/**
- * computes the SHA1 hash of the specified passphrase.
- * The number of SHA1 iterations
- * is recorded in <code>o_iAuthenticationHashIterationCount</code> and the result
- * stored in o_sHexAuthenticationSecret as a UTF8 hex string.
- * HexAuthenticationSecret is SHA1( SHA1( ... ( SHA1( HashedPassphrase ) ) )
- * The number of iterations is time bounded at 1/10 of a second, and also
- * bounded by fixed minimum and maximum values (to prevent too weak of a
- * computation and to prevent a DoS, respectively).
- * This value is used as the shared secret in challenge-response
- * authentication exchanges.
-
- * @param i_sPassphrase the passphrase to be hashed
- * @param o_sHexHashedPassphrase the hashed passphrase
- * returned in UTF8 hexadecimal, this
- * buffer should be at least
- * 2*HASH_LENGTH+1 bytes
- * @param o_iAuthenticationHashIterationCount
- * @param o_sHexAuthenticationSecret
- *
- * @return boolean success indicator
- */
-bool ComputeEntityHashedPassphraseAndAuthenticationSecret(
- const char* const i_sPassphrase,
- char* const o_sHexHashedPassphrase,
- int* const o_piAuthenticationHashIterationCount,
- char* const o_sHexAuthenticationSecret );
-
-/**
- * computes the SHA1 hash of the specified passphrase. The SHA1 is
- * performed a "fixed" number of times as specified by
- * <code>i_iAuthenticationHashIterationCount</code>.
- *
- * @param i_sPassphrase the passprhase to be SHA1 hashed
- * @param o_sHexHashedPassphrase the SHA1 hash
- * of i_sPassphrase stored as a UTF8 hex string
- * @param i_iAuthenticationHashIterationCount the number
- * of times to SHA1 hash the passphrase
- * @param o_sHexAuthenticationSecret the passphrase hashed
- * the fixed number of times and stored as a UTF8
- * hex string
- *
- * @return boolean success indicator
- */
-bool ComputeFixedEntityHashedPassphraseAndAuthenticationSecret(
- const char* i_sPassphrase,
- char* const o_sHexHashedPassphrase,
- int i_iAuthenticationHashIterationCount,
- char* const o_sHexAuthenticationSecret );
-
-#endif /* KMSAagentChallenge_H */
-
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentCryptoUtilities.cpp b/usr/src/lib/libkmsagent/common/KMSAgentCryptoUtilities.cpp
deleted file mode 100644
index 3ae811bc9d..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentCryptoUtilities.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentCryptoUtilities.cpp
- */
-
-#include <openssl/rand.h>
-#include <openssl/hmac.h>
-#include <openssl/err.h>
-#include <openssl/sha.h>
-
-#include "KMSAgentCryptoUtilities.h"
-#include "SYSCommon.h"
-#include "KMSAgentStringUtilities.h"
-//#include "ApplianceParameters.h"
-
-// Find header in CryptoUtilities.h
-bool GetPseudorandomBytes(
- int i_iNumBytes,
- unsigned char* o_pBytes )
-{
- if ( 1 != RAND_bytes( o_pBytes, i_iNumBytes) )
- {
- return false;
- }
-
- return true;
-}
-
-// assumes o_pHashedBuffer points to HASH_LENGTH bytes
-bool HashBuffer(
- const unsigned char* i_pBufferToHash,
- int i_iBufferToHashSize,
- unsigned char* o_pHashedBuffer )
-{
-
- FATAL_ASSERT( HASH_LENGTH == SHA_DIGEST_LENGTH );
- FATAL_ASSERT( i_pBufferToHash && (i_iBufferToHashSize > 0) && o_pHashedBuffer );
-
- unsigned char aDigest[HASH_LENGTH];
-
- if ( NULL == SHA1( i_pBufferToHash, i_iBufferToHashSize, aDigest ) )
- {
- return false;
- }
-
- memcpy( o_pHashedBuffer, aDigest, HASH_LENGTH );
-
- return true;
-}
-
-// assumes o_pHMACBuffer points to HMAC_LENGTH bytes
-bool HMACBuffers(
- int i_iBufferCount,
- const unsigned char** i_pBufferToHMAC,
- int* i_pBufferToHMACSize,
- const unsigned char* i_pHMACKey,
- int i_iHMACKeySize,
- unsigned char* o_pHMACBuffer )
-{
- // assumes o_pHMACBuffer points to HMAC_LENGTH bytes
-
- FATAL_ASSERT( HMAC_LENGTH == SHA_DIGEST_LENGTH );
- FATAL_ASSERT( (i_iBufferCount > 0) &&
- i_pBufferToHMAC &&
- i_pBufferToHMACSize &&
- i_pHMACKey &&
- (i_iHMACKeySize > 0) && o_pHMACBuffer );
-
- HMAC_CTX stContext;
-
- HMAC_CTX_init( &stContext );
-
- HMAC_Init_ex( &stContext, i_pHMACKey, i_iHMACKeySize, EVP_sha1(), NULL );
-
- int i;
- for ( i = 0; i < i_iBufferCount; i++ )
- {
- HMAC_Update( &stContext, i_pBufferToHMAC[i], i_pBufferToHMACSize[i] );
- }
-
- unsigned int iHMACSize = HMAC_LENGTH;
-
- HMAC_Final( &stContext, o_pHMACBuffer, &iHMACSize );
-
- FATAL_ASSERT( iHMACSize == HMAC_LENGTH );
-
- HMAC_CTX_cleanup( &stContext );
-
- return true;
-}
-
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentCryptoUtilities.h b/usr/src/lib/libkmsagent/common/KMSAgentCryptoUtilities.h
deleted file mode 100644
index 40a80ac93f..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentCryptoUtilities.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentCryptoUtilities.h
- */
-
-#ifndef KMSAgentCryptoUtilities_H
-#define KMSAgentCryptoUtilities_H
-
-#ifdef WIN32
-#pragma warning(disable: 4786)
-#endif
-
-#define HASH_LENGTH 20
-#define HMAC_LENGTH 20
-
-/**
- * Generates a random set of bytes of the specified length.
- *
- * @return boolean success indicator
- */
-bool GetPseudorandomBytes(
- int i_iNumBytes,
- unsigned char* o_pBytes );
-
-/**
- * computes SHA-1 hash of the buffer
- * @param i_pBufferToHash
- * @param i_iBufferToHashSize
- * @param o_pHashedBuffer buffer to recieve the SHA-1 hash and must be
- * #HASH_LENGTH bytes
- * @return boolean success indicator
- */
-bool HashBuffer(
- const unsigned char* i_pBufferToHash,
- int i_iBufferToHashSize,
- unsigned char* o_pHashedBuffer );
-
-#ifdef METAWARE
-
-// implemented in KMSAgentCryptoUtilitiesTreckHmac.c
-extern "C" int HMACBuffers(
- int i_iBufferCount,
- const unsigned char** i_pBufferToHMAC,
- int* i_pBufferToHMACSize,
- const unsigned char* i_pHMACKey,
- int i_iHMACKeySize,
- unsigned char* o_pHMACBuffer );
-
-#else
-/**
- * computes HMAC on the supplied buffers using SHA-1
- * hashing and the key supplied. No logging is performed since this
- * functions must execute in a Known Answer Test prior to
- * #KMSAgent_InitializeLibrary.
- * @param i_iBufferCount number of buffers provided in #i_pBufferToHMAC
- * @param i_pBufferToHMAC array of buffers
- * @param i_pBufferToHMACSize array of sizes corresponding to buffers in
- * #i_pBufferToHMAC
- * @param i_pHMACKey secret key
- * @param i_iHMACKeySize length of the key in bytes
- * @param o_pHMACBuffer buffer to contain the HMAC, this buffer must be
- * #HASH_LENGTH bytes
- * @return boolean success indicator
- */
-bool HMACBuffers(
- int i_iBufferCount,
- const unsigned char** i_pBufferToHMAC,
- int* i_pBufferToHMACSize,
- const unsigned char* i_pHMACKey,
- int i_iHMACKeySize,
- unsigned char* o_pHMACBuffer );
-#endif
-
-
-
-#endif //KMSAgentCryptoUtilities_H
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentDataUnitCache.cpp b/usr/src/lib/libkmsagent/common/KMSAgentDataUnitCache.cpp
deleted file mode 100644
index 278554545a..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentDataUnitCache.cpp
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentDataUnitCache.cpp
- */
-
-#include <stdio.h>
-#include "SYSCommon.h"
-#include "KMSClientProfile.h"
-#include "KMSAgentDataUnitCache.h"
-
-CDataUnitCache::CDataUnitCache(int i_iMaxSize)
-{
- m_iSize = 0;
- m_iIndex = 0;
- m_iMaxSize = i_iMaxSize;
- m_pCache = 0;
-
- K_CreateMutex(&m_Lock);
-}
-
-CDataUnitCache::~CDataUnitCache()
-{
- delete[] m_pCache;
- K_DestroyMutex(m_Lock);
-}
-
-bool CDataUnitCache::Insert(
- const unsigned char* const i_pDataUnitID,
- int i_iDataUnitIDMaxLen,
- const unsigned char* const i_pDataUnitKeyID ,
- int i_iDataUnitKeyIDMaxLen,
- const utf8char* const i_wsApplianceNetworkAddress )
-{
- FATAL_ASSERT( (i_pDataUnitID && i_iDataUnitIDMaxLen == KMS_DATA_UNIT_ID_SIZE) ||
- (i_pDataUnitKeyID && i_iDataUnitKeyIDMaxLen == KMS_KEY_ID_SIZE));
- FATAL_ASSERT( i_wsApplianceNetworkAddress &&
- strlen( i_wsApplianceNetworkAddress ) < KMS_MAX_NETWORK_ADDRESS );
-
- Lock();
-
- if ( m_pCache == 0 )
- {
- m_pCache = new DataUnitCacheEntry[m_iMaxSize];
-
- if ( !m_pCache )
- {
- // no error logged on out of memory
- Unlock();
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("CDataUnitCache::Insert new DataUnitCacheEntry alloc failure\n");
-#endif
- return false;
- }
- }
-
- if( m_iSize >= m_iMaxSize )
- {
- // the cache is full, so reuse an old slot
-
- m_iIndex = (m_iIndex + 1) % m_iMaxSize;
- }
- else
- {
- m_iIndex = m_iSize;
-
- m_iSize++;
- }
-
- strncpy( m_pCache[m_iIndex].m_wsApplianceNetworkAddress,
- i_wsApplianceNetworkAddress,
- sizeof(m_pCache[m_iIndex].m_wsApplianceNetworkAddress) );
- m_pCache[m_iIndex].m_wsApplianceNetworkAddress[sizeof(m_pCache[m_iIndex].m_wsApplianceNetworkAddress)-1] = '\0';
-
- if ( i_pDataUnitID )
- {
- memcpy( m_pCache[m_iIndex].m_aDataUnitID,
- i_pDataUnitID,
- i_iDataUnitIDMaxLen );
- }
- else
- {
- memset( m_pCache[m_iIndex].m_aDataUnitID,0,KMS_DATA_UNIT_ID_SIZE);
- }
-
- if ( i_pDataUnitKeyID )
- {
- memcpy( m_pCache[m_iIndex].m_aDataUnitKeyID,
- i_pDataUnitKeyID,
- i_iDataUnitKeyIDMaxLen );
- }
- else
- {
- memset(m_pCache[m_iIndex].m_aDataUnitKeyID,0,KMS_KEY_ID_SIZE);
- }
-
- Unlock();
-
- return true;
-}
-
-bool CDataUnitCache::GetApplianceByDataUnitID(
- const unsigned char* const i_pDataUnitID,
- int i_iDataUnitIDMaxLen,
- utf8char* const o_wsApplianceNetworkAddress,
- int i_iMaxApplianceNetworkAddressLen )
-{
- FATAL_ASSERT( i_pDataUnitID );
- FATAL_ASSERT( i_iDataUnitIDMaxLen == KMS_DATA_UNIT_ID_SIZE );
- FATAL_ASSERT( i_iMaxApplianceNetworkAddressLen <= KMS_MAX_NETWORK_ADDRESS );
-
- // assumes o_wsApplianceNetworkAddress points to at least KMS_MAX_NETWORK_ADDRESS
-
- Lock();
-
- int i;
- for( i = 0; i < m_iSize; i++ )
- {
- if( memcmp(m_pCache[i].m_aDataUnitID, i_pDataUnitID, KMS_DATA_UNIT_ID_SIZE) == 0 )
- {
- strncpy( o_wsApplianceNetworkAddress,
- m_pCache[i].m_wsApplianceNetworkAddress,
- i_iMaxApplianceNetworkAddressLen );
- o_wsApplianceNetworkAddress[i_iMaxApplianceNetworkAddressLen-1] = '\0';
- Unlock();
- return true;
- }
- }
-
- Unlock();
-
- return false;
-}
-
-bool CDataUnitCache::GetApplianceByDataUnitKeyID(
- const unsigned char* const i_pDataUnitKeyID,
- int i_iDataUnitKeyIDMaxLen,
- utf8char* const o_wsApplianceNetworkAddress,
- int i_iMaxApplianceNetworkAddressLen )
-{
- FATAL_ASSERT( i_pDataUnitKeyID );
- FATAL_ASSERT( i_iDataUnitKeyIDMaxLen == KMS_KEY_ID_SIZE );
- FATAL_ASSERT( i_iMaxApplianceNetworkAddressLen <= KMS_MAX_NETWORK_ADDRESS );
-
- // assumes o_wsApplianceNetworkAddress points to at least KMS_MAX_NETWORK_ADDRESS
-
- Lock();
-
- int i;
- for( i = 0; i < m_iSize; i++ )
- {
- if( memcmp(m_pCache[i].m_aDataUnitKeyID,
- i_pDataUnitKeyID, KMS_KEY_ID_SIZE) == 0 )
- {
- strncpy( o_wsApplianceNetworkAddress,
- m_pCache[i].m_wsApplianceNetworkAddress,
- i_iMaxApplianceNetworkAddressLen );
- o_wsApplianceNetworkAddress[i_iMaxApplianceNetworkAddressLen-1] = '\0';
-
- Unlock();
-
- return true;
- }
- }
-
- Unlock();
-
- return false;
-}
-
-void CDataUnitCache::Lock()
-{
- K_LockMutex(m_Lock);
-}
-
-void CDataUnitCache::Unlock()
-{
- K_UnlockMutex(m_Lock);
-}
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentDataUnitCache.h b/usr/src/lib/libkmsagent/common/KMSAgentDataUnitCache.h
deleted file mode 100644
index cacec08c74..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentDataUnitCache.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/** @file KMSAgentDataUnitCache.h
- * @defgroup EncryptionAgent Encryption Agent API
- *
- */
-#ifndef KMSAGENT_DATA_UNIT_CACHE_H
-#define KMSAGENT_DATA_UNIT_CACHE_H
-
-#define DATA_UNIT_CACHE_MAX_SIZE 128
-
-typedef struct DataUnitCacheEntry
-{
- utf8char m_wsApplianceNetworkAddress[KMS_MAX_NETWORK_ADDRESS+1];
- unsigned char m_aDataUnitID[KMS_DATA_UNIT_ID_SIZE];
- unsigned char m_aDataUnitKeyID[KMS_KEY_ID_SIZE];
-
-} DataUnitCacheEntry;
-
-/**
- * Maintains an affinity list between KMAs and DUs and KeyIDs.
- */
-class CDataUnitCache
-{
-
-public:
- CDataUnitCache(int i_iMaxSize = DATA_UNIT_CACHE_MAX_SIZE);
- ~CDataUnitCache();
-
- /**
- * insert a new DataUnitCacheEntry into the cache list, either i_pDataUnitID or
- * i_pDataUnitKeyID must be specified for affinity with the specified i_wsApplianceNetworkAddress
- * @param i_pDataUnitID optional, specifies a DU ID cache entry if specified
- * @param i_iDataUnitIDMaxLen ignored if i_pDataUnitID not specified, otherwise
- * specifies the length of i_pDataUnitID
- * @param i_pDataUnitKeyID optional, specifies a Key ID cache entry if specified
- * @param i_iDataUnitKeyIDMaxLen ignored if i_pDataUnitKeyID is not specified,
- * otherwise specifies the length of i_pDataUnitKeyID
- * @param i_wsApplianceNetworkAddress required and specifies the KMA affiliated
- * with the DU ID or Key ID
- * @return True if successfully inserted into the cache
- */
- bool Insert(
- const unsigned char* const i_pDataUnitID,
- int i_iDataUnitIDMaxLen,
- const unsigned char* const i_pDataUnitKeyID ,
- int i_iDataUnitKeyIDMaxLen,
- const utf8char* const i_wsApplianceNetworkAddress );
-
- bool GetApplianceByDataUnitID(
- const unsigned char* const i_pDataUnitID,
- int i_iDataUnitIDMaxLen,
- utf8char* const o_wsApplianceNetworkAddress,
- int i_iMaxApplianceNetworkAddressLen );
-
- bool GetApplianceByDataUnitKeyID(
- const unsigned char* const i_pDataUnitKeyID,
- int i_iDataUnitKeyIDMaxLen,
- utf8char* const o_wsApplianceNetworkAddress,
- int i_iMaxApplianceNetworkAddressLen );
-
-protected:
- void Lock();
- void Unlock();
-
-private:
- K_MUTEX_HANDLE m_Lock;
-
- int m_iIndex;
- int m_iSize;
- int m_iMaxSize;
- DataUnitCacheEntry *m_pCache;
-
-};
-
-#endif
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentFatalState.cpp b/usr/src/lib/libkmsagent/common/KMSAgentFatalState.cpp
deleted file mode 100644
index 37a1620fd7..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentFatalState.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentFatalState.cpp
- */
-#include <stdio.h>
-#include <string.h>
-
-#include "SYSCommon.h"
-#include "KMSAgentStringUtilities.h"
-#include "KMSAuditLogger.h"
-
-#define MAX_TIME_STAMP_LENGTH 30
-
-#ifndef METAWARE
-/**
- * append the state of the application in the <KMSAgentAuditLogger> log file.
- */
-void process_fatal_application_state(const char* sFile,
- const char* sFunction,
- int iLine,
- const char* sAdditionalText)
-{
-
- // File format: <date/time>,<operation>,<retention>,<audit id>,<network adddress>,<message>
- char sFileLogEntry[MAX_LOG_FILE_LINE_LENGTH];
- char sTimeStamp[MAX_TIME_STAMP_LENGTH];
- char sLine[20];
-
- GetCurrentDateTimeISO8601UTC(sTimeStamp, MAX_TIME_STAMP_LENGTH);
- Int64ToUTF8(sLine, iLine, false, false);
-
- strncpy(sFileLogEntry, "A fatal application error has occurred. Date: ", sizeof(sFileLogEntry));
-
- sFileLogEntry[sizeof(sFileLogEntry)-1] = '\0';
-
- strncat(sFileLogEntry, sTimeStamp, MAX_LOG_FILE_LINE_LENGTH - strlen(sFileLogEntry));
-
- strncat(sFileLogEntry, " File: ", MAX_LOG_FILE_LINE_LENGTH - strlen(sFileLogEntry));
-
- strncat(sFileLogEntry, sFile, MAX_LOG_FILE_LINE_LENGTH - strlen(sFileLogEntry));
-
- strncat(sFileLogEntry, " Function: ", MAX_LOG_FILE_LINE_LENGTH - strlen(sFileLogEntry));
-
- strncat(sFileLogEntry, sFunction, MAX_LOG_FILE_LINE_LENGTH - strlen(sFileLogEntry));
-
- strncat(sFileLogEntry, " Line: ", MAX_LOG_FILE_LINE_LENGTH - strlen(sFileLogEntry));
-
- strncat(sFileLogEntry, sLine, MAX_LOG_FILE_LINE_LENGTH - strlen(sFileLogEntry));
-
- LogToFile( 0, sFileLogEntry );
-
- exit( -1 );
-}
-
-#endif
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentKeyCallout.cpp b/usr/src/lib/libkmsagent/common/KMSAgentKeyCallout.cpp
deleted file mode 100644
index 6a2bfc9f43..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentKeyCallout.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#include "KMSAgentKeyCallout.h"
-
-#ifdef METAWARE
-extern "C" int ecpt_get_pc_key_and_xor( unsigned char * key );
-#endif
-
-/**
- * Hook function to get the key in the clear (XOR is presently used)
- * @returns 0=ok, nonzero = bad
- */
-int KMSAgentKeyCallout( unsigned char io_aKey[KMS_MAX_KEY_SIZE] )
-{
-#ifndef METAWARE
- return 0;
-#else
- return ecpt_get_pc_key_and_xor( io_aKey );
-#endif
-}
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentKeyCallout.h b/usr/src/lib/libkmsagent/common/KMSAgentKeyCallout.h
deleted file mode 100644
index d4a66f4a05..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentKeyCallout.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentKeyCallout.h
- *
- */
-
-#ifndef KMSAGENT_KEYCALLOUT_H
-#define KMSAGENT_KEYCALLOUT_H
-
-#include "KMSAgent.h"
-
-/**
- * Behavior is up to customizers of the KMS Agent reference implementation.
- * A possible usage of this function is to encrypt the plaintext
- * key value. This function will be invoked by the following KMS Agent API
- * functions upon successful receipt of a key from a KMS transaction:
- * <ul>
- * <li>KMSAgent_CreateKey
- * <li>KMSAgent_RetrieveKey
- * <li>KMSAgent_RetrieveDataUnitKeys - once for each key retrieved
- * <li>KMSAgent_RetrieveProtectAndProcessKey
- * </ul>
- *
- * @param io_pKey a plaintext key
- * @return 0 if success
- */
-int KMSAgentKeyCallout( unsigned char io_aKey[KMS_MAX_KEY_SIZE] );
-
-
-#endif
-
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentKnownAnswerTests.cpp b/usr/src/lib/libkmsagent/common/KMSAgentKnownAnswerTests.cpp
deleted file mode 100644
index eea2fbb098..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentKnownAnswerTests.cpp
+++ /dev/null
@@ -1,454 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentKnownAnswerTests.cpp
- */
-
-#if defined(K_SOLARIS_PLATFORM) && !defined(SOLARIS10)
-#include <aes_impl.h>
-#define AES_MAXKEYBYTES AES_MAX_KEY_BYTES
-#define AES_MAXKEYBITS AES_MAXBITS
-#else
-#include "rijndael.h"
-#endif
-#include "KMSAgentCryptoUtilities.h"
-#include "KMSAgentStringUtilities.h"
-
-#ifdef METAWARE
-#include "debug.h"
-#include "sizet.h"
-typedef unsigned char uint8_t;
-typedef unsigned short uint16_t;
-typedef unsigned int uint32_t;
-typedef unsigned long long uint64_t;
-#endif
-
-#include "KMSAgentAESKeyWrap.h"
-#include "KMSAgentKnownAnswerTests.h"
-
-int KnownAnswerTestAESKeyWrap (void)
-{
-
- /*
- * Test Vectors from RFC3394 for 256 bit KEK and 256 bit Key
- * Wrap Input:
- KEK:
- 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
- Key Data:
- 00112233445566778899AABBCCDDEEFF000102030405060708090A0B0C0D0E0F
-
- Output:
- Ciphertext 28C9F404C4B810F4 CBCCB35CFB87F826 3F5786E2D80ED326
- CBC7F0E71A99F43B FB988B9B7A02DD21
-
- Unwrap:
- Plaintext A6A6A6A6A6A6A6A6 0011223344556677 8899AABBCCDDEEFF
- 0001020304050607 08090A0B0C0D0E0F
-
- Output:
- Key Data:
- 00112233445566778899AABBCCDDEEFF000102030405060708090A0B0C0D0E0F
-
- */
-
- static char sKEK[] = "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F";
- static char sKey[] = "00112233445566778899AABBCCDDEEFF000102030405060708090A0B0C0D0E0F";
- static char sKnownCiphertext[] = "28C9F404C4B810F4CBCCB35CFB87F8263F5786E2D80ED326CBC7F0E71A99F43BFB988B9B7A02DD21";
-
- //#ifdef KAT_DEBUG
- // printf("\nAES Key Wrap Test using Test Vectors from RFC 3394 for 256b KEK and 256b Key\n\n");
- // printf("KEK=%s\n", sKEK);
- // printf("Key=%s\n", sKey);
- //#endif
-
- // key-encryption key
- unsigned char acKEK[AES_MAXKEYBYTES];
-
- // plaintext key
- unsigned char acKey[AES_MAXKEYBYTES];
-
- // the wrapped key includes an extra 64bits for the integrity check register
- unsigned char acWrappedKey[AES_MAXKEYBYTES + 8];
- unsigned char acUnWrappedKey[AES_MAXKEYBYTES];
- unsigned char acExpectedWrappedKey[AES_MAXKEYBYTES + 8];
-
- if ((size_t) ConvertUTF8HexStringToBinary(
- sKnownCiphertext,
- acExpectedWrappedKey) != strlen(sKnownCiphertext) / 2)
- {
- return -1;
- }
-
- if (ConvertUTF8HexStringToBinary(
- sKEK,
- acKEK) != AES_MAXKEYBYTES)
- {
- return -1;
- }
-
- if (ConvertUTF8HexStringToBinary(
- sKey,
- acKey) != AES_MAXKEYBYTES)
- {
- return -1;
- }
-
- // for 256 bit Key n=64
- aes_key_wrap(acKEK, sizeof (acKEK), acKey,
- 4, acWrappedKey);
-
- if (memcmp(acWrappedKey, acExpectedWrappedKey, sizeof (acWrappedKey)) != 0)
- {
- return -1;
- }
-
- if (aes_key_unwrap(acKEK, sizeof (acKEK), acWrappedKey,
- acUnWrappedKey, 4) != 0)
- {
- return -1;
- }
-
- if (memcmp(acKey, acUnWrappedKey, sizeof (acKey)) != 0)
- {
- return -1;
- }
-
- return 0;
-}
-
-static int AES_ECB_TestExecution (
- const char * const i_sPlainText,
- const char * const i_sKnownCypherText,
- const unsigned char * const i_pKey)
-{
- unsigned char acPlainText[256];
- unsigned char acCypherText[sizeof (acPlainText)];
- unsigned char acKnownCypherText[sizeof (acPlainText)];
- unsigned char acDecryptedCypherText[sizeof (acPlainText)];
- memset(acDecryptedCypherText, 0, sizeof (acDecryptedCypherText));
-
-#ifdef KAT_DEBUG
- char sComputedCypherText[256];
-#endif
-
-#if defined(K_SOLARIS_PLATFORM) && !defined(SOLARIS10)
- void *ks;
- size_t ks_size;
-#else
- rijndael_ctx ctx;
-#endif
-
- if ((size_t) ConvertUTF8HexStringToBinary(
- i_sPlainText,
- acPlainText) != strlen(i_sPlainText) / 2)
- {
- return -1;
- }
- if ((size_t) ConvertUTF8HexStringToBinary(
- i_sKnownCypherText,
- acKnownCypherText) != strlen(i_sKnownCypherText) / 2)
- {
- return -1;
- }
-
-#if defined(K_SOLARIS_PLATFORM) && !defined(SOLARIS10)
- ks = aes_alloc_keysched(&ks_size, 0);
- if (ks == NULL)
- return (-1);
- aes_init_keysched(i_pKey, AES_MAXKEYBITS, ks);
- (void) aes_encrypt_block(ks, acPlainText, acCypherText);
-#else
- rijndael_set_key_enc_only(&ctx, (uint8_t *) i_pKey, AES_MAXKEYBITS);
-
- rijndael_encrypt(&ctx, acPlainText, (uint8_t *) acCypherText);
-#endif
-
-#ifdef KAT_DEBUG
- ConvertBinaryToUTF8HexString(sComputedCypherText,
- acCypherText,
- strlen(i_sPlainText) / 2);
- printf("PlainText=%s\n", i_sPlainText);
- printf("CypherText=%s\n", sComputedCypherText);
-#endif
-
- if (memcmp(acCypherText, acKnownCypherText, strlen(i_sKnownCypherText) / 2) != 0)
- {
-#if defined(K_SOLARIS_PLATFORM) && !defined(SOLARIS10)
- free(ks);
-#endif
- return -1;
- }
-
-#if defined(K_SOLARIS_PLATFORM) && !defined(SOLARIS10)
- aes_init_keysched(i_pKey, AES_MAXKEYBITS, ks);
- (void) aes_decrypt_block(ks, acCypherText, acDecryptedCypherText);
- free(ks);
-#else
- rijndael_set_key(&ctx, (uint8_t *) i_pKey, AES_MAXKEYBITS);
- rijndael_decrypt(&ctx, (uint8_t *) acCypherText, acDecryptedCypherText);
-#endif
-
- if (memcmp(acPlainText, acDecryptedCypherText, strlen(i_sPlainText) / 2) != 0)
- {
- return -1;
- }
-
- return 0;
-
-}
-
-static int KnownAnswerTestAESECB_GFSbox (void)
-{
- /*
- * Test Vectors from AES Algorithm Validation Suite(AESAVS)
- */
- unsigned char acKey[AES_MAXKEYBYTES];
- memset(acKey, 0, sizeof (acKey));
-
- /*
- # CAVS 6.1
- # Config info for Sun 1820 AES
- # AESVS GFSbox test data for ECB
- # State : Encrypt and Decrypt
- # Key Length : 256
- # Generated on Wed Aug 13 13:39:06 2008
- */
- const size_t GFSboxCount = 5;
- static char sPlainText[GFSboxCount][33];
- static char sKnownCypherText[GFSboxCount][33];
- strcpy(sPlainText[0], "014730f80ac625fe84f026c60bfd547d");
- strcpy(sPlainText[1], "0b24af36193ce4665f2825d7b4749c98");
- strcpy(sPlainText[2], "761c1fe41a18acf20d241650611d90f1");
- strcpy(sPlainText[3], "8a560769d605868ad80d819bdba03771");
- strcpy(sPlainText[4], "91fbef2d15a97816060bee1feaa49afe");
-
- strcpy(sKnownCypherText[0], "5c9d844ed46f9885085e5d6a4f94c7d7");
- strcpy(sKnownCypherText[1], "a9ff75bd7cf6613d3731c77c3b6d0c04");
- strcpy(sKnownCypherText[2], "623a52fcea5d443e48d9181ab32c7421" );
- strcpy(sKnownCypherText[3], "38f2c7ae10612415d27ca190d27da8b4" );
- strcpy(sKnownCypherText[4], "1bc704f1bce135ceb810341b216d7abe" );
-
-
- for (size_t i = 0; i < GFSboxCount; i++)
- {
- if (AES_ECB_TestExecution(sPlainText[i], sKnownCypherText[i], acKey) != 0)
- {
-#ifdef KAT_DEBUG
- printf("GFSbox[%d]: failed\n", i);
-#endif
- return -1;
- }
-#ifdef KAT_DEBUG
- printf("GFSbox[%d]: passed\n", i);
-#endif
- }
- return 0;
-}
-
-static int KnownAnswerTestAESECB_KeySbox (void)
-{
- unsigned char acKey[AES_MAXKEYBYTES];
- memset(acKey, 0, sizeof (acKey));
-
- /*
- # CAVS 6.1
- # Config info for Sun 1820 AES
- # AESVS KeySbox test data for ECB
- # State : Encrypt and Decrypt
- # Key Length : 256
- # Generated on Wed Aug 13 13:39:07 2008
- */
- const size_t KeySboxCount = 16;
- static char sKey[KeySboxCount][65];
- static char sKnownCypherText[KeySboxCount][33];
- static char sPlainText[] = "00000000000000000000000000000000";
-
- strcpy(sKey[0], "c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558");
- strcpy(sKey[1], "28d46cffa158533194214a91e712fc2b45b518076675affd910edeca5f41ac64");
- strcpy(sKey[2], "c1cc358b449909a19436cfbb3f852ef8bcb5ed12ac7058325f56e6099aab1a1c");
- strcpy(sKey[3], "984ca75f4ee8d706f46c2d98c0bf4a45f5b00d791c2dfeb191b5ed8e420fd627");
- strcpy(sKey[4], "b43d08a447ac8609baadae4ff12918b9f68fc1653f1269222f123981ded7a92f");
- strcpy(sKey[5], "1d85a181b54cde51f0e098095b2962fdc93b51fe9b88602b3f54130bf76a5bd9");
- strcpy(sKey[6], "dc0eba1f2232a7879ded34ed8428eeb8769b056bbaf8ad77cb65c3541430b4cf");
- strcpy(sKey[7], "f8be9ba615c5a952cabbca24f68f8593039624d524c816acda2c9183bd917cb9");
- strcpy(sKey[8], "797f8b3d176dac5b7e34a2d539c4ef367a16f8635f6264737591c5c07bf57a3e");
- strcpy(sKey[9], "6838d40caf927749c13f0329d331f448e202c73ef52c5f73a37ca635d4c47707");
- strcpy(sKey[10], "ccd1bc3c659cd3c59bc437484e3c5c724441da8d6e90ce556cd57d0752663bbc");
- strcpy(sKey[11], "13428b5e4c005e0636dd338405d173ab135dec2a25c22c5df0722d69dcc43887");
- strcpy(sKey[12], "07eb03a08d291d1b07408bf3512ab40c91097ac77461aad4bb859647f74f00ee");
- strcpy(sKey[13], "90143ae20cd78c5d8ebdd6cb9dc1762427a96c78c639bccc41a61424564eafe1");
- strcpy(sKey[14], "b7a5794d52737475d53d5a377200849be0260a67a2b22ced8bbef12882270d07");
- strcpy(sKey[15], "fca02f3d5011cfc5c1e23165d413a049d4526a991827424d896fe3435e0bf68e");
- strcpy(sKnownCypherText[0], "46f2fb342d6f0ab477476fc501242c5f");
- strcpy(sKnownCypherText[1], "4bf3b0a69aeb6657794f2901b1440ad4");
- strcpy(sKnownCypherText[2], "352065272169abf9856843927d0674fd");
- strcpy(sKnownCypherText[3], "4307456a9e67813b452e15fa8fffe398");
- strcpy(sKnownCypherText[4], "4663446607354989477a5c6f0f007ef4");
- strcpy(sKnownCypherText[5], "531c2c38344578b84d50b3c917bbb6e1");
- strcpy(sKnownCypherText[6], "fc6aec906323480005c58e7e1ab004ad");
- strcpy(sKnownCypherText[7], "a3944b95ca0b52043584ef02151926a8");
- strcpy(sKnownCypherText[8], "a74289fe73a4c123ca189ea1e1b49ad5");
- strcpy(sKnownCypherText[9], "b91d4ea4488644b56cf0812fa7fcf5fc");
- strcpy(sKnownCypherText[10], "304f81ab61a80c2e743b94d5002a126b");
- strcpy(sKnownCypherText[11], "649a71545378c783e368c9ade7114f6c");
- strcpy(sKnownCypherText[12], "47cb030da2ab051dfc6c4bf6910d12bb");
- strcpy(sKnownCypherText[13], "798c7c005dee432b2c8ea5dfa381ecc3");
- strcpy(sKnownCypherText[14], "637c31dc2591a07636f646b72daabbe7");
- strcpy(sKnownCypherText[15], "179a49c712154bbffbe6e7a84a18e220");
-
- for (size_t i = 0; i < KeySboxCount; i++)
- {
-#ifdef KAT_DEBUG
- printf("KeySbox[%d]: \n", i);
-#endif
- unsigned char acKey[256];
- if ((size_t) ConvertUTF8HexStringToBinary(
- sKey[i],
- acKey) != strlen(sKey[i]) / 2)
- {
-#ifdef KAT_DEBUG
- printf("KeySbox[%d]: failed hex to binary conversion\n", i);
-#endif
- return -1;
- }
- if (AES_ECB_TestExecution(sPlainText, sKnownCypherText[i], acKey) != 0)
- {
-#ifdef KAT_DEBUG
- printf("KeySbox[%d]: failed test\n", i);
-#endif
- return -1;
- }
-#ifdef KAT_DEBUG
- printf("KeySbox[%d]: passed\n", i);
-#endif
- }
- return 0;
-}
-
-int KnownAnswerTestHMACSHA1 (void)
-{
- /* Test Data from RFC2202 */
- const static char sKey[] = "0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b";
- unsigned char acKey[HMAC_LENGTH];
- const static char sPlainText[] = "Hi There";
- const static char sCypherText[] = "b617318655057264e28bc0b6fb378c8ef146be00";
- const unsigned char* aBuffersToHMAC[1];
- int aBuffersToHMACSize[1];
- unsigned char acCypherText[HMAC_LENGTH];
- unsigned char acComputedCypherText[HMAC_LENGTH];
- if ((size_t) ConvertUTF8HexStringToBinary(
- sKey,
- acKey) != sizeof (acKey))
- {
-#ifdef KAT_DEBUG
- printf("HMAC-SHA1: failed hex to binary conversion for Key\n");
-#endif
- return -1;
- }
- if ((size_t) ConvertUTF8HexStringToBinary(
- sCypherText,
- acCypherText) != sizeof (acCypherText))
- {
-#ifdef KAT_DEBUG
- printf("HMAC-SHA1: failed hex to binary conversion for CypherText\n");
-#endif
- return -1;
- }
-
- aBuffersToHMAC[0] = (unsigned char *) sPlainText;
- aBuffersToHMACSize[0] = strlen(sPlainText);
-
- if (!HMACBuffers(
- 1,
- aBuffersToHMAC,
- aBuffersToHMACSize,
- acKey,
- sizeof (acKey),
- acComputedCypherText))
- {
-#ifdef KAT_DEBUG
- printf("HMAC-SHA1: failed in HMACBuffers\n");
-#endif
- return -1;
- }
- if (memcmp(acCypherText, acComputedCypherText, sizeof (acCypherText)) != 0)
- {
-#ifdef KAT_DEBUG
- printf("HMAC-SHA1: failed comparison with expected cycphertext\n");
-#endif
- return -1;
- }
-
- return 0;
-}
-
-
-int KnownAnswerTestAESECB (void)
-{
- if (KnownAnswerTestAESECB_GFSbox() != 0)
- {
-#ifdef KAT_DEBUG
- printf("GFSbox: test suite failed\n");
-#endif
- return -1;
- }
-
- if (KnownAnswerTestAESECB_KeySbox() != 0)
- {
-#ifdef KAT_DEBUG
- printf("KeySbox: test suite failed\n");
-#endif
- return -1;
- }
-
- return 0;
-}
-
-#ifdef STAND_ALONE_TEST
-
-int main ()
-{
- // Known Answer Test on AES Key Wrap code
- if (KnownAnswerTestAESKeyWrap() != 0)
- {
- return -1;
- }
-
- if (KnownAnswerTestAESECB() != 0)
- {
- return -1;
- }
-
- if (KnownAnswerTestHMACSHA1() != 0)
- {
- return -1;
- }
-
- return 0;
-}
-#endif
-
-
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentKnownAnswerTests.h b/usr/src/lib/libkmsagent/common/KMSAgentKnownAnswerTests.h
deleted file mode 100644
index 1d5f7c4fe1..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentKnownAnswerTests.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/** @file KMSAgent.h
- * @defgroup EncryptionAgent Encryption Agent API
- *
- * The Agent API is used to communicate with the KMS Appliance for the
- * purpose of registering storage devices, obtaining device keys, and
- * receiving notifications of storage device events such as destruction.
- *
- */
-#ifndef KMS_AGENT_KNOWN_ANSWER_TESTS_H
-#define KMS_AGENT_KNOWN_ANSWER_TESTS_H
-
-/**
- * This function exercises both <code>aes_key_wrap</code> and <code>aes_key_unwrap</code>
- * in order to satisfy a FIPS 140-2 requirement for a known answer test, aka KAT. Test
- * vectors from RFC 3394 are used for this test.
- * @return 0 on success, non-zero otherwise
- */
-int KnownAnswerTestAESKeyWrap(void);
-
-/**
- * This function exercises both <code>rijndael_encrypt</code> and <code>rijndael_decrypt</code>
- * in order to satisfy a FIPS 140-2 requirement for a known answer test, aka KAT. Test
- * vectors from Infoguard are used for this test.
- * @return 0 if KAT passed, non-zero otherwise
- */
-int KnownAnswerTestAESECB(void);
-
-/**
- * This function exercises #HMACBuffers
- * in order to satisfy a FIPS 140-2 requirement for a known answer test, aka KAT. Test
- * vectors from Infoguard are used for this test.
- * @return 0 if KAT passed, non-zero otherwise
- */
-int KnownAnswerTestHMACSHA1(void);
-
-#endif
-
-
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentLoadBalancer.cpp b/usr/src/lib/libkmsagent/common/KMSAgentLoadBalancer.cpp
deleted file mode 100644
index 9f2c8dcf49..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentLoadBalancer.cpp
+++ /dev/null
@@ -1,1169 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentLoadBalancer.cpp
- */
-
-#ifdef WIN32
-#define _WIN32_WINNT 0x0400
-#include <windows.h>
-#include <process.h>
-#endif
-
-#include <stdlib.h>
-
-#include "KMS_AgentH.h"
-#include "KMSClientProfile.h"
-#include "KMSAgentSoapUtilities.h"
-#include "KMSAgentStringUtilities.h"
-#include "KMSClientProfileImpl.h"
-#include "KMSAgent.h"
-#include "KMSAuditLogger.h"
-#include "ApplianceParameters.h"
-#include "KMSAgentCryptoUtilities.h"
-
-#ifdef METAWARE
-#include "debug.h"
-#include "sizet.h"
-typedef unsigned char uint8_t;
-typedef unsigned short uint16_t;
-typedef unsigned int uint32_t;
-typedef unsigned long long uint64_t;
-#endif
-#include "KMSAgentAESKeyWrap.h"
-
-#ifdef METAWARE
-#include "stdsoap2.h" /* makes fewer platform assumptions
- than the standard stdsoap2.h */
-
-int time (char *);
-#include "literals.h"
-#else
-#include "stdsoap2.h"
-#endif
-
-#include "AutoMutex.h"
-
-// real declaration of soap *
-#include "KMSAgentDataUnitCache.h"
-
-#include "ClientSoapFaultCodes.h"
-#include "KMSAgentPKICommon.h"
-#include "KMSAgentLoadBalancer.h" // needs to be after stdsoap2.h to use the
-
-CAgentLoadBalancer::CAgentLoadBalancer (KMSClientProfile * const i_pProfile)
-: m_pProfile (i_pProfile),
-m_iTransactionStartTimeInMilliseconds (0),
-m_bFIPS (false),
-m_iKWKEntryNum (0),
-m_iLastAttemptedWhenNoneResponding (0)
-{
- CAutoMutex oAutoMutex((K_MUTEX_HANDLE) m_pProfile->m_pLock);
-
- // initialize the aCluster, let it contain the default appliance
- m_iClusterNum = 1;
- memset(&(m_aCluster[0]), 0, sizeof (KMSClusterEntry));
- strncpy(m_aCluster[0].m_wsApplianceNetworkAddress,
- i_pProfile->m_wsApplianceAddress,
- sizeof(m_aCluster[0].m_wsApplianceNetworkAddress));
- m_aCluster[0].m_wsApplianceNetworkAddress[sizeof(m_aCluster[0].m_wsApplianceNetworkAddress)-1] = '\0';
-
- // This may not be known because the initial
- // appliance's Alias is not yet entered.
- strcpy(m_aCluster[0].m_wsApplianceAlias, "");
- strcpy(m_sURL, "");
- memset(m_aKWKEntries, 0, KMS_MAX_CLUSTER_NUM * sizeof(struct KWKEntry *));
-}
-
-CAgentLoadBalancer::~CAgentLoadBalancer ()
-{
- // free up KWK entries
- for( int i=0; i < m_iKWKEntryNum && i < KMS_MAX_CLUSTER_NUM; i++)
- {
- if (m_aKWKEntries[i] != NULL)
- {
- delete m_aKWKEntries[i];
- }
- }
- return;
-}
-
-char *CAgentLoadBalancer::GetHTTPSURL (int i_iIndex, int i_iPort)
-{
- if (i_iIndex < 0 || i_iIndex >= m_iClusterNum)
- {
- strcpy(m_sURL, "");
- }
- else
- {
- K_snprintf(m_sURL, KMS_MAX_URL, "https://%s:%d",
- m_aCluster[i_iIndex].m_wsApplianceNetworkAddress,
- i_iPort);
- }
-
- return m_sURL;
-}
-
-char *CAgentLoadBalancer::GetHTTPURL (int i_iIndex, int i_iPort)
-{
- if (i_iIndex < 0 || i_iIndex >= m_iClusterNum)
- {
- strcpy(m_sURL, "");
- }
- else
- {
- K_snprintf(m_sURL, KMS_MAX_URL, "http://%s:%d",
- m_aCluster[i_iIndex].m_wsApplianceNetworkAddress,
- i_iPort);
- }
-
- return m_sURL;
-}
-
-int CAgentLoadBalancer::Balance ()
-{
- CAutoMutex oAutoMutex((K_MUTEX_HANDLE) m_pProfile->m_pLock);
-
- int i;
- unsigned int iSelected = 0;
- unsigned int iSelected2 = 0;
-
- // clear the failover attempts
- m_pProfile->m_iFailoverAttempts = 0;
-
- // This assumes Balance()/BalanceBy...() are called at the top of
- // each Agent Library transaction
- // m_iTransactionStartTimeInMilliseconds is used to determine if
- // enough time remains
- // (vs. KMSClientProfile::m_iTransactionTimeout) to retry a
- // request if there was a Server Busy error.
-
- m_iTransactionStartTimeInMilliseconds = K_GetTickCount();
-
- // if not enabling load balancing, return the default appliance & if
- // its FIPS compatible when running in FIPS_MODE
-
- if (m_pProfile->m_iClusterDiscoveryFrequency == 0)
- {
- if (m_bFIPS && !FIPScompatibleKMA(m_aCluster[0].m_sKMAVersion))
- {
- return NO_FIPS_KMA_AVAILABLE;
- }
- return 0;
- }
-
- int iCurrentTime = K_GetTickCount() / 1000;
-
- // if it is the first time or time to get cluster information
- if ((!m_pProfile->m_bIsClusterDiscoveryCalled) ||
- ((iCurrentTime - m_pProfile->m_iLastClusterDiscoveryTime) >
- m_pProfile->m_iClusterDiscoveryFrequency))
- {
- if (!KMSClient_GetClusterInformation(m_pProfile,
- m_pProfile->m_wsEntitySiteID,
- sizeof (m_pProfile->m_wsEntitySiteID),
- &(m_pProfile->m_iClusterNum),
- m_pProfile->m_aCluster,
- KMS_MAX_CLUSTER_NUM))
- {
- // if failed due to some error, return default one
- // KMSClient_GetClusterInformation logs
-
- return 0;
- }
-
- m_pProfile->m_bIsClusterDiscoveryCalled = true;
-
- // Reset the transaction start time to not include the time spent
- // calling KMSClient_GetClusterInformation.
-
- m_iTransactionStartTimeInMilliseconds = K_GetTickCount();
-
- // reset this index since cluster size may have changed
- m_iLastAttemptedWhenNoneResponding = 0;
-
- // TODO: Adjust timeouts to guarentee a response to the Agent
- // Library called in m_iTransactionTimeout seconds? This means
- // not adjusting m_iTransactionStartTimeInMilliseconds, but also
- // reducing socket timeouts for subsequent calls.
- }
-
- // sort the cluster array by Load
-
- KMSClient_SortClusterArray(m_pProfile);
-
- // copy all Appliances to this object
-
- for (i = 0; i < m_pProfile->m_iClusterNum; i++)
- {
- m_aCluster[i] = m_pProfile->m_aCluster[i];
- }
-
- m_iClusterNum = m_pProfile->m_iClusterNum;
-
- int iCandidateAppliances = 0;
-
- // the initial set of candidates for load balancing are all enabled,
- // responding and unlocked KMAs (assumes they are at the top of the sort
- // order) & FIPS compatible if we're in that mode
-
- for (i = 0; i < m_iClusterNum; i++)
- {
- if ((m_aCluster[i].m_iResponding == TRUE) &&
- (m_aCluster[i].m_iEnabled == TRUE ) &&
- (m_aCluster[i].m_iKMALocked == FALSE))
- {
- iCandidateAppliances++;
- }
- }
-
- // check if there are any enabled and responding Appliances in the
- // same site as this Agent, and if so make those the candidates
- // (assumes they are at the top of the sort order)
-
- int iCandidateAppliancesInSameSite = 0;
-
- if (strlen(m_pProfile->m_wsEntitySiteID) > 0)
- {
- for (i = 0; i < iCandidateAppliances; i++)
- {
- if (strncmp(m_aCluster[i].m_wsApplianceSiteID,
- m_pProfile->m_wsEntitySiteID,
- sizeof(m_aCluster[i].m_wsApplianceSiteID)) == 0)
- {
- iCandidateAppliancesInSameSite++;
- }
- }
- }
-
- // reduce the candidate set to just KMAs within the site
- if (iCandidateAppliancesInSameSite > 0)
- {
- iCandidateAppliances = iCandidateAppliancesInSameSite;
- }
-
- // constrain the candidate set to just FIPS compatible KMAs
- if (m_bFIPS)
- {
- int iCandidateFIPSKMAs = 0;
-
- for (i = 0; i < iCandidateAppliances; i++)
- {
- if ( FIPScompatibleKMA(m_aCluster[i].m_sKMAVersion ))
- {
- iCandidateFIPSKMAs++;
- }
- }
-
- // select only from FIPS capable KMAs
- iCandidateAppliances = iCandidateFIPSKMAs;
- }
-
- // if there are no candidate Appliances, use the default Appliance unless
- // we're in FIPS mode
-
- if (!m_bFIPS && iCandidateAppliances <= 1)
- {
- return 0;
- }
-
- // FIPS mode
- else if (iCandidateAppliances <= 0)
- {
- return NO_FIPS_KMA_AVAILABLE;
- }
- else if (iCandidateAppliances == 1)
- {
- return 0;
- }
-
- // randomly select two candidate Appliances and select the one
- // with the smaller load
-
- // choose one random number between 0 -- iCandidateAppliances - 1
- iSelected = rand() % iCandidateAppliances;
- iSelected2 = (iSelected + 1) % iCandidateAppliances;
-
- // select the one with the smaller load
-
- if (m_aCluster[iSelected2].m_lLoad < m_aCluster[iSelected].m_lLoad)
- {
- iSelected = iSelected2;
- }
-
- return iSelected;
-}
-
-int CAgentLoadBalancer::BalanceByDataUnitID (
- const unsigned char * const i_pDataUnitID,
- int i_iDataUnitIDMaxLen)
-{
- FATAL_ASSERT(i_pDataUnitID);
-
- CAutoMutex oAutoMutex((K_MUTEX_HANDLE) m_pProfile->m_pLock);
-
- // clear the failover attempts
- m_pProfile->m_iFailoverAttempts = 0;
-
- // This assumes Balance(), or BalanceBy...(),
- // is called at the top of each Agent Library transaction
- // m_iTransactionStartTimeInMilliseconds is used to determine if enough time remains
- // (vs. KMSClientProfile::m_iTransactionTimeout) to retry a request if there was
- // a Server Busy error.
-
- m_iTransactionStartTimeInMilliseconds = K_GetTickCount();
-
- // look in cache
-
- CDataUnitCache *pDataUnitCache = (CDataUnitCache *) m_pProfile->m_pDataUnitCache;
-
- // if not enabling load balancing, return the default appliance & if
- // its FIPS compatible when running in FIPS_MODE
-
- if (m_pProfile->m_iClusterDiscoveryFrequency == 0)
- {
- if (m_bFIPS && !FIPScompatibleKMA(m_aCluster[0].m_sKMAVersion))
- {
- return NO_FIPS_KMA_AVAILABLE;
- }
- return 0;
- }
-
- // if the Data Unit ID is in the server affinity cache, use that Appliance
-
- utf8char wsApplianceNetworkAddress[KMS_MAX_NETWORK_ADDRESS];
- int iIndex = CLIENT_SIDE_ERROR;
-
- if (pDataUnitCache->GetApplianceByDataUnitID(
- i_pDataUnitID,
- i_iDataUnitIDMaxLen,
- wsApplianceNetworkAddress,
- sizeof(wsApplianceNetworkAddress)))
- {
- iIndex = FindIndexByNetworkAddress(wsApplianceNetworkAddress);
- }
-
- if (iIndex != CLIENT_SIDE_ERROR)
- {
- if (m_bFIPS && !FIPScompatibleKMA(m_aCluster[iIndex].m_sKMAVersion))
- {
- // in spite of caching we need to attempt an alternate KMA due
- // to the FIPS mode setting
- return Balance();
- }
- return iIndex;
- }
-
- // normal balancing
- return Balance();
-}
-
-int CAgentLoadBalancer::BalanceByDataUnitKeyID (
- const unsigned char * const i_pDataUnitKeyID,
- int i_iDataUnitKeyIDMaxLen)
-{
- FATAL_ASSERT(i_pDataUnitKeyID);
-
- CAutoMutex oAutoMutex((K_MUTEX_HANDLE) m_pProfile->m_pLock);
-
- // clear the failover attempts
- m_pProfile->m_iFailoverAttempts = 0;
-
- // This assumes Balance()/BalanceBy...()
- // are called at the top of each Agent Library transaction
- // m_iTransactionStartTimeInMilliseconds is used to determine if enough time remains
- // (vs. KMSClientProfile::m_iTransactionTimeout) to retry a request if there was
- // a Server Busy error.
-
- m_iTransactionStartTimeInMilliseconds = K_GetTickCount();
-
- // look in cache
-
- CDataUnitCache *pDataUnitCache = (CDataUnitCache *) m_pProfile->m_pDataUnitCache;
-
- // if not enabling load balancing, return the default appliance & if
- // its FIPS compatible when running in FIPS_MODE
-
- if (m_pProfile->m_iClusterDiscoveryFrequency == 0)
- {
- if (m_bFIPS && !FIPScompatibleKMA(m_aCluster[0].m_sKMAVersion))
- {
- return NO_FIPS_KMA_AVAILABLE;
- }
- return 0;
- }
-
- // if the Data Unit Key ID is in the server affinity cache, use that Appliance
-
- utf8char sApplianceNetworkAddress[KMS_MAX_NETWORK_ADDRESS];
- int iIndex = CLIENT_SIDE_ERROR;
-
- if (pDataUnitCache->GetApplianceByDataUnitKeyID(
- i_pDataUnitKeyID,
- i_iDataUnitKeyIDMaxLen,
- sApplianceNetworkAddress,
- sizeof(sApplianceNetworkAddress)))
- {
- iIndex = FindIndexByNetworkAddress(sApplianceNetworkAddress);
- }
-
- if (iIndex != CLIENT_SIDE_ERROR)
- {
- if (m_bFIPS && !FIPScompatibleKMA(m_aCluster[iIndex].m_sKMAVersion))
- {
- // in spite of caching we need to attempt an alternate KMA due
- // to the FIPS mode setting
- return Balance();
- }
- return iIndex;
- }
-
- // normal balancing
- return Balance();
-}
-
-int CAgentLoadBalancer::FindIndexByNetworkAddress
-(char * i_wsApplianceNetworkAddress)
-{
- FATAL_ASSERT(i_wsApplianceNetworkAddress);
-
- for (int i = 0; i < m_iClusterNum; i++)
- {
-
- if ((strncmp(m_aCluster[i].m_wsApplianceNetworkAddress,
- i_wsApplianceNetworkAddress,
- sizeof(m_aCluster[i].m_wsApplianceNetworkAddress)) == 0) &&
- m_aCluster[i].m_iEnabled == TRUE &&
- m_aCluster[i].m_iResponding == TRUE)
- {
- return i;
- }
-
- }
-
- return CLIENT_SIDE_ERROR;
-}
-
-char* CAgentLoadBalancer::GetApplianceNetworkAddress (int i_iIndex)
-{
- if (i_iIndex < 0 || i_iIndex >= m_iClusterNum)
- {
- return (char *)"";
- }
-
- return m_aCluster[i_iIndex].m_wsApplianceNetworkAddress;
-}
-
-bool CAgentLoadBalancer::FailOverLimit (void)
-{
- if (m_pProfile->m_iFailoverLimit >= 0 &&
- m_pProfile->m_iFailoverAttempts > m_pProfile->m_iFailoverLimit)
- return true;
- else
- return false;
-}
-
-int CAgentLoadBalancer::FailOver (int i_iFailedApplianceIndex,
- struct soap *i_pstSoap)
-{
- FATAL_ASSERT(i_pstSoap);
-
- CAutoMutex oAutoMutex((K_MUTEX_HANDLE) m_pProfile->m_pLock);
-
- const char *strError = GET_SOAP_FAULTSTRING(i_pstSoap);
- int iSoapErrno = i_pstSoap->errnum;
- int iErrorCode = GET_FAULT_CODE(strError);
- int i;
-
- if ( m_bFIPS &&
- KMSClient_NoFIPSCompatibleKMAs(m_pProfile))
- {
- return NO_FIPS_KMA_AVAILABLE;
- }
-
- m_pProfile->m_iFailoverAttempts++;
-
- /*
- * if KWK is not registered, or mismatched, most likely KMA lost its key due to a service
- * restart. Call RegisterKWK to re-register the KWK.
- * If RegisterKWK fails proceed from here with new failover info
- */
- if ( iErrorCode == CLIENT_ERROR_AGENT_KWK_NOT_REGISTERED ||
- iErrorCode == CLIENT_ERROR_AGENT_KWK_ID_MISMATCH )
- {
- LogError(m_pProfile,
- AGENT_LOADBALANCER_FAILOVER,
- NULL,
- m_aCluster[i_iFailedApplianceIndex].m_wsApplianceNetworkAddress,
- "KWK not registered or ID mismatch - registering");
- // delete the KWK entry since the KMA no longer has it
- DeleteKWKEntry( GetKMAID(i_iFailedApplianceIndex));
-
- return i_iFailedApplianceIndex;
- }
-
- bool bServerError = false;
-
- // if the request failed due to a Server Busy error, and if
- // - transaction timeout has not been exceeded OR
- // - failover attempts remain
- // then failover
-
- if (iErrorCode == CLIENT_ERROR_SERVER_BUSY &&
- (K_GetTickCount() < m_iTransactionStartTimeInMilliseconds + (m_pProfile->m_iTransactionTimeout * 1000) ||
- !CAgentLoadBalancer::FailOverLimit()))
- {
- LogError(m_pProfile,
- AGENT_LOADBALANCER_FAILOVER,
- NULL,
- m_aCluster[i_iFailedApplianceIndex].m_wsApplianceNetworkAddress,
- "Server Busy - failing over");
- bServerError = true;
- }
- else if (ServerError(strError,iSoapErrno))
- {
- bServerError = true;
- }
- else
- {
- if (i_iFailedApplianceIndex == AES_KEY_WRAP_SETUP_ERROR)
- {
- return AES_KEY_WRAP_SETUP_ERROR;
- }
- else
- {
- return CLIENT_SIDE_ERROR; // it is a client side problem, don't fail over
- }
- }
-
- // disable the failed Appliance in the profile, and
- // re-sort the cluster array, so transactions in other threads
- // will not send requests to the same failed Appliance
-#if defined(METAWARE)
- log_cond_printf(ECPT_LOG_AGENT, "CAgentLoadBalancer::Failover(): FailoverAttempts=%d\n",
- m_pProfile->m_iFailoverAttempts);
-#endif
- for (i = 0; i < m_pProfile->m_iClusterNum; i++)
- {
- if (m_pProfile->m_aCluster[i].m_lApplianceID ==
- m_aCluster[i_iFailedApplianceIndex].m_lApplianceID)
- {
- m_pProfile->m_aCluster[i].m_iResponding = FALSE;
- break;
- }
- }
-
- KMSClient_SortClusterArray(m_pProfile);
-
- // mark the failed Appliance as not responding (unlike the case
- // above which is conditional on bServerError, this marking is
- // only local to this transaction; it must be done to ensure that
- // this transaction does not cycle in its fail-over loop.)
-
- m_aCluster[i_iFailedApplianceIndex].m_iResponding = FALSE;
-
- if (!CAgentLoadBalancer::FailOverLimit())
- {
- // now try to fail over to all other Appliances that are
- // apparently enabled and responding
-
- for (i = 0; i < m_iClusterNum; i++)
- {
- if (m_aCluster[i].m_iEnabled == TRUE &&
- m_aCluster[i].m_iResponding == TRUE &&
- m_aCluster[i].m_iKMALocked == FALSE)
- {
- Log(AGENT_LOADBALANCER_FAILOVER,
- NULL,
- m_aCluster[i].m_wsApplianceNetworkAddress,
- "Failing over to this addr");
-
- return i;
- }
- }
-
- // now retry KMAs previously reported as not responding
-
- m_iLastAttemptedWhenNoneResponding++;
-
- if (m_iLastAttemptedWhenNoneResponding >= m_iClusterNum)
- {
- m_iLastAttemptedWhenNoneResponding = m_iLastAttemptedWhenNoneResponding % m_iClusterNum;
- }
-
- Log(AGENT_LOADBALANCER_FAILOVER,
- NULL,
- m_aCluster[m_iLastAttemptedWhenNoneResponding].m_wsApplianceNetworkAddress,
- "Failing over to retry this addr");
-
- return m_iLastAttemptedWhenNoneResponding;
- }
- else
- {
- Log(AGENT_LOADBALANCER_FAILOVER,
- NULL,
- NULL,
- "Failover limit reached");
- }
-
- return m_bFIPS ? NO_FIPS_KMA_AVAILABLE : NO_KMA_AVAILABLE;
-}
-
-void CAgentLoadBalancer::UpdateResponseStatus(int i_iIndex)
-{
- bool bStatusChanged = false;
-
- CAutoMutex oAutoMutex((K_MUTEX_HANDLE) m_pProfile->m_pLock);
-
- // enable the responding Appliance in the profile, and
- // re-sort the cluster array, so transactions in other threads
- // will not send requests to the same failed Appliance
-
- for (int i = 0; i < m_pProfile->m_iClusterNum; i++)
- {
- if (m_pProfile->m_aCluster[i].m_lApplianceID ==
- m_aCluster[i_iIndex].m_lApplianceID)
- {
- if (m_pProfile->m_aCluster[i].m_iResponding == FALSE)
- {
- bStatusChanged = true;
- }
- m_pProfile->m_aCluster[i].m_iResponding = TRUE;
- break;
- }
- }
-
- // only resort if the responding status actually changed
- if (bStatusChanged)
- {
- KMSClient_SortClusterArray(m_pProfile);
- }
-
- // mark the Appliance as now responding
- m_aCluster[i_iIndex].m_iResponding = TRUE;
-
- return;
-}
-
-Long64 CAgentLoadBalancer::GetKMAID (
- int i_iIndex)
-{
- if (i_iIndex < 0 || i_iIndex >= m_iClusterNum)
- {
- return -1;
- }
-
- return m_aCluster[i_iIndex].m_lApplianceID;
-}
-
-CAgentLoadBalancer::KWKEntry *CAgentLoadBalancer::GetKWK (
- Long64 i_lKMAID)
-{
- if (i_lKMAID == -1)
- {
- return NULL;
- }
-
- for (int i = 0; i < m_iKWKEntryNum && i < KMS_MAX_CLUSTER_NUM; i++)
- {
- if (m_aKWKEntries[i] != NULL &&
- m_aKWKEntries[i]->m_lKMAID == i_lKMAID )
- {
- return m_aKWKEntries[i];
- }
- }
-
- return NULL;
-}
-
-CAgentLoadBalancer::KWKEntry *CAgentLoadBalancer::CreateKWK (
- Long64 i_lKMAID,
- struct soap * const i_pstSoap,
- const char * const i_sURL,
- bool * const o_pbClientAESKeyWrapSetupError)
-{
- FATAL_ASSERT(i_pstSoap);
- FATAL_ASSERT(i_sURL);
-
- int bSuccess = FALSE;
- KWKEntry *oKWKEntry = new KWKEntry;
-
- oKWKEntry->m_lKMAID = i_lKMAID;
- *o_pbClientAESKeyWrapSetupError = false;
-
- bSuccess = GetPseudorandomBytes(sizeof (oKWKEntry->m_acKWK),
- oKWKEntry->m_acKWK);
- if (!bSuccess)
- {
- Log(AUDIT_CLIENT_AGENT_CREATE_KWK_RNG_ERROR,
- NULL,
- NULL,
- "Error from RNG");
- *o_pbClientAESKeyWrapSetupError = true;
- delete(oKWKEntry);
- return NULL;
- }
-
-#if defined(DEBUG)
- char sHexKWK[2*KMS_MAX_KEY_SIZE+1];
- ConvertBinaryToUTF8HexString( sHexKWK, oKWKEntry->m_acKWK, sizeof (oKWKEntry->m_acKWK));
-#if defined(METAWARE)
- log_printf("CAgentLoadBalancer::CreateKWK(): KWK hex=%s\n",
- sHexKWK);
-#else
-// printf("CAgentLoadBalancer::CreateKWK(): KWK hex=%s\n",
-// sHexKWK);
-#endif
-#endif
-
- CPublicKey oPublicKEK;
-
- bSuccess = GetKWKWrappingKey(i_pstSoap, i_sURL, &oPublicKEK);
-
- if (!bSuccess)
- {
- // GetKWKWrappingKey logs errors
-
- if (!ServerError(GET_SOAP_FAULTSTRING(i_pstSoap),i_pstSoap->errnum))
- {
- *o_pbClientAESKeyWrapSetupError = true;
- }
- delete(oKWKEntry);
- return NULL;
- }
-
- unsigned char acWrappedKWK[MAX_RSA_PUB_KEY_LENGTH];
- int iWrappedKWKLength;
- bSuccess = oPublicKEK.Encrypt(sizeof (oKWKEntry->m_acKWK),
- oKWKEntry->m_acKWK, (unsigned char *) acWrappedKWK, &iWrappedKWKLength);
-
- if (!bSuccess)
- {
- Log(AUDIT_CLIENT_AGENT_CREATE_KWK_PUBLIC_ENCRYPT_ERROR,
- NULL,
- NULL,
- "Error encrypting KWK with KMA public key");
- *o_pbClientAESKeyWrapSetupError = true;
- delete(oKWKEntry);
- return NULL;
- }
-//#if defined(DEBUG) && !defined(METAWARE)
-// char sHexWrappedKWK[2*MAX_RSA_PUB_KEY_LENGTH+1];
-// ConvertBinaryToUTF8HexString( sHexWrappedKWK, acWrappedKWK, iWrappedKWKLength);
-// printf("CAgentLoadBalancer::CreateKWK(): wrapped KWK hex=%s\n",
-// sHexWrappedKWK);
-//#endif
-
- // register the new KWK
- bSuccess = RegisterKWK(iWrappedKWKLength, acWrappedKWK, i_pstSoap,
- i_sURL, oKWKEntry->m_acKWKID);
-
- if (!bSuccess)
- {
- // RegisterKWK logs errors
- if (!ServerError(GET_SOAP_FAULTSTRING(i_pstSoap), i_pstSoap->error))
- {
- *o_pbClientAESKeyWrapSetupError = true;
- }
- delete(oKWKEntry);
- return NULL;
- }
-
- // save the new KWK entry in an empty slot in the array
- for (int i=0; i < m_iKWKEntryNum && i < KMS_MAX_CLUSTER_NUM; i++)
- {
- if (m_aKWKEntries[i] == NULL)
- {
- m_aKWKEntries[i] = oKWKEntry;
- return oKWKEntry;
- }
- }
-
- // no empty slots so add it to the end
- m_aKWKEntries[m_iKWKEntryNum++] = oKWKEntry;
-
- return oKWKEntry;
-}
-
-void CAgentLoadBalancer::DeleteKWKEntry(Long64 i_lKMAID)
-{
- for (int i=0; i < m_iKWKEntryNum && i < KMS_MAX_CLUSTER_NUM; i++)
- {
- if (m_aKWKEntries[i] && m_aKWKEntries[i]->m_lKMAID == i_lKMAID)
- {
- delete(m_aKWKEntries[i]);
- m_aKWKEntries[i] = NULL;
- return;
- }
- }
- // should not occur
- FATAL_ASSERT(0);
- return;
-}
-
-bool CAgentLoadBalancer::AESKeyWrapSupported (int i_iIndex)
-{
- if (i_iIndex < 0 || i_iIndex >= m_iClusterNum)
- {
- return false;
- }
- return (strcmp(m_aCluster[i_iIndex].m_sKMAVersion,
- FIPS_COMPATIBLE_KMA_VERSION) >= 0);
-}
-
-int CAgentLoadBalancer::GetKWKID (
- int i_Index,
- Long64 i_lKMAID,
- struct soap * const i_pstSoap,
- UTF8_KEYID o_pKWKID,
- bool * const o_pbClientAESKeyWrapSetupError)
-{
- FATAL_ASSERT(i_Index >= 0 && i_Index <= m_iClusterNum);
- FATAL_ASSERT(i_lKMAID != 0);
- FATAL_ASSERT(i_pstSoap);
- FATAL_ASSERT(o_pKWKID);
- FATAL_ASSERT(o_pbClientAESKeyWrapSetupError);
-
- *o_pbClientAESKeyWrapSetupError = false;
-
- // check if the KMA for this cluster index is at a version supporting
- // AES key wrap
- if (!AESKeyWrapSupported(i_Index))
- {
- strcpy(o_pKWKID, "");
- return TRUE;
- }
-
- // AES Key Wrap Mode
-
- struct KWKEntry* pKWKentry = GetKWK(i_lKMAID);
-
- if (pKWKentry == NULL)
- {
- const char* sURL = GetHTTPSURL(
- i_Index,
- m_pProfile->m_iPortForAgentService);
-
- pKWKentry = CreateKWK(i_lKMAID, i_pstSoap, sURL, o_pbClientAESKeyWrapSetupError);
-
- if (pKWKentry == NULL)
- {
- return FALSE;
- }
- }
-
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("CAgentLoadBalancer::GetKWKID(): KWK IDhex=%s\n",
- pKWKentry->m_acKWKID,
- sizeof (UTF8_KEYID));
-#endif
-
- strncpy(o_pKWKID, pKWKentry->m_acKWKID, sizeof(UTF8_KEYID));
- o_pKWKID[sizeof(UTF8_KEYID)-1] = '\0';
-
- return TRUE;
-};
-
-int CAgentLoadBalancer::GetKWKWrappingKey (
- struct soap * const i_pstSoap,
- const char * const i_sURL,
- CPublicKey * const o_opPublicKEK)
-{
- FATAL_ASSERT(i_pstSoap);
- FATAL_ASSERT(i_sURL);
- FATAL_ASSERT(o_opPublicKEK);
-
- int bSuccess = TRUE;
- struct KMS_Agent::KMS_Agent__GetAgentKWKPublicKeyResponse oResponse;
- char sSoapFaultMsg[g_iMAX_SOAP_FAULT_MESSAGE_LENGTH];
- char sKmaAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH];
-
- bSuccess = KMS_Agent::soap_call_KMS_Agent__GetAgentKWKPublicKey(
- const_cast<struct soap *> (i_pstSoap),
- i_sURL,
- NULL,
- oResponse) == SOAP_OK;
-
- if (!bSuccess)
- {
- GetSoapFault(sSoapFaultMsg, const_cast<struct soap *> (i_pstSoap));
- GetPeerNetworkAddress(sKmaAddress, const_cast<struct soap *> (i_pstSoap));
-
- LogError(m_pProfile,
- AUDIT_CLIENT_GET_KWK_WRAPPING_KEY_SOAP_ERROR,
- NULL,
- sKmaAddress,
- sSoapFaultMsg);
-
- return FALSE;
- }
-
- // Validate the response structure
- if (bSuccess)
- {
- if (oResponse.KWKPublicKey.__ptr == NULL
- || oResponse.KWKPublicKey.__size < 1)
- {
- bSuccess = FALSE;
-
- GetPeerNetworkAddress(sKmaAddress, const_cast<struct soap *> (i_pstSoap));
-
- LogError(m_pProfile,
- AUDIT_CLIENT_GET_KWK_WRAPPING_KEY_INVALID_KEY_RESPONSE,
- NULL,
- sKmaAddress,
- NULL);
- }
- else
- {
- bSuccess = o_opPublicKEK->Load(oResponse.KWKPublicKey.__ptr,
- oResponse.KWKPublicKey.__size, PKI_FORMAT);
- if (!bSuccess)
- {
- GetPeerNetworkAddress(sKmaAddress, const_cast<struct soap *> (i_pstSoap));
-
- LogError(m_pProfile,
- AUDIT_CLIENT_GET_KWK_WRAPPING_KEY_INVALID_RSA_PUB_KEY,
- NULL,
- sKmaAddress,
- NULL);
- }
- }
- }
-
- // Note: no SOAP cleanup as caller's environment will get destroyed
-
- return bSuccess;
-};
-
-int CAgentLoadBalancer::RegisterKWK (
- int i_iWrappedKWKSize,
- const unsigned char * const i_acWrappedKWK,
- struct soap * const i_pstSoap,
- const char * const i_sURL,
- UTF8_KEYID o_acUTF8KeyID)
-{
- FATAL_ASSERT(i_iWrappedKWKSize > 0);
- FATAL_ASSERT(i_acWrappedKWK);
- FATAL_ASSERT(i_pstSoap);
- FATAL_ASSERT(i_sURL);
- FATAL_ASSERT(o_acUTF8KeyID);
-
- int bSuccess;
-
- struct KMS_Agent::xsd__hexBinary oKWK;
-
-#if defined(DEBUG) && defined(METAWARE)
- char sHexWrappedKWK[512];
- ConvertBinaryToUTF8HexString( sHexWrappedKWK, i_acWrappedKWK, i_iWrappedKWKSize);
- log_printf("CAgentLoadBalancer::RegisterKWK(): Wrapped KWK hex=%s, len=%d\n",
- sHexWrappedKWK, i_iWrappedKWKSize);
-#endif
-
- if (!PutBinaryIntoSoapBinary(i_pstSoap,
- i_acWrappedKWK,
- i_iWrappedKWKSize,
- oKWK.__ptr,
- oKWK.__size))
- {
- return FALSE;
- }
-
- char sSoapFaultMsg[g_iMAX_SOAP_FAULT_MESSAGE_LENGTH];
- char sKmaAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH];
- struct KMS_Agent::KMS_Agent__RegisterAgentKWKResponse oResponse;
-
- bSuccess = KMS_Agent::soap_call_KMS_Agent__RegisterAgentKWK(
- const_cast<struct soap *> (i_pstSoap),
- i_sURL, NULL, oKWK, oResponse) == SOAP_OK;
-
- if (bSuccess)
- {
- // verify response
- if (oResponse.AgentKWKID &&
- strlen(oResponse.AgentKWKID) == 2 * KMS_KWK_KEY_ID_SIZE)
- {
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("CAgentLoadBalancer::RegisterKWK(): KWK ID hex=%s\n",
- oResponse.AgentKWKID,
- sizeof (UTF8_KEYID));
-#endif
- strncpy(o_acUTF8KeyID, oResponse.AgentKWKID, sizeof(UTF8_KEYID));
- o_acUTF8KeyID[sizeof(UTF8_KEYID)-1] = '\0';
- }
- else
- {
- GetPeerNetworkAddress(sKmaAddress, const_cast<struct soap *> (i_pstSoap));
- GetSoapFault(sSoapFaultMsg, const_cast<struct soap *> (i_pstSoap));
-
- Log(AUDIT_CLIENT_AGENT_REGISTER_KWK_INVALID_KEYID_RESPONSE,
- NULL,
- sKmaAddress,
- sSoapFaultMsg);
- bSuccess = FALSE;
- }
- }
- else
- {
- GetPeerNetworkAddress(sKmaAddress, const_cast<struct soap *> (i_pstSoap));
- GetSoapFault(sSoapFaultMsg, const_cast<struct soap *> (i_pstSoap));
-
- Log(AUDIT_CLIENT_AGENT_REGISTER_KWK_ERROR,
- NULL,
- sKmaAddress,
- sSoapFaultMsg);
- bSuccess = FALSE;
- }
-
- // Note: Clean up SOAP must happen in caller, not here
-
- return bSuccess;
-
-};
-
-bool CAgentLoadBalancer::AESKeyUnwrap (
- int * const io_pIndex,
- const WRAPPED_KEY i_pAESWrappedKey,
- KEY o_pPlainTextKey)
-{
- FATAL_ASSERT(io_pIndex);
- FATAL_ASSERT(*io_pIndex >= 0);
- FATAL_ASSERT(o_pPlainTextKey);
- FATAL_ASSERT(i_pAESWrappedKey);
-
- struct KWKEntry * pKWKEntry = GetKWK(GetKMAID(*io_pIndex));
-
- if (pKWKEntry == NULL)
- {
- Log(AGENT_LOADBALANCER_AESKEYUNWRAP_GETKWK_RETURNED_NULL,
- NULL,
- m_aCluster[*io_pIndex].m_wsApplianceNetworkAddress,
- NULL);
- *io_pIndex = CAgentLoadBalancer::AES_KEY_UNWRAP_ERROR;
-
- return false;
- }
-
-#if defined(DEBUG) && defined(METAWARE)
- char sHexKWK[2*KMS_MAX_KEY_SIZE+1];
- ConvertBinaryToUTF8HexString( sHexKWK, pKWKEntry->m_acKWK, sizeof (pKWKEntry->m_acKWK));
- log_printf("CAgentLoadBalancer::AESKeyUnwrap(): KWK hex=%s\n",
- sHexKWK);
-#endif
-
- if (aes_key_unwrap(pKWKEntry->m_acKWK,
- sizeof (pKWKEntry->m_acKWK),
- i_pAESWrappedKey,
- o_pPlainTextKey, 4) != 0)
- {
- Log(AGENT_LOADBALANCER_AESKEYUNWRAP_KEY_UNWRAP_FAILED,
- NULL,
- m_aCluster[*io_pIndex].m_wsApplianceNetworkAddress,
- NULL);
- *io_pIndex = CAgentLoadBalancer::AES_KEY_UNWRAP_ERROR;
- return false;
- }
-
- return true;
-}
-
-/*---------------------------------------------------------------------------
- * Function: KMSClient_SortClusterArray
- *
- *--------------------------------------------------------------------------*/
-void CAgentLoadBalancer::KMSClient_SortClusterArray (KMSClientProfile * const i_pProfile)
-{
- FATAL_ASSERT(i_pProfile);
-
- CAutoMutex oAutoMutex((K_MUTEX_HANDLE) i_pProfile->m_pLock);
-
- int i;
-
-
- // adjust loads according to availability, site and FIPS compatibility
- for (i = 0; i < i_pProfile->m_iClusterNum; i++)
- {
- if ((i_pProfile->m_aCluster[i].m_iEnabled == FALSE
- || i_pProfile->m_aCluster[i].m_iResponding == FALSE
- || i_pProfile->m_aCluster[i].m_iKMALocked))
- {
- ((unsigned char*) &(i_pProfile->m_aCluster[i].m_lLoad))[sizeof (int)+1] = 1;
- }
- else
- {
- ((unsigned char*) &(i_pProfile->m_aCluster[i].m_lLoad))[sizeof (int)+1] = 0;
- }
-
- if (strcmp(i_pProfile->m_aCluster[i].m_wsApplianceSiteID,
- i_pProfile->m_wsEntitySiteID) != 0)
- {
- ((unsigned char*) &(i_pProfile->m_aCluster[i].m_lLoad))[sizeof (int)] = 1;
- }
- else
- {
- ((unsigned char*) &(i_pProfile->m_aCluster[i].m_lLoad))[sizeof (int)] = 0;
- }
-
- if ( m_bFIPS &&
- !FIPScompatibleKMA(i_pProfile->m_aCluster[i].m_sKMAVersion))
- {
- ((unsigned char*) &(i_pProfile->m_aCluster[i].m_lLoad))[sizeof (int)+2] = 1;
- }
- else
- {
- ((unsigned char*) &(i_pProfile->m_aCluster[i].m_lLoad))[sizeof (int)+2] = 0;
- }
- }
-
- // sort ascending by load
-
- // gnome sort: the simplest sort algoritm
- // http://www.cs.vu.nl/~dick/gnomesort.html
-
- //void gnomesort(int n, int ar[]) {
- // int i = 0;
- //
- // while (i < n) {
- // if (i == 0 || ar[i-1] <= ar[i]) i++;
- // else {int tmp = ar[i]; ar[i] = ar[i-1]; ar[--i] = tmp;}
- // }
- //}
-
- i = 0;
- while (i < i_pProfile->m_iClusterNum)
- {
- if (i == 0 || i_pProfile->m_aCluster[i - 1].m_lLoad <= i_pProfile->m_aCluster[i].m_lLoad)
- {
- i++;
- }
- else
- {
- KMSClusterEntry tmp = i_pProfile->m_aCluster[i];
- i_pProfile->m_aCluster[i] = i_pProfile->m_aCluster[i - 1];
- i_pProfile->m_aCluster[--i] = tmp;
- }
- }
-}
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentLoadBalancer.h b/usr/src/lib/libkmsagent/common/KMSAgentLoadBalancer.h
deleted file mode 100644
index b4237e6be1..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentLoadBalancer.h
+++ /dev/null
@@ -1,339 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentLoadBalancer.h
- */
-
-#ifndef KMS_AGENT_LOAD_BALANCER_H
-#define KMS_AGENT_LOAD_BALANCER_H
-typedef char UTF8_KEYID[2*KMS_KWK_KEY_ID_SIZE+1];
-
-class CAgentLoadBalancer
-{
-public:
-
- /**
- * the load balancer retains a pointer to the specified profile
- */
- CAgentLoadBalancer(
- KMSClientProfile * const i_pProfile );
-
- ~CAgentLoadBalancer ();
-
- /**
- * This method must be called at the top of each agent library transaction.
- * Responsibilities:
- * <ul>
- * <li>clear profile failover attempts
- * <li>sets transaction start time
- * <li>performs discovery at the frequency specified in the profile
- * <li>maintains the status of KMAs within the cluster
- * </ul>
- * @return a random KMA from the "available" KMAs within the agent's site
- * or a random KMA from any of the "available" KMA's if none are available
- * within the agent's site.
- * When operating in FIPS mode then only KMAs that are
- * FIPS compatible will be selected, see <code>FIPScompatibleKMA</code>.
- * Available KMAs
- * are KMAs that are enabled and responding. If no FIPS compatible KMAs
- * are available then <code>NO_FIPS_KMA_AVAILABLE</code> is returned.
- * When <code>m_iClusterDiscoveryFrequency</code> is set to 0 in the profile
- * then load balancing and automatic discovery
- * are disabled so the default KMA is returned.
- */
- int Balance();
-
- /**
- * @return a KMA from the cache that has affinity with the specified DataUnitID,
- * if possible, otherwise return a KMA from <code>Balance</code>. See
- * <code>Balance</code> for <code>FIPS_MODE</code> behavior and disabled load balancing.
- */
- int BalanceByDataUnitID(
- const unsigned char * const i_pDataUnitID,
- int i_iDataUnitIDMaxLen );
-
- /**
- * @return a KMA from the cache that has affinity with the specified DataUnitKeyID,
- * if possible, otherwise return a KMA from <code>Balance</code>. See
- * <code>Balance</code> for <code>FIPS_MODE</code> behavior and disabled load balancing.
- */
- int BalanceByDataUnitKeyID(
- const unsigned char * const i_pDataUnitKeyID,
- int i_iDataUnitKeyIDMaxLen );
-
- enum ERRORS
- {
- CLIENT_SIDE_ERROR = -1,
- NO_KMA_AVAILABLE = -2,
- AES_KEY_UNWRAP_ERROR = -3,
- AES_KEY_WRAP_SETUP_ERROR = -4,
- NO_FIPS_KMA_AVAILABLE = -5,
- KWK_NOT_REGISTERED = -6
- };
-
- /**
- * Makes a failover determination based upon soap error information and profile settings.
- * Responsibilities:
- * <ul>
- * <li>updates the status of the failed KMA within the profile's cluster array
- * <li>Client Faults - no failover, same KMA will be returned if a Server Busy error
- * occurred and
- * either the transaction timeout has not been exceeded or failover limit has not been exceeded
- * <li>Server Faults - a failover KMA is chosen if the limit specified set in the profile
- * has not been exceed
- * <li>For <code>CLIENT_ERROR_AGENT_KWK_NOT_REGISTERED</code> the KWK is deleted and
- * i_iFailedApplianceIndex is returned. The caller should re-regsiter the
- * KWK with this appliance.
- * </ul>
- * If all KMAs are disabled or non-responding then give up.
- * <li>increments profile failover attempts
- * </ul>
- * @param i_iFailedApplianceIndex the index within the profile's cluster array of the failed KMA
- * @param i_pstSoap the gSoap runtime from which error information can be analyzed
- * @return index of KMA in cluster to failover to, <code>CLIENT_SIDE_ERROR</code> to give up due to client side error,
- * <code>NO_KMA_AVAILABLE</code> or <code>NO_FIPS_KMA_AVAILABLE</code> if running in FIPS_MODE
- * if server error but no KMA to failover to
- */
- int FailOver(
- int i_iFailedApplianceIndex,
- struct soap *i_pstSoap );
-
- /**
- * Updates the response status for the specified KMA to responding.
- */
- void UpdateResponseStatus(int i_iIndex);
-
- /**
- * @return HTTPS protocol URL for the KMA referenced by the specified index entry within this
- * object's cluster array and the specified web service port.
- */
- char* GetHTTPSURL(
- int i_iIndex,
- int i_iPort );
- /**
- * @return HTTP protocol URL for the KMA referenced by the specified index entry within this
- * object's cluster array and the specified web service port.
- */
- char* GetHTTPURL(
- int i_iIndex,
- int i_iPort );
-
- /**
- * @return the KMA IP address for the specified index entry within this object's cluster
- * array.
- */
- char* GetApplianceNetworkAddress(
- int i_iIndex );
-
- /**
- * @return the KMA ID for the specified index entry within this
- * object's cluster. Returns -1 if an invalid
- * index is provided
- */
- Long64 GetKMAID(
- int i_iIndex );
-
- /**
- * retrieves the KWKID for a specified KMA in the cluster.
- * @param i_Index element in this object's KMS cluster as returned by
- * one of the Balance methods or the Failover method.
- * @param i_lKMAID the KMAID for which a KWK is desired
- * @param i_pstSoap non-NULL pointer to an initialized gSoap runtime to be
- * used, if necessary, for KWK registration with the KMA.
- * @param o_pKWKID pointer to UTF8 hex character string to receive the KWKID
- * for the specified KMA in the cluster.
- * @param o_pbClientAESKeyWrapSetupError this arg gets set to true if an
- * error occurs that is client side related and pertaining to establishment
- * of the AES Key Wrapping Keys.
- * If the KMS cluster does not support AES KeyWrap o_pKWKID is set to
- * a zero-length string. A new KWK may be registered with the KMA if a value
- * has not yet been registered for this instance of CAgentLoadBalancer.
- * @return TRUE if successful and FALSE otherwise with soap fault available
- * in the gSoap runtime provided by the caller and io_pIndex set to
- * AES_KEY_WRAP_SETUP_ERROR. Use ServerError() to
- * determine if failover is appropriate.
- */
- int GetKWKID(
- int i_Index,
- Long64 i_lKMAID,
- struct soap * const i_pstSoap,
- UTF8_KEYID o_pKWKID,
- bool * const o_pbClientAESKeyWrapSetupError);
-
- /**
- * performs AES Key unwrapping according to RFC3394.
- * @param io_pIndex Cluster index for KMA that wrapped the key. On error
- * the cluster index is set to AES_KEY_UNWRAP_ERROR
- * @param i_pAESWrappedKey pointer to the wrapped key
- * @param o_pPlainTextKey point to buffer to receive unwrapped key
- * @return true for success, false otherwise and sets *io_pIndex to
- * AES_KEY_UNWRAP_ERROR
- */
- bool AESKeyUnwrap (
- int * const io_pIndex,
- const WRAPPED_KEY i_pAESWrappedKey,
- KEY o_pPlainTextKey );
-
- /**
- * @return true if the KMA referenced by the specified cluster
- * index supports AES key wrap
- */
- bool AESKeyWrapSupported (
- int i_iIndex);
-
-protected:
- /**
- * @return the cluster array index of the KMA with the specified IP address
- * or CLIENT_SIDE_ERROR if the KMA is not responding or not enabled
- */
- int FindIndexByNetworkAddress (
- char* i_wsApplianceNetworkAddress);
-
-private:
-
- /**
- * Sorts the cluster array ascending by load.
- * Before sorting, the other site's KMAs' load are added by 0x10000000000 and
- * the disabled/non-responding/locked KMAs are added by 0x1000000000000 and KMAs
- * not matching the agent's FIPS setting the load is bumped by 0x100000000000000.
- * This ensures that KMAs
- * in the current site are sorted before KMAs in other sites and
- * disabled/non-responding/locked KMAs are after those enabled KMAs. When the agent is
- * in FIPS mode the non-FIPS KMAs are sorted last.
- */
- void KMSClient_SortClusterArray (
- KMSClientProfile * const i_pProfile);
-
- static const int MAX_RSA_PUB_KEY_LENGTH = 256;
- int m_iClusterNum;
-
- /**
- * this array is reinitialized from the profile's Cluster array each time Balance() is called.
- * Failover() will resort the profile's Cluster array so this array may not
- * match the sort order in the profile
- */
- KMSClusterEntry m_aCluster[KMS_MAX_CLUSTER_NUM];
- KMSClientProfile *m_pProfile;
- char m_sURL[KMS_MAX_URL+1];
- unsigned int m_iTransactionStartTimeInMilliseconds;
- bool m_bFIPS;
-
- /**
- * number of elements in KWKEntries
- */
- int m_iKWKEntryNum;
-
- /**
- * in a failover scenario, if all KMAs are not responding this
- * member variable tracks the index into m_aCluster of the last KMA attempted.
- */
- int m_iLastAttemptedWhenNoneResponding;
-
- /**
- * @return true if the failover limit has been exceeded. If failover
- * limit of -1 is specified in the profile then always return false.
- */
- bool FailOverLimit(void);
-
- /**
- * \struct for each KMA used in a profile session there will be
- * a KWKEntry in KWKEntries. These values do not persist
- * beyond a profile session
- */
- struct KWKEntry
- {
- /**
- * The KMA associated with this KWK. This KMA
- * receives the KWK via the KMS_Agent__RegisterAgentKWK()
- * agent service which returns the KMA assigned value for
- * m_acKWKID
- */
- Long64 m_lKMAID;
-
- /**
- * the KeyID for this KWK, provided by the KMA
- */
- UTF8_KEYID m_acKWKID;
-
- /**
- * the plaintext value of the AES KWK
- */
- KEY m_acKWK;
- };
-
- /**
- * set of KWKEntry ptrs for KMAs used in this profile session.
- */
- struct KWKEntry * m_aKWKEntries[KMS_MAX_CLUSTER_NUM];
-
- /**
- * retrieve the Key Wrapping Key for a KMA
- * @param i_lKMAID KMA identifier, must not be equal to -1
- * @return pointer to the KWKEntry for the specified KMAID, NULL
- * if the entry does not exist
- */
- struct KWKEntry *GetKWK(
- Long64 i_lKMAID );
-
- /**
- * creates a new KWKEntry on the heap and store a ptr to it in an
- * unused slot in <code>m_aKWKEntries</code>.
- * @return NULL on error, otherwise a pointer to the newly
- * created KWKEntry
- */
- struct KWKEntry *CreateKWK(
- Long64 i_lKMAID,
- struct soap * const i_pstSoap,
- const char * const i_sURL,
- bool * const o_pbClientAESKeyWrapSetupError);
-
- /**
- * free the <code>KWKEntry</code> corresponding to the specified KMA ID
- * and set the slot it occupied in <code>m_aKWKEntries</code> to NULL.
- */
- void DeleteKWKEntry(Long64 i_lKMAID);
-
- /**
- * retrieve the RSA public key to be used for wrapping a KWK
- */
- int GetKWKWrappingKey(
- struct soap * const i_pstSoap,
- const char * const i_sURL,
- CPublicKey * const o_opPublicKEK );
-
- /**
- * register the KWK with a specified KMA and return the KWK ID
- */
- int RegisterKWK(
- int i_iWrappedKWKSize,
- const unsigned char * const i_acWrappedKWK,
- struct soap * const i_pstSoap,
- const char * const i_sURL,
- UTF8_KEYID o_acUTF8KeyID );
-
-};
-
-#endif //KMS_AGENT_LOAD_BALANCER_H
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentPKICert.cpp b/usr/src/lib/libkmsagent/common/KMSAgentPKICert.cpp
deleted file mode 100644
index 9989b26e0e..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentPKICert.cpp
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentPKICert.cpp
- *
- * This is an implementation of PKICommon.h CCertificate class.
- */
-
-#include <stdio.h>
-#include <memory.h>
-#include <time.h>
-#include <string.h>
-
-#ifdef KMSUSERPKCS12
-#include <openssl/bio.h>
-#include <openssl/evp.h>
-#include <openssl/conf.h>
-#include <openssl/err.h>
-#include <openssl/asn1.h>
-#include <openssl/x509.h>
-#include <openssl/x509v3.h>
-#include <openssl/objects.h>
-#include <openssl/pem.h>
-#include <openssl/pkcs12.h>
-#endif
-
-#include "SYSCommon.h"
-#include "KMSAgentPKICommon.h"
-#include "KMSAgentPKIimpl.h"
-
-/////////////////////////////////////////////////////////////////////////
-// CCertificate
-//
-CCertificate::CCertificate()
-{
- m_pCertImpl = InitializeCertImpl();
-
- FATAL_ASSERT( m_pCertImpl != NULL );
-}
-
-
-CCertificate::~CCertificate()
-{
- if ( m_pCertImpl != NULL )
- {
- FinalizeCertImpl( m_pCertImpl );
- }
-}
-
-/**
- * Save - This OVERLOADED method saves the Cert into a file
- * @param i_pcFileName - filename of file to save into
- * @param i_iFormat - IGNORED
- *
- * @returns bool - success (true = successful)
- */
-bool CCertificate::Save( const char * const i_pcFileName,
- int i_iFormat )
-{
- return SaveX509CertTofile( m_pCertImpl, i_pcFileName );
-}
-
-/**
- * Save - This OVERLOADED method saves the Cert into a buffer
- * @param i_pcBuffer - buffer to save into
- * @param i_BufferLength - length of buffer to save
- * @param o_pActualLength - length of buffer saved
- * @param i_iFormat - IGNORED
- *
- * @returns bool - success (true = successful)
- */
-bool CCertificate::Save( unsigned char * const i_pcBuffer,
- int i_iBufferLength,
- int * const o_pActualLength,
- int i_iFormat )
-{
- return SaveX509CertToBuffer( m_pCertImpl,
- i_pcBuffer,
- i_iBufferLength,
- o_pActualLength );
-}
-
-/**
- * Load
- * This OVERLOADED method loads the Cert from a FILE
- * @param i_pcFileName - name of file to load from
- * @param i_iFormat - IGNORED
- *
- * @returns bool - success (true = successful)
- */
-
-bool CCertificate::Load( const char * const i_pcFileName,
- int i_iFormat )
-{
- return LoadX509CertFromFile( m_pCertImpl, i_pcFileName );
-}
-
-/**
- * Load
- * This OVERLOADED method loads the Cert from a buffer
- * @param i_pcBuffer - buffer to load from
- * @param i_iLength - amount to load from buffer
- * @param i_iFormat - IGNORED
- *
- * @returns bool - success (true = successful)
- */
-bool CCertificate::Load( unsigned char * const i_pcBuffer,
- int i_iLength,
- int i_iFormat )
-{
- return LoadX509CertFromBuffer( m_pCertImpl, i_pcBuffer, i_iLength );
-}
-
-/**
- * Dump
- * dump the readable format to standard output
- * @returns bool - success (true = successful)
- */
-bool CCertificate::Dump()
-{
- return PrintX509Cert( m_pCertImpl );
-}
-
-#ifdef KMSUSERPKCS12
-bool
-CCertificate::LoadPKCS12CertAndKey(
- char *filename,
- int i_iFormat,
- CPrivateKey *i_pPrivateKey,
- char *i_pPassphrase)
-{
- BIO *pFileBio= NULL;
- X509 *pRequest =NULL;
-
- pFileBio = BIO_new(BIO_s_file());
- if (pFileBio == NULL)
- return false;
- if (!BIO_read_filename(pFileBio, filename)) {
- BIO_free(pFileBio);
- return (false);
- }
-
- switch( i_iFormat ) {
- case FILE_FORMAT_DER:
-
- pRequest=d2i_X509_bio(pFileBio, NULL);
- if (pRequest == NULL) {
- // fixme: log: invalid certificate format
- return false;
- }
- break;
-
- case FILE_FORMAT_PEM:
-
- pRequest=PEM_read_bio_X509(pFileBio, NULL, NULL, NULL);
- if (pRequest == NULL) {
- // fixme: log: invalid certificate format
- return false;
- }
- break;
-
- case FILE_FORMAT_PKCS12:
- PKCS12* pPKCS12Request = d2i_PKCS12_bio(pFileBio, NULL);
- if (pPKCS12Request == NULL) {
- // fixme: log: invalid certificate format
- return false;
- }
-
- // convert PKCS12 to X509
- EVP_PKEY *pKeyTemp = NULL;
- if (!PKCS12_parse(pPKCS12Request, i_pPassphrase,
- &pKeyTemp, &pRequest, NULL)) {
- // fixme: log: invalid certificate format or passphrase
- PKCS12_free(pPKCS12Request);
- return false;
- }
-
- if (pKeyTemp && i_pPrivateKey) {
- i_pPrivateKey->SetNative((void *)pKeyTemp);
- } else if (pKeyTemp)
- EVP_PKEY_free(pKeyTemp);
-
- PKCS12_free(pPKCS12Request);
- break;
- }
- if (pRequest != NULL) {
- SetCert(m_pCertImpl, (void *)pRequest);
- }
-
- return (true);
-}
-
-void *
-CCertificate::SaveCertToPKCS12MemoryBIO(
- CPrivateKey* i_pPrivateKey,
- char *i_sPassphrase)
-{
- BIO *pMemBio = NULL;
- int iReturn;
-
- // create memory BIO
- pMemBio = BIO_new(BIO_s_mem());
-
- if(pMemBio == NULL)
- {
- //fixme: log -- no memory
- return NULL;
- }
-
- PKCS12 *p12 = PKCS12_create(i_sPassphrase,
- NULL,
- (EVP_PKEY *)i_pPrivateKey->GetNative(),
- (X509 *)GetCert(m_pCertImpl),
- NULL,
- 0,
- 0,
- 0,
- 0,
- 0);
- if ( ! p12 )
- {
- return NULL;
- }
-
- // now pMemBIO != NULL, remember to free it before exiting
- iReturn = i2d_PKCS12_bio(pMemBio, p12);
-
- if(!iReturn) // return 0: means error occurs
- {
- //fixme: log -- could not export private key
- BIO_free(pMemBio);
- return NULL;
- }
-
- return (void *)pMemBio;
-}
-
-bool
-CCertificate::SavePKCS12(
- unsigned char *i_pcBuffer,
- int i_iBufferLength,
- int *o_pActualLength,
- CPrivateKey* i_pPrivateKey,
- char* i_sPassphrase )
-{
- BIO *pMemBio = NULL;
- char *pData = NULL;
- int iLength;
-
- // sanity check
- if(i_pcBuffer == NULL) return false;
- if(i_iBufferLength <= 0) return false;
- if(o_pActualLength == NULL) return false;
-
- // create memory BIO
- pMemBio = (BIO *)SaveCertToPKCS12MemoryBIO(i_pPrivateKey, i_sPassphrase);
-
- if(pMemBio == NULL)
- {
- //fixme: log -- no memory
- return false;
- }
-
- iLength = BIO_get_mem_data(pMemBio, &pData);
-
- // If the output buffer is a string, it needs to be NULL terminated
- // So always append a NULL to the output
- if(iLength + 1 > i_iBufferLength)
- {
- //fixme: log -- buffer too small
- BIO_free(pMemBio);
- return false;
- }
- // copy the data to given buffer
- memcpy(i_pcBuffer, pData, iLength);
- // NULL terminate the string
- i_pcBuffer[iLength] = '\0';
- *o_pActualLength = iLength;
-
- // free memory
- BIO_free(pMemBio);
-
- return true;
-}
-#endif /* PKCS12 */
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentPKICertOpenSSL.cpp b/usr/src/lib/libkmsagent/common/KMSAgentPKICertOpenSSL.cpp
deleted file mode 100644
index e26e8cb1f2..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentPKICertOpenSSL.cpp
+++ /dev/null
@@ -1,313 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentPKICertOpenSSL.cpp
- */
-
-#include <stdio.h>
-#include <openssl/bio.h>
-#include <openssl/pem.h>
-
-#include "SYSCommon.h"
-#include "KMSAgentPKIimpl.h"
-
-typedef struct X509control
-{
- X509* pX509;
-} X509control;
-
-void * InitializeCertImpl()
-{
- X509control *pX509Control = (X509control *) malloc(sizeof(X509control));
-
- if ( pX509Control != NULL )
- {
- pX509Control->pX509 = NULL;
- }
-
- return pX509Control;
-}
-
-/**
- * export the Cert to a memory BIO, if error, return NULL
- */
-BIO* SaveCertToMemoryBIO( X509control* i_pX509control )
-{
- BIO *pMemBio = NULL;
- int iReturn;
-
- // create memory BIO
- pMemBio = BIO_new(BIO_s_mem());
-
- if(pMemBio == NULL)
- {
- //fixme: log -- no memory
- return NULL;
- }
-
- //iReturn = PEM_write_bio_X509(pMemBio, m_pNative);
- iReturn = PEM_write_bio_X509(pMemBio, i_pX509control->pX509);
-
- if(!iReturn) // return 0: means error occurs
- {
- //fixme: log -- could not export private key
- BIO_free(pMemBio);
- return NULL;
- }
-
- return pMemBio;
-}
-
-bool SaveX509CertTofile(
- void* const i_pImplResource,
- const char * const i_pcFileName )
-{
- FATAL_ASSERT( i_pImplResource != NULL && i_pcFileName );
-
- X509control* pX509control = (X509control*)i_pImplResource;
- // the BIO for output, need cleanup when exiting
- BIO *pMemBio = NULL;
- int iLength;
- unsigned char *pData;
- FILE *fp;
-
- // create memory BIO
- pMemBio = SaveCertToMemoryBIO( pX509control );
-
- if(pMemBio == NULL)
- {
- return false;
- }
-
- // now pMemBIO != NULL, remember to free it before exiting
- iLength = BIO_get_mem_data(pMemBio, &pData);
-
- // open the file
- fp = fopen(i_pcFileName, "wb");
- if(fp == NULL)
- {
- //fixme: log -- could not open file for exporting Cert
- BIO_free(pMemBio);
- return false;
- }
-
- fwrite(pData, 1, iLength, fp);
- fclose(fp);
-
- BIO_free(pMemBio); // BIO_free close the file and clean the BIO
- return true;
-}
-
-bool SaveX509CertToBuffer(
- void* const i_pImplResource,
- unsigned char * const i_pcBuffer,
- int i_iBufferLength,
- int * const o_pActualLength )
-{
- FATAL_ASSERT( i_pImplResource != NULL &&
- i_pcBuffer &&
- o_pActualLength &&
- i_iBufferLength > 0 );
-
- X509control* pX509control = (X509control*)i_pImplResource;
-
- BIO *pMemBio = NULL;
- char *pData = NULL;
- int iLength;
-
- // create memory BIO
- pMemBio = SaveCertToMemoryBIO( pX509control );
-
- if( pMemBio == NULL )
- {
- //fixme: log -- no memory
- return false;
- }
-
- iLength = BIO_get_mem_data( pMemBio, &pData );
-
- // If the output buffer is a string, it needs to be NULL terminated
- // So always append a NULL to the output
- if(iLength + 1 > i_iBufferLength)
- {
- //fixme: log -- buffer too small
- BIO_free(pMemBio);
- return false;
- }
- // copy the data to given buffer
- memcpy(i_pcBuffer, pData, iLength);
- // NULL terminate the string
- i_pcBuffer[iLength] = '\0';
- *o_pActualLength = iLength;
-
- // free memory
- BIO_free(pMemBio);
-
- return true;
-}
-
-/**
- * import the Cert from a BIO, if error, return NULL
- */
-bool LoadCertFromBIO(X509control* i_pX509control, BIO *i_pBio)
-{
- X509 *pRequest = NULL;
-
- if (i_pX509control == NULL) return false;
-
- if(i_pBio == NULL) return false;
-
- //if(m_pNative != NULL) return false; // do not allow overwrite
- if (i_pX509control->pX509 != NULL ) return false;
-
- pRequest=PEM_read_bio_X509(i_pBio, NULL, NULL, NULL);
-
- if (pRequest == NULL)
- {
- // fixme: log: invalid certificate format
- return false;
- }
- //m_pNative = pRequest;
- i_pX509control->pX509 = pRequest;
-
- return true;
-}
-
-bool LoadX509CertFromFile(
- void* const i_pImplResource,
- const char * const i_pcFileName )
-
-{
- X509control* pX509control = (X509control*) i_pImplResource;
- if (pX509control == NULL)
- {
- return false;
- }
-
- BIO *pFileBio=NULL;
- bool bReturn;
-
- pFileBio=BIO_new(BIO_s_file());
- if (pFileBio == NULL)
- {
- //fixme: log -- no memory
- return false;
- }
-
- if (!BIO_read_filename(pFileBio,i_pcFileName))
- {
- //fixme log -- could not open file
- BIO_free(pFileBio);
- return false;
- }
-
- bReturn = LoadCertFromBIO(pX509control, pFileBio);
-
- BIO_free(pFileBio);
-
- return bReturn;
-}
-
-
-bool LoadX509CertFromBuffer(
- void* const i_pImplResource,
- void* const i_pX509Cert,
- int i_iLength)
- {
- X509control* pX509control = (X509control*)i_pImplResource;
-
- if(pX509control == NULL)
- {
- return false;
- }
-
- BIO *pMemBio;
- bool bReturn;
- // create a mem bio from the given buffer
- // Note that BIO_new_mem_buf() creates a BIO which never destroy the memory
- // attached to it.
- pMemBio = BIO_new_mem_buf(i_pX509Cert, i_iLength);
- if (pMemBio == NULL)
- {
- //fixme: log -- no memory
- return false;
- }
- bReturn = LoadCertFromBIO(pX509control, pMemBio);
-
- BIO_free(pMemBio);
-
- return bReturn;
-}
-
-void FinalizeCertImpl( void* i_pImplResource )
-{
- if ( i_pImplResource != NULL )
- {
- free(i_pImplResource);
- }
-}
-
-bool PrintX509Cert( void* const i_pImplResource )
-{
- BIO *pMemBio;
- char *pData;
- int iLength,i;
- X509control* pX509control = (X509control*)i_pImplResource;
- pMemBio = BIO_new(BIO_s_mem());
- if(pMemBio == NULL)
- {
- return false;
- }
-
- //X509_print(pMemBio,m_pNative);
- X509_print(pMemBio, pX509control->pX509);
-
- iLength = BIO_get_mem_data(pMemBio, &pData);
-
- for(i = 0; i < iLength; i++)
- {
- printf("%c", pData[i]);
- }
-
- BIO_free(pMemBio);
-
- return true;
-
-}
-#ifdef K_SOLARIS_PLATFORM
-void *GetCert(void* i_pImplResource )
-{
- X509control* pX509control = (X509control*)i_pImplResource;
- return ((void *)pX509control->pX509);
-}
-
-void SetCert(void* i_pImplResource, void *cert)
-{
- X509control* pX509control = (X509control*)i_pImplResource;
- pX509control->pX509 = (X509 *)cert;
- return;
-}
-#endif
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentPKICommon.cpp b/usr/src/lib/libkmsagent/common/KMSAgentPKICommon.cpp
deleted file mode 100644
index 269463c6ef..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentPKICommon.cpp
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentPKICommon.cpp
- */
-#include <stdio.h>
-
-#include "SYSCommon.h"
-#include "KMSAgentPKICommon.h"
-#include "KMSAgentStringUtilities.h"
-
-#include "KMSAgent_direct.h"
-
-
-//////////////////////////////////////////////////////////////////////
-// Construction/Destruction
-//////////////////////////////////////////////////////////////////////
-
-CPKI::CPKI()
-{
- m_iKeyLength = DEFAULT_KEY_SIZE;
-
- // used for CA
- m_pCACertificate = NULL;
- m_pCAPrivateKey = NULL;
-}
-
-// BEN - make these
-// global lengths
-int iLength1 = 0;
-int iLength2 = 0;
-
-// THIS CAN'T BE STACK DATA - TOO BIG
-static unsigned char aTempBuffer[MAX_CERT_SIZE + MAX_KEY_SIZE];
-#ifdef METAWARE
-static char aNotherTempBuffer[50];
-#endif
-
-// used by StoreAgentPKI - KMSAgentStorage.cpp
-
-bool CPKI::ExportCertAndKeyToFile(
- CCertificate* const i_pCertificate,
- CPrivateKey* const i_pPrivateKey,
- const char* const i_pcFileName,
- const char* const i_sPassphrase,
- EnumPKIFileFormat i_eFileFormat )
-{
- FATAL_ASSERT( i_pCertificate && i_pPrivateKey && i_pcFileName );
-
-
- memset( aTempBuffer, 0, MAX_CERT_SIZE + MAX_KEY_SIZE );
-
-#ifdef KMSUSERPKCS12
- if ( i_eFileFormat == FILE_FORMAT_PKCS12 )
- {
- if ( !i_pCertificate->SavePKCS12(aTempBuffer,
- MAX_CERT_SIZE,
- &iLength1,
- i_pPrivateKey,
- (char*)i_sPassphrase ) )
- {
- return false;
- }
- } else {
-#endif
-
- // Overloaded Save method implemented in KMSAgentPKICert.cpp
- // this method saves Certificate to the temporary buffer, not a file
- // but a side effect is to get the actual file length
- if ( !i_pCertificate->Save(aTempBuffer,
- MAX_CERT_SIZE,
- &iLength1, /* returned - actual length
- written */
- i_eFileFormat) )
- {
- return false;
- }
-
- // Overloaded Save method implemented in KMSAgentPKIKey.cpp
- // this method saves keys to the temporary buffer, not a file,
- // but a side effect is to get the actual file length
- if ( !i_pPrivateKey->Save(aTempBuffer + iLength1,
- MAX_KEY_SIZE,
- &iLength2, /* returned - actual length
- written */
- i_sPassphrase,
- i_eFileFormat) )
- {
- return false;
- }
-
-#ifdef KMSUSERPKCS12
- }
-#endif
-
- // now write the temporary buffer to a file
- myFILE* pFile = fopen( i_pcFileName, "wb" );
- if ( pFile == NULL )
- {
- return false;
- }
-
-#ifdef KMSUSERPKCS12
-#ifdef K_SOLARIS_PLATFORM
- int fd = fileno(pFile);
-
- /* Make sure this file is read/write for the OWNER only! */
- (void) fchmod(fd, 0600);
-#endif
-#endif
-
-#ifdef METAWARE
- // write out the two file lengths
- snprintf(aNotherTempBuffer, sizeof(aNotherTempBuffer), "iLength1=%x\n", iLength1);
- fputs((const char*)aNotherTempBuffer, pFile);
-
- snprintf(aNotherTempBuffer, sizeof(aNotherTempBuffer), "iLength2=%x\n", iLength2);
- fputs((const char*)aNotherTempBuffer, pFile);
-#endif
-
- int iBytesWritten = fwrite( (const char*)aTempBuffer, // from
- 1, // size
- iLength1+iLength2, // actual file length
- pFile ); // to-file
-
- fclose( pFile );
-
- return ( iBytesWritten == (iLength1+iLength2) );
-}
-
-
-CPKI::~CPKI()
-{
- // empty
-}
-
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentPKICommon.h b/usr/src/lib/libkmsagent/common/KMSAgentPKICommon.h
deleted file mode 100644
index b9ed831485..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentPKICommon.h
+++ /dev/null
@@ -1,293 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/*-------------------------------------------------------------------------*/
-/**
- * \file KMSAgentPKICommon.h
- *
- * X.509 Certificate and Private Key Support Interface
- *
- * This module provides simple interfaces to support SSL communication
- * for the KMS Agent enrollment protocol. Basic classes supporting
- * X.509 certificates, private key management are provided and hide
- * specific implementations from users of these classes.
- */
-/*-------------------------------------------------------------------------*/
-
-#ifndef K_KMSAgentPKICommon_h
-#define K_KMSAgentPKICommon_h
-
-#ifdef WIN32
-#pragma warning(disable: 4786)
-#endif
-
-#define MAX_CERT_SIZE 4096
-#define MAX_KEY_SIZE 4096
-
-#define DEFAULT_KEY_SIZE 2048
-
-#ifdef KMSUSERPKCS12
-enum EnumPKIFileFormat { FILE_FORMAT_DER, FILE_FORMAT_PEM, FILE_FORMAT_PKCS12 };
-#else
-enum EnumPKIFileFormat { FILE_FORMAT_DER, FILE_FORMAT_PEM };
-#endif
-
-/**
- * This class provides a simple interface for the management of
- * public keys. Simple load and store operations are provided for
- * storage and retrieval from memory buffers.
- */
-class CPublicKey
-{
-
-public:
-
- CPublicKey();
-
- /**
- * This method saves public key into a buffer,
- * it also returns the actual used buffer length.
- * @param i_pcBuffer Buffer to receive public key
- * @param i_iBufferLength length of the buffer provided
- * @param o_pActualLength actual length of the public key stored into the buffer
- * @param i_iFormat key format, @see EnumPKIFileFormat
- */
- bool Save(unsigned char * const i_pcBuffer,
- int i_iBufferLength,
- int * const o_pActualLength,
- int i_iFormat);
- /**
- * This method loads the public key from a buffer
- * @param i_pcBuffer
- * @param i_iLength
- * @param i_iFormat one of the enums from EnumPKIFileFormat,
- * only FILE_FORMAT_PEM is supported.
- * @return true for success, false otherwise
- */
- bool Load (unsigned char * const i_pcBuffer,
- int i_iLength,
- int i_iFormat);
-
- /**
- * use this object's public key to encrypt plaintext buffer
- */
- bool Encrypt (int i_iLength,
- const unsigned char * const i_pcPlainText,
- unsigned char * const o_pcCypherText,
- int * const o_pActualLength);
-
- ~CPublicKey();
-
-private:
- void *m_pPublicKeyImpl;
-};
-
-/**
- * This class provides a simple interface for the management of
- * private keys. Simple load and store operations are provided for
- * storage and retrieval from memory buffers.
- *
- */
-class CPrivateKey
-{
-
- public:
-
- CPrivateKey();
-
- /**
- * Saves the private key to a memory buffer specified by
- * i_pcBuffer. Currently just the PEM format is supported.
- * Specification of a passphrase allows encryption of the private
- * key subject to the choice of the implementation.
- *
- * @param[in] i_pcBuffer
- * @param[in] i_iBufferLength
- * @param[out] o_pActualLength
- * @param[in] i_pPassphrase optional, if non-null the private key is
- * wrapped using this passphrase
- * @param[in] i_iFormat one of the enums from EnumPKIFileFormat,
- * only FILE_FORMAT_PEM is supported.
- * @return true for success, false otherwise
- */
- bool Save( unsigned char * const i_pcBuffer,
- int i_iBufferLength,
- int * const o_pActualLength,
- const char * const i_pPassphrase,
- int i_iFormat );
-
- /**
- * This method loads the private key from a buffer
- * @param i_pcBuffer
- * @param i_iLength
- * @param i_pPassphrase optional, if non-null the private key is
- * unwrapped using this passphrase
- * @param i_iFormat one of the enums from EnumPKIFileFormat,
- * only FILE_FORMAT_PEM is supported.
- * @return true for success, false otherwise
- */
- bool Load(unsigned char * const i_pcBuffer,
- int i_iLength,
- const char * const i_pPassphrase,
- int i_iFormat);
-
- ~CPrivateKey();
-
-#ifdef KMSUSERPKCS12
- void *GetNative();
- void SetNative(void *);
-#endif
- private:
- void *m_pPKeyImpl;
-
-};
-
-/**
- * This class provides a simple interface for managing X.509
- * certificates providing only simple load and save operations for
- * storage and retrieval.
- *
- */
-class CCertificate
-{
-
-public:
- CCertificate();
-
- ~CCertificate();
-
- /**
- * save the certificate to the specified file name. Currently,
- * only FILE_FORMAT_PEM is supported.
- */
- bool Save( const char * const i_pcFileName,
- int i_iFormat);
-
- /**
- * save the certificate to the specified buffer. Currently, only
- * FILE_FORMAT_PEM is supported.
- */
- bool Save( unsigned char * const i_pcBuffer,
- int i_iBufferLength,
- int * const o_pActualLength,
- int i_iFormat);
-
- /**
- * load a certificate from the specified filename. Currently,
- * only FILE_FORMAT_PEM is supported.
- */
- bool Load( const char * const i_pcFileName,
- int i_iFormat );
-
- /**
- * load a certificate from the specified buffer. Currently, only
- * FILE_FORMAT_PEM is supported.
- */
- bool Load( unsigned char * const i_pcBuffer,
- int i_iLength,
- int i_iFormat );
-
- /**
- * prints the certificate to stdout
- */
- bool Dump();
-
-#ifdef KMSUSERPKCS12
- bool LoadPKCS12CertAndKey(char *filename,
- int i_iFormat,
- CPrivateKey *i_pPrivateKey,
- char *i_pPassphrase);
-
- bool SavePKCS12(
- unsigned char *i_pcBuffer,
- int i_iBufferLength,
- int *o_pActualLength,
- CPrivateKey* i_pPrivateKey,
- char* i_sPassphrase );
-#endif
-
-private:
- /**
- * an opague pointer to implementation specific resources to be
- * freed by the Destructor.
- */
- void *m_pCertImpl;
-#ifdef KMSUSERPKCS12
- /**
- * saves certificate to PKCS#12 memory BIO
- * @param i_pPrivateKey
- * @param i_sPassphrase
- * @return pointer to the Memory BIO
- */
- void* SaveCertToPKCS12MemoryBIO(
- CPrivateKey* i_pPrivateKey,
- char *i_sPassphrase);
-#endif
-
-};
-
-
-/**
- * This class provides a method for storing an X.509 certificate and
- * private key to a file. The private key is appended to the
- * certificate and optionally encrypted with the specified passphrase
- * for encoding and storage in PEM format.
- */
-class CPKI
-{
- public:
- CPKI();
- ~CPKI();
-
- public:
-
- /**
- * exports a certificate and associated private key to the
- * specified file.
- * @param i_pCertificate a pointer to an instance of a certificate
- * @param i_pPrivateKey a pointer to an instance of a private key
- * @param i_pcFileName the name of the file to store the cert and private key
- * @param i_sPassphrase optional but when provided supplies a
- * pass phrase to use for encrypting the private key. The cipher
- * used for encryption is determined by the underlying implementation
- * which for the reference implementation uses triple DES by default.
- * @param i_eFileFormat the encoding format to use for the certificate and private key
- */
- bool ExportCertAndKeyToFile(
- CCertificate* const i_pCertificate,
- CPrivateKey* const i_pPrivateKey,
- const char* const i_pcFileName,
- const char* const i_sPassphrase,
- EnumPKIFileFormat i_eFileFormat );
-
- private:
-
- int m_iKeyLength;
-
- CCertificate *m_pCACertificate;
- CPrivateKey *m_pCAPrivateKey;
- };
-
-#endif //K_KMSAgentPKICommon_h
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentPKIKey.cpp b/usr/src/lib/libkmsagent/common/KMSAgentPKIKey.cpp
deleted file mode 100644
index a50446739a..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentPKIKey.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentPKIKey.cpp
- */
-#include <stdio.h>
-
-#include "SYSCommon.h"
-#include "KMSAgentPKICommon.h"
-#include "KMSAgentPKIimpl.h"
-
-///////////////////////////////////////////////////////////////////////////////////////
-// public key methods
-///////////////////////////////////////////////////////////////////////////////////////
-CPublicKey::CPublicKey()
-{
- m_pPublicKeyImpl = InitializePKeyImpl();
-
- FATAL_ASSERT( m_pPublicKeyImpl != NULL );
-
-}
-
-/**
- * This method saves public key into a buffer,
- * it also returns the actual used buffer length.
- * @param i_pcBuffer Buffer to receive public key
- * @param i_iBufferLength length of the buffer provided
- * @param o_pActualLength actual length of the public key stored into the buffer
- * @param i_iFormat key format, @see EnumPKIFileFormat
- */
-bool CPublicKey::Save( unsigned char * const i_pcBuffer,
- int i_iBufferLength,
- int * const o_pActualLength,
- int i_iFormat )
-{
- return SavePublicKeyToBuffer( m_pPublicKeyImpl,
- i_pcBuffer,
- i_iBufferLength,
- o_pActualLength,
- i_iFormat );
-}
-
-bool CPublicKey::Load(unsigned char * const i_pcBuffer,
- int i_iLength,
- int i_iFormat)
-{
- return LoadPublicKeyFromBuffer( m_pPublicKeyImpl,
- i_pcBuffer,
- i_iLength,
- i_iFormat );
-}
-
-bool CPublicKey::Encrypt (int i_iLength,
- const unsigned char * const i_pcPlainText,
- unsigned char * const o_pcCypherText,
- int * const o_pActualLength)
-{
- return PublicKeyEncrypt(i_iLength,i_pcPlainText,o_pcCypherText,o_pActualLength, m_pPublicKeyImpl );
-}
-
-CPublicKey::~CPublicKey()
-{
- if(m_pPublicKeyImpl != NULL)
- {
- FinalizePKeyImpl( m_pPublicKeyImpl );
- }
-}
-
-///////////////////////////////////////////////////////////////////////////////////////
-// private key methods
-///////////////////////////////////////////////////////////////////////////////////////
-
-CPrivateKey::CPrivateKey()
-{
- m_pPKeyImpl = InitializePKeyImpl();
-
- FATAL_ASSERT( m_pPKeyImpl != NULL );
-
-}
-
-/**
- * This method saves private key into a buffer,
- * it also returns the actual used buffer length.
- */
-bool CPrivateKey::Save( unsigned char * const i_pcBuffer,
- int i_iBufferLength,
- int * const o_pActualLength,
- const char * const i_pPassphrase,
- int i_iFormat )
-{
- return SavePrivateKeyToBuffer(m_pPKeyImpl,
- i_pcBuffer,
- i_iBufferLength,
- o_pActualLength,
- i_pPassphrase,
- i_iFormat );
-}
-
-bool CPrivateKey::Load(unsigned char * const i_pcBuffer,
- int i_iLength,
- const char * const i_pPassphrase,
- int i_iFormat)
-{
- return LoadPrivateKeyFromBuffer( m_pPKeyImpl,
- i_pcBuffer,
- i_iLength,
- i_pPassphrase,
- i_iFormat );
-}
-
-CPrivateKey::~CPrivateKey()
-{
- if(m_pPKeyImpl != NULL)
- {
- FinalizePKeyImpl( m_pPKeyImpl );
- }
-}
-#ifdef KMSUSERPKCS12
-void
-*CPrivateKey::GetNative()
-{
- return GetPKey(m_pPKeyImpl);
-}
-void
-CPrivateKey::SetNative(void *pKey)
-{
- SetPKey(m_pPKeyImpl, pKey);
- return;
-}
-#endif
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentPKIKeyOpenSSL.cpp b/usr/src/lib/libkmsagent/common/KMSAgentPKIKeyOpenSSL.cpp
deleted file mode 100644
index d66f185296..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentPKIKeyOpenSSL.cpp
+++ /dev/null
@@ -1,412 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentPKIKeyOpenSSL.cpp
- */
-
-#include <stdio.h>
-#include <openssl/bio.h>
-#include <openssl/pem.h>
-#include <openssl/rsa.h>
-
-#include "SYSCommon.h"
-#include "KMSAgentPKIimpl.h"
-
-typedef struct PKeyControl
-{
- EVP_PKEY* pPKey;
-} PKeyControl;
-
-void * InitializePKeyImpl()
-{
- PKeyControl *pPKeyControl =
- (PKeyControl *) malloc(sizeof(PKeyControl));
-
- if ( pPKeyControl != NULL )
- {
- pPKeyControl->pPKey = NULL;
- }
-
- return pPKeyControl;
-}
-
-void FinalizePKeyImpl( void * i_pPKeyImpl )
-{
- if ( i_pPKeyImpl != NULL )
- {
- free(i_pPKeyImpl);
- }
-}
-
-#ifdef KMSUSERPKCS12
-void *GetPKey(void *i_pPKeyImpl) {
- PKeyControl* pPKeyControl = (PKeyControl*) i_pPKeyImpl;
- return ((void *)pPKeyControl->pPKey);
-}
-
-void SetPKey(void *i_pPKeyImpl, void *pKey) {
- PKeyControl* pPKeyControl = (PKeyControl*) i_pPKeyImpl;
- pPKeyControl->pPKey = (EVP_PKEY *)pKey;
- return;
-}
-#endif
-
-/**
- * export the private key to a memory BIO, if error, return NULL
- */
-BIO* SavePrivateKeyToMemoryBIO(PKeyControl* const i_pPKeyControl,
- const char * const i_pPassphrase)
-{
- BIO *pMemBio = NULL;
- const EVP_CIPHER *pCipher = NULL;
- int iReturn;
-
- // set cipher, if passphrase is not empty
- if(i_pPassphrase != NULL)
- {
- pCipher= EVP_des_ede3_cbc(); //NULL means no password protection
- }
-
- // create memory BIO
- pMemBio = BIO_new(BIO_s_mem());
-
- if(pMemBio == NULL)
- {
- //fixme: log -- no memory
- return NULL;
- }
-
- iReturn = PEM_write_bio_PrivateKey
- (pMemBio,
- i_pPKeyControl->pPKey,
- pCipher,
- NULL,0,NULL, (char*) i_pPassphrase);
-
- if(!iReturn) // return 0: means error occurs
- {
- //fixme: log -- could not export private key
- BIO_free(pMemBio);
- return NULL;
- }
-
- return pMemBio;
-}
-
-bool SavePrivateKeyToBuffer(
- void * const i_pPKeyImpl,
- unsigned char * const i_pcBuffer,
- int i_iBufferLength,
- int * const o_pActualLength,
- const char * const i_pPassphrase,
- int i_iFormat)
-{
- PKeyControl* pPKeyControl = (PKeyControl*) i_pPKeyImpl;
-
- FATAL_ASSERT( pPKeyControl &&
- i_pcBuffer &&
- i_iBufferLength > 0 &&
- o_pActualLength );
-
- BIO *pMemBio = NULL;
- char *pData = NULL;
- int iLength;
-
- // create memory BIO
- pMemBio = SavePrivateKeyToMemoryBIO( pPKeyControl, i_pPassphrase );
-
- if(pMemBio == NULL)
- {
- //fixme: log -- no memory
- return false;
- }
-
- iLength = BIO_get_mem_data(pMemBio, &pData);
-
- // If the output buffer is a string, it needs to be NULL terminated
- // So always append a NULL to the output
- if(iLength + 1 > i_iBufferLength)
- {
- //fixme: log -- buffer too small
- BIO_free(pMemBio);
- return false;
- }
- // copy the data to given buffer
- memcpy(i_pcBuffer, pData, iLength);
- // NULL terminate the string
- i_pcBuffer[iLength] = '\0';
- *o_pActualLength = iLength;
-
- // free memory
- BIO_free(pMemBio);
-
- return true;
-}
-
-/**
- * import the private key from a BIO, if error, return NULL
- */
-bool LoadPrivateKeyFromBIO(PKeyControl* const io_pPKeyControl,
- BIO *i_pBio,
- char *i_pPassphrase )
-{
- if (io_pPKeyControl == NULL)
- {
- return false;
- }
-
- EVP_PKEY *pKey = NULL;
-
- if(i_pBio == NULL)
- {
- return false;
- }
-
- if ( io_pPKeyControl != NULL && io_pPKeyControl->pPKey != NULL )
- {
- return false; // do not allow overwrite
- }
-
- pKey=PEM_read_bio_PrivateKey(i_pBio,NULL,NULL,i_pPassphrase);
- if (pKey == NULL)
- {
- // fixme: log: invalid private key format or passphrase
- return false;
- }
-
- io_pPKeyControl->pPKey = pKey;
-
- return true;
-}
-
-bool LoadPrivateKeyFromBuffer(
- void * const i_pPKeyImpl,
- unsigned char * i_pcBuffer,
- int i_iLength,
- const char * const i_pPassphrase,
- int i_iFormat)
-{
- PKeyControl* const pPKeyControl = (PKeyControl*) i_pPKeyImpl;
-
- FATAL_ASSERT( i_pPKeyImpl && i_pcBuffer );
-
- bool bReturn;
- BIO *pMemBio;
- // create a mem bio from the given buffer
- // Note that BIO_new_mem_buf() creates a BIO which never
- // destroy the memory attached to it.
- pMemBio = BIO_new_mem_buf(i_pcBuffer, i_iLength);
- if (pMemBio == NULL)
- {
- //fixme: log -- no memory
- return false;
- }
- bReturn = LoadPrivateKeyFromBIO( pPKeyControl,
- pMemBio, (char *)i_pPassphrase );
-
- BIO_free(pMemBio);
-
- return bReturn;
-}
-
-/**
- * export the public key to a memory BIO, if error, return NULL
- */
-BIO* SavePublicKeyToMemoryBIO(PKeyControl* const i_pPublicKeyControl )
-{
- BIO *pMemBio = NULL;
-
- int iReturn;
-
- // create memory BIO
- pMemBio = BIO_new(BIO_s_mem());
-
- if(pMemBio == NULL)
- {
- //fixme: log -- no memory
- return NULL;
- }
-
- iReturn = PEM_write_bio_PUBKEY(pMemBio,
- i_pPublicKeyControl->pPKey );
-
- if(!iReturn) // return 0: means error occurs
- {
- //fixme: log -- could not export private key
- BIO_free(pMemBio);
- return NULL;
- }
-
- return pMemBio;
-}
-
-bool SavePublicKeyToBuffer(
- void * const i_pPKeyImpl,
- unsigned char * const i_pcBuffer,
- int i_iBufferLength,
- int * const o_pActualLength,
- int i_iFormat)
-{
- PKeyControl* pPublicKeyControl = (PKeyControl*) i_pPKeyImpl;
-
- FATAL_ASSERT( pPublicKeyControl &&
- i_pcBuffer &&
- i_iBufferLength > 0 &&
- o_pActualLength );
-
- BIO *pMemBio = NULL;
- char *pData = NULL;
- int iLength;
-
- // create memory BIO
- pMemBio = SavePublicKeyToMemoryBIO( pPublicKeyControl );
-
- if(pMemBio == NULL)
- {
- return false;
- }
-
- iLength = BIO_get_mem_data(pMemBio, &pData);
-
- // If the output buffer is a string, it needs to be NULL terminated
- // So always append a NULL to the output
- if(iLength + 1 > i_iBufferLength)
- {
- BIO_free(pMemBio);
- return false;
- }
- // copy the data to given buffer
- memcpy(i_pcBuffer, pData, iLength);
- // NULL terminate the string
- i_pcBuffer[iLength] = '\0';
- *o_pActualLength = iLength;
-
- // free memory
- BIO_free(pMemBio);
-
- return true;
-}
-
-/**
- * import the public key from a BIO, if error, return NULL
- */
-bool LoadPublicKeyFromBIO(PKeyControl* const io_pPublicKeyControl,
- BIO *i_pBio )
-{
- EVP_PKEY *pKey = NULL;
-
- if(io_pPublicKeyControl == NULL)
- {
- return false;
- }
-
- if(i_pBio == NULL)
- {
- return false;
- }
-
- if ( io_pPublicKeyControl != NULL && io_pPublicKeyControl->pPKey != NULL )
- {
- return false; // do not allow overwrite
- }
-
- pKey = PEM_read_bio_PUBKEY(i_pBio, NULL, NULL, NULL);
- if (pKey == NULL)
- {
- // fixme: log: invalid public key format or passphrase
- return false;
- }
-
- io_pPublicKeyControl->pPKey = pKey;
-
- return true;
-}
-
-bool LoadPublicKeyFromBuffer(
- void * const i_pPublicKeyImpl,
- unsigned char * i_pcBuffer,
- int i_iLength,
- int i_iFormat)
-{
- PKeyControl* const pPublicKeyControl = (PKeyControl*) i_pPublicKeyImpl;
-
- FATAL_ASSERT( i_pPublicKeyImpl && i_pcBuffer );
-
- bool bReturn;
- BIO *pMemBio;
- // create a mem bio from the given buffer
- // Note that BIO_new_mem_buf() creates a BIO which never
- // destroy the memory attached to it.
- pMemBio = BIO_new_mem_buf(i_pcBuffer, i_iLength);
- if (pMemBio == NULL)
- {
- //fixme: log -- no memory
- return false;
- }
- bReturn = LoadPublicKeyFromBIO( pPublicKeyControl,
- pMemBio );
-
- BIO_free(pMemBio);
-
- return bReturn;
-}
-
-bool PublicKeyEncrypt (int i_iLength,
- const unsigned char * const i_pcPlainText,
- unsigned char * const o_pcCypherText,
- int * const o_pActualLength,
- void * pPKeyControl )
-{
- FATAL_ASSERT( i_pcPlainText );
- FATAL_ASSERT( o_pcCypherText );
- FATAL_ASSERT( o_pActualLength );
- FATAL_ASSERT( pPKeyControl );
-
- PKeyControl *pKeyControl = (PKeyControl *)pPKeyControl;
- EVP_PKEY * pEVP_PKEY = pKeyControl->pPKey;
- RSA * pRSAPublicKey = pEVP_PKEY->pkey.rsa;
-
-//#if defined(DEBUG)
-// RSA_print_fp(stdout, pRSAPublicKey, 0);
-// printf("PublicKeyEncrypt(): RSA_size()=%d, cyphertextLen=%d\n",
-// RSA_size(pRSAPublicKey),
-// i_iLength);
-//#endif
-
- *o_pActualLength = RSA_public_encrypt(i_iLength,
- i_pcPlainText,
- o_pcCypherText,
- pRSAPublicKey,
- RSA_PKCS1_PADDING);
-
- if ( *o_pActualLength < 0 )
- {
- return false;
- }
- else
- {
- return true;
- }
-}
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentPKIimpl.h b/usr/src/lib/libkmsagent/common/KMSAgentPKIimpl.h
deleted file mode 100644
index 4e506edbe0..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentPKIimpl.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentPKIimpl.h
- */
-
-#ifndef K_KMSAgentPKIimpl_h
-#define K_KMSAgentPKIimpl_h
-
-/**
- * initializes the implementation environment for an X509
- * certificate implementation and returns an opague handle to any
- * resources that should be freed when use of the X.509
- * implementation is complete. This handle is used on all
- * subsequent calls that may need to access this resource.
- */
-void * InitializeCertImpl();
-
-/**
- * Save the X.509 Certificate in PEM format to the specified filename
- */
-bool SaveX509CertTofile(
- void* const i_pImplResource,
- const char * const i_pcFileName );
-
-/**
- * Save the X.509Certificate in PEM format to the specified buffer
- * and set the length of the certificate in the location referenced
- * by o_pActualLength
- */
-bool SaveX509CertToBuffer(
- void* const i_pImplResource,
- unsigned char * const i_pcBuffer,
- int i_iBufferLength,
- int * const o_pActualLength );
-
-/**
- * loads the X.509 certificate from i_pcFileName and keeps a reference to it
- * via i_pImplResource
- */
-bool LoadX509CertFromFile(
- void* const i_pImplResource,
- const char * const i_pcFileName );
-
-/**
- * load the X.509 certificate from i_pX509Buffer and keeps a reference to it
- * via i_pImplResource
- */
-bool LoadX509CertFromBuffer(
- void* const i_pImplResource,
- void* const i_pX509Cert,
- int i_iLength);
-
-/**
- * frees any resources allocated by <code>InitializeCertImpl</code>
- */
-void FinalizeCertImpl(
- void* i_pImplResource);
-
-/**
- * print the X.509 certificate to stdout
- */
-bool PrintX509Cert( void* const i_pImplResource );
-
-/**
- * initializes the implementation environment for a public or private key
- * and returns an opague handle to any resources that should be freed
- * when use of the key is complete. This handle is used
- * on all subsequent calls that may need to access this resource.
- */
-void * InitializePKeyImpl();
-
-/**
- * frees any resources allocated by <code>InitializePKeyImpl</code>
- */
-void FinalizePKeyImpl( void * i_pPKeyImpl );
-
-#ifdef KMSUSERPKCS12
-void *GetPKey( void *i_pImplResource);
-void SetPKey( void *i_pImplResource, void *i_pPKey);
-void *GetCert( void *i_pImplResource);
-void SetCert( void *i_pImplResource, void *cert);
-#endif
-
-/**
- * Stores the private key in a memory buffer referenced by
- * i_pcBuffer with the length of the key being stored in the area
- * referenced by o_pActualLength.
- *
- */
-bool SavePrivateKeyToBuffer(
- void * const i_pPKeyImpl,
- unsigned char * const i_pcBuffer,
- int i_iBufferLength,
- int * const o_pActualLength,
- const char * const i_pPassphrase,
- int i_iFormat);
-
-/**
- * load the private key into this object from the specified buffer
- */
-bool LoadPrivateKeyFromBuffer(
- void * const i_pPKeyImpl,
- unsigned char * i_pcBuffer,
- int i_iLength,
- const char * const i_pPassphrase,
- int i_iFormat);
-
-/**
- * Stores the pubic key in a memory buffer referenced by
- * i_pcBuffer with the length of the key being stored in the area
- * referenced by o_pActualLength.
- *
- */
-bool SavePublicKeyToBuffer(
- void * const i_pPKeyImpl,
- unsigned char * const i_pcBuffer,
- int i_iBufferLength,
- int * const o_pActualLength,
- int i_iFormat);
-
-/**
- * load a public key into this object from the specified buffer
- */
-bool LoadPublicKeyFromBuffer(
- void * const i_pPKeyImpl,
- unsigned char * i_pcBuffer,
- int i_iLength,
- int i_iFormat);
-
-/**
- * encrypt the plaintext using RSA encryption with the RSA public
- * key provided and return resulting cyphertext
- */
-bool PublicKeyEncrypt (int i_iLength,
- const unsigned char * const i_pcPlainText,
- unsigned char * const o_pcCypherText,
- int * const o_pActualLength,
- void * i_pRSAPublicKey);
-
-#endif // K_KMSAgentPKIimpl_h
-
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentSoapUtilities.cpp b/usr/src/lib/libkmsagent/common/KMSAgentSoapUtilities.cpp
deleted file mode 100644
index a8ca63902a..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentSoapUtilities.cpp
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#include "KMSAgentSoapUtilities.h"
-#include "KMSAgentStringUtilities.h"
-#include "ApplianceParameters.h"
-
-#include "stdsoap2.h"
-
-/**
- * Get the peer's network address
- */
-void GetPeerNetworkAddress (char* const o_psPeerNetworkAddress,
- struct soap* i_pSoap)
-{
- FATAL_ASSERT(o_psPeerNetworkAddress);
-
- if (strlen(i_pSoap->host) > 0)
- {
- // IPv4 addresses can appear as ::ffff:a.b.c.d, strip off the prefix
- if (strncmp(i_pSoap->host, "::ffff:", 7) == 0)
- {
- strncpy(o_psPeerNetworkAddress, &i_pSoap->host[7], g_iMAX_PEER_NETWORK_ADDRESS_LENGTH);
- o_psPeerNetworkAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH-1] = '\0';
- return;
- }
- strncpy(o_psPeerNetworkAddress, i_pSoap->host, g_iMAX_PEER_NETWORK_ADDRESS_LENGTH);
- o_psPeerNetworkAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH-1] = '\0';
- return;
- }
-
- // i_pSoap->ip == 0 could not represent a valid
- // Peer Network Address (IPv4), check i_pSoap->session_host
- // for an IPv6 address
- if (i_pSoap->ip == 0)
- {
-#ifndef METAWARE
- if (strlen(i_pSoap->session_host) > 0)
- {
- // IPv4 addresses can appear as ::ffff:a.b.c.d, strip off the
- // prefix
-
- if (strncmp(i_pSoap->session_host, "::ffff:", 7) == 0)
- {
- strncpy(o_psPeerNetworkAddress, &i_pSoap->session_host[7], g_iMAX_PEER_NETWORK_ADDRESS_LENGTH);
- o_psPeerNetworkAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH-1] = '\0';
- return;
- }
-
- strncpy(o_psPeerNetworkAddress, i_pSoap->session_host, g_iMAX_PEER_NETWORK_ADDRESS_LENGTH);
- o_psPeerNetworkAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH-1] = '\0';
- return;
- }
-#endif
- strcpy(o_psPeerNetworkAddress, "");
- return;
- }
-
- K_snprintf(o_psPeerNetworkAddress,
- g_iMAX_PEER_NETWORK_ADDRESS_LENGTH,
- "%d.%d.%d.%d",
- (int) (i_pSoap->ip >> 24)&0xFF,
- (int) (i_pSoap->ip >> 16)&0xFF,
- (int) (i_pSoap->ip >> 8)&0xFF,
- (int) (i_pSoap->ip)&0xFF);
-
- return;
-}
-
-/**
- * Get the soap fault code and print it
- */
-void GetSoapFault(char* o_psFaultMessage,
- struct soap *i_pstSoap)
-{
- FATAL_ASSERT( i_pstSoap );
-
- strncpy (o_psFaultMessage, " SoapFaultCode=",g_iMAX_SOAP_FAULT_MESSAGE_LENGTH);
- o_psFaultMessage[g_iMAX_SOAP_FAULT_MESSAGE_LENGTH-1] = '\0';
- strncat (o_psFaultMessage, GET_SOAP_FAULTCODE(i_pstSoap),
- g_iMAX_SOAP_FAULT_MESSAGE_LENGTH-strlen(o_psFaultMessage));
- strncat (o_psFaultMessage, " SoapFaultString=",
- g_iMAX_SOAP_FAULT_MESSAGE_LENGTH-strlen(o_psFaultMessage));
- strncat (o_psFaultMessage, GET_SOAP_FAULTSTRING(i_pstSoap),
- g_iMAX_SOAP_FAULT_MESSAGE_LENGTH-strlen(o_psFaultMessage));
- strncat (o_psFaultMessage, " SoapFaultDetail=",
- g_iMAX_SOAP_FAULT_MESSAGE_LENGTH-strlen(o_psFaultMessage));
- strncat (o_psFaultMessage, GET_SOAP_FAULTDETAIL(i_pstSoap),
- g_iMAX_SOAP_FAULT_MESSAGE_LENGTH-strlen(o_psFaultMessage));
-
- return;
-}
-
-bool PutBinaryIntoSoapBinary(
- struct soap* i_pSoap,
- const unsigned char* i_pBinary,
- int i_iBinarySize,
- unsigned char*& o_pSoapBinary,
- int& o_iSoapBinarySize )
-{
- FATAL_ASSERT( i_pSoap );
-
- o_pSoapBinary = 0;
- o_iSoapBinarySize = 0;
-
- if ( i_iBinarySize > 0 )
- {
- o_pSoapBinary =
- (unsigned char*)soap_malloc(
- i_pSoap,
- sizeof(unsigned char) * i_iBinarySize);
-
- if ( !o_pSoapBinary )
- {
- // No log for out of memory condition
-
- return false;
- }
-
- o_iSoapBinarySize = i_iBinarySize;
-
- memcpy(o_pSoapBinary, i_pBinary, i_iBinarySize);
- }
-
- return true;
-}
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentSoapUtilities.h b/usr/src/lib/libkmsagent/common/KMSAgentSoapUtilities.h
deleted file mode 100644
index 510839eb41..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentSoapUtilities.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentSoapUtilities.h
- */
-
-#ifndef KMSAgentSoapUtilities_h
-#define KMSAgentSoapUtilities_h
-
-/**
- * maximum length of a network IP address
- */
-static const int g_iMAX_PEER_NETWORK_ADDRESS_LENGTH = 50;
-
-/**
- * maximum length of a soap fault message string
- */
-static const int g_iMAX_SOAP_FAULT_MESSAGE_LENGTH = 256;
-
-//BEN CHANGE - removed predeclaration of struct soap
-// need the real declaration
-//struct soap;
-
-/**
- * copies at most g_iMAX_PEER_NETWORK_ADDRESS_LENGTH characters
- * from the peer's network address from the soap runtime context.
- * <code>o_psPeerNetworkAddress</code> should be at least
- * <code>g_iMAX_PEER_NETWORK_ADDRESS_LENGTH</code> in length.
- */
-void GetPeerNetworkAddress( char* const o_psPeerNetworkAddress,
- struct soap* i_pSoap );
-
-/**
- * creates a soap fault message and stores it in o_psFaultMessage. The fault message
- * has the form: " SoapFaultCode=%s SoapFaultString=%s SoapFaultDetail=%s" with the
- * appropriate values substitued for %s from the soap runtime.
- * @param o_psFaultMessage a buffer for the fault message that is at least
- * <code>g_iMAX_SOAP_FAULT_MESSAGE_LENGTH</code> in size.
- * @param i_pstSoap the soap runtime context to process for fault information
- */
-// BEN - removed const
-void GetSoapFault(char* o_psFaultMessage,
- struct soap *i_pstSoap);
-
-bool PutBinaryIntoSoapBinary(
- struct soap* i_pSoap,
- const unsigned char* i_pBinary,
- int i_iBinarySize,
- unsigned char*& o_pSoapBinary,
- int& o_iSoapBinarySize );
-
-#endif //KMSAgentSoapUtilities_h
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentStorage.cpp b/usr/src/lib/libkmsagent/common/KMSAgentStorage.cpp
deleted file mode 100644
index 586144c7a0..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentStorage.cpp
+++ /dev/null
@@ -1,1575 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentStorage.cpp
- * This file provides an implementation of the KMSAgentStorage.h
- * interface utilizing a filesystem for storage of KMS Client
- * Profile elements.
- *
- * For storage of Certificates and Private key material the PKICommon
- * interface is used.
- */
-
-#include <stdio.h>
-#include <string.h>
-
-#ifndef METAWARE
-#include <errno.h>
-#endif
-
-#ifdef K_SOLARIS_PLATFORM
-#ifndef SOLARIS10
-#include <cryptoutil.h>
-#endif
-#include <pthread.h>
-#include <fcntl.h>
-#endif
-
-#include "stdsoap2.h"
-
-#include "KMSClientProfile.h" // must be before agentstorage
-#include "KMSAgentPKICommon.h" // must be before agentstorage
-#include "KMSAgentStorage.h"
-
-#include "SYSCommon.h"
-#include "AutoMutex.h"
-#include "KMSAuditLogger.h"
-#include "KMSClientProfileImpl.h"
-
-#include "KMSAgent_direct.h"
-#ifdef K_SOLARIS_PLATFORM
-#include "KMSAgent.h"
-#endif
-#include "k_setupssl.h" // K_ssl_client_context
-
-#ifdef METAWARE
-extern "C" int K_ssl_client_context(struct soap *soap,
- int flags,
- const char *keyfile, // NULL - SERVER
- const char *password, // NULL - SERVER
- const char *cafile,
- const char *capath, // ALWAYS NULL
- const char *randfile); // ALWAYS NULL
-#include "debug.h"
-#endif
-
-
-#define CA_CERTIFICATE_FILE "ca.crt"
-#define CLIENT_KEY_FILE "clientkey.pem"
-
-#define PROFILE_CONFIG_FILE "profile.cfg"
-#define PROFILE_CLUSTER_CONFIG_FILE "cluster.cfg"
-
-static char g_sWorkingDirectory[KMS_MAX_PATH_LENGTH+1];
-static char g_sStringbuf[10000]; // too large to be on the 9840D stack
-
-static void BuildFullProfilePathWithName(utf8cstr o_pProfilePath,
- const char* const i_pWorkingDirectory,
- const char* const i_pProfileName)
-{
- int len;
- FATAL_ASSERT( o_pProfilePath );
- FATAL_ASSERT( i_pWorkingDirectory );
- FATAL_ASSERT( i_pProfileName );
- FATAL_ASSERT( (strlen(i_pWorkingDirectory) > 0) );
- FATAL_ASSERT( (strlen(i_pProfileName) > 0) );
-
-#if defined(DEBUG_TRACE) && defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, BuildFullProfilePathWithName );
-#endif
-
- strncpy(o_pProfilePath, i_pWorkingDirectory,
- KMS_MAX_FILE_NAME );
-
- if ( o_pProfilePath[ strlen(o_pProfilePath) -1 ] != PATH_SEPARATOR )
- {
- len = strlen(o_pProfilePath);
- o_pProfilePath[ len ] = PATH_SEPARATOR ;
- o_pProfilePath[ len + 1 ] = '\0';
- }
-
- strncat( o_pProfilePath, i_pProfileName, KMS_MAX_FILE_NAME );
- len = strlen(o_pProfilePath);
- o_pProfilePath[ len ] = PATH_SEPARATOR ;
- o_pProfilePath[ len +1 ] = '\0';
-
- return;
-}
-
-static void BuildFullProfilePath(utf8cstr o_sProfilePath,
- const char* const i_pWorkingDirectory,
- const char* const i_pProfileName)
-{
- FATAL_ASSERT( o_sProfilePath );
- FATAL_ASSERT( i_pWorkingDirectory );
- FATAL_ASSERT( i_pProfileName );
- FATAL_ASSERT( (strlen(i_pProfileName) > 0) );
-
- BuildFullProfilePathWithName( o_sProfilePath,
- i_pWorkingDirectory,
- i_pProfileName );
-
- return;
-}
-
-#ifdef K_SOLARIS_PLATFORM
-static struct flock cfgfl = {
- 0, 0, 0, 0, 0, 0,
- {0, 0, 0, 0}
-};
-static struct flock clusterfl = {
- 0, 0, 0, 0, 0, 0,
- {0, 0, 0, 0}
-};
-
-pthread_mutex_t cfg_mutex = PTHREAD_MUTEX_INITIALIZER;
-pthread_mutex_t cluster_mutex = PTHREAD_MUTEX_INITIALIZER;
-pthread_mutex_t keyfile_mutex = PTHREAD_MUTEX_INITIALIZER;
-
-static int
-flock_fd(int fd, int cmd, struct flock *fl, pthread_mutex_t *mutex)
-{
- int ret = 0;
-
- (void) pthread_mutex_lock(mutex);
-
- fl->l_type = cmd;
-
- while ((ret = fcntl(fd, F_SETLKW, fl)) == -1) {
- if (errno != EINTR)
- break;
- }
- (void) pthread_mutex_unlock(mutex);
- return (ret);
-}
-
-#endif
-
-static bool Profile_WriteConfigFile(KMSClientProfile *i_pProfile,
- const char *i_pFileName)
-{
- FATAL_ASSERT( i_pProfile );
- FATAL_ASSERT( i_pFileName );
-
- CAutoMutex oAutoMutex( (K_MUTEX_HANDLE)i_pProfile->m_pLock );
-
-#if defined(DEBUG_TRACE) && defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, Profile_WriteConfigFile );
-#endif
-
- char *sp = g_sStringbuf;
- size_t bytesWritten = 0;
-
- // save config parameters
-
- myFILE *fp = fopen(i_pFileName, "w");
- if(fp == NULL)
- {
- LogError(i_pProfile,
- AUDIT_PROFILE_WRITE_CONFIG_FILE_OPEN_CONFIGURATION_FILE_FAILED,
- NULL,
- NULL,
- i_pFileName);
-
- return false;
- }
-
-#ifdef K_SOLARIS_PLATFORM
- int fd = fileno(fp);
- (void) flock_fd(fd, F_WRLCK, &cfgfl, &cfg_mutex);
-#endif
-
-const char* const sProfileName = i_pProfile->m_wsProfileName;
-
- sp += K_snprintf(sp, sizeof(i_pProfile->m_wsProfileName), "ProfileName=%s\n", sProfileName);
-
- sp += K_snprintf(sp, sizeof(i_pProfile->m_wsProfileName), "AgentID=%s\n", i_pProfile->m_wsEntityID);
-
- sp += K_snprintf(sp, sizeof(i_pProfile->m_wsProfileName), "ClusterDiscoveryFrequency=%d\n",
- i_pProfile->m_iClusterDiscoveryFrequency);
-
- sp += K_snprintf(sp, sizeof(i_pProfile->m_wsProfileName), "CAServicePortNumber=%d\n",
- i_pProfile->m_iPortForCAService);
-
- sp += K_snprintf(sp, sizeof(i_pProfile->m_wsProfileName), "CertificateServicePortNumber=%d\n",
- i_pProfile->m_iPortForCertificateService);
-
- if(i_pProfile->m_iPortForAgentService != 0)
- {
- sp += K_snprintf(sp, sizeof(i_pProfile->m_wsProfileName), "AgentServicePortNumber=%d\n",
- i_pProfile->m_iPortForAgentService);
- }
-
- if(i_pProfile->m_iPortForDiscoveryService != 0)
- {
- sp += K_snprintf(sp, sizeof(i_pProfile->m_wsProfileName), "DiscoveryServicePortNumber=%d\n",
- i_pProfile->m_iPortForDiscoveryService);
- }
-
- sp += K_snprintf(sp, sizeof(i_pProfile->m_wsProfileName), "ApplianceAddress=%s\n", i_pProfile->m_wsApplianceAddress);
-
- sp += K_snprintf(sp, sizeof(i_pProfile->m_wsProfileName), "Timeout=%d\n", i_pProfile->m_iTransactionTimeout);
-
- sp += K_snprintf(sp, sizeof(i_pProfile->m_wsProfileName), "FailoverLimt=%d\n", i_pProfile->m_iFailoverLimit);
-
- sp += K_snprintf(sp, sizeof(i_pProfile->m_wsProfileName), "HexHashedPassphrase=%s\n", i_pProfile->m_sHexHashedPassphrase);
-
- bytesWritten = fputs(g_sStringbuf, fp);
-
-#ifdef K_SOLARIS_PLATFORM
- (void) flock_fd(fd, F_UNLCK, &cfgfl, &cfg_mutex);
-#endif
-
-#ifndef WIN32
- if ( strlen(g_sStringbuf) != bytesWritten )
-#else
- if ( bytesWritten < 0 )
-#endif
- {
- fclose(fp);
- return false;
- }
- fclose(fp);
-
- return true;
-}
-
-static bool Profile_ReadConfigFile
-( KMSClientProfile *i_pProfile,
- const char *i_pFileName)
-{
- FATAL_ASSERT( i_pProfile );
- FATAL_ASSERT( i_pFileName );
-
-#if defined(DEBUG_TRACE) && defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, Profile_ReadConfigFile ) ;
-#endif
-
- CAutoMutex oAutoMutex( (K_MUTEX_HANDLE)i_pProfile->m_pLock );
-
- const int iMaxLineSize = 1024;
-
- myFILE *fp;
- char acBuffer[iMaxLineSize+1];
-
- fp = fopen(i_pFileName, "r");
- if(fp == NULL)
- {
- LogError(i_pProfile,
- AUDIT_PROFILE_READ_CONFIG_FILE_OPEN_CONFIGURATION_FILE_FAILED,
- NULL,
- NULL,
- i_pFileName);
- return false;
- }
-
-#ifdef K_SOLARIS_PLATFORM
- int fd = fileno(fp);
- (void) flock_fd(fd, F_RDLCK, &cfgfl, &cfg_mutex);
-#endif
- // read file one line by one line
- while(1)
- {
- int i;
- char *pName, *pValue;
-
- memset(acBuffer, 0, iMaxLineSize+1);
-
- //---------------------------
- // get info from the file
- //---------------------------
- if(fgets(acBuffer, iMaxLineSize+1, fp) == NULL)
- break;
-
- if(strlen(acBuffer) < 3)
- continue;
-
- if(acBuffer[0] == '#' ||
- acBuffer[0] == ';' ||
- acBuffer[0] == '[') // jump comments
- continue;
-
- pName = acBuffer;
- pValue = NULL;
-
- for(i = 0; acBuffer[i] != '\0'; i++)
- {
- if(acBuffer[i] == '=')
- pValue = acBuffer + i + 1;
-
- if(acBuffer[i] == '=' ||
- acBuffer[i] == '\r' ||
- acBuffer[i] == '\n')
- acBuffer[i] = '\0';
- }
-
- if(pValue == NULL)
- {
- LogError(i_pProfile,
- AUDIT_PROFILE_READ_CONFIG_FILE_INVALID_CONFIGURATION_FILE_FORMAT,
- NULL,
- NULL,
- i_pFileName);
-#ifdef K_SOLARIS_PLATFORM
- (void) flock_fd(fd, F_UNLCK, &cfgfl, &cfg_mutex);
-#endif
- fclose(fp);
- return false;
- }
-
- if(strcmp(pName, "ProfileName") == 0)
- {
- utf8cstr wsValue = pValue;
- strncpy(i_pProfile->m_wsProfileName, wsValue, KMS_MAX_ENTITY_ID);
- i_pProfile->m_wsProfileName[KMS_MAX_ENTITY_ID] = 0;
- }
-
- if(strcmp(pName, "AgentID") == 0)
- {
- utf8cstr wsValue = pValue;
- strncpy(i_pProfile->m_wsEntityID, wsValue, KMS_MAX_ENTITY_ID);
- i_pProfile->m_wsEntityID[KMS_MAX_ENTITY_ID] = 0;
- }
-
- if(strcmp(pName, "ClusterDiscoveryFrequency") == 0)
- {
- sscanf(pValue, "%d", &(i_pProfile->m_iClusterDiscoveryFrequency));
- }
-
- if(strcmp(pName, "CAServicePortNumber") == 0)
- {
- sscanf(pValue, "%d", &(i_pProfile->m_iPortForCAService));
- }
-
- if(strcmp(pName, "CertificateServicePortNumber") == 0)
- {
- sscanf(pValue, "%d", &(i_pProfile->m_iPortForCertificateService));
- }
-
- if(strcmp(pName, "AgentServicePortNumber") == 0)
- {
- sscanf(pValue, "%d", &(i_pProfile->m_iPortForAgentService));
- }
-
- if(strcmp(pName, "DiscoveryServicePortNumber") == 0)
- {
- sscanf(pValue, "%d", &(i_pProfile->m_iPortForDiscoveryService));
- }
-
- if(strcmp(pName, "ApplianceAddress") == 0)
- {
- utf8cstr wsValue = pValue;
- strncpy(i_pProfile->m_wsApplianceAddress,
- wsValue, KMS_MAX_NETWORK_ADDRESS);
- i_pProfile->m_wsApplianceAddress[KMS_MAX_NETWORK_ADDRESS] = 0;
- }
-
- if(strcmp(pName, "Timeout") == 0)
- {
- sscanf(pValue, "%d", &(i_pProfile->m_iTransactionTimeout));
- }
-
- if(strcmp(pName, "FailoverLimt") == 0)
- {
- sscanf(pValue, "%d", &(i_pProfile->m_iFailoverLimit));
- }
-
- if(strcmp(pName, "HexHashedPassphrase") == 0)
- {
- sscanf(pValue, "%s", i_pProfile->m_sHexHashedPassphrase);
- }
- }
-
-#ifdef K_SOLARIS_PLATFORM
- (void) flock_fd(fd, F_UNLCK, &cfgfl, &cfg_mutex);
-#endif
- fclose(fp);
-
- return true;
-}
-
-
-
-
-
-/*! ProfileExists
- *
- */
-extern "C" bool ProfileExists(
- const char* const i_pWorkingDirectory,
- const char* const i_pProfileName)
-{
- FATAL_ASSERT( i_pWorkingDirectory );
- FATAL_ASSERT( i_pProfileName );
-
-#if defined(DEBUG_TRACE) && defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, ProfileExists );
-#endif
-
-
- // the profile is stored in the working folder
- strncpy( g_sWorkingDirectory,
- i_pWorkingDirectory,
- KMS_MAX_PATH_LENGTH );
-
- char sFullProfileDir[KMS_MAX_FILE_NAME+1];
- BuildFullProfilePath( sFullProfileDir,
- i_pWorkingDirectory,
- i_pProfileName );
-
- char sConfigFile[KMS_MAX_FILE_NAME+1] = "";
- strncpy( sConfigFile, sFullProfileDir, KMS_MAX_FILE_NAME );
- sConfigFile[KMS_MAX_FILE_NAME] = '\0';
- strncat( sConfigFile, PROFILE_CONFIG_FILE, KMS_MAX_FILE_NAME );
-
- // just try to open the file to test if it exists
-
- bool bProfileExists = false;
-
- myFILE* pfFile = fopen( sConfigFile, "rb" );
-
- if ( pfFile != NULL )
- {
- bProfileExists = true;
-
- fclose(pfFile);
- }
-
- return bProfileExists;
-}
-
-
-/*! CreateProfile
- *
- */
-bool CreateProfile(
- KMSClientProfile* const io_pProfile,
- const char* const i_pWorkingDirectory,
- const char* const i_pProfileName)
-{
- FATAL_ASSERT( io_pProfile );
- FATAL_ASSERT( i_pWorkingDirectory );
- FATAL_ASSERT( i_pProfileName );
- FATAL_ASSERT( (strlen(i_pProfileName) > 0) );
-
-#if defined(DEBUG_TRACE) && defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, CreateProfile );
-
-#endif
-
- bool bSuccess = false;
- CAutoMutex oAutoMutex( (K_MUTEX_HANDLE)io_pProfile->m_pLock );
-
- char sFullProfileDir[KMS_MAX_FILE_NAME];
- BuildFullProfilePath( sFullProfileDir,
- i_pWorkingDirectory,
- i_pProfileName );
-
- bSuccess = ( K_CreateDirectory( sFullProfileDir ) == 0 );
-
- if ( !bSuccess )
- {
- Log(AUDIT_CLIENT_LOAD_PROFILE_CREATE_DIRECTORY_FAILED,
- NULL,
- NULL,
- NULL );
- }
- strncpy( g_sWorkingDirectory, i_pWorkingDirectory, KMS_MAX_PATH_LENGTH );
-
- bSuccess = StoreConfig( io_pProfile );
- if ( !bSuccess )
- {
- Log(AUDIT_CLIENT_LOAD_PROFILE_CREATE_PROFILE_CONFIG_FAILED,
- NULL,
- NULL,
- NULL );
- }
- else
- {
- Log(AUDIT_CLIENT_LOAD_PROFILE_CREATE_PROFILE_CONFIG_SUCCEEDED,
- NULL,
- NULL,
- NULL );
- }
-
- return bSuccess;
-}
-
-
-/*! StoreConfig
- * Store the configuration to persistent storage
- */
-bool StoreConfig(
- KMSClientProfile* const i_pProfile )
-{
- FATAL_ASSERT( i_pProfile );
-
-#if defined(DEBUG_TRACE) && defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, StoreConfig ) ;
-#endif
-
- char sConfigFile[KMS_MAX_FILE_NAME];
- BuildFullProfilePath( sConfigFile,
- g_sWorkingDirectory, i_pProfile->m_wsProfileName );
-
- strncat( sConfigFile, PROFILE_CONFIG_FILE, KMS_MAX_FILE_NAME );
-
- return Profile_WriteConfigFile(i_pProfile, sConfigFile );
-}
-
-/*! StoreCluster
- * Store the cluster to persistent storage
- */
-bool StoreCluster(
- KMSClientProfile* const i_pProfile )
-{
- FATAL_ASSERT( i_pProfile );
-
- myFILE *fp;
- int sCount;
- char *sp = g_sStringbuf;
-
- char sFullProfileDir[KMS_MAX_FILE_NAME+1];
- BuildFullProfilePath( sFullProfileDir,
- g_sWorkingDirectory, i_pProfile->m_wsProfileName );
-
- char sClusterFile[KMS_MAX_FILE_NAME+1] = "";
- strncpy( sClusterFile, sFullProfileDir, KMS_MAX_FILE_NAME );
- sClusterFile[KMS_MAX_FILE_NAME] = '\0';
- strncat( sClusterFile, PROFILE_CLUSTER_CONFIG_FILE, KMS_MAX_FILE_NAME );
-
-#if defined(DEBUG_TRACE) && defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, StoreCluster );
-#endif
-
-
- fp = fopen(sClusterFile, "w");
- if (fp == NULL)
- {
- LogError(i_pProfile,
- AUDIT_CLIENT_SAVE_CLUSTER_INFORMATION_OPEN_CLUSTER_FILE_FAILED,
- NULL,
- NULL,
- sClusterFile );
- return false;
- }
-
-#ifdef K_SOLARIS_PLATFORM
- int fd = fileno(fp);
- (void) flock_fd(fd, F_WRLCK, &clusterfl, &cluster_mutex);
-#endif
-
- sp += K_snprintf(sp, sizeof(g_sStringbuf), "EntitySiteID=%s\n\n", i_pProfile->m_wsEntitySiteID);
-
- for (int i = 0; i < i_pProfile->m_iClusterNum; i++)
- {
- if ( i > 0 )
- {
- sp += K_snprintf(sp, sizeof(g_sStringbuf), "\n");
- }
-
- if (( sCount = K_snprintf(sp, sizeof(g_sStringbuf),"<StartAppliance>\n")) < 0 )
- {
-#ifdef K_SOLARIS_PLATFORM
- (void) flock_fd(fd, F_UNLCK, &clusterfl, &cluster_mutex);
-#endif
- fclose(fp);
- return false; }
- sp += sCount;
-
-#ifdef WIN32
- if (( sCount = K_snprintf(sp, sizeof(g_sStringbuf), "ApplianceID=%I64d\n",
- i_pProfile->m_aCluster[i].m_lApplianceID)) < 0 )
- { fclose(fp); return false; }
- sp += sCount;
-
-#else
- if (( sCount = K_snprintf(sp, sizeof(g_sStringbuf), "ApplianceID=%lld\n",
- i_pProfile->m_aCluster[i].m_lApplianceID)) < 0 )
- {
-#ifdef K_SOLARIS_PLATFORM
- (void) flock_fd(fd, F_UNLCK, &clusterfl, &cluster_mutex);
-#endif
- fclose(fp);
- return false; }
- sp += sCount;
-#endif
-
- if (( sCount = K_snprintf(sp, sizeof(g_sStringbuf), "Enabled=%d\n",
- i_pProfile->m_aCluster[i].m_iEnabled)) < 0 )
- {
-#ifdef K_SOLARIS_PLATFORM
- (void) flock_fd(fd, F_UNLCK, &clusterfl, &cluster_mutex);
-#endif
- fclose(fp);
- return false; }
- sp += sCount;
-
- if (( sCount = K_snprintf(sp, sizeof(g_sStringbuf), "Responding=%d\n",
- i_pProfile->m_aCluster[i].m_iResponding)) < 0 )
- {
-#ifdef K_SOLARIS_PLATFORM
- (void) flock_fd(fd, F_UNLCK, &clusterfl, &cluster_mutex);
-#endif
- fclose(fp);
- return false; }
- sp += sCount;
-
- if (( sCount = K_snprintf(sp, sizeof(g_sStringbuf), "Load=%lld\n",
- i_pProfile->m_aCluster[i].m_lLoad)) < 0 )
- {
-#ifdef K_SOLARIS_PLATFORM
- (void) flock_fd(fd, F_UNLCK, &clusterfl, &cluster_mutex);
-#endif
- fclose(fp);
- return false; }
- sp += sCount;
-
- if (( sCount = K_snprintf(sp, sizeof(g_sStringbuf), "ApplianceAlias=%s\n",
- i_pProfile->m_aCluster[i].m_wsApplianceAlias)) < 0 )
- {
-#ifdef K_SOLARIS_PLATFORM
- (void) flock_fd(fd, F_UNLCK, &clusterfl, &cluster_mutex);
-#endif
- fclose(fp);
- return false; }
- sp += sCount;
-
- if (( sCount = K_snprintf(sp, sizeof(g_sStringbuf), "ApplianceNetworkAddress=%s\n",
- i_pProfile->m_aCluster[i].m_wsApplianceNetworkAddress)) < 0 )
- {
-#ifdef K_SOLARIS_PLATFORM
- (void) flock_fd(fd, F_UNLCK, &clusterfl, &cluster_mutex);
-#endif
- fclose(fp);
- return false; }
- sp += sCount;
-
- if (( sCount = K_snprintf(sp, sizeof(g_sStringbuf), "ApplianceSiteID=%s\n",
- i_pProfile->m_aCluster[i].m_wsApplianceSiteID)) < 0 )
- {
-#ifdef K_SOLARIS_PLATFORM
- (void) flock_fd(fd, F_UNLCK, &clusterfl, &cluster_mutex);
-#endif
- fclose(fp);
- return false; }
- sp += sCount;
-
- if (( sCount = K_snprintf(sp, sizeof(g_sStringbuf), "KMAVersion=%s\n",
- i_pProfile->m_aCluster[i].m_sKMAVersion)) < 0 )
- {
-#ifdef K_SOLARIS_PLATFORM
- (void) flock_fd(fd, F_UNLCK, &clusterfl, &cluster_mutex);
-#endif
- fclose(fp);
- return false; }
- sp += sCount;
-
- if (( sCount = K_snprintf(sp, sizeof(g_sStringbuf), "KMALocked=%d\n",
- i_pProfile->m_aCluster[i].m_iKMALocked)) < 0 )
- {
-#ifdef K_SOLARIS_PLATFORM
- (void) flock_fd(fd, F_UNLCK, &clusterfl, &cluster_mutex);
-#endif
- fclose(fp);
- return false; }
- sp += sCount;
-
- if (( sCount = K_snprintf(sp, sizeof(g_sStringbuf), "<EndAppliance>\n")) < 0 )
- {
-#ifdef K_SOLARIS_PLATFORM
- (void) flock_fd(fd, F_UNLCK, &clusterfl, &cluster_mutex);
-#endif
- fclose(fp);
- return false; }
- sp += sCount;
- }
-
- fputs(g_sStringbuf, fp);
-#ifdef K_SOLARIS_PLATFORM
- (void) flock_fd(fd, F_UNLCK, &clusterfl, &cluster_mutex);
-#endif
- fclose(fp);
- Log(AUDIT_CLIENT_SAVE_CLUSTER_INFORMATION_SUCCEEDED,
- NULL,
- NULL,
- NULL );
-
- return true;
-}
-
-/*! GetConfig
- * get the configuration file from persistent storage
- */
-bool GetConfig(
- KMSClientProfile* const io_pProfile )
-{
- FATAL_ASSERT( io_pProfile );
- char sFullProfileDir[KMS_MAX_FILE_NAME+1];
-
- BuildFullProfilePath( sFullProfileDir,
- g_sWorkingDirectory,
- io_pProfile->m_wsProfileName );
-
- char sConfigFile[KMS_MAX_FILE_NAME+1];
-
- strncpy( sConfigFile, sFullProfileDir, KMS_MAX_FILE_NAME );
- sConfigFile[KMS_MAX_FILE_NAME] = '\0';
- strncat( sConfigFile, PROFILE_CONFIG_FILE, KMS_MAX_FILE_NAME );
-
- return Profile_ReadConfigFile( io_pProfile, sConfigFile );
-}
-
-/** GetCluster
- * get the cluster information from persistent storage
- */
-bool GetCluster(
- KMSClientProfile* const io_pProfile,
- int& o_bClusterInformationFound )
-
-{
- FATAL_ASSERT( io_pProfile );
-
- const int iMaxLineSize = 1024;
-
- myFILE *fp;
- char acBuffer[iMaxLineSize+1];
- char sFullProfileDir[KMS_MAX_FILE_NAME+1];
-
- BuildFullProfilePath( sFullProfileDir,
- g_sWorkingDirectory,
- io_pProfile->m_wsProfileName );
-
- char sClusterFile[KMS_MAX_FILE_NAME+1];
-
-#if defined(DEBUG_TRACE) && defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, GetCluster );
-#endif
-
- strncpy( sClusterFile, sFullProfileDir, KMS_MAX_FILE_NAME );
- sClusterFile[KMS_MAX_FILE_NAME] = '\0';
- strncat( sClusterFile, PROFILE_CLUSTER_CONFIG_FILE, KMS_MAX_FILE_NAME );
-
- fp = fopen( sClusterFile, "r" );
-
- if ( fp == NULL )
- {
-#ifdef METAWARE
- // Assume file doesn't exist. This isn't an error (no support for
- // errno in metaware).
- o_bClusterInformationFound = 0;
- return true;
-#else
- if ( errno == ENOENT )
- {
- // File doesn't exist. This isn't an error.
- o_bClusterInformationFound = 0;
- return true;
- }
-
- LogError(io_pProfile,
- AUDIT_CLIENT_LOAD_CLUSTER_INFORMATION_OPEN_CLUSTER_FILE_FAILED,
- NULL,
- NULL,
- sClusterFile );
- return false;
-#endif
- }
-
-#ifdef K_SOLARIS_PLATFORM
- int fd = fileno(fp);
- (void) flock_fd(fd, F_WRLCK, &clusterfl, &cluster_mutex);
-#endif
-
- o_bClusterInformationFound = 1;
- int i;
- // KMAVersion is new to Cluster config with 2.1 KMS and will not exist
- // in persisted cluster configs from earlier agents
- for ( i = 0; i < KMS_MAX_CLUSTER_NUM; i++ )
- {
- io_pProfile->m_aCluster[i].m_sKMAVersion[0] = '\0';
- }
-
- int iClusterNum = 0;
- // read file one line by one line
- while(1)
- {
- int i;
- char *pName, *pValue;
-
- memset(acBuffer, 0, iMaxLineSize+1);
-
- // get info from the file
- if(fgets(acBuffer, iMaxLineSize+1, fp) == NULL)
- break;
-
- if(strlen(acBuffer) < 3)
- continue;
-
- if(acBuffer[0] == '#' ||
- acBuffer[0] == ';' ||
- acBuffer[0] == '[') // jump comments
- continue;
-
- pName = acBuffer; pValue = NULL;
- for(i = 0; acBuffer[i] != '\0'; i++)
- {
- if(acBuffer[i] == '=')
- pValue = acBuffer + i + 1;
-
- if(acBuffer[i] == '=' ||
- acBuffer[i] == '\r' ||
- acBuffer[i] == '\n')
- acBuffer[i] = '\0';
- }
-
- if(strcmp(pName, "<StartAppliance>") == 0)
- {
- continue;
- }
- if(strcmp(pName, "<EndAppliance>") == 0)
- {
- iClusterNum++;
- }
-
- if(pValue == NULL)
- {
- if(strcmp(pName,"<StartAppliance>") == 0)
- continue;
-
- if(strcmp(pName,"<EndAppliance>") == 0)
- continue;
-
-#ifdef K_SOLARIS_PLATFORM
- (void) flock_fd(fd, F_UNLCK, &clusterfl, &cluster_mutex);
-#endif
- fclose(fp);
-
- LogError(io_pProfile,
- AUDIT_CLIENT_LOAD_CLUSTER_INFORMATION_INVALID_CLUSTER_FILE_FORMAT,
- NULL,
- NULL,
- sClusterFile );
- return false;
- }
-
- if(strcmp(pName, "EntitySiteID") == 0)
- {
- utf8cstr wsValue = pValue;
- strncpy(io_pProfile->m_wsEntitySiteID, wsValue, KMS_MAX_ENTITY_SITE_ID);
- io_pProfile->m_wsEntitySiteID[KMS_MAX_ENTITY_SITE_ID] = 0;
- }
-
-
- if(strcmp(pName, "ApplianceID") == 0)
- {
-#ifdef WIN32
- sscanf(pValue, "%lld",
- &(io_pProfile->m_aCluster[iClusterNum].m_lApplianceID));
-#else
- sscanf(pValue, "%lld",
- &(io_pProfile->m_aCluster[iClusterNum].m_lApplianceID));
-#endif
- }
- if(strcmp(pName, "Enabled") == 0)
- {
- sscanf(pValue, "%d",
- &(io_pProfile->m_aCluster[iClusterNum].m_iEnabled));
- }
-
- // assume it is responding by default
- io_pProfile->m_aCluster[iClusterNum].
- m_iResponding = TRUE;
-
- if(strcmp(pName, "Load") == 0)
- {
- sscanf(pValue, "%lld",
- &(io_pProfile->m_aCluster[iClusterNum].m_lLoad));
- }
- if(strcmp(pName, "ApplianceAlias") == 0)
- {
- utf8cstr wsValue = pValue;
- strncpy(io_pProfile->m_aCluster[iClusterNum].m_wsApplianceAlias,
- wsValue,
- KMS_MAX_ENTITY_ID);
- io_pProfile->m_aCluster[iClusterNum].
- m_wsApplianceAlias[KMS_MAX_ENTITY_ID] = 0;
-
- }
- if(strcmp(pName, "ApplianceNetworkAddress") == 0)
- {
- utf8cstr wsValue = pValue;
- strncpy(io_pProfile->m_aCluster[iClusterNum].
- m_wsApplianceNetworkAddress,
- wsValue,
- KMS_MAX_NETWORK_ADDRESS);
- io_pProfile->m_aCluster[iClusterNum].
- m_wsApplianceNetworkAddress[KMS_MAX_NETWORK_ADDRESS] = 0;
- }
- if(strcmp(pName, "ApplianceSiteID") == 0)
- {
- utf8cstr wsValue = pValue;
- strncpy(io_pProfile->m_aCluster[iClusterNum].m_wsApplianceSiteID,
- wsValue,
- KMS_MAX_ENTITY_SITE_ID);
- io_pProfile->m_aCluster[iClusterNum].
- m_wsApplianceSiteID[KMS_MAX_ENTITY_SITE_ID] = 0;
- }
- if(strcmp(pName, "KMAVersion") == 0)
- {
- utf8cstr wsValue = pValue;
- strncpy(io_pProfile->m_aCluster[iClusterNum].m_sKMAVersion,
- wsValue,
- KMS_MAX_VERSION_LENGTH);
- io_pProfile->m_aCluster[iClusterNum].
- m_sKMAVersion[KMS_MAX_VERSION_LENGTH] = '\0';
- }
- if(strcmp(pName, "KMALocked") == 0)
- {
- sscanf(pValue, "%d",
- &(io_pProfile->m_aCluster[iClusterNum].m_iKMALocked));
- }
- }
- io_pProfile->m_iClusterNum = iClusterNum;
-
-#ifdef K_SOLARIS_PLATFORM
- (void) flock_fd(fd, F_UNLCK, &clusterfl, &cluster_mutex);
-#endif
- fclose(fp);
-
- return true;
-}
-
-/*! DeleteCluster
- *
- */
-bool DeleteCluster( KMSClientProfile* const io_pProfile )
-{
- FATAL_ASSERT( io_pProfile );
- FATAL_ASSERT( io_pProfile->m_wsProfileName );
-
-#if defined(DEBUG_TRACE) && defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, DeleteCluster );
-#endif
-
- bool bSuccess = true;
- char sFullProfileDir[KMS_MAX_FILE_NAME];
- char sClusterInformationFile[KMS_MAX_FILE_NAME];
-
- BuildFullProfilePathWithName( sFullProfileDir, g_sWorkingDirectory,
- io_pProfile->m_wsProfileName );
-
- strcpy( sClusterInformationFile, sFullProfileDir );
- strncat( sClusterInformationFile, PROFILE_CLUSTER_CONFIG_FILE,
- KMS_MAX_FILE_NAME );
-
- myFILE* pfFile = fopen( sClusterInformationFile, "rb" );
-
- if ( pfFile != NULL )
- {
- fclose(pfFile);
- if ( my_unlink(sClusterInformationFile) )
- bSuccess = false;
- }
-
- return true;
-}
-
-/*! StoreCACertificate
- * Store CA Certificate to a persistent storage file
- * @param i_pProfile
- * @param i_pCACertificate
- *
- * @returns boolean success or failure
- */
-bool StoreCACertificate(
- KMSClientProfile* const i_pProfile,
- CCertificate* const i_pCACertificate )
-{
- FATAL_ASSERT( i_pProfile );
- FATAL_ASSERT( i_pCACertificate );
-
- char sCACertificateFile[KMS_MAX_FILE_NAME];
-
-#if defined(DEBUG_TRACE) && defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, StoreCACertificate );
-#endif
-
- BuildFullProfilePath( sCACertificateFile,
- g_sWorkingDirectory,
- i_pProfile->m_wsProfileName );
-
- strncat( sCACertificateFile, CA_CERTIFICATE_FILE, KMS_MAX_FILE_NAME );
-
- // OVERLOADED Save method - 2 parameters means save to a file
- if ( !( i_pCACertificate->Save(sCACertificateFile, PKI_FORMAT)) )
- {
- LogError(i_pProfile,
- AUDIT_CLIENT_LOAD_PROFILE_SAVE_CA_CERTIFICATE_FAILED,
- NULL,
- NULL,
- sCACertificateFile );
- return false;
- }
- return true;
-
-}
-
-/*! StoreAgentPKI
- * Store Private Keys a persistent storage file
- *
- */
-#ifndef K_SOLARIS_PLATFORM
-static
-#endif
-bool StoreAgentPKI(
- KMSClientProfile* const i_pProfile,
- CCertificate* const i_pAgentCertificate,
- CPrivateKey* const i_pAgentPrivateKey,
- const char* const i_sHexHashedPassphrase )
-{
- FATAL_ASSERT( i_pProfile );
- FATAL_ASSERT( i_pAgentCertificate );
-
- bool bSuccess;
- char sClientKeyFile[KMS_MAX_FILE_NAME];
-
-#if defined(DEBUG_TRACE) && defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, StoreAgentPKI ) ;
-#endif
-
- BuildFullProfilePath( sClientKeyFile,
- g_sWorkingDirectory,
- i_pProfile->m_wsProfileName );
-
- strncat( sClientKeyFile,
-#ifdef KMSUSERPKCS12
- CLIENT_PK12_FILE,
-#else
- CLIENT_KEY_FILE,
-#endif
- KMS_MAX_FILE_NAME );
-
- CPKI oPKI;
-
- // save Certificate and Private Key to file named sClientKeyFile(CLIENT_KEY_FILE)
- bSuccess = oPKI.ExportCertAndKeyToFile(
- i_pAgentCertificate,
- i_pAgentPrivateKey,
- sClientKeyFile,
- i_sHexHashedPassphrase,
-#ifdef KMSUSERPKCS12
- PKCS12_FORMAT
-#else
- PKI_FORMAT
-#endif
- );
-
- if ( !bSuccess )
- {
- LogError(i_pProfile,
- AUDIT_CLIENT_LOAD_PROFILE_EXPORT_CERTIFICATE_AND_KEY_FAILED,
- NULL,
- NULL,
- sClientKeyFile );
- }
- return bSuccess;
-}
-
-/*! StorePKIcerts
- * Store PKI objects to persistent storage files
- */
-bool StorePKIcerts(
- KMSClientProfile* const io_pProfile,
- CCertificate* const i_pCACertificate,
- CCertificate* const i_pAgentCertificate,
- CPrivateKey* const i_pAgentPrivateKey,
- const char* const i_sHexHashedPassphrase )
-{
- FATAL_ASSERT( io_pProfile );
- FATAL_ASSERT( i_pAgentCertificate );
-
- bool bSuccess = false;
-
- bSuccess = StoreCACertificate( io_pProfile, i_pCACertificate );
-
- if ( bSuccess )
- {
- bSuccess = StoreAgentPKI( io_pProfile,
- i_pAgentCertificate,
- i_pAgentPrivateKey,
- i_sHexHashedPassphrase );
- }
-
- if ( bSuccess )
- {
- io_pProfile->m_iEnrolled = TRUE;
- }
-
- return bSuccess;
-}
-
-#ifdef KMSUSERPKCS12
-
-/*
- * Test to see if the PKCS12 file exists.
- */
-bool ClientKeyP12Exists(char *profileName)
-{
- bool bSuccess = true;
- char sFullProfileDir[KMS_MAX_FILE_NAME+1];
- char sAgentPK12File[KMS_MAX_FILE_NAME+1];
- struct stat statp;
-
- BuildFullProfilePath(sFullProfileDir,
- g_sWorkingDirectory, profileName);
-
- strncpy( sAgentPK12File, sFullProfileDir, KMS_MAX_FILE_NAME );
- strncat( sAgentPK12File, CLIENT_PK12_FILE, KMS_MAX_FILE_NAME );
-
- bSuccess = false;
- if (stat(sAgentPK12File, &statp) == -1)
- bSuccess = false;
- else if (statp.st_size > 0)
- bSuccess = true;
-
- return (bSuccess);
-}
-
-/*
- * Load the cert and the private key from the PKCS12 file.
- */
-bool GetPKCS12CertAndKey(
- KMSClientProfile* const io_pProfile,
- utf8char *i_pPassphrase,
- CCertificate *i_pEntityCert,
- CPrivateKey *i_pEntityPrivateKey)
-{
- bool bSuccess = true;
- char sFullProfileDir[KMS_MAX_FILE_NAME+1];
- char sAgentPK12File[KMS_MAX_FILE_NAME+1];
-
- BuildFullProfilePath(sFullProfileDir,
- g_sWorkingDirectory, io_pProfile->m_wsProfileName );
-
- strncpy( sAgentPK12File, sFullProfileDir, KMS_MAX_FILE_NAME );
- strncat( sAgentPK12File, CLIENT_PK12_FILE, KMS_MAX_FILE_NAME );
-
- bSuccess = i_pEntityCert->LoadPKCS12CertAndKey(
- sAgentPK12File, FILE_FORMAT_PKCS12,
- i_pEntityPrivateKey, i_pPassphrase);
-
- if (!bSuccess)
- io_pProfile->m_iLastErrorCode = KMS_AGENT_LOCAL_AUTH_FAILURE;
-
- return (bSuccess);
-}
-
-bool StoreTempAgentPKI(
- KMSClientProfile* const i_pProfile,
- CCertificate* i_pAgentCertificate,
- CPrivateKey* i_pAgentPrivateKey)
-{
- FATAL_ASSERT( i_pProfile );
- FATAL_ASSERT( i_pAgentCertificate );
-
- bool bSuccess;
- char sClientKeyFile[KMS_MAX_FILE_NAME];
-
- BuildFullProfilePath( sClientKeyFile,
- g_sWorkingDirectory,
- i_pProfile->m_wsProfileName );
-
- strncat(sClientKeyFile,
- CLIENT_KEY_FILE,
- KMS_MAX_FILE_NAME );
-
- CPKI oPKI;
-
- // save Certificate and Private Key to file named sClientKeyFile(CLIENT_KEY_FILE)
- bSuccess = oPKI.ExportCertAndKeyToFile(
- i_pAgentCertificate,
- i_pAgentPrivateKey,
- sClientKeyFile,
- NULL,
- PKI_FORMAT);
-
- if ( !bSuccess )
- {
- LogError(i_pProfile,
- AUDIT_CLIENT_LOAD_PROFILE_EXPORT_CERTIFICATE_AND_KEY_FAILED,
- NULL,
- NULL,
- sClientKeyFile );
- }
- return bSuccess;
-}
-
-void CleanupPrivateKeyFile(KMSClientProfile* const io_pProfile)
-{
- char sClientKeyFile[KMS_MAX_FILE_NAME];
-
- BuildFullProfilePath( sClientKeyFile,
- g_sWorkingDirectory,
- io_pProfile->m_wsProfileName );
-
- strncat(sClientKeyFile,
- CLIENT_KEY_FILE,
- KMS_MAX_FILE_NAME );
-
- (void) unlink(sClientKeyFile);
- return;
-}
-#endif /* PKCS12 */
-
-/**
- * GetPKIcerts verifies that CA and Agent certificates are available in
- * persistent storage and updates profile with an indicator
- */
-bool GetPKIcerts(
- KMSClientProfile* const io_pProfile )
-{
- FATAL_ASSERT( io_pProfile );
-
- bool bSuccess = true;
- char sFullProfileDir[KMS_MAX_FILE_NAME+1];
- char sCAcertFile[KMS_MAX_FILE_NAME+1];
- char sAgentCertFile[KMS_MAX_FILE_NAME+1];
-#ifndef K_SOLARIS_PLATFORM
- myFILE* pfFile;
-#endif
-
-#if defined(DEBUG_TRACE) && defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, GetPKIcerts );
-#endif
-
- io_pProfile->m_iEnrolled = FALSE;
-
- BuildFullProfilePath( sFullProfileDir,
- g_sWorkingDirectory, io_pProfile->m_wsProfileName );
-
- strncpy( sCAcertFile, sFullProfileDir, KMS_MAX_FILE_NAME );
- sCAcertFile[KMS_MAX_FILE_NAME] = '\0';
- strncat( sCAcertFile, CA_CERTIFICATE_FILE, KMS_MAX_FILE_NAME );
-
-#ifdef K_SOLARIS_PLATFORM
- /*
- * stat(2) is preferred over fopen(3C)
- * fopen for checking if a file is present.
- */
- struct stat statp;
- if (stat(sCAcertFile, &statp)) {
- LogError(io_pProfile,
- AUDIT_CLIENT_LOAD_PROFILE_FAILED,
- NULL,
- NULL,
- "Test for presence of CA Certificate failed" );
- return false;
- }
-
-#else
- pfFile = fopen( sCAcertFile, "rb" );
-
- if ( pfFile != NULL )
- {
- fclose(pfFile);
- }
- else
- {
- LogError(io_pProfile,
- AUDIT_CLIENT_LOAD_PROFILE_FAILED,
- NULL,
- NULL,
- "Test for presence of CA Certificate failed" );
- return false;
- }
-#endif
-
- // open the file containing client certificate and private key
- // checking if the file exists.
- strncpy( sAgentCertFile, sFullProfileDir, KMS_MAX_FILE_NAME );
- sAgentCertFile[KMS_MAX_FILE_NAME] = '\0';
- strncat( sAgentCertFile, CLIENT_KEY_FILE, KMS_MAX_FILE_NAME );
-
-#ifdef K_SOLARIS_PLATFORM
- /*
- * stat(2) is safer than "fopen" for checking if a file is
- * present or not.
- */
- if (stat(sAgentCertFile, &statp)) {
- LogError(io_pProfile,
- AUDIT_CLIENT_LOAD_PROFILE_FAILED,
- NULL,
- NULL,
- "Test for presence of Agent Certificate failed" );
- return false;
- }
-#else
-
- pfFile = fopen( sAgentCertFile, "rb" );
-
- if ( pfFile != NULL )
- {
- fclose(pfFile);
- }
- else
- {
- LogError(io_pProfile,
- AUDIT_CLIENT_LOAD_PROFILE_FAILED,
- NULL,
- NULL,
- "Test for presence of Agent Certificate failed" );
- return false;
- }
-#endif
-
- io_pProfile->m_iEnrolled = TRUE;
-
- return bSuccess;
-}
-
-/**
- * DeleteStorageProfile
- */
-bool DeleteStorageProfile(
- const char* const i_pName)
-{
- FATAL_ASSERT( i_pName );
-
-#if defined(DEBUG_TRACE) && defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, DeleteStorageProfile );
-#endif
-
- bool bSuccess = true;
- char sFullProfileDir[KMS_MAX_FILE_NAME+1];
- char sConfigFile[KMS_MAX_FILE_NAME+1];
- char sClusterInformationFile[KMS_MAX_FILE_NAME+1];
- char sCACertificateFile[KMS_MAX_FILE_NAME+1];
- char sClientKeyFile[KMS_MAX_FILE_NAME+1];
-#ifdef KMSUSERPKCS12
- char sClientP12File[KMS_MAX_FILE_NAME+1];
-#endif
-
- BuildFullProfilePathWithName( sFullProfileDir,
- g_sWorkingDirectory, i_pName );
- strncpy( sConfigFile, sFullProfileDir, KMS_MAX_FILE_NAME );
- sConfigFile[KMS_MAX_FILE_NAME] = '\0';
- strncat( sConfigFile, PROFILE_CONFIG_FILE, KMS_MAX_FILE_NAME );
-
- strncpy( sClusterInformationFile, sFullProfileDir, KMS_MAX_FILE_NAME );
- sClusterInformationFile[KMS_MAX_FILE_NAME] = '\0';
- strncat( sClusterInformationFile,
- PROFILE_CLUSTER_CONFIG_FILE,
- KMS_MAX_FILE_NAME );
-
- strncpy( sCACertificateFile, sFullProfileDir, KMS_MAX_FILE_NAME );
- sCACertificateFile[KMS_MAX_FILE_NAME] = '\0';
- strncat( sCACertificateFile, CA_CERTIFICATE_FILE, KMS_MAX_FILE_NAME );
-
- strncpy( sClientKeyFile, sFullProfileDir, KMS_MAX_FILE_NAME );
- sClientKeyFile[KMS_MAX_FILE_NAME] = '\0';
- strncat( sClientKeyFile, CLIENT_KEY_FILE, KMS_MAX_FILE_NAME );
-
- myFILE* pfFile = fopen( sConfigFile, "rb" );
-
- if ( pfFile != NULL )
- {
- fclose(pfFile);
- if ( my_unlink(sConfigFile) )
- bSuccess = false;
- }
-
- pfFile = fopen( sClusterInformationFile, "rb" );
-
- if ( pfFile != NULL )
- {
- fclose(pfFile);
- if ( my_unlink(sClusterInformationFile) )
- bSuccess = false;
- }
-
- pfFile = fopen( sCACertificateFile, "rb" );
-
- if ( pfFile != NULL )
- {
- fclose(pfFile);
- if ( my_unlink(sCACertificateFile) )
- bSuccess = false;
- }
-
- pfFile = fopen( sClientKeyFile, "rb" );
-
- if ( pfFile != NULL )
- {
- fclose(pfFile);
- if ( my_unlink(sClientKeyFile) )
- bSuccess = false;
- }
-
-#ifdef KMSUSERPKCS12
- strncpy( sClientP12File, sFullProfileDir, KMS_MAX_FILE_NAME );
- sClientP12File[KMS_MAX_FILE_NAME] = '\0';
- strncat( sClientP12File, CLIENT_KEY_FILE, KMS_MAX_FILE_NAME );
-
- /* Just unlink, no need to open/close first. */
- if ( my_unlink(sClientP12File) )
- bSuccess = false;
-#endif
-
- pfFile = fopen( sFullProfileDir, "rb" );
-
- if ( pfFile != NULL )
- {
- fclose(pfFile);
- if ( my_rmdir(sFullProfileDir) )
- bSuccess = false;
- }
-
- return bSuccess;
-}
-
-
-
-
-/**
- * K_soap_ssl_client_context
- * Parse client context and send to soap, either using a soap call
- * for openSSL or user implemented call for Treck SSL
- *
- * @param i_pProfile - pointer to KMSClientProfile
- * @param io_pSoap - pointer to soap structure
- * @param i_iFlags - input flags (CLIENT or SERVER auth)
- *
- * @returns 0=success, non-zero=fail
- */
-int K_soap_ssl_client_context
-( KMSClientProfile* const i_pProfile, // input KMSClientProfile
- struct soap * io_pSoap, // i/o soap profile
- unsigned short i_iFlags ) // input flags
-{
- FATAL_ASSERT( i_pProfile );
- FATAL_ASSERT( io_pSoap );
-
-#if defined(DEBUG_TRACE) && defined(METAWARE)
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, K_soap_ssl_client_context ) ;
-#endif
-
-
- char sCACertificateFile[KMS_MAX_FILE_NAME];
- char sClientKeyFile[KMS_MAX_FILE_NAME];
-
-
- BuildFullProfilePath( sCACertificateFile, // out
- g_sWorkingDirectory, // out
- i_pProfile->m_wsProfileName ); // in
-
- strncat( sCACertificateFile, // path
- CA_CERTIFICATE_FILE, // name
- KMS_MAX_FILE_NAME );
-
-
- switch ( i_iFlags )
- {
- case SOAP_SSL_REQUIRE_CLIENT_AUTHENTICATION:
- {
- BuildFullProfilePath( sClientKeyFile,
- g_sWorkingDirectory,
- i_pProfile->m_wsProfileName );
-
- strncat( sClientKeyFile, // path
- CLIENT_KEY_FILE, // name
- KMS_MAX_FILE_NAME );
-
- // this sends the following to the SSL Layer
-#ifdef METAWARE
- return K_ssl_client_context(
- io_pSoap, // i/o
- i_iFlags, // flags
- sClientKeyFile, // keyfile - client cert and private key
- i_pProfile->m_sHexHashedPassphrase, // password
- sCACertificateFile, // cafile - CA certificate
- NULL, // capath
- NULL ); // randfile
-#else
- return soap_ssl_client_context(
- io_pSoap, // i/o
-#ifndef SOAP_SSL_SKIP_HOST_CHECK
- i_iFlags, // flags
-#else
- i_iFlags | SOAP_SSL_SKIP_HOST_CHECK, // flags
-#endif
- sClientKeyFile, // keyfile - client cert and private key
- i_pProfile->m_sHexHashedPassphrase, // password
- sCACertificateFile, // cafile - CA certificate
- NULL, // capath
- NULL ); // randfile
-#endif
- }
- case SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION:
- {
-#ifdef METAWARE
- return K_ssl_client_context(
- io_pSoap, // i/o
- i_iFlags, // flags
- NULL, // keyfile
- NULL, // password
- sCACertificateFile, // cafile
- NULL, // capath
- NULL ); // randfile
-#else
- return soap_ssl_client_context(
- io_pSoap, // i/o
-#ifndef SOAP_SSL_SKIP_HOST_CHECK
- i_iFlags, // flags
-#else
- i_iFlags | SOAP_SSL_SKIP_HOST_CHECK, // flags
-#endif
- NULL, // keyfile
- NULL, // password
- sCACertificateFile, // cafile
- NULL, // capath
- NULL ); // randfile
-#endif
- }
- default:
- // unauthenticated sessions are not supported
- return 1;
- }
-}
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentStorage.h b/usr/src/lib/libkmsagent/common/KMSAgentStorage.h
deleted file mode 100644
index f85fa68117..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentStorage.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAgentStorage.h
- *
- * This header provides an interface for the agent library to persist profile information, including
- * <ul>
- * <li>Profile Configuration properties
- * <li>Profile KMS Cluster information
- * <li>PKI Certificates and Agent Private Key
- * </ul>
- * With the storage management of PKI elements is an interface for initialization of the gSoap SSL
- * client context.
- * <p>
- * The reference implementation of this interface maps these storage elements into files.
- * Other implmentations may need to persist these elements into other types of non-volatile
- * storage.
- */
-
-#ifndef KMSAGENT_STORAGE_H
-#define KMSAGENT_STORAGE_H
-
-/**
- * checks if a profile exists in the working directory with the name specified in the io_pProfile struct
- */
-extern "C" bool ProfileExists(
- const char* const i_pWorkingDirectory,
- const char* const i_pProfileName);
-
-/**
- * creates a Storage object in the working directory with the specified name.
- * The storage object's contents are empty.
- */
-bool CreateProfile(
- KMSClientProfile* const io_pProfile,
- const char* const i_pWorkingDirectory,
- const char* const i_pProfileName);
-
-/**
- * saves the Config portion of the profile into persistent storage
- */
-bool StoreConfig(
- KMSClientProfile* const i_pProfile );
-
-/**
- * saves the Cluster information from the profile into persistent storage
- */
-bool StoreCluster(
- KMSClientProfile* const i_pProfile );
-
-/**
- * retrieve the Config information from persistent storage into the profile
- */
-bool GetConfig(
- KMSClientProfile* const io_pProfile );
-
-
-/**
- * populate cluster array with names from storage. If the profile does
- * does not contain cluster information then sets o_bClusterInformationFound
- * to true.
- */
-bool GetCluster(
- KMSClientProfile* const io_pProfile,
- int& o_bClusterInformationFound );
-
-/**
- * delete the cluster information from persistent storage
- */
-bool DeleteCluster( KMSClientProfile* const io_pProfile );
-
-/**
- * saves the CA certificate into persistent storage
- */
-bool StoreCACertificate(
- KMSClientProfile* const i_pProfile,
- CCertificate* const i_pCACertificate );
-
-
-/**
- * save the CA certificate, agent certificate and agent
- * private key material to persistent storage
- * @param i_sHexHashedPassphrase this is an optional passphrase
- * that is required when the caller wishes the private key to be
- * encrypted. The private key will then be encrypted using this
- * pass phrase.
- */
-bool StorePKIcerts(
- KMSClientProfile* const io_pProfile,
- CCertificate* const i_pCACertificate,
- CCertificate* const i_pAgentCertificate,
- CPrivateKey* const i_pAgentPrivateKey,
- const char* const i_sHexHashedPassphrase );
-
-/**
- * retrieve the CA certificate, agent certificate and agent
- * private key material from persistent storage and reference
- * from the profile
- */
-bool GetPKIcerts(
- KMSClientProfile* const io_pProfile );
-
-#ifdef KMSUSERPKCS12
-bool StoreAgentPKI(
- KMSClientProfile* const i_pProfile,
- CCertificate* const i_pAgentCertificate,
- CPrivateKey* const i_pAgentPrivateKey,
- const char* const i_sHexHashedPassphrase);
-
-bool GetPKCS12CertAndKey(
- KMSClientProfile* const io_pProfile,
- utf8char *i_pPassphrase,
- CCertificate *i_pEntityCert,
- CPrivateKey *i_pEntityPrivateKey);
-
-bool StoreTempAgentPKI(
- KMSClientProfile* const io_pProfile,
- CCertificate *i_pEntityCert,
- CPrivateKey *i_pEntityPrivateKey);
-
-bool ClientKeyP12Exists(char *profileName);
-
-void CleanupPrivateKeyFile(KMSClientProfile* const io_pProfile);
-#endif
-
-/**
- * Provides a wrapper to gSoap's soap_ssl_client_context()
- * that hides how Certificates and Private key material are presented to the underlying SSL
- * layer.
- * @param i_pProfile The profile must contain a reference to the CA certificate and for
- * SOAP_SSL_REQUIRE_CLIENT_AUTHENTICATION the Agent's certificate and private key material.
- * @param io_pSoap gSoap runtime
- * @param i_iFlags These are the gSoap authentication flags, either
- * SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION or SOAP_SSL_REQUIRE_CLIENT_AUTHENTICATION.
- * The private key password argument is only applicable
- * for SOAP_SSL_REQUIRE_CLIENT_AUTHENTICATION.
- *
- * @return value from gSoap's soap_ssl_client_context()
- */
-int K_soap_ssl_client_context(
- KMSClientProfile* const i_pProfile,
- struct soap * io_pSoap,
- unsigned short i_iFlags );
-
-/**
- * deletes the persistent storage object specified by name and its contents
- */
-bool DeleteStorageProfile(
- const char* const i_pName);
-
-#endif // KMSAGENT_STORAGE_H
-
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentStringUtilities.cpp b/usr/src/lib/libkmsagent/common/KMSAgentStringUtilities.cpp
deleted file mode 100644
index c47e6848e8..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentStringUtilities.cpp
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef WIN32
-#include <ctype.h>
-
- #ifndef METAWARE
- #include <wctype.h>
- #endif
-
-#endif
-
-#ifndef METAWARE
- #include <sys/timeb.h>
-#endif
-
-#include "KMSAgentStringUtilities.h"
-
-#ifdef WIN32
-#include <stdlib.h>
-#include <time.h>
-#define gmtime_r(clock,result) ( *(result) = *gmtime(clock), result )
-#endif
-
-// Find header in KMSAgentStringUtilities.h
-int64 UTF8ToInt64( const char* i_sNumber )
-{
- FATAL_ASSERT( i_sNumber );
-
-#ifdef WIN32
- return _atoi64( i_sNumber );
-#else
- return atoll( i_sNumber );
-#endif
-}
-
-void Int64ToUTF8(char* const o_psUTF8,
- int64 i_iNumber,
- int i_bPad,
- int i_bHex )
-{
- //string sFormat;
- char sFormat[10];
-
- if ( i_bPad && i_bHex )
- {
-#ifdef WIN32
- strcpy(sFormat,"%016I64X");
-#else
- strcpy(sFormat,"%016llX");
-#endif
- }
- else if ( i_bPad && !i_bHex )
- {
-#ifdef WIN32
- strcpy(sFormat, "%019I64d");
-#else
- strcpy(sFormat, "%019lld");
-#endif
- }
- else if ( !i_bPad && i_bHex )
- {
-#ifdef WIN32
- strcpy(sFormat, "%I64X");
-#else
- strcpy(sFormat, "%llX");
-#endif
- }
- else //( !i_bPad && !i_bHex )
- {
-#ifdef WIN32
- strcpy(sFormat, "%I64d");
-#else
- strcpy(sFormat, "%lld");
-#endif
- }
-
-#ifndef METAWARE
- int iReturn = sprintf( o_psUTF8, sFormat, i_iNumber);
-
- //int iReturn = K_snprintf(o_psUTF8, iBufferSize, sFormat, i_iNumber);
-#else
- int iReturn = sprintf( o_psUTF8, sFormat, i_iNumber);
-#endif
- if ( iReturn < 0 )
- {
- // Our buffer wasn't big enough. Shouldn't happen.
- FATAL_ASSERT(0);
- }
-
- return;
-
-}
-
-// Find header in KMSAgentStringUtilities.h
-int ConvertUTF8HexStringToBinary(
- const char* i_sHexString,
- unsigned char* o_pBinaryBuffer)
-{
- int iHexLen = i_sHexString ? strlen(i_sHexString) : 0;
- FATAL_ASSERT( (iHexLen % 2) == 0 ); // to be valid, the hex string must have an even number of characters
-
- if ( !o_pBinaryBuffer )
- {
- return ( iHexLen / 2 );
- }
-
- if ( iHexLen <= 0 )
- {
- return 0;
- }
-
- int iDigitValue = 0;
-
- for ( int i = 0; i < iHexLen; i++)
- {
- if (i_sHexString[i] >= '0' && i_sHexString[i] <= '9')
- {
- iDigitValue = i_sHexString[i] - '0';
- }
- else if (i_sHexString[i] >= 'A' && i_sHexString[i] <= 'F')
- {
- iDigitValue = i_sHexString[i] - 'A' + 10;
- }
- else if (i_sHexString[i] >= 'a' && i_sHexString[i] <= 'f')
- {
- iDigitValue = i_sHexString[i] - 'a' + 10;
- }
- else
- {
- iDigitValue = 0;
- }
-
- if (i % 2 == 0)
- {
- o_pBinaryBuffer[i/2] = (char)(iDigitValue << 4);
- }
- else
- {
- o_pBinaryBuffer[i/2] |= (char)iDigitValue;
- }
- }
-
- return ( iHexLen / 2 );
-}
-
-// Find header in KMSAgentStringUtilities.h
-void ConvertBinaryToUTF8HexString(
- char* const o_sHexString,
- const unsigned char* const i_pBinaryBuffer,
- int i_iBinaryBufferSize )
-{
- const char HEXCHARS[] = "0123456789ABCDEF";
-
- FATAL_ASSERT( o_sHexString );
-
- if ( (i_pBinaryBuffer == 0) || (i_iBinaryBufferSize == 0) )
- {
- strcpy(o_sHexString, "");
- return;
- }
-
- FATAL_ASSERT( i_pBinaryBuffer );
-
- for ( int i = 0; i < (2 * i_iBinaryBufferSize); i++ )
- {
- unsigned char ucFourBits = i_pBinaryBuffer[i / 2];
- if ( (i % 2) == 0 ) // high four bits of the current byte
- ucFourBits = (ucFourBits >> 4) & 0xF; // shift down and blank out upper bits
- else // low four bits of the current byte
- ucFourBits = ucFourBits & 0xF; // blank out upper bits
-
- o_sHexString[i] = HEXCHARS[ucFourBits];
- }
-
- o_sHexString[i_iBinaryBufferSize * 2] = '\0';
-
- return;
-}
-
-
-// Find header in StringUtilities.h
-void GetCurrentDateTimeISO8601UTC(char* const o_psDateTimeISO8601UTC,
- int i_iLength)
-{
-
-#ifndef METAWARE
- timeb stTime;
- ftime(&stTime);
-
- FATAL_ASSERT( o_psDateTimeISO8601UTC );
-
- struct tm* pstTime = gmtime( &(stTime.time) );
-
- K_snprintf(
- o_psDateTimeISO8601UTC,
- i_iLength,
- "%04d-%02d-%02d %02d:%02d:%02d.%03dZ",
- pstTime->tm_year+1900,
- pstTime->tm_mon+1,
- pstTime->tm_mday,
- pstTime->tm_hour,
- pstTime->tm_min,
- pstTime->tm_sec,
- stTime.millitm);
-
-#else
- // no time functions for the metaware environment
- strcpy( o_psDateTimeISO8601UTC, "" );
-#endif
- return;
-}
-
diff --git a/usr/src/lib/libkmsagent/common/KMSAgentStringUtilities.h b/usr/src/lib/libkmsagent/common/KMSAgentStringUtilities.h
deleted file mode 100644
index 1705a266ff..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgentStringUtilities.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * @file KMSAgentStringUtilities.h
- */
-
-#ifndef KMSAgentStringUtilities_h
-#define KMSAgentStringUtilities_h
-
-#ifdef WIN32
-#pragma warning(disable: 4786)
-#endif
-
-#include <stdio.h>
-
-#include "SYSCommon.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-//
-// Functions for conversions between integers and strings.
-//
-
-/*---------------------------------------------------------------------------*/
-/**
- * Converts a UTF8 string to an int64.
- *
- * @param i_sNumber: A string representation of the number to convert.
- * @return The integer the input string represented.
- */
-/*---------------------------------------------------------------------------*/
- int64 UTF8ToInt64( const char* i_sNumber );
-
-/**
- * Formats an int64 into a UTF8 string.
- *
- * A note on padding: If i_bPad is true, the string will be padded to the
- * maximum size necessary to hold a an int64 representation. For decimal this
- * is 19, for hex it is 16.
- *
- * @param i_iNumber The number to format.
- * @param i_bPad If true, the string will be padded with zeroes. (See note above.)
- * @param i_bHex Indicates whether the string format should be a hexadecimal
- * representation of the integer (true) or a decimal representation (false).
- * @param o_psUTF8 the string representation of the integer
- *
- * @return void
- */
-void Int64ToUTF8(char* const o_psUTF8,
- int64 i_iNumber,
- int i_bPad,
- int i_bHex );
-
-//
-// Functions for converting between binary buffer and hex string
-//
-
-/*--------------------------------------------------------------------------*/
-/**
- * Converts a UTF8 hex string to its binary representation.
- *
- * If o_pBinaryBuffer is null, the function will return the required size.
- * (The required size is always strlen(i_sHexString)/2.)
- *
- * @param i_sHexString: The hex string to convert.
- * @param o_pBinaryBuffer: The buffer in which to put the binary
- * representation of the hex string. If this is null, the function
- * returns the required size.
- * If this is not null, it must be large enough to hold binary conversion.
- *
- * @return The number of bytes put into o_pBinaryBuffer (or the number of bytes
- * required, if o_pBinaryBuffer was null).
- */
-/*---------------------------------------------------------------------------*/
-int ConvertUTF8HexStringToBinary(
- const char* i_sHexString,
- unsigned char* o_pBinaryBuffer);
-
-/**
- * Converts a binary buffer to its UTF8 hex string representation.
- *
- * @param i_pBinaryBuffer: The binary buffer to convert.
- * @param i_iBinaryBufferSize: The size of i_pBinaryBuffer;
- * @param o_sHexString The hex string representation of the
- * binary buffer which should be at least
- * (i_iBinaryBufferSize * 2) + 1 characters long
- */
-void ConvertBinaryToUTF8HexString(
- char* const o_sHexString,
- const unsigned char* const i_pBinaryBuffer,
- int i_iBinaryBufferSize );
-
-//
-// Functions for date strings
-//
-
-/**
- * populates o_psDateTimeISO8601UTC with a null terminated ISO 8601
- * formatted timestamp string from the current UTC time of the
- * system. The timestamp length will be restricted to i_iLength-1
- * characters.
- */
-void GetCurrentDateTimeISO8601UTC(char* const o_psDateTimeISO8601UTC,
- int i_iLength);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif //KMSAgentStringUtilities_h
diff --git a/usr/src/lib/libkmsagent/common/KMSAgent_direct.h b/usr/src/lib/libkmsagent/common/KMSAgent_direct.h
deleted file mode 100644
index e33322a5dd..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAgent_direct.h
+++ /dev/null
@@ -1,942 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file direct.h
- *
- * This file is included in KMSAgentStorage.cpp to provide file handling
- * hooks. It also contains our EEPROM file handling functions.
- *
- * HISTORY:
- * 8/6/07 BJB Added code for 9840D encryption sectors
- * 4/7/08 BJB Changed to remove 'file is junk' message - EVT
- * didn't like it.
- * 4/24/08 BJB Added function call back to T10000/9840D code
- * to lookup eeprom address -
- * so it isn't a hardcoded value.
- * 05/09/08 BJB Added being more conservative about EEPROM so as to change
- * frequency of 32CA problems
- *
- */
-
-
-#ifndef KMSAGENT_DIRECT_H
-#define KMSAGENT_DIRECT_H
-
-#include <stdio.h>
-#include <string.h>
-
-#ifdef WIN32
-#include <direct.h>
-#endif
-
-#define my_unlink(a) unlink(a)
-#define my_rmdir(a) rmdir(a)
-
-#ifndef METAWARE
-
-#define myFILE FILE
-
-#else // METAWARE
-
-#include "SYSCommon.h"
-#include "debug.h"
-#include <snprintf.h>
-
-extern "C" void ecpt_trace_msg(ECPT_TRACE_ENTRY*,const char*,...);
-
-extern char st[256];
-
-
-#ifndef I_KNOW_REAL_NAMES
-#undef fopen
-#undef fclose
-#undef fputs
-#undef fgets
-#undef fwrite
-#undef fread
-#undef unlink
-#undef rmdir
-
-#define fopen my_eeprom_fopen
-#define fclose my_eeprom_fclose
-#define fputs my_eeprom_fputs
-#define fwrite my_eeprom_fwrite
-#define fread my_eeprom_fread
-#define fgets my_eeprom_fgets
-#define unlink my_eeprom_unlink
-#define rmdir my_eeprom_rmdir
-
-#define my_eeprom_rmdir(a) (1)
-
-#endif
-
-
-#include "KMSClientProfile.h"
-extern char KMSAgent_Version[KMS_MAX_VERSION_LENGTH];
-
-unsigned char volatile* eeprom_addr_lookup_FILESYSTEM_START_ADDR(void);
-unsigned int EEPROM_Sector_size(void);
-
-#define FILESYSTEM_SECTOR (eeprom_addr_lookup_FILESYSTEM_START_ADDR())
-// was ((unsigned char volatile*)0xf20000) on 9840
-// was ((unsigned char volatile*)0x41dc0000) on T10000
-
-#define FILESYSTEM_SECTOR_SIZE (EEPROM_Sector_size())
-// was hardcoded 0x20000
-
-#define EEPROM_ERASED_BYTE 0xFF
-
-/* size of a file allowed (not counting the name) */
-#define EEPROM_FILE_SECT_SIZE 0x1800
-
-/* size of a file name allowed (+ the null) */
-#define EEPROM_FNAME_SIZE 0x80
-
-// 1000h = 4096d
-#define EEPROM_BLOCK_SIZE (EEPROM_FILE_SECT_SIZE - EEPROM_FNAME_SIZE - 4)
-
-/* number of 'files' available */
-#define FTABLE_SIZE 0x5
-
-
-#define UCHAR8 unsigned char
-#define UINT32 unsigned long
-
-
-extern "C" unsigned long
-EEPROM_Sector_Erase( unsigned char volatile *sector_address );
-
-extern "C" unsigned long
-Flash_Write( UCHAR8 *destinationP,
- UCHAR8 *sourceP,
- UINT32 byteCount);
-
-extern "C" unsigned long
-Flash_Read( UCHAR8 *dstP,
- UCHAR8 *srcP,
- UINT32 byteCount);
-
-/* a eeprom file */
-struct eepromBlockStruct
-{
- unsigned long fsize;
- char fname[EEPROM_FNAME_SIZE];
- unsigned char fdata[EEPROM_BLOCK_SIZE];
-};
-
-
-struct fileSystem
-{
- struct eepromBlockStruct ftable[FTABLE_SIZE];
- /* what level of toolkit wrote this - for
- future compatibility */
- char writingversion[KMS_MAX_VERSION_LENGTH+1];
-};
-
-
-#define MODE_WRITE 0x01
-#define MODE_READ 0x02
-
-#define MYFILE_CLOSED 0x0
-#define MYFILE_OPEN_READ 0x1
-#define MYFILE_OPEN_WRITE 0x2
-
-
-/* an open file */
-typedef struct fileStruct
-{
- unsigned char *readptr;
- unsigned long readsize;
- unsigned char *writeptr;
- struct eepromBlockStruct *memptr;
- unsigned long mode;
- unsigned long file_number;
-} myFILE;
-
-
-extern "C" myFILE *my_eeprom_fopen (const char *filename, const char *mode);
-extern "C" int my_eeprom_fclose (myFILE *stream);
-extern "C" int my_eeprom_fputs (const char *s, myFILE *stream);
-extern "C" int my_eeprom_fwrite (const char *s, int size, int nobj, myFILE *f);
-extern "C" int my_eeprom_fread (char *s, int size, int nobj, myFILE *f);
-extern "C" char *my_eeprom_fgets (char *s, int n, myFILE *stream);
-extern "C" int my_eeprom_unlink (const char *filename);
-extern "C" int my_eeprom_fsys_erase(void);
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-#ifdef DEFINE_STORAGE
-/* ram copy of the file system */
-struct fileSystem ramFileSystem;
-int file_read = FALSE;
-
-/* file state - open/closed/etc */
-unsigned long fstate[FTABLE_SIZE] = {MYFILE_CLOSED,
- MYFILE_CLOSED,
- MYFILE_CLOSED,
- MYFILE_CLOSED,
- MYFILE_CLOSED};
-#else
-/* ram copy of the file system */
-extern struct fileSystem ramFileSystem;
-extern int file_read;
-
-/* file state - open/closed/etc */
-extern unsigned long fstate[FTABLE_SIZE];
-
-#endif
-
-
-
-#ifdef DEFINE_STORAGE
-
-
-extern "C" unsigned long
-
-
-/* UNIT TEST */
-int TESTV = 0;
-
-/* UNIT TEST */
-#define MY_FLASH_READ(a,b,c) \
- Flash_Read(a,b,c); \
- if (TESTV++ < 5) { \
- ramFileSystem.ftable[0].fname[0] = EEPROM_ERASED_BYTE; \
- ramFileSystem.ftable[1].fsize = EEPROM_BLOCK_SIZE+1; \
- }
-
-
-
-/**
- * my_eeprom_fopen()
- * my filesystem fileopen
- */
-extern "C" myFILE *my_eeprom_fopen(const char *filename, const char *mode)
-{
- int i;
- myFILE *file;
- int open_for_write = TRUE;
- static int Firsttime = TRUE;
- int retries = 100;
-
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, my_eeprom_fopen ) ;
- ecpt_trace_msg( trace, "file %s", (char*)filename);
-
- FATAL_ASSERT(filename);
- FATAL_ASSERT(mode);
-
- if ( (strcmp(mode,"wb") == 0) ||
- (strcmp(mode,"w") == 0))
- {
- // write
- open_for_write = TRUE;
- }
- else if ( (strcmp(mode,"r") == 0) ||
- (strcmp(mode,"rb") == 0) )
- {
- // read binary
- open_for_write = FALSE;
- }
- else
- {
- FATAL_APPLICATION_STATE("my_eeprom_fopen : Illegal mode");
- }
-
- /* read the file table from eeprom? */
- if (!file_read)
- {
- RETRY:
-
- MY_FLASH_READ((unsigned char *)&ramFileSystem,
- (unsigned char *)FILESYSTEM_SECTOR,
- sizeof(ramFileSystem));
-
- /* Audit the filesystem - if it looks junked, reclaim bad files */
-
- for (i=0; i < FTABLE_SIZE; i++)
- {
- if ( (ramFileSystem.ftable[i].fname[0] == EEPROM_ERASED_BYTE) ||
- (ramFileSystem.ftable[i].fsize > EEPROM_BLOCK_SIZE) )
- {
- /* if this looks bad, don't accept this outcome until
- 100 retries */
- if (retries-- > 0)
- {
- ecpt_trace_msg( trace, "file was junk - retrying %s", (char*)filename);
- log_error_printf(
- "KMSAgent_direct::fopen file %d is junk - (name %x, "
- "size %x, data %x) RETRYING \n",
- i,
- ramFileSystem.ftable[i].fname[0],
- ramFileSystem.ftable[i].fsize ,
- ramFileSystem.ftable[i].fdata[0]);
-
- goto RETRY;
- }
- else
- {
- ecpt_trace_msg( trace, "file was junk - formatting %s", (char*)filename);
- log_error_printf(
- "KMSAgent_direct::fopen file %d is junk - (name %x, "
- "size %x, data %x) formatting it\n",
- i,
- ramFileSystem.ftable[i].fname[0],
- ramFileSystem.ftable[i].fsize ,
- ramFileSystem.ftable[i].fdata[0]);
-
- /* set data to reasonable starting values */
- ramFileSystem.ftable[i].fname[0] = 0;
- ramFileSystem.ftable[i].fsize = 0;
- ramFileSystem.ftable[i].fdata[0] = 0;
- }
-
- }
-
- } /* for */
-
- file_read = TRUE;
-
- } /* !file read */
-
- /* read the file table */
- for (i=0; i < FTABLE_SIZE; i++)
- {
- /* compare filename to ram copy filename */
- if (strcmp(filename, (const char *)ramFileSystem.ftable[i].fname) == 0)
- {
-
- if (fstate[i] != MYFILE_CLOSED)
- {
- log_printf("KMSAgent_direct::fopen FN=%s file matches, "
- "FILE %d WAS ALREADY OPEN for %s with mode %s"
- "file size is %d \n",
- filename,
- i,
- (fstate[i] == MYFILE_OPEN_WRITE ? "WRITE": "READ"),
- mode,
- ramFileSystem.ftable[i].fsize);
- }
-
- /* create a new ramfile handle */
- file = malloc(sizeof(myFILE));
-
- /* since file is being rewritten, it is now size 0 */
- if (open_for_write)
- ramFileSystem.ftable[i].fsize = 0;
-
- /* remember the file is open */
- fstate[i]= open_for_write ? MYFILE_OPEN_WRITE : MYFILE_OPEN_READ;
-
-
- /* if filename matches, set file pointers to it */
- file->writeptr = file->readptr = ramFileSystem.ftable[i].fdata;
- file->memptr = &ramFileSystem.ftable[i];
- file->readsize = 0;
- file->mode = open_for_write ? MODE_WRITE : MODE_READ;
- file->file_number = i;
-
-
- log_printf("KMSAgent_direct::fopen FN=%s file matches, "
- "opening existing file number %d with mode %s"
- "file size is %d \n",
- filename,
- i,
- mode,
- ramFileSystem.ftable[i].fsize);
-
- break;
- }
-
- }
-
- /* if no existing entry was found, assign a new entry to this filename */
- if (i == FTABLE_SIZE)
- {
- /* couldn't find an old file and opened for read so return NULL */
- if (open_for_write == FALSE)
- {
-
-
- log_printf("KMSAgent_direct::fopen FN=%s no file match, "
- "file opened for read so return NULL %d\n",
- filename,
- i);
-
-
- return NULL;
- }
-
- /* find a free file pointer */
- for (i=0; i < FTABLE_SIZE ; i++)
- {
- /* empty data will be 0xffffffff since it was copied
- straight from EEPROM */
- if (ramFileSystem.ftable[i].fname[0] == '\0')
- {
- log_printf("KMSAgent_direct::fopen FN=%s no file match, "
- "opening new file %d\n",
- filename,
- i);
-
- /* give it a filename - marks this as in use */
- strcpy ((char *)ramFileSystem.ftable[i].fname, filename);
-
- /* set filesize to zero */
- ramFileSystem.ftable[i].fsize = 0;
-
- /* remember the file is open */
- fstate[i]= open_for_write ? MYFILE_OPEN_WRITE : MYFILE_OPEN_READ;
-
-
- /* create a new ramfile handle */
- file = malloc(sizeof(myFILE));
-
- /* if filename matches, set file pointers to it */
- file->writeptr = file->readptr = ramFileSystem.ftable[i].fdata;
- file->memptr = &ramFileSystem.ftable[i];
- file->readsize = 0;
- file->mode = open_for_write ? MODE_WRITE : MODE_READ;
- file->file_number = i;
-
- break;
- }
-
- }
-
- if (i == FTABLE_SIZE)
- {
- log_error_printf("KMSAgent_direct::fopen FN=%s no free files \n",
- filename);
- /* no free entries - bail */
- return NULL;
- }
-
- }
-
- /* return pointer to the myFILE struct created */
- return file;
-
-}
-
-/**
- * my_eeprom_fclose()
- * my filesystem fileclose
- */
-extern "C" int my_eeprom_fclose(myFILE *f)
-{
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, my_eeprom_fclose ) ;
- ecpt_trace_msg( trace, "entered");
-
- FATAL_ASSERT(f);
-
-#ifdef DEBUG
- log_printf("KMSAgent_direct::fclose FN=%s, "
- "FILE %d "
- "file size is %d \n",
- ramFileSystem.ftable[f->file_number].fname,
- f->file_number,
- ramFileSystem.ftable[f->file_number].fsize);
-#endif
-
- if (fstate[f->file_number] == MYFILE_CLOSED)
- {
- log_error_printf("KMSAgent_direct::fclose FN=%s, "
- "FILE %d WAS ALREADY CLOSED "
- "file size is %d \n",
- ramFileSystem.ftable[f->file_number].fname,
- f->file_number,
- ramFileSystem.ftable[f->file_number].fsize);
- }
-
- /* remember the file is closed */
- fstate[f->file_number]= MYFILE_CLOSED;
-
- /* don't rewrite eeprom unless file was opened for writing */
- if (f->mode == MODE_WRITE)
- {
- /* Erase the sector we are rewriting */
- EEPROM_Sector_Erase( (unsigned char*)FILESYSTEM_SECTOR ) ;
-
- /* remember the version of toolkit that wrote this filesystem
- (for any future compatibility problems). */
- strncpy(ramFileSystem.writingversion,
- KMSAgent_Version,
- sizeof(KMSAgent_Version));
-
- /* flush the memory indicated by myFILE * out to EEPROM */
- /* see boot_eeprom.c for details on Flash_Write */
- Flash_Write ((unsigned char*)FILESYSTEM_SECTOR,
- (unsigned char*)&ramFileSystem,
- FILESYSTEM_SECTOR_SIZE);
- }
-
- /* delete the placeholder file */
- free(f);
-
- return 0;
-}
-
-/**
- * my_eeprom_fputs()
- * my filesystem put string
- */
-extern "C" int my_eeprom_fputs(const char *s, myFILE *f)
-{
- /* put the string to the memory indicated by myFILE */
- int i;
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, my_eeprom_fputs ) ;
-
- ecpt_trace_msg (trace, "\nmy_eeprom_fputs : Entered");
-
-#ifdef DEBUG
- log_printf(
- "\nKMSAgent_direct::my_eeprom_fputs "
- "f->writeptr =%x "
- "f->readptr=%x "
- "f->readsize=%x "
- "f->memptr=%x"
- "f->memptr->fsize=%x\n",
- f->writeptr,
- f->readptr,
- f->readsize,
- f->memptr,
- f->memptr->fsize);
-
-#endif
-
- FATAL_ASSERT(s);
- FATAL_ASSERT(f);
-
- for (i=0;;i++)
- {
- /* end of input string? quit */
- if (*s == '\0')
- break;
-
- /* end of max file memory, quit */
- if ((unsigned char*)s >=
- (unsigned char*)(f->memptr + sizeof(struct eepromBlockStruct)))
- break;
-
- /* copy */
- *(f->writeptr) = *s++;
- f->writeptr++;
-
- /* increment the filesize */
- f->memptr->fsize += 1;
-
- }
-
-#ifdef DEBUG
- log_printf(
- "\nKMSAgent_direct::fputs wrote %d chars, "
- "filesize is %d\n",
- i,
- f->memptr->fsize );
-#endif
-
- /* return how many chars were written */
- return i;
-}
-
-
-/**
- * my_eeprom_fwrite()
- * my filesystem put string
- */
-extern "C" int my_eeprom_fwrite(const char *s,
- int size,
- int nobj,
- myFILE *f)
-{
- /* put the string to the memory indicated by myFILE */
- int i,j;
-
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, my_eeprom_fwrite ) ;
- ecpt_trace_msg ( trace, "Entered");
-
- log_printf(
- "\nKMSAgent_direct::my_eeprom_fputs "
- "f->writeptr =%x "
- "f->readptr=%x "
- "f->readsize=%x "
- "f->memptr=%x"
- "f->memptr->fsize=%x\n",
- f->writeptr,
- f->readptr,
- f->readsize,
- f->memptr,
- f->memptr->fsize);
-
- FATAL_ASSERT(s);
- FATAL_ASSERT(f);
- FATAL_ASSERT((size*nobj) > 0);
-
- for (i=0; i<nobj; i++)
- {
- for (j=0; j<size; j++)
- {
- /* end of max file memory, quit */
- if ((unsigned char*)s >=
- (unsigned char*)(f->memptr + sizeof(struct eepromBlockStruct)))
- goto DONE;
-
- /* copy */
- *(f->writeptr) = *s++;
- f->writeptr++;
-
- /* increment the filesize */
- f->memptr->fsize += 1;
- }
-
- }
-
- DONE:
-
-
-#ifdef DEBUG
- log_printf(
- "\nKMSAgent_direct::fwrite wrote %d chars, "
- "filesize is %d\n",
- i,
- f->memptr->fsize );
-#endif
-
- /* return how many objects were written */
- return i;
-}
-
-
-
-/**
- * my_eeprom_fgets()
- * my filesystem getstring
- */
-extern "C" char *my_eeprom_fgets(char *s, int n, myFILE *f)
-{
- /* put the string to the memory indicated by myFILE */
- int i;
- char *tmp = s;
-
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, my_eeprom_fgets ) ;
- ecpt_trace_msg (trace, "entered");
-
- FATAL_ASSERT(s);
- FATAL_ASSERT(n > 0);
- FATAL_ASSERT(f);
-
-#ifdef DEBUG
- log_printf(
- "\nKMSAgent_direct::my_eeprom_fgets from file %s "
- "fileptr %x "
- "readptr = %x "
- "readsize = %d "
- "filesize = %d \n",
- f->memptr->fname,
- f,
- f->readptr,
- f->readsize,
- f->memptr->fsize);
-#endif
-
- /* get up to n-1 (and a \0) chars */
- for (i=0; i < n; i++)
- {
- /* end of read line? quit */
- if (*f->readptr == '\n')
- {
- /* increment the number of bytes read */
- f->readptr++;
- f->readsize++;
- break;
- }
-
- /* trying to read beyond what was written? quit */
- if (f->readsize >
- f->memptr->fsize)
- {
-#ifdef DEBUG
- log_printf(
- "\nKMSAgent_direct::fgets eof after %d chars, "
- "readsize is %d "
- "filesize is %d\n",
- i,
- f->readsize,
- f->memptr->fsize);
-#endif
- return NULL;
- }
-
- /* trying to read beyond max file memory, quit */
- if ((unsigned char*)f->readptr >=
- (unsigned char*)(f->memptr + sizeof(struct eepromBlockStruct)))
- {
-#ifdef DEBUG
- log_printf(
- "\nKMSAgent_direct::fgets end of max file after %d chars "
- "readsize is %d "
- "filesize is %d\n",
- i,
- f->readsize,
- f->memptr->fsize);
-#endif
- /* EOF or error is signalled by NULL return */
- return NULL;
- }
-
- /* copy a char */
- *tmp++ = *f->readptr;
-
- /* increment the number of bytes read */
- f->readptr++;
- f->readsize++;
-
- } /* for */
-
- /* terminate the returned string with a 0, but not a \n */
- *tmp='\0';
-
-#ifdef DEBUG
- /* terminate returned string after a non-absurd number of chars
- */
- log_printf(
- "\nKMSAgent_direct::fgets string [%s] "
- "end of line after %d chars "
- "readsize is %d "
- "filesize is %d\n",
- s,
- i,
- f->readsize,
- f->memptr->fsize);
-#endif
-
- /* on success, return the original pointer */
- return s;
-}
-
-
-
-
-/**
- * my_eeprom_fread()
- * my filesystem read a file
- */
-extern "C" int my_eeprom_fread(char *s, int size, int nobj, myFILE *f)
-{
- /* put the string to the memory indicated by myFILE */
- int i,j;
-
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, my_eeprom_fread ) ;
- ecpt_trace_msg (trace, "entered");
-
- FATAL_ASSERT(s);
- FATAL_ASSERT(f);
- FATAL_ASSERT((size*nobj) > 0);
-
- for (i=0; i<nobj; i++)
- {
- for (j=0; j<size; j++)
- {
- /* end of written file memory, quit */
- if ( (unsigned char*) s >=
- (unsigned char*) (f->memptr + f->memptr->fsize) )
- goto DONE;
-
- /* copy */
- *s++ = *(f->readptr);
- f->readptr++;
- }
-
- }
-
- DONE:
-
-#ifdef DEBUG
- log_printf(
- "\nKMSAgent_direct::fread read %d chars, "
- "filesize is %d\n",
- i,
- f->memptr->fsize );
-#endif
-
- /* return how many objects were written */
- return i;
-
-}
-
-
-
-
-
-
-/**
- * my_eeprom_unlink() - delete the file named
- */
-extern "C" int my_eeprom_unlink(const char *filename)
-{
- int i;
-
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, my_eeprom_fgets ) ;
- ecpt_trace_msg (trace, "Entered fn=%s", (char*)filename);
-
- /* assume the file is closed */
- FATAL_ASSERT(filename);
-
- /* read the file table */
- for (i=0; i < FTABLE_SIZE; i++)
- {
-
- if (fstate[i] != MYFILE_CLOSED)
- {
- log_error_printf("KMSAgent_direct::unlink FN=%s file matches, "
- "FILE %d WAS STILL OPEN for %s"
- "file size is %d \n",
- filename,
- i,
- (fstate[i] == MYFILE_OPEN_WRITE ? "WRITE": "READ"),
- ramFileSystem.ftable[i].fsize);
- }
-
- /* compare input filename to ram copy filename */
- if (strcmp(filename, (const char*)ramFileSystem.ftable[i].fname) == 0)
- {
- /* if filename matches, zero it out to delete the file */
- ramFileSystem.ftable[i].fname[0] = '\0';
- ramFileSystem.ftable[i].fsize = 0;
- ramFileSystem.ftable[i].fdata[0] = 1;
-
- /* remember the file is closed */
- fstate[i]= MYFILE_CLOSED;
-
- EEPROM_Sector_Erase( FILESYSTEM_SECTOR ) ;
-
- /* remember the version of toolkit that wrote this filesystem
- (for any future compatibility problems). */
- strncpy(ramFileSystem.writingversion,
- KMSAgent_Version,
- sizeof(KMSAgent_Version));
-
- /* flush the memory indicated by myFILE * out to EEPROM */
- Flash_Write ((unsigned char*)FILESYSTEM_SECTOR,
- (unsigned char*)&ramFileSystem,
- FILESYSTEM_SECTOR_SIZE);
-
- break;
- }
-
- }
-
-#ifdef DEBUG
- log_printf ("my_eeprom_unlink : returning");
-#endif
-
- if (i == FTABLE_SIZE)
- return -1;
-
- /* success */
- return 0;
-}
-
-
-/**
- * my_eeprom_fsys_erase() - delete all files
- */
-extern "C" int my_eeprom_fsys_erase(void)
-{
- int i;
-
- ECPT_TRACE_ENTRY *trace = NULL;
- ECPT_TRACE( trace, my_eeprom_fread ) ;
- ecpt_trace_msg (trace, "my_eeprom_fsys_erase : entering ");
-
- /* read the file table */
- for (i=0; i < FTABLE_SIZE; i++)
- {
- if (fstate[i] != MYFILE_CLOSED)
- {
- log_error_printf("KMSAgent_direct::fsys_erase FN=%s file "
- "FILE %d WAS STILL OPEN for %s "
- "file size is %d \n",
- ramFileSystem.ftable[i].fname,
- i,
- (fstate[i] == MYFILE_OPEN_WRITE ? "WRITE": "READ"),
- ramFileSystem.ftable[i].fsize);
- }
-
- /* zero filename out to delete the file */
- ramFileSystem.ftable[i].fname[0] = '\0';
- ramFileSystem.ftable[i].fsize = 0;
- ramFileSystem.ftable[i].fdata[0] = 2;
-
- /* remember the file is closed */
- fstate[i]= MYFILE_CLOSED;
-
- EEPROM_Sector_Erase( FILESYSTEM_SECTOR ) ;
-
- /* remember the version of toolkit that wrote this filesystem
- (for any future compatibility problems). */
- strncpy(ramFileSystem.writingversion,
- KMSAgent_Version,
- sizeof(KMSAgent_Version));
-
- /* flush the memory indicated by myFILE * out to EEPROM */
- Flash_Write ((unsigned char*)FILESYSTEM_SECTOR,
- (unsigned char*)&ramFileSystem,
- FILESYSTEM_SECTOR_SIZE);
-
-
- }
-
-#ifdef DEBUG
- log_printf ("\nmy_eeprom_fsys_erase : returning");
-#endif
-
- if (i == FTABLE_SIZE)
- return -1;
-
- /* success */
- return 0;
-}
-
-
-
-
-#endif // DEFINE_STORAGE
-#endif // METAWARE
-#endif
-
diff --git a/usr/src/lib/libkmsagent/common/KMSAuditLogger.cpp b/usr/src/lib/libkmsagent/common/KMSAuditLogger.cpp
deleted file mode 100644
index 3ef29efe80..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAuditLogger.cpp
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAuditLogger.cpp
- */
-
-#ifndef WIN32
-//#include <syslog.h>
-#include <stdarg.h>
-#endif
-
-#include <stdio.h>
-
-#ifndef METAWARE
-#include <sys/timeb.h>
-#endif
-
-#include <time.h>
-
-#include "KMSAuditLogger.h"
-#include "ApplianceParameters.h"
-
-#define AGENT_LOG_FILE "KMSAgentLog.log"
-
-// globals for file logging
-static FILE* g_fpLogFileHandle = NULL;
-static K_MUTEX_HANDLE g_stLogFileMutex;
-static char g_sLogFileName[MAX_LOG_FILE_NAME_LENGTH];
-
-// Find header in AuditLogger.h
-int InitializeFileLogging( const char* const i_sWorkingDirectory )
-{
- FATAL_ASSERT( i_sWorkingDirectory );
- if ( g_fpLogFileHandle != NULL )
- {
- return false;
- }
-
- char sLogFileName[MAX_LOG_FILE_NAME_LENGTH];
- strncpy( sLogFileName, i_sWorkingDirectory, MAX_LOG_FILE_NAME_LENGTH );
-
- if ( sLogFileName[ strlen( sLogFileName )-1 ] != PATH_SEPARATOR )
- {
- sLogFileName[ strlen(sLogFileName) ] = PATH_SEPARATOR ;
- sLogFileName[ strlen(sLogFileName) + 1 ] = '\0';
- }
-
- strncat( sLogFileName, AGENT_LOG_FILE, MAX_LOG_FILE_NAME_LENGTH );
-
- strcpy(g_sLogFileName, sLogFileName);
-
- if ( K_CreateMutex( &g_stLogFileMutex ) != K_SYS_OK )
- {
- return false;
- }
-
- if ( NULL == ( g_fpLogFileHandle = fopen( g_sLogFileName, "a+t" ) ) )
- {
- return false;
- }
-
- return true;
-}
-
-// Find header in AuditLogger.h
-int FinalizeFileLogging()
-{
- FATAL_ASSERT( g_fpLogFileHandle != NULL );
-
- K_DestroyMutex( g_stLogFileMutex );
-
- bool bSuccess = ( 0 == fclose( g_fpLogFileHandle ) );
-
- g_fpLogFileHandle = NULL;
-
- return bSuccess;
-}
-
-// Find header in AuditLogger.h
-extern "C" int LogToFile( int i_iErrno,
- const char* const i_sLogLine )
-{
- if ( g_fpLogFileHandle == NULL )
- {
- return false;
- }
-
- CAutoMutex oAutoMutex( g_stLogFileMutex );
-
- if (0 > fputs( i_sLogLine, g_fpLogFileHandle ) )
- {
- return false;
- }
-
- if ( 0 > fputs( "\n", g_fpLogFileHandle ) )
- {
- return false;
- }
-
- if ( fflush( g_fpLogFileHandle ) != 0 )
- {
- return false;
- }
-
- return true;
-}
-
-static const int g_iMaxLogFileLineLength = MAX_LOG_FILE_LINE_LENGTH;
-
-
-int Log_function(
- int i_iErrno,
- const char* const i_sOperation,
- const char* const i_sEntityID,
- const char* const i_sNetworkAddress,
- const char* const i_sMessage )
-{
- char sFileLogEntry[500];
- const int iTempSize = 100;
-
- timeb stTime;
- ftime(&stTime);
-
- struct tm* pstTime = gmtime( &(stTime.time) );
-
- K_snprintf(
- sFileLogEntry,
- iTempSize,
- "%04d-%02d-%02d %02d:%02d:%02d.%03dZ",
- pstTime->tm_year+1900,
- pstTime->tm_mon+1,
- pstTime->tm_mday,
- pstTime->tm_hour,
- pstTime->tm_min,
- pstTime->tm_sec,
- stTime.millitm);
-
- if ( i_sEntityID )
- {
- strcat(sFileLogEntry," AgentID=");
- strcat(sFileLogEntry,i_sEntityID);
- }
-
- if ( i_sNetworkAddress )
- {
- strcat(sFileLogEntry," KMA Address=");
- strcat(sFileLogEntry, i_sNetworkAddress);
- }
- if ( i_sOperation )
- {
- strcat(sFileLogEntry, " Operation=");
- strcat(sFileLogEntry,i_sOperation);
- }
-
- if ( i_sMessage )
- {
- strcat(sFileLogEntry, " Msg=");
- strcat(sFileLogEntry, i_sMessage);
- }
-
- return LogToFile( i_iErrno, sFileLogEntry );
-}
-
-int Log2(char* msg1,
- char* msg2)
-{
- return 0;
-}
diff --git a/usr/src/lib/libkmsagent/common/KMSAuditLogger.h b/usr/src/lib/libkmsagent/common/KMSAuditLogger.h
deleted file mode 100644
index a78010c6f8..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSAuditLogger.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSAuditLogger.h
- */
-
-#ifndef KMSAuditLogger_h
-#define KMSAuditLogger_h
-
-#ifndef METAWARE
-#ifdef WIN32
-#pragma warning(disable: 4786)
-#endif
-
-// SYSCommon.h needs the following include
-#include <stdio.h>
-
-#include "SYSCommon.h"
-#include "AutoMutex.h"
-#endif // METAWARE
-
-#include "ApplianceParameters.h"
-
-
-#define MAX_LOG_FILE_LINE_LENGTH MAXIMUM_UTF8_STRING_VALUE_LENGTH + 128
-#define MAX_LOG_FILE_NAME_LENGTH 256
-
-/**
- * Opens a logging file for appending, or creation,
- * with the name "KMSAgentLog.log" beneath the specified directory.
- * @return true on success
- */
-int InitializeFileLogging( const char* const i_sWorkingDirectory );
-
-/**
- * closes the log file
- * @return true if successful close
- */
-int FinalizeFileLogging();
-
-/**
- * write a log entry to the log file
- * @return true if successful
- */
-extern "C" int LogToFile( int i_iErrno,
- const char* const i_sLogLine );
-
-/**
- * Formats a message and to the log file using <code>LogToFile</code>,
- * generating a ISO8601UTC timestamp and
- * appending the various function arguments together.
- * @param i_sOperation optional, an operation and error condition string
- * @param i_sEntityID optional, the name of the entity performing the operation
- * @param i_sNetworkAddress optional, the address of the KMS involved in the operation
- * @param i_sMessage optional, the error message details
- * @return 0 if successful
- */
-int Log_function(
- int i_iErrno,
- const char* const i_sOperation,
- const char* const i_sEntityID,
- const char* const i_sNetworkAddress,
- const char* const i_sMessage );
-
-// helper macro to convert value to a string
-#define Log(a,b,c,d) Log_function(a, #a, b, c, d)
-
-#define AUDIT_CLIENT_LOG_BASE 0x200
-
-#define AUDIT_CLIENT_LOAD_PROFILE_CREATE_DIRECTORY_FAILED (AUDIT_CLIENT_LOG_BASE + 0x0)
-#define AUDIT_CLIENT_LOAD_PROFILE_CREATE_PROFILE_CONFIG_FAILED (AUDIT_CLIENT_LOG_BASE + 0x1)
-#define AUDIT_CLIENT_LOAD_PROFILE_CREATE_PROFILE_CONFIG_SUCCEEDED (AUDIT_CLIENT_LOG_BASE + 0x2)
-#define AUDIT_CLIENT_SAVE_CLUSTER_INFORMATION_SUCCEEDED (AUDIT_CLIENT_LOG_BASE + 0x3)
-
-#define AUDIT_CLIENT_GET_ROOT_CA_CERTIFICATE_SUCCESS (AUDIT_CLIENT_LOG_BASE + 0x4)
-#define AUDIT_CLIENT_GET_CERTIFICATE_SUCCESS (AUDIT_CLIENT_LOG_BASE + 0x5)
-#define AUDIT_CLIENT_LOAD_PROFILE (AUDIT_CLIENT_LOG_BASE + 0x6)
-#define AUDIT_CLIENT_GetClusterInformation (AUDIT_CLIENT_LOG_BASE + 0x7)
-
-#define AGENT_LOADBALANCER_FAILOVER (AUDIT_CLIENT_LOG_BASE + 0x8)
-
-#define AUDIT_CLIENT_AGENT_GET_CLUSTER_INFORMATION_INVALID_PARAMETERS (AUDIT_CLIENT_LOG_BASE + 0x9)
-#define AUDIT_CLIENT_AGENT_SELECT_APPLIANCE_INVALID_PARAMETERS (AUDIT_CLIENT_LOG_BASE + 0xa)
-#define AUDIT_CLIENT_AGENT_LOAD_PROFILE_INVALID_PARAMETERS (AUDIT_CLIENT_LOG_BASE + 0xc)
-#define AUDIT_CLIENT_AGENT_UNLOAD_PROFILE_INVALID_PARAMETERS (AUDIT_CLIENT_LOG_BASE + 0xd)
-#define AUDIT_CLIENT_AGENT_LIST_KEY_GROUPS_INVALID_PARAMETERS (AUDIT_CLIENT_LOG_BASE + 0xe)
-#define AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_PARAMETERS (AUDIT_CLIENT_LOG_BASE + 0xf)
-#define AUDIT_CLIENT_AGENT_CREATE_DATA_UNIT_INVALID_PARAMETERS (AUDIT_CLIENT_LOG_BASE + 0x10)
-#define AUDIT_CLIENT_AGENT_DISASSOCIATE_DATA_UNIT_KEYS_INVALID_PARAMETERS (AUDIT_CLIENT_LOG_BASE + 0x11)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_PARAMETERS (AUDIT_CLIENT_LOG_BASE + 0x12)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_INVALID_PARAMETERS (AUDIT_CLIENT_LOG_BASE + 0x13)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_BY_EXTERNAL_UNIQUE_ID_INVALID_PARAMETERS (AUDIT_CLIENT_LOG_BASE + 0x14)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_PARAMETERS (AUDIT_CLIENT_LOG_BASE + 0x15)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_PARAMETERS (AUDIT_CLIENT_LOG_BASE + 0x16)
-#define AUDIT_CLIENT_AGENT_CREATE_AUDIT_LOG_INVALID_PARAMETERS (AUDIT_CLIENT_LOG_BASE + 0x17)
-#define AUDIT_CLIENT_AGENT_CREATED_AUDIT_LOG_INVALID_PARAMETERS (AUDIT_CLIENT_LOG_BASE + 0x18)
-#define AUDIT_CLIENT_AGENT_LOAD_PROFILE_PROFILE_ALREADY_LOADED (AUDIT_CLIENT_LOG_BASE + 0x19)
-#define AGENT_LOADBALANCER_AESKEYUNWRAP_GETKWK_RETURNED_NULL (AUDIT_CLIENT_LOG_BASE + 0x1a)
-#define AGENT_LOADBALANCER_AESKEYUNWRAP_KEY_UNWRAP_FAILED (AUDIT_CLIENT_LOG_BASE + 0x1b)
-#define AUDIT_CLIENT_FILTER_CLUSTER_FAILED (AUDIT_CLIENT_LOG_BASE + 0x1c)
-#define AUDIT_CLIENT_FILTER_CLUSTER (AUDIT_CLIENT_LOG_BASE + 0x1d)
-
-
-
-
-
-
-int Log_function(int i_iErrno,
- const char* const i_sOperation,
- const char* const i_sEntityID,
- const char* const i_sNetworkAddress,
- const char* const i_sMessage );
-
-/**
- * Log generically 2 parameters (presumably to the screen,
- * but could be to a file
- */
-extern "C" int Log2(char* msg1,
- char* msg2);
-
-#endif //KMSAuditLogger_h
diff --git a/usr/src/lib/libkmsagent/common/KMSClientProfile.cpp b/usr/src/lib/libkmsagent/common/KMSClientProfile.cpp
deleted file mode 100644
index cefd75a1b9..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSClientProfile.cpp
+++ /dev/null
@@ -1,2878 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#include <stdio.h>
-#include <errno.h>
-
-#if !defined(UNIX) && !defined(METAWARE)
-#include "KMSAgent_direct.h"
-#endif
-
-#include <string.h>
-
-#include "KMSClientProfile.h"
-
-#include "KMSAgent.h"
-#include "KMS_CAStub.h"
-#include "KMS_CertificateStub.h"
-#include "KMS_DiscoveryStub.h"
-#include "KMSClientProfileImpl.h"
-#include "KMSAuditLogger.h"
-#include "KMSAgentSoapUtilities.h"
-#include "KMSAgentStringUtilities.h"
-
-
-#include "KMSAgentPKICommon.h" // must be before agentstorage
-
-#include "stdsoap2.h"
-#include "KMSAgentStorage.h" // uses KMSClientProfile
-
-
-#include "KMSAgentWebServiceNamespaces.h"
-#include "k_setupssl.h"
-#include "KMSAgentChallenge.h"
-#include "KMSAgentCryptoUtilities.h"
-#include "ApplianceParameters.h"
-#include "AutoMutex.h"
-
-#include "KMSAgentLoadBalancer.h"
-#include "KMSAgentDataUnitCache.h"
-
-#include "ClientSoapFaultCodes.h"
-#ifdef METAWARE
-#include "debug.h"
-#include "sizet.h"
-typedef unsigned char uint8_t;
-typedef unsigned short uint16_t;
-typedef unsigned int uint32_t;
-typedef unsigned long long uint64_t;
-#include "literals.h"
-#endif
-#include "KMSAgentAESKeyWrap.h"
-
-#if defined(METAWARE) && defined(DEBUG)
-#include "debug.h"
-#endif
-#include "KMSAuditLogger.h"
-#include "KMSClientProfileImpl.h"
-
-#ifdef METAWARE
-extern "C" void
-tnMsg( const char *format,
- ... );
-#endif
-
-bool g_bUseFileLog = false;
-char g_wsWorkingDirectory[KMS_MAX_PATH_LENGTH+1] = "./";
-
-
-static bool InitializeLogging(
- const utf8cstr i_wsWorkingDirectory,
- int i_bUseFileLog )
-{
- FATAL_ASSERT( !i_bUseFileLog || i_wsWorkingDirectory );
-
- bool bFileLogSuccess = true;
-
- g_bUseFileLog = ( i_bUseFileLog != 0 );
-
- // InitializeFileLogging must always be called,
- // because the file is always used by FATALs.
-
- bFileLogSuccess = InitializeFileLogging( i_wsWorkingDirectory ) ? true:false;
-
- return bFileLogSuccess;
-}
-
-static void FinalizeLogging()
-{
- // FinalizeFileLogging must always be called,
- // because the file is always used by FATALs.
- FinalizeFileLogging();
-
- return;
-}
-
-
-
-
-/*---------------------------------------------------------------------------
- * Function: KMSClient_InitializeLibrary
- *
- *--------------------------------------------------------------------------*/
-
-bool KMSClient_InitializeLibrary(
- const utf8cstr i_wsWorkingDirectory,
- int i_bUseFileLog)
-{
- bool bSuccess;
-
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("KMSClient_InitializeLibrary : ENTERING");
-#endif
-
- // setup SSL
- bSuccess = K_SetupSSL() == 1;
- if(!bSuccess)
- {
- return false;
- }
-
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("KMSClient_InitializeLibrary : set current directory");
-#endif
-
- // if i_wsWorkingDirectory is null, caller means current directory
- if ( i_wsWorkingDirectory != NULL )
- {
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("KMSClient_InitializeLibrary : check working directory");
-#endif
-
- // string is there but is empty or junk
- if (strlen(i_wsWorkingDirectory) <= 0)
- {
- strcpy(i_wsWorkingDirectory, ".");
- }
-
- if ( strlen(i_wsWorkingDirectory) >= KMS_MAX_PATH_LENGTH )
- {
- return false;
- }
-
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("KMSClient_InitializeLibrary : set global working directory");
-#endif
-
- // set global working directory to input
- strncpy(g_wsWorkingDirectory,
- i_wsWorkingDirectory,
- KMS_MAX_PATH_LENGTH);
- g_wsWorkingDirectory[KMS_MAX_PATH_LENGTH] = 0;
- }
- else
- {
- strcpy(g_wsWorkingDirectory, ".");
- }
-
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("KMSClient_InitializeLibrary : Initialize logging");
-#endif
-
- // initialize file logging
- bSuccess = InitializeLogging( g_wsWorkingDirectory,
- i_bUseFileLog);
-
- return bSuccess;
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: KMSClient_FinalizeLibrary
- *--------------------------------------------------------------------------*/
-bool KMSClient_FinalizeLibrary()
-{
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("KMSClient_FinalizeLibrary : ENTERING");
-#endif
-
- K_CleanupSSL();
-
- FinalizeLogging();
-
- return true; /* always */
-}
-
-
-int LogError_lastErrno;
-
-
-/**
- * Construct a message for the KMSAuditLogger and store the message
- * in the profile as the last error message.
- */
-void LogError_function(KMSClientProfile *i_pProfile,
- int i_iErrno,
- const char* i_sOperation,
- const char* i_sEntityID,
- const char* i_sNetworkAddress,
- const char* i_sMessage )
-{
- FATAL_ASSERT( i_pProfile && i_sOperation );
-
- // save for caller's use - this shouldn't be a global, but I don't
- // want this as an item in the profile as I don't want it persisted
- LogError_lastErrno = i_iErrno;
-
- // log the message to a data file (and internal logs)
-#ifndef METAWARE
- if ( g_bUseFileLog )
-#endif
- {
- Log_function(i_iErrno,
- i_sOperation,
- i_sEntityID,
- i_sNetworkAddress,
- i_sMessage);
- }
-
-#ifdef METAWARE
- /* print this to the T10000/9840 VOP */
- /* NOTE the \n is important to VOP - leave it in */
- tnMsg("`msg`KMS2.0:msg#=%i,op=%s\r\n",
- i_iErrno,
- i_sOperation);
-
- tnMsg("`msg`msg=%s,eid=%s,addr=%s\r\n",
- i_sMessage,
- i_sEntityID,
- i_sNetworkAddress);
-
-#endif
-
- // copy the error message into the profile (for later reference)
- strncpy(i_pProfile->m_wsErrorString,
- i_sOperation,
- KMS_MAX_ERROR_STRING);
-
- // make sure to NUL out the end
- i_pProfile->m_wsErrorString[KMS_MAX_ERROR_STRING] = 0;
-
- if ( i_sEntityID )
- {
- strncat(i_pProfile->m_wsErrorString,
- i_sEntityID,
- KMS_MAX_ERROR_STRING);
- }
-
- if ( i_sNetworkAddress )
- {
- strncat(i_pProfile->m_wsErrorString,
- ",Address=",
- KMS_MAX_ERROR_STRING);
- strncat(i_pProfile->m_wsErrorString,
- i_sNetworkAddress,
- KMS_MAX_ERROR_STRING);
- }
-
- if ( i_sMessage )
- {
- strncat(i_pProfile->m_wsErrorString,
- ",Msg=",
- KMS_MAX_ERROR_STRING);
- strncat(i_pProfile->m_wsErrorString,
- i_sMessage,
- KMS_MAX_ERROR_STRING);
- }
-
- // make sure to NUL out the end
- i_pProfile->m_wsErrorString[KMS_MAX_ERROR_STRING] = 0;
-
-}
-
-// see KMSClientProfileImpl.h
-bool SSL_InvalidCertificate (const char * const i_sErrorString)
-{
- if (
- // OpenSSL generates this msg
- strstr(i_sErrorString, "sslv3 alert certificate unknown"))
- {
- return true;
- }
- return false;
-
-}
-
-// see KMSClientProfileImpl.h
-bool ServerError (const char * i_sErrorString, int i_iErrno )
-{
- // The Client Soap Fault Code returned by the KMA
- // may be at the start of i_sErrorString or immediately
- // follwing "SoapFaultString=" depending on the caller's
- // string
-
- int iErrorCode;
-
- const char* sFaultstringStart = strstr(i_sErrorString, "SoapFaultString=" );
- if ( sFaultstringStart )
- {
- iErrorCode = GET_FAULT_CODE( sFaultstringStart + strlen("SoapFaultString=") );
- }
- else
- {
- // This may be zero if there is no error code at the start of the string.
- iErrorCode = GET_FAULT_CODE( i_sErrorString );
- }
-
- // the following is commented out so the former check can be observed. This check is no longer
- // made since invalid certificate failures may be due to a KMA that is behind on
- // replication updates hence failover would succeed.
-// if (
-// // OpenSSL generates this msg
-// SSL_InvalidCertificate(i_sErrorString))
-// {
-// return false;
-// }
-
- if (
- // when the KMA is locked
- iErrorCode == CLIENT_ERROR_AGENT_APPLIANCE_LOCKED
-
- // KMS 2.2 change when the KMA is locked
- || iErrorCode == CLIENT_ERROR_MANAGER_APPLIANCE_LOCKED
-
- // KMS 2.2 change for core security internal error
- || iErrorCode == CLIENT_ERROR_MANAGER_INTERNAL
-
- // if the KMA's pre-gen'd key pool is depleted
- || iErrorCode == CLIENT_ERROR_AGENT_NO_READY_KEYS
-
- // if the KMA's HSM is broke and the KMA is in FIPS mode
- || iErrorCode == CLIENT_ERROR_SERVER_HSM_REQUIRED_BUT_MISSING
-
- // when the server is too slow
- || NULL != strstr( i_sErrorString, "Timeout" )
- || NULL != strstr( i_sErrorString, "Operation interrupted or timed out" )
-
- // The Appliance is powered down, or is not reachable
- || NULL != strstr( i_sErrorString, "Connection refused" )
-
- || NULL != strstr( i_sErrorString, "Unknown error" )
-
- // SOAP EOF
- || NULL != strstr( i_sErrorString, "End of file or no input:" )
-
- // Appliance server software is not running (while Appliance machine is OK)
- || NULL != strstr( i_sErrorString, "connect failed in tcp_connect()" )
-
- // If the server has an internal error but still responds
- || NULL != strstr( i_sErrorString, "Server Error" )
-
- // OpenSSL protocol errors (Note: the SSL_ERROR_SSL may be due
- // to invalid client-side values, but for now it's used as a
- // catch-all; a side-effect is that any actual invalid client-side
- // value will cause one audit log entry to be created on each
- // Appliance in the cluster).
- || NULL != strstr( i_sErrorString,
- "Error observed by underlying BIO: No error" )
- || NULL != strstr( i_sErrorString,
- "EOF was observed that violates the protocol" )
- || NULL != strstr( i_sErrorString,
- "SSL_ERROR_SSL" ) )
- {
- return true;
- }
-
-#ifndef WIN32
- // check for errno values that imply connection problems to the server
- switch (i_iErrno)
- {
- case ECONNABORTED : return true; // Connection aborted.
- case ECONNREFUSED : return true; // Connection refused.
- case ECONNRESET : return true; // Connection reset.
- case EHOSTUNREACH : return true; // Host is unreachable.
- case ENETDOWN : return true; // Network is down.
- case ENETRESET : return true; // Connection aborted by network.
- case ENETUNREACH : return true; // Network unreachable.
- case ENOPROTOOPT : return true; // Protocol not available.
-#ifndef METAWARE
- case ETIME : return true; // Stream ioctl() timeout.
-#endif
- case ETIMEDOUT : return true; // Connection timed out.
- }
-#endif
- // at this point we conclude its a client side issue
- return false;
-}
-
-/*---------------------------------------------------------------------------
- * Function: KMSClient_GetLastErrorMessage
- *
- *--------------------------------------------------------------------------*/
-
-// extern "C"
-utf8char * KMSClient_GetLastErrorMessage(KMSClientProfile *i_pProfile)
-{
- FATAL_ASSERT(i_pProfile);
-
- CAutoMutex oAutoMutex( 0 );
- if ( i_pProfile->m_pLock )
- {
- oAutoMutex.Lock( (K_MUTEX_HANDLE)i_pProfile->m_pLock );
- }
-
- return i_pProfile->m_wsErrorString;
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: KMSClient_RetrieveEntityCertificate
- * Get the Root CA Certificate and store it into the profile
- *--------------------------------------------------------------------------*/
-static bool KMSClient_RetrieveEntityCertificate(
- KMSClientProfile* i_pProfile,
- utf8cstr i_wsEntityID,
- utf8cstr i_wsPassphrase,
- char* const o_sHexHashedPassphrase )
-{
- FATAL_ASSERT( i_pProfile && i_wsEntityID && i_wsPassphrase );
-
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("KMSClient_RetrieveEntityCertificate : entered");
-#endif
-
- CAutoMutex oAutoMutex( (K_MUTEX_HANDLE)i_pProfile->m_pLock );
- char sSoapFaultMsg[g_iMAX_SOAP_FAULT_MESSAGE_LENGTH];
- char sKmaAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH];
-
- strcpy(o_sHexHashedPassphrase, "");
-
- bool bSuccess = true;
- bool bTryFailOver = false;
-
- struct soap *pstCASoap;
- pstCASoap = (struct soap *) malloc( sizeof(struct soap) );
- if(pstCASoap == NULL)
- {
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("Malloc %x pstCASoap returned null\n", sizeof(struct soap));
-#endif
- LogError(i_pProfile,
- LoadProfile_AUDIT_CLIENT_GET_ROOT_CA_CERTIFICATE_SOAP_ERROR,
- NULL,
- NULL,
- "malloc failure for pstCASoap" );
- return false;
- }
-
- // initialize the SOAP connection that will get the RootCA
- soap_init2( pstCASoap, (SOAP_XML_STRICT | SOAP_C_UTFSTRING), (SOAP_XML_STRICT | SOAP_C_UTFSTRING) );
-
-#ifdef METAWARE
- K_SetupCallbacks ( pstCASoap );
-#endif
-
- CCertificate* pRootCACertificate = 0;
- CCertificate* pEntityCertificate = 0;
- CPrivateKey* pEntityPrivateKey = 0;
-
- soap_set_namespaces( pstCASoap, KMS_CA_namespaces );
-
- pstCASoap->connect_timeout = i_pProfile->m_iTransactionTimeout;
- pstCASoap->send_timeout = i_pProfile->m_iTransactionTimeout;
- pstCASoap->recv_timeout = i_pProfile->m_iTransactionTimeout;
-
- struct soap *pstCertificateSoap;
-
- pstCertificateSoap = (struct soap *) malloc( sizeof(struct soap) );
-
- if(pstCertificateSoap == NULL)
- {
-#if defined(METAWARE)
- log_printf("Malloc %x pstCertificateSoap returned null\n",
- sizeof(struct soap));
-#endif
- soap_free( pstCASoap );
- free(pstCASoap);
- return false;
- }
-
- // initialize the SOAP connection that will get the Certificate
- soap_init2( pstCertificateSoap, (SOAP_XML_STRICT | SOAP_C_UTFSTRING), (SOAP_XML_STRICT | SOAP_C_UTFSTRING) );
-
-#ifdef METAWARE
- K_SetupCallbacks ( pstCertificateSoap );
-#endif
-
- soap_set_namespaces( pstCertificateSoap, KMS_Certificate_namespaces );
-
- pstCertificateSoap->connect_timeout = i_pProfile->m_iTransactionTimeout;
- pstCertificateSoap->send_timeout = i_pProfile->m_iTransactionTimeout;
- pstCertificateSoap->recv_timeout = i_pProfile->m_iTransactionTimeout;
-
- CAgentLoadBalancer oLoadBalancer(i_pProfile);
- int iIndex = oLoadBalancer.Balance();
-
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("KMSClient_RetrieveEntityCertificate : call KMS_CA__RetrieveRootCACertificate");
-#endif
-
- // get the server's URL that will provide SOAP services
- do
- {
- bSuccess = true;
- bTryFailOver = false;
- bool bFailedOnRetrieveRootCA = false;
- const char* sURL = 0;
-
- if ( bSuccess )
- {
- sURL = oLoadBalancer.GetHTTPURL(iIndex,
- i_pProfile->m_iPortForCAService);
-
- if ( !sURL )
- {
- bSuccess = false;
- }
- }
-
- if ( bSuccess )
- {
- strncpy(i_pProfile->m_sURL, sURL, KMS_MAX_URL);
- i_pProfile->m_sURL[KMS_MAX_URL] = 0;
- }
-
-
- // SOAP CALL - retrieve Root CA Certificate from the Server
- struct KMS_CA::
- KMS_CA__RetrieveRootCACertificateResponse stRootCACertificateResponse;
-
- if ( bSuccess )
- {
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("KMSClient_RetrieveCertificate : call KMS_CA__RetrieveRootCACertificate again");
-#endif
- bSuccess =
- KMS_CA::soap_call_KMS_CA__RetrieveRootCACertificate(
- pstCASoap,
- i_pProfile->m_sURL,
- NULL,
- i_wsEntityID,
- stRootCACertificateResponse ) == SOAP_OK;
-
- if ( !bSuccess )
- {
- GetSoapFault(sSoapFaultMsg, (struct soap*)pstCASoap);
- GetPeerNetworkAddress(sKmaAddress, pstCASoap);
- LogError(i_pProfile,
- LoadProfile_AUDIT_CLIENT_GET_ROOT_CA_CERTIFICATE_SOAP_ERROR,
- NULL,
- sKmaAddress,
- sSoapFaultMsg );
-
- bTryFailOver = ServerError(GET_SOAP_FAULTSTRING(pstCASoap), pstCASoap->errnum);
- bFailedOnRetrieveRootCA = true;
- }
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 1\n");
- }
-#endif
-
-
- // Validate the SOAP response
- if ( bSuccess )
- {
- if ( stRootCACertificateResponse.RootCACertificate.__size < 1 ||
- stRootCACertificateResponse.RootCACertificate.__ptr == NULL ||
- stRootCACertificateResponse.AuthenticationHashIterationCount <
- MIN_AUTHENTICATION_ITERATION_COUNT ||
- stRootCACertificateResponse.AuthenticationHashIterationCount >
- MAX_AUTHENTICATION_ITERATION_COUNT ||
- stRootCACertificateResponse.ClientAuthenticationChallenge.__size !=
- AUTHENTICATION_CHALLENGE_LENGTH ||
- stRootCACertificateResponse.ClientAuthenticationChallenge.__ptr == NULL )
- {
- bSuccess = false;
-
- GetPeerNetworkAddress(sKmaAddress, pstCASoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_GET_ROOT_CA_CERTIFICATE_INVALID_RESPONSE_FORMAT,
- NULL,
- sKmaAddress,
- NULL);
- }
- else
- {
- GetPeerNetworkAddress(sKmaAddress, pstCASoap);
- Log(AUDIT_CLIENT_GET_ROOT_CA_CERTIFICATE_SUCCESS,
- NULL,
- sKmaAddress,
- NULL);
- }
-
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 2\n");
- }
-#endif
-
- // build our RootCACertificate object
- if ( bSuccess )
- {
- pRootCACertificate = new CCertificate;
-
- // make sure the new was successful
- bSuccess = ( pRootCACertificate != 0 );
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 3\n");
- }
-#endif
-
- if ( bSuccess )
- {
- // OVERLOADED Load method - 3 parameters means
- // recall from BUFFER
- bSuccess =
- pRootCACertificate->Load(
- stRootCACertificateResponse.RootCACertificate.__ptr, // to here
- stRootCACertificateResponse.RootCACertificate.__size, // size
- PKI_FORMAT ); // ignored
-
- if( !bSuccess )
- {
- GetPeerNetworkAddress(sKmaAddress, pstCASoap);
- LogError(i_pProfile,
- AUDIT_CLIENT_GET_ROOT_CA_CERTIFICATE_INVALID_CA_CERTIFICATE_FORMAT,
- NULL,
- sKmaAddress,
- NULL);
- }
-
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 4\n");
- }
-#endif
-
-
- if ( bSuccess )
- {
- // save the built CACertificate object to a FILE (i_pProfile gets the
- // persistent handle to that file)
- bSuccess = StoreCACertificate( i_pProfile, pRootCACertificate );
-
- if ( !bSuccess )
- {
- LogError(i_pProfile,AUDIT_CLIENT_GET_CERTIFICATE_SAVE_CA_CERTIFICATE_FAILED,
- NULL,
- NULL,
- NULL);
- }
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 5\n");
- }
-#endif
-
- //-------------------------------
- // Initialize SSL - use SERVER AUTH
- //-------------------------------
- if ( bSuccess )
- {
- // SERVER_AUTHENTICATION needs just the pstCertificateSoap
- bSuccess =
- K_soap_ssl_client_context(
- i_pProfile, // in ->m_wsProfileName,->m_sHexHashedPassphrase
- pstCertificateSoap, // in - soap structure
- SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION // in - flags
- ) == SOAP_OK;
-
- if ( !bSuccess )
- {
- GetSoapFault(sSoapFaultMsg, (struct soap*)pstCertificateSoap);
- GetPeerNetworkAddress(sKmaAddress, pstCertificateSoap);
- LogError(i_pProfile,AUDIT_CLIENT_GET_CERTIFICATE_SOAP_ERROR,
- NULL,
- sKmaAddress,
- sSoapFaultMsg );
- }
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 6\n");
- }
-#endif
-
- // hash the passphrase passed in
- char sHexAuthenticationSecret[2*HASH_LENGTH+1];
-
- if ( bSuccess )
- {
- bSuccess = ComputeFixedEntityHashedPassphraseAndAuthenticationSecret(
- i_wsPassphrase,
- o_sHexHashedPassphrase,
- stRootCACertificateResponse.AuthenticationHashIterationCount,
- sHexAuthenticationSecret );
-
- if ( !bSuccess )
- {
- LogError(i_pProfile,AUDIT_CLIENT_COMPUTE_FIXED_FAILED,
- NULL,
- NULL,
- NULL);
- }
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 7\n");
- }
-#endif
-
- // copy received Root CA into buffer for input
- // into challenge-response computation
- unsigned char aRootCACertificate[MAX_CERT_SIZE];
- int iRootCACertificateLength;
-
- if ( bSuccess )
- {
- // OVERLOADED save method - save iRootCACertificateLength to aRootCACertificate
- // buffer
- bSuccess = pRootCACertificate->Save(
- aRootCACertificate,
- MAX_CERT_SIZE,
- &iRootCACertificateLength,
- PKI_FORMAT );
-
- if ( !bSuccess )
- {
- LogError(i_pProfile,AUDIT_CLIENT_SAVE_ROOTCA_FAILED,
- NULL,
- NULL,
- NULL);
- }
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 8\n");
- }
-#endif
-
- // respond to server's challenge
- unsigned char aAuthenticationSecret[AUTHENTICATION_SECRET_LENGTH];
- unsigned char
- aClientAuthenticationChallengeResponse[AUTHENTICATION_RESPONSE_LENGTH];
-
- if ( bSuccess )
- {
- FATAL_ASSERT( AUTHENTICATION_SECRET_LENGTH ==
- ConvertUTF8HexStringToBinary(
- sHexAuthenticationSecret, NULL ) );
-
- ConvertUTF8HexStringToBinary(
- sHexAuthenticationSecret, aAuthenticationSecret );
-
- // client authentication response
- bSuccess = ComputeChallengeResponse(
- aAuthenticationSecret,
- AUTHENTICATION_SECRET_LENGTH,
- aRootCACertificate,
- iRootCACertificateLength,
- stRootCACertificateResponse.ClientAuthenticationChallenge.__ptr,
- AUTHENTICATION_CHALLENGE_LENGTH,
- aClientAuthenticationChallengeResponse,
- AUTHENTICATION_RESPONSE_LENGTH );
-
- if ( !bSuccess )
- {
- LogError(i_pProfile,AUDIT_CLIENT_COMPUTE_CHALLENGE_RESPONSE_FAILED,
- NULL,
- NULL,
- NULL);
- }
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 9\n");
- }
-#endif
-
- struct KMS_Certificate::xsd__hexBinary stClientAuthenticationResponse;
-
- if ( bSuccess )
- {
- stClientAuthenticationResponse.__size =
- AUTHENTICATION_RESPONSE_LENGTH;
- stClientAuthenticationResponse.__ptr =
- (unsigned char*)soap_malloc(
- pstCertificateSoap, AUTHENTICATION_RESPONSE_LENGTH );
-
- if ( stClientAuthenticationResponse.__ptr != NULL )
- {
- memcpy( stClientAuthenticationResponse.__ptr,
- aClientAuthenticationChallengeResponse,
- AUTHENTICATION_RESPONSE_LENGTH );
- }
- else
- {
- bSuccess = false;
- }
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 10\n");
- }
-#endif
-
- // generate challenge nonce
- struct KMS_Certificate::xsd__hexBinary stServerAuthenticationChallenge;
-
- if ( bSuccess )
- {
- stServerAuthenticationChallenge.__size =
- AUTHENTICATION_CHALLENGE_LENGTH;
- stServerAuthenticationChallenge.__ptr =
- (unsigned char*)soap_malloc( pstCertificateSoap,
- AUTHENTICATION_CHALLENGE_LENGTH );
-
- bSuccess = ( stServerAuthenticationChallenge.__ptr != NULL );
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 11\n");
- }
-#endif
-
- if ( bSuccess )
- {
- bSuccess = GetPseudorandomBytes(
- AUTHENTICATION_CHALLENGE_LENGTH,
- stServerAuthenticationChallenge.__ptr );
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 12\n");
- }
-#endif
-
- if ( bSuccess )
- {
- sURL = oLoadBalancer.GetHTTPSURL(iIndex,
- i_pProfile->
- m_iPortForCertificateService);
-
- if ( !sURL )
- {
- bSuccess = false;
- }
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 13\n");
- }
-#endif
-
- // Verify that the same URL is used for Root CA Certificate
- // retrieval as for Entity Certificate retrieval
-
- if ( bSuccess )
- {
- char sTempCAURL[KMS_MAX_URL + 1];
- strncpy( sTempCAURL, i_pProfile->m_sURL, KMS_MAX_URL );
- sTempCAURL[KMS_MAX_URL] = 0;
-
- char * sRetrieveRootCACertificateURL = strtok( sTempCAURL, ":" );
-
- sRetrieveRootCACertificateURL = strtok(NULL, ":");
-
- char sTempAgentURL[KMS_MAX_URL + 1];
- strncpy( sTempAgentURL, sURL, KMS_MAX_URL );
- sTempAgentURL[KMS_MAX_URL] = 0;
- char * sRetrieveAgentCertificateURL = strtok( sTempAgentURL, ":" );
- sRetrieveAgentCertificateURL = strtok(NULL, ":");
-
- FATAL_ASSERT( strcmp( sRetrieveRootCACertificateURL,
- sRetrieveAgentCertificateURL ) == 0 );
-
- strncpy(i_pProfile->m_sURL, sURL, KMS_MAX_URL);
- i_pProfile->m_sURL[KMS_MAX_URL] = 0;
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 14\n");
- }
-#endif
-
- KMS_Certificate::KMS_Certificate__RetrieveEntityCertificateResponse
- stRetrieveEntityCertificateResponse;
-
- // SOAP - retrieve ENTITY Certificate, passing the challenge response,
- // a challenge to the server and get back the server's response
- if ( bSuccess )
- {
- bSuccess =
- KMS_Certificate::soap_call_KMS_Certificate__RetrieveEntityCertificate(
- pstCertificateSoap,
- sURL,
- NULL,
- (utf8cstr )i_wsEntityID,
- stClientAuthenticationResponse,
- stServerAuthenticationChallenge,
- stRetrieveEntityCertificateResponse ) == SOAP_OK;
-
- if( !bSuccess )
- {
- GetSoapFault(sSoapFaultMsg, (struct soap*)pstCertificateSoap);
- GetPeerNetworkAddress(sKmaAddress, pstCertificateSoap);
- LogError(i_pProfile,AUDIT_CLIENT_GET_CERTIFICATE_SOAP_ERROR,
- NULL,
- sKmaAddress,
- sSoapFaultMsg );
-
- bTryFailOver = ServerError(GET_SOAP_FAULTSTRING(pstCertificateSoap),
- pstCertificateSoap->errnum);
- }
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 15\n");
- }
-#endif
-
- // Validate the response structure
- if ( bSuccess )
- {
- if ( stRetrieveEntityCertificateResponse.
- ServerAuthenticationResponse.__ptr == NULL
-
- || stRetrieveEntityCertificateResponse.
- ServerAuthenticationResponse.__size !=
- AUTHENTICATION_RESPONSE_LENGTH
-
- || stRetrieveEntityCertificateResponse.Certificate.__size < 1
-
- || stRetrieveEntityCertificateResponse.Certificate.__ptr == 0
-
- || stRetrieveEntityCertificateResponse.
- WrappedPrivateKeyMaterial.__size < 1
-
- || stRetrieveEntityCertificateResponse.
- WrappedPrivateKeyMaterial.__ptr == 0 )
- {
- bSuccess = false;
-
- GetPeerNetworkAddress(sKmaAddress, pstCertificateSoap);
- LogError(i_pProfile,AUDIT_CLIENT_GET_CERTIFICATE_INVALID_RESPONSE_FORMAT,
- NULL,
- sKmaAddress,
- NULL );
- }
- else
- {
- GetPeerNetworkAddress(sKmaAddress, pstCertificateSoap);
- Log(AUDIT_CLIENT_GET_CERTIFICATE_SUCCESS,
- NULL,
- sKmaAddress,
- NULL );
- }
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 16\n");
- }
-#endif
-
- // if valid, calculate the correct challenge-response
- unsigned char
- aServerAuthenticationChallengeResponse[AUTHENTICATION_RESPONSE_LENGTH];
-
- if ( bSuccess )
- {
- bSuccess = ComputeChallengeResponse(
- aAuthenticationSecret,
- AUTHENTICATION_SECRET_LENGTH,
- aRootCACertificate,
- iRootCACertificateLength,
- stServerAuthenticationChallenge.__ptr,
- AUTHENTICATION_CHALLENGE_LENGTH,
- aServerAuthenticationChallengeResponse,
- AUTHENTICATION_RESPONSE_LENGTH );
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 17\n");
- }
-#endif
-
- // if successful, check if the server provided the correct challenge-response
- if ( bSuccess )
- {
- if ( 0 != memcmp(
- aServerAuthenticationChallengeResponse,
- stRetrieveEntityCertificateResponse.ServerAuthenticationResponse.__ptr,
- AUTHENTICATION_RESPONSE_LENGTH ) )
- {
- bSuccess = false;
-
- GetPeerNetworkAddress(sKmaAddress, pstCertificateSoap);
- LogError(i_pProfile,AUDIT_CLIENT_GET_CERTIFICATE_INVALID_CHALLENGE_RESPONSE,
- NULL,
- sKmaAddress,
- NULL );
- }
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 18\n");
- }
-#endif
-
-
- if ( bSuccess )
- {
- pEntityCertificate = new CCertificate;
- // if certificate was obtained
- bSuccess = ( pEntityCertificate != 0 );
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 19\n");
- }
-#endif
-
- if ( bSuccess )
- {
- // Load(recall) the signed certificate using OVERLOADED load method
- // 3 parameters means load from a buffer
- bSuccess = pEntityCertificate->Load(
- stRetrieveEntityCertificateResponse.Certificate.__ptr, // load into
- stRetrieveEntityCertificateResponse.Certificate.__size,
- PKI_FORMAT );
-
- if ( !bSuccess )
- {
- GetPeerNetworkAddress(sKmaAddress, pstCertificateSoap);
- LogError(i_pProfile,AUDIT_CLIENT_GET_CERTIFICATE_INVALID_CERTIFICATE_FORMAT,
- NULL,
- sKmaAddress,
- NULL );
- }
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 20\n");
- }
-#endif
-
- if ( bSuccess )
- {
- pEntityPrivateKey = new CPrivateKey;
- bSuccess = ( pEntityPrivateKey != 0 );
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- {
- log_printf("!bSuccess 21\n");
- }
-#endif
-
-
- if ( bSuccess )
- {
- // Load the Private Key using OVERLOADED Load method - 3 parameters
- // means load from a buffer
-
- // TODO: change this when certificate service supports requesting unwrapped private keys
- bSuccess = pEntityPrivateKey->Load(
- stRetrieveEntityCertificateResponse.WrappedPrivateKeyMaterial.__ptr, // load into
- stRetrieveEntityCertificateResponse.WrappedPrivateKeyMaterial.__size,
- NULL,
- PKI_FORMAT );
-
- if (!bSuccess )
- {
-
- GetPeerNetworkAddress(sKmaAddress, pstCertificateSoap);
- LogError(i_pProfile,AUDIT_CLIENT_GET_CERTIFICATE_INVALID_KEY_FORMAT,
- NULL,
- sKmaAddress,
- NULL );
- }
- }
-
- if ( bSuccess )
- {
- strncpy(i_pProfile->m_wsEntityID,
- i_wsEntityID,
- KMS_MAX_ENTITY_ID );
- i_pProfile->m_wsEntityID[KMS_MAX_ENTITY_ID] = 0;
-
- // store PKI certificates and unwrapped private key
- bSuccess = StorePKIcerts( i_pProfile,
- pRootCACertificate,
- pEntityCertificate,
- pEntityPrivateKey,
-#ifdef KMSUSERPKCS12
- i_wsPassphrase
-#else
- NULL
-#endif
- );
-#ifdef KMSUSERPKCS12
- if (bSuccess) {
- /*
- * Write out the cert and key individually so GetPKIcerts
- * can use them.
- */
- bSuccess = StoreTempAgentPKI(i_pProfile,
- pEntityCertificate, pEntityPrivateKey);
- }
-
-#endif
- }
-
- if ( !bSuccess )
- {
- if (pRootCACertificate)
- {
- delete pRootCACertificate;
- }
- if (pEntityCertificate)
- {
- delete pEntityCertificate;
- }
- if (pEntityPrivateKey)
- {
- delete pEntityPrivateKey;
- }
-
- i_pProfile->m_iEnrolled = FALSE;
-
- if ( bTryFailOver )
- {
- iIndex = oLoadBalancer.FailOver(iIndex, bFailedOnRetrieveRootCA ? pstCASoap : pstCertificateSoap);
- }
- }
- }
- while ( bTryFailOver && (iIndex >= 0) && !bSuccess );
-
- // certs are now persisted so free up space
- if ( bSuccess )
- {
- delete pRootCACertificate;
- delete pEntityCertificate;
- delete pEntityPrivateKey;
- }
-
- // Clean up SOAP resources for pstCASoap
- soap_destroy( pstCASoap );
- soap_end( pstCASoap );
- soap_done( pstCASoap );
-
- // Clean up SOAP resources for pstCertificateSoap
- soap_destroy( pstCertificateSoap );
- soap_end( pstCertificateSoap );
- soap_done( pstCertificateSoap );
-
- free(pstCASoap);
- free(pstCertificateSoap);
-
- return bSuccess;
-}
-
-/*--------------------------------------------------------------------------
- * LoadClusterInformation
- * calls GetCluster - that's it.
- * If there is no cluster file, this function will return true,
- * but o_bClusterInformationFound will be false.
- *-------------------------------------------------------------------------*/
-static bool LoadClusterInformation( KMSClientProfile* i_pProfile,
- int& o_bClusterInformationFound )
-{
- FATAL_ASSERT( i_pProfile );
-
- o_bClusterInformationFound = false;
-
- CAutoMutex oAutoMutex( (K_MUTEX_HANDLE)i_pProfile->m_pLock );
-
- return GetCluster( i_pProfile, o_bClusterInformationFound ) ;
-
-}
-
-
-/*--------------------------------------------------------------------------
- * EnrollAgent
- * calls functions to perform enrollment and save PKI info to persistent storage
- * stores configuration in persistent storage
- *-------------------------------------------------------------------------*/
-
-static bool EnrollAgent( KMSClientProfile * io_pProfile,
- utf8cstr i_wsEntityID,
- utf8cstr i_wsPassphrase )
-{
- FATAL_ASSERT( io_pProfile && i_wsEntityID && i_wsPassphrase );
-
- bool bSuccess = true;
-
- // see KMSAgentCryptoUtilities for HASH_LENGTH, aka KMS_MAX_HASH_SIZE
- char sHexHashedPassphrase[2*KMS_MAX_HASH_SIZE+1];
-
- if ( bSuccess )
- {
- // performs enrollment and saves PKI info to persistent storage
- bSuccess = KMSClient_RetrieveEntityCertificate(
- io_pProfile,
- i_wsEntityID,
- i_wsPassphrase,
- sHexHashedPassphrase );
-
- // KMSClient_RetrieveCertificate logs errors
- }
-
- if (bSuccess)
- {
- strncpy(io_pProfile->m_sHexHashedPassphrase,
- sHexHashedPassphrase,
- 2*KMS_MAX_HASH_SIZE );
- io_pProfile->m_sHexHashedPassphrase[2*KMS_MAX_HASH_SIZE] = 0;
-
- // persist the profile now updated with the hashed passphrase
- bSuccess = StoreConfig( io_pProfile );
-
- if (!bSuccess)
- {
- Log(AUDIT_CLIENT_LOAD_PROFILE,
- i_wsEntityID,
- NULL,
- "store config failed following enrollment" );
- }
- }
-
- return bSuccess;
-}
-
-/*---------------------------------------------------------------------------
- * Function: KMSClient_LoadProfile
- *
- *--------------------------------------------------------------------------*/
-bool KMSClient_LoadProfile(
- KMSClientProfile *io_pProfile,
- utf8char *i_wsProfileName,
- utf8char *i_wsEntityID,
- utf8char *i_wsPassphrase,
- utf8char *i_wsApplianceAddress,
- int i_iTransactionTimeout,
- int i_iFailOverLimit,
- int i_iClusterDiscoveryFrequency,
- int i_eKMSmode)
-{
- FATAL_ASSERT(io_pProfile);
- FATAL_ASSERT(i_wsProfileName);
-
- bool bSuccess = true;
-
- char sSoapFaultMsg[g_iMAX_SOAP_FAULT_MESSAGE_LENGTH];
- char sKmaAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH];
-
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("KMSClient_LoadProfile : entered");
-#endif
-
- memset( io_pProfile, 0, sizeof(KMSClientProfile) );
-
- // create lock
-
- if (bSuccess)
- {
- bSuccess =
- ( K_CreateMutex((K_MUTEX_HANDLE *)&io_pProfile->m_pLock) ==
- K_SYS_OK );
- }
-
- // initialize profile with parameters
-
- strncpy(io_pProfile->m_wsProfileName,
- i_wsProfileName,
- KMS_MAX_ENTITY_ID);
- io_pProfile->m_wsProfileName[KMS_MAX_ENTITY_ID] = 0;
-
- io_pProfile->m_iPortForCAService =
- DEFAULT_CA_SERVICE_PORT_NUMBER;
- io_pProfile->m_iPortForCertificateService =
- DEFAULT_CERTIFICATE_SERVICE_PORT_NUMBER;
- io_pProfile->m_iPortForDiscoveryService =
- DEFAULT_DISCOVERY_SERVICE_PORT_NUMBER;
- io_pProfile->m_iPortForAgentService =
- DEFAULT_AGENT_SERVICE_PORT_NUMBER;
- strncpy(io_pProfile->m_wsApplianceAddress,
- i_wsApplianceAddress,
- KMS_MAX_NETWORK_ADDRESS);
- io_pProfile->m_wsApplianceAddress[KMS_MAX_NETWORK_ADDRESS] = 0;
- io_pProfile->m_iClusterDiscoveryFrequency = i_iClusterDiscoveryFrequency;
- io_pProfile->m_iTransactionTimeout = i_iTransactionTimeout;
- io_pProfile->m_iFailoverLimit = i_iFailOverLimit;
- io_pProfile->m_eKMSmode = i_eKMSmode;
-
- // if the file isn't found, create a new one
- bool bProfileExists = ProfileExists( g_wsWorkingDirectory, /* pass in default */
- io_pProfile->m_wsProfileName );
-
-#ifdef KMSUSERPKCS12
- /*
- * Fix logic for determining if this request is for enrollment.
- * Look to see if the server cert and clientkey.p12 file exist.
- * We always expect a password for Solaris which is used to
- * validate that the user has access to the clientkey data by
- * attempting to use it to open the PKCS12 file.
- */
- bool bEnrolling = !ClientKeyP12Exists(io_pProfile->m_wsProfileName);
-#else
- bool bEnrolling = i_wsEntityID && i_wsPassphrase;
-#endif
-
- if ( bSuccess && !bEnrolling && !bProfileExists )
- {
- // when not enrolling a profile must exist
- bSuccess = false;
- Log(AUDIT_CLIENT_LOAD_PROFILE,
- i_wsProfileName,
- NULL,
- "Enrollment attempted but profile could not be found" );
- }
-
- // if the file isn't found, create a new one
- if ( bSuccess && !bProfileExists )
- {
- strncpy(io_pProfile->m_wsEntityID,
- i_wsEntityID,
- KMS_MAX_ENTITY_ID );
- io_pProfile->m_wsEntityID[KMS_MAX_ENTITY_ID] = 0;
- bSuccess = CreateProfile( io_pProfile,
- g_wsWorkingDirectory,
- io_pProfile->m_wsProfileName );
- }
-
- // load profile.cfg file
- if ( bSuccess )
- {
- bSuccess = GetConfig( io_pProfile );
-
- }
-
- // if profile settings changed then update the profile storage
- if ( bSuccess &&
- ( strncmp(io_pProfile->m_wsApplianceAddress,
- i_wsApplianceAddress, KMS_MAX_NETWORK_ADDRESS ) != 0 ||
- io_pProfile->m_iClusterDiscoveryFrequency != i_iClusterDiscoveryFrequency ||
- io_pProfile->m_iTransactionTimeout != i_iTransactionTimeout ||
- io_pProfile->m_iFailoverLimit != i_iFailOverLimit
- ))
- {
- strncpy(io_pProfile->m_wsApplianceAddress,
- i_wsApplianceAddress,
- KMS_MAX_NETWORK_ADDRESS);
- io_pProfile->m_wsApplianceAddress[KMS_MAX_NETWORK_ADDRESS] = 0;
- io_pProfile->m_iClusterDiscoveryFrequency = i_iClusterDiscoveryFrequency;
- io_pProfile->m_iTransactionTimeout = i_iTransactionTimeout;
- io_pProfile->m_iFailoverLimit = i_iFailOverLimit;
-
- bSuccess = StoreConfig( io_pProfile );
- }
-
- // get PKI info from prior enrollment
- if ( bSuccess && !bEnrolling )
- {
-#ifdef KMSUSERPKCS12
- /*
- * Decrypt the PKCS12 file with the client cert and key using
- * the given password. If it fails, then return an auth failure
- * status. If success, write the client cert and key to the client file
- * so it can be used later by the SOAP SSL functions.
- */
- CCertificate* pEntityCertificate = new CCertificate;;
- CPrivateKey* pEntityPrivateKey = new CPrivateKey;
- bSuccess = GetPKCS12CertAndKey(io_pProfile,
- i_wsPassphrase,
- pEntityCertificate,
- pEntityPrivateKey);
- if (!bSuccess) {
- Log(AUDIT_CLIENT_LOAD_PROFILE,
- i_wsProfileName,
- NULL,
- "Enrollment Certificate and Private Key "\
- "were not loaded from PKCS12" );
- } else {
- /*
- * Write out the cert and key individually so GetPKIcerts
- * can use them.
- */
- bSuccess = StoreTempAgentPKI(io_pProfile,
- pEntityCertificate, pEntityPrivateKey);
- if (!bSuccess) {
- Log(AUDIT_CLIENT_LOAD_PROFILE,
- i_wsProfileName,
- NULL,
- "Enrollment Certificate and Private Key "\
- "were not stored to file." );
- }
- }
- delete pEntityCertificate;
- delete pEntityPrivateKey;
-
-#endif
- if (bSuccess)
- bSuccess = GetPKIcerts( io_pProfile );
- }
-
- // if not enrolling then previously enrolled PKI info should now be initialized
- if ( bSuccess && !bEnrolling &&
- (!io_pProfile->m_sHexHashedPassphrase ||
- !io_pProfile->m_iEnrolled ))
- {
- bSuccess = false;
- Log(AUDIT_CLIENT_LOAD_PROFILE,
- i_wsProfileName,
- NULL,
- "Enrollment Certificates and Private Key were not loaded from profile" );
- }
-
- io_pProfile->m_bIsClusterDiscoveryCalled = false;
-
- // allocate main soap struct
- struct soap* pstSoap = 0;
-
- if ( bSuccess )
- {
- pstSoap = (struct soap*)malloc( sizeof(struct soap) );
-
- io_pProfile->m_pvSoap = pstSoap;
-
- bSuccess = ( pstSoap != NULL );
-
- if ( bSuccess )
- {
- soap_init2( pstSoap,
- (SOAP_XML_STRICT | SOAP_C_UTFSTRING ),
- (SOAP_XML_STRICT | SOAP_C_UTFSTRING) );
-
-#ifdef METAWARE
- K_SetupCallbacks ( pstSoap );
-#endif
-
- soap_set_namespaces( pstSoap, KMS_Agent_namespaces );
-
- pstSoap->connect_timeout = io_pProfile->m_iTransactionTimeout;
- pstSoap->send_timeout = io_pProfile->m_iTransactionTimeout;
- pstSoap->recv_timeout = io_pProfile->m_iTransactionTimeout;
- }
- else
- {
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("Malloc %x pstSoap returned null\n",
- sizeof(struct soap));
-#endif
-
- }
- }
-
- // delete the existing cluster config if the input IP address
- // does not match one already known to the cluster config
-
- // Note that KMSClientProfile may be too large to fit on the stack, so we're
- // going to put it on the heap.
-
- KMSClientProfile* pstTempProfile = 0;
- bool bFound = false;
- int i;
-
- if ( bSuccess )
- {
- pstTempProfile = (KMSClientProfile*)malloc( sizeof(KMSClientProfile) );
- bSuccess = (pstTempProfile != 0);
-#if defined(METAWARE)
- if (!bSuccess)
- log_printf("Malloc %x pstTempProfile returned null\n",
- sizeof(KMSClientProfile));
-#endif
-
- }
-
- int bClusterInformationFound = false;
-
- if ( bSuccess )
- {
- memcpy( pstTempProfile, io_pProfile, sizeof(KMSClientProfile) );
-
- bSuccess = LoadClusterInformation( pstTempProfile, bClusterInformationFound );
- }
-
- // got cluster info from persistent storage
- if ( bSuccess && bClusterInformationFound )
- {
- // see if address is a member of the remembered cluster or is a
- // new kma, meaning this KMA joins the cluster as the
- // discovery KMA.
- for ( i = 0; i < pstTempProfile->m_iClusterNum; i++ )
- {
- bFound = (strncmp( pstTempProfile->m_aCluster[i].m_wsApplianceNetworkAddress,
- io_pProfile->m_wsApplianceAddress,
- KMS_MAX_NETWORK_ADDRESS) == 0);
-
- if ( bFound )
- {
- break;
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- log_printf ("KMSClient_LoadProfile : Appliance Address doesn't match");
-#endif
- }
-
- if ( !bFound )
- {
-#if defined(DEBUG) && defined(METAWARE)
- log_printf ("KMSClient_LoadProfile : delete cluster");
-#endif
- DeleteCluster( pstTempProfile );
- char msg[256];
- K_snprintf(msg, 256,
- "KMSClientProfile.LoadProfile(): deleting previous cluster config, %s not found\n",
- io_pProfile->m_wsApplianceAddress);
- Log(AUDIT_CLIENT_LOAD_PROFILE,
- i_wsProfileName,
- NULL,
- msg );
- DeleteCluster( pstTempProfile );
- }
- else
- {
- // since address is a member of the persisted cluster copy the persisted cluster info to the profile
- io_pProfile->m_iClusterNum = pstTempProfile->m_iClusterNum;
- memcpy(io_pProfile->m_aCluster,
- pstTempProfile->m_aCluster,
- sizeof(KMSClusterEntry)*io_pProfile->m_iClusterNum);
- }
- }
-#if defined(DEBUG) && defined(METAWARE)
- else
- log_printf ("KMSClient_LoadProfile : no persisted cluster information");
-#endif
-
- if ( pstTempProfile )
- {
-#if defined(DEBUG) && defined(METAWARE)
- log_printf ("KMSClient_LoadProfile : free the temporary profile");
-#endif
- free( pstTempProfile );
- pstTempProfile = 0;
- }
-
- if ( bSuccess && !io_pProfile->m_iEnrolled )
- {
-#if defined(DEBUG) && defined(METAWARE)
- log_printf ("KMSClient_LoadProfile : call EnrollAgent");
-#endif
- // enroll the agent
- bSuccess = EnrollAgent( io_pProfile,
- i_wsEntityID,
- i_wsPassphrase );
- }
-#if defined(DEBUG) && defined(METAWARE)
- else if (io_pProfile->m_iEnrolled)
- log_printf ("KMSClient_LoadProfile : Already Enrolled");
-#endif
-
-
-
- if (bSuccess)
- {
- // Initialize SSL - use CLIENT AUTH
- // CLIENT_AUTHENTICATION needs the pstSoap, and expects
- // the profile io_pProfile to be full (have the other certificates
- // and keypair)
-
- if ( bSuccess )
- {
- bSuccess =
- K_soap_ssl_client_context(
- io_pProfile, // in/out
- pstSoap, // out
- SOAP_SSL_REQUIRE_CLIENT_AUTHENTICATION // in - flags
- ) == SOAP_OK;
-
- if ( !bSuccess )
- {
-#if defined(DEBUG) && defined(METAWARE)
- if (!bSuccess)
- log_printf ("KMSClient_LoadProfile : K_soap_ssl_client_context failed");
-#endif
- GetSoapFault(sSoapFaultMsg, (struct soap*)pstSoap);
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
-
- LogError(io_pProfile,
- AUDIT_CLIENT_LOAD_PROFILE_SOAP_ERROR,
- NULL,
- sKmaAddress,
- sSoapFaultMsg );
- }
- }
-
- // discover the cluster
-
- if ( bSuccess &&
- io_pProfile->m_iClusterDiscoveryFrequency > 0 )
- {
- bSuccess = ( KMSClient_GetClusterInformation(
- io_pProfile,
- io_pProfile->m_wsEntitySiteID,
- sizeof(io_pProfile->m_wsEntitySiteID),
- &(io_pProfile->m_iClusterNum),
- io_pProfile->m_aCluster,
- KMS_MAX_CLUSTER_NUM) != 0 );
- // KMSClient_GetClusterInformation logs errors
-
- if (bSuccess && i_eKMSmode == FIPS_MODE)
- {
- bSuccess = !KMSClient_NoFIPSCompatibleKMAs(io_pProfile);
- if (!bSuccess)
- {
- LogError(io_pProfile,
- AUDIT_CLIENT_AGENT_LOAD_PROFILE_NO_FIPS_COMPATIBLE_KMAS_AVAILABLE,
- NULL,
- NULL,
- NULL );
- }
- }
- }
-#if defined(DEBUG) && defined(METAWARE)
- if (!bSuccess)
- log_printf ("KMSClient_LoadProfile : getClusterInformation failed");
-#endif
-
-#ifdef KMSUSERPKCS12
- /*
- * Once the SSL context is established, delete the
- * private key file.
- */
- (void) CleanupPrivateKeyFile(io_pProfile);
-#endif
- }
-#if defined(DEBUG) && defined(METAWARE)
- else if (!bSuccess)
- log_printf ("KMSClient_LoadProfile : EnrollAgent failed");
-#endif
-
- CAgentLoadBalancer *pAgentLoadBalancer = new CAgentLoadBalancer(io_pProfile);
- if(pAgentLoadBalancer == NULL)
- {
- bSuccess = false;
- }
-
-#if defined(DEBUG) && defined(METAWARE)
- if (!bSuccess)
- log_printf ("KMSClient_LoadProfile : new CAgentLoadBalancer failed");
-#endif
-
- io_pProfile->m_pAgentLoadBalancer = pAgentLoadBalancer;
-
- // create a data unit server affinity cache for Agents
-
- if ( bSuccess )
- {
- io_pProfile->m_pDataUnitCache = new CDataUnitCache();
-
- bSuccess = ( io_pProfile->m_pDataUnitCache != NULL );
- }
-
- if ( bSuccess )
- {
-#if defined(DEBUG) && defined(METAWARE)
- log_printf ("KMSClient_LoadProfile : set version to KMS_AGENT_VERSION = %x",
- KMS_AGENT_VERSION);
- log_printf ("KMSClient_LoadProfile : profile is: %x\n", io_pProfile);
-#endif
- // this is checked later by ProfileLoaded and is taken
- // to indicate that the profile was correctly loaded
- io_pProfile->m_iVersion = KMS_AGENT_VERSION;
- }
-
- if( !bSuccess )
- {
- K_DestroyMutex((K_MUTEX_HANDLE)io_pProfile->m_pLock);
- io_pProfile->m_pLock = 0;
-
- if ( io_pProfile->m_pvSoap )
- {
- soap_destroy( (struct soap*)io_pProfile->m_pvSoap );
- soap_end( (struct soap*)io_pProfile->m_pvSoap );
- soap_done( (struct soap*)io_pProfile->m_pvSoap );
-
- free( (struct soap*)io_pProfile->m_pvSoap );
- io_pProfile->m_pvSoap = 0;
-
- if( io_pProfile->m_pAgentLoadBalancer != NULL)
- {
- delete(reinterpret_cast <CAgentLoadBalancer *>(io_pProfile->m_pAgentLoadBalancer));
- }
-
- if( io_pProfile->m_pDataUnitCache != NULL)
- {
- delete(reinterpret_cast <CDataUnitCache *>(io_pProfile->m_pDataUnitCache));
- }
-
- }
-#if defined(DEBUG) && defined(METAWARE)
- log_printf ("KMSClient_LoadProfile : failed - returning");
-#endif
- }
-
- return bSuccess;
-}
-
-/**
- * compare cluster entries having equivalent KMA names (aka Appliance alias) and
- * return true if equal. Note: KMANetworkAddress comparison is handled separately
- * due to IPv4/IPv6
- */
-static bool EqualClusterEntry(
- struct KMS_Discovery::KMS_Discovery_ClusterMember const *i_pLeft,
- KMSClusterEntry const *i_pRight)
-{
- bool bEnabled = i_pRight->m_iEnabled ? true : false;
- if ( i_pLeft->Enabled != bEnabled )
- {
- return false;
- }
- if ( i_pLeft->KMAID != i_pRight->m_lApplianceID )
- {
- return false;
- }
- if ( strncmp(i_pLeft->KMASiteID,
- i_pRight->m_wsApplianceSiteID,
- KMS_MAX_ENTITY_SITE_ID) != 0 )
- {
- return false;
- }
- // Note: we now minimize persistence of cluster changes by not saving
- // whenever m_iResponding changes
-
- return true;
-}
-/**
- * @return true if the current address matches the provided IPv6Address
- * when the i_bUseIPv6 arg is true, otherwise compare the current address
- * with the IPv4Address. If i_bUseIPv6 then i_pCurrentAddress must be
- * enclosed in brackets, i.e. as in RFC 2396.
- */
-static bool EqualKMANetworkAddress (
- bool i_bUseIPv6,
- const char * const i_pIPv6Address,
- const char * const i_pIPv4Address,
- const char * const i_pCurrentAddress
- )
-{
- bool bEqualAddress = true;
-
- if ( i_pCurrentAddress == NULL )
- {
- return false;
- }
-
- if (i_bUseIPv6)
- {
- if ( i_pIPv6Address == NULL )
- {
- return false;
- }
- char sIPv6Address[KMS_MAX_NETWORK_ADDRESS] = "[";
-
- strcat(sIPv6Address, i_pIPv6Address);
-
- char * pLoc = strchr(sIPv6Address, '/');
-
- if ( pLoc != NULL )
- {
- // remove prefix from address
- *pLoc = '\0';
- }
- strcat(sIPv6Address, "]");
- bEqualAddress = strncmp(sIPv6Address, i_pCurrentAddress, KMS_MAX_NETWORK_ADDRESS) == 0;
- }
- else
- {
- if ( i_pIPv4Address == NULL )
- {
- return false;
- }
- bEqualAddress = strncmp(i_pIPv4Address, i_pCurrentAddress, KMS_MAX_NETWORK_ADDRESS) == 0;
- }
-
- return bEqualAddress;
-}
-
-/**
- * compares the profile's current cluster state with the filtered discover
- * cluster response and returns true if the repsonse
- * differs from i_pProfile->m_aCluster. A cluster has changed if the state of any
- * cluster node has changed or if the set of cluster nodes has changed.
- * The order of nodes is immaterial.
- */
-static bool ClusterConfigChanged (
- KMSClientProfile const *i_pProfile,
- char * const i_sResponseEntitySiteID,
- struct KMS_Discovery::KMS_Discovery__ArrayOfClusterMembers const *i_pFilteredCluster)
-{
- int i, j;
-
- FATAL_ASSERT(i_pProfile);
- FATAL_ASSERT(i_pFilteredCluster);
-
- // cardinality check
- if (i_pProfile->m_iClusterNum !=
- i_pFilteredCluster->__size)
- {
- return true;
- }
-
- // check if the agent's site ID changed
- if (strncmp(i_pProfile->m_wsEntitySiteID,
- i_sResponseEntitySiteID, KMS_MAX_ENTITY_SITE_ID) != 0)
- {
- return true;
- }
-
- // for all KMAs in filtered response check if they exist unchanged in the profile
- for (i = 0; i < i_pFilteredCluster->__size; i++)
- {
- bool bFound = false;
- for (j = 0; j < i_pProfile->m_iClusterNum; j++)
- {
- if (strncmp(i_pFilteredCluster->__ptr[i].KMAName,
- i_pProfile->m_aCluster[j].m_wsApplianceAlias,
- KMS_MAX_ENTITY_ID) == 0)
- {
- bFound = true;
- if (
- !EqualKMANetworkAddress(
- strchr(i_pProfile->m_wsApplianceAddress, ':') ? true : false,
- i_pFilteredCluster->__ptr[i].KMANetworkAddressIPv6,
- i_pFilteredCluster->__ptr[i].KMANetworkAddress,
- i_pProfile->m_aCluster[j].m_wsApplianceNetworkAddress) ||
- !EqualClusterEntry((i_pFilteredCluster->__ptr + i),
- &i_pProfile->m_aCluster[j]))
-
- {
- return true;
- }
- }
- }
- if ( !bFound )
- {
- return true;
- }
- }
- return false;
-}
-
-/**
- * returns true if the string is a valid IPv6 address syntactically
- */
-static bool ValidIPv6KMAaddress( const char * const i_pIPAddress )
-{
- FATAL_ASSERT( i_pIPAddress );
-
- if ( strlen(i_pIPAddress) <= 0 )
- {
- return false;
- }
-
- // simple check
- if ( strchr( i_pIPAddress, ':'))
- {
- return true;
- }
-
- return false;
-}
-/**
- *
- */
-static void FreeFilteredCluster (
- struct KMS_Discovery::KMS_Discovery__ArrayOfClusterMembers * const io_stFilteredCluster,
- int iLimit )
-{
- int j = 0;
- for (; j < iLimit; j++ )
- {
- free( io_stFilteredCluster->__ptr[j].KMAName );
- free( io_stFilteredCluster->__ptr[j].KMASiteID );
- free( io_stFilteredCluster->__ptr[j].KMAHostName );
- free( io_stFilteredCluster->__ptr[j].KMANetworkAddress );
- free( io_stFilteredCluster->__ptr[j].KMAVersion );
- free( io_stFilteredCluster->__ptr[j].KMAHostNameIPv6 );
- free( io_stFilteredCluster->__ptr[j].KMANetworkAddressIPv6 );
- }
-
- free( io_stFilteredCluster->__ptr );
-}
-
-/**
- * filters the discover cluster response to be less than or equal to KMS_MAX_CLUSTER_NUM KMAs. The heuristic used to filter
- * the response is the same as used by CAgentLoadBalancer::KMSClient_SortClusterArray(), FIPS compatibility, then within site,
- * then responding and enabled KMAs.
- * @param i_stResponse pointer to gsoap discover cluster service response
- * @param io_stFilteredCluster pointer to gsoap discover cluster array to be populated with the filtered list of KMAs
- * @return true on success and io_stFilteredCluster->__size less than or equal to KMS_MAX_CLUSTER_NUM,
- * otherwise io_stFilteredCluster is undefined. io_stFilteredCluster->__ptr is populated with the array of elements
- * malloc'd.
- */
-static bool FilterCluster (struct KMS_Discovery::KMS_Discovery__DiscoverClusterResponse * const i_stResponse,
- bool i_bFIPS,
- struct KMS_Discovery::KMS_Discovery__ArrayOfClusterMembers * const io_stFilteredCluster)
-{
- /*
- * do something like KMSAgentLoadBalancer:SortClusterArray() to the stResponse array
- * return 1st KMS_MAX_CLUSTER_NUM entries and free the rest.
- */
-
- FATAL_ASSERT(i_stResponse);
- FATAL_ASSERT(io_stFilteredCluster);
-
- io_stFilteredCluster->__size = i_stResponse->ArrayOfClusterMembers.__size;
- io_stFilteredCluster->__ptr = reinterpret_cast < struct KMS_Discovery::KMS_Discovery_ClusterMember * >
- ( calloc( io_stFilteredCluster->__size,
- sizeof (struct KMS_Discovery::KMS_Discovery_ClusterMember ) ) );
-
- if (io_stFilteredCluster->__ptr == NULL)
- {
- Log(AUDIT_CLIENT_FILTER_CLUSTER_FAILED,
- NULL,
- NULL,
- "calloc failed");
- return false;
- }
-
- if (io_stFilteredCluster->__size <= 0)
- {
- Log(AUDIT_CLIENT_FILTER_CLUSTER_FAILED,
- NULL,
- NULL,
- "returned cluster size is not positive");
- return false;
- }
-
- // copy response cluster members
- for (int i = 0; i < io_stFilteredCluster->__size; i++)
- {
- bool bSuccess = true;
-
- size_t iKMANameSize = 0, iKMASiteIDSize = 0, iKMAHostNameSize = 0,
- iKMANetworkAddressSize = 0, iKMAVersionSize = 0, iKMAHostNameIPv6Size = 0,
- iKMANetworkAddressIPv6Size = 0;
-
- // allocate storage for the various struct member's arrays
- iKMANameSize = strlen(i_stResponse->ArrayOfClusterMembers.__ptr[i].KMAName)+1;
- io_stFilteredCluster->__ptr[i].KMAName = reinterpret_cast <char *> (malloc(iKMANameSize));
-
- iKMASiteIDSize = strlen(i_stResponse->ArrayOfClusterMembers.__ptr[i].KMASiteID)+1;
- io_stFilteredCluster->__ptr[i].KMASiteID = reinterpret_cast <char *> (malloc(iKMASiteIDSize));
-
- iKMAHostNameSize = strlen(i_stResponse->ArrayOfClusterMembers.__ptr[i].KMAHostName)+1;
- io_stFilteredCluster->__ptr[i].KMAHostName = reinterpret_cast <char *> (malloc(iKMAHostNameSize));
-
- iKMANetworkAddressSize = strlen(i_stResponse->ArrayOfClusterMembers.__ptr[i].KMANetworkAddress)+1;
- io_stFilteredCluster->__ptr[i].KMANetworkAddress = reinterpret_cast <char *> (malloc(iKMANetworkAddressSize));
-
- // KMAVersion is an optional field derived from an xml attribute in the soap interface that will not be present in 2.0 KMAs
- if (i_stResponse->ArrayOfClusterMembers.__ptr[i].KMAVersion)
- {
- iKMAVersionSize = strlen(i_stResponse->ArrayOfClusterMembers.__ptr[i].KMAVersion)+1;
- io_stFilteredCluster->__ptr[i].KMAVersion = reinterpret_cast <char *> (malloc(iKMAVersionSize));
- if (io_stFilteredCluster->__ptr[i].KMAVersion == NULL)
- {
- bSuccess = false;
- }
- }
- else
- {
- io_stFilteredCluster->__ptr[i].KMAVersion = NULL;
- }
-
- // KMAHostNameIPv6 is an optional field derived from an xml attribute in the soap interface that will not be present in 2.0 KMAs
- if (i_stResponse->ArrayOfClusterMembers.__ptr[i].KMAHostNameIPv6)
- {
- iKMAHostNameIPv6Size = strlen(i_stResponse->ArrayOfClusterMembers.__ptr[i].KMAHostNameIPv6)+1;
- io_stFilteredCluster->__ptr[i].KMAHostNameIPv6 = reinterpret_cast <char *> (malloc(iKMAHostNameIPv6Size));
- if ( io_stFilteredCluster->__ptr[i].KMAHostNameIPv6 == NULL )
- {
- bSuccess = false;
- }
- }
- else
- {
- io_stFilteredCluster->__ptr[i].KMAHostNameIPv6 = NULL;
- }
-
- // KMANetworkAddressIPv6 is an optional field derived from an xml attribute in the soap interface that will not be present in 2.0 KMAs
- if (i_stResponse->ArrayOfClusterMembers.__ptr[i].KMANetworkAddressIPv6)
- {
- iKMANetworkAddressIPv6Size = strlen(i_stResponse->ArrayOfClusterMembers.__ptr[i].KMANetworkAddressIPv6)+1;
- io_stFilteredCluster->__ptr[i].KMANetworkAddressIPv6 = reinterpret_cast <char *> (malloc(iKMANetworkAddressIPv6Size));
- if ( io_stFilteredCluster->__ptr[i].KMANetworkAddressIPv6 == NULL )
- {
- bSuccess = false;
- }
- }
- else
- {
- io_stFilteredCluster->__ptr[i].KMANetworkAddressIPv6 = NULL;
- }
-
- if ( io_stFilteredCluster->__ptr[i].KMAName == NULL ||
- io_stFilteredCluster->__ptr[i].KMASiteID == NULL ||
- io_stFilteredCluster->__ptr[i].KMAHostName == NULL ||
- io_stFilteredCluster->__ptr[i].KMANetworkAddress == NULL ||
- !bSuccess )
- {
- // cleanup and return
- FreeFilteredCluster( io_stFilteredCluster, i+1 );
- Log( AUDIT_CLIENT_FILTER_CLUSTER_FAILED,
- NULL,
- NULL,
- "malloc failed" );
- return false;
- }
-
- strncpy(io_stFilteredCluster->__ptr[i].KMAName,
- i_stResponse->ArrayOfClusterMembers.__ptr[i].KMAName,
- iKMANameSize);
- io_stFilteredCluster->__ptr[i].KMAName[iKMANameSize-1] = '\0';
-
- strncpy(io_stFilteredCluster->__ptr[i].KMASiteID,
- i_stResponse->ArrayOfClusterMembers.__ptr[i].KMASiteID,
- iKMASiteIDSize);
- io_stFilteredCluster->__ptr[i].KMASiteID[iKMASiteIDSize-1] = '\0';
-
- strncpy(io_stFilteredCluster->__ptr[i].KMAHostName,
- i_stResponse->ArrayOfClusterMembers.__ptr[i].KMAHostName,
- iKMAHostNameSize);
- io_stFilteredCluster->__ptr[i].KMAHostName[iKMAHostNameSize-1] = '\0';
-
- strncpy(io_stFilteredCluster->__ptr[i].KMANetworkAddress,
- i_stResponse->ArrayOfClusterMembers.__ptr[i].KMANetworkAddress,
- iKMANetworkAddressSize);
- io_stFilteredCluster->__ptr[i].KMANetworkAddress[iKMANetworkAddressSize-1] = '\0';
-
- if ( io_stFilteredCluster->__ptr[i].KMAVersion )
- {
- strncpy( io_stFilteredCluster->__ptr[i].KMAVersion,
- i_stResponse->ArrayOfClusterMembers.__ptr[i].KMAVersion,
- iKMAVersionSize );
- io_stFilteredCluster->__ptr[i].KMAVersion[iKMAVersionSize-1] = '\0';
- }
-
- if (io_stFilteredCluster->__ptr[i].KMAHostNameIPv6)
- {
- strncpy(io_stFilteredCluster->__ptr[i].KMAHostNameIPv6,
- i_stResponse->ArrayOfClusterMembers.__ptr[i].KMAHostNameIPv6,
- iKMAHostNameIPv6Size);
- io_stFilteredCluster->__ptr[i].KMAHostNameIPv6[iKMAHostNameIPv6Size-1] = '\0';
- }
-
- if ( io_stFilteredCluster->__ptr[i].KMANetworkAddressIPv6 )
- {
- strncpy( io_stFilteredCluster->__ptr[i].KMANetworkAddressIPv6,
- i_stResponse->ArrayOfClusterMembers.__ptr[i].KMANetworkAddressIPv6,
- iKMANetworkAddressIPv6Size );
- io_stFilteredCluster->__ptr[i].KMANetworkAddressIPv6[iKMANetworkAddressIPv6Size-1] = '\0';
- }
-
- io_stFilteredCluster->__ptr[i].KMAID = i_stResponse->ArrayOfClusterMembers.__ptr[i].KMAID;
- io_stFilteredCluster->__ptr[i].Enabled = i_stResponse->ArrayOfClusterMembers.__ptr[i].Enabled;
- io_stFilteredCluster->__ptr[i].KMS_Discovery__Locked = i_stResponse->ArrayOfClusterMembers.__ptr[i].KMS_Discovery__Locked;
-
- // set load to zero, KMA with version <= Build600 don't initialize
- // the load field from the service network
- if ( ( io_stFilteredCluster->__ptr[i].KMAVersion &&
- strcmp( io_stFilteredCluster->__ptr[i].KMAVersion, "Build600" ) <= 0 ) ||
- io_stFilteredCluster->__ptr[i].KMAVersion == NULL )
- {
- io_stFilteredCluster->__ptr[i].Load = 0;
- }
- else
- {
- io_stFilteredCluster->__ptr[i].Load = i_stResponse->ArrayOfClusterMembers.__ptr[i].Load;
- }
-
- io_stFilteredCluster->__ptr[i].Responding = i_stResponse->ArrayOfClusterMembers.__ptr[i].Responding;
-
- if (!bSuccess)
- {
- FreeFilteredCluster( io_stFilteredCluster, i );
- Log(AUDIT_CLIENT_FILTER_CLUSTER_FAILED,
- NULL,
- NULL,
- "cluster member copy failed");
- return false;
- }
- }
-
- // is filtering necessary?
- if (io_stFilteredCluster->__size <= KMS_MAX_CLUSTER_NUM)
- {
- // no filtering required
- return true;
- }
- else
- {
- char sMesg[100];
- K_snprintf(sMesg, sizeof (sMesg), "DiscoverCluster returned %d KMAs, filtering to %d ...", io_stFilteredCluster->__size, KMS_MAX_CLUSTER_NUM);
- Log(AUDIT_CLIENT_FILTER_CLUSTER,
- NULL,
- NULL,
- sMesg);
-
- }
-
- // adjust loads according to availability, site and FIPS compatibility
- {
- int i = 0;
- for (; i < io_stFilteredCluster->__size; i++)
- {
- if (io_stFilteredCluster->__ptr[i].Enabled == false
- || io_stFilteredCluster->__ptr[i].Responding == false
- || io_stFilteredCluster->__ptr[i].KMS_Discovery__Locked == true)
- {
- io_stFilteredCluster->__ptr[i].Load += 0x40;
- }
-
- if (strcmp(io_stFilteredCluster->__ptr[i].KMASiteID,
- i_stResponse->EntitySiteID) != 0)
- {
- io_stFilteredCluster->__ptr[i].Load += 0x20;
-
- }
-
- if ( i_bFIPS &&
- !FIPScompatibleKMA(io_stFilteredCluster->__ptr[i].KMAVersion))
- {
- io_stFilteredCluster->__ptr[i].Load += 0x80;
- }
- }
- }
-
- // sort ascending by load
-
- // gnome sort: the simplest sort algoritm
- {
- int i = 0;
- while (i < io_stFilteredCluster->__size)
- {
- if (i == 0 || io_stFilteredCluster->__ptr[i - 1].Load <= io_stFilteredCluster->__ptr[i].Load)
- {
- i++;
- }
- else
- {
- struct KMS_Discovery::KMS_Discovery_ClusterMember tmp = io_stFilteredCluster->__ptr[i];
- io_stFilteredCluster->__ptr[i] = io_stFilteredCluster->__ptr[i - 1];
- io_stFilteredCluster->__ptr[--i] = tmp;
- }
- }
- }
-
- // now filter the list, freeing memory allocated for copied elements that are not being retained
- {
- int i=KMS_MAX_CLUSTER_NUM;
- for (; i < io_stFilteredCluster->__size; i++)
- {
- free(io_stFilteredCluster->__ptr[i].KMAName);
- free(io_stFilteredCluster->__ptr[i].KMASiteID);
- free(io_stFilteredCluster->__ptr[i].KMAHostName);
- free(io_stFilteredCluster->__ptr[i].KMANetworkAddress);
- free(io_stFilteredCluster->__ptr[i].KMAVersion);
- free(io_stFilteredCluster->__ptr[i].KMAHostNameIPv6);
- free(io_stFilteredCluster->__ptr[i].KMANetworkAddressIPv6);
- }
- }
-
- io_stFilteredCluster->__size = KMS_MAX_CLUSTER_NUM;
-
- Log(AUDIT_CLIENT_FILTER_CLUSTER,
- NULL,
- NULL,
- "success");
-
- return true;
-};
-
-/*---------------------------------------------------------------------------
- * Function: KMSClient_GetClusterInformation
- *
- *--------------------------------------------------------------------------*/
-bool KMSClient_GetClusterInformation(
- KMSClientProfile *i_pProfile,
- utf8char *o_wsEntitySiteID,
- int i_iEntitySiteIDSize,
- int *o_pApplianceNum,
- KMSClusterEntry *o_pClusterEntryArray,
- int i_iClusterEntryArraySize)
-{
- FATAL_ASSERT(i_pProfile);
- FATAL_ASSERT( o_wsEntitySiteID );
- FATAL_ASSERT( o_pApplianceNum );
- FATAL_ASSERT( o_pClusterEntryArray );
- FATAL_ASSERT( i_iEntitySiteIDSize <= KMS_MAX_ENTITY_ID+1 );
-
- CAutoMutex oAutoMutex( (K_MUTEX_HANDLE)i_pProfile->m_pLock );
-
- bool bSuccess = true;
- char sSoapFaultMsg[g_iMAX_SOAP_FAULT_MESSAGE_LENGTH];
- char sKmaAddress[g_iMAX_PEER_NETWORK_ADDRESS_LENGTH];
-
- char sURL[KMS_MAX_URL+1];
-
- // set URL from the initial appliance address
- utf8cstr sApplianceAddress = i_pProfile->m_wsApplianceAddress;
-
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("KMSClient_GetClusterInformation : entered");
-#endif
-
- K_snprintf(sURL,
- KMS_MAX_URL,
- "https://%s:%d",
- sApplianceAddress,
- i_pProfile->m_iPortForDiscoveryService);
- strncpy(i_pProfile->m_sURL, sURL, KMS_MAX_URL);
- i_pProfile->m_sURL[KMS_MAX_URL] = 0;
-
- // allocate and initialize a new soap env for the cluster discovery call
- struct soap *pstSoap = (struct soap*)i_pProfile->m_pvDiscoverySoap;
-
- if ( !i_pProfile->m_iEnrolled )
- {
- bSuccess = false;
- }
-
- if ( bSuccess )
- {
- // allocate discovery soap runtime
- if (pstSoap == NULL )
- {
- pstSoap = soap_new();
- i_pProfile->m_pvDiscoverySoap = pstSoap;
- /* soap_copy results in a segfault in sk_free() within libcrytpo.so
- pstSoap = soap_copy( (soap*)i_pProfile->m_pvSoap );
- */
- if (pstSoap == NULL)
- {
- bSuccess = false;
- }
- else
- {
- pstSoap->connect_timeout = i_pProfile->m_iTransactionTimeout;
- pstSoap->send_timeout = i_pProfile->m_iTransactionTimeout;
- pstSoap->recv_timeout = i_pProfile->m_iTransactionTimeout;
-
- soap_set_imode( pstSoap, (SOAP_XML_STRICT | SOAP_C_UTFSTRING) );
- soap_set_omode( pstSoap, (SOAP_XML_STRICT | SOAP_C_UTFSTRING) );
-
- soap_set_namespaces( pstSoap, KMS_Discovery_namespaces );
- bSuccess = K_soap_ssl_client_context(
- i_pProfile,
- pstSoap,
- SOAP_SSL_REQUIRE_CLIENT_AUTHENTICATION
- ) == SOAP_OK;
- if ( !bSuccess )
- {
- Log(AUDIT_CLIENT_GetClusterInformation,
- NULL,
- NULL,
- "K_soap_ssl_client_context failed");
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- soap_done(pstSoap);
- }
- }
- }
- }
-
- // Discovery
- struct KMS_Discovery::KMS_Discovery__DiscoverClusterResponse stResponse;
-
-#if defined(DEBUG) && defined(METAWARE)
- log_printf("KMSClient_GetClusterInformation : call KMS_Discovery_DiscoverCluster");
-#endif
-
- // SOAP - discover cluster
- if ( bSuccess )
- {
-#ifdef DEBUG
- int iStartTickCount = K_GetTickCount();
- int iEndTickCount;
- char sDiscoverTimeMsg[100];
-#endif
- bSuccess =
- KMS_Discovery::soap_call_KMS_Discovery__DiscoverCluster(
- pstSoap,
- sURL,
- NULL,
- NULL,
- stResponse ) == SOAP_OK;
-#ifdef DEBUG
- iEndTickCount = K_GetTickCount();
- sprintf(sDiscoverTimeMsg, "DiscoverCluster soapcall elapsed time=%u ms",
- iEndTickCount-iStartTickCount);
- Log(AUDIT_CLIENT_GetClusterInformation,
- NULL,
- sApplianceAddress,
- sDiscoverTimeMsg);
-#endif
-
- if ( !bSuccess )
- {
- GetSoapFault(sSoapFaultMsg, (struct soap*)pstSoap);
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,AUDIT_CLIENT_GET_CLUSTER_INFORMATION_SOAP_ERROR,
- NULL,
- sKmaAddress,
- sSoapFaultMsg );
-
- if ( !ServerError( sSoapFaultMsg, pstSoap->errnum ) )
- {
- // do not failover if error is client related
- soap_destroy( pstSoap );
- soap_end( pstSoap );
- soap_free( pstSoap );
- return false;
- }
- }
-
- // If we did not succeed to Discover from the initial appliance,
- // try to discover from other appliances that we know about that are enabled.
- // Disabled Appliances are not attempted because they may have a stale view
- // of the cluster. In particular, they themselves are not aware that they
- // are disabled.
-
- if ( !bSuccess && i_pProfile->m_iClusterNum > 0 )
- {
- // Copy the profile's cluster array so that we don't have to lock the
- // profile around a SOAP call
-
- int j = 0;
- int iClusterNum = 0;
- KMSClusterEntry* aCluster =
- (KMSClusterEntry*)malloc(sizeof(KMSClusterEntry) * KMS_MAX_CLUSTER_NUM);
-
- bSuccess = ( aCluster != 0 );
-#if defined(DEBUG) && defined(METAWARE)
- if (!bSuccess)
- log_printf("Malloc %x aCluster returned null\n",
- sizeof(KMSClusterEntry) * KMS_MAX_CLUSTER_NUM);
-#endif
-
- if ( bSuccess )
- {
- iClusterNum = i_pProfile->m_iClusterNum;
- memcpy( aCluster, i_pProfile->m_aCluster,
- sizeof(KMSClusterEntry) * iClusterNum );
-
- // initialize to false since all KMAs could be disabled
- bSuccess = false;
- for ( j = 0; j < iClusterNum; j++ )
- {
- if ( aCluster[j].m_iEnabled == FALSE )
- {
- continue;
- }
-
- sApplianceAddress = aCluster[j].m_wsApplianceNetworkAddress;
- K_snprintf(sURL,
- KMS_MAX_URL,
- "https://%s:%d",
- sApplianceAddress,
- i_pProfile->m_iPortForDiscoveryService);
-
- Log(AUDIT_CLIENT_GetClusterInformation,
- NULL,
- sApplianceAddress,
- "Failing over and trying this appliance");
-
- // SOAP - discover cluster
- bSuccess =
- KMS_Discovery::soap_call_KMS_Discovery__DiscoverCluster(
- pstSoap,
- sURL,
- NULL,
- NULL,
- stResponse ) == SOAP_OK;
-
- if ( !bSuccess )
- {
- GetSoapFault(sSoapFaultMsg, (struct soap*)pstSoap);
- GetPeerNetworkAddress(sKmaAddress, pstSoap);
- LogError(i_pProfile,AUDIT_CLIENT_GET_CLUSTER_INFORMATION_SOAP_ERROR,
- NULL,
- sKmaAddress,
- sSoapFaultMsg );
- }
- else
- {
- // The discover succeeded
- break;
- }
- }
- }
-
- if ( aCluster != 0 )
- {
- free(aCluster);
- }
-
- if ( bSuccess )
- {
- // Set the Profile's initial appliance to the Appliance
- // that we just succeeded to Discover from. KMSClient_SelectAppliance()
- // persists the updated config
- KMSClient_SelectAppliance( i_pProfile,
- i_pProfile->m_aCluster[j].m_wsApplianceNetworkAddress );
- }
- }
- }
-
- if ( bSuccess )
- {
- if (((int)strlen(stResponse.EntitySiteID) > i_iEntitySiteIDSize - 1))
- {
- bSuccess = false;
- LogError(i_pProfile,AUDIT_CLIENT_GET_CLUSTER_INFORMATION,
- NULL,
- NULL,
- "returned site id size too large" );
- }
- }
-
- // copy returned cluster information into i_pProfile->m_aCluster after
- // filtering the cluster members to a list with size <= KMS_MAX_CLUSTER_NUM
- if ( bSuccess )
- {
- KMS_Discovery::KMS_Discovery__ArrayOfClusterMembers aFilteredCluster;
-
- bSuccess = FilterCluster(&stResponse, i_pProfile->m_eKMSmode == FIPS_MODE, &aFilteredCluster);
- if (!bSuccess )
- {
- LogError(i_pProfile, AUDIT_CLIENT_GET_CLUSTER_INFORMATION,
- NULL,
- NULL,
- "cluster response filtering failed" );
- }
-
- if(bSuccess)
- {
- int i;
- bool bPersistClusterConfig = ClusterConfigChanged(i_pProfile,
- stResponse.EntitySiteID,
- &aFilteredCluster);
-
- strncpy(o_wsEntitySiteID,stResponse.EntitySiteID, i_iEntitySiteIDSize-1 );
- o_wsEntitySiteID[i_iEntitySiteIDSize-1] = '\0';
-
- strncpy(i_pProfile->m_wsEntitySiteID, stResponse.EntitySiteID, i_iEntitySiteIDSize-1 );
- i_pProfile->m_wsEntitySiteID[i_iEntitySiteIDSize-1] = '\0';
-
- // fill the aCluster array in the i_pProfile
- i_pProfile->m_iClusterNum = aFilteredCluster.__size;
- for (i = 0; i < i_pProfile->m_iClusterNum; i++)
- {
- i_pProfile->m_aCluster[i].m_lApplianceID =
- (aFilteredCluster.__ptr+i)->KMAID;
- i_pProfile->m_aCluster[i].m_iEnabled =
- (aFilteredCluster.__ptr+i)->Enabled;
- i_pProfile->m_aCluster[i].m_iResponding =
- (aFilteredCluster.__ptr+i)->Responding;
-
- i_pProfile->m_aCluster[i].m_lLoad = (aFilteredCluster.__ptr+i)->Load;
- strncpy(i_pProfile->m_aCluster[i].m_wsApplianceAlias,
- (aFilteredCluster.__ptr+i)->KMAName,
- KMS_MAX_ENTITY_ID);
- i_pProfile->m_aCluster[i].m_wsApplianceAlias[KMS_MAX_ENTITY_ID] = '\0';
- // if the m_wsApplianceAddress is IPv6 then we'll store
- // KMA IPv6 addresses if they have one
- if ( strchr( i_pProfile->m_wsApplianceAddress, ':') )
- {
- // KMAs prior to 2.1, or 2.1 KMAs at rep schema < 10
- // will not have IPv6 attributes in the soap response
- if ( (aFilteredCluster.__ptr+i)->KMANetworkAddressIPv6 &&
- ValidIPv6KMAaddress((aFilteredCluster.__ptr+i)->KMANetworkAddressIPv6))
- {
- strcpy(i_pProfile->m_aCluster[i].m_wsApplianceNetworkAddress, "[");
- char * pLoc = strchr((aFilteredCluster.__ptr+i)->KMANetworkAddressIPv6,
- '/');
- if ( pLoc != NULL )
- {
- // remove prefix from address
- *pLoc = '\0';
- strcat(i_pProfile->m_aCluster[i].m_wsApplianceNetworkAddress,
- (aFilteredCluster.__ptr+i)->KMANetworkAddressIPv6 );
- }
- else
- {
- strcat(i_pProfile->m_aCluster[i].m_wsApplianceNetworkAddress,
- (aFilteredCluster.__ptr + i)->KMANetworkAddressIPv6);
- }
- strcat(i_pProfile->m_aCluster[i].m_wsApplianceNetworkAddress, "]");
- }
- else
- {
- // use the IPv4 address
- strncpy(i_pProfile->m_aCluster[i].m_wsApplianceNetworkAddress,
- (aFilteredCluster.__ptr+i)->KMANetworkAddress,
- KMS_MAX_NETWORK_ADDRESS);
- }
- }
- else
- {
- strncpy(i_pProfile->m_aCluster[i].m_wsApplianceNetworkAddress,
- (aFilteredCluster.__ptr+i)->KMANetworkAddress,
- KMS_MAX_NETWORK_ADDRESS);
- }
- i_pProfile->m_aCluster[i].m_wsApplianceNetworkAddress[KMS_MAX_NETWORK_ADDRESS] = '\0';
- strncpy(i_pProfile->m_aCluster[i].m_wsApplianceSiteID,
- (aFilteredCluster.__ptr+i)->KMASiteID,
- KMS_MAX_ENTITY_SITE_ID);
- i_pProfile->m_aCluster[i].m_wsApplianceSiteID[KMS_MAX_ENTITY_SITE_ID] = '\0';
-
- if ((aFilteredCluster.__ptr + i)->KMAVersion)
- {
- strncpy(i_pProfile->m_aCluster[i].m_sKMAVersion,
- (aFilteredCluster.__ptr + i)->KMAVersion,
- KMS_MAX_VERSION_LENGTH);
- i_pProfile->m_aCluster[i].m_sKMAVersion[KMS_MAX_VERSION_LENGTH] = '\0';
- }
- else
- {
- i_pProfile->m_aCluster[i].m_sKMAVersion[0] = '\0';
- }
-
- if ((aFilteredCluster.__ptr + i)->KMS_Discovery__Locked)
- {
- i_pProfile->m_aCluster[i].m_iKMALocked = TRUE;
- }
- else
- {
- i_pProfile->m_aCluster[i].m_iKMALocked = FALSE;
- }
- }
-
- // now release malloc'd storage from filtering the cluster response
- FreeFilteredCluster( &aFilteredCluster, aFilteredCluster.__size );
-
- // fill the array specified by the caller
- *o_pApplianceNum = i_pProfile->m_iClusterNum;
- for (i = 0; i < i_pProfile->m_iClusterNum; i++)
- {
- o_pClusterEntryArray[i].m_lApplianceID = i_pProfile->m_aCluster[i].m_lApplianceID;
- o_pClusterEntryArray[i].m_iEnabled = i_pProfile->m_aCluster[i].m_iEnabled;
- o_pClusterEntryArray[i].m_iResponding = i_pProfile->m_aCluster[i].m_iResponding;
- o_pClusterEntryArray[i].m_lLoad = i_pProfile->m_aCluster[i].m_lLoad;
- strncpy(o_pClusterEntryArray[i].m_wsApplianceAlias,
- i_pProfile->m_aCluster[i].m_wsApplianceAlias,
- KMS_MAX_ENTITY_ID);
- o_pClusterEntryArray[i].m_wsApplianceAlias[KMS_MAX_ENTITY_ID] = '\0';
- strncpy(o_pClusterEntryArray[i].m_wsApplianceNetworkAddress,
- i_pProfile->m_aCluster[i].m_wsApplianceNetworkAddress,
- KMS_MAX_NETWORK_ADDRESS);
- o_pClusterEntryArray[i].m_wsApplianceNetworkAddress[KMS_MAX_NETWORK_ADDRESS] = '\0';
- strncpy(o_pClusterEntryArray[i].m_wsApplianceSiteID,
- i_pProfile->m_aCluster[i].m_wsApplianceSiteID,
- KMS_MAX_ENTITY_SITE_ID);
- o_pClusterEntryArray[i].m_wsApplianceSiteID[KMS_MAX_ENTITY_SITE_ID] = '\0';
- strncpy(o_pClusterEntryArray[i].m_sKMAVersion, i_pProfile->m_aCluster[i].m_sKMAVersion,
- KMS_MAX_VERSION_LENGTH);
- o_pClusterEntryArray[i].m_sKMAVersion[KMS_MAX_VERSION_LENGTH] = '\0';
- }
-
- i_pProfile->m_iLastClusterDiscoveryTime = K_GetTickCount() / 1000;
- i_pProfile->m_bIsClusterDiscoveryCalled = true;
-
- if ( bPersistClusterConfig )
- {
- bSuccess = StoreCluster(i_pProfile);
- if (!bSuccess)
- {
- Log(AUDIT_CLIENT_GetClusterInformation,
- NULL,
- NULL,
- "Could not store cluster");
- }
- }
- }
- }
-
- // cleanup
- if (pstSoap)
- {
- soap_destroy(pstSoap);
- soap_end(pstSoap);
- if (!bSuccess)
- {
- soap_free(pstSoap);
- }
- else
- {
- // we want to persist discovery soap runtime to avoid ssl handshakes so soap_free() is not called
- }
- }
-
- // if we're enrolled but cannot get cluster information from an appliance, then we'll try to load
- // it from the profile
- if ( !bSuccess && i_pProfile->m_iEnrolled )
- {
- int bClusterInformationFound = false;
-
- bSuccess = LoadClusterInformation( i_pProfile, bClusterInformationFound );
-
- if ( bSuccess && bClusterInformationFound )
- {
- Log(AUDIT_CLIENT_GetClusterInformation,
- NULL,
- NULL,
- "Using persisted cluster information");
-
- strncpy(o_wsEntitySiteID, i_pProfile->m_wsEntitySiteID, i_iEntitySiteIDSize-1);
- o_wsEntitySiteID[i_iEntitySiteIDSize-1] = '\0';
-
- // fill the array specified by the caller
- *o_pApplianceNum = i_pProfile->m_iClusterNum;
- for (int i = 0; i < i_pProfile->m_iClusterNum; i++)
- {
- o_pClusterEntryArray[i].m_lApplianceID = i_pProfile->m_aCluster[i].m_lApplianceID;
- o_pClusterEntryArray[i].m_iEnabled = i_pProfile->m_aCluster[i].m_iEnabled;
- o_pClusterEntryArray[i].m_iResponding = TRUE; // since cluster info comes from a file, set it to TRUE
-
- o_pClusterEntryArray[i].m_lLoad = i_pProfile->m_aCluster[i].m_lLoad;
- strncpy(o_pClusterEntryArray[i].m_wsApplianceAlias,
- i_pProfile->m_aCluster[i].m_wsApplianceAlias,
- KMS_MAX_ENTITY_ID);
- o_pClusterEntryArray[i].m_wsApplianceAlias[KMS_MAX_ENTITY_ID] = '\0';
- strncpy(o_pClusterEntryArray[i].m_wsApplianceNetworkAddress,
- i_pProfile->m_aCluster[i].m_wsApplianceNetworkAddress,
- KMS_MAX_NETWORK_ADDRESS);
- o_pClusterEntryArray[i].m_wsApplianceNetworkAddress[KMS_MAX_NETWORK_ADDRESS] = '\0';
- strncpy(o_pClusterEntryArray[i].m_wsApplianceSiteID,
- i_pProfile->m_aCluster[i].m_wsApplianceSiteID,
- KMS_MAX_ENTITY_SITE_ID);
- o_pClusterEntryArray[i].m_wsApplianceSiteID[KMS_MAX_ENTITY_SITE_ID] = '\0';
- strncpy(o_pClusterEntryArray[i].m_sKMAVersion,
- i_pProfile->m_aCluster[i].m_sKMAVersion,
- KMS_MAX_VERSION_LENGTH);
- o_pClusterEntryArray[i].m_sKMAVersion[KMS_MAX_VERSION_LENGTH] = '\0';
- }
-
- i_pProfile->m_iLastClusterDiscoveryTime = K_GetTickCount() / 1000;
- }
- else if ( bSuccess && !bClusterInformationFound )
- {
- // if we're here, then we need to return an error
- bSuccess = false;
- }
- }
-
- return bSuccess;
-}
-
-bool KMSClient_NoFIPSCompatibleKMAs(const KMSClientProfile * const i_pProfile)
-{
- bool bNoFIPScompatibleKMA = true;
- for (int i=0; i < i_pProfile->m_iClusterNum; i++)
- {
- if ( FIPScompatibleKMA(i_pProfile->m_aCluster[i].m_sKMAVersion))
- {
- bNoFIPScompatibleKMA = false;
- break;
- }
- }
- return bNoFIPScompatibleKMA;
-}
-
-/*---------------------------------------------------------------------------
- * Function: KMSClient_SelectAppliance
- *
- *--------------------------------------------------------------------------*/
-bool KMSClient_SelectAppliance(KMSClientProfile *i_pProfile,
- utf8char *i_wsApplianceAddress)
-{
- FATAL_ASSERT(i_pProfile);
- FATAL_ASSERT(i_wsApplianceAddress);
-
- CAutoMutex oAutoMutex( (K_MUTEX_HANDLE)i_pProfile->m_pLock );
-
- bool bSuccess = true;
-
- if(strlen(i_wsApplianceAddress) >= KMS_MAX_NETWORK_ADDRESS)
- {
- LogError(i_pProfile,AUDIT_CLIENT_SELECT_APPLIANCE,
- NULL,
- NULL,
- "Appliance Address too large" );
- bSuccess = false;
- }
-
- if(bSuccess)
- {
- strncpy(i_pProfile->m_wsApplianceAddress,
- i_wsApplianceAddress,
- KMS_MAX_NETWORK_ADDRESS);
- i_pProfile->m_wsApplianceAddress[KMS_MAX_NETWORK_ADDRESS] = 0;
- }
-
- bSuccess = StoreConfig( i_pProfile );
-
- return bSuccess;
-}
-
-bool KMSClient_ProfileLoaded( KMSClientProfile *i_pProfile )
-{
-
-#if defined(DEBUG) && defined(METAWARE)
- log_printf ("profile: %x", i_pProfile);
- log_printf ("profile: enrolled %x", i_pProfile->m_iEnrolled);
- log_printf ("profile: version %x", i_pProfile->m_iVersion);
-#endif
-
- // more extensive tests could be performed but this should suffice
- if ( i_pProfile &&
- i_pProfile->m_iEnrolled &&
- i_pProfile->m_iVersion == KMS_AGENT_VERSION )
- {
- return true;
- }
- else
- {
- return false;
- }
-}
-
-/*---------------------------------------------------------------------------
- * Function: KMSClient_DeleteProfile
- *
- *--------------------------------------------------------------------------*/
-bool KMSClient_DeleteProfile(utf8char *i_wsProfileName)
-{
- FATAL_ASSERT( i_wsProfileName && (strlen(i_wsProfileName) > 0) );
-
- bool bSuccess = true;
-
- if (ProfileExists(g_wsWorkingDirectory, /* pass in default */
- i_wsProfileName))
- {
- bSuccess = DeleteStorageProfile(i_wsProfileName);
- }
-
- return bSuccess;
-}
-
-/*---------------------------------------------------------------------------
- * Function: KMSClient_UnloadProfile
- *
- *--------------------------------------------------------------------------*/
-bool KMSClient_UnloadProfile(KMSClientProfile *i_pProfile)
-{
- if(i_pProfile != NULL && i_pProfile->m_pLock != NULL )
- {
-#ifdef KMSUSERPKCS12
- /* Delete the private client key file if it's still around */
- CleanupPrivateKeyFile(i_pProfile);
-#endif
- if (i_pProfile->m_pAgentLoadBalancer != NULL)
- {
- delete reinterpret_cast
- <CAgentLoadBalancer *> (i_pProfile->m_pAgentLoadBalancer);
- }
- if (i_pProfile->m_pDataUnitCache != NULL)
- {
- delete reinterpret_cast<CDataUnitCache *> (i_pProfile->m_pDataUnitCache);
- }
- K_DestroyMutex((K_MUTEX_HANDLE)i_pProfile->m_pLock);
- i_pProfile->m_pLock = 0;
-
- if ( i_pProfile->m_pvSoap )
- {
- soap_destroy( (struct soap*)i_pProfile->m_pvSoap );
- soap_end( (struct soap*)i_pProfile->m_pvSoap );
- soap_done( (struct soap*)i_pProfile->m_pvSoap );
-
- free( (struct soap*)i_pProfile->m_pvSoap );
- i_pProfile->m_pvSoap = 0;
- }
-
- if ( i_pProfile->m_pvDiscoverySoap)
- {
- soap_destroy( (struct soap*)i_pProfile->m_pvDiscoverySoap );
- soap_end( (struct soap*)i_pProfile->m_pvDiscoverySoap );
- soap_done( (struct soap*)i_pProfile->m_pvDiscoverySoap );
-
- free( (struct soap*)i_pProfile->m_pvDiscoverySoap );
- i_pProfile->m_pvDiscoverySoap = 0;
- }
- }
-
- i_pProfile->m_iEnrolled = FALSE;
-
- return true; /* always return true, maybe there are cases which return false in the future */
-}
-
-bool FIPScompatibleKMA(
- const char * const i_sKMAVersion) {
- return (strcmp(i_sKMAVersion,
- FIPS_COMPATIBLE_KMA_VERSION) >= 0);
-}
-
-#ifdef KMSUSERPKCS12
-extern "C"
-KMS_AGENT_STATUS
-KMSAgent_GetProfileStatus(
- char* i_pProfileName,
- KMSAGENT_PROFILE_FLAGS *flags)
-{
- /*
- * Determine how "initialized" the KMS token is by checking for
- * the profile config file and also the entity key container (pkcs#12).
- */
- if (ProfileExists(g_wsWorkingDirectory, i_pProfileName)) {
- *flags |= KMSAGENT_PROFILE_EXISTS_FLAG;
- if (ClientKeyP12Exists(i_pProfileName))
- *flags |= KMSAGENT_CLIENTKEY_EXISTS_FLAG;
- }
- return (KMS_AGENT_STATUS_OK);
-}
-#endif
diff --git a/usr/src/lib/libkmsagent/common/KMSClientProfile.h b/usr/src/lib/libkmsagent/common/KMSClientProfile.h
deleted file mode 100644
index e0a635e7eb..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSClientProfile.h
+++ /dev/null
@@ -1,456 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/*-------------------------------------------------------------------------*/
-/**
- * \file KMSClientProfile.h
- *
- * The KMS Client profile management API, including profile setup, CA
- * certificate download, and Certificate retrieval
- *
- */
-/*-------------------------------------------------------------------------*/
-
-#ifndef KMSCLIENT_PROFILE_H
-#define KMSCLIENT_PROFILE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef KMS_LONG_LONG
-#define KMS_LONG_LONG
-
-#ifdef WIN32
- typedef __int64 Long64;
-#else
- typedef long long Long64;
-#endif
-
-
-#endif
-
-#ifdef KMSUSERPKCS12
-#define CLIENT_PK12_FILE "clientkey.p12"
-#endif
-
-/**
- * \note UTF-8 encoding is used for the underlying SOAP RPC transactions by
- * this API. In order to support environments lacking wchar.h
- * traditional C strings are used instead.
- */
-typedef char * utf8cstr;
-
-/**
- * @see commments for utf8cstr.
- */
-typedef char utf8char;
-
-/**
- * KMS Agent Toolkit Version identifier
- */
-#define KMS_AGENT_VERSION 0x210
-
-/*---------------------------------------------------------------------------
- * Limits and sizes
- *--------------------------------------------------------------------------*/
-/**
- * The maximum length of an agent name.
- */
-#define KMS_MAX_AGENT_NAME 64
-
-/**
- * The size of a data unit ID in bytes.
- */
-#define KMS_DATA_UNIT_ID_SIZE 16
-
-/**
- * The maximum lenght of a description for key group or data unit.
- */
-#define KMS_MAX_DESCRIPTION 64
-
-/**
- * The maximum maximum length of an external unique id.
- */
-#define KMS_MAX_EXTERNAL_UNIQUE_ID_SIZE 32
-
-/**
- * The maximum external tag length.
- */
-#define KMS_MAX_EXTERNAL_TAG 64
-
-/**
- * The size of a key ID in bytes.
- */
-#define KMS_KEY_ID_SIZE 30
-
-/**
- * The size of an AES Key Wrapping Key ID.
- */
-#define KMS_KWK_KEY_ID_SIZE 8
-
-/**
- * The maximum size of a key in bytes.
- */
-#define KMS_MAX_KEY_SIZE 32
-
-/**
- * The maximum size of an wrapped key(RFC3394 AES Key Wrap) in bytes.
- */
-#define KMS_MAX_WRAPPED_KEY_SIZE KMS_MAX_KEY_SIZE+8
-
-/**
- * The maximum length of a key group ID.
- */
-#define KMS_MAX_KEY_GROUP_ID_SIZE 64
-
-/**
- * The maximum size of a key group list to be returned. This should
- * be sufficient for agents as this is an atypical call.
- */
-#define KMS_MAX_LIST_KEY_GROUPS 100
-
-/**
- * The maximum number of keys returned in a key list.
- */
-#define KMS_MAX_PAGE_SIZE 32
-
-/**
- * The maximum passphrase length.
- */
-#define KMS_MAX_PASSPHRASE 64
-
-/**
- * The maximum length of agent's name, aka ID.
- */
-#define KMS_MAX_ENTITY_ID 64
-
-/**
- * The maximum length of an agent's sited ID.
- */
-#define KMS_MAX_ENTITY_SITE_ID 64
-
-/**
- * The maximum length of a URL.
- */
-#define KMS_MAX_URL 512
-
-/**
- * The maximum length of a filter parameter field name.
- */
-#define KMS_MAX_FIELD_NAME 64
-
-/**
- * The maximum length of a query parameter sort field value.
- */
-#define KMS_MAX_FIELD_VALUE 64
-
-/**
- * The maximum ID length used in various types of IDs.
- */
-#define KMS_MAX_ID 64
-
-/**
- * The maximum length of a KMA network address, either IPv4 or IPv6.
- * Also maximum hostname length if/when hostnames are supported
- */
-#define KMS_MAX_NETWORK_ADDRESS 256
-
-/**
- * The maximum length of a file name.
- */
-#define KMS_MAX_FILE_NAME 256
-
-/**
- * The maximum length of error strings.
- */
-#define KMS_MAX_ERROR_STRING 1024
-
-/**
- * the number of nodes in a KMS is variable. This constant
- * dictates how many of the KMAs in a KMS will be saved to the
- * profile, persisted to storage and used for load balancing and failover. See
- * <code>KMSAgent_GetClusterInformation</code>
- * Range: 1 .. max int, users should con
- */
-#ifndef KMS_MAX_CLUSTER_NUM
-#define KMS_MAX_CLUSTER_NUM 20
-#endif
-
-/**
- * The maximum length for SHA1 hashes used in authentication.
- */
-#define KMS_MAX_HASH_SIZE 20
-
-/**
- * The maximum length of a KMS verstion string.
- */
-#define KMS_MAX_VERSION_LENGTH 100
-
-/**
- * The maximum length of working directory.
- */
-#define KMS_MAX_PATH_LENGTH 1024
-
-/**
- * typedef for Key ID
- */
-typedef unsigned char KEY_ID [KMS_KEY_ID_SIZE];
-
-/**
- * typedef for an unwrapped Key
- */
-typedef unsigned char KEY [KMS_MAX_KEY_SIZE];
-
-/**
- * typedef for an AES wrapped key
- */
-typedef unsigned char WRAPPED_KEY [KMS_MAX_WRAPPED_KEY_SIZE];
-
-/**
- * typedef for KMSClusterEntry struct
- */
-typedef struct KMSClusterEntry KMSClusterEntry;
-
-/** \struct KMSClusterEntry
- * A struct representing each Key Management Appliance discovered in the KMS cluster
- */
-struct KMSClusterEntry
-{
- /**
- * The KMA's identifier.
- */
- Long64 m_lApplianceID;
-
- /**
- * The KMA's name.
- */
- utf8char m_wsApplianceAlias[KMS_MAX_ENTITY_ID + 1];
-
- /**
- * The Sited ID for the KMA.
- */
- utf8char m_wsApplianceSiteID[KMS_MAX_ENTITY_SITE_ID + 1];
-
- /**
- * A network address for the KMA that corresponds to the agent's network.
- * KMAs are multi-homed so only an address useful to the agent is provided.
- */
- utf8char m_wsApplianceNetworkAddress[KMS_MAX_NETWORK_ADDRESS + 1];
-
- /**
- * Enabled status for the KMA, 1 for enabled, 0 if disabled.
- */
- int m_iEnabled;
-
- /**
- * Unused at present but may be used for reporting a KMAs load to be used
- * as a load balancing heuristic.
- */
- Long64 m_lLoad;
-
- /**
- * A boolean indicating the current response status of a KMA on the network.
- * A non-responding KMA may be either down or unreachable due to the network.
- */
- int m_iResponding;
-
- /**
- * The KMA's version level.
- */
- utf8char m_sKMAVersion[KMS_MAX_VERSION_LENGTH+1];
-
- /**
- * KMA lock status as provided by KMS Discover Cluster service. Defaults
- * to false for KMAs earlier than KMS 2.3 where it was first introduced.
- */
- int m_iKMALocked;
-};
-
-
-/**
- * the profile for an agent. The profile contains sections that are persisted
- * and fields that are volatile. See KMSAgentStorage.h for interfaces to load/store
- * the persistent sections.
- * <p><b>Note</b> that members of this struct should
- * not be accessed directly by users of this library.
- */
-
-/** \struct KMSClientProfile
- * the properties comprising the profile, some of which must be persisted.
- */
-typedef struct KMSClientProfile_s
-{
- /**
- * the version of the KMS Agent Library
- */
- int m_iVersion;
-
- /**
- * Profile Name
- */
- utf8char m_wsProfileName[KMS_MAX_ENTITY_ID + 1];
-
- /**
- * Subject Name
- */
- utf8char m_wsEntityID[KMS_MAX_ENTITY_ID + 1];
-
- /**
- * Appliance Address used for enrollment and discovery
- */
- utf8char m_wsApplianceAddress[KMS_MAX_NETWORK_ADDRESS + 1];
-
- /**
- * KMS CA service port
- */
- int m_iPortForCAService;
- /**
- * KMS Certificate service port
- */
- int m_iPortForCertificateService;
-
- /**
- * KMS Agent service port
- */
- int m_iPortForAgentService;
-
- /**
- * KMS Discovery service port
- */
- int m_iPortForDiscoveryService;
-
- /**
- * timeout in seconds before failover to alternate KMS in cluster
- */
- int m_iTransactionTimeout;
-
- /**
- * the number of times failover will be attempted
- */
- int m_iFailoverLimit;
-
- /**
- * the number of times the current transaction has failed over
- */
- int m_iFailoverAttempts;
-
- /**
- * TRUE when agent has enrolled and stored its certificates.
- */
- int m_iEnrolled;
-
- /**
- * The agent's passphrase after "key stretching", i.e. hashing the number of
- * times specified by the KMA during enrollment, and converted to hexadecimal.
- */
- char m_sHexHashedPassphrase[2*KMS_MAX_HASH_SIZE+1];
-
- /**
- * gSOAP runtime context.
- */
- void *m_pvSoap;
-
- /**
- * gSOAP runtime context for discovery.
- */
- void *m_pvDiscoverySoap;
-
- /**
- * A lock used internally by the agent library.
- */
- void *m_pLock;
-
- /**
- * The minimum interval between automatic cluster discovery requests in seconds.
- * A value of zero seconds disables load balancing and periodic cluster
- * discovery calls.
- */
- int m_iClusterDiscoveryFrequency;
-
- /**
- * The time in seconds when the cluster discovery service was last called for the
- * current session.
- */
- int m_iLastClusterDiscoveryTime;
-
- /**
- * The Site ID assigned to the agent by the KMS administrators.
- */
- utf8char m_wsEntitySiteID[KMS_MAX_ENTITY_SITE_ID + 1];
-
- /**
- * The total number of KMA in the KMS cluster as reported by the last
- * cluster discovery.
- */
- int m_iClusterNum;
-
- /**
- * An array of the KMAs withhin the cluster.
- */
- KMSClusterEntry m_aCluster[KMS_MAX_CLUSTER_NUM];
-
- /**
- * A boolean flag for the first cluster discovery call.
- */
- int m_bIsClusterDiscoveryCalled;
-
- /**
- * A handle to the DataUnitCache used for selection of a KMA.
- */
- void *m_pDataUnitCache;
-
- /**
- * A handle to the load balancer.
- */
- void *m_pAgentLoadBalancer;
-
- /**
- * error string
- */
- utf8char m_wsErrorString[KMS_MAX_ERROR_STRING + 1];
-
- /**
- * URL to KMA service within cluster
- */
- char m_sURL[KMS_MAX_URL + 1];
-
- /**
- * The security mode specified to <code>KMSAgent_LoadProfile</code>
- */
- int m_eKMSmode;
-
-#ifdef KMSUSERPKCS12
- int m_iLastErrorCode;
-#endif
-} KMSClientProfile;
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif
-
diff --git a/usr/src/lib/libkmsagent/common/KMSClientProfileImpl.h b/usr/src/lib/libkmsagent/common/KMSClientProfileImpl.h
deleted file mode 100644
index f4a2d9e39d..0000000000
--- a/usr/src/lib/libkmsagent/common/KMSClientProfileImpl.h
+++ /dev/null
@@ -1,344 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/**
- * \file KMSClientProfileImpl.h
- */
-
-#ifndef CLIENT_PROFILE_IMPL_H
-#define CLIENT_PROFILE_IMPL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define AGENT_LOG_FILE "KMSAgentLog.log"
-
-/**
- * Build383 corresponds to 2.0.2 which does not support AES Key Wrap and
- * enforcment of FIPS mode.
- */
-#define FIPS_COMPATIBLE_KMA_VERSION "Build384"
-
-
-extern bool g_bUseFileLog;
-
-/*---------------------------------------------------------------------------
- * Function: KMSClient_InitializeLibrary
- *
- * Description: This function initializes the KMS Agent or Management API library.
- * It should be called before any other functions are invoked.
- * Internally, it setups SSL library and Logging module.
- *
- *
- * Input
- * -----
- * i_wsWorkingDirectory -- Working directory of the program which uses the library
- * i_bIsManager -- TRUE: Initialize Management Library; FALSE: initialize Agent Library.
- * i_bUseFileLog: True if logs should go to a log file in the working directory.
- * False otherwise.
- *
- * Output
- * ------
- * return value TRUE or FALSE
- *
- *--------------------------------------------------------------------------*/
-bool KMSClient_InitializeLibrary(
- const utf8cstr i_wsWorkingDirectory,
- int i_bUseFileLog );
-
-/*---------------------------------------------------------------------------
- * Function: KMSClient_FinalizeLibrary
- *
- * Description: This function finalizes the KMS Agent(Or Management) API library.
- * It should be called when the library is not needed by the program.
- * Internally it cleans up SSL library and Logging module.
- *
- *
- * Input
- * -----
- * i_bIsManager -- TRUE: Finalize Management Library; FALSE: Finalize Agent Library.
- *
- * Output
- * ------
- * return value TRUE or FALSE
- *
- *--------------------------------------------------------------------------*/
-bool KMSClient_FinalizeLibrary();
-
-utf8cstr KMSClient_GetLastErrorMessage(KMSClientProfile *i_pProfile);
-
-bool KMSClient_LoadProfile(
- KMSClientProfile *io_pProfile,
- utf8cstr i_wsProfileName,
- utf8cstr i_wsEntityID,
- utf8cstr i_wsPassphrase,
- utf8cstr i_wsApplianceAddress,
- int i_iTransactionTimeout,
- int i_iFailOverLimit,
- int i_iClusterDiscoveryFrequency,
- int i_eKMSmode);
-
-/*---------------------------------------------------------------------------
- * Function: KMSClient_GetClusterInformation
- *
- * Description: Get the cluster information by calling cluster discovery
- * service.
- *
- * Input
- * -----
- * i_pProfile -- a pointer to an initialized KMSClientProfile structure
- * i_iEntitySiteIDSize -- the buffer size of the entity site ID
- * (KMS_MAX_ENTITIY_SITE_ID)
- * i_iClusterEntryArraySize -- the array size for cluster entries
- * (KMS_MAX_CLUSTER_NUM)
- * Output
- * ------
- * o_wsEntitySiteID -- the entity's Site ID
- * o_pApplianceNum -- the returned number of the appliances in the cluster
- * o_pClusterEntryArray -- the array of cluster entries
- *
- * return value TRUE/FALSE
- * Use KMSAgent_GetLastErrorMessage() to get the error message
- *
- *
- *--------------------------------------------------------------------------*/
-bool KMSClient_GetClusterInformation(KMSClientProfile *i_pProfile,
- utf8cstr o_wsEntitySiteID,
- int i_iEntitySiteIDSize,
- int *o_pApplianceNum,
- KMSClusterEntry *o_pClusterEntryArray,
- int i_iClusterEntryArraySize);
-
-/**
- * @return true if any KMAs are not FIPS compatible, i.e. perform AES key
- * wrap.
- */
-bool KMSClient_NoFIPSCompatibleKMAs(const KMSClientProfile * const i_pProfile);
-
-/*---------------------------------------------------------------------------
- * Function: KMSClient_SelectAppliance
- *
- * Description: Select the current appliance. The current appliance is used for
- * retrieving cluster information.
- *
- * Input
- * -----
- * i_pProfile -- a pointer to an initialized KMSClientProfile structure
- * i_wsApplianceAddress -- the IP address of the appliance
- * Output
- * ------
- * (none)
- * return value TRUE/FALSE
- * Use KMSAgent_GetLastErrorMessage() to get the error message
- *
- *
- *--------------------------------------------------------------------------*/
-bool KMSClient_SelectAppliance(KMSClientProfile *i_pProfile,
- utf8cstr i_wsApplianceAddress);
-
-/**
- * check if the profile was loaded successfully
- *
- * @param i_pProfile a pointer that may, or may not be to a loaded profile
- *
- * @return true if the profile was loaded
- */
-bool KMSClient_ProfileLoaded( KMSClientProfile *i_pProfile );
-
-/*---------------------------------------------------------------------------
- * Function: KMSClient_DeleteProfile
- *
- * Description: Delete the profile information from the local disk
- *
- *
- * Input
- * -----
- * i_wsProfileName -- the profile name
-
- * Output
- * ------
- * return value TRUE/FALSE
- * Use KMSAgent_GetLastErrorMessage() to get the error message
- *
- *--------------------------------------------------------------------------*/
-bool KMSClient_DeleteProfile(utf8cstr i_wsProfileName);
-
-/*---------------------------------------------------------------------------
- * Function: KMSClient_UnloadProfile
- *
- * Description: Destroy the profile information in memory including agent's private
- * key.
- *
- *
- * Input
- * -----
- * i_pProfile -- a pointer to an initialized KMSClientProfile structure
-
- * Output
- * ------
- * return value TRUE/FALSE
- * Use KMSAgent_GetLastErrorMessage() to get the error message
- *
- *--------------------------------------------------------------------------*/
-bool KMSClient_UnloadProfile(KMSClientProfile *i_pProfile);
-
-/**
- * @return true if the soap fault string indicates that the SSL handshake
- * did not succeed due to an invalid certificate.
- */
-bool SSL_InvalidCertificate(const char * const i_sErrorString );
-
-/**
- * compares the error string with various soap fault substrings to determine if the
- * error was a server-side error or not, also checks the supplied errno codes against
- * various POSIX errno macros that would imply server connection issues
- */
-bool ServerError (const char * i_sErrorString, int i_iErrno );
-
-#ifdef __cplusplus
-}
-
-// helper macro to turn value into a string
-#define LogError(a,b,c,d,e) LogError_function(a,b,#b,c,d,e)
-
-/**
- * Log an error after saving the message in the profile. This supports <code>KMSAgent_GetLastErrorMessage</code>
- * @param i_pProfile an initialized profile
- *
- * @param i_iErrno, the error expressed as a number
- * @param i_sOperation, the operation number as a string
- * @param i_sEntityID optional, the agent ID
- * @param i_sNetworkAddress optional, the address of the KMA involved in the error
- * @param i_sMessage optional, an informative error message
- */
-void LogError_function(KMSClientProfile *i_pProfile,
- int i_iErrno,
- const char* i_sOperation,
- const char* i_sEntityID,
- const char* i_sNetworkAddress,
- const char* i_sMessage );
-
-#endif
-
-/**
- * @return true if the KMA version string corresponds to a FIPS compatible
- * KMA
- */
-bool FIPScompatibleKMA (
- const char * const i_sKMAVersion);
-
-#define AUDIT_CLIENT_LOG_ERROR_BASE 0x300
-
-#define AUDIT_CLIENT_AGENT_CREATE_AUDIT_LOG_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x00)
-#define AUDIT_CLIENT_AGENT_CREATE_DATA_UNIT_RESPONSE_INVALID_DESCRIPTION_LENGTH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x01)
-#define AUDIT_CLIENT_AGENT_CREATE_DATA_UNIT_RESPONSE_INVALID_DU_ID_LENGTH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x02)
-#define AUDIT_CLIENT_AGENT_CREATE_DATA_UNIT_RESPONSE_INVALID_EXTERNAL_TAG_LENGTH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x03)
-#define AUDIT_CLIENT_AGENT_CREATE_DATA_UNIT_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x04)
-#define AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_KEYID_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x05)
-#define AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_KEY_GROUP_ID_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x06)
-#define AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_KEY_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x07)
-#define AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_KEY_STATE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x08)
-#define AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_KEY_TYPE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x09)
-#define AUDIT_CLIENT_AGENT_CREATE_KEY_KEY_CALLOUT_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x0a)
-#define AUDIT_CLIENT_AGENT_CREATE_KEY_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x0b)
-#define AUDIT_CLIENT_AGENT_DISASSOCIATE_DATA_UNIT_KEYS_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x0c)
-#define AUDIT_CLIENT_AGENT_LIST_KEY_GROUPS_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x0d)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_BY_EXTERNAL_UNIQUE_ID_RESPONSE_INVALID_DESCRIPTION_LENGTH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x0e)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_BY_EXTERNAL_UNIQUE_ID_RESPONSE_INVALID_EXTERNAL_TAG_LENGTH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x0f)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_BY_EXTERNAL_UNIQUE_ID_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x10)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEYS_REMAINING_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x11)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEYS_SIZE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x12)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEY_ARRAY_SIZE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x13)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEY_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x14)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEY_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x15)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEY_STATE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x16)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_KEY_TYPE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x17)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_KEY_CALLOUT_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x18)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x19)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_RESPONSE_INVALID_DESCRIPTION_LENGTH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x1a)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_RESPONSE_INVALID_EXTERNAL_TAG_LENGTH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x1b)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x1c)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_KEYID_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x1d)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_KEY_GROUP_ID_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x1e)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_KEY_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x1f)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_KEY_STATE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x20)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_KEY_TYPE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x21)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_KEY_CALLOUT_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x22)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x23)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_KEYID_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x24)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_KEY_GROUP_ID_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x25)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_KEY_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x26)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_KEY_STATE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x27)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_KEY_TYPE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x28)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_KEY_CALLOUT_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x29)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x2a)
-#define AUDIT_CLIENT_COMPUTE_CHALLENGE_RESPONSE_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x2b)
-#define AUDIT_CLIENT_COMPUTE_FIXED_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x2c)
-#define AUDIT_CLIENT_GET_CERTIFICATE_INVALID_CERTIFICATE_FORMAT (AUDIT_CLIENT_LOG_ERROR_BASE + 0x2d)
-#define AUDIT_CLIENT_GET_CERTIFICATE_INVALID_CHALLENGE_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x2e)
-#define AUDIT_CLIENT_GET_CERTIFICATE_INVALID_KEY_FORMAT (AUDIT_CLIENT_LOG_ERROR_BASE + 0x2f)
-#define AUDIT_CLIENT_GET_CERTIFICATE_INVALID_RESPONSE_FORMAT (AUDIT_CLIENT_LOG_ERROR_BASE + 0x30)
-#define AUDIT_CLIENT_GET_CERTIFICATE_SAVE_CA_CERTIFICATE_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x31)
-#define AUDIT_CLIENT_GET_CERTIFICATE_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x32)
-#define AUDIT_CLIENT_GET_CLUSTER_INFORMATION (AUDIT_CLIENT_LOG_ERROR_BASE + 0x33)
-#define AUDIT_CLIENT_GET_CLUSTER_INFORMATION_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x34)
-#define AUDIT_CLIENT_GET_ROOT_CA_CERTIFICATE_INVALID_CA_CERTIFICATE_FORMAT (AUDIT_CLIENT_LOG_ERROR_BASE + 0x35)
-#define AUDIT_CLIENT_GET_ROOT_CA_CERTIFICATE_INVALID_RESPONSE_FORMAT (AUDIT_CLIENT_LOG_ERROR_BASE + 0x36)
-#define AUDIT_CLIENT_LOAD_CLUSTER_INFORMATION_INVALID_CLUSTER_FILE_FORMAT (AUDIT_CLIENT_LOG_ERROR_BASE + 0x37)
-#define AUDIT_CLIENT_LOAD_CLUSTER_INFORMATION_OPEN_CLUSTER_FILE_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x38)
-#define AUDIT_CLIENT_LOAD_PROFILE_EXPORT_CERTIFICATE_AND_KEY_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x39)
-#define AUDIT_CLIENT_LOAD_PROFILE_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x3a)
-#define AUDIT_CLIENT_LOAD_PROFILE_SAVE_CA_CERTIFICATE_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x3b)
-#define AUDIT_CLIENT_LOAD_PROFILE_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x3c)
-#define AUDIT_CLIENT_SAVE_CLUSTER_INFORMATION_OPEN_CLUSTER_FILE_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x3d)
-#define AUDIT_CLIENT_SAVE_ROOTCA_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x3e)
-#define AUDIT_CLIENT_SELECT_APPLIANCE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x3f)
-#define AUDIT_PROFILE_READ_CONFIG_FILE_INVALID_CONFIGURATION_FILE_FORMAT (AUDIT_CLIENT_LOG_ERROR_BASE + 0x40)
-#define AUDIT_PROFILE_READ_CONFIG_FILE_OPEN_CONFIGURATION_FILE_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x41)
-#define AUDIT_PROFILE_WRITE_CONFIG_FILE_OPEN_CONFIGURATION_FILE_FAILED (AUDIT_CLIENT_LOG_ERROR_BASE + 0x42)
-#define LoadProfile_AUDIT_CLIENT_GET_ROOT_CA_CERTIFICATE_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x43)
-#define AUDIT_CLIENT_AGENT_CREATE_KEY_AESKEYUNWRAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x44)
-#define AUDIT_CLIENT_AGENT_REGISTER_KWK_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x45)
-#define AUDIT_CLIENT_AGENT_REGISTER_KWK_INVALID_KEYID_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x46)
-#define AUDIT_CLIENT_AGENT_CREATE_KWK_RNG_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x47)
-#define AUDIT_CLIENT_GET_KWK_WRAPPING_KEY_SOAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x48)
-#define AUDIT_CLIENT_GET_KWK_WRAPPING_KEY_INVALID_KEY_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x49)
-#define AUDIT_CLIENT_GET_KWK_WRAPPING_KEY_INVALID_RSA_PUB_KEY (AUDIT_CLIENT_LOG_ERROR_BASE + 0x50)
-#define AUDIT_CLIENT_AGENT_CREATE_KWK_PUBLIC_ENCRYPT_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x51)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_AESKEYUNWRAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x52)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_AESKEYUNWRAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x53)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_AESKEYUNWRAP_ERROR (AUDIT_CLIENT_LOG_ERROR_BASE + 0x54)
-#define AUDIT_CLIENT_AGENT_CREATE_KEY_INVALID_WRAPPED_KEY_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x55)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_INVALID_WRAPPED_KEY_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x56)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_INVALID_WRAPPED_KEY_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x57)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_INVALID_WRAPPED_KEY_LENGTH_RESPONSE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x58)
-#define AUDIT_CLIENT_AGENT_CREATE_KEY_KWKID_MISMATCH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x59)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_KEY_KWKID_MISMATCH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x60)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_DATA_UNIT_KEYS_KWKID_MISMATCH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x61)
-#define AUDIT_CLIENT_AGENT_RETRIEVE_PROTECT_AND_PROCESS_KEY_KWKID_MISMATCH (AUDIT_CLIENT_LOG_ERROR_BASE + 0x62)
-#define AUDIT_CLIENT_AGENT_LOAD_PROFILE_NO_FIPS_COMPATIBLE_KMAS_AVAILABLE (AUDIT_CLIENT_LOG_ERROR_BASE + 0x63)
-
-#endif
diff --git a/usr/src/lib/libkmsagent/common/SOAP/AgentServiceNamespace.cpp b/usr/src/lib/libkmsagent/common/SOAP/AgentServiceNamespace.cpp
deleted file mode 100644
index 825e0b022c..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/AgentServiceNamespace.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-#include "KMS_Agent.nsmap"
diff --git a/usr/src/lib/libkmsagent/common/SOAP/CAServiceNamespace.cpp b/usr/src/lib/libkmsagent/common/SOAP/CAServiceNamespace.cpp
deleted file mode 100644
index e33f96bd4c..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/CAServiceNamespace.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-#include "KMS_CA.nsmap"
diff --git a/usr/src/lib/libkmsagent/common/SOAP/CertificateServiceNamespace.cpp b/usr/src/lib/libkmsagent/common/SOAP/CertificateServiceNamespace.cpp
deleted file mode 100644
index 8b6ebc71a2..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/CertificateServiceNamespace.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-#include "KMS_Certificate.nsmap"
diff --git a/usr/src/lib/libkmsagent/common/SOAP/DiscoveryServiceNamespace.cpp b/usr/src/lib/libkmsagent/common/SOAP/DiscoveryServiceNamespace.cpp
deleted file mode 100644
index 9acf17e9cb..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/DiscoveryServiceNamespace.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-#include "KMS_Discovery.nsmap"
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMSAgentWebServiceNamespaces.h b/usr/src/lib/libkmsagent/common/SOAP/KMSAgentWebServiceNamespaces.h
deleted file mode 100644
index 90ec43a0a9..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMSAgentWebServiceNamespaces.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*-----------------------------------------------------------------------------
- * File: WebServiceNamespaces.h
- *
- -----------------------------------------------------------------------------*/
-
-#ifndef ClientWebServiceNamespaces_H
-#define ClientWebServiceNamespaces_H
-
-extern SOAP_NMAC struct Namespace KMS_CA_namespaces[];
-extern SOAP_NMAC struct Namespace KMS_Certificate_namespaces[];
-extern SOAP_NMAC struct Namespace KMS_Agent_namespaces[];
-extern SOAP_NMAC struct Namespace KMS_Discovery_namespaces[];
-
-#endif //ClientWebServiceNamespaces_H
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_Agent.nsmap b/usr/src/lib/libkmsagent/common/SOAP/KMS_Agent.nsmap
deleted file mode 100644
index 215ae019a8..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_Agent.nsmap
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-
-#include "KMS_AgentH.h"
-SOAP_NMAC struct Namespace KMS_Agent_namespaces[] =
-{
- {"SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/", "http://www.w3.org/*/soap-envelope"},
- {"SOAP-ENC", "http://schemas.xmlsoap.org/soap/encoding/", "http://www.w3.org/*/soap-encoding"},
- {"xsi", "http://www.w3.org/2001/XMLSchema-instance", "http://www.w3.org/*/XMLSchema-instance"},
- {"xsd", "http://www.w3.org/2001/XMLSchema", "http://www.w3.org/*/XMLSchema"},
- {"KMS-Agent", "http://www.sun.com/KMS/KMS-Agent"},
- {NULL, NULL}
-};
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_AgentC.cpp b/usr/src/lib/libkmsagent/common/SOAP/KMS_AgentC.cpp
deleted file mode 100644
index d8abc614b8..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_AgentC.cpp
+++ /dev/null
@@ -1,8820 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* KMS_AgentC.cpp
- Generated by gSOAP 2.7.17 from ../gsoapStubs/AgentService/KMS_Agent_SOAP.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#if defined(__BORLANDC__)
-#pragma option push -w-8060
-#pragma option push -w-8004
-#endif
-
-#include "KMS_AgentH.h"
-
-namespace KMS_Agent {
-
-SOAP_SOURCE_STAMP("@(#) KMS_AgentC.cpp ver 2.7.17 2010-06-08 19:16:38 GMT")
-
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serializeheader(struct soap *soap)
-{
- if (soap->header)
- soap_serialize_SOAP_ENV__Header(soap, soap->header);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_putheader(struct soap *soap)
-{
- if (soap->header)
- { soap->part = SOAP_IN_HEADER;
- if (soap_out_SOAP_ENV__Header(soap, "SOAP-ENV:Header", 0, soap->header, NULL))
- return soap->error;
- soap->part = SOAP_END_HEADER;
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_getheader(struct soap *soap)
-{
- soap->part = SOAP_IN_HEADER;
- soap->header = soap_in_SOAP_ENV__Header(soap, "SOAP-ENV:Header", NULL, NULL);
- soap->part = SOAP_END_HEADER;
- return soap->header == NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_header(struct soap *soap)
-{
- if (!soap->header)
- { if ((soap->header = soap_new_SOAP_ENV__Header(soap, -1)))
- soap_default_SOAP_ENV__Header(soap, soap->header);
- }
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_fault(struct soap *soap)
-{
- if (!soap->fault)
- { soap->fault = soap_new_SOAP_ENV__Fault(soap, -1);
- if (!soap->fault)
- return;
- soap_default_SOAP_ENV__Fault(soap, soap->fault);
- }
- if (soap->version == 2 && !soap->fault->SOAP_ENV__Code)
- { soap->fault->SOAP_ENV__Code = soap_new_SOAP_ENV__Code(soap, -1);
- soap_default_SOAP_ENV__Code(soap, soap->fault->SOAP_ENV__Code);
- }
- if (soap->version == 2 && !soap->fault->SOAP_ENV__Reason)
- { soap->fault->SOAP_ENV__Reason = soap_new_SOAP_ENV__Reason(soap, -1);
- soap_default_SOAP_ENV__Reason(soap, soap->fault->SOAP_ENV__Reason);
- }
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serializefault(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->fault)
- soap_serialize_SOAP_ENV__Fault(soap, soap->fault);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_putfault(struct soap *soap)
-{
- if (soap->fault)
- return soap_put_SOAP_ENV__Fault(soap, soap->fault, "SOAP-ENV:Fault", NULL);
- return SOAP_OK;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_getfault(struct soap *soap)
-{
- return (soap->fault = soap_get_SOAP_ENV__Fault(soap, NULL, "SOAP-ENV:Fault", NULL)) == NULL;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultcode(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 2)
- return (const char**)&soap->fault->SOAP_ENV__Code->SOAP_ENV__Value;
- return (const char**)&soap->fault->faultcode;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultsubcode(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 2)
- { if (!soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode)
- { soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode = soap_new_SOAP_ENV__Code(soap, -1);
- soap_default_SOAP_ENV__Code(soap, soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode);
- }
- return (const char**)&soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode->SOAP_ENV__Value;
- }
- return (const char**)&soap->fault->faultcode;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultstring(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 2)
- return (const char**)&soap->fault->SOAP_ENV__Reason->SOAP_ENV__Text;
- return (const char**)&soap->fault->faultstring;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultdetail(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 1)
- { if (!soap->fault->detail)
- { soap->fault->detail = (struct SOAP_ENV__Detail*)soap_malloc(soap, sizeof(struct SOAP_ENV__Detail));
- soap_default_SOAP_ENV__Detail(soap, soap->fault->detail);
- }
- return (const char**)&soap->fault->detail->__any;
- }
- if (!soap->fault->SOAP_ENV__Detail)
- { soap->fault->SOAP_ENV__Detail = soap_new_SOAP_ENV__Detail(soap, -1);
- soap_default_SOAP_ENV__Detail(soap, soap->fault->SOAP_ENV__Detail);
- }
- return (const char**)&soap->fault->SOAP_ENV__Detail->__any;
-}
-
-#endif
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 int SOAP_FMAC4 soap_getindependent(struct soap *soap)
-{
- int t;
- if (soap->version == 1)
- { for (;;)
- { if (!soap_getelement(soap, &t))
- if (soap->error || soap_ignore_element(soap))
- break;
- }
- }
- if (soap->error == SOAP_NO_TAG || soap->error == SOAP_EOF)
- soap->error = SOAP_OK;
- return soap->error;
-}
-#endif
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 void * SOAP_FMAC4 soap_getelement(struct soap *soap, int *type)
-{
- if (soap_peek_element(soap))
- return NULL;
- if (!*soap->id || !(*type = soap_lookup_type(soap, soap->id)))
- *type = soap_lookup_type(soap, soap->href);
- switch (*type)
- {
- case SOAP_TYPE_KMS_Agent_byte:
- return soap_in_byte(soap, NULL, NULL, "xsd:byte");
- case SOAP_TYPE_KMS_Agent_int:
- return soap_in_int(soap, NULL, NULL, "xsd:int");
- case SOAP_TYPE_KMS_Agent_xsd__int:
- return soap_in_xsd__int(soap, NULL, NULL, "xsd:int");
- case SOAP_TYPE_KMS_Agent_long:
- return soap_in_long(soap, NULL, NULL, "xsd:long");
- case SOAP_TYPE_KMS_Agent_xsd__long:
- return soap_in_xsd__long(soap, NULL, NULL, "xsd:long");
- case SOAP_TYPE_KMS_Agent_LONG64:
- return soap_in_LONG64(soap, NULL, NULL, "xsd:long");
- case SOAP_TYPE_KMS_Agent_xsd__float:
- return soap_in_xsd__float(soap, NULL, NULL, "xsd:float");
- case SOAP_TYPE_KMS_Agent_float:
- return soap_in_float(soap, NULL, NULL, "xsd:float");
- case SOAP_TYPE_KMS_Agent_unsignedByte:
- return soap_in_unsignedByte(soap, NULL, NULL, "xsd:unsignedByte");
- case SOAP_TYPE_KMS_Agent_unsignedInt:
- return soap_in_unsignedInt(soap, NULL, NULL, "xsd:unsignedInt");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogCondition:
- return soap_in_KMS_Agent__AuditLogCondition(soap, NULL, NULL, "KMS-Agent:AuditLogCondition");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogRetention:
- return soap_in_KMS_Agent__AuditLogRetention(soap, NULL, NULL, "KMS-Agent:AuditLogRetention");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnitState:
- return soap_in_KMS_Agent__DataUnitState(soap, NULL, NULL, "KMS-Agent:DataUnitState");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__KeyState:
- return soap_in_KMS_Agent__KeyState(soap, NULL, NULL, "KMS-Agent:KeyState");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__KeyType:
- return soap_in_KMS_Agent__KeyType(soap, NULL, NULL, "KMS-Agent:KeyType");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__FilterOperator:
- return soap_in_KMS_Agent__FilterOperator(soap, NULL, NULL, "KMS-Agent:FilterOperator");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__SortOrder:
- return soap_in_KMS_Agent__SortOrder(soap, NULL, NULL, "KMS-Agent:SortOrder");
- case SOAP_TYPE_KMS_Agent_xsd__boolean:
- return soap_in_xsd__boolean(soap, NULL, NULL, "xsd:boolean");
- case SOAP_TYPE_KMS_Agent_bool:
- return soap_in_bool(soap, NULL, NULL, "xsd:boolean");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWK:
- return soap_in_KMS_Agent__RegisterAgentKWK(soap, NULL, NULL, "KMS-Agent:RegisterAgentKWK");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWKResponse:
- return soap_in_KMS_Agent__RegisterAgentKWKResponse(soap, NULL, NULL, "KMS-Agent:RegisterAgentKWKResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKey:
- return soap_in_KMS_Agent__GetAgentKWKPublicKey(soap, NULL, NULL, "KMS-Agent:GetAgentKWKPublicKey");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKeyResponse:
- return soap_in_KMS_Agent__GetAgentKWKPublicKeyResponse(soap, NULL, NULL, "KMS-Agent:GetAgentKWKPublicKeyResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLog:
- return soap_in_KMS_Agent__CreateAuditLog(soap, NULL, NULL, "KMS-Agent:CreateAuditLog");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLogResponse:
- return soap_in_KMS_Agent__CreateAuditLogResponse(soap, NULL, NULL, "KMS-Agent:CreateAuditLogResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2:
- return soap_in_KMS_Agent__RetrieveProtectAndProcessKey2(soap, NULL, NULL, "KMS-Agent:RetrieveProtectAndProcessKey2");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2Response:
- return soap_in_KMS_Agent__RetrieveProtectAndProcessKey2Response(soap, NULL, NULL, "KMS-Agent:RetrieveProtectAndProcessKey2Response");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey:
- return soap_in_KMS_Agent__RetrieveProtectAndProcessKey(soap, NULL, NULL, "KMS-Agent:RetrieveProtectAndProcessKey");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKeyResponse:
- return soap_in_KMS_Agent__RetrieveProtectAndProcessKeyResponse(soap, NULL, NULL, "KMS-Agent:RetrieveProtectAndProcessKeyResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2:
- return soap_in_KMS_Agent__RetrieveDataUnitKeys2(soap, NULL, NULL, "KMS-Agent:RetrieveDataUnitKeys2");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2Response:
- return soap_in_KMS_Agent__RetrieveDataUnitKeys2Response(soap, NULL, NULL, "KMS-Agent:RetrieveDataUnitKeys2Response");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys:
- return soap_in_KMS_Agent__RetrieveDataUnitKeys(soap, NULL, NULL, "KMS-Agent:RetrieveDataUnitKeys");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeysResponse:
- return soap_in_KMS_Agent__RetrieveDataUnitKeysResponse(soap, NULL, NULL, "KMS-Agent:RetrieveDataUnitKeysResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2:
- return soap_in_KMS_Agent__RetrieveKey2(soap, NULL, NULL, "KMS-Agent:RetrieveKey2");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2Response:
- return soap_in_KMS_Agent__RetrieveKey2Response(soap, NULL, NULL, "KMS-Agent:RetrieveKey2Response");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey:
- return soap_in_KMS_Agent__RetrieveKey(soap, NULL, NULL, "KMS-Agent:RetrieveKey");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKeyResponse:
- return soap_in_KMS_Agent__RetrieveKeyResponse(soap, NULL, NULL, "KMS-Agent:RetrieveKeyResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2:
- return soap_in_KMS_Agent__CreateKey2(soap, NULL, NULL, "KMS-Agent:CreateKey2");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2Response:
- return soap_in_KMS_Agent__CreateKey2Response(soap, NULL, NULL, "KMS-Agent:CreateKey2Response");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey:
- return soap_in_KMS_Agent__CreateKey(soap, NULL, NULL, "KMS-Agent:CreateKey");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKeyResponse:
- return soap_in_KMS_Agent__CreateKeyResponse(soap, NULL, NULL, "KMS-Agent:CreateKeyResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeys:
- return soap_in_KMS_Agent__DisassociateDataUnitKeys(soap, NULL, NULL, "KMS-Agent:DisassociateDataUnitKeys");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeysResponse:
- return soap_in_KMS_Agent__DisassociateDataUnitKeysResponse(soap, NULL, NULL, "KMS-Agent:DisassociateDataUnitKeysResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueID:
- return soap_in_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, NULL, NULL, "KMS-Agent:RetrieveDataUnitByExternalUniqueID");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse:
- return soap_in_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(soap, NULL, NULL, "KMS-Agent:RetrieveDataUnitByExternalUniqueIDResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnit:
- return soap_in_KMS_Agent__RetrieveDataUnit(soap, NULL, NULL, "KMS-Agent:RetrieveDataUnit");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitResponse:
- return soap_in_KMS_Agent__RetrieveDataUnitResponse(soap, NULL, NULL, "KMS-Agent:RetrieveDataUnitResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnit:
- return soap_in_KMS_Agent__CreateDataUnit(soap, NULL, NULL, "KMS-Agent:CreateDataUnit");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnitResponse:
- return soap_in_KMS_Agent__CreateDataUnitResponse(soap, NULL, NULL, "KMS-Agent:CreateDataUnitResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroups:
- return soap_in_KMS_Agent__ListKeyGroups(soap, NULL, NULL, "KMS-Agent:ListKeyGroups");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroupsResponse:
- return soap_in_KMS_Agent__ListKeyGroupsResponse(soap, NULL, NULL, "KMS-Agent:ListKeyGroupsResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnit:
- return soap_in_KMS_Agent__DataUnit(soap, NULL, NULL, "KMS-Agent:DataUnit");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeys:
- return soap_in_KMS_Agent__ArrayOfKeys(soap, NULL, NULL, "KMS-Agent:ArrayOfKeys");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__Key:
- return soap_in_KMS_Agent__Key(soap, NULL, NULL, "KMS-Agent:Key");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeyGroups:
- return soap_in_KMS_Agent__ArrayOfKeyGroups(soap, NULL, NULL, "KMS-Agent:ArrayOfKeyGroups");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup:
- return soap_in_KMS_Agent__KeyGroup(soap, NULL, NULL, "KMS-Agent:KeyGroup");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__QueryParameters:
- return soap_in_KMS_Agent__QueryParameters(soap, NULL, NULL, "KMS-Agent:QueryParameters");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfFilterParameters:
- return soap_in_KMS_Agent__ArrayOfFilterParameters(soap, NULL, NULL, "KMS-Agent:ArrayOfFilterParameters");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters:
- return soap_in_KMS_Agent__FilterParameters(soap, NULL, NULL, "KMS-Agent:FilterParameters");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfHexBinary:
- return soap_in_KMS_Agent__ArrayOfHexBinary(soap, NULL, NULL, "KMS-Agent:ArrayOfHexBinary");
- case SOAP_TYPE_KMS_Agent_xsd__hexBinary:
- return soap_in_xsd__hexBinary(soap, NULL, NULL, "xsd:hexBinary");
- case SOAP_TYPE_KMS_Agent_PointerToKMS_Agent__Key:
- return soap_in_PointerToKMS_Agent__Key(soap, NULL, NULL, "KMS-Agent:Key");
- case SOAP_TYPE_KMS_Agent_PointerToKMS_Agent__KeyGroup:
- return soap_in_PointerToKMS_Agent__KeyGroup(soap, NULL, NULL, "KMS-Agent:KeyGroup");
- case SOAP_TYPE_KMS_Agent_PointerToKMS_Agent__FilterParameters:
- return soap_in_PointerToKMS_Agent__FilterParameters(soap, NULL, NULL, "KMS-Agent:FilterParameters");
- case SOAP_TYPE_KMS_Agent_PointerToxsd__hexBinary:
- return soap_in_PointerToxsd__hexBinary(soap, NULL, NULL, "xsd:hexBinary");
- case SOAP_TYPE_KMS_Agent_PointerTounsignedByte:
- return soap_in_PointerTounsignedByte(soap, NULL, NULL, "xsd:unsignedByte");
- case SOAP_TYPE_KMS_Agent_xsd__duration:
- { char **s;
- s = soap_in_xsd__duration(soap, NULL, NULL, "xsd:duration");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_KMS_Agent_xsd__dateTime:
- { char **s;
- s = soap_in_xsd__dateTime(soap, NULL, NULL, "xsd:dateTime");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_KMS_Agent_xsd__string:
- { char **s;
- s = soap_in_xsd__string(soap, NULL, NULL, "xsd:string");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_KMS_Agent__QName:
- { char **s;
- s = soap_in__QName(soap, NULL, NULL, "xsd:QName");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_KMS_Agent_string:
- { char **s;
- s = soap_in_string(soap, NULL, NULL, "xsd:string");
- return s ? *s : NULL;
- }
- default:
- { const char *t = soap->type;
- if (!*t)
- t = soap->tag;
- if (!soap_match_tag(soap, t, "xsd:byte"))
- { *type = SOAP_TYPE_KMS_Agent_byte;
- return soap_in_byte(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:int"))
- { *type = SOAP_TYPE_KMS_Agent_int;
- return soap_in_int(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:int"))
- { *type = SOAP_TYPE_KMS_Agent_xsd__int;
- return soap_in_xsd__int(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:long"))
- { *type = SOAP_TYPE_KMS_Agent_long;
- return soap_in_long(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:long"))
- { *type = SOAP_TYPE_KMS_Agent_xsd__long;
- return soap_in_xsd__long(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:long"))
- { *type = SOAP_TYPE_KMS_Agent_LONG64;
- return soap_in_LONG64(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:float"))
- { *type = SOAP_TYPE_KMS_Agent_xsd__float;
- return soap_in_xsd__float(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:float"))
- { *type = SOAP_TYPE_KMS_Agent_float;
- return soap_in_float(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:unsignedByte"))
- { *type = SOAP_TYPE_KMS_Agent_unsignedByte;
- return soap_in_unsignedByte(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:unsignedInt"))
- { *type = SOAP_TYPE_KMS_Agent_unsignedInt;
- return soap_in_unsignedInt(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:AuditLogCondition"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogCondition;
- return soap_in_KMS_Agent__AuditLogCondition(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:AuditLogRetention"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogRetention;
- return soap_in_KMS_Agent__AuditLogRetention(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:DataUnitState"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnitState;
- return soap_in_KMS_Agent__DataUnitState(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:KeyState"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__KeyState;
- return soap_in_KMS_Agent__KeyState(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:KeyType"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__KeyType;
- return soap_in_KMS_Agent__KeyType(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:FilterOperator"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__FilterOperator;
- return soap_in_KMS_Agent__FilterOperator(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:SortOrder"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__SortOrder;
- return soap_in_KMS_Agent__SortOrder(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:boolean"))
- { *type = SOAP_TYPE_KMS_Agent_xsd__boolean;
- return soap_in_xsd__boolean(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:boolean"))
- { *type = SOAP_TYPE_KMS_Agent_bool;
- return soap_in_bool(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:RegisterAgentKWK"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWK;
- return soap_in_KMS_Agent__RegisterAgentKWK(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:RegisterAgentKWKResponse"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWKResponse;
- return soap_in_KMS_Agent__RegisterAgentKWKResponse(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:GetAgentKWKPublicKey"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKey;
- return soap_in_KMS_Agent__GetAgentKWKPublicKey(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:GetAgentKWKPublicKeyResponse"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKeyResponse;
- return soap_in_KMS_Agent__GetAgentKWKPublicKeyResponse(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:CreateAuditLog"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLog;
- return soap_in_KMS_Agent__CreateAuditLog(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:CreateAuditLogResponse"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLogResponse;
- return soap_in_KMS_Agent__CreateAuditLogResponse(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:RetrieveProtectAndProcessKey2"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2;
- return soap_in_KMS_Agent__RetrieveProtectAndProcessKey2(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:RetrieveProtectAndProcessKey2Response"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2Response;
- return soap_in_KMS_Agent__RetrieveProtectAndProcessKey2Response(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:RetrieveProtectAndProcessKey"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey;
- return soap_in_KMS_Agent__RetrieveProtectAndProcessKey(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:RetrieveProtectAndProcessKeyResponse"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKeyResponse;
- return soap_in_KMS_Agent__RetrieveProtectAndProcessKeyResponse(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:RetrieveDataUnitKeys2"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2;
- return soap_in_KMS_Agent__RetrieveDataUnitKeys2(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:RetrieveDataUnitKeys2Response"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2Response;
- return soap_in_KMS_Agent__RetrieveDataUnitKeys2Response(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:RetrieveDataUnitKeys"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys;
- return soap_in_KMS_Agent__RetrieveDataUnitKeys(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:RetrieveDataUnitKeysResponse"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeysResponse;
- return soap_in_KMS_Agent__RetrieveDataUnitKeysResponse(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:RetrieveKey2"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2;
- return soap_in_KMS_Agent__RetrieveKey2(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:RetrieveKey2Response"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2Response;
- return soap_in_KMS_Agent__RetrieveKey2Response(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:RetrieveKey"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey;
- return soap_in_KMS_Agent__RetrieveKey(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:RetrieveKeyResponse"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKeyResponse;
- return soap_in_KMS_Agent__RetrieveKeyResponse(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:CreateKey2"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2;
- return soap_in_KMS_Agent__CreateKey2(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:CreateKey2Response"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2Response;
- return soap_in_KMS_Agent__CreateKey2Response(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:CreateKey"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey;
- return soap_in_KMS_Agent__CreateKey(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:CreateKeyResponse"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKeyResponse;
- return soap_in_KMS_Agent__CreateKeyResponse(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:DisassociateDataUnitKeys"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeys;
- return soap_in_KMS_Agent__DisassociateDataUnitKeys(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:DisassociateDataUnitKeysResponse"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeysResponse;
- return soap_in_KMS_Agent__DisassociateDataUnitKeysResponse(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:RetrieveDataUnitByExternalUniqueID"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueID;
- return soap_in_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:RetrieveDataUnitByExternalUniqueIDResponse"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse;
- return soap_in_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:RetrieveDataUnit"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnit;
- return soap_in_KMS_Agent__RetrieveDataUnit(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:RetrieveDataUnitResponse"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitResponse;
- return soap_in_KMS_Agent__RetrieveDataUnitResponse(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:CreateDataUnit"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnit;
- return soap_in_KMS_Agent__CreateDataUnit(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:CreateDataUnitResponse"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnitResponse;
- return soap_in_KMS_Agent__CreateDataUnitResponse(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:ListKeyGroups"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroups;
- return soap_in_KMS_Agent__ListKeyGroups(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:ListKeyGroupsResponse"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroupsResponse;
- return soap_in_KMS_Agent__ListKeyGroupsResponse(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:DataUnit"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnit;
- return soap_in_KMS_Agent__DataUnit(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:ArrayOfKeys"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeys;
- return soap_in_KMS_Agent__ArrayOfKeys(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:Key"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__Key;
- return soap_in_KMS_Agent__Key(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:ArrayOfKeyGroups"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeyGroups;
- return soap_in_KMS_Agent__ArrayOfKeyGroups(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:KeyGroup"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup;
- return soap_in_KMS_Agent__KeyGroup(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:QueryParameters"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__QueryParameters;
- return soap_in_KMS_Agent__QueryParameters(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:ArrayOfFilterParameters"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfFilterParameters;
- return soap_in_KMS_Agent__ArrayOfFilterParameters(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:FilterParameters"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters;
- return soap_in_KMS_Agent__FilterParameters(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Agent:ArrayOfHexBinary"))
- { *type = SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfHexBinary;
- return soap_in_KMS_Agent__ArrayOfHexBinary(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:hexBinary"))
- { *type = SOAP_TYPE_KMS_Agent_xsd__hexBinary;
- return soap_in_xsd__hexBinary(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:duration"))
- { char **s;
- *type = SOAP_TYPE_KMS_Agent_xsd__duration;
- s = soap_in_xsd__duration(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:dateTime"))
- { char **s;
- *type = SOAP_TYPE_KMS_Agent_xsd__dateTime;
- s = soap_in_xsd__dateTime(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:string"))
- { char **s;
- *type = SOAP_TYPE_KMS_Agent_xsd__string;
- s = soap_in_xsd__string(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:QName"))
- { char **s;
- *type = SOAP_TYPE_KMS_Agent__QName;
- s = soap_in__QName(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:string"))
- { char **s;
- *type = SOAP_TYPE_KMS_Agent_string;
- s = soap_in_string(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- t = soap->tag;
- }
- }
- soap->error = SOAP_TAG_MISMATCH;
- return NULL;
-}
-#endif
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_ignore_element(struct soap *soap)
-{
- if (!soap_peek_element(soap))
- { int t;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Unexpected element '%s' in input (level=%u, %d)\n", soap->tag, soap->level, soap->body));
- if (soap->mustUnderstand && !soap->other)
- return soap->error = SOAP_MUSTUNDERSTAND;
- if (((soap->mode & SOAP_XML_STRICT) && soap->part != SOAP_IN_HEADER) || !soap_match_tag(soap, soap->tag, "SOAP-ENV:"))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "REJECTING element '%s'\n", soap->tag));
- return soap->error = SOAP_TAG_MISMATCH;
- }
- if (!*soap->id || !soap_getelement(soap, &t))
- { soap->peeked = 0;
- if (soap->fignore)
- soap->error = soap->fignore(soap, soap->tag);
- else
- soap->error = SOAP_OK;
- DBGLOG(TEST, if (!soap->error) SOAP_MESSAGE(fdebug, "IGNORING element '%s'\n", soap->tag));
- if (!soap->error && soap->body)
- { soap->level++;
- while (!soap_ignore_element(soap))
- ;
- if (soap->error == SOAP_NO_TAG)
- soap->error = soap_element_end_in(soap, NULL);
- }
- }
- }
- return soap->error;
-}
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 int SOAP_FMAC4 soap_putindependent(struct soap *soap)
-{
- int i;
- struct soap_plist *pp;
- if (soap->version == 1 && soap->encodingStyle && !(soap->mode & (SOAP_XML_TREE | SOAP_XML_GRAPH)))
- for (i = 0; i < SOAP_PTRHASH; i++)
- for (pp = soap->pht[i]; pp; pp = pp->next)
- if (pp->mark1 == 2 || pp->mark2 == 2)
- if (soap_putelement(soap, pp->ptr, "id", pp->id, pp->type))
- return soap->error;
- return SOAP_OK;
-}
-#endif
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 int SOAP_FMAC4 soap_putelement(struct soap *soap, const void *ptr, const char *tag, int id, int type)
-{
- switch (type)
- {
- case SOAP_TYPE_KMS_Agent_byte:
- return soap_out_byte(soap, tag, id, (const char *)ptr, "xsd:byte");
- case SOAP_TYPE_KMS_Agent_int:
- return soap_out_int(soap, tag, id, (const int *)ptr, "xsd:int");
- case SOAP_TYPE_KMS_Agent_xsd__int:
- return soap_out_xsd__int(soap, tag, id, (const long *)ptr, "xsd:int");
- case SOAP_TYPE_KMS_Agent_long:
- return soap_out_long(soap, tag, id, (const long *)ptr, "xsd:long");
- case SOAP_TYPE_KMS_Agent_xsd__long:
- return soap_out_xsd__long(soap, tag, id, (const LONG64 *)ptr, "xsd:long");
- case SOAP_TYPE_KMS_Agent_LONG64:
- return soap_out_LONG64(soap, tag, id, (const LONG64 *)ptr, "xsd:long");
- case SOAP_TYPE_KMS_Agent_xsd__float:
- return soap_out_xsd__float(soap, tag, id, (const float *)ptr, "xsd:float");
- case SOAP_TYPE_KMS_Agent_float:
- return soap_out_float(soap, tag, id, (const float *)ptr, "xsd:float");
- case SOAP_TYPE_KMS_Agent_unsignedByte:
- return soap_out_unsignedByte(soap, tag, id, (const unsigned char *)ptr, "xsd:unsignedByte");
- case SOAP_TYPE_KMS_Agent_unsignedInt:
- return soap_out_unsignedInt(soap, tag, id, (const unsigned int *)ptr, "xsd:unsignedInt");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogCondition:
- return soap_out_KMS_Agent__AuditLogCondition(soap, tag, id, (const enum KMS_Agent__AuditLogCondition *)ptr, "KMS-Agent:AuditLogCondition");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogRetention:
- return soap_out_KMS_Agent__AuditLogRetention(soap, tag, id, (const enum KMS_Agent__AuditLogRetention *)ptr, "KMS-Agent:AuditLogRetention");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnitState:
- return soap_out_KMS_Agent__DataUnitState(soap, tag, id, (const enum KMS_Agent__DataUnitState *)ptr, "KMS-Agent:DataUnitState");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__KeyState:
- return soap_out_KMS_Agent__KeyState(soap, tag, id, (const enum KMS_Agent__KeyState *)ptr, "KMS-Agent:KeyState");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__KeyType:
- return soap_out_KMS_Agent__KeyType(soap, tag, id, (const enum KMS_Agent__KeyType *)ptr, "KMS-Agent:KeyType");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__FilterOperator:
- return soap_out_KMS_Agent__FilterOperator(soap, tag, id, (const enum KMS_Agent__FilterOperator *)ptr, "KMS-Agent:FilterOperator");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__SortOrder:
- return soap_out_KMS_Agent__SortOrder(soap, tag, id, (const enum KMS_Agent__SortOrder *)ptr, "KMS-Agent:SortOrder");
- case SOAP_TYPE_KMS_Agent_xsd__boolean:
- return soap_out_xsd__boolean(soap, tag, id, (const bool *)ptr, "xsd:boolean");
- case SOAP_TYPE_KMS_Agent_bool:
- return soap_out_bool(soap, tag, id, (const bool *)ptr, "xsd:boolean");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWK:
- return soap_out_KMS_Agent__RegisterAgentKWK(soap, tag, id, (const struct KMS_Agent__RegisterAgentKWK *)ptr, "KMS-Agent:RegisterAgentKWK");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWKResponse:
- return soap_out_KMS_Agent__RegisterAgentKWKResponse(soap, tag, id, (const struct KMS_Agent__RegisterAgentKWKResponse *)ptr, "KMS-Agent:RegisterAgentKWKResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKey:
- return soap_out_KMS_Agent__GetAgentKWKPublicKey(soap, tag, id, (const struct KMS_Agent__GetAgentKWKPublicKey *)ptr, "KMS-Agent:GetAgentKWKPublicKey");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKeyResponse:
- return soap_out_KMS_Agent__GetAgentKWKPublicKeyResponse(soap, tag, id, (const struct KMS_Agent__GetAgentKWKPublicKeyResponse *)ptr, "KMS-Agent:GetAgentKWKPublicKeyResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLog:
- return soap_out_KMS_Agent__CreateAuditLog(soap, tag, id, (const struct KMS_Agent__CreateAuditLog *)ptr, "KMS-Agent:CreateAuditLog");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLogResponse:
- return soap_out_KMS_Agent__CreateAuditLogResponse(soap, tag, id, (const struct KMS_Agent__CreateAuditLogResponse *)ptr, "KMS-Agent:CreateAuditLogResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2:
- return soap_out_KMS_Agent__RetrieveProtectAndProcessKey2(soap, tag, id, (const struct KMS_Agent__RetrieveProtectAndProcessKey2 *)ptr, "KMS-Agent:RetrieveProtectAndProcessKey2");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2Response:
- return soap_out_KMS_Agent__RetrieveProtectAndProcessKey2Response(soap, tag, id, (const struct KMS_Agent__RetrieveProtectAndProcessKey2Response *)ptr, "KMS-Agent:RetrieveProtectAndProcessKey2Response");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey:
- return soap_out_KMS_Agent__RetrieveProtectAndProcessKey(soap, tag, id, (const struct KMS_Agent__RetrieveProtectAndProcessKey *)ptr, "KMS-Agent:RetrieveProtectAndProcessKey");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKeyResponse:
- return soap_out_KMS_Agent__RetrieveProtectAndProcessKeyResponse(soap, tag, id, (const struct KMS_Agent__RetrieveProtectAndProcessKeyResponse *)ptr, "KMS-Agent:RetrieveProtectAndProcessKeyResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2:
- return soap_out_KMS_Agent__RetrieveDataUnitKeys2(soap, tag, id, (const struct KMS_Agent__RetrieveDataUnitKeys2 *)ptr, "KMS-Agent:RetrieveDataUnitKeys2");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2Response:
- return soap_out_KMS_Agent__RetrieveDataUnitKeys2Response(soap, tag, id, (const struct KMS_Agent__RetrieveDataUnitKeys2Response *)ptr, "KMS-Agent:RetrieveDataUnitKeys2Response");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys:
- return soap_out_KMS_Agent__RetrieveDataUnitKeys(soap, tag, id, (const struct KMS_Agent__RetrieveDataUnitKeys *)ptr, "KMS-Agent:RetrieveDataUnitKeys");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeysResponse:
- return soap_out_KMS_Agent__RetrieveDataUnitKeysResponse(soap, tag, id, (const struct KMS_Agent__RetrieveDataUnitKeysResponse *)ptr, "KMS-Agent:RetrieveDataUnitKeysResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2:
- return soap_out_KMS_Agent__RetrieveKey2(soap, tag, id, (const struct KMS_Agent__RetrieveKey2 *)ptr, "KMS-Agent:RetrieveKey2");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2Response:
- return soap_out_KMS_Agent__RetrieveKey2Response(soap, tag, id, (const struct KMS_Agent__RetrieveKey2Response *)ptr, "KMS-Agent:RetrieveKey2Response");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey:
- return soap_out_KMS_Agent__RetrieveKey(soap, tag, id, (const struct KMS_Agent__RetrieveKey *)ptr, "KMS-Agent:RetrieveKey");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKeyResponse:
- return soap_out_KMS_Agent__RetrieveKeyResponse(soap, tag, id, (const struct KMS_Agent__RetrieveKeyResponse *)ptr, "KMS-Agent:RetrieveKeyResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2:
- return soap_out_KMS_Agent__CreateKey2(soap, tag, id, (const struct KMS_Agent__CreateKey2 *)ptr, "KMS-Agent:CreateKey2");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2Response:
- return soap_out_KMS_Agent__CreateKey2Response(soap, tag, id, (const struct KMS_Agent__CreateKey2Response *)ptr, "KMS-Agent:CreateKey2Response");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey:
- return soap_out_KMS_Agent__CreateKey(soap, tag, id, (const struct KMS_Agent__CreateKey *)ptr, "KMS-Agent:CreateKey");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKeyResponse:
- return soap_out_KMS_Agent__CreateKeyResponse(soap, tag, id, (const struct KMS_Agent__CreateKeyResponse *)ptr, "KMS-Agent:CreateKeyResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeys:
- return soap_out_KMS_Agent__DisassociateDataUnitKeys(soap, tag, id, (const struct KMS_Agent__DisassociateDataUnitKeys *)ptr, "KMS-Agent:DisassociateDataUnitKeys");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeysResponse:
- return soap_out_KMS_Agent__DisassociateDataUnitKeysResponse(soap, tag, id, (const struct KMS_Agent__DisassociateDataUnitKeysResponse *)ptr, "KMS-Agent:DisassociateDataUnitKeysResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueID:
- return soap_out_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, tag, id, (const struct KMS_Agent__RetrieveDataUnitByExternalUniqueID *)ptr, "KMS-Agent:RetrieveDataUnitByExternalUniqueID");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse:
- return soap_out_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(soap, tag, id, (const struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse *)ptr, "KMS-Agent:RetrieveDataUnitByExternalUniqueIDResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnit:
- return soap_out_KMS_Agent__RetrieveDataUnit(soap, tag, id, (const struct KMS_Agent__RetrieveDataUnit *)ptr, "KMS-Agent:RetrieveDataUnit");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitResponse:
- return soap_out_KMS_Agent__RetrieveDataUnitResponse(soap, tag, id, (const struct KMS_Agent__RetrieveDataUnitResponse *)ptr, "KMS-Agent:RetrieveDataUnitResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnit:
- return soap_out_KMS_Agent__CreateDataUnit(soap, tag, id, (const struct KMS_Agent__CreateDataUnit *)ptr, "KMS-Agent:CreateDataUnit");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnitResponse:
- return soap_out_KMS_Agent__CreateDataUnitResponse(soap, tag, id, (const struct KMS_Agent__CreateDataUnitResponse *)ptr, "KMS-Agent:CreateDataUnitResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroups:
- return soap_out_KMS_Agent__ListKeyGroups(soap, tag, id, (const struct KMS_Agent__ListKeyGroups *)ptr, "KMS-Agent:ListKeyGroups");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroupsResponse:
- return soap_out_KMS_Agent__ListKeyGroupsResponse(soap, tag, id, (const struct KMS_Agent__ListKeyGroupsResponse *)ptr, "KMS-Agent:ListKeyGroupsResponse");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnit:
- return soap_out_KMS_Agent__DataUnit(soap, tag, id, (const struct KMS_Agent__DataUnit *)ptr, "KMS-Agent:DataUnit");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeys:
- return soap_out_KMS_Agent__ArrayOfKeys(soap, tag, id, (const struct KMS_Agent__ArrayOfKeys *)ptr, "KMS-Agent:ArrayOfKeys");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__Key:
- return soap_out_KMS_Agent__Key(soap, tag, id, (const struct KMS_Agent__Key *)ptr, "KMS-Agent:Key");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeyGroups:
- return soap_out_KMS_Agent__ArrayOfKeyGroups(soap, tag, id, (const struct KMS_Agent__ArrayOfKeyGroups *)ptr, "KMS-Agent:ArrayOfKeyGroups");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup:
- return soap_out_KMS_Agent__KeyGroup(soap, tag, id, (const struct KMS_Agent__KeyGroup *)ptr, "KMS-Agent:KeyGroup");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__QueryParameters:
- return soap_out_KMS_Agent__QueryParameters(soap, tag, id, (const struct KMS_Agent__QueryParameters *)ptr, "KMS-Agent:QueryParameters");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfFilterParameters:
- return soap_out_KMS_Agent__ArrayOfFilterParameters(soap, tag, id, (const struct KMS_Agent__ArrayOfFilterParameters *)ptr, "KMS-Agent:ArrayOfFilterParameters");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters:
- return soap_out_KMS_Agent__FilterParameters(soap, tag, id, (const struct KMS_Agent__FilterParameters *)ptr, "KMS-Agent:FilterParameters");
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfHexBinary:
- return soap_out_KMS_Agent__ArrayOfHexBinary(soap, tag, id, (const struct KMS_Agent__ArrayOfHexBinary *)ptr, "KMS-Agent:ArrayOfHexBinary");
- case SOAP_TYPE_KMS_Agent_xsd__hexBinary:
- return soap_out_xsd__hexBinary(soap, tag, id, (const struct xsd__hexBinary *)ptr, "xsd:hexBinary");
- case SOAP_TYPE_KMS_Agent_PointerToKMS_Agent__Key:
- return soap_out_PointerToKMS_Agent__Key(soap, tag, id, (struct KMS_Agent__Key *const*)ptr, "KMS-Agent:Key");
- case SOAP_TYPE_KMS_Agent_PointerToKMS_Agent__KeyGroup:
- return soap_out_PointerToKMS_Agent__KeyGroup(soap, tag, id, (struct KMS_Agent__KeyGroup *const*)ptr, "KMS-Agent:KeyGroup");
- case SOAP_TYPE_KMS_Agent_PointerToKMS_Agent__FilterParameters:
- return soap_out_PointerToKMS_Agent__FilterParameters(soap, tag, id, (struct KMS_Agent__FilterParameters *const*)ptr, "KMS-Agent:FilterParameters");
- case SOAP_TYPE_KMS_Agent_PointerToxsd__hexBinary:
- return soap_out_PointerToxsd__hexBinary(soap, tag, id, (struct xsd__hexBinary *const*)ptr, "xsd:hexBinary");
- case SOAP_TYPE_KMS_Agent_PointerTounsignedByte:
- return soap_out_PointerTounsignedByte(soap, tag, id, (unsigned char *const*)ptr, "xsd:unsignedByte");
- case SOAP_TYPE_KMS_Agent_xsd__duration:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:duration");
- case SOAP_TYPE_KMS_Agent_xsd__dateTime:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:dateTime");
- case SOAP_TYPE_KMS_Agent_xsd__string:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:string");
- case SOAP_TYPE_KMS_Agent__QName:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:QName");
- case SOAP_TYPE_KMS_Agent_string:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:string");
- }
- return SOAP_OK;
-}
-#endif
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 void SOAP_FMAC4 soap_markelement(struct soap *soap, const void *ptr, int type)
-{
- (void)soap; (void)ptr; (void)type; /* appease -Wall -Werror */
- switch (type)
- {
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWK:
- soap_serialize_KMS_Agent__RegisterAgentKWK(soap, (const struct KMS_Agent__RegisterAgentKWK *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWKResponse:
- soap_serialize_KMS_Agent__RegisterAgentKWKResponse(soap, (const struct KMS_Agent__RegisterAgentKWKResponse *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKey:
- soap_serialize_KMS_Agent__GetAgentKWKPublicKey(soap, (const struct KMS_Agent__GetAgentKWKPublicKey *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKeyResponse:
- soap_serialize_KMS_Agent__GetAgentKWKPublicKeyResponse(soap, (const struct KMS_Agent__GetAgentKWKPublicKeyResponse *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLog:
- soap_serialize_KMS_Agent__CreateAuditLog(soap, (const struct KMS_Agent__CreateAuditLog *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLogResponse:
- soap_serialize_KMS_Agent__CreateAuditLogResponse(soap, (const struct KMS_Agent__CreateAuditLogResponse *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2:
- soap_serialize_KMS_Agent__RetrieveProtectAndProcessKey2(soap, (const struct KMS_Agent__RetrieveProtectAndProcessKey2 *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2Response:
- soap_serialize_KMS_Agent__RetrieveProtectAndProcessKey2Response(soap, (const struct KMS_Agent__RetrieveProtectAndProcessKey2Response *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey:
- soap_serialize_KMS_Agent__RetrieveProtectAndProcessKey(soap, (const struct KMS_Agent__RetrieveProtectAndProcessKey *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKeyResponse:
- soap_serialize_KMS_Agent__RetrieveProtectAndProcessKeyResponse(soap, (const struct KMS_Agent__RetrieveProtectAndProcessKeyResponse *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2:
- soap_serialize_KMS_Agent__RetrieveDataUnitKeys2(soap, (const struct KMS_Agent__RetrieveDataUnitKeys2 *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2Response:
- soap_serialize_KMS_Agent__RetrieveDataUnitKeys2Response(soap, (const struct KMS_Agent__RetrieveDataUnitKeys2Response *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys:
- soap_serialize_KMS_Agent__RetrieveDataUnitKeys(soap, (const struct KMS_Agent__RetrieveDataUnitKeys *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeysResponse:
- soap_serialize_KMS_Agent__RetrieveDataUnitKeysResponse(soap, (const struct KMS_Agent__RetrieveDataUnitKeysResponse *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2:
- soap_serialize_KMS_Agent__RetrieveKey2(soap, (const struct KMS_Agent__RetrieveKey2 *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2Response:
- soap_serialize_KMS_Agent__RetrieveKey2Response(soap, (const struct KMS_Agent__RetrieveKey2Response *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey:
- soap_serialize_KMS_Agent__RetrieveKey(soap, (const struct KMS_Agent__RetrieveKey *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKeyResponse:
- soap_serialize_KMS_Agent__RetrieveKeyResponse(soap, (const struct KMS_Agent__RetrieveKeyResponse *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2:
- soap_serialize_KMS_Agent__CreateKey2(soap, (const struct KMS_Agent__CreateKey2 *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2Response:
- soap_serialize_KMS_Agent__CreateKey2Response(soap, (const struct KMS_Agent__CreateKey2Response *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey:
- soap_serialize_KMS_Agent__CreateKey(soap, (const struct KMS_Agent__CreateKey *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKeyResponse:
- soap_serialize_KMS_Agent__CreateKeyResponse(soap, (const struct KMS_Agent__CreateKeyResponse *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeys:
- soap_serialize_KMS_Agent__DisassociateDataUnitKeys(soap, (const struct KMS_Agent__DisassociateDataUnitKeys *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeysResponse:
- soap_serialize_KMS_Agent__DisassociateDataUnitKeysResponse(soap, (const struct KMS_Agent__DisassociateDataUnitKeysResponse *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueID:
- soap_serialize_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, (const struct KMS_Agent__RetrieveDataUnitByExternalUniqueID *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse:
- soap_serialize_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(soap, (const struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnit:
- soap_serialize_KMS_Agent__RetrieveDataUnit(soap, (const struct KMS_Agent__RetrieveDataUnit *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitResponse:
- soap_serialize_KMS_Agent__RetrieveDataUnitResponse(soap, (const struct KMS_Agent__RetrieveDataUnitResponse *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnit:
- soap_serialize_KMS_Agent__CreateDataUnit(soap, (const struct KMS_Agent__CreateDataUnit *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnitResponse:
- soap_serialize_KMS_Agent__CreateDataUnitResponse(soap, (const struct KMS_Agent__CreateDataUnitResponse *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroups:
- soap_serialize_KMS_Agent__ListKeyGroups(soap, (const struct KMS_Agent__ListKeyGroups *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroupsResponse:
- soap_serialize_KMS_Agent__ListKeyGroupsResponse(soap, (const struct KMS_Agent__ListKeyGroupsResponse *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnit:
- soap_serialize_KMS_Agent__DataUnit(soap, (const struct KMS_Agent__DataUnit *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeys:
- soap_serialize_KMS_Agent__ArrayOfKeys(soap, (const struct KMS_Agent__ArrayOfKeys *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__Key:
- soap_serialize_KMS_Agent__Key(soap, (const struct KMS_Agent__Key *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeyGroups:
- soap_serialize_KMS_Agent__ArrayOfKeyGroups(soap, (const struct KMS_Agent__ArrayOfKeyGroups *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup:
- soap_serialize_KMS_Agent__KeyGroup(soap, (const struct KMS_Agent__KeyGroup *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__QueryParameters:
- soap_serialize_KMS_Agent__QueryParameters(soap, (const struct KMS_Agent__QueryParameters *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfFilterParameters:
- soap_serialize_KMS_Agent__ArrayOfFilterParameters(soap, (const struct KMS_Agent__ArrayOfFilterParameters *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters:
- soap_serialize_KMS_Agent__FilterParameters(soap, (const struct KMS_Agent__FilterParameters *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfHexBinary:
- soap_serialize_KMS_Agent__ArrayOfHexBinary(soap, (const struct KMS_Agent__ArrayOfHexBinary *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_xsd__hexBinary:
- soap_serialize_xsd__hexBinary(soap, (const struct xsd__hexBinary *)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_PointerToKMS_Agent__Key:
- soap_serialize_PointerToKMS_Agent__Key(soap, (struct KMS_Agent__Key *const*)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_PointerToKMS_Agent__KeyGroup:
- soap_serialize_PointerToKMS_Agent__KeyGroup(soap, (struct KMS_Agent__KeyGroup *const*)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_PointerToKMS_Agent__FilterParameters:
- soap_serialize_PointerToKMS_Agent__FilterParameters(soap, (struct KMS_Agent__FilterParameters *const*)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_PointerToxsd__hexBinary:
- soap_serialize_PointerToxsd__hexBinary(soap, (struct xsd__hexBinary *const*)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_PointerTounsignedByte:
- soap_serialize_PointerTounsignedByte(soap, (unsigned char *const*)ptr);
- break;
- case SOAP_TYPE_KMS_Agent_xsd__duration:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_KMS_Agent_xsd__dateTime:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_KMS_Agent_xsd__string:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_KMS_Agent__QName:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_KMS_Agent_string:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- }
-}
-#endif
-
-SOAP_FMAC3 void * SOAP_FMAC4 soap_instantiate(struct soap *soap, int t, const char *type, const char *arrayType, size_t *n)
-{
- switch (t)
- {
- case SOAP_TYPE_KMS_Agent_xsd__hexBinary:
- return (void*)soap_instantiate_xsd__hexBinary(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfHexBinary:
- return (void*)soap_instantiate_KMS_Agent__ArrayOfHexBinary(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters:
- return (void*)soap_instantiate_KMS_Agent__FilterParameters(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfFilterParameters:
- return (void*)soap_instantiate_KMS_Agent__ArrayOfFilterParameters(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__QueryParameters:
- return (void*)soap_instantiate_KMS_Agent__QueryParameters(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup:
- return (void*)soap_instantiate_KMS_Agent__KeyGroup(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeyGroups:
- return (void*)soap_instantiate_KMS_Agent__ArrayOfKeyGroups(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__Key:
- return (void*)soap_instantiate_KMS_Agent__Key(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeys:
- return (void*)soap_instantiate_KMS_Agent__ArrayOfKeys(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnit:
- return (void*)soap_instantiate_KMS_Agent__DataUnit(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroupsResponse:
- return (void*)soap_instantiate_KMS_Agent__ListKeyGroupsResponse(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroups:
- return (void*)soap_instantiate_KMS_Agent__ListKeyGroups(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnitResponse:
- return (void*)soap_instantiate_KMS_Agent__CreateDataUnitResponse(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnit:
- return (void*)soap_instantiate_KMS_Agent__CreateDataUnit(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitResponse:
- return (void*)soap_instantiate_KMS_Agent__RetrieveDataUnitResponse(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnit:
- return (void*)soap_instantiate_KMS_Agent__RetrieveDataUnit(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse:
- return (void*)soap_instantiate_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueID:
- return (void*)soap_instantiate_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeysResponse:
- return (void*)soap_instantiate_KMS_Agent__DisassociateDataUnitKeysResponse(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeys:
- return (void*)soap_instantiate_KMS_Agent__DisassociateDataUnitKeys(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKeyResponse:
- return (void*)soap_instantiate_KMS_Agent__CreateKeyResponse(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey:
- return (void*)soap_instantiate_KMS_Agent__CreateKey(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2Response:
- return (void*)soap_instantiate_KMS_Agent__CreateKey2Response(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2:
- return (void*)soap_instantiate_KMS_Agent__CreateKey2(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKeyResponse:
- return (void*)soap_instantiate_KMS_Agent__RetrieveKeyResponse(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey:
- return (void*)soap_instantiate_KMS_Agent__RetrieveKey(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2Response:
- return (void*)soap_instantiate_KMS_Agent__RetrieveKey2Response(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2:
- return (void*)soap_instantiate_KMS_Agent__RetrieveKey2(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeysResponse:
- return (void*)soap_instantiate_KMS_Agent__RetrieveDataUnitKeysResponse(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys:
- return (void*)soap_instantiate_KMS_Agent__RetrieveDataUnitKeys(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2Response:
- return (void*)soap_instantiate_KMS_Agent__RetrieveDataUnitKeys2Response(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2:
- return (void*)soap_instantiate_KMS_Agent__RetrieveDataUnitKeys2(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKeyResponse:
- return (void*)soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKeyResponse(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey:
- return (void*)soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKey(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2Response:
- return (void*)soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKey2Response(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2:
- return (void*)soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKey2(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLogResponse:
- return (void*)soap_instantiate_KMS_Agent__CreateAuditLogResponse(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLog:
- return (void*)soap_instantiate_KMS_Agent__CreateAuditLog(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKeyResponse:
- return (void*)soap_instantiate_KMS_Agent__GetAgentKWKPublicKeyResponse(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKey:
- return (void*)soap_instantiate_KMS_Agent__GetAgentKWKPublicKey(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWKResponse:
- return (void*)soap_instantiate_KMS_Agent__RegisterAgentKWKResponse(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWK:
- return (void*)soap_instantiate_KMS_Agent__RegisterAgentKWK(soap, -1, type, arrayType, n);
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_Agent_SOAP_ENV__Header:
- return (void*)soap_instantiate_SOAP_ENV__Header(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_Agent_SOAP_ENV__Code:
- return (void*)soap_instantiate_SOAP_ENV__Code(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_Agent_SOAP_ENV__Detail:
- return (void*)soap_instantiate_SOAP_ENV__Detail(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_Agent_SOAP_ENV__Reason:
- return (void*)soap_instantiate_SOAP_ENV__Reason(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_Agent_SOAP_ENV__Fault:
- return (void*)soap_instantiate_SOAP_ENV__Fault(soap, -1, type, arrayType, n);
-#endif
- }
- return NULL;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_fdelete(struct soap_clist *p)
-{ switch (p->type)
- {
- case SOAP_TYPE_KMS_Agent_xsd__hexBinary:
- if (p->size < 0)
- SOAP_DELETE((struct xsd__hexBinary*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct xsd__hexBinary*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfHexBinary:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__ArrayOfHexBinary*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__ArrayOfHexBinary*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__FilterParameters*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__FilterParameters*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfFilterParameters:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__ArrayOfFilterParameters*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__ArrayOfFilterParameters*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__QueryParameters:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__QueryParameters*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__QueryParameters*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__KeyGroup*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__KeyGroup*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeyGroups:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__ArrayOfKeyGroups*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__ArrayOfKeyGroups*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__Key:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__Key*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__Key*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeys:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__ArrayOfKeys*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__ArrayOfKeys*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnit:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__DataUnit*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__DataUnit*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroupsResponse:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__ListKeyGroupsResponse*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__ListKeyGroupsResponse*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroups:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__ListKeyGroups*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__ListKeyGroups*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnitResponse:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__CreateDataUnitResponse*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__CreateDataUnitResponse*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnit:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__CreateDataUnit*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__CreateDataUnit*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitResponse:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__RetrieveDataUnitResponse*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__RetrieveDataUnitResponse*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnit:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__RetrieveDataUnit*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__RetrieveDataUnit*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueID:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__RetrieveDataUnitByExternalUniqueID*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__RetrieveDataUnitByExternalUniqueID*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeysResponse:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__DisassociateDataUnitKeysResponse*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__DisassociateDataUnitKeysResponse*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeys:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__DisassociateDataUnitKeys*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__DisassociateDataUnitKeys*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKeyResponse:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__CreateKeyResponse*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__CreateKeyResponse*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__CreateKey*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__CreateKey*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2Response:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__CreateKey2Response*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__CreateKey2Response*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__CreateKey2*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__CreateKey2*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKeyResponse:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__RetrieveKeyResponse*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__RetrieveKeyResponse*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__RetrieveKey*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__RetrieveKey*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2Response:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__RetrieveKey2Response*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__RetrieveKey2Response*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__RetrieveKey2*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__RetrieveKey2*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeysResponse:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__RetrieveDataUnitKeysResponse*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__RetrieveDataUnitKeysResponse*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__RetrieveDataUnitKeys*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__RetrieveDataUnitKeys*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2Response:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__RetrieveDataUnitKeys2Response*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__RetrieveDataUnitKeys2Response*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__RetrieveDataUnitKeys2*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__RetrieveDataUnitKeys2*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKeyResponse:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__RetrieveProtectAndProcessKeyResponse*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__RetrieveProtectAndProcessKeyResponse*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__RetrieveProtectAndProcessKey*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__RetrieveProtectAndProcessKey*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2Response:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__RetrieveProtectAndProcessKey2Response*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__RetrieveProtectAndProcessKey2Response*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__RetrieveProtectAndProcessKey2*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__RetrieveProtectAndProcessKey2*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLogResponse:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__CreateAuditLogResponse*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__CreateAuditLogResponse*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLog:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__CreateAuditLog*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__CreateAuditLog*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKeyResponse:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__GetAgentKWKPublicKeyResponse*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__GetAgentKWKPublicKeyResponse*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKey:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__GetAgentKWKPublicKey*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__GetAgentKWKPublicKey*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWKResponse:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__RegisterAgentKWKResponse*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__RegisterAgentKWKResponse*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWK:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Agent__RegisterAgentKWK*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Agent__RegisterAgentKWK*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_SOAP_ENV__Header:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Header*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Header*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_SOAP_ENV__Code:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Code*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Code*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_SOAP_ENV__Detail:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Detail*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Detail*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_SOAP_ENV__Reason:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Reason*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Reason*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Agent_SOAP_ENV__Fault:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Fault*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Fault*)p->ptr);
- break;
- default: return SOAP_ERR;
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 void* SOAP_FMAC4 soap_class_id_enter(struct soap *soap, const char *id, void *p, int t, size_t n, const char *type, const char *arrayType)
-{ return soap_id_enter(soap, id, p, t, n, 0, type, arrayType, soap_instantiate);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_byte(struct soap *soap, char *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_byte
- *a = SOAP_DEFAULT_byte;
-#else
- *a = (char)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_byte(struct soap *soap, const char *tag, int id, const char *a, const char *type)
-{
- return soap_outbyte(soap, tag, id, a, type, SOAP_TYPE_KMS_Agent_byte);
-}
-
-SOAP_FMAC3 char * SOAP_FMAC4 soap_in_byte(struct soap *soap, const char *tag, char *a, const char *type)
-{ char *p;
- p = soap_inbyte(soap, tag, a, type, SOAP_TYPE_KMS_Agent_byte);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_byte(struct soap *soap, const char *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_byte);
- if (soap_out_byte(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char * SOAP_FMAC4 soap_get_byte(struct soap *soap, char *p, const char *tag, const char *type)
-{
- if ((p = soap_in_byte(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_int(struct soap *soap, int *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_int
- *a = SOAP_DEFAULT_int;
-#else
- *a = (int)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_int(struct soap *soap, const char *tag, int id, const int *a, const char *type)
-{
- return soap_outint(soap, tag, id, a, type, SOAP_TYPE_KMS_Agent_int);
-}
-
-SOAP_FMAC3 int * SOAP_FMAC4 soap_in_int(struct soap *soap, const char *tag, int *a, const char *type)
-{ int *p;
- p = soap_inint(soap, tag, a, type, SOAP_TYPE_KMS_Agent_int);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_int(struct soap *soap, const int *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_int);
- if (soap_out_int(soap, tag?tag:"int", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 int * SOAP_FMAC4 soap_get_int(struct soap *soap, int *p, const char *tag, const char *type)
-{
- if ((p = soap_in_int(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__int(struct soap *soap, const char *tag, int id, const long *a, const char *type)
-{
- return soap_outlong(soap, tag, id, a, type, SOAP_TYPE_KMS_Agent_xsd__int);
-}
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_in_xsd__int(struct soap *soap, const char *tag, long *a, const char *type)
-{ long *p;
- p = soap_inlong(soap, tag, a, type, SOAP_TYPE_KMS_Agent_xsd__int);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__int(struct soap *soap, const long *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_xsd__int);
- if (soap_out_xsd__int(soap, tag?tag:"xsd:int", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_get_xsd__int(struct soap *soap, long *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__int(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_long(struct soap *soap, long *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_long
- *a = SOAP_DEFAULT_long;
-#else
- *a = (long)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_long(struct soap *soap, const char *tag, int id, const long *a, const char *type)
-{
- return soap_outlong(soap, tag, id, a, type, SOAP_TYPE_KMS_Agent_long);
-}
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_in_long(struct soap *soap, const char *tag, long *a, const char *type)
-{ long *p;
- p = soap_inlong(soap, tag, a, type, SOAP_TYPE_KMS_Agent_long);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_long(struct soap *soap, const long *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_long);
- if (soap_out_long(soap, tag?tag:"long", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_get_long(struct soap *soap, long *p, const char *tag, const char *type)
-{
- if ((p = soap_in_long(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__long(struct soap *soap, const char *tag, int id, const LONG64 *a, const char *type)
-{
- return soap_outLONG64(soap, tag, id, a, type, SOAP_TYPE_KMS_Agent_xsd__long);
-}
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_in_xsd__long(struct soap *soap, const char *tag, LONG64 *a, const char *type)
-{ LONG64 *p;
- p = soap_inLONG64(soap, tag, a, type, SOAP_TYPE_KMS_Agent_xsd__long);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__long(struct soap *soap, const LONG64 *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_xsd__long);
- if (soap_out_xsd__long(soap, tag?tag:"xsd:long", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_get_xsd__long(struct soap *soap, LONG64 *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__long(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_LONG64(struct soap *soap, LONG64 *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_LONG64
- *a = SOAP_DEFAULT_LONG64;
-#else
- *a = (LONG64)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_LONG64(struct soap *soap, const char *tag, int id, const LONG64 *a, const char *type)
-{
- return soap_outLONG64(soap, tag, id, a, type, SOAP_TYPE_KMS_Agent_LONG64);
-}
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_in_LONG64(struct soap *soap, const char *tag, LONG64 *a, const char *type)
-{ LONG64 *p;
- p = soap_inLONG64(soap, tag, a, type, SOAP_TYPE_KMS_Agent_LONG64);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_LONG64(struct soap *soap, const LONG64 *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_LONG64);
- if (soap_out_LONG64(soap, tag?tag:"long", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_get_LONG64(struct soap *soap, LONG64 *p, const char *tag, const char *type)
-{
- if ((p = soap_in_LONG64(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__float(struct soap *soap, const char *tag, int id, const float *a, const char *type)
-{
- return soap_outfloat(soap, tag, id, a, type, SOAP_TYPE_KMS_Agent_xsd__float);
-}
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_in_xsd__float(struct soap *soap, const char *tag, float *a, const char *type)
-{ float *p;
- p = soap_infloat(soap, tag, a, type, SOAP_TYPE_KMS_Agent_xsd__float);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__float(struct soap *soap, const float *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_xsd__float);
- if (soap_out_xsd__float(soap, tag?tag:"xsd:float", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_get_xsd__float(struct soap *soap, float *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__float(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_float(struct soap *soap, float *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_float
- *a = SOAP_DEFAULT_float;
-#else
- *a = (float)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_float(struct soap *soap, const char *tag, int id, const float *a, const char *type)
-{
- return soap_outfloat(soap, tag, id, a, type, SOAP_TYPE_KMS_Agent_float);
-}
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_in_float(struct soap *soap, const char *tag, float *a, const char *type)
-{ float *p;
- p = soap_infloat(soap, tag, a, type, SOAP_TYPE_KMS_Agent_float);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_float(struct soap *soap, const float *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_float);
- if (soap_out_float(soap, tag?tag:"float", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_get_float(struct soap *soap, float *p, const char *tag, const char *type)
-{
- if ((p = soap_in_float(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_unsignedByte(struct soap *soap, unsigned char *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_unsignedByte
- *a = SOAP_DEFAULT_unsignedByte;
-#else
- *a = (unsigned char)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_unsignedByte(struct soap *soap, const char *tag, int id, const unsigned char *a, const char *type)
-{
- return soap_outunsignedByte(soap, tag, id, a, type, SOAP_TYPE_KMS_Agent_unsignedByte);
-}
-
-SOAP_FMAC3 unsigned char * SOAP_FMAC4 soap_in_unsignedByte(struct soap *soap, const char *tag, unsigned char *a, const char *type)
-{ unsigned char *p;
- p = soap_inunsignedByte(soap, tag, a, type, SOAP_TYPE_KMS_Agent_unsignedByte);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_unsignedByte(struct soap *soap, const unsigned char *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_unsignedByte);
- if (soap_out_unsignedByte(soap, tag?tag:"unsignedByte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 unsigned char * SOAP_FMAC4 soap_get_unsignedByte(struct soap *soap, unsigned char *p, const char *tag, const char *type)
-{
- if ((p = soap_in_unsignedByte(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_unsignedInt(struct soap *soap, unsigned int *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_unsignedInt
- *a = SOAP_DEFAULT_unsignedInt;
-#else
- *a = (unsigned int)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_unsignedInt(struct soap *soap, const char *tag, int id, const unsigned int *a, const char *type)
-{
- return soap_outunsignedInt(soap, tag, id, a, type, SOAP_TYPE_KMS_Agent_unsignedInt);
-}
-
-SOAP_FMAC3 unsigned int * SOAP_FMAC4 soap_in_unsignedInt(struct soap *soap, const char *tag, unsigned int *a, const char *type)
-{ unsigned int *p;
- p = soap_inunsignedInt(soap, tag, a, type, SOAP_TYPE_KMS_Agent_unsignedInt);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_unsignedInt(struct soap *soap, const unsigned int *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_unsignedInt);
- if (soap_out_unsignedInt(soap, tag?tag:"unsignedInt", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 unsigned int * SOAP_FMAC4 soap_get_unsignedInt(struct soap *soap, unsigned int *p, const char *tag, const char *type)
-{
- if ((p = soap_in_unsignedInt(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__AuditLogCondition(struct soap *soap, enum KMS_Agent__AuditLogCondition *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_KMS_Agent__AuditLogCondition
- *a = SOAP_DEFAULT_KMS_Agent__AuditLogCondition;
-#else
- *a = (enum KMS_Agent__AuditLogCondition)0;
-#endif
-}
-
-static const struct soap_code_map soap_codes_KMS_Agent__AuditLogCondition[] =
-{ { (long)AUDIT_LOG_SUCCESS_CONDITION, "AUDIT-LOG-SUCCESS-CONDITION" },
- { (long)AUDIT_LOG_ERROR_CONDITION, "AUDIT-LOG-ERROR-CONDITION" },
- { (long)AUDIT_LOG_WARNING_CONDITION, "AUDIT-LOG-WARNING-CONDITION" },
- { 0, NULL }
-};
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_KMS_Agent__AuditLogCondition2s(struct soap *soap, enum KMS_Agent__AuditLogCondition n)
-{ const char *s = soap_code_str(soap_codes_KMS_Agent__AuditLogCondition, (long)n);
- if (s)
- return s;
- return soap_long2s(soap, (long)n);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__AuditLogCondition(struct soap *soap, const char *tag, int id, const enum KMS_Agent__AuditLogCondition *a, const char *type)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogCondition), type) || soap_send(soap, soap_KMS_Agent__AuditLogCondition2s(soap, *a)))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2KMS_Agent__AuditLogCondition(struct soap *soap, const char *s, enum KMS_Agent__AuditLogCondition *a)
-{
- const struct soap_code_map *map;
- if (!s)
- return soap->error;
- map = soap_code(soap_codes_KMS_Agent__AuditLogCondition, s);
- if (map)
- *a = (enum KMS_Agent__AuditLogCondition)map->code;
- else
- { long n;
- if (soap_s2long(soap, s, &n) || ((soap->mode & SOAP_XML_STRICT) && (n < 0 || n > 2)))
- return soap->error = SOAP_TYPE;
- *a = (enum KMS_Agent__AuditLogCondition)n;
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 enum KMS_Agent__AuditLogCondition * SOAP_FMAC4 soap_in_KMS_Agent__AuditLogCondition(struct soap *soap, const char *tag, enum KMS_Agent__AuditLogCondition *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (enum KMS_Agent__AuditLogCondition *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogCondition, sizeof(enum KMS_Agent__AuditLogCondition), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- if (soap->body && !*soap->href)
- { if (!a || soap_s2KMS_Agent__AuditLogCondition(soap, soap_value(soap), a) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (enum KMS_Agent__AuditLogCondition *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogCondition, 0, sizeof(enum KMS_Agent__AuditLogCondition), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__AuditLogCondition(struct soap *soap, const enum KMS_Agent__AuditLogCondition *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogCondition);
- if (soap_out_KMS_Agent__AuditLogCondition(soap, tag?tag:"KMS-Agent:AuditLogCondition", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 enum KMS_Agent__AuditLogCondition * SOAP_FMAC4 soap_get_KMS_Agent__AuditLogCondition(struct soap *soap, enum KMS_Agent__AuditLogCondition *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__AuditLogCondition(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__AuditLogRetention(struct soap *soap, enum KMS_Agent__AuditLogRetention *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_KMS_Agent__AuditLogRetention
- *a = SOAP_DEFAULT_KMS_Agent__AuditLogRetention;
-#else
- *a = (enum KMS_Agent__AuditLogRetention)0;
-#endif
-}
-
-static const struct soap_code_map soap_codes_KMS_Agent__AuditLogRetention[] =
-{ { (long)AUDIT_LOG_LONG_TERM_RETENTION, "AUDIT-LOG-LONG-TERM-RETENTION" },
- { (long)AUDIT_LOG_MEDIUM_TERM_RETENTION, "AUDIT-LOG-MEDIUM-TERM-RETENTION" },
- { (long)AUDIT_LOG_SHORT_TERM_RETENTION, "AUDIT-LOG-SHORT-TERM-RETENTION" },
- { (long)AUDIT_LOG_ZERO_RETENTION, "AUDIT-LOG-ZERO-RETENTION" },
- { 0, NULL }
-};
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_KMS_Agent__AuditLogRetention2s(struct soap *soap, enum KMS_Agent__AuditLogRetention n)
-{ const char *s = soap_code_str(soap_codes_KMS_Agent__AuditLogRetention, (long)n);
- if (s)
- return s;
- return soap_long2s(soap, (long)n);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__AuditLogRetention(struct soap *soap, const char *tag, int id, const enum KMS_Agent__AuditLogRetention *a, const char *type)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogRetention), type) || soap_send(soap, soap_KMS_Agent__AuditLogRetention2s(soap, *a)))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2KMS_Agent__AuditLogRetention(struct soap *soap, const char *s, enum KMS_Agent__AuditLogRetention *a)
-{
- const struct soap_code_map *map;
- if (!s)
- return soap->error;
- map = soap_code(soap_codes_KMS_Agent__AuditLogRetention, s);
- if (map)
- *a = (enum KMS_Agent__AuditLogRetention)map->code;
- else
- { long n;
- if (soap_s2long(soap, s, &n) || ((soap->mode & SOAP_XML_STRICT) && (n < 0 || n > 3)))
- return soap->error = SOAP_TYPE;
- *a = (enum KMS_Agent__AuditLogRetention)n;
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 enum KMS_Agent__AuditLogRetention * SOAP_FMAC4 soap_in_KMS_Agent__AuditLogRetention(struct soap *soap, const char *tag, enum KMS_Agent__AuditLogRetention *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (enum KMS_Agent__AuditLogRetention *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogRetention, sizeof(enum KMS_Agent__AuditLogRetention), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- if (soap->body && !*soap->href)
- { if (!a || soap_s2KMS_Agent__AuditLogRetention(soap, soap_value(soap), a) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (enum KMS_Agent__AuditLogRetention *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogRetention, 0, sizeof(enum KMS_Agent__AuditLogRetention), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__AuditLogRetention(struct soap *soap, const enum KMS_Agent__AuditLogRetention *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogRetention);
- if (soap_out_KMS_Agent__AuditLogRetention(soap, tag?tag:"KMS-Agent:AuditLogRetention", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 enum KMS_Agent__AuditLogRetention * SOAP_FMAC4 soap_get_KMS_Agent__AuditLogRetention(struct soap *soap, enum KMS_Agent__AuditLogRetention *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__AuditLogRetention(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__DataUnitState(struct soap *soap, enum KMS_Agent__DataUnitState *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_KMS_Agent__DataUnitState
- *a = SOAP_DEFAULT_KMS_Agent__DataUnitState;
-#else
- *a = (enum KMS_Agent__DataUnitState)0;
-#endif
-}
-
-static const struct soap_code_map soap_codes_KMS_Agent__DataUnitState[] =
-{ { (long)DATA_UNIT_STATE_NO_KEY, "DATA-UNIT-STATE-NO-KEY" },
- { (long)DATA_UNIT_STATE_READABLE_NORMAL, "DATA-UNIT-STATE-READABLE-NORMAL" },
- { (long)DATA_UNIT_STATE_READABLE_NEEDS_REKEY, "DATA-UNIT-STATE-READABLE-NEEDS-REKEY" },
- { (long)DATA_UNIT_STATE_SHREDDED, "DATA-UNIT-STATE-SHREDDED" },
- { 0, NULL }
-};
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_KMS_Agent__DataUnitState2s(struct soap *soap, enum KMS_Agent__DataUnitState n)
-{ const char *s = soap_code_str(soap_codes_KMS_Agent__DataUnitState, (long)n);
- if (s)
- return s;
- return soap_long2s(soap, (long)n);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__DataUnitState(struct soap *soap, const char *tag, int id, const enum KMS_Agent__DataUnitState *a, const char *type)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnitState), type) || soap_send(soap, soap_KMS_Agent__DataUnitState2s(soap, *a)))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2KMS_Agent__DataUnitState(struct soap *soap, const char *s, enum KMS_Agent__DataUnitState *a)
-{
- const struct soap_code_map *map;
- if (!s)
- return soap->error;
- map = soap_code(soap_codes_KMS_Agent__DataUnitState, s);
- if (map)
- *a = (enum KMS_Agent__DataUnitState)map->code;
- else
- { long n;
- if (soap_s2long(soap, s, &n) || ((soap->mode & SOAP_XML_STRICT) && (n < 0 || n > 3)))
- return soap->error = SOAP_TYPE;
- *a = (enum KMS_Agent__DataUnitState)n;
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 enum KMS_Agent__DataUnitState * SOAP_FMAC4 soap_in_KMS_Agent__DataUnitState(struct soap *soap, const char *tag, enum KMS_Agent__DataUnitState *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (enum KMS_Agent__DataUnitState *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnitState, sizeof(enum KMS_Agent__DataUnitState), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- if (soap->body && !*soap->href)
- { if (!a || soap_s2KMS_Agent__DataUnitState(soap, soap_value(soap), a) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (enum KMS_Agent__DataUnitState *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnitState, 0, sizeof(enum KMS_Agent__DataUnitState), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__DataUnitState(struct soap *soap, const enum KMS_Agent__DataUnitState *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnitState);
- if (soap_out_KMS_Agent__DataUnitState(soap, tag?tag:"KMS-Agent:DataUnitState", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 enum KMS_Agent__DataUnitState * SOAP_FMAC4 soap_get_KMS_Agent__DataUnitState(struct soap *soap, enum KMS_Agent__DataUnitState *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__DataUnitState(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__KeyState(struct soap *soap, enum KMS_Agent__KeyState *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_KMS_Agent__KeyState
- *a = SOAP_DEFAULT_KMS_Agent__KeyState;
-#else
- *a = (enum KMS_Agent__KeyState)0;
-#endif
-}
-
-static const struct soap_code_map soap_codes_KMS_Agent__KeyState[] =
-{ { (long)KEY_STATE_GENERATED, "KEY-STATE-GENERATED" },
- { (long)KEY_STATE_READY, "KEY-STATE-READY" },
- { (long)KEY_STATE_PROTECT_AND_PROCESS, "KEY-STATE-PROTECT-AND-PROCESS" },
- { (long)KEY_STATE_PROCESS_ONLY, "KEY-STATE-PROCESS-ONLY" },
- { (long)KEY_STATE_DEACTIVATED, "KEY-STATE-DEACTIVATED" },
- { (long)KEY_STATE_COMPROMISED, "KEY-STATE-COMPROMISED" },
- { (long)KEY_STATE_DESTROYED_INCOMPLETE, "KEY-STATE-DESTROYED-INCOMPLETE" },
- { (long)KEY_STATE_DESTROYED_COMPLETE, "KEY-STATE-DESTROYED-COMPLETE" },
- { (long)KEY_STATE_DESTROYED_COMPROMISED_INCOMPLETE, "KEY-STATE-DESTROYED-COMPROMISED-INCOMPLETE" },
- { (long)KEY_STATE_DESTROYED_COMPROMISED_COMPLETE, "KEY-STATE-DESTROYED-COMPROMISED-COMPLETE" },
- { 0, NULL }
-};
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_KMS_Agent__KeyState2s(struct soap *soap, enum KMS_Agent__KeyState n)
-{ const char *s = soap_code_str(soap_codes_KMS_Agent__KeyState, (long)n);
- if (s)
- return s;
- return soap_long2s(soap, (long)n);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__KeyState(struct soap *soap, const char *tag, int id, const enum KMS_Agent__KeyState *a, const char *type)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__KeyState), type) || soap_send(soap, soap_KMS_Agent__KeyState2s(soap, *a)))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2KMS_Agent__KeyState(struct soap *soap, const char *s, enum KMS_Agent__KeyState *a)
-{
- const struct soap_code_map *map;
- if (!s)
- return soap->error;
- map = soap_code(soap_codes_KMS_Agent__KeyState, s);
- if (map)
- *a = (enum KMS_Agent__KeyState)map->code;
- else
- { long n;
- if (soap_s2long(soap, s, &n) || ((soap->mode & SOAP_XML_STRICT) && (n < 0 || n > 9)))
- return soap->error = SOAP_TYPE;
- *a = (enum KMS_Agent__KeyState)n;
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 enum KMS_Agent__KeyState * SOAP_FMAC4 soap_in_KMS_Agent__KeyState(struct soap *soap, const char *tag, enum KMS_Agent__KeyState *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (enum KMS_Agent__KeyState *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__KeyState, sizeof(enum KMS_Agent__KeyState), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- if (soap->body && !*soap->href)
- { if (!a || soap_s2KMS_Agent__KeyState(soap, soap_value(soap), a) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (enum KMS_Agent__KeyState *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__KeyState, 0, sizeof(enum KMS_Agent__KeyState), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__KeyState(struct soap *soap, const enum KMS_Agent__KeyState *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__KeyState);
- if (soap_out_KMS_Agent__KeyState(soap, tag?tag:"KMS-Agent:KeyState", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 enum KMS_Agent__KeyState * SOAP_FMAC4 soap_get_KMS_Agent__KeyState(struct soap *soap, enum KMS_Agent__KeyState *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__KeyState(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__KeyType(struct soap *soap, enum KMS_Agent__KeyType *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_KMS_Agent__KeyType
- *a = SOAP_DEFAULT_KMS_Agent__KeyType;
-#else
- *a = (enum KMS_Agent__KeyType)0;
-#endif
-}
-
-static const struct soap_code_map soap_codes_KMS_Agent__KeyType[] =
-{ { (long)KEY_TYPE_AES_256, "KEY-TYPE-AES-256" },
- { 0, NULL }
-};
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_KMS_Agent__KeyType2s(struct soap *soap, enum KMS_Agent__KeyType n)
-{ const char *s = soap_code_str(soap_codes_KMS_Agent__KeyType, (long)n);
- if (s)
- return s;
- return soap_long2s(soap, (long)n);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__KeyType(struct soap *soap, const char *tag, int id, const enum KMS_Agent__KeyType *a, const char *type)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__KeyType), type) || soap_send(soap, soap_KMS_Agent__KeyType2s(soap, *a)))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2KMS_Agent__KeyType(struct soap *soap, const char *s, enum KMS_Agent__KeyType *a)
-{
- const struct soap_code_map *map;
- if (!s)
- return soap->error;
- map = soap_code(soap_codes_KMS_Agent__KeyType, s);
- if (map)
- *a = (enum KMS_Agent__KeyType)map->code;
- else
- { long n;
- if (soap_s2long(soap, s, &n) || ((soap->mode & SOAP_XML_STRICT) && (n < 0 || n > 0)))
- return soap->error = SOAP_TYPE;
- *a = (enum KMS_Agent__KeyType)n;
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 enum KMS_Agent__KeyType * SOAP_FMAC4 soap_in_KMS_Agent__KeyType(struct soap *soap, const char *tag, enum KMS_Agent__KeyType *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (enum KMS_Agent__KeyType *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__KeyType, sizeof(enum KMS_Agent__KeyType), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- if (soap->body && !*soap->href)
- { if (!a || soap_s2KMS_Agent__KeyType(soap, soap_value(soap), a) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (enum KMS_Agent__KeyType *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__KeyType, 0, sizeof(enum KMS_Agent__KeyType), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__KeyType(struct soap *soap, const enum KMS_Agent__KeyType *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__KeyType);
- if (soap_out_KMS_Agent__KeyType(soap, tag?tag:"KMS-Agent:KeyType", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 enum KMS_Agent__KeyType * SOAP_FMAC4 soap_get_KMS_Agent__KeyType(struct soap *soap, enum KMS_Agent__KeyType *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__KeyType(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__FilterOperator(struct soap *soap, enum KMS_Agent__FilterOperator *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_KMS_Agent__FilterOperator
- *a = SOAP_DEFAULT_KMS_Agent__FilterOperator;
-#else
- *a = (enum KMS_Agent__FilterOperator)0;
-#endif
-}
-
-static const struct soap_code_map soap_codes_KMS_Agent__FilterOperator[] =
-{ { (long)FILTER_OPERATOR_EQUAL, "FILTER-OPERATOR-EQUAL" },
- { (long)FILTER_OPERATOR_NOT_EQUAL, "FILTER-OPERATOR-NOT-EQUAL" },
- { (long)FILTER_OPERATOR_GREATER_THAN, "FILTER-OPERATOR-GREATER-THAN" },
- { (long)FILTER_OPERATOR_LESS_THAN, "FILTER-OPERATOR-LESS-THAN" },
- { (long)FILTER_OPERATOR_GREATER_THAN_OR_EQUAL, "FILTER-OPERATOR-GREATER-THAN-OR-EQUAL" },
- { (long)FILTER_OPERATOR_LESS_THAN_OR_EQUAL, "FILTER-OPERATOR-LESS-THAN-OR-EQUAL" },
- { (long)FILTER_OPERATOR_STARTS_WITH, "FILTER-OPERATOR-STARTS-WITH" },
- { 0, NULL }
-};
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_KMS_Agent__FilterOperator2s(struct soap *soap, enum KMS_Agent__FilterOperator n)
-{ const char *s = soap_code_str(soap_codes_KMS_Agent__FilterOperator, (long)n);
- if (s)
- return s;
- return soap_long2s(soap, (long)n);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__FilterOperator(struct soap *soap, const char *tag, int id, const enum KMS_Agent__FilterOperator *a, const char *type)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__FilterOperator), type) || soap_send(soap, soap_KMS_Agent__FilterOperator2s(soap, *a)))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2KMS_Agent__FilterOperator(struct soap *soap, const char *s, enum KMS_Agent__FilterOperator *a)
-{
- const struct soap_code_map *map;
- if (!s)
- return soap->error;
- map = soap_code(soap_codes_KMS_Agent__FilterOperator, s);
- if (map)
- *a = (enum KMS_Agent__FilterOperator)map->code;
- else
- { long n;
- if (soap_s2long(soap, s, &n) || ((soap->mode & SOAP_XML_STRICT) && (n < 0 || n > 6)))
- return soap->error = SOAP_TYPE;
- *a = (enum KMS_Agent__FilterOperator)n;
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 enum KMS_Agent__FilterOperator * SOAP_FMAC4 soap_in_KMS_Agent__FilterOperator(struct soap *soap, const char *tag, enum KMS_Agent__FilterOperator *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (enum KMS_Agent__FilterOperator *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__FilterOperator, sizeof(enum KMS_Agent__FilterOperator), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- if (soap->body && !*soap->href)
- { if (!a || soap_s2KMS_Agent__FilterOperator(soap, soap_value(soap), a) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (enum KMS_Agent__FilterOperator *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__FilterOperator, 0, sizeof(enum KMS_Agent__FilterOperator), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__FilterOperator(struct soap *soap, const enum KMS_Agent__FilterOperator *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__FilterOperator);
- if (soap_out_KMS_Agent__FilterOperator(soap, tag?tag:"KMS-Agent:FilterOperator", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 enum KMS_Agent__FilterOperator * SOAP_FMAC4 soap_get_KMS_Agent__FilterOperator(struct soap *soap, enum KMS_Agent__FilterOperator *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__FilterOperator(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__SortOrder(struct soap *soap, enum KMS_Agent__SortOrder *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_KMS_Agent__SortOrder
- *a = SOAP_DEFAULT_KMS_Agent__SortOrder;
-#else
- *a = (enum KMS_Agent__SortOrder)0;
-#endif
-}
-
-static const struct soap_code_map soap_codes_KMS_Agent__SortOrder[] =
-{ { (long)SORT_ORDER_ASCENDING, "SORT-ORDER-ASCENDING" },
- { (long)SORT_ORDER_DESCENDING, "SORT-ORDER-DESCENDING" },
- { 0, NULL }
-};
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_KMS_Agent__SortOrder2s(struct soap *soap, enum KMS_Agent__SortOrder n)
-{ const char *s = soap_code_str(soap_codes_KMS_Agent__SortOrder, (long)n);
- if (s)
- return s;
- return soap_long2s(soap, (long)n);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__SortOrder(struct soap *soap, const char *tag, int id, const enum KMS_Agent__SortOrder *a, const char *type)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__SortOrder), type) || soap_send(soap, soap_KMS_Agent__SortOrder2s(soap, *a)))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2KMS_Agent__SortOrder(struct soap *soap, const char *s, enum KMS_Agent__SortOrder *a)
-{
- const struct soap_code_map *map;
- if (!s)
- return soap->error;
- map = soap_code(soap_codes_KMS_Agent__SortOrder, s);
- if (map)
- *a = (enum KMS_Agent__SortOrder)map->code;
- else
- { long n;
- if (soap_s2long(soap, s, &n) || ((soap->mode & SOAP_XML_STRICT) && (n < 0 || n > 1)))
- return soap->error = SOAP_TYPE;
- *a = (enum KMS_Agent__SortOrder)n;
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 enum KMS_Agent__SortOrder * SOAP_FMAC4 soap_in_KMS_Agent__SortOrder(struct soap *soap, const char *tag, enum KMS_Agent__SortOrder *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (enum KMS_Agent__SortOrder *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__SortOrder, sizeof(enum KMS_Agent__SortOrder), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- if (soap->body && !*soap->href)
- { if (!a || soap_s2KMS_Agent__SortOrder(soap, soap_value(soap), a) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (enum KMS_Agent__SortOrder *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__SortOrder, 0, sizeof(enum KMS_Agent__SortOrder), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__SortOrder(struct soap *soap, const enum KMS_Agent__SortOrder *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__SortOrder);
- if (soap_out_KMS_Agent__SortOrder(soap, tag?tag:"KMS-Agent:SortOrder", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 enum KMS_Agent__SortOrder * SOAP_FMAC4 soap_get_KMS_Agent__SortOrder(struct soap *soap, enum KMS_Agent__SortOrder *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__SortOrder(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_xsd__boolean2s(struct soap *soap, bool n)
-{ return soap_bool2s(soap, n);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__boolean(struct soap *soap, const char *tag, int id, const bool *a, const char *type)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_xsd__boolean), type) || soap_send(soap, soap_xsd__boolean2s(soap, *a)))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2xsd__boolean(struct soap *soap, const char *s, bool *a)
-{
- return soap_s2bool(soap, s, a);
-}
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_in_xsd__boolean(struct soap *soap, const char *tag, bool *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
- if (*soap->type && soap_match_tag(soap, soap->type, type) && soap_match_tag(soap, soap->type, ":boolean"))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- a = (bool *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_xsd__boolean, sizeof(bool), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- if (soap->body && !*soap->href)
- { if (!a || soap_s2xsd__boolean(soap, soap_value(soap), a) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (bool *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_xsd__boolean, 0, sizeof(bool), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__boolean(struct soap *soap, const bool *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_xsd__boolean);
- if (soap_out_xsd__boolean(soap, tag?tag:"xsd:boolean", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_get_xsd__boolean(struct soap *soap, bool *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__boolean(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_bool(struct soap *soap, bool *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_bool
- *a = SOAP_DEFAULT_bool;
-#else
- *a = (bool)0;
-#endif
-}
-
-static const struct soap_code_map soap_codes_bool[] =
-{ { (long)false, "false" },
- { (long)true, "true" },
- { 0, NULL }
-};
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_bool2s(struct soap *soap, bool n)
-{
- (void)soap; /* appease -Wall -Werror */
-return soap_code_str(soap_codes_bool, n!=0);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_bool(struct soap *soap, const char *tag, int id, const bool *a, const char *type)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_bool), type) || soap_send(soap, soap_bool2s(soap, *a)))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2bool(struct soap *soap, const char *s, bool *a)
-{
- const struct soap_code_map *map;
- if (!s)
- return soap->error;
- map = soap_code(soap_codes_bool, s);
- if (map)
- *a = (bool)(map->code != 0);
- else
- { long n;
- if (soap_s2long(soap, s, &n) || n < 0 || n > 1)
- return soap->error = SOAP_TYPE;
- *a = (bool)(n != 0);
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_in_bool(struct soap *soap, const char *tag, bool *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
- if (*soap->type && soap_match_tag(soap, soap->type, type) && soap_match_tag(soap, soap->type, ":boolean"))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- a = (bool *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_bool, sizeof(bool), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- if (soap->body && !*soap->href)
- { if (!a || soap_s2bool(soap, soap_value(soap), a) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (bool *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_bool, 0, sizeof(bool), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_bool(struct soap *soap, const bool *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_bool);
- if (soap_out_bool(soap, tag?tag:"boolean", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_get_bool(struct soap *soap, bool *p, const char *tag, const char *type)
-{
- if ((p = soap_in_bool(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Fault(struct soap *soap, struct SOAP_ENV__Fault *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default__QName(soap, &a->faultcode);
- soap_default_string(soap, &a->faultstring);
- soap_default_string(soap, &a->faultactor);
- a->detail = NULL;
- a->SOAP_ENV__Code = NULL;
- a->SOAP_ENV__Reason = NULL;
- soap_default_string(soap, &a->SOAP_ENV__Node);
- soap_default_string(soap, &a->SOAP_ENV__Role);
- a->SOAP_ENV__Detail = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Fault(struct soap *soap, const struct SOAP_ENV__Fault *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize__QName(soap, &a->faultcode);
- soap_serialize_string(soap, &a->faultstring);
- soap_serialize_string(soap, &a->faultactor);
- soap_serialize_PointerToSOAP_ENV__Detail(soap, &a->detail);
- soap_serialize_PointerToSOAP_ENV__Code(soap, &a->SOAP_ENV__Code);
- soap_serialize_PointerToSOAP_ENV__Reason(soap, &a->SOAP_ENV__Reason);
- soap_serialize_string(soap, &a->SOAP_ENV__Node);
- soap_serialize_string(soap, &a->SOAP_ENV__Role);
- soap_serialize_PointerToSOAP_ENV__Detail(soap, &a->SOAP_ENV__Detail);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Fault(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Fault *a, const char *type)
-{
- const char *soap_tmp_faultcode = soap_QName2s(soap, a->faultcode);
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_SOAP_ENV__Fault), type))
- return soap->error;
- if (soap_out__QName(soap, "faultcode", -1, (char*const*)&soap_tmp_faultcode, ""))
- return soap->error;
- if (soap_out_string(soap, "faultstring", -1, &a->faultstring, "xsd:string"))
- return soap->error;
- if (soap_out_string(soap, "faultactor", -1, &a->faultactor, "xsd:string"))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Detail(soap, "detail", -1, &a->detail, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Code", -1, &a->SOAP_ENV__Code, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Reason(soap, "SOAP-ENV:Reason", -1, &a->SOAP_ENV__Reason, ""))
- return soap->error;
- if (soap_out_string(soap, "SOAP-ENV:Node", -1, &a->SOAP_ENV__Node, ""))
- return soap->error;
- if (soap_out_string(soap, "SOAP-ENV:Role", -1, &a->SOAP_ENV__Role, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Detail(soap, "SOAP-ENV:Detail", -1, &a->SOAP_ENV__Detail, ""))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_in_SOAP_ENV__Fault(struct soap *soap, const char *tag, struct SOAP_ENV__Fault *a, const char *type)
-{
- size_t soap_flag_faultcode = 1;
- size_t soap_flag_faultstring = 1;
- size_t soap_flag_faultactor = 1;
- size_t soap_flag_detail = 1;
- size_t soap_flag_SOAP_ENV__Code = 1;
- size_t soap_flag_SOAP_ENV__Reason = 1;
- size_t soap_flag_SOAP_ENV__Node = 1;
- size_t soap_flag_SOAP_ENV__Role = 1;
- size_t soap_flag_SOAP_ENV__Detail = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Fault *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_SOAP_ENV__Fault, sizeof(struct SOAP_ENV__Fault), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Fault(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_faultcode && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in__QName(soap, "faultcode", &a->faultcode, ""))
- { soap_flag_faultcode--;
- continue;
- }
- if (soap_flag_faultstring && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "faultstring", &a->faultstring, "xsd:string"))
- { soap_flag_faultstring--;
- continue;
- }
- if (soap_flag_faultactor && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "faultactor", &a->faultactor, "xsd:string"))
- { soap_flag_faultactor--;
- continue;
- }
- if (soap_flag_detail && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Detail(soap, "detail", &a->detail, ""))
- { soap_flag_detail--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Code && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Code", &a->SOAP_ENV__Code, ""))
- { soap_flag_SOAP_ENV__Code--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Reason && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Reason(soap, "SOAP-ENV:Reason", &a->SOAP_ENV__Reason, ""))
- { soap_flag_SOAP_ENV__Reason--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Node && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "SOAP-ENV:Node", &a->SOAP_ENV__Node, "xsd:string"))
- { soap_flag_SOAP_ENV__Node--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Role && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "SOAP-ENV:Role", &a->SOAP_ENV__Role, "xsd:string"))
- { soap_flag_SOAP_ENV__Role--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Detail && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Detail(soap, "SOAP-ENV:Detail", &a->SOAP_ENV__Detail, ""))
- { soap_flag_SOAP_ENV__Detail--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Fault *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_SOAP_ENV__Fault, 0, sizeof(struct SOAP_ENV__Fault), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Fault(struct soap *soap, const struct SOAP_ENV__Fault *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_SOAP_ENV__Fault);
- if (soap_out_SOAP_ENV__Fault(soap, tag?tag:"SOAP-ENV:Fault", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_get_SOAP_ENV__Fault(struct soap *soap, struct SOAP_ENV__Fault *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Fault(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Fault * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Fault(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Fault(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_SOAP_ENV__Fault, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Fault);
- if (size)
- *size = sizeof(struct SOAP_ENV__Fault);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Fault[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Fault);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Fault*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Fault(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Fault %p -> %p\n", q, p));
- *(struct SOAP_ENV__Fault*)p = *(struct SOAP_ENV__Fault*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_string(soap, &a->SOAP_ENV__Text);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Reason(struct soap *soap, const struct SOAP_ENV__Reason *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_string(soap, &a->SOAP_ENV__Text);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Reason(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Reason *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_SOAP_ENV__Reason), type))
- return soap->error;
- if (soap->lang)
- soap_set_attr(soap, "xml:lang", soap->lang, 1);
- if (soap_out_string(soap, "SOAP-ENV:Text", -1, &a->SOAP_ENV__Text, ""))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_in_SOAP_ENV__Reason(struct soap *soap, const char *tag, struct SOAP_ENV__Reason *a, const char *type)
-{
- size_t soap_flag_SOAP_ENV__Text = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Reason *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_SOAP_ENV__Reason, sizeof(struct SOAP_ENV__Reason), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Reason(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_SOAP_ENV__Text && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "SOAP-ENV:Text", &a->SOAP_ENV__Text, "xsd:string"))
- { soap_flag_SOAP_ENV__Text--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Reason *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_SOAP_ENV__Reason, 0, sizeof(struct SOAP_ENV__Reason), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Reason(struct soap *soap, const struct SOAP_ENV__Reason *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_SOAP_ENV__Reason);
- if (soap_out_SOAP_ENV__Reason(soap, tag?tag:"SOAP-ENV:Reason", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_get_SOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Reason(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Reason * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Reason(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Reason(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_SOAP_ENV__Reason, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Reason);
- if (size)
- *size = sizeof(struct SOAP_ENV__Reason);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Reason[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Reason);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Reason*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Reason(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Reason %p -> %p\n", q, p));
- *(struct SOAP_ENV__Reason*)p = *(struct SOAP_ENV__Reason*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- a->__type = 0;
- a->fault = NULL;
- a->__any = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Detail(struct soap *soap, const struct SOAP_ENV__Detail *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_markelement(soap, a->fault, a->__type);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Detail(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Detail *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_SOAP_ENV__Detail), type))
- return soap->error;
- if (soap_putelement(soap, a->fault, "fault", -1, a->__type))
- return soap->error;
- soap_outliteral(soap, "-any", &a->__any, NULL);
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_in_SOAP_ENV__Detail(struct soap *soap, const char *tag, struct SOAP_ENV__Detail *a, const char *type)
-{
- size_t soap_flag_fault = 1;
- size_t soap_flag___any = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Detail *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_SOAP_ENV__Detail, sizeof(struct SOAP_ENV__Detail), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Detail(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_fault && soap->error == SOAP_TAG_MISMATCH)
- if ((a->fault = soap_getelement(soap, &a->__type)))
- { soap_flag_fault = 0;
- continue;
- }
- if (soap_flag___any && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_inliteral(soap, "-any", &a->__any))
- { soap_flag___any--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Detail *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_SOAP_ENV__Detail, 0, sizeof(struct SOAP_ENV__Detail), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Detail(struct soap *soap, const struct SOAP_ENV__Detail *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_SOAP_ENV__Detail);
- if (soap_out_SOAP_ENV__Detail(soap, tag?tag:"SOAP-ENV:Detail", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_get_SOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Detail(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Detail * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Detail(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Detail(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_SOAP_ENV__Detail, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Detail);
- if (size)
- *size = sizeof(struct SOAP_ENV__Detail);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Detail[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Detail);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Detail*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Detail(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Detail %p -> %p\n", q, p));
- *(struct SOAP_ENV__Detail*)p = *(struct SOAP_ENV__Detail*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default__QName(soap, &a->SOAP_ENV__Value);
- a->SOAP_ENV__Subcode = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Code(struct soap *soap, const struct SOAP_ENV__Code *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize__QName(soap, &a->SOAP_ENV__Value);
- soap_serialize_PointerToSOAP_ENV__Code(soap, &a->SOAP_ENV__Subcode);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Code(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Code *a, const char *type)
-{
- const char *soap_tmp_SOAP_ENV__Value = soap_QName2s(soap, a->SOAP_ENV__Value);
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_SOAP_ENV__Code), type))
- return soap->error;
- if (soap_out__QName(soap, "SOAP-ENV:Value", -1, (char*const*)&soap_tmp_SOAP_ENV__Value, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Subcode", -1, &a->SOAP_ENV__Subcode, ""))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_in_SOAP_ENV__Code(struct soap *soap, const char *tag, struct SOAP_ENV__Code *a, const char *type)
-{
- size_t soap_flag_SOAP_ENV__Value = 1;
- size_t soap_flag_SOAP_ENV__Subcode = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Code *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_SOAP_ENV__Code, sizeof(struct SOAP_ENV__Code), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Code(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_SOAP_ENV__Value && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in__QName(soap, "SOAP-ENV:Value", &a->SOAP_ENV__Value, ""))
- { soap_flag_SOAP_ENV__Value--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Subcode && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Subcode", &a->SOAP_ENV__Subcode, ""))
- { soap_flag_SOAP_ENV__Subcode--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Code *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_SOAP_ENV__Code, 0, sizeof(struct SOAP_ENV__Code), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Code(struct soap *soap, const struct SOAP_ENV__Code *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_SOAP_ENV__Code);
- if (soap_out_SOAP_ENV__Code(soap, tag?tag:"SOAP-ENV:Code", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_get_SOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Code(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Code * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Code(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Code(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_SOAP_ENV__Code, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Code);
- if (size)
- *size = sizeof(struct SOAP_ENV__Code);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Code[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Code);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Code*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Code(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Code %p -> %p\n", q, p));
- *(struct SOAP_ENV__Code*)p = *(struct SOAP_ENV__Code*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Header(struct soap *soap, struct SOAP_ENV__Header *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Header(struct soap *soap, const struct SOAP_ENV__Header *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Header(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Header *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_SOAP_ENV__Header), type))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_in_SOAP_ENV__Header(struct soap *soap, const char *tag, struct SOAP_ENV__Header *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Header *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_SOAP_ENV__Header, sizeof(struct SOAP_ENV__Header), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Header(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Header *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_SOAP_ENV__Header, 0, sizeof(struct SOAP_ENV__Header), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Header(struct soap *soap, const struct SOAP_ENV__Header *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_SOAP_ENV__Header);
- if (soap_out_SOAP_ENV__Header(soap, tag?tag:"SOAP-ENV:Header", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_get_SOAP_ENV__Header(struct soap *soap, struct SOAP_ENV__Header *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Header(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Header * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Header(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Header(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_SOAP_ENV__Header, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Header);
- if (size)
- *size = sizeof(struct SOAP_ENV__Header);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Header[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Header);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Header*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Header(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Header %p -> %p\n", q, p));
- *(struct SOAP_ENV__Header*)p = *(struct SOAP_ENV__Header*)q;
-}
-
-#endif
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RegisterAgentKWK(struct soap *soap, struct KMS_Agent__RegisterAgentKWK *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__hexBinary(soap, &a->AgentKWK);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RegisterAgentKWK(struct soap *soap, const struct KMS_Agent__RegisterAgentKWK *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_embedded(soap, &a->AgentKWK, SOAP_TYPE_KMS_Agent_xsd__hexBinary);
- soap_serialize_xsd__hexBinary(soap, &a->AgentKWK);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RegisterAgentKWK(struct soap *soap, const char *tag, int id, const struct KMS_Agent__RegisterAgentKWK *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWK), type))
- return soap->error;
- if (soap_out_xsd__hexBinary(soap, "AgentKWK", -1, &a->AgentKWK, "xsd:hexBinary"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RegisterAgentKWK * SOAP_FMAC4 soap_in_KMS_Agent__RegisterAgentKWK(struct soap *soap, const char *tag, struct KMS_Agent__RegisterAgentKWK *a, const char *type)
-{
- size_t soap_flag_AgentKWK = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__RegisterAgentKWK *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWK, sizeof(struct KMS_Agent__RegisterAgentKWK), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__RegisterAgentKWK(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_AgentKWK && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__hexBinary(soap, "AgentKWK", &a->AgentKWK, "xsd:hexBinary"))
- { soap_flag_AgentKWK--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__RegisterAgentKWK *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWK, 0, sizeof(struct KMS_Agent__RegisterAgentKWK), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_AgentKWK > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RegisterAgentKWK(struct soap *soap, const struct KMS_Agent__RegisterAgentKWK *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWK);
- if (soap_out_KMS_Agent__RegisterAgentKWK(soap, tag?tag:"KMS-Agent:RegisterAgentKWK", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RegisterAgentKWK * SOAP_FMAC4 soap_get_KMS_Agent__RegisterAgentKWK(struct soap *soap, struct KMS_Agent__RegisterAgentKWK *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__RegisterAgentKWK(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__RegisterAgentKWK * SOAP_FMAC2 soap_instantiate_KMS_Agent__RegisterAgentKWK(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__RegisterAgentKWK(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWK, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RegisterAgentKWK);
- if (size)
- *size = sizeof(struct KMS_Agent__RegisterAgentKWK);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RegisterAgentKWK[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__RegisterAgentKWK);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__RegisterAgentKWK*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RegisterAgentKWK(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__RegisterAgentKWK %p -> %p\n", q, p));
- *(struct KMS_Agent__RegisterAgentKWK*)p = *(struct KMS_Agent__RegisterAgentKWK*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RegisterAgentKWKResponse(struct soap *soap, struct KMS_Agent__RegisterAgentKWKResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__string(soap, &a->AgentKWKID);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RegisterAgentKWKResponse(struct soap *soap, const struct KMS_Agent__RegisterAgentKWKResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__string(soap, &a->AgentKWKID);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RegisterAgentKWKResponse(struct soap *soap, const char *tag, int id, const struct KMS_Agent__RegisterAgentKWKResponse *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWKResponse), type))
- return soap->error;
- if (soap_out_xsd__string(soap, "AgentKWKID", -1, &a->AgentKWKID, "xsd:string"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RegisterAgentKWKResponse * SOAP_FMAC4 soap_in_KMS_Agent__RegisterAgentKWKResponse(struct soap *soap, const char *tag, struct KMS_Agent__RegisterAgentKWKResponse *a, const char *type)
-{
- size_t soap_flag_AgentKWKID = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__RegisterAgentKWKResponse *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWKResponse, sizeof(struct KMS_Agent__RegisterAgentKWKResponse), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__RegisterAgentKWKResponse(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_AgentKWKID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "AgentKWKID", &a->AgentKWKID, "xsd:string"))
- { soap_flag_AgentKWKID--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__RegisterAgentKWKResponse *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWKResponse, 0, sizeof(struct KMS_Agent__RegisterAgentKWKResponse), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RegisterAgentKWKResponse(struct soap *soap, const struct KMS_Agent__RegisterAgentKWKResponse *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWKResponse);
- if (soap_out_KMS_Agent__RegisterAgentKWKResponse(soap, tag?tag:"KMS-Agent:RegisterAgentKWKResponse", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RegisterAgentKWKResponse * SOAP_FMAC4 soap_get_KMS_Agent__RegisterAgentKWKResponse(struct soap *soap, struct KMS_Agent__RegisterAgentKWKResponse *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__RegisterAgentKWKResponse(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__RegisterAgentKWKResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__RegisterAgentKWKResponse(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__RegisterAgentKWKResponse(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWKResponse, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RegisterAgentKWKResponse);
- if (size)
- *size = sizeof(struct KMS_Agent__RegisterAgentKWKResponse);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RegisterAgentKWKResponse[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__RegisterAgentKWKResponse);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__RegisterAgentKWKResponse*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RegisterAgentKWKResponse(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__RegisterAgentKWKResponse %p -> %p\n", q, p));
- *(struct KMS_Agent__RegisterAgentKWKResponse*)p = *(struct KMS_Agent__RegisterAgentKWKResponse*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__GetAgentKWKPublicKey(struct soap *soap, struct KMS_Agent__GetAgentKWKPublicKey *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__GetAgentKWKPublicKey(struct soap *soap, const struct KMS_Agent__GetAgentKWKPublicKey *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__GetAgentKWKPublicKey(struct soap *soap, const char *tag, int id, const struct KMS_Agent__GetAgentKWKPublicKey *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKey), type))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__GetAgentKWKPublicKey * SOAP_FMAC4 soap_in_KMS_Agent__GetAgentKWKPublicKey(struct soap *soap, const char *tag, struct KMS_Agent__GetAgentKWKPublicKey *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__GetAgentKWKPublicKey *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKey, sizeof(struct KMS_Agent__GetAgentKWKPublicKey), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__GetAgentKWKPublicKey(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__GetAgentKWKPublicKey *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKey, 0, sizeof(struct KMS_Agent__GetAgentKWKPublicKey), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__GetAgentKWKPublicKey(struct soap *soap, const struct KMS_Agent__GetAgentKWKPublicKey *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKey);
- if (soap_out_KMS_Agent__GetAgentKWKPublicKey(soap, tag?tag:"KMS-Agent:GetAgentKWKPublicKey", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__GetAgentKWKPublicKey * SOAP_FMAC4 soap_get_KMS_Agent__GetAgentKWKPublicKey(struct soap *soap, struct KMS_Agent__GetAgentKWKPublicKey *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__GetAgentKWKPublicKey(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__GetAgentKWKPublicKey * SOAP_FMAC2 soap_instantiate_KMS_Agent__GetAgentKWKPublicKey(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__GetAgentKWKPublicKey(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKey, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__GetAgentKWKPublicKey);
- if (size)
- *size = sizeof(struct KMS_Agent__GetAgentKWKPublicKey);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__GetAgentKWKPublicKey[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__GetAgentKWKPublicKey);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__GetAgentKWKPublicKey*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__GetAgentKWKPublicKey(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__GetAgentKWKPublicKey %p -> %p\n", q, p));
- *(struct KMS_Agent__GetAgentKWKPublicKey*)p = *(struct KMS_Agent__GetAgentKWKPublicKey*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__GetAgentKWKPublicKeyResponse(struct soap *soap, struct KMS_Agent__GetAgentKWKPublicKeyResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__hexBinary(soap, &a->KWKPublicKey);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__GetAgentKWKPublicKeyResponse(struct soap *soap, const struct KMS_Agent__GetAgentKWKPublicKeyResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_embedded(soap, &a->KWKPublicKey, SOAP_TYPE_KMS_Agent_xsd__hexBinary);
- soap_serialize_xsd__hexBinary(soap, &a->KWKPublicKey);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__GetAgentKWKPublicKeyResponse(struct soap *soap, const char *tag, int id, const struct KMS_Agent__GetAgentKWKPublicKeyResponse *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKeyResponse), type))
- return soap->error;
- if (soap_out_xsd__hexBinary(soap, "KWKPublicKey", -1, &a->KWKPublicKey, "xsd:hexBinary"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__GetAgentKWKPublicKeyResponse * SOAP_FMAC4 soap_in_KMS_Agent__GetAgentKWKPublicKeyResponse(struct soap *soap, const char *tag, struct KMS_Agent__GetAgentKWKPublicKeyResponse *a, const char *type)
-{
- size_t soap_flag_KWKPublicKey = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__GetAgentKWKPublicKeyResponse *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKeyResponse, sizeof(struct KMS_Agent__GetAgentKWKPublicKeyResponse), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__GetAgentKWKPublicKeyResponse(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_KWKPublicKey && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__hexBinary(soap, "KWKPublicKey", &a->KWKPublicKey, "xsd:hexBinary"))
- { soap_flag_KWKPublicKey--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__GetAgentKWKPublicKeyResponse *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKeyResponse, 0, sizeof(struct KMS_Agent__GetAgentKWKPublicKeyResponse), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_KWKPublicKey > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__GetAgentKWKPublicKeyResponse(struct soap *soap, const struct KMS_Agent__GetAgentKWKPublicKeyResponse *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKeyResponse);
- if (soap_out_KMS_Agent__GetAgentKWKPublicKeyResponse(soap, tag?tag:"KMS-Agent:GetAgentKWKPublicKeyResponse", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__GetAgentKWKPublicKeyResponse * SOAP_FMAC4 soap_get_KMS_Agent__GetAgentKWKPublicKeyResponse(struct soap *soap, struct KMS_Agent__GetAgentKWKPublicKeyResponse *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__GetAgentKWKPublicKeyResponse(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__GetAgentKWKPublicKeyResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__GetAgentKWKPublicKeyResponse(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__GetAgentKWKPublicKeyResponse(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKeyResponse, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__GetAgentKWKPublicKeyResponse);
- if (size)
- *size = sizeof(struct KMS_Agent__GetAgentKWKPublicKeyResponse);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__GetAgentKWKPublicKeyResponse[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__GetAgentKWKPublicKeyResponse);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__GetAgentKWKPublicKeyResponse*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__GetAgentKWKPublicKeyResponse(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__GetAgentKWKPublicKeyResponse %p -> %p\n", q, p));
- *(struct KMS_Agent__GetAgentKWKPublicKeyResponse*)p = *(struct KMS_Agent__GetAgentKWKPublicKeyResponse*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__CreateAuditLog(struct soap *soap, struct KMS_Agent__CreateAuditLog *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__AuditLogRetention(soap, &a->Retention);
- soap_default_KMS_Agent__AuditLogCondition(soap, &a->Condition);
- soap_default_xsd__boolean(soap, &a->IssueAlert);
- soap_default_xsd__string(soap, &a->Message);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__CreateAuditLog(struct soap *soap, const struct KMS_Agent__CreateAuditLog *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__string(soap, &a->Message);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__CreateAuditLog(struct soap *soap, const char *tag, int id, const struct KMS_Agent__CreateAuditLog *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLog), type))
- return soap->error;
- if (soap_out_KMS_Agent__AuditLogRetention(soap, "Retention", -1, &a->Retention, "KMS-Agent:AuditLogRetention"))
- return soap->error;
- if (soap_out_KMS_Agent__AuditLogCondition(soap, "Condition", -1, &a->Condition, "KMS-Agent:AuditLogCondition"))
- return soap->error;
- if (soap_out_xsd__boolean(soap, "IssueAlert", -1, &a->IssueAlert, "xsd:boolean"))
- return soap->error;
- if (soap_out_xsd__string(soap, "Message", -1, &a->Message, "xsd:string"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__CreateAuditLog * SOAP_FMAC4 soap_in_KMS_Agent__CreateAuditLog(struct soap *soap, const char *tag, struct KMS_Agent__CreateAuditLog *a, const char *type)
-{
- size_t soap_flag_Retention = 1;
- size_t soap_flag_Condition = 1;
- size_t soap_flag_IssueAlert = 1;
- size_t soap_flag_Message = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__CreateAuditLog *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLog, sizeof(struct KMS_Agent__CreateAuditLog), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__CreateAuditLog(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_Retention && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__AuditLogRetention(soap, "Retention", &a->Retention, "KMS-Agent:AuditLogRetention"))
- { soap_flag_Retention--;
- continue;
- }
- if (soap_flag_Condition && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__AuditLogCondition(soap, "Condition", &a->Condition, "KMS-Agent:AuditLogCondition"))
- { soap_flag_Condition--;
- continue;
- }
- if (soap_flag_IssueAlert && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__boolean(soap, "IssueAlert", &a->IssueAlert, "xsd:boolean"))
- { soap_flag_IssueAlert--;
- continue;
- }
- if (soap_flag_Message && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "Message", &a->Message, "xsd:string"))
- { soap_flag_Message--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__CreateAuditLog *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLog, 0, sizeof(struct KMS_Agent__CreateAuditLog), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_Retention > 0 || soap_flag_Condition > 0 || soap_flag_IssueAlert > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__CreateAuditLog(struct soap *soap, const struct KMS_Agent__CreateAuditLog *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLog);
- if (soap_out_KMS_Agent__CreateAuditLog(soap, tag?tag:"KMS-Agent:CreateAuditLog", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__CreateAuditLog * SOAP_FMAC4 soap_get_KMS_Agent__CreateAuditLog(struct soap *soap, struct KMS_Agent__CreateAuditLog *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__CreateAuditLog(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__CreateAuditLog * SOAP_FMAC2 soap_instantiate_KMS_Agent__CreateAuditLog(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__CreateAuditLog(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLog, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__CreateAuditLog);
- if (size)
- *size = sizeof(struct KMS_Agent__CreateAuditLog);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__CreateAuditLog[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__CreateAuditLog);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__CreateAuditLog*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__CreateAuditLog(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__CreateAuditLog %p -> %p\n", q, p));
- *(struct KMS_Agent__CreateAuditLog*)p = *(struct KMS_Agent__CreateAuditLog*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__CreateAuditLogResponse(struct soap *soap, struct KMS_Agent__CreateAuditLogResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- /* transient _ skipped */
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__CreateAuditLogResponse(struct soap *soap, const struct KMS_Agent__CreateAuditLogResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- /* transient _ skipped */
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__CreateAuditLogResponse(struct soap *soap, const char *tag, int id, const struct KMS_Agent__CreateAuditLogResponse *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLogResponse), type))
- return soap->error;
- /* transient _ skipped */
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__CreateAuditLogResponse * SOAP_FMAC4 soap_in_KMS_Agent__CreateAuditLogResponse(struct soap *soap, const char *tag, struct KMS_Agent__CreateAuditLogResponse *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__CreateAuditLogResponse *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLogResponse, sizeof(struct KMS_Agent__CreateAuditLogResponse), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__CreateAuditLogResponse(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- /* transient _ skipped */
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__CreateAuditLogResponse *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLogResponse, 0, sizeof(struct KMS_Agent__CreateAuditLogResponse), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__CreateAuditLogResponse(struct soap *soap, const struct KMS_Agent__CreateAuditLogResponse *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLogResponse);
- if (soap_out_KMS_Agent__CreateAuditLogResponse(soap, tag?tag:"KMS-Agent:CreateAuditLogResponse", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__CreateAuditLogResponse * SOAP_FMAC4 soap_get_KMS_Agent__CreateAuditLogResponse(struct soap *soap, struct KMS_Agent__CreateAuditLogResponse *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__CreateAuditLogResponse(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__CreateAuditLogResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__CreateAuditLogResponse(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__CreateAuditLogResponse(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLogResponse, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__CreateAuditLogResponse);
- if (size)
- *size = sizeof(struct KMS_Agent__CreateAuditLogResponse);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__CreateAuditLogResponse[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__CreateAuditLogResponse);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__CreateAuditLogResponse*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__CreateAuditLogResponse(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__CreateAuditLogResponse %p -> %p\n", q, p));
- *(struct KMS_Agent__CreateAuditLogResponse*)p = *(struct KMS_Agent__CreateAuditLogResponse*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap *soap, struct KMS_Agent__RetrieveProtectAndProcessKey2 *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__DataUnit(soap, &a->DataUnit);
- soap_default_xsd__string(soap, &a->KeyGroupID);
- soap_default_xsd__string(soap, &a->AgentKWKID);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap *soap, const struct KMS_Agent__RetrieveProtectAndProcessKey2 *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_KMS_Agent__DataUnit(soap, &a->DataUnit);
- soap_serialize_xsd__string(soap, &a->KeyGroupID);
- soap_serialize_xsd__string(soap, &a->AgentKWKID);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap *soap, const char *tag, int id, const struct KMS_Agent__RetrieveProtectAndProcessKey2 *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2), type))
- return soap->error;
- if (soap_out_KMS_Agent__DataUnit(soap, "DataUnit", -1, &a->DataUnit, "KMS-Agent:DataUnit"))
- return soap->error;
- if (soap_out_xsd__string(soap, "KeyGroupID", -1, &a->KeyGroupID, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "AgentKWKID", -1, &a->AgentKWKID, "xsd:string"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveProtectAndProcessKey2 * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap *soap, const char *tag, struct KMS_Agent__RetrieveProtectAndProcessKey2 *a, const char *type)
-{
- size_t soap_flag_DataUnit = 1;
- size_t soap_flag_KeyGroupID = 1;
- size_t soap_flag_AgentKWKID = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__RetrieveProtectAndProcessKey2 *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2, sizeof(struct KMS_Agent__RetrieveProtectAndProcessKey2), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__RetrieveProtectAndProcessKey2(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_DataUnit && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__DataUnit(soap, "DataUnit", &a->DataUnit, "KMS-Agent:DataUnit"))
- { soap_flag_DataUnit--;
- continue;
- }
- if (soap_flag_KeyGroupID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "KeyGroupID", &a->KeyGroupID, "xsd:string"))
- { soap_flag_KeyGroupID--;
- continue;
- }
- if (soap_flag_AgentKWKID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "AgentKWKID", &a->AgentKWKID, "xsd:string"))
- { soap_flag_AgentKWKID--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__RetrieveProtectAndProcessKey2 *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2, 0, sizeof(struct KMS_Agent__RetrieveProtectAndProcessKey2), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_DataUnit > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap *soap, const struct KMS_Agent__RetrieveProtectAndProcessKey2 *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2);
- if (soap_out_KMS_Agent__RetrieveProtectAndProcessKey2(soap, tag?tag:"KMS-Agent:RetrieveProtectAndProcessKey2", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveProtectAndProcessKey2 * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap *soap, struct KMS_Agent__RetrieveProtectAndProcessKey2 *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__RetrieveProtectAndProcessKey2(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveProtectAndProcessKey2 * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKey2(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveProtectAndProcessKey2);
- if (size)
- *size = sizeof(struct KMS_Agent__RetrieveProtectAndProcessKey2);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveProtectAndProcessKey2[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__RetrieveProtectAndProcessKey2);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__RetrieveProtectAndProcessKey2*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__RetrieveProtectAndProcessKey2 %p -> %p\n", q, p));
- *(struct KMS_Agent__RetrieveProtectAndProcessKey2*)p = *(struct KMS_Agent__RetrieveProtectAndProcessKey2*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveProtectAndProcessKey2Response(struct soap *soap, struct KMS_Agent__RetrieveProtectAndProcessKey2Response *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__Key(soap, &a->Key);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveProtectAndProcessKey2Response(struct soap *soap, const struct KMS_Agent__RetrieveProtectAndProcessKey2Response *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_embedded(soap, &a->Key, SOAP_TYPE_KMS_Agent_KMS_Agent__Key);
- soap_serialize_KMS_Agent__Key(soap, &a->Key);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveProtectAndProcessKey2Response(struct soap *soap, const char *tag, int id, const struct KMS_Agent__RetrieveProtectAndProcessKey2Response *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2Response), type))
- return soap->error;
- if (soap_out_KMS_Agent__Key(soap, "Key", -1, &a->Key, "KMS-Agent:Key"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveProtectAndProcessKey2Response * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveProtectAndProcessKey2Response(struct soap *soap, const char *tag, struct KMS_Agent__RetrieveProtectAndProcessKey2Response *a, const char *type)
-{
- size_t soap_flag_Key = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__RetrieveProtectAndProcessKey2Response *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2Response, sizeof(struct KMS_Agent__RetrieveProtectAndProcessKey2Response), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__RetrieveProtectAndProcessKey2Response(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_Key && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__Key(soap, "Key", &a->Key, "KMS-Agent:Key"))
- { soap_flag_Key--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__RetrieveProtectAndProcessKey2Response *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2Response, 0, sizeof(struct KMS_Agent__RetrieveProtectAndProcessKey2Response), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_Key > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveProtectAndProcessKey2Response(struct soap *soap, const struct KMS_Agent__RetrieveProtectAndProcessKey2Response *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2Response);
- if (soap_out_KMS_Agent__RetrieveProtectAndProcessKey2Response(soap, tag?tag:"KMS-Agent:RetrieveProtectAndProcessKey2Response", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveProtectAndProcessKey2Response * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveProtectAndProcessKey2Response(struct soap *soap, struct KMS_Agent__RetrieveProtectAndProcessKey2Response *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__RetrieveProtectAndProcessKey2Response(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveProtectAndProcessKey2Response * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKey2Response(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKey2Response(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2Response, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveProtectAndProcessKey2Response);
- if (size)
- *size = sizeof(struct KMS_Agent__RetrieveProtectAndProcessKey2Response);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveProtectAndProcessKey2Response[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__RetrieveProtectAndProcessKey2Response);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__RetrieveProtectAndProcessKey2Response*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveProtectAndProcessKey2Response(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__RetrieveProtectAndProcessKey2Response %p -> %p\n", q, p));
- *(struct KMS_Agent__RetrieveProtectAndProcessKey2Response*)p = *(struct KMS_Agent__RetrieveProtectAndProcessKey2Response*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveProtectAndProcessKey(struct soap *soap, struct KMS_Agent__RetrieveProtectAndProcessKey *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__DataUnit(soap, &a->DataUnit);
- soap_default_xsd__string(soap, &a->KeyGroupID);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveProtectAndProcessKey(struct soap *soap, const struct KMS_Agent__RetrieveProtectAndProcessKey *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_KMS_Agent__DataUnit(soap, &a->DataUnit);
- soap_serialize_xsd__string(soap, &a->KeyGroupID);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveProtectAndProcessKey(struct soap *soap, const char *tag, int id, const struct KMS_Agent__RetrieveProtectAndProcessKey *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey), type))
- return soap->error;
- if (soap_out_KMS_Agent__DataUnit(soap, "DataUnit", -1, &a->DataUnit, "KMS-Agent:DataUnit"))
- return soap->error;
- if (soap_out_xsd__string(soap, "KeyGroupID", -1, &a->KeyGroupID, "xsd:string"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveProtectAndProcessKey * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveProtectAndProcessKey(struct soap *soap, const char *tag, struct KMS_Agent__RetrieveProtectAndProcessKey *a, const char *type)
-{
- size_t soap_flag_DataUnit = 1;
- size_t soap_flag_KeyGroupID = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__RetrieveProtectAndProcessKey *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey, sizeof(struct KMS_Agent__RetrieveProtectAndProcessKey), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__RetrieveProtectAndProcessKey(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_DataUnit && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__DataUnit(soap, "DataUnit", &a->DataUnit, "KMS-Agent:DataUnit"))
- { soap_flag_DataUnit--;
- continue;
- }
- if (soap_flag_KeyGroupID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "KeyGroupID", &a->KeyGroupID, "xsd:string"))
- { soap_flag_KeyGroupID--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__RetrieveProtectAndProcessKey *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey, 0, sizeof(struct KMS_Agent__RetrieveProtectAndProcessKey), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_DataUnit > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveProtectAndProcessKey(struct soap *soap, const struct KMS_Agent__RetrieveProtectAndProcessKey *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey);
- if (soap_out_KMS_Agent__RetrieveProtectAndProcessKey(soap, tag?tag:"KMS-Agent:RetrieveProtectAndProcessKey", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveProtectAndProcessKey * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveProtectAndProcessKey(struct soap *soap, struct KMS_Agent__RetrieveProtectAndProcessKey *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__RetrieveProtectAndProcessKey(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveProtectAndProcessKey * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKey(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKey(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveProtectAndProcessKey);
- if (size)
- *size = sizeof(struct KMS_Agent__RetrieveProtectAndProcessKey);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveProtectAndProcessKey[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__RetrieveProtectAndProcessKey);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__RetrieveProtectAndProcessKey*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveProtectAndProcessKey(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__RetrieveProtectAndProcessKey %p -> %p\n", q, p));
- *(struct KMS_Agent__RetrieveProtectAndProcessKey*)p = *(struct KMS_Agent__RetrieveProtectAndProcessKey*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveProtectAndProcessKeyResponse(struct soap *soap, struct KMS_Agent__RetrieveProtectAndProcessKeyResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__Key(soap, &a->Key);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveProtectAndProcessKeyResponse(struct soap *soap, const struct KMS_Agent__RetrieveProtectAndProcessKeyResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_embedded(soap, &a->Key, SOAP_TYPE_KMS_Agent_KMS_Agent__Key);
- soap_serialize_KMS_Agent__Key(soap, &a->Key);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveProtectAndProcessKeyResponse(struct soap *soap, const char *tag, int id, const struct KMS_Agent__RetrieveProtectAndProcessKeyResponse *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKeyResponse), type))
- return soap->error;
- if (soap_out_KMS_Agent__Key(soap, "Key", -1, &a->Key, "KMS-Agent:Key"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveProtectAndProcessKeyResponse * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveProtectAndProcessKeyResponse(struct soap *soap, const char *tag, struct KMS_Agent__RetrieveProtectAndProcessKeyResponse *a, const char *type)
-{
- size_t soap_flag_Key = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__RetrieveProtectAndProcessKeyResponse *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKeyResponse, sizeof(struct KMS_Agent__RetrieveProtectAndProcessKeyResponse), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__RetrieveProtectAndProcessKeyResponse(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_Key && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__Key(soap, "Key", &a->Key, "KMS-Agent:Key"))
- { soap_flag_Key--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__RetrieveProtectAndProcessKeyResponse *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKeyResponse, 0, sizeof(struct KMS_Agent__RetrieveProtectAndProcessKeyResponse), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_Key > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveProtectAndProcessKeyResponse(struct soap *soap, const struct KMS_Agent__RetrieveProtectAndProcessKeyResponse *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKeyResponse);
- if (soap_out_KMS_Agent__RetrieveProtectAndProcessKeyResponse(soap, tag?tag:"KMS-Agent:RetrieveProtectAndProcessKeyResponse", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveProtectAndProcessKeyResponse * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveProtectAndProcessKeyResponse(struct soap *soap, struct KMS_Agent__RetrieveProtectAndProcessKeyResponse *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__RetrieveProtectAndProcessKeyResponse(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveProtectAndProcessKeyResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKeyResponse(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKeyResponse(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKeyResponse, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveProtectAndProcessKeyResponse);
- if (size)
- *size = sizeof(struct KMS_Agent__RetrieveProtectAndProcessKeyResponse);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveProtectAndProcessKeyResponse[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__RetrieveProtectAndProcessKeyResponse);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__RetrieveProtectAndProcessKeyResponse*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveProtectAndProcessKeyResponse(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__RetrieveProtectAndProcessKeyResponse %p -> %p\n", q, p));
- *(struct KMS_Agent__RetrieveProtectAndProcessKeyResponse*)p = *(struct KMS_Agent__RetrieveProtectAndProcessKeyResponse*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveDataUnitKeys2(struct soap *soap, struct KMS_Agent__RetrieveDataUnitKeys2 *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__DataUnit(soap, &a->DataUnit);
- soap_default_xsd__int(soap, &a->PageSize);
- soap_default_xsd__int(soap, &a->PageOffset);
- soap_default_xsd__string(soap, &a->KeyID);
- soap_default_xsd__string(soap, &a->AgentKWKID);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveDataUnitKeys2(struct soap *soap, const struct KMS_Agent__RetrieveDataUnitKeys2 *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_KMS_Agent__DataUnit(soap, &a->DataUnit);
- soap_serialize_xsd__string(soap, &a->KeyID);
- soap_serialize_xsd__string(soap, &a->AgentKWKID);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveDataUnitKeys2(struct soap *soap, const char *tag, int id, const struct KMS_Agent__RetrieveDataUnitKeys2 *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2), type))
- return soap->error;
- if (soap_out_KMS_Agent__DataUnit(soap, "DataUnit", -1, &a->DataUnit, "KMS-Agent:DataUnit"))
- return soap->error;
- if (soap_out_xsd__int(soap, "PageSize", -1, &a->PageSize, "xsd:int"))
- return soap->error;
- if (soap_out_xsd__int(soap, "PageOffset", -1, &a->PageOffset, "xsd:int"))
- return soap->error;
- if (soap_out_xsd__string(soap, "KeyID", -1, &a->KeyID, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "AgentKWKID", -1, &a->AgentKWKID, "xsd:string"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitKeys2 * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveDataUnitKeys2(struct soap *soap, const char *tag, struct KMS_Agent__RetrieveDataUnitKeys2 *a, const char *type)
-{
- size_t soap_flag_DataUnit = 1;
- size_t soap_flag_PageSize = 1;
- size_t soap_flag_PageOffset = 1;
- size_t soap_flag_KeyID = 1;
- size_t soap_flag_AgentKWKID = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__RetrieveDataUnitKeys2 *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2, sizeof(struct KMS_Agent__RetrieveDataUnitKeys2), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__RetrieveDataUnitKeys2(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_DataUnit && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__DataUnit(soap, "DataUnit", &a->DataUnit, "KMS-Agent:DataUnit"))
- { soap_flag_DataUnit--;
- continue;
- }
- if (soap_flag_PageSize && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__int(soap, "PageSize", &a->PageSize, "xsd:int"))
- { soap_flag_PageSize--;
- continue;
- }
- if (soap_flag_PageOffset && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__int(soap, "PageOffset", &a->PageOffset, "xsd:int"))
- { soap_flag_PageOffset--;
- continue;
- }
- if (soap_flag_KeyID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "KeyID", &a->KeyID, "xsd:string"))
- { soap_flag_KeyID--;
- continue;
- }
- if (soap_flag_AgentKWKID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "AgentKWKID", &a->AgentKWKID, "xsd:string"))
- { soap_flag_AgentKWKID--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__RetrieveDataUnitKeys2 *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2, 0, sizeof(struct KMS_Agent__RetrieveDataUnitKeys2), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_DataUnit > 0 || soap_flag_PageSize > 0 || soap_flag_PageOffset > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveDataUnitKeys2(struct soap *soap, const struct KMS_Agent__RetrieveDataUnitKeys2 *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2);
- if (soap_out_KMS_Agent__RetrieveDataUnitKeys2(soap, tag?tag:"KMS-Agent:RetrieveDataUnitKeys2", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitKeys2 * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveDataUnitKeys2(struct soap *soap, struct KMS_Agent__RetrieveDataUnitKeys2 *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__RetrieveDataUnitKeys2(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveDataUnitKeys2 * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveDataUnitKeys2(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__RetrieveDataUnitKeys2(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveDataUnitKeys2);
- if (size)
- *size = sizeof(struct KMS_Agent__RetrieveDataUnitKeys2);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveDataUnitKeys2[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__RetrieveDataUnitKeys2);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__RetrieveDataUnitKeys2*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveDataUnitKeys2(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__RetrieveDataUnitKeys2 %p -> %p\n", q, p));
- *(struct KMS_Agent__RetrieveDataUnitKeys2*)p = *(struct KMS_Agent__RetrieveDataUnitKeys2*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveDataUnitKeys2Response(struct soap *soap, struct KMS_Agent__RetrieveDataUnitKeys2Response *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__long(soap, &a->KeysRemaining);
- soap_default_KMS_Agent__ArrayOfKeys(soap, &a->Keys);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveDataUnitKeys2Response(struct soap *soap, const struct KMS_Agent__RetrieveDataUnitKeys2Response *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_KMS_Agent__ArrayOfKeys(soap, &a->Keys);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveDataUnitKeys2Response(struct soap *soap, const char *tag, int id, const struct KMS_Agent__RetrieveDataUnitKeys2Response *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2Response), type))
- return soap->error;
- if (soap_out_xsd__long(soap, "KeysRemaining", -1, &a->KeysRemaining, "xsd:long"))
- return soap->error;
- if (soap_out_KMS_Agent__ArrayOfKeys(soap, "Keys", -1, &a->Keys, "KMS-Agent:ArrayOfKeys"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitKeys2Response * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveDataUnitKeys2Response(struct soap *soap, const char *tag, struct KMS_Agent__RetrieveDataUnitKeys2Response *a, const char *type)
-{
- size_t soap_flag_KeysRemaining = 1;
- size_t soap_flag_Keys = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__RetrieveDataUnitKeys2Response *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2Response, sizeof(struct KMS_Agent__RetrieveDataUnitKeys2Response), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__RetrieveDataUnitKeys2Response(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_KeysRemaining && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__long(soap, "KeysRemaining", &a->KeysRemaining, "xsd:long"))
- { soap_flag_KeysRemaining--;
- continue;
- }
- if (soap_flag_Keys && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__ArrayOfKeys(soap, "Keys", &a->Keys, "KMS-Agent:ArrayOfKeys"))
- { soap_flag_Keys--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__RetrieveDataUnitKeys2Response *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2Response, 0, sizeof(struct KMS_Agent__RetrieveDataUnitKeys2Response), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_KeysRemaining > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveDataUnitKeys2Response(struct soap *soap, const struct KMS_Agent__RetrieveDataUnitKeys2Response *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2Response);
- if (soap_out_KMS_Agent__RetrieveDataUnitKeys2Response(soap, tag?tag:"KMS-Agent:RetrieveDataUnitKeys2Response", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitKeys2Response * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveDataUnitKeys2Response(struct soap *soap, struct KMS_Agent__RetrieveDataUnitKeys2Response *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__RetrieveDataUnitKeys2Response(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveDataUnitKeys2Response * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveDataUnitKeys2Response(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__RetrieveDataUnitKeys2Response(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2Response, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveDataUnitKeys2Response);
- if (size)
- *size = sizeof(struct KMS_Agent__RetrieveDataUnitKeys2Response);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveDataUnitKeys2Response[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__RetrieveDataUnitKeys2Response);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__RetrieveDataUnitKeys2Response*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveDataUnitKeys2Response(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__RetrieveDataUnitKeys2Response %p -> %p\n", q, p));
- *(struct KMS_Agent__RetrieveDataUnitKeys2Response*)p = *(struct KMS_Agent__RetrieveDataUnitKeys2Response*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveDataUnitKeys(struct soap *soap, struct KMS_Agent__RetrieveDataUnitKeys *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__DataUnit(soap, &a->DataUnit);
- soap_default_xsd__int(soap, &a->PageSize);
- soap_default_xsd__int(soap, &a->PageOffset);
- soap_default_xsd__string(soap, &a->KeyID);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveDataUnitKeys(struct soap *soap, const struct KMS_Agent__RetrieveDataUnitKeys *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_KMS_Agent__DataUnit(soap, &a->DataUnit);
- soap_serialize_xsd__string(soap, &a->KeyID);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveDataUnitKeys(struct soap *soap, const char *tag, int id, const struct KMS_Agent__RetrieveDataUnitKeys *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys), type))
- return soap->error;
- if (soap_out_KMS_Agent__DataUnit(soap, "DataUnit", -1, &a->DataUnit, "KMS-Agent:DataUnit"))
- return soap->error;
- if (soap_out_xsd__int(soap, "PageSize", -1, &a->PageSize, "xsd:int"))
- return soap->error;
- if (soap_out_xsd__int(soap, "PageOffset", -1, &a->PageOffset, "xsd:int"))
- return soap->error;
- if (soap_out_xsd__string(soap, "KeyID", -1, &a->KeyID, "xsd:string"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitKeys * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveDataUnitKeys(struct soap *soap, const char *tag, struct KMS_Agent__RetrieveDataUnitKeys *a, const char *type)
-{
- size_t soap_flag_DataUnit = 1;
- size_t soap_flag_PageSize = 1;
- size_t soap_flag_PageOffset = 1;
- size_t soap_flag_KeyID = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__RetrieveDataUnitKeys *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys, sizeof(struct KMS_Agent__RetrieveDataUnitKeys), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__RetrieveDataUnitKeys(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_DataUnit && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__DataUnit(soap, "DataUnit", &a->DataUnit, "KMS-Agent:DataUnit"))
- { soap_flag_DataUnit--;
- continue;
- }
- if (soap_flag_PageSize && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__int(soap, "PageSize", &a->PageSize, "xsd:int"))
- { soap_flag_PageSize--;
- continue;
- }
- if (soap_flag_PageOffset && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__int(soap, "PageOffset", &a->PageOffset, "xsd:int"))
- { soap_flag_PageOffset--;
- continue;
- }
- if (soap_flag_KeyID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "KeyID", &a->KeyID, "xsd:string"))
- { soap_flag_KeyID--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__RetrieveDataUnitKeys *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys, 0, sizeof(struct KMS_Agent__RetrieveDataUnitKeys), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_DataUnit > 0 || soap_flag_PageSize > 0 || soap_flag_PageOffset > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveDataUnitKeys(struct soap *soap, const struct KMS_Agent__RetrieveDataUnitKeys *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys);
- if (soap_out_KMS_Agent__RetrieveDataUnitKeys(soap, tag?tag:"KMS-Agent:RetrieveDataUnitKeys", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitKeys * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveDataUnitKeys(struct soap *soap, struct KMS_Agent__RetrieveDataUnitKeys *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__RetrieveDataUnitKeys(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveDataUnitKeys * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveDataUnitKeys(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__RetrieveDataUnitKeys(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveDataUnitKeys);
- if (size)
- *size = sizeof(struct KMS_Agent__RetrieveDataUnitKeys);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveDataUnitKeys[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__RetrieveDataUnitKeys);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__RetrieveDataUnitKeys*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveDataUnitKeys(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__RetrieveDataUnitKeys %p -> %p\n", q, p));
- *(struct KMS_Agent__RetrieveDataUnitKeys*)p = *(struct KMS_Agent__RetrieveDataUnitKeys*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveDataUnitKeysResponse(struct soap *soap, struct KMS_Agent__RetrieveDataUnitKeysResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__long(soap, &a->KeysRemaining);
- soap_default_KMS_Agent__ArrayOfKeys(soap, &a->Keys);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveDataUnitKeysResponse(struct soap *soap, const struct KMS_Agent__RetrieveDataUnitKeysResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_KMS_Agent__ArrayOfKeys(soap, &a->Keys);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveDataUnitKeysResponse(struct soap *soap, const char *tag, int id, const struct KMS_Agent__RetrieveDataUnitKeysResponse *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeysResponse), type))
- return soap->error;
- if (soap_out_xsd__long(soap, "KeysRemaining", -1, &a->KeysRemaining, "xsd:long"))
- return soap->error;
- if (soap_out_KMS_Agent__ArrayOfKeys(soap, "Keys", -1, &a->Keys, "KMS-Agent:ArrayOfKeys"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitKeysResponse * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveDataUnitKeysResponse(struct soap *soap, const char *tag, struct KMS_Agent__RetrieveDataUnitKeysResponse *a, const char *type)
-{
- size_t soap_flag_KeysRemaining = 1;
- size_t soap_flag_Keys = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__RetrieveDataUnitKeysResponse *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeysResponse, sizeof(struct KMS_Agent__RetrieveDataUnitKeysResponse), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__RetrieveDataUnitKeysResponse(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_KeysRemaining && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__long(soap, "KeysRemaining", &a->KeysRemaining, "xsd:long"))
- { soap_flag_KeysRemaining--;
- continue;
- }
- if (soap_flag_Keys && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__ArrayOfKeys(soap, "Keys", &a->Keys, "KMS-Agent:ArrayOfKeys"))
- { soap_flag_Keys--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__RetrieveDataUnitKeysResponse *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeysResponse, 0, sizeof(struct KMS_Agent__RetrieveDataUnitKeysResponse), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_KeysRemaining > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveDataUnitKeysResponse(struct soap *soap, const struct KMS_Agent__RetrieveDataUnitKeysResponse *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeysResponse);
- if (soap_out_KMS_Agent__RetrieveDataUnitKeysResponse(soap, tag?tag:"KMS-Agent:RetrieveDataUnitKeysResponse", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitKeysResponse * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveDataUnitKeysResponse(struct soap *soap, struct KMS_Agent__RetrieveDataUnitKeysResponse *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__RetrieveDataUnitKeysResponse(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveDataUnitKeysResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveDataUnitKeysResponse(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__RetrieveDataUnitKeysResponse(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeysResponse, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveDataUnitKeysResponse);
- if (size)
- *size = sizeof(struct KMS_Agent__RetrieveDataUnitKeysResponse);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveDataUnitKeysResponse[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__RetrieveDataUnitKeysResponse);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__RetrieveDataUnitKeysResponse*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveDataUnitKeysResponse(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__RetrieveDataUnitKeysResponse %p -> %p\n", q, p));
- *(struct KMS_Agent__RetrieveDataUnitKeysResponse*)p = *(struct KMS_Agent__RetrieveDataUnitKeysResponse*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveKey2(struct soap *soap, struct KMS_Agent__RetrieveKey2 *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__string(soap, &a->KeyID);
- soap_default_KMS_Agent__DataUnit(soap, &a->DataUnit);
- soap_default_xsd__string(soap, &a->KeyGroupID);
- soap_default_xsd__string(soap, &a->AgentKWKID);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveKey2(struct soap *soap, const struct KMS_Agent__RetrieveKey2 *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__string(soap, &a->KeyID);
- soap_serialize_KMS_Agent__DataUnit(soap, &a->DataUnit);
- soap_serialize_xsd__string(soap, &a->KeyGroupID);
- soap_serialize_xsd__string(soap, &a->AgentKWKID);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveKey2(struct soap *soap, const char *tag, int id, const struct KMS_Agent__RetrieveKey2 *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2), type))
- return soap->error;
- if (soap_out_xsd__string(soap, "KeyID", -1, &a->KeyID, "xsd:string"))
- return soap->error;
- if (soap_out_KMS_Agent__DataUnit(soap, "DataUnit", -1, &a->DataUnit, "KMS-Agent:DataUnit"))
- return soap->error;
- if (soap_out_xsd__string(soap, "KeyGroupID", -1, &a->KeyGroupID, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "AgentKWKID", -1, &a->AgentKWKID, "xsd:string"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveKey2 * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveKey2(struct soap *soap, const char *tag, struct KMS_Agent__RetrieveKey2 *a, const char *type)
-{
- size_t soap_flag_KeyID = 1;
- size_t soap_flag_DataUnit = 1;
- size_t soap_flag_KeyGroupID = 1;
- size_t soap_flag_AgentKWKID = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__RetrieveKey2 *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2, sizeof(struct KMS_Agent__RetrieveKey2), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__RetrieveKey2(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_KeyID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "KeyID", &a->KeyID, "xsd:string"))
- { soap_flag_KeyID--;
- continue;
- }
- if (soap_flag_DataUnit && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__DataUnit(soap, "DataUnit", &a->DataUnit, "KMS-Agent:DataUnit"))
- { soap_flag_DataUnit--;
- continue;
- }
- if (soap_flag_KeyGroupID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "KeyGroupID", &a->KeyGroupID, "xsd:string"))
- { soap_flag_KeyGroupID--;
- continue;
- }
- if (soap_flag_AgentKWKID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "AgentKWKID", &a->AgentKWKID, "xsd:string"))
- { soap_flag_AgentKWKID--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__RetrieveKey2 *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2, 0, sizeof(struct KMS_Agent__RetrieveKey2), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_DataUnit > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveKey2(struct soap *soap, const struct KMS_Agent__RetrieveKey2 *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2);
- if (soap_out_KMS_Agent__RetrieveKey2(soap, tag?tag:"KMS-Agent:RetrieveKey2", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveKey2 * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveKey2(struct soap *soap, struct KMS_Agent__RetrieveKey2 *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__RetrieveKey2(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveKey2 * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveKey2(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__RetrieveKey2(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveKey2);
- if (size)
- *size = sizeof(struct KMS_Agent__RetrieveKey2);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveKey2[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__RetrieveKey2);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__RetrieveKey2*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveKey2(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__RetrieveKey2 %p -> %p\n", q, p));
- *(struct KMS_Agent__RetrieveKey2*)p = *(struct KMS_Agent__RetrieveKey2*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveKey2Response(struct soap *soap, struct KMS_Agent__RetrieveKey2Response *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__Key(soap, &a->Key);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveKey2Response(struct soap *soap, const struct KMS_Agent__RetrieveKey2Response *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_embedded(soap, &a->Key, SOAP_TYPE_KMS_Agent_KMS_Agent__Key);
- soap_serialize_KMS_Agent__Key(soap, &a->Key);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveKey2Response(struct soap *soap, const char *tag, int id, const struct KMS_Agent__RetrieveKey2Response *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2Response), type))
- return soap->error;
- if (soap_out_KMS_Agent__Key(soap, "Key", -1, &a->Key, "KMS-Agent:Key"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveKey2Response * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveKey2Response(struct soap *soap, const char *tag, struct KMS_Agent__RetrieveKey2Response *a, const char *type)
-{
- size_t soap_flag_Key = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__RetrieveKey2Response *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2Response, sizeof(struct KMS_Agent__RetrieveKey2Response), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__RetrieveKey2Response(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_Key && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__Key(soap, "Key", &a->Key, "KMS-Agent:Key"))
- { soap_flag_Key--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__RetrieveKey2Response *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2Response, 0, sizeof(struct KMS_Agent__RetrieveKey2Response), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_Key > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveKey2Response(struct soap *soap, const struct KMS_Agent__RetrieveKey2Response *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2Response);
- if (soap_out_KMS_Agent__RetrieveKey2Response(soap, tag?tag:"KMS-Agent:RetrieveKey2Response", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveKey2Response * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveKey2Response(struct soap *soap, struct KMS_Agent__RetrieveKey2Response *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__RetrieveKey2Response(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveKey2Response * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveKey2Response(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__RetrieveKey2Response(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2Response, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveKey2Response);
- if (size)
- *size = sizeof(struct KMS_Agent__RetrieveKey2Response);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveKey2Response[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__RetrieveKey2Response);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__RetrieveKey2Response*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveKey2Response(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__RetrieveKey2Response %p -> %p\n", q, p));
- *(struct KMS_Agent__RetrieveKey2Response*)p = *(struct KMS_Agent__RetrieveKey2Response*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveKey(struct soap *soap, struct KMS_Agent__RetrieveKey *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__string(soap, &a->KeyID);
- soap_default_KMS_Agent__DataUnit(soap, &a->DataUnit);
- soap_default_xsd__string(soap, &a->KeyGroupID);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveKey(struct soap *soap, const struct KMS_Agent__RetrieveKey *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__string(soap, &a->KeyID);
- soap_serialize_KMS_Agent__DataUnit(soap, &a->DataUnit);
- soap_serialize_xsd__string(soap, &a->KeyGroupID);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveKey(struct soap *soap, const char *tag, int id, const struct KMS_Agent__RetrieveKey *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey), type))
- return soap->error;
- if (soap_out_xsd__string(soap, "KeyID", -1, &a->KeyID, "xsd:string"))
- return soap->error;
- if (soap_out_KMS_Agent__DataUnit(soap, "DataUnit", -1, &a->DataUnit, "KMS-Agent:DataUnit"))
- return soap->error;
- if (soap_out_xsd__string(soap, "KeyGroupID", -1, &a->KeyGroupID, "xsd:string"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveKey * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveKey(struct soap *soap, const char *tag, struct KMS_Agent__RetrieveKey *a, const char *type)
-{
- size_t soap_flag_KeyID = 1;
- size_t soap_flag_DataUnit = 1;
- size_t soap_flag_KeyGroupID = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__RetrieveKey *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey, sizeof(struct KMS_Agent__RetrieveKey), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__RetrieveKey(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_KeyID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "KeyID", &a->KeyID, "xsd:string"))
- { soap_flag_KeyID--;
- continue;
- }
- if (soap_flag_DataUnit && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__DataUnit(soap, "DataUnit", &a->DataUnit, "KMS-Agent:DataUnit"))
- { soap_flag_DataUnit--;
- continue;
- }
- if (soap_flag_KeyGroupID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "KeyGroupID", &a->KeyGroupID, "xsd:string"))
- { soap_flag_KeyGroupID--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__RetrieveKey *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey, 0, sizeof(struct KMS_Agent__RetrieveKey), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_DataUnit > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveKey(struct soap *soap, const struct KMS_Agent__RetrieveKey *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey);
- if (soap_out_KMS_Agent__RetrieveKey(soap, tag?tag:"KMS-Agent:RetrieveKey", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveKey * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveKey(struct soap *soap, struct KMS_Agent__RetrieveKey *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__RetrieveKey(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveKey * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveKey(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__RetrieveKey(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveKey);
- if (size)
- *size = sizeof(struct KMS_Agent__RetrieveKey);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveKey[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__RetrieveKey);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__RetrieveKey*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveKey(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__RetrieveKey %p -> %p\n", q, p));
- *(struct KMS_Agent__RetrieveKey*)p = *(struct KMS_Agent__RetrieveKey*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveKeyResponse(struct soap *soap, struct KMS_Agent__RetrieveKeyResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__Key(soap, &a->Key);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveKeyResponse(struct soap *soap, const struct KMS_Agent__RetrieveKeyResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_embedded(soap, &a->Key, SOAP_TYPE_KMS_Agent_KMS_Agent__Key);
- soap_serialize_KMS_Agent__Key(soap, &a->Key);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveKeyResponse(struct soap *soap, const char *tag, int id, const struct KMS_Agent__RetrieveKeyResponse *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKeyResponse), type))
- return soap->error;
- if (soap_out_KMS_Agent__Key(soap, "Key", -1, &a->Key, "KMS-Agent:Key"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveKeyResponse * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveKeyResponse(struct soap *soap, const char *tag, struct KMS_Agent__RetrieveKeyResponse *a, const char *type)
-{
- size_t soap_flag_Key = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__RetrieveKeyResponse *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKeyResponse, sizeof(struct KMS_Agent__RetrieveKeyResponse), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__RetrieveKeyResponse(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_Key && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__Key(soap, "Key", &a->Key, "KMS-Agent:Key"))
- { soap_flag_Key--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__RetrieveKeyResponse *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKeyResponse, 0, sizeof(struct KMS_Agent__RetrieveKeyResponse), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_Key > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveKeyResponse(struct soap *soap, const struct KMS_Agent__RetrieveKeyResponse *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKeyResponse);
- if (soap_out_KMS_Agent__RetrieveKeyResponse(soap, tag?tag:"KMS-Agent:RetrieveKeyResponse", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveKeyResponse * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveKeyResponse(struct soap *soap, struct KMS_Agent__RetrieveKeyResponse *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__RetrieveKeyResponse(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveKeyResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveKeyResponse(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__RetrieveKeyResponse(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKeyResponse, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveKeyResponse);
- if (size)
- *size = sizeof(struct KMS_Agent__RetrieveKeyResponse);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveKeyResponse[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__RetrieveKeyResponse);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__RetrieveKeyResponse*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveKeyResponse(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__RetrieveKeyResponse %p -> %p\n", q, p));
- *(struct KMS_Agent__RetrieveKeyResponse*)p = *(struct KMS_Agent__RetrieveKeyResponse*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__CreateKey2(struct soap *soap, struct KMS_Agent__CreateKey2 *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__DataUnit(soap, &a->DataUnit);
- soap_default_xsd__string(soap, &a->KeyGroupID);
- soap_default_xsd__string(soap, &a->AgentKWKID);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__CreateKey2(struct soap *soap, const struct KMS_Agent__CreateKey2 *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_KMS_Agent__DataUnit(soap, &a->DataUnit);
- soap_serialize_xsd__string(soap, &a->KeyGroupID);
- soap_serialize_xsd__string(soap, &a->AgentKWKID);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__CreateKey2(struct soap *soap, const char *tag, int id, const struct KMS_Agent__CreateKey2 *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2), type))
- return soap->error;
- if (soap_out_KMS_Agent__DataUnit(soap, "DataUnit", -1, &a->DataUnit, "KMS-Agent:DataUnit"))
- return soap->error;
- if (soap_out_xsd__string(soap, "KeyGroupID", -1, &a->KeyGroupID, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "AgentKWKID", -1, &a->AgentKWKID, "xsd:string"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__CreateKey2 * SOAP_FMAC4 soap_in_KMS_Agent__CreateKey2(struct soap *soap, const char *tag, struct KMS_Agent__CreateKey2 *a, const char *type)
-{
- size_t soap_flag_DataUnit = 1;
- size_t soap_flag_KeyGroupID = 1;
- size_t soap_flag_AgentKWKID = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__CreateKey2 *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2, sizeof(struct KMS_Agent__CreateKey2), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__CreateKey2(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_DataUnit && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__DataUnit(soap, "DataUnit", &a->DataUnit, "KMS-Agent:DataUnit"))
- { soap_flag_DataUnit--;
- continue;
- }
- if (soap_flag_KeyGroupID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "KeyGroupID", &a->KeyGroupID, "xsd:string"))
- { soap_flag_KeyGroupID--;
- continue;
- }
- if (soap_flag_AgentKWKID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "AgentKWKID", &a->AgentKWKID, "xsd:string"))
- { soap_flag_AgentKWKID--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__CreateKey2 *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2, 0, sizeof(struct KMS_Agent__CreateKey2), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_DataUnit > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__CreateKey2(struct soap *soap, const struct KMS_Agent__CreateKey2 *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2);
- if (soap_out_KMS_Agent__CreateKey2(soap, tag?tag:"KMS-Agent:CreateKey2", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__CreateKey2 * SOAP_FMAC4 soap_get_KMS_Agent__CreateKey2(struct soap *soap, struct KMS_Agent__CreateKey2 *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__CreateKey2(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__CreateKey2 * SOAP_FMAC2 soap_instantiate_KMS_Agent__CreateKey2(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__CreateKey2(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__CreateKey2);
- if (size)
- *size = sizeof(struct KMS_Agent__CreateKey2);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__CreateKey2[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__CreateKey2);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__CreateKey2*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__CreateKey2(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__CreateKey2 %p -> %p\n", q, p));
- *(struct KMS_Agent__CreateKey2*)p = *(struct KMS_Agent__CreateKey2*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__CreateKey2Response(struct soap *soap, struct KMS_Agent__CreateKey2Response *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__Key(soap, &a->Key);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__CreateKey2Response(struct soap *soap, const struct KMS_Agent__CreateKey2Response *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_embedded(soap, &a->Key, SOAP_TYPE_KMS_Agent_KMS_Agent__Key);
- soap_serialize_KMS_Agent__Key(soap, &a->Key);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__CreateKey2Response(struct soap *soap, const char *tag, int id, const struct KMS_Agent__CreateKey2Response *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2Response), type))
- return soap->error;
- if (soap_out_KMS_Agent__Key(soap, "Key", -1, &a->Key, "KMS-Agent:Key"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__CreateKey2Response * SOAP_FMAC4 soap_in_KMS_Agent__CreateKey2Response(struct soap *soap, const char *tag, struct KMS_Agent__CreateKey2Response *a, const char *type)
-{
- size_t soap_flag_Key = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__CreateKey2Response *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2Response, sizeof(struct KMS_Agent__CreateKey2Response), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__CreateKey2Response(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_Key && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__Key(soap, "Key", &a->Key, "KMS-Agent:Key"))
- { soap_flag_Key--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__CreateKey2Response *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2Response, 0, sizeof(struct KMS_Agent__CreateKey2Response), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_Key > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__CreateKey2Response(struct soap *soap, const struct KMS_Agent__CreateKey2Response *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2Response);
- if (soap_out_KMS_Agent__CreateKey2Response(soap, tag?tag:"KMS-Agent:CreateKey2Response", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__CreateKey2Response * SOAP_FMAC4 soap_get_KMS_Agent__CreateKey2Response(struct soap *soap, struct KMS_Agent__CreateKey2Response *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__CreateKey2Response(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__CreateKey2Response * SOAP_FMAC2 soap_instantiate_KMS_Agent__CreateKey2Response(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__CreateKey2Response(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2Response, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__CreateKey2Response);
- if (size)
- *size = sizeof(struct KMS_Agent__CreateKey2Response);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__CreateKey2Response[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__CreateKey2Response);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__CreateKey2Response*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__CreateKey2Response(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__CreateKey2Response %p -> %p\n", q, p));
- *(struct KMS_Agent__CreateKey2Response*)p = *(struct KMS_Agent__CreateKey2Response*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__CreateKey(struct soap *soap, struct KMS_Agent__CreateKey *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__DataUnit(soap, &a->DataUnit);
- soap_default_xsd__string(soap, &a->KeyGroupID);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__CreateKey(struct soap *soap, const struct KMS_Agent__CreateKey *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_KMS_Agent__DataUnit(soap, &a->DataUnit);
- soap_serialize_xsd__string(soap, &a->KeyGroupID);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__CreateKey(struct soap *soap, const char *tag, int id, const struct KMS_Agent__CreateKey *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey), type))
- return soap->error;
- if (soap_out_KMS_Agent__DataUnit(soap, "DataUnit", -1, &a->DataUnit, "KMS-Agent:DataUnit"))
- return soap->error;
- if (soap_out_xsd__string(soap, "KeyGroupID", -1, &a->KeyGroupID, "xsd:string"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__CreateKey * SOAP_FMAC4 soap_in_KMS_Agent__CreateKey(struct soap *soap, const char *tag, struct KMS_Agent__CreateKey *a, const char *type)
-{
- size_t soap_flag_DataUnit = 1;
- size_t soap_flag_KeyGroupID = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__CreateKey *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey, sizeof(struct KMS_Agent__CreateKey), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__CreateKey(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_DataUnit && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__DataUnit(soap, "DataUnit", &a->DataUnit, "KMS-Agent:DataUnit"))
- { soap_flag_DataUnit--;
- continue;
- }
- if (soap_flag_KeyGroupID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "KeyGroupID", &a->KeyGroupID, "xsd:string"))
- { soap_flag_KeyGroupID--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__CreateKey *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey, 0, sizeof(struct KMS_Agent__CreateKey), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_DataUnit > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__CreateKey(struct soap *soap, const struct KMS_Agent__CreateKey *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey);
- if (soap_out_KMS_Agent__CreateKey(soap, tag?tag:"KMS-Agent:CreateKey", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__CreateKey * SOAP_FMAC4 soap_get_KMS_Agent__CreateKey(struct soap *soap, struct KMS_Agent__CreateKey *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__CreateKey(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__CreateKey * SOAP_FMAC2 soap_instantiate_KMS_Agent__CreateKey(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__CreateKey(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__CreateKey);
- if (size)
- *size = sizeof(struct KMS_Agent__CreateKey);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__CreateKey[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__CreateKey);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__CreateKey*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__CreateKey(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__CreateKey %p -> %p\n", q, p));
- *(struct KMS_Agent__CreateKey*)p = *(struct KMS_Agent__CreateKey*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__CreateKeyResponse(struct soap *soap, struct KMS_Agent__CreateKeyResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__Key(soap, &a->Key);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__CreateKeyResponse(struct soap *soap, const struct KMS_Agent__CreateKeyResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_embedded(soap, &a->Key, SOAP_TYPE_KMS_Agent_KMS_Agent__Key);
- soap_serialize_KMS_Agent__Key(soap, &a->Key);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__CreateKeyResponse(struct soap *soap, const char *tag, int id, const struct KMS_Agent__CreateKeyResponse *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKeyResponse), type))
- return soap->error;
- if (soap_out_KMS_Agent__Key(soap, "Key", -1, &a->Key, "KMS-Agent:Key"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__CreateKeyResponse * SOAP_FMAC4 soap_in_KMS_Agent__CreateKeyResponse(struct soap *soap, const char *tag, struct KMS_Agent__CreateKeyResponse *a, const char *type)
-{
- size_t soap_flag_Key = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__CreateKeyResponse *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKeyResponse, sizeof(struct KMS_Agent__CreateKeyResponse), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__CreateKeyResponse(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_Key && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__Key(soap, "Key", &a->Key, "KMS-Agent:Key"))
- { soap_flag_Key--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__CreateKeyResponse *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKeyResponse, 0, sizeof(struct KMS_Agent__CreateKeyResponse), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_Key > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__CreateKeyResponse(struct soap *soap, const struct KMS_Agent__CreateKeyResponse *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKeyResponse);
- if (soap_out_KMS_Agent__CreateKeyResponse(soap, tag?tag:"KMS-Agent:CreateKeyResponse", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__CreateKeyResponse * SOAP_FMAC4 soap_get_KMS_Agent__CreateKeyResponse(struct soap *soap, struct KMS_Agent__CreateKeyResponse *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__CreateKeyResponse(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__CreateKeyResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__CreateKeyResponse(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__CreateKeyResponse(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKeyResponse, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__CreateKeyResponse);
- if (size)
- *size = sizeof(struct KMS_Agent__CreateKeyResponse);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__CreateKeyResponse[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__CreateKeyResponse);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__CreateKeyResponse*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__CreateKeyResponse(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__CreateKeyResponse %p -> %p\n", q, p));
- *(struct KMS_Agent__CreateKeyResponse*)p = *(struct KMS_Agent__CreateKeyResponse*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__DisassociateDataUnitKeys(struct soap *soap, struct KMS_Agent__DisassociateDataUnitKeys *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__DataUnit(soap, &a->DataUnit);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__DisassociateDataUnitKeys(struct soap *soap, const struct KMS_Agent__DisassociateDataUnitKeys *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_KMS_Agent__DataUnit(soap, &a->DataUnit);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__DisassociateDataUnitKeys(struct soap *soap, const char *tag, int id, const struct KMS_Agent__DisassociateDataUnitKeys *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeys), type))
- return soap->error;
- if (soap_out_KMS_Agent__DataUnit(soap, "DataUnit", -1, &a->DataUnit, "KMS-Agent:DataUnit"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__DisassociateDataUnitKeys * SOAP_FMAC4 soap_in_KMS_Agent__DisassociateDataUnitKeys(struct soap *soap, const char *tag, struct KMS_Agent__DisassociateDataUnitKeys *a, const char *type)
-{
- size_t soap_flag_DataUnit = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__DisassociateDataUnitKeys *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeys, sizeof(struct KMS_Agent__DisassociateDataUnitKeys), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__DisassociateDataUnitKeys(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_DataUnit && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__DataUnit(soap, "DataUnit", &a->DataUnit, "KMS-Agent:DataUnit"))
- { soap_flag_DataUnit--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__DisassociateDataUnitKeys *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeys, 0, sizeof(struct KMS_Agent__DisassociateDataUnitKeys), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_DataUnit > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__DisassociateDataUnitKeys(struct soap *soap, const struct KMS_Agent__DisassociateDataUnitKeys *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeys);
- if (soap_out_KMS_Agent__DisassociateDataUnitKeys(soap, tag?tag:"KMS-Agent:DisassociateDataUnitKeys", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__DisassociateDataUnitKeys * SOAP_FMAC4 soap_get_KMS_Agent__DisassociateDataUnitKeys(struct soap *soap, struct KMS_Agent__DisassociateDataUnitKeys *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__DisassociateDataUnitKeys(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__DisassociateDataUnitKeys * SOAP_FMAC2 soap_instantiate_KMS_Agent__DisassociateDataUnitKeys(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__DisassociateDataUnitKeys(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeys, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__DisassociateDataUnitKeys);
- if (size)
- *size = sizeof(struct KMS_Agent__DisassociateDataUnitKeys);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__DisassociateDataUnitKeys[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__DisassociateDataUnitKeys);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__DisassociateDataUnitKeys*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__DisassociateDataUnitKeys(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__DisassociateDataUnitKeys %p -> %p\n", q, p));
- *(struct KMS_Agent__DisassociateDataUnitKeys*)p = *(struct KMS_Agent__DisassociateDataUnitKeys*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__DisassociateDataUnitKeysResponse(struct soap *soap, struct KMS_Agent__DisassociateDataUnitKeysResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- /* transient _ skipped */
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__DisassociateDataUnitKeysResponse(struct soap *soap, const struct KMS_Agent__DisassociateDataUnitKeysResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- /* transient _ skipped */
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__DisassociateDataUnitKeysResponse(struct soap *soap, const char *tag, int id, const struct KMS_Agent__DisassociateDataUnitKeysResponse *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeysResponse), type))
- return soap->error;
- /* transient _ skipped */
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__DisassociateDataUnitKeysResponse * SOAP_FMAC4 soap_in_KMS_Agent__DisassociateDataUnitKeysResponse(struct soap *soap, const char *tag, struct KMS_Agent__DisassociateDataUnitKeysResponse *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__DisassociateDataUnitKeysResponse *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeysResponse, sizeof(struct KMS_Agent__DisassociateDataUnitKeysResponse), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__DisassociateDataUnitKeysResponse(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- /* transient _ skipped */
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__DisassociateDataUnitKeysResponse *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeysResponse, 0, sizeof(struct KMS_Agent__DisassociateDataUnitKeysResponse), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__DisassociateDataUnitKeysResponse(struct soap *soap, const struct KMS_Agent__DisassociateDataUnitKeysResponse *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeysResponse);
- if (soap_out_KMS_Agent__DisassociateDataUnitKeysResponse(soap, tag?tag:"KMS-Agent:DisassociateDataUnitKeysResponse", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__DisassociateDataUnitKeysResponse * SOAP_FMAC4 soap_get_KMS_Agent__DisassociateDataUnitKeysResponse(struct soap *soap, struct KMS_Agent__DisassociateDataUnitKeysResponse *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__DisassociateDataUnitKeysResponse(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__DisassociateDataUnitKeysResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__DisassociateDataUnitKeysResponse(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__DisassociateDataUnitKeysResponse(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeysResponse, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__DisassociateDataUnitKeysResponse);
- if (size)
- *size = sizeof(struct KMS_Agent__DisassociateDataUnitKeysResponse);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__DisassociateDataUnitKeysResponse[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__DisassociateDataUnitKeysResponse);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__DisassociateDataUnitKeysResponse*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__DisassociateDataUnitKeysResponse(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__DisassociateDataUnitKeysResponse %p -> %p\n", q, p));
- *(struct KMS_Agent__DisassociateDataUnitKeysResponse*)p = *(struct KMS_Agent__DisassociateDataUnitKeysResponse*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap *soap, struct KMS_Agent__RetrieveDataUnitByExternalUniqueID *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__string(soap, &a->ExternalUniqueID);
- soap_default_xsd__string(soap, &a->ExternalTag);
- soap_default_xsd__string(soap, &a->Description);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap *soap, const struct KMS_Agent__RetrieveDataUnitByExternalUniqueID *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__string(soap, &a->ExternalUniqueID);
- soap_serialize_xsd__string(soap, &a->ExternalTag);
- soap_serialize_xsd__string(soap, &a->Description);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap *soap, const char *tag, int id, const struct KMS_Agent__RetrieveDataUnitByExternalUniqueID *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueID), type))
- return soap->error;
- if (soap_out_xsd__string(soap, "ExternalUniqueID", -1, &a->ExternalUniqueID, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "ExternalTag", -1, &a->ExternalTag, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "Description", -1, &a->Description, "xsd:string"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitByExternalUniqueID * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap *soap, const char *tag, struct KMS_Agent__RetrieveDataUnitByExternalUniqueID *a, const char *type)
-{
- size_t soap_flag_ExternalUniqueID = 1;
- size_t soap_flag_ExternalTag = 1;
- size_t soap_flag_Description = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__RetrieveDataUnitByExternalUniqueID *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueID, sizeof(struct KMS_Agent__RetrieveDataUnitByExternalUniqueID), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_ExternalUniqueID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "ExternalUniqueID", &a->ExternalUniqueID, "xsd:string"))
- { soap_flag_ExternalUniqueID--;
- continue;
- }
- if (soap_flag_ExternalTag && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "ExternalTag", &a->ExternalTag, "xsd:string"))
- { soap_flag_ExternalTag--;
- continue;
- }
- if (soap_flag_Description && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "Description", &a->Description, "xsd:string"))
- { soap_flag_Description--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__RetrieveDataUnitByExternalUniqueID *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueID, 0, sizeof(struct KMS_Agent__RetrieveDataUnitByExternalUniqueID), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap *soap, const struct KMS_Agent__RetrieveDataUnitByExternalUniqueID *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueID);
- if (soap_out_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, tag?tag:"KMS-Agent:RetrieveDataUnitByExternalUniqueID", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitByExternalUniqueID * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap *soap, struct KMS_Agent__RetrieveDataUnitByExternalUniqueID *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveDataUnitByExternalUniqueID * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__RetrieveDataUnitByExternalUniqueID(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueID, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveDataUnitByExternalUniqueID);
- if (size)
- *size = sizeof(struct KMS_Agent__RetrieveDataUnitByExternalUniqueID);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveDataUnitByExternalUniqueID[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__RetrieveDataUnitByExternalUniqueID);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__RetrieveDataUnitByExternalUniqueID*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__RetrieveDataUnitByExternalUniqueID %p -> %p\n", q, p));
- *(struct KMS_Agent__RetrieveDataUnitByExternalUniqueID*)p = *(struct KMS_Agent__RetrieveDataUnitByExternalUniqueID*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(struct soap *soap, struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__DataUnit(soap, &a->DataUnit);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(struct soap *soap, const struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_KMS_Agent__DataUnit(soap, &a->DataUnit);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(struct soap *soap, const char *tag, int id, const struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse), type))
- return soap->error;
- if (soap_out_KMS_Agent__DataUnit(soap, "DataUnit", -1, &a->DataUnit, "KMS-Agent:DataUnit"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(struct soap *soap, const char *tag, struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse *a, const char *type)
-{
- size_t soap_flag_DataUnit = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse, sizeof(struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_DataUnit && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__DataUnit(soap, "DataUnit", &a->DataUnit, "KMS-Agent:DataUnit"))
- { soap_flag_DataUnit--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse, 0, sizeof(struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_DataUnit > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(struct soap *soap, const struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse);
- if (soap_out_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(soap, tag?tag:"KMS-Agent:RetrieveDataUnitByExternalUniqueIDResponse", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(struct soap *soap, struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse);
- if (size)
- *size = sizeof(struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse %p -> %p\n", q, p));
- *(struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse*)p = *(struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveDataUnit(struct soap *soap, struct KMS_Agent__RetrieveDataUnit *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__string(soap, &a->DataUnitID);
- soap_default_xsd__string(soap, &a->ExternalUniqueID);
- soap_default_xsd__string(soap, &a->ExternalTag);
- soap_default_xsd__string(soap, &a->Description);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveDataUnit(struct soap *soap, const struct KMS_Agent__RetrieveDataUnit *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__string(soap, &a->DataUnitID);
- soap_serialize_xsd__string(soap, &a->ExternalUniqueID);
- soap_serialize_xsd__string(soap, &a->ExternalTag);
- soap_serialize_xsd__string(soap, &a->Description);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveDataUnit(struct soap *soap, const char *tag, int id, const struct KMS_Agent__RetrieveDataUnit *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnit), type))
- return soap->error;
- if (soap_out_xsd__string(soap, "DataUnitID", -1, &a->DataUnitID, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "ExternalUniqueID", -1, &a->ExternalUniqueID, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "ExternalTag", -1, &a->ExternalTag, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "Description", -1, &a->Description, "xsd:string"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnit * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveDataUnit(struct soap *soap, const char *tag, struct KMS_Agent__RetrieveDataUnit *a, const char *type)
-{
- size_t soap_flag_DataUnitID = 1;
- size_t soap_flag_ExternalUniqueID = 1;
- size_t soap_flag_ExternalTag = 1;
- size_t soap_flag_Description = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__RetrieveDataUnit *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnit, sizeof(struct KMS_Agent__RetrieveDataUnit), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__RetrieveDataUnit(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_DataUnitID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "DataUnitID", &a->DataUnitID, "xsd:string"))
- { soap_flag_DataUnitID--;
- continue;
- }
- if (soap_flag_ExternalUniqueID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "ExternalUniqueID", &a->ExternalUniqueID, "xsd:string"))
- { soap_flag_ExternalUniqueID--;
- continue;
- }
- if (soap_flag_ExternalTag && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "ExternalTag", &a->ExternalTag, "xsd:string"))
- { soap_flag_ExternalTag--;
- continue;
- }
- if (soap_flag_Description && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "Description", &a->Description, "xsd:string"))
- { soap_flag_Description--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__RetrieveDataUnit *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnit, 0, sizeof(struct KMS_Agent__RetrieveDataUnit), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveDataUnit(struct soap *soap, const struct KMS_Agent__RetrieveDataUnit *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnit);
- if (soap_out_KMS_Agent__RetrieveDataUnit(soap, tag?tag:"KMS-Agent:RetrieveDataUnit", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnit * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveDataUnit(struct soap *soap, struct KMS_Agent__RetrieveDataUnit *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__RetrieveDataUnit(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveDataUnit * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveDataUnit(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__RetrieveDataUnit(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnit, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveDataUnit);
- if (size)
- *size = sizeof(struct KMS_Agent__RetrieveDataUnit);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveDataUnit[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__RetrieveDataUnit);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__RetrieveDataUnit*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveDataUnit(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__RetrieveDataUnit %p -> %p\n", q, p));
- *(struct KMS_Agent__RetrieveDataUnit*)p = *(struct KMS_Agent__RetrieveDataUnit*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveDataUnitResponse(struct soap *soap, struct KMS_Agent__RetrieveDataUnitResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__DataUnit(soap, &a->DataUnit);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveDataUnitResponse(struct soap *soap, const struct KMS_Agent__RetrieveDataUnitResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_KMS_Agent__DataUnit(soap, &a->DataUnit);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveDataUnitResponse(struct soap *soap, const char *tag, int id, const struct KMS_Agent__RetrieveDataUnitResponse *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitResponse), type))
- return soap->error;
- if (soap_out_KMS_Agent__DataUnit(soap, "DataUnit", -1, &a->DataUnit, "KMS-Agent:DataUnit"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitResponse * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveDataUnitResponse(struct soap *soap, const char *tag, struct KMS_Agent__RetrieveDataUnitResponse *a, const char *type)
-{
- size_t soap_flag_DataUnit = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__RetrieveDataUnitResponse *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitResponse, sizeof(struct KMS_Agent__RetrieveDataUnitResponse), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__RetrieveDataUnitResponse(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_DataUnit && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__DataUnit(soap, "DataUnit", &a->DataUnit, "KMS-Agent:DataUnit"))
- { soap_flag_DataUnit--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__RetrieveDataUnitResponse *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitResponse, 0, sizeof(struct KMS_Agent__RetrieveDataUnitResponse), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_DataUnit > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveDataUnitResponse(struct soap *soap, const struct KMS_Agent__RetrieveDataUnitResponse *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitResponse);
- if (soap_out_KMS_Agent__RetrieveDataUnitResponse(soap, tag?tag:"KMS-Agent:RetrieveDataUnitResponse", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitResponse * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveDataUnitResponse(struct soap *soap, struct KMS_Agent__RetrieveDataUnitResponse *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__RetrieveDataUnitResponse(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveDataUnitResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveDataUnitResponse(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__RetrieveDataUnitResponse(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitResponse, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveDataUnitResponse);
- if (size)
- *size = sizeof(struct KMS_Agent__RetrieveDataUnitResponse);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__RetrieveDataUnitResponse[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__RetrieveDataUnitResponse);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__RetrieveDataUnitResponse*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveDataUnitResponse(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__RetrieveDataUnitResponse %p -> %p\n", q, p));
- *(struct KMS_Agent__RetrieveDataUnitResponse*)p = *(struct KMS_Agent__RetrieveDataUnitResponse*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__CreateDataUnit(struct soap *soap, struct KMS_Agent__CreateDataUnit *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__string(soap, &a->ExternalUniqueID);
- soap_default_xsd__string(soap, &a->ExternalTag);
- soap_default_xsd__string(soap, &a->Description);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__CreateDataUnit(struct soap *soap, const struct KMS_Agent__CreateDataUnit *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__string(soap, &a->ExternalUniqueID);
- soap_serialize_xsd__string(soap, &a->ExternalTag);
- soap_serialize_xsd__string(soap, &a->Description);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__CreateDataUnit(struct soap *soap, const char *tag, int id, const struct KMS_Agent__CreateDataUnit *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnit), type))
- return soap->error;
- if (soap_out_xsd__string(soap, "ExternalUniqueID", -1, &a->ExternalUniqueID, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "ExternalTag", -1, &a->ExternalTag, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "Description", -1, &a->Description, "xsd:string"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__CreateDataUnit * SOAP_FMAC4 soap_in_KMS_Agent__CreateDataUnit(struct soap *soap, const char *tag, struct KMS_Agent__CreateDataUnit *a, const char *type)
-{
- size_t soap_flag_ExternalUniqueID = 1;
- size_t soap_flag_ExternalTag = 1;
- size_t soap_flag_Description = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__CreateDataUnit *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnit, sizeof(struct KMS_Agent__CreateDataUnit), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__CreateDataUnit(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_ExternalUniqueID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "ExternalUniqueID", &a->ExternalUniqueID, "xsd:string"))
- { soap_flag_ExternalUniqueID--;
- continue;
- }
- if (soap_flag_ExternalTag && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "ExternalTag", &a->ExternalTag, "xsd:string"))
- { soap_flag_ExternalTag--;
- continue;
- }
- if (soap_flag_Description && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "Description", &a->Description, "xsd:string"))
- { soap_flag_Description--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__CreateDataUnit *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnit, 0, sizeof(struct KMS_Agent__CreateDataUnit), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__CreateDataUnit(struct soap *soap, const struct KMS_Agent__CreateDataUnit *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnit);
- if (soap_out_KMS_Agent__CreateDataUnit(soap, tag?tag:"KMS-Agent:CreateDataUnit", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__CreateDataUnit * SOAP_FMAC4 soap_get_KMS_Agent__CreateDataUnit(struct soap *soap, struct KMS_Agent__CreateDataUnit *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__CreateDataUnit(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__CreateDataUnit * SOAP_FMAC2 soap_instantiate_KMS_Agent__CreateDataUnit(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__CreateDataUnit(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnit, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__CreateDataUnit);
- if (size)
- *size = sizeof(struct KMS_Agent__CreateDataUnit);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__CreateDataUnit[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__CreateDataUnit);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__CreateDataUnit*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__CreateDataUnit(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__CreateDataUnit %p -> %p\n", q, p));
- *(struct KMS_Agent__CreateDataUnit*)p = *(struct KMS_Agent__CreateDataUnit*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__CreateDataUnitResponse(struct soap *soap, struct KMS_Agent__CreateDataUnitResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__DataUnit(soap, &a->DataUnit);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__CreateDataUnitResponse(struct soap *soap, const struct KMS_Agent__CreateDataUnitResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_KMS_Agent__DataUnit(soap, &a->DataUnit);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__CreateDataUnitResponse(struct soap *soap, const char *tag, int id, const struct KMS_Agent__CreateDataUnitResponse *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnitResponse), type))
- return soap->error;
- if (soap_out_KMS_Agent__DataUnit(soap, "DataUnit", -1, &a->DataUnit, "KMS-Agent:DataUnit"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__CreateDataUnitResponse * SOAP_FMAC4 soap_in_KMS_Agent__CreateDataUnitResponse(struct soap *soap, const char *tag, struct KMS_Agent__CreateDataUnitResponse *a, const char *type)
-{
- size_t soap_flag_DataUnit = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__CreateDataUnitResponse *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnitResponse, sizeof(struct KMS_Agent__CreateDataUnitResponse), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__CreateDataUnitResponse(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_DataUnit && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__DataUnit(soap, "DataUnit", &a->DataUnit, "KMS-Agent:DataUnit"))
- { soap_flag_DataUnit--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__CreateDataUnitResponse *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnitResponse, 0, sizeof(struct KMS_Agent__CreateDataUnitResponse), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_DataUnit > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__CreateDataUnitResponse(struct soap *soap, const struct KMS_Agent__CreateDataUnitResponse *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnitResponse);
- if (soap_out_KMS_Agent__CreateDataUnitResponse(soap, tag?tag:"KMS-Agent:CreateDataUnitResponse", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__CreateDataUnitResponse * SOAP_FMAC4 soap_get_KMS_Agent__CreateDataUnitResponse(struct soap *soap, struct KMS_Agent__CreateDataUnitResponse *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__CreateDataUnitResponse(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__CreateDataUnitResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__CreateDataUnitResponse(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__CreateDataUnitResponse(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnitResponse, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__CreateDataUnitResponse);
- if (size)
- *size = sizeof(struct KMS_Agent__CreateDataUnitResponse);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__CreateDataUnitResponse[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__CreateDataUnitResponse);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__CreateDataUnitResponse*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__CreateDataUnitResponse(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__CreateDataUnitResponse %p -> %p\n", q, p));
- *(struct KMS_Agent__CreateDataUnitResponse*)p = *(struct KMS_Agent__CreateDataUnitResponse*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__ListKeyGroups(struct soap *soap, struct KMS_Agent__ListKeyGroups *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__QueryParameters(soap, &a->QueryParameters);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__ListKeyGroups(struct soap *soap, const struct KMS_Agent__ListKeyGroups *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_KMS_Agent__QueryParameters(soap, &a->QueryParameters);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__ListKeyGroups(struct soap *soap, const char *tag, int id, const struct KMS_Agent__ListKeyGroups *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroups), type))
- return soap->error;
- if (soap_out_KMS_Agent__QueryParameters(soap, "QueryParameters", -1, &a->QueryParameters, "KMS-Agent:QueryParameters"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__ListKeyGroups * SOAP_FMAC4 soap_in_KMS_Agent__ListKeyGroups(struct soap *soap, const char *tag, struct KMS_Agent__ListKeyGroups *a, const char *type)
-{
- size_t soap_flag_QueryParameters = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__ListKeyGroups *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroups, sizeof(struct KMS_Agent__ListKeyGroups), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__ListKeyGroups(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_QueryParameters && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__QueryParameters(soap, "QueryParameters", &a->QueryParameters, "KMS-Agent:QueryParameters"))
- { soap_flag_QueryParameters--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__ListKeyGroups *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroups, 0, sizeof(struct KMS_Agent__ListKeyGroups), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_QueryParameters > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__ListKeyGroups(struct soap *soap, const struct KMS_Agent__ListKeyGroups *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroups);
- if (soap_out_KMS_Agent__ListKeyGroups(soap, tag?tag:"KMS-Agent:ListKeyGroups", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__ListKeyGroups * SOAP_FMAC4 soap_get_KMS_Agent__ListKeyGroups(struct soap *soap, struct KMS_Agent__ListKeyGroups *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__ListKeyGroups(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__ListKeyGroups * SOAP_FMAC2 soap_instantiate_KMS_Agent__ListKeyGroups(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__ListKeyGroups(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroups, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__ListKeyGroups);
- if (size)
- *size = sizeof(struct KMS_Agent__ListKeyGroups);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__ListKeyGroups[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__ListKeyGroups);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__ListKeyGroups*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__ListKeyGroups(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__ListKeyGroups %p -> %p\n", q, p));
- *(struct KMS_Agent__ListKeyGroups*)p = *(struct KMS_Agent__ListKeyGroups*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__ListKeyGroupsResponse(struct soap *soap, struct KMS_Agent__ListKeyGroupsResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_KMS_Agent__ArrayOfKeyGroups(soap, &a->KeyGroups);
- soap_default_xsd__boolean(soap, &a->LastPage);
- soap_default_KMS_Agent__QueryParameters(soap, &a->NextPageQueryParameters);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__ListKeyGroupsResponse(struct soap *soap, const struct KMS_Agent__ListKeyGroupsResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_KMS_Agent__ArrayOfKeyGroups(soap, &a->KeyGroups);
- soap_serialize_KMS_Agent__QueryParameters(soap, &a->NextPageQueryParameters);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__ListKeyGroupsResponse(struct soap *soap, const char *tag, int id, const struct KMS_Agent__ListKeyGroupsResponse *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroupsResponse), type))
- return soap->error;
- if (soap_out_KMS_Agent__ArrayOfKeyGroups(soap, "KeyGroups", -1, &a->KeyGroups, "KMS-Agent:ArrayOfKeyGroups"))
- return soap->error;
- if (soap_out_xsd__boolean(soap, "LastPage", -1, &a->LastPage, "xsd:boolean"))
- return soap->error;
- if (soap_out_KMS_Agent__QueryParameters(soap, "NextPageQueryParameters", -1, &a->NextPageQueryParameters, "KMS-Agent:QueryParameters"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__ListKeyGroupsResponse * SOAP_FMAC4 soap_in_KMS_Agent__ListKeyGroupsResponse(struct soap *soap, const char *tag, struct KMS_Agent__ListKeyGroupsResponse *a, const char *type)
-{
- size_t soap_flag_KeyGroups = 1;
- size_t soap_flag_LastPage = 1;
- size_t soap_flag_NextPageQueryParameters = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__ListKeyGroupsResponse *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroupsResponse, sizeof(struct KMS_Agent__ListKeyGroupsResponse), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__ListKeyGroupsResponse(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_KeyGroups && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__ArrayOfKeyGroups(soap, "KeyGroups", &a->KeyGroups, "KMS-Agent:ArrayOfKeyGroups"))
- { soap_flag_KeyGroups--;
- continue;
- }
- if (soap_flag_LastPage && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__boolean(soap, "LastPage", &a->LastPage, "xsd:boolean"))
- { soap_flag_LastPage--;
- continue;
- }
- if (soap_flag_NextPageQueryParameters && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__QueryParameters(soap, "NextPageQueryParameters", &a->NextPageQueryParameters, "KMS-Agent:QueryParameters"))
- { soap_flag_NextPageQueryParameters--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__ListKeyGroupsResponse *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroupsResponse, 0, sizeof(struct KMS_Agent__ListKeyGroupsResponse), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_LastPage > 0 || soap_flag_NextPageQueryParameters > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__ListKeyGroupsResponse(struct soap *soap, const struct KMS_Agent__ListKeyGroupsResponse *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroupsResponse);
- if (soap_out_KMS_Agent__ListKeyGroupsResponse(soap, tag?tag:"KMS-Agent:ListKeyGroupsResponse", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__ListKeyGroupsResponse * SOAP_FMAC4 soap_get_KMS_Agent__ListKeyGroupsResponse(struct soap *soap, struct KMS_Agent__ListKeyGroupsResponse *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__ListKeyGroupsResponse(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__ListKeyGroupsResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__ListKeyGroupsResponse(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__ListKeyGroupsResponse(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroupsResponse, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__ListKeyGroupsResponse);
- if (size)
- *size = sizeof(struct KMS_Agent__ListKeyGroupsResponse);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__ListKeyGroupsResponse[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__ListKeyGroupsResponse);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__ListKeyGroupsResponse*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__ListKeyGroupsResponse(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__ListKeyGroupsResponse %p -> %p\n", q, p));
- *(struct KMS_Agent__ListKeyGroupsResponse*)p = *(struct KMS_Agent__ListKeyGroupsResponse*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__DataUnit(struct soap *soap, struct KMS_Agent__DataUnit *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__string(soap, &a->DataUnitID);
- soap_default_xsd__string(soap, &a->ExternalUniqueID);
- soap_default_xsd__string(soap, &a->ExternalTag);
- soap_default_xsd__string(soap, &a->Description);
- soap_default_KMS_Agent__DataUnitState(soap, &a->DataUnitState);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__DataUnit(struct soap *soap, const struct KMS_Agent__DataUnit *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__string(soap, &a->DataUnitID);
- soap_serialize_xsd__string(soap, &a->ExternalUniqueID);
- soap_serialize_xsd__string(soap, &a->ExternalTag);
- soap_serialize_xsd__string(soap, &a->Description);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__DataUnit(struct soap *soap, const char *tag, int id, const struct KMS_Agent__DataUnit *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnit), type))
- return soap->error;
- if (soap_out_xsd__string(soap, "DataUnitID", -1, &a->DataUnitID, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "ExternalUniqueID", -1, &a->ExternalUniqueID, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "ExternalTag", -1, &a->ExternalTag, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "Description", -1, &a->Description, "xsd:string"))
- return soap->error;
- if (soap_out_KMS_Agent__DataUnitState(soap, "DataUnitState", -1, &a->DataUnitState, "KMS-Agent:DataUnitState"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__DataUnit * SOAP_FMAC4 soap_in_KMS_Agent__DataUnit(struct soap *soap, const char *tag, struct KMS_Agent__DataUnit *a, const char *type)
-{
- size_t soap_flag_DataUnitID = 1;
- size_t soap_flag_ExternalUniqueID = 1;
- size_t soap_flag_ExternalTag = 1;
- size_t soap_flag_Description = 1;
- size_t soap_flag_DataUnitState = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__DataUnit *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnit, sizeof(struct KMS_Agent__DataUnit), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__DataUnit(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_DataUnitID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "DataUnitID", &a->DataUnitID, "xsd:string"))
- { soap_flag_DataUnitID--;
- continue;
- }
- if (soap_flag_ExternalUniqueID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "ExternalUniqueID", &a->ExternalUniqueID, "xsd:string"))
- { soap_flag_ExternalUniqueID--;
- continue;
- }
- if (soap_flag_ExternalTag && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "ExternalTag", &a->ExternalTag, "xsd:string"))
- { soap_flag_ExternalTag--;
- continue;
- }
- if (soap_flag_Description && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "Description", &a->Description, "xsd:string"))
- { soap_flag_Description--;
- continue;
- }
- if (soap_flag_DataUnitState && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__DataUnitState(soap, "DataUnitState", &a->DataUnitState, "KMS-Agent:DataUnitState"))
- { soap_flag_DataUnitState--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__DataUnit *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnit, 0, sizeof(struct KMS_Agent__DataUnit), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_DataUnitState > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__DataUnit(struct soap *soap, const struct KMS_Agent__DataUnit *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnit);
- if (soap_out_KMS_Agent__DataUnit(soap, tag?tag:"KMS-Agent:DataUnit", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__DataUnit * SOAP_FMAC4 soap_get_KMS_Agent__DataUnit(struct soap *soap, struct KMS_Agent__DataUnit *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__DataUnit(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__DataUnit * SOAP_FMAC2 soap_instantiate_KMS_Agent__DataUnit(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__DataUnit(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnit, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__DataUnit);
- if (size)
- *size = sizeof(struct KMS_Agent__DataUnit);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__DataUnit[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__DataUnit);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__DataUnit*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__DataUnit(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__DataUnit %p -> %p\n", q, p));
- *(struct KMS_Agent__DataUnit*)p = *(struct KMS_Agent__DataUnit*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__ArrayOfKeys(struct soap *soap, struct KMS_Agent__ArrayOfKeys *a)
-{
- (void)soap; /* appease -Wall -Werror */
- a->__size = 0;
- a->__ptr = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__ArrayOfKeys(struct soap *soap, struct KMS_Agent__ArrayOfKeys const*a)
-{
- int i;
- if (a->__ptr && !soap_array_reference(soap, a, (struct soap_array*)&a->__ptr, 1, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeys))
- for (i = 0; i < a->__size; i++)
- { soap_embedded(soap, a->__ptr + i, SOAP_TYPE_KMS_Agent_KMS_Agent__Key);
- soap_serialize_KMS_Agent__Key(soap, a->__ptr + i);
- }
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__ArrayOfKeys(struct soap *soap, const char *tag, int id, const struct KMS_Agent__ArrayOfKeys *a, const char *type)
-{
- int i, n = a->__size;
- id = soap_element_id(soap, tag, id, a, (struct soap_array*)&a->__ptr, 1, type, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeys);
- if (id < 0)
- return soap->error;
- if (soap_element_begin_out(soap, tag, id, type))
- return soap->error;
- for (i = 0; i < n; i++)
- {
- soap_out_KMS_Agent__Key(soap, "item", -1, &a->__ptr[i], "KMS-Agent:Key");
- }
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__ArrayOfKeys * SOAP_FMAC4 soap_in_KMS_Agent__ArrayOfKeys(struct soap *soap, const char *tag, struct KMS_Agent__ArrayOfKeys *a, const char *type)
-{ int i, j;
- struct KMS_Agent__Key *p;
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (*soap->type && soap_match_array(soap, "KMS-Agent:Key") && soap_match_tag(soap, soap->type, type))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- a = (struct KMS_Agent__ArrayOfKeys *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeys, sizeof(struct KMS_Agent__ArrayOfKeys), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__ArrayOfKeys(soap, a);
- if (soap->body && !*soap->href)
- {
- a->__size = soap_getsize(soap->arraySize, soap->arrayOffset, &j);
- if (a->__size >= 0)
- { a->__ptr = (struct KMS_Agent__Key *)soap_malloc(soap, sizeof(struct KMS_Agent__Key) * a->__size);
- for (i = 0; i < a->__size; i++)
- soap_default_KMS_Agent__Key(soap, a->__ptr+i);
- for (i = 0; i < a->__size; i++)
- { soap_peek_element(soap);
- if (soap->position)
- { i = soap->positions[0]-j;
- if (i < 0 || i >= a->__size)
- { soap->error = SOAP_IOB;
- return NULL;
- }
- }
- if (!soap_in_KMS_Agent__Key(soap, NULL, a->__ptr + i, "KMS-Agent:Key"))
- { if (soap->error != SOAP_NO_TAG)
- return NULL;
- soap->error = SOAP_OK;
- break;
- }
- }
- }
- else
- { if (soap_new_block(soap) == NULL)
- return NULL;
- for (a->__size = 0; ; a->__size++)
- { p = (struct KMS_Agent__Key *)soap_push_block(soap, NULL, sizeof(struct KMS_Agent__Key));
- if (!p)
- return NULL;
- soap_default_KMS_Agent__Key(soap, p);
- if (!soap_in_KMS_Agent__Key(soap, NULL, p, "KMS-Agent:Key"))
- { if (soap->error != SOAP_NO_TAG)
- return NULL;
- soap->error = SOAP_OK;
- break;
- }
- }
- soap_pop_block(soap, NULL);
- a->__ptr = (struct KMS_Agent__Key *)soap_malloc(soap, soap->blist->size);
- soap_save_block(soap, NULL, (char*)a->__ptr, 1);
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__ArrayOfKeys *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeys, 0, sizeof(struct KMS_Agent__ArrayOfKeys), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__ArrayOfKeys(struct soap *soap, const struct KMS_Agent__ArrayOfKeys *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, (struct soap_array*)&a->__ptr, 1, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeys);
- if (soap_out_KMS_Agent__ArrayOfKeys(soap, tag?tag:"SOAP-ENC:Array", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__ArrayOfKeys * SOAP_FMAC4 soap_get_KMS_Agent__ArrayOfKeys(struct soap *soap, struct KMS_Agent__ArrayOfKeys *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__ArrayOfKeys(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__ArrayOfKeys * SOAP_FMAC2 soap_instantiate_KMS_Agent__ArrayOfKeys(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__ArrayOfKeys(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeys, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__ArrayOfKeys);
- if (size)
- *size = sizeof(struct KMS_Agent__ArrayOfKeys);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__ArrayOfKeys[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__ArrayOfKeys);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__ArrayOfKeys*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__ArrayOfKeys(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__ArrayOfKeys %p -> %p\n", q, p));
- *(struct KMS_Agent__ArrayOfKeys*)p = *(struct KMS_Agent__ArrayOfKeys*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__Key(struct soap *soap, struct KMS_Agent__Key *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__string(soap, &a->KeyID);
- soap_default_KMS_Agent__KeyState(soap, &a->KeyState);
- soap_default_KMS_Agent__KeyType(soap, &a->KeyType);
- soap_default_xsd__string(soap, &a->KeyGroupID);
- soap_default_xsd__hexBinary(soap, &a->Key);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__Key(struct soap *soap, const struct KMS_Agent__Key *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__string(soap, &a->KeyID);
- soap_serialize_xsd__string(soap, &a->KeyGroupID);
- soap_embedded(soap, &a->Key, SOAP_TYPE_KMS_Agent_xsd__hexBinary);
- soap_serialize_xsd__hexBinary(soap, &a->Key);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__Key(struct soap *soap, const char *tag, int id, const struct KMS_Agent__Key *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__Key), type))
- return soap->error;
- if (soap_out_xsd__string(soap, "KeyID", -1, &a->KeyID, "xsd:string"))
- return soap->error;
- if (soap_out_KMS_Agent__KeyState(soap, "KeyState", -1, &a->KeyState, "KMS-Agent:KeyState"))
- return soap->error;
- if (soap_out_KMS_Agent__KeyType(soap, "KeyType", -1, &a->KeyType, "KMS-Agent:KeyType"))
- return soap->error;
- if (soap_out_xsd__string(soap, "KeyGroupID", -1, &a->KeyGroupID, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__hexBinary(soap, "Key", -1, &a->Key, "xsd:hexBinary"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__Key * SOAP_FMAC4 soap_in_KMS_Agent__Key(struct soap *soap, const char *tag, struct KMS_Agent__Key *a, const char *type)
-{
- size_t soap_flag_KeyID = 1;
- size_t soap_flag_KeyState = 1;
- size_t soap_flag_KeyType = 1;
- size_t soap_flag_KeyGroupID = 1;
- size_t soap_flag_Key = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__Key *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__Key, sizeof(struct KMS_Agent__Key), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__Key(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_KeyID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "KeyID", &a->KeyID, "xsd:string"))
- { soap_flag_KeyID--;
- continue;
- }
- if (soap_flag_KeyState && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__KeyState(soap, "KeyState", &a->KeyState, "KMS-Agent:KeyState"))
- { soap_flag_KeyState--;
- continue;
- }
- if (soap_flag_KeyType && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__KeyType(soap, "KeyType", &a->KeyType, "KMS-Agent:KeyType"))
- { soap_flag_KeyType--;
- continue;
- }
- if (soap_flag_KeyGroupID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "KeyGroupID", &a->KeyGroupID, "xsd:string"))
- { soap_flag_KeyGroupID--;
- continue;
- }
- if (soap_flag_Key && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__hexBinary(soap, "Key", &a->Key, "xsd:hexBinary"))
- { soap_flag_Key--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__Key *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__Key, 0, sizeof(struct KMS_Agent__Key), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_KeyState > 0 || soap_flag_KeyType > 0 || soap_flag_Key > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__Key(struct soap *soap, const struct KMS_Agent__Key *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__Key);
- if (soap_out_KMS_Agent__Key(soap, tag?tag:"KMS-Agent:Key", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__Key * SOAP_FMAC4 soap_get_KMS_Agent__Key(struct soap *soap, struct KMS_Agent__Key *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__Key(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__Key * SOAP_FMAC2 soap_instantiate_KMS_Agent__Key(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__Key(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__Key, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__Key);
- if (size)
- *size = sizeof(struct KMS_Agent__Key);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__Key[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__Key);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__Key*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__Key(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__Key %p -> %p\n", q, p));
- *(struct KMS_Agent__Key*)p = *(struct KMS_Agent__Key*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__ArrayOfKeyGroups(struct soap *soap, struct KMS_Agent__ArrayOfKeyGroups *a)
-{
- (void)soap; /* appease -Wall -Werror */
- a->__size = 0;
- a->__ptr = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__ArrayOfKeyGroups(struct soap *soap, struct KMS_Agent__ArrayOfKeyGroups const*a)
-{
- int i;
- if (a->__ptr && !soap_array_reference(soap, a, (struct soap_array*)&a->__ptr, 1, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeyGroups))
- for (i = 0; i < a->__size; i++)
- { soap_embedded(soap, a->__ptr + i, SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup);
- soap_serialize_KMS_Agent__KeyGroup(soap, a->__ptr + i);
- }
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__ArrayOfKeyGroups(struct soap *soap, const char *tag, int id, const struct KMS_Agent__ArrayOfKeyGroups *a, const char *type)
-{
- int i, n = a->__size;
- id = soap_element_id(soap, tag, id, a, (struct soap_array*)&a->__ptr, 1, type, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeyGroups);
- if (id < 0)
- return soap->error;
- if (soap_element_begin_out(soap, tag, id, type))
- return soap->error;
- for (i = 0; i < n; i++)
- {
- soap_out_KMS_Agent__KeyGroup(soap, "item", -1, &a->__ptr[i], "KMS-Agent:KeyGroup");
- }
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__ArrayOfKeyGroups * SOAP_FMAC4 soap_in_KMS_Agent__ArrayOfKeyGroups(struct soap *soap, const char *tag, struct KMS_Agent__ArrayOfKeyGroups *a, const char *type)
-{ int i, j;
- struct KMS_Agent__KeyGroup *p;
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (*soap->type && soap_match_array(soap, "KMS-Agent:KeyGroup") && soap_match_tag(soap, soap->type, type))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- a = (struct KMS_Agent__ArrayOfKeyGroups *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeyGroups, sizeof(struct KMS_Agent__ArrayOfKeyGroups), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__ArrayOfKeyGroups(soap, a);
- if (soap->body && !*soap->href)
- {
- a->__size = soap_getsize(soap->arraySize, soap->arrayOffset, &j);
- if (a->__size >= 0)
- { a->__ptr = (struct KMS_Agent__KeyGroup *)soap_malloc(soap, sizeof(struct KMS_Agent__KeyGroup) * a->__size);
- for (i = 0; i < a->__size; i++)
- soap_default_KMS_Agent__KeyGroup(soap, a->__ptr+i);
- for (i = 0; i < a->__size; i++)
- { soap_peek_element(soap);
- if (soap->position)
- { i = soap->positions[0]-j;
- if (i < 0 || i >= a->__size)
- { soap->error = SOAP_IOB;
- return NULL;
- }
- }
- if (!soap_in_KMS_Agent__KeyGroup(soap, NULL, a->__ptr + i, "KMS-Agent:KeyGroup"))
- { if (soap->error != SOAP_NO_TAG)
- return NULL;
- soap->error = SOAP_OK;
- break;
- }
- }
- }
- else
- { if (soap_new_block(soap) == NULL)
- return NULL;
- for (a->__size = 0; ; a->__size++)
- { p = (struct KMS_Agent__KeyGroup *)soap_push_block(soap, NULL, sizeof(struct KMS_Agent__KeyGroup));
- if (!p)
- return NULL;
- soap_default_KMS_Agent__KeyGroup(soap, p);
- if (!soap_in_KMS_Agent__KeyGroup(soap, NULL, p, "KMS-Agent:KeyGroup"))
- { if (soap->error != SOAP_NO_TAG)
- return NULL;
- soap->error = SOAP_OK;
- break;
- }
- }
- soap_pop_block(soap, NULL);
- a->__ptr = (struct KMS_Agent__KeyGroup *)soap_malloc(soap, soap->blist->size);
- soap_save_block(soap, NULL, (char*)a->__ptr, 1);
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__ArrayOfKeyGroups *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeyGroups, 0, sizeof(struct KMS_Agent__ArrayOfKeyGroups), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__ArrayOfKeyGroups(struct soap *soap, const struct KMS_Agent__ArrayOfKeyGroups *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, (struct soap_array*)&a->__ptr, 1, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeyGroups);
- if (soap_out_KMS_Agent__ArrayOfKeyGroups(soap, tag?tag:"SOAP-ENC:Array", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__ArrayOfKeyGroups * SOAP_FMAC4 soap_get_KMS_Agent__ArrayOfKeyGroups(struct soap *soap, struct KMS_Agent__ArrayOfKeyGroups *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__ArrayOfKeyGroups(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__ArrayOfKeyGroups * SOAP_FMAC2 soap_instantiate_KMS_Agent__ArrayOfKeyGroups(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__ArrayOfKeyGroups(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeyGroups, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__ArrayOfKeyGroups);
- if (size)
- *size = sizeof(struct KMS_Agent__ArrayOfKeyGroups);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__ArrayOfKeyGroups[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__ArrayOfKeyGroups);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__ArrayOfKeyGroups*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__ArrayOfKeyGroups(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__ArrayOfKeyGroups %p -> %p\n", q, p));
- *(struct KMS_Agent__ArrayOfKeyGroups*)p = *(struct KMS_Agent__ArrayOfKeyGroups*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__KeyGroup(struct soap *soap, struct KMS_Agent__KeyGroup *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__string(soap, &a->KeyGroupID);
- soap_default_xsd__string(soap, &a->Description);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__KeyGroup(struct soap *soap, const struct KMS_Agent__KeyGroup *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__string(soap, &a->KeyGroupID);
- soap_serialize_xsd__string(soap, &a->Description);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__KeyGroup(struct soap *soap, const char *tag, int id, const struct KMS_Agent__KeyGroup *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup), type))
- return soap->error;
- if (soap_out_xsd__string(soap, "KeyGroupID", -1, &a->KeyGroupID, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "Description", -1, &a->Description, "xsd:string"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__KeyGroup * SOAP_FMAC4 soap_in_KMS_Agent__KeyGroup(struct soap *soap, const char *tag, struct KMS_Agent__KeyGroup *a, const char *type)
-{
- size_t soap_flag_KeyGroupID = 1;
- size_t soap_flag_Description = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__KeyGroup *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup, sizeof(struct KMS_Agent__KeyGroup), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__KeyGroup(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_KeyGroupID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "KeyGroupID", &a->KeyGroupID, "xsd:string"))
- { soap_flag_KeyGroupID--;
- continue;
- }
- if (soap_flag_Description && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "Description", &a->Description, "xsd:string"))
- { soap_flag_Description--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__KeyGroup *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup, 0, sizeof(struct KMS_Agent__KeyGroup), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__KeyGroup(struct soap *soap, const struct KMS_Agent__KeyGroup *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup);
- if (soap_out_KMS_Agent__KeyGroup(soap, tag?tag:"KMS-Agent:KeyGroup", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__KeyGroup * SOAP_FMAC4 soap_get_KMS_Agent__KeyGroup(struct soap *soap, struct KMS_Agent__KeyGroup *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__KeyGroup(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__KeyGroup * SOAP_FMAC2 soap_instantiate_KMS_Agent__KeyGroup(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__KeyGroup(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__KeyGroup);
- if (size)
- *size = sizeof(struct KMS_Agent__KeyGroup);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__KeyGroup[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__KeyGroup);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__KeyGroup*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__KeyGroup(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__KeyGroup %p -> %p\n", q, p));
- *(struct KMS_Agent__KeyGroup*)p = *(struct KMS_Agent__KeyGroup*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__QueryParameters(struct soap *soap, struct KMS_Agent__QueryParameters *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__int(soap, &a->NextPageSize);
- soap_default_xsd__string(soap, &a->SortFieldName);
- soap_default_KMS_Agent__SortOrder(soap, &a->SortOrder);
- soap_default_KMS_Agent__ArrayOfFilterParameters(soap, &a->FilterParameters);
- soap_default_xsd__string(soap, &a->PreviousPageLastIDValue);
- soap_default_xsd__string(soap, &a->PreviousPageLastSortFieldValue);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__QueryParameters(struct soap *soap, const struct KMS_Agent__QueryParameters *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__string(soap, &a->SortFieldName);
- soap_serialize_KMS_Agent__ArrayOfFilterParameters(soap, &a->FilterParameters);
- soap_serialize_xsd__string(soap, &a->PreviousPageLastIDValue);
- soap_serialize_xsd__string(soap, &a->PreviousPageLastSortFieldValue);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__QueryParameters(struct soap *soap, const char *tag, int id, const struct KMS_Agent__QueryParameters *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__QueryParameters), type))
- return soap->error;
- if (soap_out_xsd__int(soap, "NextPageSize", -1, &a->NextPageSize, "xsd:int"))
- return soap->error;
- if (soap_out_xsd__string(soap, "SortFieldName", -1, &a->SortFieldName, "xsd:string"))
- return soap->error;
- if (soap_out_KMS_Agent__SortOrder(soap, "SortOrder", -1, &a->SortOrder, "KMS-Agent:SortOrder"))
- return soap->error;
- if (soap_out_KMS_Agent__ArrayOfFilterParameters(soap, "FilterParameters", -1, &a->FilterParameters, "KMS-Agent:ArrayOfFilterParameters"))
- return soap->error;
- if (soap_out_xsd__string(soap, "PreviousPageLastIDValue", -1, &a->PreviousPageLastIDValue, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "PreviousPageLastSortFieldValue", -1, &a->PreviousPageLastSortFieldValue, "xsd:string"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__QueryParameters * SOAP_FMAC4 soap_in_KMS_Agent__QueryParameters(struct soap *soap, const char *tag, struct KMS_Agent__QueryParameters *a, const char *type)
-{
- size_t soap_flag_NextPageSize = 1;
- size_t soap_flag_SortFieldName = 1;
- size_t soap_flag_SortOrder = 1;
- size_t soap_flag_FilterParameters = 1;
- size_t soap_flag_PreviousPageLastIDValue = 1;
- size_t soap_flag_PreviousPageLastSortFieldValue = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__QueryParameters *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__QueryParameters, sizeof(struct KMS_Agent__QueryParameters), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__QueryParameters(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_NextPageSize && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__int(soap, "NextPageSize", &a->NextPageSize, "xsd:int"))
- { soap_flag_NextPageSize--;
- continue;
- }
- if (soap_flag_SortFieldName && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "SortFieldName", &a->SortFieldName, "xsd:string"))
- { soap_flag_SortFieldName--;
- continue;
- }
- if (soap_flag_SortOrder && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__SortOrder(soap, "SortOrder", &a->SortOrder, "KMS-Agent:SortOrder"))
- { soap_flag_SortOrder--;
- continue;
- }
- if (soap_flag_FilterParameters && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__ArrayOfFilterParameters(soap, "FilterParameters", &a->FilterParameters, "KMS-Agent:ArrayOfFilterParameters"))
- { soap_flag_FilterParameters--;
- continue;
- }
- if (soap_flag_PreviousPageLastIDValue && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "PreviousPageLastIDValue", &a->PreviousPageLastIDValue, "xsd:string"))
- { soap_flag_PreviousPageLastIDValue--;
- continue;
- }
- if (soap_flag_PreviousPageLastSortFieldValue && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "PreviousPageLastSortFieldValue", &a->PreviousPageLastSortFieldValue, "xsd:string"))
- { soap_flag_PreviousPageLastSortFieldValue--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__QueryParameters *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__QueryParameters, 0, sizeof(struct KMS_Agent__QueryParameters), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_NextPageSize > 0 || soap_flag_SortOrder > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__QueryParameters(struct soap *soap, const struct KMS_Agent__QueryParameters *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__QueryParameters);
- if (soap_out_KMS_Agent__QueryParameters(soap, tag?tag:"KMS-Agent:QueryParameters", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__QueryParameters * SOAP_FMAC4 soap_get_KMS_Agent__QueryParameters(struct soap *soap, struct KMS_Agent__QueryParameters *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__QueryParameters(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__QueryParameters * SOAP_FMAC2 soap_instantiate_KMS_Agent__QueryParameters(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__QueryParameters(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__QueryParameters, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__QueryParameters);
- if (size)
- *size = sizeof(struct KMS_Agent__QueryParameters);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__QueryParameters[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__QueryParameters);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__QueryParameters*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__QueryParameters(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__QueryParameters %p -> %p\n", q, p));
- *(struct KMS_Agent__QueryParameters*)p = *(struct KMS_Agent__QueryParameters*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__ArrayOfFilterParameters(struct soap *soap, struct KMS_Agent__ArrayOfFilterParameters *a)
-{
- (void)soap; /* appease -Wall -Werror */
- a->__size = 0;
- a->__ptr = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__ArrayOfFilterParameters(struct soap *soap, struct KMS_Agent__ArrayOfFilterParameters const*a)
-{
- int i;
- if (a->__ptr && !soap_array_reference(soap, a, (struct soap_array*)&a->__ptr, 1, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfFilterParameters))
- for (i = 0; i < a->__size; i++)
- { soap_embedded(soap, a->__ptr + i, SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters);
- soap_serialize_KMS_Agent__FilterParameters(soap, a->__ptr + i);
- }
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__ArrayOfFilterParameters(struct soap *soap, const char *tag, int id, const struct KMS_Agent__ArrayOfFilterParameters *a, const char *type)
-{
- int i, n = a->__size;
- id = soap_element_id(soap, tag, id, a, (struct soap_array*)&a->__ptr, 1, type, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfFilterParameters);
- if (id < 0)
- return soap->error;
- if (soap_element_begin_out(soap, tag, id, type))
- return soap->error;
- for (i = 0; i < n; i++)
- {
- soap_out_KMS_Agent__FilterParameters(soap, "item", -1, &a->__ptr[i], "KMS-Agent:FilterParameters");
- }
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__ArrayOfFilterParameters * SOAP_FMAC4 soap_in_KMS_Agent__ArrayOfFilterParameters(struct soap *soap, const char *tag, struct KMS_Agent__ArrayOfFilterParameters *a, const char *type)
-{ int i, j;
- struct KMS_Agent__FilterParameters *p;
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (*soap->type && soap_match_array(soap, "KMS-Agent:FilterParameters") && soap_match_tag(soap, soap->type, type))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- a = (struct KMS_Agent__ArrayOfFilterParameters *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfFilterParameters, sizeof(struct KMS_Agent__ArrayOfFilterParameters), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__ArrayOfFilterParameters(soap, a);
- if (soap->body && !*soap->href)
- {
- a->__size = soap_getsize(soap->arraySize, soap->arrayOffset, &j);
- if (a->__size >= 0)
- { a->__ptr = (struct KMS_Agent__FilterParameters *)soap_malloc(soap, sizeof(struct KMS_Agent__FilterParameters) * a->__size);
- for (i = 0; i < a->__size; i++)
- soap_default_KMS_Agent__FilterParameters(soap, a->__ptr+i);
- for (i = 0; i < a->__size; i++)
- { soap_peek_element(soap);
- if (soap->position)
- { i = soap->positions[0]-j;
- if (i < 0 || i >= a->__size)
- { soap->error = SOAP_IOB;
- return NULL;
- }
- }
- if (!soap_in_KMS_Agent__FilterParameters(soap, NULL, a->__ptr + i, "KMS-Agent:FilterParameters"))
- { if (soap->error != SOAP_NO_TAG)
- return NULL;
- soap->error = SOAP_OK;
- break;
- }
- }
- }
- else
- { if (soap_new_block(soap) == NULL)
- return NULL;
- for (a->__size = 0; ; a->__size++)
- { p = (struct KMS_Agent__FilterParameters *)soap_push_block(soap, NULL, sizeof(struct KMS_Agent__FilterParameters));
- if (!p)
- return NULL;
- soap_default_KMS_Agent__FilterParameters(soap, p);
- if (!soap_in_KMS_Agent__FilterParameters(soap, NULL, p, "KMS-Agent:FilterParameters"))
- { if (soap->error != SOAP_NO_TAG)
- return NULL;
- soap->error = SOAP_OK;
- break;
- }
- }
- soap_pop_block(soap, NULL);
- a->__ptr = (struct KMS_Agent__FilterParameters *)soap_malloc(soap, soap->blist->size);
- soap_save_block(soap, NULL, (char*)a->__ptr, 1);
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__ArrayOfFilterParameters *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfFilterParameters, 0, sizeof(struct KMS_Agent__ArrayOfFilterParameters), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__ArrayOfFilterParameters(struct soap *soap, const struct KMS_Agent__ArrayOfFilterParameters *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, (struct soap_array*)&a->__ptr, 1, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfFilterParameters);
- if (soap_out_KMS_Agent__ArrayOfFilterParameters(soap, tag?tag:"SOAP-ENC:Array", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__ArrayOfFilterParameters * SOAP_FMAC4 soap_get_KMS_Agent__ArrayOfFilterParameters(struct soap *soap, struct KMS_Agent__ArrayOfFilterParameters *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__ArrayOfFilterParameters(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__ArrayOfFilterParameters * SOAP_FMAC2 soap_instantiate_KMS_Agent__ArrayOfFilterParameters(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__ArrayOfFilterParameters(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfFilterParameters, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__ArrayOfFilterParameters);
- if (size)
- *size = sizeof(struct KMS_Agent__ArrayOfFilterParameters);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__ArrayOfFilterParameters[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__ArrayOfFilterParameters);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__ArrayOfFilterParameters*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__ArrayOfFilterParameters(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__ArrayOfFilterParameters %p -> %p\n", q, p));
- *(struct KMS_Agent__ArrayOfFilterParameters*)p = *(struct KMS_Agent__ArrayOfFilterParameters*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__FilterParameters(struct soap *soap, struct KMS_Agent__FilterParameters *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__string(soap, &a->FieldName);
- soap_default_KMS_Agent__FilterOperator(soap, &a->FilterOperator);
- soap_default_xsd__string(soap, &a->FieldValue);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__FilterParameters(struct soap *soap, const struct KMS_Agent__FilterParameters *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__string(soap, &a->FieldName);
- soap_serialize_xsd__string(soap, &a->FieldValue);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__FilterParameters(struct soap *soap, const char *tag, int id, const struct KMS_Agent__FilterParameters *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters), type))
- return soap->error;
- if (soap_out_xsd__string(soap, "FieldName", -1, &a->FieldName, "xsd:string"))
- return soap->error;
- if (soap_out_KMS_Agent__FilterOperator(soap, "FilterOperator", -1, &a->FilterOperator, "KMS-Agent:FilterOperator"))
- return soap->error;
- if (soap_out_xsd__string(soap, "FieldValue", -1, &a->FieldValue, "xsd:string"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__FilterParameters * SOAP_FMAC4 soap_in_KMS_Agent__FilterParameters(struct soap *soap, const char *tag, struct KMS_Agent__FilterParameters *a, const char *type)
-{
- size_t soap_flag_FieldName = 1;
- size_t soap_flag_FilterOperator = 1;
- size_t soap_flag_FieldValue = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Agent__FilterParameters *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters, sizeof(struct KMS_Agent__FilterParameters), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__FilterParameters(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_FieldName && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "FieldName", &a->FieldName, "xsd:string"))
- { soap_flag_FieldName--;
- continue;
- }
- if (soap_flag_FilterOperator && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Agent__FilterOperator(soap, "FilterOperator", &a->FilterOperator, "KMS-Agent:FilterOperator"))
- { soap_flag_FilterOperator--;
- continue;
- }
- if (soap_flag_FieldValue && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "FieldValue", &a->FieldValue, "xsd:string"))
- { soap_flag_FieldValue--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__FilterParameters *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters, 0, sizeof(struct KMS_Agent__FilterParameters), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_FilterOperator > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__FilterParameters(struct soap *soap, const struct KMS_Agent__FilterParameters *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters);
- if (soap_out_KMS_Agent__FilterParameters(soap, tag?tag:"KMS-Agent:FilterParameters", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__FilterParameters * SOAP_FMAC4 soap_get_KMS_Agent__FilterParameters(struct soap *soap, struct KMS_Agent__FilterParameters *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__FilterParameters(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__FilterParameters * SOAP_FMAC2 soap_instantiate_KMS_Agent__FilterParameters(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__FilterParameters(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__FilterParameters);
- if (size)
- *size = sizeof(struct KMS_Agent__FilterParameters);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__FilterParameters[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__FilterParameters);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__FilterParameters*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__FilterParameters(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__FilterParameters %p -> %p\n", q, p));
- *(struct KMS_Agent__FilterParameters*)p = *(struct KMS_Agent__FilterParameters*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__ArrayOfHexBinary(struct soap *soap, struct KMS_Agent__ArrayOfHexBinary *a)
-{
- (void)soap; /* appease -Wall -Werror */
- a->__size = 0;
- a->__ptr = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__ArrayOfHexBinary(struct soap *soap, struct KMS_Agent__ArrayOfHexBinary const*a)
-{
- int i;
- if (a->__ptr && !soap_array_reference(soap, a, (struct soap_array*)&a->__ptr, 1, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfHexBinary))
- for (i = 0; i < a->__size; i++)
- { soap_embedded(soap, a->__ptr + i, SOAP_TYPE_KMS_Agent_xsd__hexBinary);
- soap_serialize_xsd__hexBinary(soap, a->__ptr + i);
- }
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__ArrayOfHexBinary(struct soap *soap, const char *tag, int id, const struct KMS_Agent__ArrayOfHexBinary *a, const char *type)
-{
- int i, n = a->__size;
- id = soap_element_id(soap, tag, id, a, (struct soap_array*)&a->__ptr, 1, type, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfHexBinary);
- if (id < 0)
- return soap->error;
- if (soap_element_begin_out(soap, tag, id, type))
- return soap->error;
- for (i = 0; i < n; i++)
- {
- soap_out_xsd__hexBinary(soap, "item", -1, &a->__ptr[i], "xsd:hexBinary");
- }
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Agent__ArrayOfHexBinary * SOAP_FMAC4 soap_in_KMS_Agent__ArrayOfHexBinary(struct soap *soap, const char *tag, struct KMS_Agent__ArrayOfHexBinary *a, const char *type)
-{ int i, j;
- struct xsd__hexBinary *p;
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (*soap->type && soap_match_array(soap, "xsd:hexBinary") && soap_match_tag(soap, soap->type, type))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- a = (struct KMS_Agent__ArrayOfHexBinary *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfHexBinary, sizeof(struct KMS_Agent__ArrayOfHexBinary), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Agent__ArrayOfHexBinary(soap, a);
- if (soap->body && !*soap->href)
- {
- a->__size = soap_getsize(soap->arraySize, soap->arrayOffset, &j);
- if (a->__size >= 0)
- { a->__ptr = (struct xsd__hexBinary *)soap_malloc(soap, sizeof(struct xsd__hexBinary) * a->__size);
- for (i = 0; i < a->__size; i++)
- soap_default_xsd__hexBinary(soap, a->__ptr+i);
- for (i = 0; i < a->__size; i++)
- { soap_peek_element(soap);
- if (soap->position)
- { i = soap->positions[0]-j;
- if (i < 0 || i >= a->__size)
- { soap->error = SOAP_IOB;
- return NULL;
- }
- }
- if (!soap_in_xsd__hexBinary(soap, NULL, a->__ptr + i, "xsd:hexBinary"))
- { if (soap->error != SOAP_NO_TAG)
- return NULL;
- soap->error = SOAP_OK;
- break;
- }
- }
- }
- else
- { if (soap_new_block(soap) == NULL)
- return NULL;
- for (a->__size = 0; ; a->__size++)
- { p = (struct xsd__hexBinary *)soap_push_block(soap, NULL, sizeof(struct xsd__hexBinary));
- if (!p)
- return NULL;
- soap_default_xsd__hexBinary(soap, p);
- if (!soap_in_xsd__hexBinary(soap, NULL, p, "xsd:hexBinary"))
- { if (soap->error != SOAP_NO_TAG)
- return NULL;
- soap->error = SOAP_OK;
- break;
- }
- }
- soap_pop_block(soap, NULL);
- a->__ptr = (struct xsd__hexBinary *)soap_malloc(soap, soap->blist->size);
- soap_save_block(soap, NULL, (char*)a->__ptr, 1);
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__ArrayOfHexBinary *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfHexBinary, 0, sizeof(struct KMS_Agent__ArrayOfHexBinary), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__ArrayOfHexBinary(struct soap *soap, const struct KMS_Agent__ArrayOfHexBinary *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, (struct soap_array*)&a->__ptr, 1, tag, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfHexBinary);
- if (soap_out_KMS_Agent__ArrayOfHexBinary(soap, tag?tag:"SOAP-ENC:Array", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__ArrayOfHexBinary * SOAP_FMAC4 soap_get_KMS_Agent__ArrayOfHexBinary(struct soap *soap, struct KMS_Agent__ArrayOfHexBinary *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Agent__ArrayOfHexBinary(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Agent__ArrayOfHexBinary * SOAP_FMAC2 soap_instantiate_KMS_Agent__ArrayOfHexBinary(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Agent__ArrayOfHexBinary(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfHexBinary, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__ArrayOfHexBinary);
- if (size)
- *size = sizeof(struct KMS_Agent__ArrayOfHexBinary);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Agent__ArrayOfHexBinary[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Agent__ArrayOfHexBinary);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Agent__ArrayOfHexBinary*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__ArrayOfHexBinary(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Agent__ArrayOfHexBinary %p -> %p\n", q, p));
- *(struct KMS_Agent__ArrayOfHexBinary*)p = *(struct KMS_Agent__ArrayOfHexBinary*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_xsd__hexBinary(struct soap *soap, struct xsd__hexBinary *a)
-{
- (void)soap; /* appease -Wall -Werror */
- a->__size = 0;
- a->__ptr = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_xsd__hexBinary(struct soap *soap, struct xsd__hexBinary const*a)
-{
- if (a->__ptr)
- soap_array_reference(soap, a, (struct soap_array*)&a->__ptr, 1, SOAP_TYPE_KMS_Agent_xsd__hexBinary);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__hexBinary(struct soap *soap, const char *tag, int id, const struct xsd__hexBinary *a, const char *type)
-{
- id = soap_element_id(soap, tag, id, a, (struct soap_array*)&a->__ptr, 1, type, SOAP_TYPE_KMS_Agent_xsd__hexBinary);
- if (id < 0)
- return soap->error;
- if (soap_element_begin_out(soap, tag, id, type))
- return soap->error;
- if (soap_puthex(soap, a->__ptr, a->__size))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct xsd__hexBinary * SOAP_FMAC4 soap_in_xsd__hexBinary(struct soap *soap, const char *tag, struct xsd__hexBinary *a, const char *type)
-{
- (void)type; /* appease -Wall -Werror */
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (*soap->type && soap_match_tag(soap, soap->type, type) && soap_match_tag(soap, soap->type, ":hexBinary"))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- a = (struct xsd__hexBinary *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Agent_xsd__hexBinary, sizeof(struct xsd__hexBinary), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_xsd__hexBinary(soap, a);
- if (soap->body && !*soap->href)
- {
- a->__ptr = soap_gethex(soap, &a->__size);
- if ((!a->__ptr && soap->error) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct xsd__hexBinary *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Agent_xsd__hexBinary, 0, sizeof(struct xsd__hexBinary), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__hexBinary(struct soap *soap, const struct xsd__hexBinary *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, (struct soap_array*)&a->__ptr, 1, tag, SOAP_TYPE_KMS_Agent_xsd__hexBinary);
- if (soap_out_xsd__hexBinary(soap, tag?tag:"SOAP-ENC:Array", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct xsd__hexBinary * SOAP_FMAC4 soap_get_xsd__hexBinary(struct soap *soap, struct xsd__hexBinary *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__hexBinary(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct xsd__hexBinary * SOAP_FMAC2 soap_instantiate_xsd__hexBinary(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_xsd__hexBinary(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Agent_xsd__hexBinary, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct xsd__hexBinary);
- if (size)
- *size = sizeof(struct xsd__hexBinary);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct xsd__hexBinary[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct xsd__hexBinary);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct xsd__hexBinary*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_xsd__hexBinary(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct xsd__hexBinary %p -> %p\n", q, p));
- *(struct xsd__hexBinary*)p = *(struct xsd__hexBinary*)q;
-}
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_KMS_Agent_SOAP_ENV__Reason))
- soap_serialize_SOAP_ENV__Reason(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Reason(struct soap *soap, const char *tag, int id, struct SOAP_ENV__Reason *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_Agent_SOAP_ENV__Reason);
- if (id < 0)
- return soap->error;
- return soap_out_SOAP_ENV__Reason(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Reason(struct soap *soap, const char *tag, struct SOAP_ENV__Reason **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct SOAP_ENV__Reason **)soap_malloc(soap, sizeof(struct SOAP_ENV__Reason *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_SOAP_ENV__Reason(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Reason **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_Agent_SOAP_ENV__Reason, sizeof(struct SOAP_ENV__Reason), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_PointerToSOAP_ENV__Reason);
- if (soap_out_PointerToSOAP_ENV__Reason(soap, tag?tag:"SOAP-ENV:Reason", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToSOAP_ENV__Reason(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_KMS_Agent_SOAP_ENV__Detail))
- soap_serialize_SOAP_ENV__Detail(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Detail(struct soap *soap, const char *tag, int id, struct SOAP_ENV__Detail *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_Agent_SOAP_ENV__Detail);
- if (id < 0)
- return soap->error;
- return soap_out_SOAP_ENV__Detail(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Detail(struct soap *soap, const char *tag, struct SOAP_ENV__Detail **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct SOAP_ENV__Detail **)soap_malloc(soap, sizeof(struct SOAP_ENV__Detail *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_SOAP_ENV__Detail(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Detail **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_Agent_SOAP_ENV__Detail, sizeof(struct SOAP_ENV__Detail), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_PointerToSOAP_ENV__Detail);
- if (soap_out_PointerToSOAP_ENV__Detail(soap, tag?tag:"SOAP-ENV:Detail", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToSOAP_ENV__Detail(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_KMS_Agent_SOAP_ENV__Code))
- soap_serialize_SOAP_ENV__Code(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Code(struct soap *soap, const char *tag, int id, struct SOAP_ENV__Code *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_Agent_SOAP_ENV__Code);
- if (id < 0)
- return soap->error;
- return soap_out_SOAP_ENV__Code(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Code(struct soap *soap, const char *tag, struct SOAP_ENV__Code **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct SOAP_ENV__Code **)soap_malloc(soap, sizeof(struct SOAP_ENV__Code *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_SOAP_ENV__Code(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Code **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_Agent_SOAP_ENV__Code, sizeof(struct SOAP_ENV__Code), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_PointerToSOAP_ENV__Code);
- if (soap_out_PointerToSOAP_ENV__Code(soap, tag?tag:"SOAP-ENV:Code", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToSOAP_ENV__Code(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#endif
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToKMS_Agent__Key(struct soap *soap, struct KMS_Agent__Key *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_KMS_Agent_KMS_Agent__Key))
- soap_serialize_KMS_Agent__Key(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToKMS_Agent__Key(struct soap *soap, const char *tag, int id, struct KMS_Agent__Key *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_Agent_KMS_Agent__Key);
- if (id < 0)
- return soap->error;
- return soap_out_KMS_Agent__Key(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct KMS_Agent__Key ** SOAP_FMAC4 soap_in_PointerToKMS_Agent__Key(struct soap *soap, const char *tag, struct KMS_Agent__Key **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct KMS_Agent__Key **)soap_malloc(soap, sizeof(struct KMS_Agent__Key *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_KMS_Agent__Key(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__Key **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_Agent_KMS_Agent__Key, sizeof(struct KMS_Agent__Key), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToKMS_Agent__Key(struct soap *soap, struct KMS_Agent__Key *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_PointerToKMS_Agent__Key);
- if (soap_out_PointerToKMS_Agent__Key(soap, tag?tag:"KMS-Agent:Key", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__Key ** SOAP_FMAC4 soap_get_PointerToKMS_Agent__Key(struct soap *soap, struct KMS_Agent__Key **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToKMS_Agent__Key(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToKMS_Agent__KeyGroup(struct soap *soap, struct KMS_Agent__KeyGroup *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup))
- soap_serialize_KMS_Agent__KeyGroup(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToKMS_Agent__KeyGroup(struct soap *soap, const char *tag, int id, struct KMS_Agent__KeyGroup *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup);
- if (id < 0)
- return soap->error;
- return soap_out_KMS_Agent__KeyGroup(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct KMS_Agent__KeyGroup ** SOAP_FMAC4 soap_in_PointerToKMS_Agent__KeyGroup(struct soap *soap, const char *tag, struct KMS_Agent__KeyGroup **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct KMS_Agent__KeyGroup **)soap_malloc(soap, sizeof(struct KMS_Agent__KeyGroup *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_KMS_Agent__KeyGroup(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__KeyGroup **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup, sizeof(struct KMS_Agent__KeyGroup), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToKMS_Agent__KeyGroup(struct soap *soap, struct KMS_Agent__KeyGroup *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_PointerToKMS_Agent__KeyGroup);
- if (soap_out_PointerToKMS_Agent__KeyGroup(soap, tag?tag:"KMS-Agent:KeyGroup", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__KeyGroup ** SOAP_FMAC4 soap_get_PointerToKMS_Agent__KeyGroup(struct soap *soap, struct KMS_Agent__KeyGroup **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToKMS_Agent__KeyGroup(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToKMS_Agent__FilterParameters(struct soap *soap, struct KMS_Agent__FilterParameters *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters))
- soap_serialize_KMS_Agent__FilterParameters(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToKMS_Agent__FilterParameters(struct soap *soap, const char *tag, int id, struct KMS_Agent__FilterParameters *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters);
- if (id < 0)
- return soap->error;
- return soap_out_KMS_Agent__FilterParameters(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct KMS_Agent__FilterParameters ** SOAP_FMAC4 soap_in_PointerToKMS_Agent__FilterParameters(struct soap *soap, const char *tag, struct KMS_Agent__FilterParameters **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct KMS_Agent__FilterParameters **)soap_malloc(soap, sizeof(struct KMS_Agent__FilterParameters *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_KMS_Agent__FilterParameters(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct KMS_Agent__FilterParameters **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters, sizeof(struct KMS_Agent__FilterParameters), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToKMS_Agent__FilterParameters(struct soap *soap, struct KMS_Agent__FilterParameters *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_PointerToKMS_Agent__FilterParameters);
- if (soap_out_PointerToKMS_Agent__FilterParameters(soap, tag?tag:"KMS-Agent:FilterParameters", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Agent__FilterParameters ** SOAP_FMAC4 soap_get_PointerToKMS_Agent__FilterParameters(struct soap *soap, struct KMS_Agent__FilterParameters **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToKMS_Agent__FilterParameters(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToxsd__hexBinary(struct soap *soap, struct xsd__hexBinary *const*a)
-{
- if (*a)
- soap_serialize_xsd__hexBinary(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToxsd__hexBinary(struct soap *soap, const char *tag, int id, struct xsd__hexBinary *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, (struct soap_array*)&(*a)->__ptr, 1, type, SOAP_TYPE_KMS_Agent_xsd__hexBinary);
- if (id < 0)
- return soap->error;
- return soap_out_xsd__hexBinary(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct xsd__hexBinary ** SOAP_FMAC4 soap_in_PointerToxsd__hexBinary(struct soap *soap, const char *tag, struct xsd__hexBinary **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct xsd__hexBinary **)soap_malloc(soap, sizeof(struct xsd__hexBinary *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_xsd__hexBinary(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct xsd__hexBinary **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_Agent_xsd__hexBinary, sizeof(struct xsd__hexBinary), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToxsd__hexBinary(struct soap *soap, struct xsd__hexBinary *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_PointerToxsd__hexBinary);
- if (soap_out_PointerToxsd__hexBinary(soap, tag?tag:"SOAP-ENC:Array", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct xsd__hexBinary ** SOAP_FMAC4 soap_get_PointerToxsd__hexBinary(struct soap *soap, struct xsd__hexBinary **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToxsd__hexBinary(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerTounsignedByte(struct soap *soap, unsigned char *const*a)
-{
- soap_reference(soap, *a, SOAP_TYPE_KMS_Agent_unsignedByte);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerTounsignedByte(struct soap *soap, const char *tag, int id, unsigned char *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_Agent_unsignedByte);
- if (id < 0)
- return soap->error;
- return soap_out_unsignedByte(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 unsigned char ** SOAP_FMAC4 soap_in_PointerTounsignedByte(struct soap *soap, const char *tag, unsigned char **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (unsigned char **)soap_malloc(soap, sizeof(unsigned char *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_unsignedByte(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (unsigned char **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_Agent_unsignedByte, sizeof(unsigned char), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerTounsignedByte(struct soap *soap, unsigned char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_PointerTounsignedByte);
- if (soap_out_PointerTounsignedByte(soap, tag?tag:"unsignedByte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 unsigned char ** SOAP_FMAC4 soap_get_PointerTounsignedByte(struct soap *soap, unsigned char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerTounsignedByte(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__duration(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_Agent_xsd__duration);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__duration(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_Agent_xsd__duration, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__duration(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_xsd__duration);
- if (soap_out_xsd__duration(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__duration(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__duration(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__dateTime(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_Agent_xsd__dateTime);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__dateTime(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_Agent_xsd__dateTime, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__dateTime(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_xsd__dateTime);
- if (soap_out_xsd__dateTime(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__dateTime(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__dateTime(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__string(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_Agent_xsd__string);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__string(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_Agent_xsd__string, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__string(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_xsd__string);
- if (soap_out_xsd__string(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__string(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__string(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out__QName(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_Agent__QName);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in__QName(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_Agent__QName, 2, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put__QName(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent__QName);
- if (soap_out__QName(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get__QName(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in__QName(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_string(struct soap *soap, char **a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_string
- *a = SOAP_DEFAULT_string;
-#else
- *a = (char *)0;
-#endif
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_string(struct soap *soap, char *const*a)
-{
- soap_reference(soap, *a, SOAP_TYPE_KMS_Agent_string);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_string(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_Agent_string);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_string(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_Agent_string, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_string(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Agent_string);
- if (soap_out_string(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_string(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_string(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-} // namespace KMS_Agent
-
-
-#if defined(__BORLANDC__)
-#pragma option pop
-#pragma option pop
-#endif
-
-/* End of KMS_AgentC.cpp */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_AgentClient.cpp b/usr/src/lib/libkmsagent/common/SOAP/KMS_AgentClient.cpp
deleted file mode 100644
index 82276f7767..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_AgentClient.cpp
+++ /dev/null
@@ -1,847 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* KMS_AgentClient.cpp
- Generated by gSOAP 2.7.17 from ../gsoapStubs/AgentService/KMS_Agent_SOAP.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#if defined(__BORLANDC__)
-#pragma option push -w-8060
-#pragma option push -w-8004
-#endif
-#include "KMS_AgentH.h"
-
-namespace KMS_Agent {
-
-SOAP_SOURCE_STAMP("@(#) KMS_AgentClient.cpp ver 2.7.17 2010-06-08 19:16:38 GMT")
-
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__ListKeyGroups(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct KMS_Agent__QueryParameters QueryParameters, struct KMS_Agent__ListKeyGroupsResponse &result)
-{ struct KMS_Agent__ListKeyGroups soap_tmp_KMS_Agent__ListKeyGroups;
- soap_tmp_KMS_Agent__ListKeyGroups.QueryParameters = QueryParameters;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_Agent__ListKeyGroups(soap, &soap_tmp_KMS_Agent__ListKeyGroups);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__ListKeyGroups(soap, &soap_tmp_KMS_Agent__ListKeyGroups, "KMS-Agent:ListKeyGroups", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__ListKeyGroups(soap, &soap_tmp_KMS_Agent__ListKeyGroups, "KMS-Agent:ListKeyGroups", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_Agent__ListKeyGroupsResponse(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_Agent__ListKeyGroupsResponse(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__CreateDataUnit(struct soap *soap, const char *soap_endpoint, const char *soap_action, char *ExternalUniqueID, char *ExternalTag, char *Description, struct KMS_Agent__CreateDataUnitResponse &result)
-{ struct KMS_Agent__CreateDataUnit soap_tmp_KMS_Agent__CreateDataUnit;
- soap_tmp_KMS_Agent__CreateDataUnit.ExternalUniqueID = ExternalUniqueID;
- soap_tmp_KMS_Agent__CreateDataUnit.ExternalTag = ExternalTag;
- soap_tmp_KMS_Agent__CreateDataUnit.Description = Description;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_Agent__CreateDataUnit(soap, &soap_tmp_KMS_Agent__CreateDataUnit);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__CreateDataUnit(soap, &soap_tmp_KMS_Agent__CreateDataUnit, "KMS-Agent:CreateDataUnit", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__CreateDataUnit(soap, &soap_tmp_KMS_Agent__CreateDataUnit, "KMS-Agent:CreateDataUnit", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_Agent__CreateDataUnitResponse(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_Agent__CreateDataUnitResponse(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__RetrieveDataUnit(struct soap *soap, const char *soap_endpoint, const char *soap_action, char *DataUnitID, char *ExternalUniqueID, char *ExternalTag, char *Description, struct KMS_Agent__RetrieveDataUnitResponse &result)
-{ struct KMS_Agent__RetrieveDataUnit soap_tmp_KMS_Agent__RetrieveDataUnit;
- soap_tmp_KMS_Agent__RetrieveDataUnit.DataUnitID = DataUnitID;
- soap_tmp_KMS_Agent__RetrieveDataUnit.ExternalUniqueID = ExternalUniqueID;
- soap_tmp_KMS_Agent__RetrieveDataUnit.ExternalTag = ExternalTag;
- soap_tmp_KMS_Agent__RetrieveDataUnit.Description = Description;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_Agent__RetrieveDataUnit(soap, &soap_tmp_KMS_Agent__RetrieveDataUnit);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__RetrieveDataUnit(soap, &soap_tmp_KMS_Agent__RetrieveDataUnit, "KMS-Agent:RetrieveDataUnit", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__RetrieveDataUnit(soap, &soap_tmp_KMS_Agent__RetrieveDataUnit, "KMS-Agent:RetrieveDataUnit", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_Agent__RetrieveDataUnitResponse(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_Agent__RetrieveDataUnitResponse(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap *soap, const char *soap_endpoint, const char *soap_action, char *ExternalUniqueID, char *ExternalTag, char *Description, struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse &result)
-{ struct KMS_Agent__RetrieveDataUnitByExternalUniqueID soap_tmp_KMS_Agent__RetrieveDataUnitByExternalUniqueID;
- soap_tmp_KMS_Agent__RetrieveDataUnitByExternalUniqueID.ExternalUniqueID = ExternalUniqueID;
- soap_tmp_KMS_Agent__RetrieveDataUnitByExternalUniqueID.ExternalTag = ExternalTag;
- soap_tmp_KMS_Agent__RetrieveDataUnitByExternalUniqueID.Description = Description;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, &soap_tmp_KMS_Agent__RetrieveDataUnitByExternalUniqueID);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, &soap_tmp_KMS_Agent__RetrieveDataUnitByExternalUniqueID, "KMS-Agent:RetrieveDataUnitByExternalUniqueID", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, &soap_tmp_KMS_Agent__RetrieveDataUnitByExternalUniqueID, "KMS-Agent:RetrieveDataUnitByExternalUniqueID", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__DisassociateDataUnitKeys(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct KMS_Agent__DataUnit DataUnit, struct KMS_Agent__DisassociateDataUnitKeysResponse &result)
-{ struct KMS_Agent__DisassociateDataUnitKeys soap_tmp_KMS_Agent__DisassociateDataUnitKeys;
- soap_tmp_KMS_Agent__DisassociateDataUnitKeys.DataUnit = DataUnit;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_Agent__DisassociateDataUnitKeys(soap, &soap_tmp_KMS_Agent__DisassociateDataUnitKeys);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__DisassociateDataUnitKeys(soap, &soap_tmp_KMS_Agent__DisassociateDataUnitKeys, "KMS-Agent:DisassociateDataUnitKeys", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__DisassociateDataUnitKeys(soap, &soap_tmp_KMS_Agent__DisassociateDataUnitKeys, "KMS-Agent:DisassociateDataUnitKeys", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_Agent__DisassociateDataUnitKeysResponse(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_Agent__DisassociateDataUnitKeysResponse(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__CreateKey(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct KMS_Agent__DataUnit DataUnit, char *KeyGroupID, struct KMS_Agent__CreateKeyResponse &result)
-{ struct KMS_Agent__CreateKey soap_tmp_KMS_Agent__CreateKey;
- soap_tmp_KMS_Agent__CreateKey.DataUnit = DataUnit;
- soap_tmp_KMS_Agent__CreateKey.KeyGroupID = KeyGroupID;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_Agent__CreateKey(soap, &soap_tmp_KMS_Agent__CreateKey);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__CreateKey(soap, &soap_tmp_KMS_Agent__CreateKey, "KMS-Agent:CreateKey", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__CreateKey(soap, &soap_tmp_KMS_Agent__CreateKey, "KMS-Agent:CreateKey", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_Agent__CreateKeyResponse(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_Agent__CreateKeyResponse(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__CreateKey2(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct KMS_Agent__DataUnit DataUnit, char *KeyGroupID, char *AgentKWKID, struct KMS_Agent__CreateKey2Response &result)
-{ struct KMS_Agent__CreateKey2 soap_tmp_KMS_Agent__CreateKey2;
- soap_tmp_KMS_Agent__CreateKey2.DataUnit = DataUnit;
- soap_tmp_KMS_Agent__CreateKey2.KeyGroupID = KeyGroupID;
- soap_tmp_KMS_Agent__CreateKey2.AgentKWKID = AgentKWKID;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_Agent__CreateKey2(soap, &soap_tmp_KMS_Agent__CreateKey2);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__CreateKey2(soap, &soap_tmp_KMS_Agent__CreateKey2, "KMS-Agent:CreateKey2", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__CreateKey2(soap, &soap_tmp_KMS_Agent__CreateKey2, "KMS-Agent:CreateKey2", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_Agent__CreateKey2Response(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_Agent__CreateKey2Response(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__RetrieveKey(struct soap *soap, const char *soap_endpoint, const char *soap_action, char *KeyID, struct KMS_Agent__DataUnit DataUnit, char *KeyGroupID, struct KMS_Agent__RetrieveKeyResponse &result)
-{ struct KMS_Agent__RetrieveKey soap_tmp_KMS_Agent__RetrieveKey;
- soap_tmp_KMS_Agent__RetrieveKey.KeyID = KeyID;
- soap_tmp_KMS_Agent__RetrieveKey.DataUnit = DataUnit;
- soap_tmp_KMS_Agent__RetrieveKey.KeyGroupID = KeyGroupID;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_Agent__RetrieveKey(soap, &soap_tmp_KMS_Agent__RetrieveKey);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__RetrieveKey(soap, &soap_tmp_KMS_Agent__RetrieveKey, "KMS-Agent:RetrieveKey", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__RetrieveKey(soap, &soap_tmp_KMS_Agent__RetrieveKey, "KMS-Agent:RetrieveKey", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_Agent__RetrieveKeyResponse(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_Agent__RetrieveKeyResponse(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__RetrieveKey2(struct soap *soap, const char *soap_endpoint, const char *soap_action, char *KeyID, struct KMS_Agent__DataUnit DataUnit, char *KeyGroupID, char *AgentKWKID, struct KMS_Agent__RetrieveKey2Response &result)
-{ struct KMS_Agent__RetrieveKey2 soap_tmp_KMS_Agent__RetrieveKey2;
- soap_tmp_KMS_Agent__RetrieveKey2.KeyID = KeyID;
- soap_tmp_KMS_Agent__RetrieveKey2.DataUnit = DataUnit;
- soap_tmp_KMS_Agent__RetrieveKey2.KeyGroupID = KeyGroupID;
- soap_tmp_KMS_Agent__RetrieveKey2.AgentKWKID = AgentKWKID;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_Agent__RetrieveKey2(soap, &soap_tmp_KMS_Agent__RetrieveKey2);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__RetrieveKey2(soap, &soap_tmp_KMS_Agent__RetrieveKey2, "KMS-Agent:RetrieveKey2", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__RetrieveKey2(soap, &soap_tmp_KMS_Agent__RetrieveKey2, "KMS-Agent:RetrieveKey2", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_Agent__RetrieveKey2Response(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_Agent__RetrieveKey2Response(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__RetrieveDataUnitKeys(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct KMS_Agent__DataUnit DataUnit, long PageSize, long PageOffset, char *KeyID, struct KMS_Agent__RetrieveDataUnitKeysResponse &result)
-{ struct KMS_Agent__RetrieveDataUnitKeys soap_tmp_KMS_Agent__RetrieveDataUnitKeys;
- soap_tmp_KMS_Agent__RetrieveDataUnitKeys.DataUnit = DataUnit;
- soap_tmp_KMS_Agent__RetrieveDataUnitKeys.PageSize = PageSize;
- soap_tmp_KMS_Agent__RetrieveDataUnitKeys.PageOffset = PageOffset;
- soap_tmp_KMS_Agent__RetrieveDataUnitKeys.KeyID = KeyID;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_Agent__RetrieveDataUnitKeys(soap, &soap_tmp_KMS_Agent__RetrieveDataUnitKeys);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__RetrieveDataUnitKeys(soap, &soap_tmp_KMS_Agent__RetrieveDataUnitKeys, "KMS-Agent:RetrieveDataUnitKeys", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__RetrieveDataUnitKeys(soap, &soap_tmp_KMS_Agent__RetrieveDataUnitKeys, "KMS-Agent:RetrieveDataUnitKeys", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_Agent__RetrieveDataUnitKeysResponse(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_Agent__RetrieveDataUnitKeysResponse(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__RetrieveDataUnitKeys2(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct KMS_Agent__DataUnit DataUnit, long PageSize, long PageOffset, char *KeyID, char *AgentKWKID, struct KMS_Agent__RetrieveDataUnitKeys2Response &result)
-{ struct KMS_Agent__RetrieveDataUnitKeys2 soap_tmp_KMS_Agent__RetrieveDataUnitKeys2;
- soap_tmp_KMS_Agent__RetrieveDataUnitKeys2.DataUnit = DataUnit;
- soap_tmp_KMS_Agent__RetrieveDataUnitKeys2.PageSize = PageSize;
- soap_tmp_KMS_Agent__RetrieveDataUnitKeys2.PageOffset = PageOffset;
- soap_tmp_KMS_Agent__RetrieveDataUnitKeys2.KeyID = KeyID;
- soap_tmp_KMS_Agent__RetrieveDataUnitKeys2.AgentKWKID = AgentKWKID;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_Agent__RetrieveDataUnitKeys2(soap, &soap_tmp_KMS_Agent__RetrieveDataUnitKeys2);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__RetrieveDataUnitKeys2(soap, &soap_tmp_KMS_Agent__RetrieveDataUnitKeys2, "KMS-Agent:RetrieveDataUnitKeys2", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__RetrieveDataUnitKeys2(soap, &soap_tmp_KMS_Agent__RetrieveDataUnitKeys2, "KMS-Agent:RetrieveDataUnitKeys2", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_Agent__RetrieveDataUnitKeys2Response(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_Agent__RetrieveDataUnitKeys2Response(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__RetrieveProtectAndProcessKey(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct KMS_Agent__DataUnit DataUnit, char *KeyGroupID, struct KMS_Agent__RetrieveProtectAndProcessKeyResponse &result)
-{ struct KMS_Agent__RetrieveProtectAndProcessKey soap_tmp_KMS_Agent__RetrieveProtectAndProcessKey;
- soap_tmp_KMS_Agent__RetrieveProtectAndProcessKey.DataUnit = DataUnit;
- soap_tmp_KMS_Agent__RetrieveProtectAndProcessKey.KeyGroupID = KeyGroupID;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_Agent__RetrieveProtectAndProcessKey(soap, &soap_tmp_KMS_Agent__RetrieveProtectAndProcessKey);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__RetrieveProtectAndProcessKey(soap, &soap_tmp_KMS_Agent__RetrieveProtectAndProcessKey, "KMS-Agent:RetrieveProtectAndProcessKey", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__RetrieveProtectAndProcessKey(soap, &soap_tmp_KMS_Agent__RetrieveProtectAndProcessKey, "KMS-Agent:RetrieveProtectAndProcessKey", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_Agent__RetrieveProtectAndProcessKeyResponse(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_Agent__RetrieveProtectAndProcessKeyResponse(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct KMS_Agent__DataUnit DataUnit, char *KeyGroupID, char *AgentKWKID, struct KMS_Agent__RetrieveProtectAndProcessKey2Response &result)
-{ struct KMS_Agent__RetrieveProtectAndProcessKey2 soap_tmp_KMS_Agent__RetrieveProtectAndProcessKey2;
- soap_tmp_KMS_Agent__RetrieveProtectAndProcessKey2.DataUnit = DataUnit;
- soap_tmp_KMS_Agent__RetrieveProtectAndProcessKey2.KeyGroupID = KeyGroupID;
- soap_tmp_KMS_Agent__RetrieveProtectAndProcessKey2.AgentKWKID = AgentKWKID;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_Agent__RetrieveProtectAndProcessKey2(soap, &soap_tmp_KMS_Agent__RetrieveProtectAndProcessKey2);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__RetrieveProtectAndProcessKey2(soap, &soap_tmp_KMS_Agent__RetrieveProtectAndProcessKey2, "KMS-Agent:RetrieveProtectAndProcessKey2", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__RetrieveProtectAndProcessKey2(soap, &soap_tmp_KMS_Agent__RetrieveProtectAndProcessKey2, "KMS-Agent:RetrieveProtectAndProcessKey2", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_Agent__RetrieveProtectAndProcessKey2Response(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_Agent__RetrieveProtectAndProcessKey2Response(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__CreateAuditLog(struct soap *soap, const char *soap_endpoint, const char *soap_action, enum KMS_Agent__AuditLogRetention Retention, enum KMS_Agent__AuditLogCondition Condition, bool IssueAlert, char *Message, struct KMS_Agent__CreateAuditLogResponse &result)
-{ struct KMS_Agent__CreateAuditLog soap_tmp_KMS_Agent__CreateAuditLog;
- soap_tmp_KMS_Agent__CreateAuditLog.Retention = Retention;
- soap_tmp_KMS_Agent__CreateAuditLog.Condition = Condition;
- soap_tmp_KMS_Agent__CreateAuditLog.IssueAlert = IssueAlert;
- soap_tmp_KMS_Agent__CreateAuditLog.Message = Message;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_Agent__CreateAuditLog(soap, &soap_tmp_KMS_Agent__CreateAuditLog);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__CreateAuditLog(soap, &soap_tmp_KMS_Agent__CreateAuditLog, "KMS-Agent:CreateAuditLog", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__CreateAuditLog(soap, &soap_tmp_KMS_Agent__CreateAuditLog, "KMS-Agent:CreateAuditLog", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_Agent__CreateAuditLogResponse(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_Agent__CreateAuditLogResponse(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__GetAgentKWKPublicKey(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct KMS_Agent__GetAgentKWKPublicKeyResponse &result)
-{ struct KMS_Agent__GetAgentKWKPublicKey soap_tmp_KMS_Agent__GetAgentKWKPublicKey;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_Agent__GetAgentKWKPublicKey(soap, &soap_tmp_KMS_Agent__GetAgentKWKPublicKey);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__GetAgentKWKPublicKey(soap, &soap_tmp_KMS_Agent__GetAgentKWKPublicKey, "KMS-Agent:GetAgentKWKPublicKey", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__GetAgentKWKPublicKey(soap, &soap_tmp_KMS_Agent__GetAgentKWKPublicKey, "KMS-Agent:GetAgentKWKPublicKey", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_Agent__GetAgentKWKPublicKeyResponse(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_Agent__GetAgentKWKPublicKeyResponse(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__RegisterAgentKWK(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct xsd__hexBinary AgentKWK, struct KMS_Agent__RegisterAgentKWKResponse &result)
-{ struct KMS_Agent__RegisterAgentKWK soap_tmp_KMS_Agent__RegisterAgentKWK;
- soap_tmp_KMS_Agent__RegisterAgentKWK.AgentKWK = AgentKWK;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_Agent__RegisterAgentKWK(soap, &soap_tmp_KMS_Agent__RegisterAgentKWK);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__RegisterAgentKWK(soap, &soap_tmp_KMS_Agent__RegisterAgentKWK, "KMS-Agent:RegisterAgentKWK", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Agent__RegisterAgentKWK(soap, &soap_tmp_KMS_Agent__RegisterAgentKWK, "KMS-Agent:RegisterAgentKWK", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_Agent__RegisterAgentKWKResponse(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_Agent__RegisterAgentKWKResponse(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-} // namespace KMS_Agent
-
-
-#if defined(__BORLANDC__)
-#pragma option pop
-#pragma option pop
-#endif
-
-/* End of KMS_AgentClient.cpp */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_AgentH.h b/usr/src/lib/libkmsagent/common/SOAP/KMS_AgentH.h
deleted file mode 100644
index a0d0444b7e..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_AgentH.h
+++ /dev/null
@@ -1,1827 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* KMS_AgentH.h
- Generated by gSOAP 2.7.17 from ../gsoapStubs/AgentService/KMS_Agent_SOAP.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#ifndef KMS_AgentH_H
-#define KMS_AgentH_H
-#include "KMS_AgentStub.h"
-
-namespace KMS_Agent {
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 void SOAP_FMAC4 soap_markelement(struct soap*, const void*, int);
-SOAP_FMAC3 int SOAP_FMAC4 soap_putelement(struct soap*, const void*, const char*, int, int);
-SOAP_FMAC3 void *SOAP_FMAC4 soap_getelement(struct soap*, int*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_putindependent(struct soap*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_getindependent(struct soap*);
-#endif
-SOAP_FMAC3 int SOAP_FMAC4 soap_ignore_element(struct soap*);
-
-SOAP_FMAC3 void * SOAP_FMAC4 soap_instantiate(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_fdelete(struct soap_clist*);
-SOAP_FMAC3 void* SOAP_FMAC4 soap_class_id_enter(struct soap*, const char*, void*, int, size_t, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_byte
-#define SOAP_TYPE_KMS_Agent_byte (3)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_byte(struct soap*, char *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_byte(struct soap*, const char*, int, const char *, const char*);
-SOAP_FMAC3 char * SOAP_FMAC4 soap_in_byte(struct soap*, const char*, char *, const char*);
-
-#define soap_write_byte(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_byte(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_byte(struct soap*, const char *, const char*, const char*);
-
-#define soap_read_byte(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_byte(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char * SOAP_FMAC4 soap_get_byte(struct soap*, char *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_int
-#define SOAP_TYPE_KMS_Agent_int (1)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_int(struct soap*, int *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_int(struct soap*, const char*, int, const int *, const char*);
-SOAP_FMAC3 int * SOAP_FMAC4 soap_in_int(struct soap*, const char*, int *, const char*);
-
-#define soap_write_int(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_int(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_int(struct soap*, const int *, const char*, const char*);
-
-#define soap_read_int(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_int(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 int * SOAP_FMAC4 soap_get_int(struct soap*, int *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_xsd__int
-#define SOAP_TYPE_KMS_Agent_xsd__int (11)
-#endif
-
-#define soap_default_xsd__int(soap, a) soap_default_long(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__int(struct soap*, const char*, int, const long *, const char*);
-SOAP_FMAC3 long * SOAP_FMAC4 soap_in_xsd__int(struct soap*, const char*, long *, const char*);
-
-#define soap_write_xsd__int(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_xsd__int(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__int(struct soap*, const long *, const char*, const char*);
-
-#define soap_read_xsd__int(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_xsd__int(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_get_xsd__int(struct soap*, long *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_long
-#define SOAP_TYPE_KMS_Agent_long (10)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_long(struct soap*, long *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_long(struct soap*, const char*, int, const long *, const char*);
-SOAP_FMAC3 long * SOAP_FMAC4 soap_in_long(struct soap*, const char*, long *, const char*);
-
-#define soap_write_long(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_long(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_long(struct soap*, const long *, const char*, const char*);
-
-#define soap_read_long(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_long(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_get_long(struct soap*, long *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_xsd__long
-#define SOAP_TYPE_KMS_Agent_xsd__long (15)
-#endif
-
-#define soap_default_xsd__long(soap, a) soap_default_LONG64(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__long(struct soap*, const char*, int, const LONG64 *, const char*);
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_in_xsd__long(struct soap*, const char*, LONG64 *, const char*);
-
-#define soap_write_xsd__long(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_xsd__long(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__long(struct soap*, const LONG64 *, const char*, const char*);
-
-#define soap_read_xsd__long(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_xsd__long(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_get_xsd__long(struct soap*, LONG64 *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_LONG64
-#define SOAP_TYPE_KMS_Agent_LONG64 (14)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_LONG64(struct soap*, LONG64 *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_LONG64(struct soap*, const char*, int, const LONG64 *, const char*);
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_in_LONG64(struct soap*, const char*, LONG64 *, const char*);
-
-#define soap_write_LONG64(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_LONG64(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_LONG64(struct soap*, const LONG64 *, const char*, const char*);
-
-#define soap_read_LONG64(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_LONG64(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_get_LONG64(struct soap*, LONG64 *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_xsd__float
-#define SOAP_TYPE_KMS_Agent_xsd__float (9)
-#endif
-
-#define soap_default_xsd__float(soap, a) soap_default_float(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__float(struct soap*, const char*, int, const float *, const char*);
-SOAP_FMAC3 float * SOAP_FMAC4 soap_in_xsd__float(struct soap*, const char*, float *, const char*);
-
-#define soap_write_xsd__float(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_xsd__float(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__float(struct soap*, const float *, const char*, const char*);
-
-#define soap_read_xsd__float(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_xsd__float(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_get_xsd__float(struct soap*, float *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_float
-#define SOAP_TYPE_KMS_Agent_float (8)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_float(struct soap*, float *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_float(struct soap*, const char*, int, const float *, const char*);
-SOAP_FMAC3 float * SOAP_FMAC4 soap_in_float(struct soap*, const char*, float *, const char*);
-
-#define soap_write_float(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_float(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_float(struct soap*, const float *, const char*, const char*);
-
-#define soap_read_float(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_float(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_get_float(struct soap*, float *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_unsignedByte
-#define SOAP_TYPE_KMS_Agent_unsignedByte (20)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_unsignedByte(struct soap*, unsigned char *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_unsignedByte(struct soap*, const char*, int, const unsigned char *, const char*);
-SOAP_FMAC3 unsigned char * SOAP_FMAC4 soap_in_unsignedByte(struct soap*, const char*, unsigned char *, const char*);
-
-#define soap_write_unsignedByte(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_unsignedByte(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_unsignedByte(struct soap*, const unsigned char *, const char*, const char*);
-
-#define soap_read_unsignedByte(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_unsignedByte(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 unsigned char * SOAP_FMAC4 soap_get_unsignedByte(struct soap*, unsigned char *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_unsignedInt
-#define SOAP_TYPE_KMS_Agent_unsignedInt (19)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_unsignedInt(struct soap*, unsigned int *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_unsignedInt(struct soap*, const char*, int, const unsigned int *, const char*);
-SOAP_FMAC3 unsigned int * SOAP_FMAC4 soap_in_unsignedInt(struct soap*, const char*, unsigned int *, const char*);
-
-#define soap_write_unsignedInt(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_unsignedInt(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_unsignedInt(struct soap*, const unsigned int *, const char*, const char*);
-
-#define soap_read_unsignedInt(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_unsignedInt(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 unsigned int * SOAP_FMAC4 soap_get_unsignedInt(struct soap*, unsigned int *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogCondition
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogCondition (41)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__AuditLogCondition(struct soap*, enum KMS_Agent__AuditLogCondition *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__AuditLogCondition(struct soap*, const char*, int, const enum KMS_Agent__AuditLogCondition *, const char*);
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_KMS_Agent__AuditLogCondition2s(struct soap*, enum KMS_Agent__AuditLogCondition);
-SOAP_FMAC3 enum KMS_Agent__AuditLogCondition * SOAP_FMAC4 soap_in_KMS_Agent__AuditLogCondition(struct soap*, const char*, enum KMS_Agent__AuditLogCondition *, const char*);
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2KMS_Agent__AuditLogCondition(struct soap*, const char*, enum KMS_Agent__AuditLogCondition *);
-
-#define soap_write_KMS_Agent__AuditLogCondition(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_KMS_Agent__AuditLogCondition(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__AuditLogCondition(struct soap*, const enum KMS_Agent__AuditLogCondition *, const char*, const char*);
-
-#define soap_read_KMS_Agent__AuditLogCondition(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__AuditLogCondition(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 enum KMS_Agent__AuditLogCondition * SOAP_FMAC4 soap_get_KMS_Agent__AuditLogCondition(struct soap*, enum KMS_Agent__AuditLogCondition *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogRetention
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogRetention (40)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__AuditLogRetention(struct soap*, enum KMS_Agent__AuditLogRetention *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__AuditLogRetention(struct soap*, const char*, int, const enum KMS_Agent__AuditLogRetention *, const char*);
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_KMS_Agent__AuditLogRetention2s(struct soap*, enum KMS_Agent__AuditLogRetention);
-SOAP_FMAC3 enum KMS_Agent__AuditLogRetention * SOAP_FMAC4 soap_in_KMS_Agent__AuditLogRetention(struct soap*, const char*, enum KMS_Agent__AuditLogRetention *, const char*);
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2KMS_Agent__AuditLogRetention(struct soap*, const char*, enum KMS_Agent__AuditLogRetention *);
-
-#define soap_write_KMS_Agent__AuditLogRetention(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_KMS_Agent__AuditLogRetention(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__AuditLogRetention(struct soap*, const enum KMS_Agent__AuditLogRetention *, const char*, const char*);
-
-#define soap_read_KMS_Agent__AuditLogRetention(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__AuditLogRetention(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 enum KMS_Agent__AuditLogRetention * SOAP_FMAC4 soap_get_KMS_Agent__AuditLogRetention(struct soap*, enum KMS_Agent__AuditLogRetention *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnitState
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnitState (32)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__DataUnitState(struct soap*, enum KMS_Agent__DataUnitState *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__DataUnitState(struct soap*, const char*, int, const enum KMS_Agent__DataUnitState *, const char*);
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_KMS_Agent__DataUnitState2s(struct soap*, enum KMS_Agent__DataUnitState);
-SOAP_FMAC3 enum KMS_Agent__DataUnitState * SOAP_FMAC4 soap_in_KMS_Agent__DataUnitState(struct soap*, const char*, enum KMS_Agent__DataUnitState *, const char*);
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2KMS_Agent__DataUnitState(struct soap*, const char*, enum KMS_Agent__DataUnitState *);
-
-#define soap_write_KMS_Agent__DataUnitState(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_KMS_Agent__DataUnitState(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__DataUnitState(struct soap*, const enum KMS_Agent__DataUnitState *, const char*, const char*);
-
-#define soap_read_KMS_Agent__DataUnitState(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__DataUnitState(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 enum KMS_Agent__DataUnitState * SOAP_FMAC4 soap_get_KMS_Agent__DataUnitState(struct soap*, enum KMS_Agent__DataUnitState *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__KeyState
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__KeyState (31)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__KeyState(struct soap*, enum KMS_Agent__KeyState *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__KeyState(struct soap*, const char*, int, const enum KMS_Agent__KeyState *, const char*);
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_KMS_Agent__KeyState2s(struct soap*, enum KMS_Agent__KeyState);
-SOAP_FMAC3 enum KMS_Agent__KeyState * SOAP_FMAC4 soap_in_KMS_Agent__KeyState(struct soap*, const char*, enum KMS_Agent__KeyState *, const char*);
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2KMS_Agent__KeyState(struct soap*, const char*, enum KMS_Agent__KeyState *);
-
-#define soap_write_KMS_Agent__KeyState(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_KMS_Agent__KeyState(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__KeyState(struct soap*, const enum KMS_Agent__KeyState *, const char*, const char*);
-
-#define soap_read_KMS_Agent__KeyState(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__KeyState(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 enum KMS_Agent__KeyState * SOAP_FMAC4 soap_get_KMS_Agent__KeyState(struct soap*, enum KMS_Agent__KeyState *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__KeyType
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__KeyType (30)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__KeyType(struct soap*, enum KMS_Agent__KeyType *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__KeyType(struct soap*, const char*, int, const enum KMS_Agent__KeyType *, const char*);
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_KMS_Agent__KeyType2s(struct soap*, enum KMS_Agent__KeyType);
-SOAP_FMAC3 enum KMS_Agent__KeyType * SOAP_FMAC4 soap_in_KMS_Agent__KeyType(struct soap*, const char*, enum KMS_Agent__KeyType *, const char*);
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2KMS_Agent__KeyType(struct soap*, const char*, enum KMS_Agent__KeyType *);
-
-#define soap_write_KMS_Agent__KeyType(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_KMS_Agent__KeyType(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__KeyType(struct soap*, const enum KMS_Agent__KeyType *, const char*, const char*);
-
-#define soap_read_KMS_Agent__KeyType(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__KeyType(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 enum KMS_Agent__KeyType * SOAP_FMAC4 soap_get_KMS_Agent__KeyType(struct soap*, enum KMS_Agent__KeyType *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__FilterOperator
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__FilterOperator (25)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__FilterOperator(struct soap*, enum KMS_Agent__FilterOperator *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__FilterOperator(struct soap*, const char*, int, const enum KMS_Agent__FilterOperator *, const char*);
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_KMS_Agent__FilterOperator2s(struct soap*, enum KMS_Agent__FilterOperator);
-SOAP_FMAC3 enum KMS_Agent__FilterOperator * SOAP_FMAC4 soap_in_KMS_Agent__FilterOperator(struct soap*, const char*, enum KMS_Agent__FilterOperator *, const char*);
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2KMS_Agent__FilterOperator(struct soap*, const char*, enum KMS_Agent__FilterOperator *);
-
-#define soap_write_KMS_Agent__FilterOperator(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_KMS_Agent__FilterOperator(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__FilterOperator(struct soap*, const enum KMS_Agent__FilterOperator *, const char*, const char*);
-
-#define soap_read_KMS_Agent__FilterOperator(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__FilterOperator(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 enum KMS_Agent__FilterOperator * SOAP_FMAC4 soap_get_KMS_Agent__FilterOperator(struct soap*, enum KMS_Agent__FilterOperator *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__SortOrder
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__SortOrder (24)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__SortOrder(struct soap*, enum KMS_Agent__SortOrder *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__SortOrder(struct soap*, const char*, int, const enum KMS_Agent__SortOrder *, const char*);
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_KMS_Agent__SortOrder2s(struct soap*, enum KMS_Agent__SortOrder);
-SOAP_FMAC3 enum KMS_Agent__SortOrder * SOAP_FMAC4 soap_in_KMS_Agent__SortOrder(struct soap*, const char*, enum KMS_Agent__SortOrder *, const char*);
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2KMS_Agent__SortOrder(struct soap*, const char*, enum KMS_Agent__SortOrder *);
-
-#define soap_write_KMS_Agent__SortOrder(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_KMS_Agent__SortOrder(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__SortOrder(struct soap*, const enum KMS_Agent__SortOrder *, const char*, const char*);
-
-#define soap_read_KMS_Agent__SortOrder(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__SortOrder(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 enum KMS_Agent__SortOrder * SOAP_FMAC4 soap_get_KMS_Agent__SortOrder(struct soap*, enum KMS_Agent__SortOrder *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_xsd__boolean
-#define SOAP_TYPE_KMS_Agent_xsd__boolean (13)
-#endif
-
-#define soap_default_xsd__boolean(soap, a) soap_default_bool(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__boolean(struct soap*, const char*, int, const bool *, const char*);
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_xsd__boolean2s(struct soap*, bool);
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_in_xsd__boolean(struct soap*, const char*, bool *, const char*);
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2xsd__boolean(struct soap*, const char*, bool *);
-
-#define soap_write_xsd__boolean(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_xsd__boolean(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__boolean(struct soap*, const bool *, const char*, const char*);
-
-#define soap_read_xsd__boolean(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_xsd__boolean(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_get_xsd__boolean(struct soap*, bool *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_bool
-#define SOAP_TYPE_KMS_Agent_bool (12)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_bool(struct soap*, bool *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_bool(struct soap*, const char*, int, const bool *, const char*);
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_bool2s(struct soap*, bool);
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_in_bool(struct soap*, const char*, bool *, const char*);
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2bool(struct soap*, const char*, bool *);
-
-#define soap_write_bool(soap, data) ( soap_begin_send(soap) || KMS_Agent::soap_put_bool(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_bool(struct soap*, const bool *, const char*, const char*);
-
-#define soap_read_bool(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_bool(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_get_bool(struct soap*, bool *, const char*, const char*);
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Agent_SOAP_ENV__Fault
-#define SOAP_TYPE_KMS_Agent_SOAP_ENV__Fault (113)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Fault(struct soap*, struct SOAP_ENV__Fault *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Fault(struct soap*, const struct SOAP_ENV__Fault *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Fault(struct soap*, const char*, int, const struct SOAP_ENV__Fault *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_in_SOAP_ENV__Fault(struct soap*, const char*, struct SOAP_ENV__Fault *, const char*);
-
-#define soap_write_SOAP_ENV__Fault(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_SOAP_ENV__Fault(soap, data), 0) || KMS_Agent::soap_put_SOAP_ENV__Fault(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Fault(struct soap*, const struct SOAP_ENV__Fault *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Fault(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_SOAP_ENV__Fault(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_get_SOAP_ENV__Fault(struct soap*, struct SOAP_ENV__Fault *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Fault(soap, n) soap_instantiate_SOAP_ENV__Fault(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Fault(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Fault * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Fault(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Fault(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Agent_SOAP_ENV__Reason
-#define SOAP_TYPE_KMS_Agent_SOAP_ENV__Reason (112)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Reason(struct soap*, const struct SOAP_ENV__Reason *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Reason(struct soap*, const char*, int, const struct SOAP_ENV__Reason *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_in_SOAP_ENV__Reason(struct soap*, const char*, struct SOAP_ENV__Reason *, const char*);
-
-#define soap_write_SOAP_ENV__Reason(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_SOAP_ENV__Reason(soap, data), 0) || KMS_Agent::soap_put_SOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Reason(struct soap*, const struct SOAP_ENV__Reason *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Reason(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_SOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_get_SOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Reason(soap, n) soap_instantiate_SOAP_ENV__Reason(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Reason(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Reason * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Reason(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Reason(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Agent_SOAP_ENV__Detail
-#define SOAP_TYPE_KMS_Agent_SOAP_ENV__Detail (111)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Detail(struct soap*, const struct SOAP_ENV__Detail *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Detail(struct soap*, const char*, int, const struct SOAP_ENV__Detail *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_in_SOAP_ENV__Detail(struct soap*, const char*, struct SOAP_ENV__Detail *, const char*);
-
-#define soap_write_SOAP_ENV__Detail(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_SOAP_ENV__Detail(soap, data), 0) || KMS_Agent::soap_put_SOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Detail(struct soap*, const struct SOAP_ENV__Detail *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Detail(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_SOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_get_SOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Detail(soap, n) soap_instantiate_SOAP_ENV__Detail(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Detail(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Detail * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Detail(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Detail(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Agent_SOAP_ENV__Code
-#define SOAP_TYPE_KMS_Agent_SOAP_ENV__Code (109)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Code(struct soap*, const struct SOAP_ENV__Code *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Code(struct soap*, const char*, int, const struct SOAP_ENV__Code *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_in_SOAP_ENV__Code(struct soap*, const char*, struct SOAP_ENV__Code *, const char*);
-
-#define soap_write_SOAP_ENV__Code(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_SOAP_ENV__Code(soap, data), 0) || KMS_Agent::soap_put_SOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Code(struct soap*, const struct SOAP_ENV__Code *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Code(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_SOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_get_SOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Code(soap, n) soap_instantiate_SOAP_ENV__Code(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Code(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Code * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Code(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Code(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Agent_SOAP_ENV__Header
-#define SOAP_TYPE_KMS_Agent_SOAP_ENV__Header (108)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Header(struct soap*, struct SOAP_ENV__Header *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Header(struct soap*, const struct SOAP_ENV__Header *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Header(struct soap*, const char*, int, const struct SOAP_ENV__Header *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_in_SOAP_ENV__Header(struct soap*, const char*, struct SOAP_ENV__Header *, const char*);
-
-#define soap_write_SOAP_ENV__Header(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_SOAP_ENV__Header(soap, data), 0) || KMS_Agent::soap_put_SOAP_ENV__Header(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Header(struct soap*, const struct SOAP_ENV__Header *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Header(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_SOAP_ENV__Header(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_get_SOAP_ENV__Header(struct soap*, struct SOAP_ENV__Header *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Header(soap, n) soap_instantiate_SOAP_ENV__Header(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Header(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Header * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Header(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Header(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWK
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWK (107)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RegisterAgentKWK(struct soap*, struct KMS_Agent__RegisterAgentKWK *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RegisterAgentKWK(struct soap*, const struct KMS_Agent__RegisterAgentKWK *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RegisterAgentKWK(struct soap*, const char*, int, const struct KMS_Agent__RegisterAgentKWK *, const char*);
-SOAP_FMAC3 struct KMS_Agent__RegisterAgentKWK * SOAP_FMAC4 soap_in_KMS_Agent__RegisterAgentKWK(struct soap*, const char*, struct KMS_Agent__RegisterAgentKWK *, const char*);
-
-#define soap_write_KMS_Agent__RegisterAgentKWK(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__RegisterAgentKWK(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__RegisterAgentKWK(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RegisterAgentKWK(struct soap*, const struct KMS_Agent__RegisterAgentKWK *, const char*, const char*);
-
-#define soap_read_KMS_Agent__RegisterAgentKWK(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__RegisterAgentKWK(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__RegisterAgentKWK * SOAP_FMAC4 soap_get_KMS_Agent__RegisterAgentKWK(struct soap*, struct KMS_Agent__RegisterAgentKWK *, const char*, const char*);
-
-#define soap_new_KMS_Agent__RegisterAgentKWK(soap, n) soap_instantiate_KMS_Agent__RegisterAgentKWK(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__RegisterAgentKWK(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__RegisterAgentKWK * SOAP_FMAC2 soap_instantiate_KMS_Agent__RegisterAgentKWK(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RegisterAgentKWK(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWKResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWKResponse (104)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RegisterAgentKWKResponse(struct soap*, struct KMS_Agent__RegisterAgentKWKResponse *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RegisterAgentKWKResponse(struct soap*, const struct KMS_Agent__RegisterAgentKWKResponse *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RegisterAgentKWKResponse(struct soap*, const char*, int, const struct KMS_Agent__RegisterAgentKWKResponse *, const char*);
-SOAP_FMAC3 struct KMS_Agent__RegisterAgentKWKResponse * SOAP_FMAC4 soap_in_KMS_Agent__RegisterAgentKWKResponse(struct soap*, const char*, struct KMS_Agent__RegisterAgentKWKResponse *, const char*);
-
-#define soap_write_KMS_Agent__RegisterAgentKWKResponse(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__RegisterAgentKWKResponse(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__RegisterAgentKWKResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RegisterAgentKWKResponse(struct soap*, const struct KMS_Agent__RegisterAgentKWKResponse *, const char*, const char*);
-
-#define soap_read_KMS_Agent__RegisterAgentKWKResponse(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__RegisterAgentKWKResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__RegisterAgentKWKResponse * SOAP_FMAC4 soap_get_KMS_Agent__RegisterAgentKWKResponse(struct soap*, struct KMS_Agent__RegisterAgentKWKResponse *, const char*, const char*);
-
-#define soap_new_KMS_Agent__RegisterAgentKWKResponse(soap, n) soap_instantiate_KMS_Agent__RegisterAgentKWKResponse(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__RegisterAgentKWKResponse(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__RegisterAgentKWKResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__RegisterAgentKWKResponse(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RegisterAgentKWKResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKey
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKey (103)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__GetAgentKWKPublicKey(struct soap*, struct KMS_Agent__GetAgentKWKPublicKey *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__GetAgentKWKPublicKey(struct soap*, const struct KMS_Agent__GetAgentKWKPublicKey *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__GetAgentKWKPublicKey(struct soap*, const char*, int, const struct KMS_Agent__GetAgentKWKPublicKey *, const char*);
-SOAP_FMAC3 struct KMS_Agent__GetAgentKWKPublicKey * SOAP_FMAC4 soap_in_KMS_Agent__GetAgentKWKPublicKey(struct soap*, const char*, struct KMS_Agent__GetAgentKWKPublicKey *, const char*);
-
-#define soap_write_KMS_Agent__GetAgentKWKPublicKey(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__GetAgentKWKPublicKey(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__GetAgentKWKPublicKey(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__GetAgentKWKPublicKey(struct soap*, const struct KMS_Agent__GetAgentKWKPublicKey *, const char*, const char*);
-
-#define soap_read_KMS_Agent__GetAgentKWKPublicKey(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__GetAgentKWKPublicKey(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__GetAgentKWKPublicKey * SOAP_FMAC4 soap_get_KMS_Agent__GetAgentKWKPublicKey(struct soap*, struct KMS_Agent__GetAgentKWKPublicKey *, const char*, const char*);
-
-#define soap_new_KMS_Agent__GetAgentKWKPublicKey(soap, n) soap_instantiate_KMS_Agent__GetAgentKWKPublicKey(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__GetAgentKWKPublicKey(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__GetAgentKWKPublicKey * SOAP_FMAC2 soap_instantiate_KMS_Agent__GetAgentKWKPublicKey(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__GetAgentKWKPublicKey(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKeyResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKeyResponse (100)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__GetAgentKWKPublicKeyResponse(struct soap*, struct KMS_Agent__GetAgentKWKPublicKeyResponse *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__GetAgentKWKPublicKeyResponse(struct soap*, const struct KMS_Agent__GetAgentKWKPublicKeyResponse *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__GetAgentKWKPublicKeyResponse(struct soap*, const char*, int, const struct KMS_Agent__GetAgentKWKPublicKeyResponse *, const char*);
-SOAP_FMAC3 struct KMS_Agent__GetAgentKWKPublicKeyResponse * SOAP_FMAC4 soap_in_KMS_Agent__GetAgentKWKPublicKeyResponse(struct soap*, const char*, struct KMS_Agent__GetAgentKWKPublicKeyResponse *, const char*);
-
-#define soap_write_KMS_Agent__GetAgentKWKPublicKeyResponse(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__GetAgentKWKPublicKeyResponse(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__GetAgentKWKPublicKeyResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__GetAgentKWKPublicKeyResponse(struct soap*, const struct KMS_Agent__GetAgentKWKPublicKeyResponse *, const char*, const char*);
-
-#define soap_read_KMS_Agent__GetAgentKWKPublicKeyResponse(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__GetAgentKWKPublicKeyResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__GetAgentKWKPublicKeyResponse * SOAP_FMAC4 soap_get_KMS_Agent__GetAgentKWKPublicKeyResponse(struct soap*, struct KMS_Agent__GetAgentKWKPublicKeyResponse *, const char*, const char*);
-
-#define soap_new_KMS_Agent__GetAgentKWKPublicKeyResponse(soap, n) soap_instantiate_KMS_Agent__GetAgentKWKPublicKeyResponse(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__GetAgentKWKPublicKeyResponse(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__GetAgentKWKPublicKeyResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__GetAgentKWKPublicKeyResponse(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__GetAgentKWKPublicKeyResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLog
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLog (99)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__CreateAuditLog(struct soap*, struct KMS_Agent__CreateAuditLog *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__CreateAuditLog(struct soap*, const struct KMS_Agent__CreateAuditLog *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__CreateAuditLog(struct soap*, const char*, int, const struct KMS_Agent__CreateAuditLog *, const char*);
-SOAP_FMAC3 struct KMS_Agent__CreateAuditLog * SOAP_FMAC4 soap_in_KMS_Agent__CreateAuditLog(struct soap*, const char*, struct KMS_Agent__CreateAuditLog *, const char*);
-
-#define soap_write_KMS_Agent__CreateAuditLog(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__CreateAuditLog(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__CreateAuditLog(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__CreateAuditLog(struct soap*, const struct KMS_Agent__CreateAuditLog *, const char*, const char*);
-
-#define soap_read_KMS_Agent__CreateAuditLog(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__CreateAuditLog(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__CreateAuditLog * SOAP_FMAC4 soap_get_KMS_Agent__CreateAuditLog(struct soap*, struct KMS_Agent__CreateAuditLog *, const char*, const char*);
-
-#define soap_new_KMS_Agent__CreateAuditLog(soap, n) soap_instantiate_KMS_Agent__CreateAuditLog(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__CreateAuditLog(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__CreateAuditLog * SOAP_FMAC2 soap_instantiate_KMS_Agent__CreateAuditLog(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__CreateAuditLog(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLogResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLogResponse (96)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__CreateAuditLogResponse(struct soap*, struct KMS_Agent__CreateAuditLogResponse *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__CreateAuditLogResponse(struct soap*, const struct KMS_Agent__CreateAuditLogResponse *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__CreateAuditLogResponse(struct soap*, const char*, int, const struct KMS_Agent__CreateAuditLogResponse *, const char*);
-SOAP_FMAC3 struct KMS_Agent__CreateAuditLogResponse * SOAP_FMAC4 soap_in_KMS_Agent__CreateAuditLogResponse(struct soap*, const char*, struct KMS_Agent__CreateAuditLogResponse *, const char*);
-
-#define soap_write_KMS_Agent__CreateAuditLogResponse(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__CreateAuditLogResponse(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__CreateAuditLogResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__CreateAuditLogResponse(struct soap*, const struct KMS_Agent__CreateAuditLogResponse *, const char*, const char*);
-
-#define soap_read_KMS_Agent__CreateAuditLogResponse(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__CreateAuditLogResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__CreateAuditLogResponse * SOAP_FMAC4 soap_get_KMS_Agent__CreateAuditLogResponse(struct soap*, struct KMS_Agent__CreateAuditLogResponse *, const char*, const char*);
-
-#define soap_new_KMS_Agent__CreateAuditLogResponse(soap, n) soap_instantiate_KMS_Agent__CreateAuditLogResponse(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__CreateAuditLogResponse(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__CreateAuditLogResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__CreateAuditLogResponse(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__CreateAuditLogResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2 (95)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap*, struct KMS_Agent__RetrieveProtectAndProcessKey2 *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap*, const struct KMS_Agent__RetrieveProtectAndProcessKey2 *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap*, const char*, int, const struct KMS_Agent__RetrieveProtectAndProcessKey2 *, const char*);
-SOAP_FMAC3 struct KMS_Agent__RetrieveProtectAndProcessKey2 * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap*, const char*, struct KMS_Agent__RetrieveProtectAndProcessKey2 *, const char*);
-
-#define soap_write_KMS_Agent__RetrieveProtectAndProcessKey2(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__RetrieveProtectAndProcessKey2(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__RetrieveProtectAndProcessKey2(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap*, const struct KMS_Agent__RetrieveProtectAndProcessKey2 *, const char*, const char*);
-
-#define soap_read_KMS_Agent__RetrieveProtectAndProcessKey2(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__RetrieveProtectAndProcessKey2(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveProtectAndProcessKey2 * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap*, struct KMS_Agent__RetrieveProtectAndProcessKey2 *, const char*, const char*);
-
-#define soap_new_KMS_Agent__RetrieveProtectAndProcessKey2(soap, n) soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKey2(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__RetrieveProtectAndProcessKey2(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveProtectAndProcessKey2 * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2Response
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2Response (92)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveProtectAndProcessKey2Response(struct soap*, struct KMS_Agent__RetrieveProtectAndProcessKey2Response *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveProtectAndProcessKey2Response(struct soap*, const struct KMS_Agent__RetrieveProtectAndProcessKey2Response *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveProtectAndProcessKey2Response(struct soap*, const char*, int, const struct KMS_Agent__RetrieveProtectAndProcessKey2Response *, const char*);
-SOAP_FMAC3 struct KMS_Agent__RetrieveProtectAndProcessKey2Response * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveProtectAndProcessKey2Response(struct soap*, const char*, struct KMS_Agent__RetrieveProtectAndProcessKey2Response *, const char*);
-
-#define soap_write_KMS_Agent__RetrieveProtectAndProcessKey2Response(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__RetrieveProtectAndProcessKey2Response(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__RetrieveProtectAndProcessKey2Response(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveProtectAndProcessKey2Response(struct soap*, const struct KMS_Agent__RetrieveProtectAndProcessKey2Response *, const char*, const char*);
-
-#define soap_read_KMS_Agent__RetrieveProtectAndProcessKey2Response(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__RetrieveProtectAndProcessKey2Response(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveProtectAndProcessKey2Response * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveProtectAndProcessKey2Response(struct soap*, struct KMS_Agent__RetrieveProtectAndProcessKey2Response *, const char*, const char*);
-
-#define soap_new_KMS_Agent__RetrieveProtectAndProcessKey2Response(soap, n) soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKey2Response(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__RetrieveProtectAndProcessKey2Response(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveProtectAndProcessKey2Response * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKey2Response(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveProtectAndProcessKey2Response(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey (91)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveProtectAndProcessKey(struct soap*, struct KMS_Agent__RetrieveProtectAndProcessKey *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveProtectAndProcessKey(struct soap*, const struct KMS_Agent__RetrieveProtectAndProcessKey *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveProtectAndProcessKey(struct soap*, const char*, int, const struct KMS_Agent__RetrieveProtectAndProcessKey *, const char*);
-SOAP_FMAC3 struct KMS_Agent__RetrieveProtectAndProcessKey * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveProtectAndProcessKey(struct soap*, const char*, struct KMS_Agent__RetrieveProtectAndProcessKey *, const char*);
-
-#define soap_write_KMS_Agent__RetrieveProtectAndProcessKey(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__RetrieveProtectAndProcessKey(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__RetrieveProtectAndProcessKey(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveProtectAndProcessKey(struct soap*, const struct KMS_Agent__RetrieveProtectAndProcessKey *, const char*, const char*);
-
-#define soap_read_KMS_Agent__RetrieveProtectAndProcessKey(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__RetrieveProtectAndProcessKey(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveProtectAndProcessKey * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveProtectAndProcessKey(struct soap*, struct KMS_Agent__RetrieveProtectAndProcessKey *, const char*, const char*);
-
-#define soap_new_KMS_Agent__RetrieveProtectAndProcessKey(soap, n) soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKey(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__RetrieveProtectAndProcessKey(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveProtectAndProcessKey * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKey(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveProtectAndProcessKey(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKeyResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKeyResponse (88)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveProtectAndProcessKeyResponse(struct soap*, struct KMS_Agent__RetrieveProtectAndProcessKeyResponse *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveProtectAndProcessKeyResponse(struct soap*, const struct KMS_Agent__RetrieveProtectAndProcessKeyResponse *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveProtectAndProcessKeyResponse(struct soap*, const char*, int, const struct KMS_Agent__RetrieveProtectAndProcessKeyResponse *, const char*);
-SOAP_FMAC3 struct KMS_Agent__RetrieveProtectAndProcessKeyResponse * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveProtectAndProcessKeyResponse(struct soap*, const char*, struct KMS_Agent__RetrieveProtectAndProcessKeyResponse *, const char*);
-
-#define soap_write_KMS_Agent__RetrieveProtectAndProcessKeyResponse(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__RetrieveProtectAndProcessKeyResponse(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__RetrieveProtectAndProcessKeyResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveProtectAndProcessKeyResponse(struct soap*, const struct KMS_Agent__RetrieveProtectAndProcessKeyResponse *, const char*, const char*);
-
-#define soap_read_KMS_Agent__RetrieveProtectAndProcessKeyResponse(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__RetrieveProtectAndProcessKeyResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveProtectAndProcessKeyResponse * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveProtectAndProcessKeyResponse(struct soap*, struct KMS_Agent__RetrieveProtectAndProcessKeyResponse *, const char*, const char*);
-
-#define soap_new_KMS_Agent__RetrieveProtectAndProcessKeyResponse(soap, n) soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKeyResponse(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__RetrieveProtectAndProcessKeyResponse(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveProtectAndProcessKeyResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveProtectAndProcessKeyResponse(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveProtectAndProcessKeyResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2 (87)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveDataUnitKeys2(struct soap*, struct KMS_Agent__RetrieveDataUnitKeys2 *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveDataUnitKeys2(struct soap*, const struct KMS_Agent__RetrieveDataUnitKeys2 *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveDataUnitKeys2(struct soap*, const char*, int, const struct KMS_Agent__RetrieveDataUnitKeys2 *, const char*);
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitKeys2 * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveDataUnitKeys2(struct soap*, const char*, struct KMS_Agent__RetrieveDataUnitKeys2 *, const char*);
-
-#define soap_write_KMS_Agent__RetrieveDataUnitKeys2(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__RetrieveDataUnitKeys2(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__RetrieveDataUnitKeys2(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveDataUnitKeys2(struct soap*, const struct KMS_Agent__RetrieveDataUnitKeys2 *, const char*, const char*);
-
-#define soap_read_KMS_Agent__RetrieveDataUnitKeys2(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__RetrieveDataUnitKeys2(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitKeys2 * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveDataUnitKeys2(struct soap*, struct KMS_Agent__RetrieveDataUnitKeys2 *, const char*, const char*);
-
-#define soap_new_KMS_Agent__RetrieveDataUnitKeys2(soap, n) soap_instantiate_KMS_Agent__RetrieveDataUnitKeys2(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__RetrieveDataUnitKeys2(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveDataUnitKeys2 * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveDataUnitKeys2(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveDataUnitKeys2(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2Response
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2Response (84)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveDataUnitKeys2Response(struct soap*, struct KMS_Agent__RetrieveDataUnitKeys2Response *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveDataUnitKeys2Response(struct soap*, const struct KMS_Agent__RetrieveDataUnitKeys2Response *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveDataUnitKeys2Response(struct soap*, const char*, int, const struct KMS_Agent__RetrieveDataUnitKeys2Response *, const char*);
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitKeys2Response * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveDataUnitKeys2Response(struct soap*, const char*, struct KMS_Agent__RetrieveDataUnitKeys2Response *, const char*);
-
-#define soap_write_KMS_Agent__RetrieveDataUnitKeys2Response(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__RetrieveDataUnitKeys2Response(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__RetrieveDataUnitKeys2Response(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveDataUnitKeys2Response(struct soap*, const struct KMS_Agent__RetrieveDataUnitKeys2Response *, const char*, const char*);
-
-#define soap_read_KMS_Agent__RetrieveDataUnitKeys2Response(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__RetrieveDataUnitKeys2Response(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitKeys2Response * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveDataUnitKeys2Response(struct soap*, struct KMS_Agent__RetrieveDataUnitKeys2Response *, const char*, const char*);
-
-#define soap_new_KMS_Agent__RetrieveDataUnitKeys2Response(soap, n) soap_instantiate_KMS_Agent__RetrieveDataUnitKeys2Response(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__RetrieveDataUnitKeys2Response(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveDataUnitKeys2Response * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveDataUnitKeys2Response(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveDataUnitKeys2Response(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys (83)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveDataUnitKeys(struct soap*, struct KMS_Agent__RetrieveDataUnitKeys *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveDataUnitKeys(struct soap*, const struct KMS_Agent__RetrieveDataUnitKeys *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveDataUnitKeys(struct soap*, const char*, int, const struct KMS_Agent__RetrieveDataUnitKeys *, const char*);
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitKeys * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveDataUnitKeys(struct soap*, const char*, struct KMS_Agent__RetrieveDataUnitKeys *, const char*);
-
-#define soap_write_KMS_Agent__RetrieveDataUnitKeys(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__RetrieveDataUnitKeys(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__RetrieveDataUnitKeys(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveDataUnitKeys(struct soap*, const struct KMS_Agent__RetrieveDataUnitKeys *, const char*, const char*);
-
-#define soap_read_KMS_Agent__RetrieveDataUnitKeys(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__RetrieveDataUnitKeys(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitKeys * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveDataUnitKeys(struct soap*, struct KMS_Agent__RetrieveDataUnitKeys *, const char*, const char*);
-
-#define soap_new_KMS_Agent__RetrieveDataUnitKeys(soap, n) soap_instantiate_KMS_Agent__RetrieveDataUnitKeys(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__RetrieveDataUnitKeys(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveDataUnitKeys * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveDataUnitKeys(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveDataUnitKeys(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeysResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeysResponse (80)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveDataUnitKeysResponse(struct soap*, struct KMS_Agent__RetrieveDataUnitKeysResponse *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveDataUnitKeysResponse(struct soap*, const struct KMS_Agent__RetrieveDataUnitKeysResponse *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveDataUnitKeysResponse(struct soap*, const char*, int, const struct KMS_Agent__RetrieveDataUnitKeysResponse *, const char*);
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitKeysResponse * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveDataUnitKeysResponse(struct soap*, const char*, struct KMS_Agent__RetrieveDataUnitKeysResponse *, const char*);
-
-#define soap_write_KMS_Agent__RetrieveDataUnitKeysResponse(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__RetrieveDataUnitKeysResponse(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__RetrieveDataUnitKeysResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveDataUnitKeysResponse(struct soap*, const struct KMS_Agent__RetrieveDataUnitKeysResponse *, const char*, const char*);
-
-#define soap_read_KMS_Agent__RetrieveDataUnitKeysResponse(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__RetrieveDataUnitKeysResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitKeysResponse * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveDataUnitKeysResponse(struct soap*, struct KMS_Agent__RetrieveDataUnitKeysResponse *, const char*, const char*);
-
-#define soap_new_KMS_Agent__RetrieveDataUnitKeysResponse(soap, n) soap_instantiate_KMS_Agent__RetrieveDataUnitKeysResponse(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__RetrieveDataUnitKeysResponse(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveDataUnitKeysResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveDataUnitKeysResponse(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveDataUnitKeysResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2 (79)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveKey2(struct soap*, struct KMS_Agent__RetrieveKey2 *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveKey2(struct soap*, const struct KMS_Agent__RetrieveKey2 *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveKey2(struct soap*, const char*, int, const struct KMS_Agent__RetrieveKey2 *, const char*);
-SOAP_FMAC3 struct KMS_Agent__RetrieveKey2 * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveKey2(struct soap*, const char*, struct KMS_Agent__RetrieveKey2 *, const char*);
-
-#define soap_write_KMS_Agent__RetrieveKey2(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__RetrieveKey2(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__RetrieveKey2(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveKey2(struct soap*, const struct KMS_Agent__RetrieveKey2 *, const char*, const char*);
-
-#define soap_read_KMS_Agent__RetrieveKey2(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__RetrieveKey2(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveKey2 * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveKey2(struct soap*, struct KMS_Agent__RetrieveKey2 *, const char*, const char*);
-
-#define soap_new_KMS_Agent__RetrieveKey2(soap, n) soap_instantiate_KMS_Agent__RetrieveKey2(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__RetrieveKey2(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveKey2 * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveKey2(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveKey2(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2Response
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2Response (76)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveKey2Response(struct soap*, struct KMS_Agent__RetrieveKey2Response *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveKey2Response(struct soap*, const struct KMS_Agent__RetrieveKey2Response *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveKey2Response(struct soap*, const char*, int, const struct KMS_Agent__RetrieveKey2Response *, const char*);
-SOAP_FMAC3 struct KMS_Agent__RetrieveKey2Response * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveKey2Response(struct soap*, const char*, struct KMS_Agent__RetrieveKey2Response *, const char*);
-
-#define soap_write_KMS_Agent__RetrieveKey2Response(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__RetrieveKey2Response(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__RetrieveKey2Response(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveKey2Response(struct soap*, const struct KMS_Agent__RetrieveKey2Response *, const char*, const char*);
-
-#define soap_read_KMS_Agent__RetrieveKey2Response(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__RetrieveKey2Response(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveKey2Response * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveKey2Response(struct soap*, struct KMS_Agent__RetrieveKey2Response *, const char*, const char*);
-
-#define soap_new_KMS_Agent__RetrieveKey2Response(soap, n) soap_instantiate_KMS_Agent__RetrieveKey2Response(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__RetrieveKey2Response(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveKey2Response * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveKey2Response(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveKey2Response(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey (75)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveKey(struct soap*, struct KMS_Agent__RetrieveKey *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveKey(struct soap*, const struct KMS_Agent__RetrieveKey *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveKey(struct soap*, const char*, int, const struct KMS_Agent__RetrieveKey *, const char*);
-SOAP_FMAC3 struct KMS_Agent__RetrieveKey * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveKey(struct soap*, const char*, struct KMS_Agent__RetrieveKey *, const char*);
-
-#define soap_write_KMS_Agent__RetrieveKey(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__RetrieveKey(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__RetrieveKey(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveKey(struct soap*, const struct KMS_Agent__RetrieveKey *, const char*, const char*);
-
-#define soap_read_KMS_Agent__RetrieveKey(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__RetrieveKey(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveKey * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveKey(struct soap*, struct KMS_Agent__RetrieveKey *, const char*, const char*);
-
-#define soap_new_KMS_Agent__RetrieveKey(soap, n) soap_instantiate_KMS_Agent__RetrieveKey(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__RetrieveKey(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveKey * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveKey(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveKey(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKeyResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKeyResponse (72)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveKeyResponse(struct soap*, struct KMS_Agent__RetrieveKeyResponse *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveKeyResponse(struct soap*, const struct KMS_Agent__RetrieveKeyResponse *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveKeyResponse(struct soap*, const char*, int, const struct KMS_Agent__RetrieveKeyResponse *, const char*);
-SOAP_FMAC3 struct KMS_Agent__RetrieveKeyResponse * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveKeyResponse(struct soap*, const char*, struct KMS_Agent__RetrieveKeyResponse *, const char*);
-
-#define soap_write_KMS_Agent__RetrieveKeyResponse(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__RetrieveKeyResponse(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__RetrieveKeyResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveKeyResponse(struct soap*, const struct KMS_Agent__RetrieveKeyResponse *, const char*, const char*);
-
-#define soap_read_KMS_Agent__RetrieveKeyResponse(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__RetrieveKeyResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveKeyResponse * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveKeyResponse(struct soap*, struct KMS_Agent__RetrieveKeyResponse *, const char*, const char*);
-
-#define soap_new_KMS_Agent__RetrieveKeyResponse(soap, n) soap_instantiate_KMS_Agent__RetrieveKeyResponse(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__RetrieveKeyResponse(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveKeyResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveKeyResponse(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveKeyResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2 (71)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__CreateKey2(struct soap*, struct KMS_Agent__CreateKey2 *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__CreateKey2(struct soap*, const struct KMS_Agent__CreateKey2 *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__CreateKey2(struct soap*, const char*, int, const struct KMS_Agent__CreateKey2 *, const char*);
-SOAP_FMAC3 struct KMS_Agent__CreateKey2 * SOAP_FMAC4 soap_in_KMS_Agent__CreateKey2(struct soap*, const char*, struct KMS_Agent__CreateKey2 *, const char*);
-
-#define soap_write_KMS_Agent__CreateKey2(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__CreateKey2(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__CreateKey2(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__CreateKey2(struct soap*, const struct KMS_Agent__CreateKey2 *, const char*, const char*);
-
-#define soap_read_KMS_Agent__CreateKey2(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__CreateKey2(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__CreateKey2 * SOAP_FMAC4 soap_get_KMS_Agent__CreateKey2(struct soap*, struct KMS_Agent__CreateKey2 *, const char*, const char*);
-
-#define soap_new_KMS_Agent__CreateKey2(soap, n) soap_instantiate_KMS_Agent__CreateKey2(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__CreateKey2(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__CreateKey2 * SOAP_FMAC2 soap_instantiate_KMS_Agent__CreateKey2(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__CreateKey2(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2Response
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2Response (68)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__CreateKey2Response(struct soap*, struct KMS_Agent__CreateKey2Response *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__CreateKey2Response(struct soap*, const struct KMS_Agent__CreateKey2Response *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__CreateKey2Response(struct soap*, const char*, int, const struct KMS_Agent__CreateKey2Response *, const char*);
-SOAP_FMAC3 struct KMS_Agent__CreateKey2Response * SOAP_FMAC4 soap_in_KMS_Agent__CreateKey2Response(struct soap*, const char*, struct KMS_Agent__CreateKey2Response *, const char*);
-
-#define soap_write_KMS_Agent__CreateKey2Response(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__CreateKey2Response(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__CreateKey2Response(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__CreateKey2Response(struct soap*, const struct KMS_Agent__CreateKey2Response *, const char*, const char*);
-
-#define soap_read_KMS_Agent__CreateKey2Response(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__CreateKey2Response(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__CreateKey2Response * SOAP_FMAC4 soap_get_KMS_Agent__CreateKey2Response(struct soap*, struct KMS_Agent__CreateKey2Response *, const char*, const char*);
-
-#define soap_new_KMS_Agent__CreateKey2Response(soap, n) soap_instantiate_KMS_Agent__CreateKey2Response(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__CreateKey2Response(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__CreateKey2Response * SOAP_FMAC2 soap_instantiate_KMS_Agent__CreateKey2Response(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__CreateKey2Response(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey (67)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__CreateKey(struct soap*, struct KMS_Agent__CreateKey *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__CreateKey(struct soap*, const struct KMS_Agent__CreateKey *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__CreateKey(struct soap*, const char*, int, const struct KMS_Agent__CreateKey *, const char*);
-SOAP_FMAC3 struct KMS_Agent__CreateKey * SOAP_FMAC4 soap_in_KMS_Agent__CreateKey(struct soap*, const char*, struct KMS_Agent__CreateKey *, const char*);
-
-#define soap_write_KMS_Agent__CreateKey(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__CreateKey(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__CreateKey(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__CreateKey(struct soap*, const struct KMS_Agent__CreateKey *, const char*, const char*);
-
-#define soap_read_KMS_Agent__CreateKey(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__CreateKey(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__CreateKey * SOAP_FMAC4 soap_get_KMS_Agent__CreateKey(struct soap*, struct KMS_Agent__CreateKey *, const char*, const char*);
-
-#define soap_new_KMS_Agent__CreateKey(soap, n) soap_instantiate_KMS_Agent__CreateKey(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__CreateKey(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__CreateKey * SOAP_FMAC2 soap_instantiate_KMS_Agent__CreateKey(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__CreateKey(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKeyResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKeyResponse (64)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__CreateKeyResponse(struct soap*, struct KMS_Agent__CreateKeyResponse *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__CreateKeyResponse(struct soap*, const struct KMS_Agent__CreateKeyResponse *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__CreateKeyResponse(struct soap*, const char*, int, const struct KMS_Agent__CreateKeyResponse *, const char*);
-SOAP_FMAC3 struct KMS_Agent__CreateKeyResponse * SOAP_FMAC4 soap_in_KMS_Agent__CreateKeyResponse(struct soap*, const char*, struct KMS_Agent__CreateKeyResponse *, const char*);
-
-#define soap_write_KMS_Agent__CreateKeyResponse(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__CreateKeyResponse(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__CreateKeyResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__CreateKeyResponse(struct soap*, const struct KMS_Agent__CreateKeyResponse *, const char*, const char*);
-
-#define soap_read_KMS_Agent__CreateKeyResponse(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__CreateKeyResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__CreateKeyResponse * SOAP_FMAC4 soap_get_KMS_Agent__CreateKeyResponse(struct soap*, struct KMS_Agent__CreateKeyResponse *, const char*, const char*);
-
-#define soap_new_KMS_Agent__CreateKeyResponse(soap, n) soap_instantiate_KMS_Agent__CreateKeyResponse(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__CreateKeyResponse(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__CreateKeyResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__CreateKeyResponse(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__CreateKeyResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeys
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeys (63)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__DisassociateDataUnitKeys(struct soap*, struct KMS_Agent__DisassociateDataUnitKeys *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__DisassociateDataUnitKeys(struct soap*, const struct KMS_Agent__DisassociateDataUnitKeys *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__DisassociateDataUnitKeys(struct soap*, const char*, int, const struct KMS_Agent__DisassociateDataUnitKeys *, const char*);
-SOAP_FMAC3 struct KMS_Agent__DisassociateDataUnitKeys * SOAP_FMAC4 soap_in_KMS_Agent__DisassociateDataUnitKeys(struct soap*, const char*, struct KMS_Agent__DisassociateDataUnitKeys *, const char*);
-
-#define soap_write_KMS_Agent__DisassociateDataUnitKeys(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__DisassociateDataUnitKeys(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__DisassociateDataUnitKeys(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__DisassociateDataUnitKeys(struct soap*, const struct KMS_Agent__DisassociateDataUnitKeys *, const char*, const char*);
-
-#define soap_read_KMS_Agent__DisassociateDataUnitKeys(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__DisassociateDataUnitKeys(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__DisassociateDataUnitKeys * SOAP_FMAC4 soap_get_KMS_Agent__DisassociateDataUnitKeys(struct soap*, struct KMS_Agent__DisassociateDataUnitKeys *, const char*, const char*);
-
-#define soap_new_KMS_Agent__DisassociateDataUnitKeys(soap, n) soap_instantiate_KMS_Agent__DisassociateDataUnitKeys(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__DisassociateDataUnitKeys(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__DisassociateDataUnitKeys * SOAP_FMAC2 soap_instantiate_KMS_Agent__DisassociateDataUnitKeys(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__DisassociateDataUnitKeys(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeysResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeysResponse (58)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__DisassociateDataUnitKeysResponse(struct soap*, struct KMS_Agent__DisassociateDataUnitKeysResponse *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__DisassociateDataUnitKeysResponse(struct soap*, const struct KMS_Agent__DisassociateDataUnitKeysResponse *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__DisassociateDataUnitKeysResponse(struct soap*, const char*, int, const struct KMS_Agent__DisassociateDataUnitKeysResponse *, const char*);
-SOAP_FMAC3 struct KMS_Agent__DisassociateDataUnitKeysResponse * SOAP_FMAC4 soap_in_KMS_Agent__DisassociateDataUnitKeysResponse(struct soap*, const char*, struct KMS_Agent__DisassociateDataUnitKeysResponse *, const char*);
-
-#define soap_write_KMS_Agent__DisassociateDataUnitKeysResponse(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__DisassociateDataUnitKeysResponse(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__DisassociateDataUnitKeysResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__DisassociateDataUnitKeysResponse(struct soap*, const struct KMS_Agent__DisassociateDataUnitKeysResponse *, const char*, const char*);
-
-#define soap_read_KMS_Agent__DisassociateDataUnitKeysResponse(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__DisassociateDataUnitKeysResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__DisassociateDataUnitKeysResponse * SOAP_FMAC4 soap_get_KMS_Agent__DisassociateDataUnitKeysResponse(struct soap*, struct KMS_Agent__DisassociateDataUnitKeysResponse *, const char*, const char*);
-
-#define soap_new_KMS_Agent__DisassociateDataUnitKeysResponse(soap, n) soap_instantiate_KMS_Agent__DisassociateDataUnitKeysResponse(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__DisassociateDataUnitKeysResponse(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__DisassociateDataUnitKeysResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__DisassociateDataUnitKeysResponse(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__DisassociateDataUnitKeysResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueID
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueID (57)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap*, struct KMS_Agent__RetrieveDataUnitByExternalUniqueID *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap*, const struct KMS_Agent__RetrieveDataUnitByExternalUniqueID *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap*, const char*, int, const struct KMS_Agent__RetrieveDataUnitByExternalUniqueID *, const char*);
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitByExternalUniqueID * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap*, const char*, struct KMS_Agent__RetrieveDataUnitByExternalUniqueID *, const char*);
-
-#define soap_write_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap*, const struct KMS_Agent__RetrieveDataUnitByExternalUniqueID *, const char*, const char*);
-
-#define soap_read_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitByExternalUniqueID * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap*, struct KMS_Agent__RetrieveDataUnitByExternalUniqueID *, const char*, const char*);
-
-#define soap_new_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, n) soap_instantiate_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__RetrieveDataUnitByExternalUniqueID(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveDataUnitByExternalUniqueID * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse (54)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(struct soap*, struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(struct soap*, const struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(struct soap*, const char*, int, const struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse *, const char*);
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(struct soap*, const char*, struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse *, const char*);
-
-#define soap_write_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(struct soap*, const struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse *, const char*, const char*);
-
-#define soap_read_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(struct soap*, struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse *, const char*, const char*);
-
-#define soap_new_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(soap, n) soap_instantiate_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnit
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnit (53)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveDataUnit(struct soap*, struct KMS_Agent__RetrieveDataUnit *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveDataUnit(struct soap*, const struct KMS_Agent__RetrieveDataUnit *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveDataUnit(struct soap*, const char*, int, const struct KMS_Agent__RetrieveDataUnit *, const char*);
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnit * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveDataUnit(struct soap*, const char*, struct KMS_Agent__RetrieveDataUnit *, const char*);
-
-#define soap_write_KMS_Agent__RetrieveDataUnit(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__RetrieveDataUnit(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__RetrieveDataUnit(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveDataUnit(struct soap*, const struct KMS_Agent__RetrieveDataUnit *, const char*, const char*);
-
-#define soap_read_KMS_Agent__RetrieveDataUnit(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__RetrieveDataUnit(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnit * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveDataUnit(struct soap*, struct KMS_Agent__RetrieveDataUnit *, const char*, const char*);
-
-#define soap_new_KMS_Agent__RetrieveDataUnit(soap, n) soap_instantiate_KMS_Agent__RetrieveDataUnit(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__RetrieveDataUnit(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveDataUnit * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveDataUnit(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveDataUnit(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitResponse (50)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__RetrieveDataUnitResponse(struct soap*, struct KMS_Agent__RetrieveDataUnitResponse *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__RetrieveDataUnitResponse(struct soap*, const struct KMS_Agent__RetrieveDataUnitResponse *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__RetrieveDataUnitResponse(struct soap*, const char*, int, const struct KMS_Agent__RetrieveDataUnitResponse *, const char*);
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitResponse * SOAP_FMAC4 soap_in_KMS_Agent__RetrieveDataUnitResponse(struct soap*, const char*, struct KMS_Agent__RetrieveDataUnitResponse *, const char*);
-
-#define soap_write_KMS_Agent__RetrieveDataUnitResponse(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__RetrieveDataUnitResponse(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__RetrieveDataUnitResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__RetrieveDataUnitResponse(struct soap*, const struct KMS_Agent__RetrieveDataUnitResponse *, const char*, const char*);
-
-#define soap_read_KMS_Agent__RetrieveDataUnitResponse(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__RetrieveDataUnitResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__RetrieveDataUnitResponse * SOAP_FMAC4 soap_get_KMS_Agent__RetrieveDataUnitResponse(struct soap*, struct KMS_Agent__RetrieveDataUnitResponse *, const char*, const char*);
-
-#define soap_new_KMS_Agent__RetrieveDataUnitResponse(soap, n) soap_instantiate_KMS_Agent__RetrieveDataUnitResponse(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__RetrieveDataUnitResponse(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__RetrieveDataUnitResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__RetrieveDataUnitResponse(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__RetrieveDataUnitResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnit
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnit (49)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__CreateDataUnit(struct soap*, struct KMS_Agent__CreateDataUnit *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__CreateDataUnit(struct soap*, const struct KMS_Agent__CreateDataUnit *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__CreateDataUnit(struct soap*, const char*, int, const struct KMS_Agent__CreateDataUnit *, const char*);
-SOAP_FMAC3 struct KMS_Agent__CreateDataUnit * SOAP_FMAC4 soap_in_KMS_Agent__CreateDataUnit(struct soap*, const char*, struct KMS_Agent__CreateDataUnit *, const char*);
-
-#define soap_write_KMS_Agent__CreateDataUnit(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__CreateDataUnit(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__CreateDataUnit(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__CreateDataUnit(struct soap*, const struct KMS_Agent__CreateDataUnit *, const char*, const char*);
-
-#define soap_read_KMS_Agent__CreateDataUnit(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__CreateDataUnit(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__CreateDataUnit * SOAP_FMAC4 soap_get_KMS_Agent__CreateDataUnit(struct soap*, struct KMS_Agent__CreateDataUnit *, const char*, const char*);
-
-#define soap_new_KMS_Agent__CreateDataUnit(soap, n) soap_instantiate_KMS_Agent__CreateDataUnit(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__CreateDataUnit(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__CreateDataUnit * SOAP_FMAC2 soap_instantiate_KMS_Agent__CreateDataUnit(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__CreateDataUnit(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnitResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnitResponse (46)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__CreateDataUnitResponse(struct soap*, struct KMS_Agent__CreateDataUnitResponse *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__CreateDataUnitResponse(struct soap*, const struct KMS_Agent__CreateDataUnitResponse *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__CreateDataUnitResponse(struct soap*, const char*, int, const struct KMS_Agent__CreateDataUnitResponse *, const char*);
-SOAP_FMAC3 struct KMS_Agent__CreateDataUnitResponse * SOAP_FMAC4 soap_in_KMS_Agent__CreateDataUnitResponse(struct soap*, const char*, struct KMS_Agent__CreateDataUnitResponse *, const char*);
-
-#define soap_write_KMS_Agent__CreateDataUnitResponse(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__CreateDataUnitResponse(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__CreateDataUnitResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__CreateDataUnitResponse(struct soap*, const struct KMS_Agent__CreateDataUnitResponse *, const char*, const char*);
-
-#define soap_read_KMS_Agent__CreateDataUnitResponse(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__CreateDataUnitResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__CreateDataUnitResponse * SOAP_FMAC4 soap_get_KMS_Agent__CreateDataUnitResponse(struct soap*, struct KMS_Agent__CreateDataUnitResponse *, const char*, const char*);
-
-#define soap_new_KMS_Agent__CreateDataUnitResponse(soap, n) soap_instantiate_KMS_Agent__CreateDataUnitResponse(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__CreateDataUnitResponse(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__CreateDataUnitResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__CreateDataUnitResponse(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__CreateDataUnitResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroups
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroups (45)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__ListKeyGroups(struct soap*, struct KMS_Agent__ListKeyGroups *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__ListKeyGroups(struct soap*, const struct KMS_Agent__ListKeyGroups *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__ListKeyGroups(struct soap*, const char*, int, const struct KMS_Agent__ListKeyGroups *, const char*);
-SOAP_FMAC3 struct KMS_Agent__ListKeyGroups * SOAP_FMAC4 soap_in_KMS_Agent__ListKeyGroups(struct soap*, const char*, struct KMS_Agent__ListKeyGroups *, const char*);
-
-#define soap_write_KMS_Agent__ListKeyGroups(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__ListKeyGroups(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__ListKeyGroups(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__ListKeyGroups(struct soap*, const struct KMS_Agent__ListKeyGroups *, const char*, const char*);
-
-#define soap_read_KMS_Agent__ListKeyGroups(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__ListKeyGroups(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__ListKeyGroups * SOAP_FMAC4 soap_get_KMS_Agent__ListKeyGroups(struct soap*, struct KMS_Agent__ListKeyGroups *, const char*, const char*);
-
-#define soap_new_KMS_Agent__ListKeyGroups(soap, n) soap_instantiate_KMS_Agent__ListKeyGroups(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__ListKeyGroups(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__ListKeyGroups * SOAP_FMAC2 soap_instantiate_KMS_Agent__ListKeyGroups(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__ListKeyGroups(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroupsResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroupsResponse (42)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__ListKeyGroupsResponse(struct soap*, struct KMS_Agent__ListKeyGroupsResponse *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__ListKeyGroupsResponse(struct soap*, const struct KMS_Agent__ListKeyGroupsResponse *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__ListKeyGroupsResponse(struct soap*, const char*, int, const struct KMS_Agent__ListKeyGroupsResponse *, const char*);
-SOAP_FMAC3 struct KMS_Agent__ListKeyGroupsResponse * SOAP_FMAC4 soap_in_KMS_Agent__ListKeyGroupsResponse(struct soap*, const char*, struct KMS_Agent__ListKeyGroupsResponse *, const char*);
-
-#define soap_write_KMS_Agent__ListKeyGroupsResponse(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__ListKeyGroupsResponse(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__ListKeyGroupsResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__ListKeyGroupsResponse(struct soap*, const struct KMS_Agent__ListKeyGroupsResponse *, const char*, const char*);
-
-#define soap_read_KMS_Agent__ListKeyGroupsResponse(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__ListKeyGroupsResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__ListKeyGroupsResponse * SOAP_FMAC4 soap_get_KMS_Agent__ListKeyGroupsResponse(struct soap*, struct KMS_Agent__ListKeyGroupsResponse *, const char*, const char*);
-
-#define soap_new_KMS_Agent__ListKeyGroupsResponse(soap, n) soap_instantiate_KMS_Agent__ListKeyGroupsResponse(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__ListKeyGroupsResponse(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__ListKeyGroupsResponse * SOAP_FMAC2 soap_instantiate_KMS_Agent__ListKeyGroupsResponse(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__ListKeyGroupsResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnit
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnit (39)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__DataUnit(struct soap*, struct KMS_Agent__DataUnit *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__DataUnit(struct soap*, const struct KMS_Agent__DataUnit *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__DataUnit(struct soap*, const char*, int, const struct KMS_Agent__DataUnit *, const char*);
-SOAP_FMAC3 struct KMS_Agent__DataUnit * SOAP_FMAC4 soap_in_KMS_Agent__DataUnit(struct soap*, const char*, struct KMS_Agent__DataUnit *, const char*);
-
-#define soap_write_KMS_Agent__DataUnit(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__DataUnit(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__DataUnit(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__DataUnit(struct soap*, const struct KMS_Agent__DataUnit *, const char*, const char*);
-
-#define soap_read_KMS_Agent__DataUnit(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__DataUnit(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__DataUnit * SOAP_FMAC4 soap_get_KMS_Agent__DataUnit(struct soap*, struct KMS_Agent__DataUnit *, const char*, const char*);
-
-#define soap_new_KMS_Agent__DataUnit(soap, n) soap_instantiate_KMS_Agent__DataUnit(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__DataUnit(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__DataUnit * SOAP_FMAC2 soap_instantiate_KMS_Agent__DataUnit(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__DataUnit(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeys
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeys (37)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__ArrayOfKeys(struct soap*, struct KMS_Agent__ArrayOfKeys *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__ArrayOfKeys(struct soap*, struct KMS_Agent__ArrayOfKeys const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__ArrayOfKeys(struct soap*, const char*, int, const struct KMS_Agent__ArrayOfKeys *, const char*);
-SOAP_FMAC3 struct KMS_Agent__ArrayOfKeys * SOAP_FMAC4 soap_in_KMS_Agent__ArrayOfKeys(struct soap*, const char*, struct KMS_Agent__ArrayOfKeys *, const char*);
-
-#define soap_write_KMS_Agent__ArrayOfKeys(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__ArrayOfKeys(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__ArrayOfKeys(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__ArrayOfKeys(struct soap*, const struct KMS_Agent__ArrayOfKeys *, const char*, const char*);
-
-#define soap_read_KMS_Agent__ArrayOfKeys(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__ArrayOfKeys(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__ArrayOfKeys * SOAP_FMAC4 soap_get_KMS_Agent__ArrayOfKeys(struct soap*, struct KMS_Agent__ArrayOfKeys *, const char*, const char*);
-
-#define soap_new_KMS_Agent__ArrayOfKeys(soap, n) soap_instantiate_KMS_Agent__ArrayOfKeys(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__ArrayOfKeys(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__ArrayOfKeys * SOAP_FMAC2 soap_instantiate_KMS_Agent__ArrayOfKeys(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__ArrayOfKeys(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__Key
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__Key (36)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__Key(struct soap*, struct KMS_Agent__Key *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__Key(struct soap*, const struct KMS_Agent__Key *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__Key(struct soap*, const char*, int, const struct KMS_Agent__Key *, const char*);
-SOAP_FMAC3 struct KMS_Agent__Key * SOAP_FMAC4 soap_in_KMS_Agent__Key(struct soap*, const char*, struct KMS_Agent__Key *, const char*);
-
-#define soap_write_KMS_Agent__Key(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__Key(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__Key(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__Key(struct soap*, const struct KMS_Agent__Key *, const char*, const char*);
-
-#define soap_read_KMS_Agent__Key(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__Key(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__Key * SOAP_FMAC4 soap_get_KMS_Agent__Key(struct soap*, struct KMS_Agent__Key *, const char*, const char*);
-
-#define soap_new_KMS_Agent__Key(soap, n) soap_instantiate_KMS_Agent__Key(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__Key(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__Key * SOAP_FMAC2 soap_instantiate_KMS_Agent__Key(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__Key(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeyGroups
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeyGroups (34)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__ArrayOfKeyGroups(struct soap*, struct KMS_Agent__ArrayOfKeyGroups *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__ArrayOfKeyGroups(struct soap*, struct KMS_Agent__ArrayOfKeyGroups const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__ArrayOfKeyGroups(struct soap*, const char*, int, const struct KMS_Agent__ArrayOfKeyGroups *, const char*);
-SOAP_FMAC3 struct KMS_Agent__ArrayOfKeyGroups * SOAP_FMAC4 soap_in_KMS_Agent__ArrayOfKeyGroups(struct soap*, const char*, struct KMS_Agent__ArrayOfKeyGroups *, const char*);
-
-#define soap_write_KMS_Agent__ArrayOfKeyGroups(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__ArrayOfKeyGroups(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__ArrayOfKeyGroups(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__ArrayOfKeyGroups(struct soap*, const struct KMS_Agent__ArrayOfKeyGroups *, const char*, const char*);
-
-#define soap_read_KMS_Agent__ArrayOfKeyGroups(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__ArrayOfKeyGroups(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__ArrayOfKeyGroups * SOAP_FMAC4 soap_get_KMS_Agent__ArrayOfKeyGroups(struct soap*, struct KMS_Agent__ArrayOfKeyGroups *, const char*, const char*);
-
-#define soap_new_KMS_Agent__ArrayOfKeyGroups(soap, n) soap_instantiate_KMS_Agent__ArrayOfKeyGroups(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__ArrayOfKeyGroups(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__ArrayOfKeyGroups * SOAP_FMAC2 soap_instantiate_KMS_Agent__ArrayOfKeyGroups(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__ArrayOfKeyGroups(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup (33)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__KeyGroup(struct soap*, struct KMS_Agent__KeyGroup *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__KeyGroup(struct soap*, const struct KMS_Agent__KeyGroup *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__KeyGroup(struct soap*, const char*, int, const struct KMS_Agent__KeyGroup *, const char*);
-SOAP_FMAC3 struct KMS_Agent__KeyGroup * SOAP_FMAC4 soap_in_KMS_Agent__KeyGroup(struct soap*, const char*, struct KMS_Agent__KeyGroup *, const char*);
-
-#define soap_write_KMS_Agent__KeyGroup(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__KeyGroup(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__KeyGroup(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__KeyGroup(struct soap*, const struct KMS_Agent__KeyGroup *, const char*, const char*);
-
-#define soap_read_KMS_Agent__KeyGroup(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__KeyGroup(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__KeyGroup * SOAP_FMAC4 soap_get_KMS_Agent__KeyGroup(struct soap*, struct KMS_Agent__KeyGroup *, const char*, const char*);
-
-#define soap_new_KMS_Agent__KeyGroup(soap, n) soap_instantiate_KMS_Agent__KeyGroup(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__KeyGroup(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__KeyGroup * SOAP_FMAC2 soap_instantiate_KMS_Agent__KeyGroup(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__KeyGroup(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__QueryParameters
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__QueryParameters (29)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__QueryParameters(struct soap*, struct KMS_Agent__QueryParameters *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__QueryParameters(struct soap*, const struct KMS_Agent__QueryParameters *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__QueryParameters(struct soap*, const char*, int, const struct KMS_Agent__QueryParameters *, const char*);
-SOAP_FMAC3 struct KMS_Agent__QueryParameters * SOAP_FMAC4 soap_in_KMS_Agent__QueryParameters(struct soap*, const char*, struct KMS_Agent__QueryParameters *, const char*);
-
-#define soap_write_KMS_Agent__QueryParameters(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__QueryParameters(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__QueryParameters(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__QueryParameters(struct soap*, const struct KMS_Agent__QueryParameters *, const char*, const char*);
-
-#define soap_read_KMS_Agent__QueryParameters(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__QueryParameters(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__QueryParameters * SOAP_FMAC4 soap_get_KMS_Agent__QueryParameters(struct soap*, struct KMS_Agent__QueryParameters *, const char*, const char*);
-
-#define soap_new_KMS_Agent__QueryParameters(soap, n) soap_instantiate_KMS_Agent__QueryParameters(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__QueryParameters(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__QueryParameters * SOAP_FMAC2 soap_instantiate_KMS_Agent__QueryParameters(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__QueryParameters(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfFilterParameters
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfFilterParameters (27)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__ArrayOfFilterParameters(struct soap*, struct KMS_Agent__ArrayOfFilterParameters *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__ArrayOfFilterParameters(struct soap*, struct KMS_Agent__ArrayOfFilterParameters const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__ArrayOfFilterParameters(struct soap*, const char*, int, const struct KMS_Agent__ArrayOfFilterParameters *, const char*);
-SOAP_FMAC3 struct KMS_Agent__ArrayOfFilterParameters * SOAP_FMAC4 soap_in_KMS_Agent__ArrayOfFilterParameters(struct soap*, const char*, struct KMS_Agent__ArrayOfFilterParameters *, const char*);
-
-#define soap_write_KMS_Agent__ArrayOfFilterParameters(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__ArrayOfFilterParameters(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__ArrayOfFilterParameters(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__ArrayOfFilterParameters(struct soap*, const struct KMS_Agent__ArrayOfFilterParameters *, const char*, const char*);
-
-#define soap_read_KMS_Agent__ArrayOfFilterParameters(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__ArrayOfFilterParameters(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__ArrayOfFilterParameters * SOAP_FMAC4 soap_get_KMS_Agent__ArrayOfFilterParameters(struct soap*, struct KMS_Agent__ArrayOfFilterParameters *, const char*, const char*);
-
-#define soap_new_KMS_Agent__ArrayOfFilterParameters(soap, n) soap_instantiate_KMS_Agent__ArrayOfFilterParameters(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__ArrayOfFilterParameters(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__ArrayOfFilterParameters * SOAP_FMAC2 soap_instantiate_KMS_Agent__ArrayOfFilterParameters(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__ArrayOfFilterParameters(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters (26)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__FilterParameters(struct soap*, struct KMS_Agent__FilterParameters *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__FilterParameters(struct soap*, const struct KMS_Agent__FilterParameters *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__FilterParameters(struct soap*, const char*, int, const struct KMS_Agent__FilterParameters *, const char*);
-SOAP_FMAC3 struct KMS_Agent__FilterParameters * SOAP_FMAC4 soap_in_KMS_Agent__FilterParameters(struct soap*, const char*, struct KMS_Agent__FilterParameters *, const char*);
-
-#define soap_write_KMS_Agent__FilterParameters(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__FilterParameters(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__FilterParameters(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__FilterParameters(struct soap*, const struct KMS_Agent__FilterParameters *, const char*, const char*);
-
-#define soap_read_KMS_Agent__FilterParameters(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__FilterParameters(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__FilterParameters * SOAP_FMAC4 soap_get_KMS_Agent__FilterParameters(struct soap*, struct KMS_Agent__FilterParameters *, const char*, const char*);
-
-#define soap_new_KMS_Agent__FilterParameters(soap, n) soap_instantiate_KMS_Agent__FilterParameters(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__FilterParameters(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__FilterParameters * SOAP_FMAC2 soap_instantiate_KMS_Agent__FilterParameters(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__FilterParameters(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfHexBinary
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfHexBinary (22)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Agent__ArrayOfHexBinary(struct soap*, struct KMS_Agent__ArrayOfHexBinary *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Agent__ArrayOfHexBinary(struct soap*, struct KMS_Agent__ArrayOfHexBinary const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Agent__ArrayOfHexBinary(struct soap*, const char*, int, const struct KMS_Agent__ArrayOfHexBinary *, const char*);
-SOAP_FMAC3 struct KMS_Agent__ArrayOfHexBinary * SOAP_FMAC4 soap_in_KMS_Agent__ArrayOfHexBinary(struct soap*, const char*, struct KMS_Agent__ArrayOfHexBinary *, const char*);
-
-#define soap_write_KMS_Agent__ArrayOfHexBinary(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_KMS_Agent__ArrayOfHexBinary(soap, data), 0) || KMS_Agent::soap_put_KMS_Agent__ArrayOfHexBinary(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Agent__ArrayOfHexBinary(struct soap*, const struct KMS_Agent__ArrayOfHexBinary *, const char*, const char*);
-
-#define soap_read_KMS_Agent__ArrayOfHexBinary(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_KMS_Agent__ArrayOfHexBinary(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__ArrayOfHexBinary * SOAP_FMAC4 soap_get_KMS_Agent__ArrayOfHexBinary(struct soap*, struct KMS_Agent__ArrayOfHexBinary *, const char*, const char*);
-
-#define soap_new_KMS_Agent__ArrayOfHexBinary(soap, n) soap_instantiate_KMS_Agent__ArrayOfHexBinary(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Agent__ArrayOfHexBinary(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Agent__ArrayOfHexBinary * SOAP_FMAC2 soap_instantiate_KMS_Agent__ArrayOfHexBinary(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Agent__ArrayOfHexBinary(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Agent_xsd__hexBinary
-#define SOAP_TYPE_KMS_Agent_xsd__hexBinary (18)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_xsd__hexBinary(struct soap*, struct xsd__hexBinary *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_xsd__hexBinary(struct soap*, struct xsd__hexBinary const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__hexBinary(struct soap*, const char*, int, const struct xsd__hexBinary *, const char*);
-SOAP_FMAC3 struct xsd__hexBinary * SOAP_FMAC4 soap_in_xsd__hexBinary(struct soap*, const char*, struct xsd__hexBinary *, const char*);
-
-#define soap_write_xsd__hexBinary(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_xsd__hexBinary(soap, data), 0) || KMS_Agent::soap_put_xsd__hexBinary(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__hexBinary(struct soap*, const struct xsd__hexBinary *, const char*, const char*);
-
-#define soap_read_xsd__hexBinary(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_xsd__hexBinary(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct xsd__hexBinary * SOAP_FMAC4 soap_get_xsd__hexBinary(struct soap*, struct xsd__hexBinary *, const char*, const char*);
-
-#define soap_new_xsd__hexBinary(soap, n) soap_instantiate_xsd__hexBinary(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_xsd__hexBinary(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct xsd__hexBinary * SOAP_FMAC2 soap_instantiate_xsd__hexBinary(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_xsd__hexBinary(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Agent_PointerToSOAP_ENV__Reason
-#define SOAP_TYPE_KMS_Agent_PointerToSOAP_ENV__Reason (115)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Reason(struct soap*, const char *, int, struct SOAP_ENV__Reason *const*, const char *);
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Reason(struct soap*, const char*, struct SOAP_ENV__Reason **, const char*);
-
-#define soap_write_PointerToSOAP_ENV__Reason(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_PointerToSOAP_ENV__Reason(soap, data), 0) || KMS_Agent::soap_put_PointerToSOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *const*, const char*, const char*);
-
-#define soap_read_PointerToSOAP_ENV__Reason(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_PointerToSOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason **, const char*, const char*);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Agent_PointerToSOAP_ENV__Detail
-#define SOAP_TYPE_KMS_Agent_PointerToSOAP_ENV__Detail (114)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Detail(struct soap*, const char *, int, struct SOAP_ENV__Detail *const*, const char *);
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Detail(struct soap*, const char*, struct SOAP_ENV__Detail **, const char*);
-
-#define soap_write_PointerToSOAP_ENV__Detail(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_PointerToSOAP_ENV__Detail(soap, data), 0) || KMS_Agent::soap_put_PointerToSOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *const*, const char*, const char*);
-
-#define soap_read_PointerToSOAP_ENV__Detail(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_PointerToSOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail **, const char*, const char*);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Agent_PointerToSOAP_ENV__Code
-#define SOAP_TYPE_KMS_Agent_PointerToSOAP_ENV__Code (110)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Code(struct soap*, const char *, int, struct SOAP_ENV__Code *const*, const char *);
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Code(struct soap*, const char*, struct SOAP_ENV__Code **, const char*);
-
-#define soap_write_PointerToSOAP_ENV__Code(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_PointerToSOAP_ENV__Code(soap, data), 0) || KMS_Agent::soap_put_PointerToSOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *const*, const char*, const char*);
-
-#define soap_read_PointerToSOAP_ENV__Code(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_PointerToSOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code **, const char*, const char*);
-
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_PointerToKMS_Agent__Key
-#define SOAP_TYPE_KMS_Agent_PointerToKMS_Agent__Key (38)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToKMS_Agent__Key(struct soap*, struct KMS_Agent__Key *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToKMS_Agent__Key(struct soap*, const char *, int, struct KMS_Agent__Key *const*, const char *);
-SOAP_FMAC3 struct KMS_Agent__Key ** SOAP_FMAC4 soap_in_PointerToKMS_Agent__Key(struct soap*, const char*, struct KMS_Agent__Key **, const char*);
-
-#define soap_write_PointerToKMS_Agent__Key(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_PointerToKMS_Agent__Key(soap, data), 0) || KMS_Agent::soap_put_PointerToKMS_Agent__Key(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToKMS_Agent__Key(struct soap*, struct KMS_Agent__Key *const*, const char*, const char*);
-
-#define soap_read_PointerToKMS_Agent__Key(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_PointerToKMS_Agent__Key(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__Key ** SOAP_FMAC4 soap_get_PointerToKMS_Agent__Key(struct soap*, struct KMS_Agent__Key **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_PointerToKMS_Agent__KeyGroup
-#define SOAP_TYPE_KMS_Agent_PointerToKMS_Agent__KeyGroup (35)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToKMS_Agent__KeyGroup(struct soap*, struct KMS_Agent__KeyGroup *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToKMS_Agent__KeyGroup(struct soap*, const char *, int, struct KMS_Agent__KeyGroup *const*, const char *);
-SOAP_FMAC3 struct KMS_Agent__KeyGroup ** SOAP_FMAC4 soap_in_PointerToKMS_Agent__KeyGroup(struct soap*, const char*, struct KMS_Agent__KeyGroup **, const char*);
-
-#define soap_write_PointerToKMS_Agent__KeyGroup(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_PointerToKMS_Agent__KeyGroup(soap, data), 0) || KMS_Agent::soap_put_PointerToKMS_Agent__KeyGroup(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToKMS_Agent__KeyGroup(struct soap*, struct KMS_Agent__KeyGroup *const*, const char*, const char*);
-
-#define soap_read_PointerToKMS_Agent__KeyGroup(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_PointerToKMS_Agent__KeyGroup(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__KeyGroup ** SOAP_FMAC4 soap_get_PointerToKMS_Agent__KeyGroup(struct soap*, struct KMS_Agent__KeyGroup **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_PointerToKMS_Agent__FilterParameters
-#define SOAP_TYPE_KMS_Agent_PointerToKMS_Agent__FilterParameters (28)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToKMS_Agent__FilterParameters(struct soap*, struct KMS_Agent__FilterParameters *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToKMS_Agent__FilterParameters(struct soap*, const char *, int, struct KMS_Agent__FilterParameters *const*, const char *);
-SOAP_FMAC3 struct KMS_Agent__FilterParameters ** SOAP_FMAC4 soap_in_PointerToKMS_Agent__FilterParameters(struct soap*, const char*, struct KMS_Agent__FilterParameters **, const char*);
-
-#define soap_write_PointerToKMS_Agent__FilterParameters(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_PointerToKMS_Agent__FilterParameters(soap, data), 0) || KMS_Agent::soap_put_PointerToKMS_Agent__FilterParameters(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToKMS_Agent__FilterParameters(struct soap*, struct KMS_Agent__FilterParameters *const*, const char*, const char*);
-
-#define soap_read_PointerToKMS_Agent__FilterParameters(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_PointerToKMS_Agent__FilterParameters(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Agent__FilterParameters ** SOAP_FMAC4 soap_get_PointerToKMS_Agent__FilterParameters(struct soap*, struct KMS_Agent__FilterParameters **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_PointerToxsd__hexBinary
-#define SOAP_TYPE_KMS_Agent_PointerToxsd__hexBinary (23)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToxsd__hexBinary(struct soap*, struct xsd__hexBinary *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToxsd__hexBinary(struct soap*, const char *, int, struct xsd__hexBinary *const*, const char *);
-SOAP_FMAC3 struct xsd__hexBinary ** SOAP_FMAC4 soap_in_PointerToxsd__hexBinary(struct soap*, const char*, struct xsd__hexBinary **, const char*);
-
-#define soap_write_PointerToxsd__hexBinary(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_PointerToxsd__hexBinary(soap, data), 0) || KMS_Agent::soap_put_PointerToxsd__hexBinary(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToxsd__hexBinary(struct soap*, struct xsd__hexBinary *const*, const char*, const char*);
-
-#define soap_read_PointerToxsd__hexBinary(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_PointerToxsd__hexBinary(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct xsd__hexBinary ** SOAP_FMAC4 soap_get_PointerToxsd__hexBinary(struct soap*, struct xsd__hexBinary **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_PointerTounsignedByte
-#define SOAP_TYPE_KMS_Agent_PointerTounsignedByte (21)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerTounsignedByte(struct soap*, unsigned char *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerTounsignedByte(struct soap*, const char *, int, unsigned char *const*, const char *);
-SOAP_FMAC3 unsigned char ** SOAP_FMAC4 soap_in_PointerTounsignedByte(struct soap*, const char*, unsigned char **, const char*);
-
-#define soap_write_PointerTounsignedByte(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_PointerTounsignedByte(soap, data), 0) || KMS_Agent::soap_put_PointerTounsignedByte(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerTounsignedByte(struct soap*, unsigned char *const*, const char*, const char*);
-
-#define soap_read_PointerTounsignedByte(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_PointerTounsignedByte(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 unsigned char ** SOAP_FMAC4 soap_get_PointerTounsignedByte(struct soap*, unsigned char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_xsd__duration
-#define SOAP_TYPE_KMS_Agent_xsd__duration (17)
-#endif
-
-#define soap_default_xsd__duration(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize_xsd__duration(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__duration(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__duration(struct soap*, const char*, char **, const char*);
-
-#define soap_write_xsd__duration(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_xsd__duration(soap, data), 0) || KMS_Agent::soap_put_xsd__duration(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__duration(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_xsd__duration(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_xsd__duration(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__duration(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_xsd__dateTime
-#define SOAP_TYPE_KMS_Agent_xsd__dateTime (16)
-#endif
-
-#define soap_default_xsd__dateTime(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize_xsd__dateTime(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__dateTime(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__dateTime(struct soap*, const char*, char **, const char*);
-
-#define soap_write_xsd__dateTime(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_xsd__dateTime(soap, data), 0) || KMS_Agent::soap_put_xsd__dateTime(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__dateTime(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_xsd__dateTime(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_xsd__dateTime(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__dateTime(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_xsd__string
-#define SOAP_TYPE_KMS_Agent_xsd__string (7)
-#endif
-
-#define soap_default_xsd__string(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize_xsd__string(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__string(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__string(struct soap*, const char*, char **, const char*);
-
-#define soap_write_xsd__string(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_xsd__string(soap, data), 0) || KMS_Agent::soap_put_xsd__string(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__string(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_xsd__string(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_xsd__string(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__string(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent__QName
-#define SOAP_TYPE_KMS_Agent__QName (5)
-#endif
-
-#define soap_default__QName(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize__QName(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out__QName(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in__QName(struct soap*, const char*, char **, const char*);
-
-#define soap_write__QName(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize__QName(soap, data), 0) || KMS_Agent::soap_put__QName(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put__QName(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read__QName(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get__QName(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get__QName(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Agent_string
-#define SOAP_TYPE_KMS_Agent_string (4)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_string(struct soap*, char **);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_string(struct soap*, char *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_string(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_string(struct soap*, const char*, char **, const char*);
-
-#define soap_write_string(soap, data) ( soap_begin_send(soap) || (KMS_Agent::soap_serialize_string(soap, data), 0) || KMS_Agent::soap_put_string(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_string(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_string(soap, data) ( soap_begin_recv(soap) || !KMS_Agent::soap_get_string(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_string(struct soap*, char **, const char*, const char*);
-
-} // namespace KMS_Agent
-
-
-#endif
-
-/* End of KMS_AgentH.h */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_AgentStub.h b/usr/src/lib/libkmsagent/common/SOAP/KMS_AgentStub.h
deleted file mode 100644
index a0edbe621a..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_AgentStub.h
+++ /dev/null
@@ -1,834 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* KMS_AgentStub.h
- Generated by gSOAP 2.7.17 from ../gsoapStubs/AgentService/KMS_Agent_SOAP.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#ifndef KMS_AgentStub_H
-#define KMS_AgentStub_H
-#ifndef WITH_NONAMESPACES
-#define WITH_NONAMESPACES
-#endif
-#ifndef WITH_NOGLOBAL
-#define WITH_NOGLOBAL
-#endif
-#include "stdsoap2.h"
-
-namespace KMS_Agent {
-
-/******************************************************************************\
- * *
- * Enumerations *
- * *
-\******************************************************************************/
-
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__SortOrder
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__SortOrder (24)
-/* KMS-Agent:SortOrder */
-enum KMS_Agent__SortOrder {SORT_ORDER_ASCENDING = 0, SORT_ORDER_DESCENDING = 1};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__FilterOperator
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__FilterOperator (25)
-/* KMS-Agent:FilterOperator */
-enum KMS_Agent__FilterOperator {FILTER_OPERATOR_EQUAL = 0, FILTER_OPERATOR_NOT_EQUAL = 1, FILTER_OPERATOR_GREATER_THAN = 2, FILTER_OPERATOR_LESS_THAN = 3, FILTER_OPERATOR_GREATER_THAN_OR_EQUAL = 4, FILTER_OPERATOR_LESS_THAN_OR_EQUAL = 5, FILTER_OPERATOR_STARTS_WITH = 6};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__KeyType
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__KeyType (30)
-/* KMS-Agent:KeyType */
-enum KMS_Agent__KeyType {KEY_TYPE_AES_256 = 0};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__KeyState
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__KeyState (31)
-/* KMS-Agent:KeyState */
-enum KMS_Agent__KeyState {KEY_STATE_GENERATED = 0, KEY_STATE_READY = 1, KEY_STATE_PROTECT_AND_PROCESS = 2, KEY_STATE_PROCESS_ONLY = 3, KEY_STATE_DEACTIVATED = 4, KEY_STATE_COMPROMISED = 5, KEY_STATE_DESTROYED_INCOMPLETE = 6, KEY_STATE_DESTROYED_COMPLETE = 7, KEY_STATE_DESTROYED_COMPROMISED_INCOMPLETE = 8, KEY_STATE_DESTROYED_COMPROMISED_COMPLETE = 9};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnitState
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnitState (32)
-/* KMS-Agent:DataUnitState */
-enum KMS_Agent__DataUnitState {DATA_UNIT_STATE_NO_KEY = 0, DATA_UNIT_STATE_READABLE_NORMAL = 1, DATA_UNIT_STATE_READABLE_NEEDS_REKEY = 2, DATA_UNIT_STATE_SHREDDED = 3};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogRetention
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogRetention (40)
-/* KMS-Agent:AuditLogRetention */
-enum KMS_Agent__AuditLogRetention {AUDIT_LOG_LONG_TERM_RETENTION = 0, AUDIT_LOG_MEDIUM_TERM_RETENTION = 1, AUDIT_LOG_SHORT_TERM_RETENTION = 2, AUDIT_LOG_ZERO_RETENTION = 3};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogCondition
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__AuditLogCondition (41)
-/* KMS-Agent:AuditLogCondition */
-enum KMS_Agent__AuditLogCondition {AUDIT_LOG_SUCCESS_CONDITION = 0, AUDIT_LOG_ERROR_CONDITION = 1, AUDIT_LOG_WARNING_CONDITION = 2};
-#endif
-
-/******************************************************************************\
- * *
- * Types with Custom Serializers *
- * *
-\******************************************************************************/
-
-
-/******************************************************************************\
- * *
- * Classes and Structs *
- * *
-\******************************************************************************/
-
-
-#if 0 /* volatile type: do not declare here, declared elsewhere */
-
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_xsd__hexBinary
-#define SOAP_TYPE_KMS_Agent_xsd__hexBinary (18)
-/* hexBinary schema type: */
-struct xsd__hexBinary
-{
-public:
- unsigned char *__ptr;
- int __size;
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfHexBinary
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfHexBinary (22)
-/* Sequence of KMS-Agent:ArrayOfHexBinary schema type: */
-struct KMS_Agent__ArrayOfHexBinary
-{
-public:
- struct xsd__hexBinary *__ptr;
- int __size;
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__FilterParameters (26)
-/* KMS-Agent:FilterParameters */
-struct KMS_Agent__FilterParameters
-{
-public:
- char *FieldName; /* optional element of type xsd:string */
- enum KMS_Agent__FilterOperator FilterOperator; /* required element of type KMS-Agent:FilterOperator */
- char *FieldValue; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfFilterParameters
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfFilterParameters (27)
-/* Sequence of KMS-Agent:ArrayOfFilterParameters schema type: */
-struct KMS_Agent__ArrayOfFilterParameters
-{
-public:
- struct KMS_Agent__FilterParameters *__ptr;
- int __size;
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__QueryParameters
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__QueryParameters (29)
-/* KMS-Agent:QueryParameters */
-struct KMS_Agent__QueryParameters
-{
-public:
- long NextPageSize; /* required element of type xsd:int */
- char *SortFieldName; /* optional element of type xsd:string */
- enum KMS_Agent__SortOrder SortOrder; /* required element of type KMS-Agent:SortOrder */
- struct KMS_Agent__ArrayOfFilterParameters FilterParameters; /* optional element of type KMS-Agent:ArrayOfFilterParameters */
- char *PreviousPageLastIDValue; /* optional element of type xsd:string */
- char *PreviousPageLastSortFieldValue; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__KeyGroup (33)
-/* KMS-Agent:KeyGroup */
-struct KMS_Agent__KeyGroup
-{
-public:
- char *KeyGroupID; /* optional element of type xsd:string */
- char *Description; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeyGroups
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeyGroups (34)
-/* Sequence of KMS-Agent:ArrayOfKeyGroups schema type: */
-struct KMS_Agent__ArrayOfKeyGroups
-{
-public:
- struct KMS_Agent__KeyGroup *__ptr;
- int __size;
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__Key
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__Key (36)
-/* KMS-Agent:Key */
-struct KMS_Agent__Key
-{
-public:
- char *KeyID; /* optional element of type xsd:string */
- enum KMS_Agent__KeyState KeyState; /* required element of type KMS-Agent:KeyState */
- enum KMS_Agent__KeyType KeyType; /* required element of type KMS-Agent:KeyType */
- char *KeyGroupID; /* optional element of type xsd:string */
- struct xsd__hexBinary Key; /* required element of type xsd:hexBinary */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeys
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__ArrayOfKeys (37)
-/* Sequence of KMS-Agent:ArrayOfKeys schema type: */
-struct KMS_Agent__ArrayOfKeys
-{
-public:
- struct KMS_Agent__Key *__ptr;
- int __size;
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnit
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__DataUnit (39)
-/* KMS-Agent:DataUnit */
-struct KMS_Agent__DataUnit
-{
-public:
- char *DataUnitID; /* optional element of type xsd:string */
- char *ExternalUniqueID; /* optional element of type xsd:string */
- char *ExternalTag; /* optional element of type xsd:string */
- char *Description; /* optional element of type xsd:string */
- enum KMS_Agent__DataUnitState DataUnitState; /* required element of type KMS-Agent:DataUnitState */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroupsResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroupsResponse (42)
-/* KMS-Agent:ListKeyGroupsResponse */
-struct KMS_Agent__ListKeyGroupsResponse
-{
-public:
- struct KMS_Agent__ArrayOfKeyGroups KeyGroups; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* optional element of type KMS-Agent:ArrayOfKeyGroups */
- bool LastPage; /* required element of type xsd:boolean */
- struct KMS_Agent__QueryParameters NextPageQueryParameters; /* required element of type KMS-Agent:QueryParameters */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroups
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__ListKeyGroups (45)
-/* KMS-Agent:ListKeyGroups */
-struct KMS_Agent__ListKeyGroups
-{
-public:
- struct KMS_Agent__QueryParameters QueryParameters; /* required element of type KMS-Agent:QueryParameters */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnitResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnitResponse (46)
-/* KMS-Agent:CreateDataUnitResponse */
-struct KMS_Agent__CreateDataUnitResponse
-{
-public:
- struct KMS_Agent__DataUnit DataUnit; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type KMS-Agent:DataUnit */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnit
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__CreateDataUnit (49)
-/* KMS-Agent:CreateDataUnit */
-struct KMS_Agent__CreateDataUnit
-{
-public:
- char *ExternalUniqueID; /* optional element of type xsd:string */
- char *ExternalTag; /* optional element of type xsd:string */
- char *Description; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitResponse (50)
-/* KMS-Agent:RetrieveDataUnitResponse */
-struct KMS_Agent__RetrieveDataUnitResponse
-{
-public:
- struct KMS_Agent__DataUnit DataUnit; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type KMS-Agent:DataUnit */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnit
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnit (53)
-/* KMS-Agent:RetrieveDataUnit */
-struct KMS_Agent__RetrieveDataUnit
-{
-public:
- char *DataUnitID; /* optional element of type xsd:string */
- char *ExternalUniqueID; /* optional element of type xsd:string */
- char *ExternalTag; /* optional element of type xsd:string */
- char *Description; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse (54)
-/* KMS-Agent:RetrieveDataUnitByExternalUniqueIDResponse */
-struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse
-{
-public:
- struct KMS_Agent__DataUnit DataUnit; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type KMS-Agent:DataUnit */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueID
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitByExternalUniqueID (57)
-/* KMS-Agent:RetrieveDataUnitByExternalUniqueID */
-struct KMS_Agent__RetrieveDataUnitByExternalUniqueID
-{
-public:
- char *ExternalUniqueID; /* optional element of type xsd:string */
- char *ExternalTag; /* optional element of type xsd:string */
- char *Description; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeysResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeysResponse (58)
-/* KMS-Agent:DisassociateDataUnitKeysResponse */
-struct KMS_Agent__DisassociateDataUnitKeysResponse
-{
-public:
- void *_; /* transient */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeys
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__DisassociateDataUnitKeys (63)
-/* KMS-Agent:DisassociateDataUnitKeys */
-struct KMS_Agent__DisassociateDataUnitKeys
-{
-public:
- struct KMS_Agent__DataUnit DataUnit; /* required element of type KMS-Agent:DataUnit */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKeyResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKeyResponse (64)
-/* KMS-Agent:CreateKeyResponse */
-struct KMS_Agent__CreateKeyResponse
-{
-public:
- struct KMS_Agent__Key Key; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type KMS-Agent:Key */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey (67)
-/* KMS-Agent:CreateKey */
-struct KMS_Agent__CreateKey
-{
-public:
- struct KMS_Agent__DataUnit DataUnit; /* required element of type KMS-Agent:DataUnit */
- char *KeyGroupID; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2Response
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2Response (68)
-/* KMS-Agent:CreateKey2Response */
-struct KMS_Agent__CreateKey2Response
-{
-public:
- struct KMS_Agent__Key Key; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type KMS-Agent:Key */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__CreateKey2 (71)
-/* KMS-Agent:CreateKey2 */
-struct KMS_Agent__CreateKey2
-{
-public:
- struct KMS_Agent__DataUnit DataUnit; /* required element of type KMS-Agent:DataUnit */
- char *KeyGroupID; /* optional element of type xsd:string */
- char *AgentKWKID; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKeyResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKeyResponse (72)
-/* KMS-Agent:RetrieveKeyResponse */
-struct KMS_Agent__RetrieveKeyResponse
-{
-public:
- struct KMS_Agent__Key Key; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type KMS-Agent:Key */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey (75)
-/* KMS-Agent:RetrieveKey */
-struct KMS_Agent__RetrieveKey
-{
-public:
- char *KeyID; /* optional element of type xsd:string */
- struct KMS_Agent__DataUnit DataUnit; /* required element of type KMS-Agent:DataUnit */
- char *KeyGroupID; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2Response
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2Response (76)
-/* KMS-Agent:RetrieveKey2Response */
-struct KMS_Agent__RetrieveKey2Response
-{
-public:
- struct KMS_Agent__Key Key; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type KMS-Agent:Key */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveKey2 (79)
-/* KMS-Agent:RetrieveKey2 */
-struct KMS_Agent__RetrieveKey2
-{
-public:
- char *KeyID; /* optional element of type xsd:string */
- struct KMS_Agent__DataUnit DataUnit; /* required element of type KMS-Agent:DataUnit */
- char *KeyGroupID; /* optional element of type xsd:string */
- char *AgentKWKID; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeysResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeysResponse (80)
-/* KMS-Agent:RetrieveDataUnitKeysResponse */
-struct KMS_Agent__RetrieveDataUnitKeysResponse
-{
-public:
- LONG64 KeysRemaining; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type xsd:long */
- struct KMS_Agent__ArrayOfKeys Keys; /* optional element of type KMS-Agent:ArrayOfKeys */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys (83)
-/* KMS-Agent:RetrieveDataUnitKeys */
-struct KMS_Agent__RetrieveDataUnitKeys
-{
-public:
- struct KMS_Agent__DataUnit DataUnit; /* required element of type KMS-Agent:DataUnit */
- long PageSize; /* required element of type xsd:int */
- long PageOffset; /* required element of type xsd:int */
- char *KeyID; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2Response
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2Response (84)
-/* KMS-Agent:RetrieveDataUnitKeys2Response */
-struct KMS_Agent__RetrieveDataUnitKeys2Response
-{
-public:
- LONG64 KeysRemaining; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type xsd:long */
- struct KMS_Agent__ArrayOfKeys Keys; /* optional element of type KMS-Agent:ArrayOfKeys */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveDataUnitKeys2 (87)
-/* KMS-Agent:RetrieveDataUnitKeys2 */
-struct KMS_Agent__RetrieveDataUnitKeys2
-{
-public:
- struct KMS_Agent__DataUnit DataUnit; /* required element of type KMS-Agent:DataUnit */
- long PageSize; /* required element of type xsd:int */
- long PageOffset; /* required element of type xsd:int */
- char *KeyID; /* optional element of type xsd:string */
- char *AgentKWKID; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKeyResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKeyResponse (88)
-/* KMS-Agent:RetrieveProtectAndProcessKeyResponse */
-struct KMS_Agent__RetrieveProtectAndProcessKeyResponse
-{
-public:
- struct KMS_Agent__Key Key; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type KMS-Agent:Key */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey (91)
-/* KMS-Agent:RetrieveProtectAndProcessKey */
-struct KMS_Agent__RetrieveProtectAndProcessKey
-{
-public:
- struct KMS_Agent__DataUnit DataUnit; /* required element of type KMS-Agent:DataUnit */
- char *KeyGroupID; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2Response
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2Response (92)
-/* KMS-Agent:RetrieveProtectAndProcessKey2Response */
-struct KMS_Agent__RetrieveProtectAndProcessKey2Response
-{
-public:
- struct KMS_Agent__Key Key; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type KMS-Agent:Key */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RetrieveProtectAndProcessKey2 (95)
-/* KMS-Agent:RetrieveProtectAndProcessKey2 */
-struct KMS_Agent__RetrieveProtectAndProcessKey2
-{
-public:
- struct KMS_Agent__DataUnit DataUnit; /* required element of type KMS-Agent:DataUnit */
- char *KeyGroupID; /* optional element of type xsd:string */
- char *AgentKWKID; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLogResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLogResponse (96)
-/* KMS-Agent:CreateAuditLogResponse */
-struct KMS_Agent__CreateAuditLogResponse
-{
-public:
- void *_; /* transient */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLog
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__CreateAuditLog (99)
-/* KMS-Agent:CreateAuditLog */
-struct KMS_Agent__CreateAuditLog
-{
-public:
- enum KMS_Agent__AuditLogRetention Retention; /* required element of type KMS-Agent:AuditLogRetention */
- enum KMS_Agent__AuditLogCondition Condition; /* required element of type KMS-Agent:AuditLogCondition */
- bool IssueAlert; /* required element of type xsd:boolean */
- char *Message; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKeyResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKeyResponse (100)
-/* KMS-Agent:GetAgentKWKPublicKeyResponse */
-struct KMS_Agent__GetAgentKWKPublicKeyResponse
-{
-public:
- struct xsd__hexBinary KWKPublicKey; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type xsd:hexBinary */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKey
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__GetAgentKWKPublicKey (103)
-/* KMS-Agent:GetAgentKWKPublicKey */
-struct KMS_Agent__GetAgentKWKPublicKey
-{
-#ifdef WITH_NOEMPTYSTRUCT
-private:
- char dummy; /* dummy member to enable compilation */
-#endif
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWKResponse
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWKResponse (104)
-/* KMS-Agent:RegisterAgentKWKResponse */
-struct KMS_Agent__RegisterAgentKWKResponse
-{
-public:
- char *AgentKWKID; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWK
-#define SOAP_TYPE_KMS_Agent_KMS_Agent__RegisterAgentKWK (107)
-/* KMS-Agent:RegisterAgentKWK */
-struct KMS_Agent__RegisterAgentKWK
-{
-public:
- struct xsd__hexBinary AgentKWK; /* required element of type xsd:hexBinary */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_SOAP_ENV__Header
-#define SOAP_TYPE_KMS_Agent_SOAP_ENV__Header (108)
-/* SOAP Header: */
-struct SOAP_ENV__Header
-{
-#ifdef WITH_NOEMPTYSTRUCT
-private:
- char dummy; /* dummy member to enable compilation */
-#endif
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_SOAP_ENV__Code
-#define SOAP_TYPE_KMS_Agent_SOAP_ENV__Code (109)
-/* SOAP Fault Code: */
-struct SOAP_ENV__Code
-{
-public:
- char *SOAP_ENV__Value; /* optional element of type xsd:QName */
- struct SOAP_ENV__Code *SOAP_ENV__Subcode; /* optional element of type SOAP-ENV:Code */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_SOAP_ENV__Detail
-#define SOAP_TYPE_KMS_Agent_SOAP_ENV__Detail (111)
-/* SOAP-ENV:Detail */
-struct SOAP_ENV__Detail
-{
-public:
- int __type; /* any type of element <fault> (defined below) */
- void *fault; /* transient */
- char *__any;
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_SOAP_ENV__Reason
-#define SOAP_TYPE_KMS_Agent_SOAP_ENV__Reason (112)
-/* SOAP-ENV:Reason */
-struct SOAP_ENV__Reason
-{
-public:
- char *SOAP_ENV__Text; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_SOAP_ENV__Fault
-#define SOAP_TYPE_KMS_Agent_SOAP_ENV__Fault (113)
-/* SOAP Fault: */
-struct SOAP_ENV__Fault
-{
-public:
- char *faultcode; /* optional element of type xsd:QName */
- char *faultstring; /* optional element of type xsd:string */
- char *faultactor; /* optional element of type xsd:string */
- struct SOAP_ENV__Detail *detail; /* optional element of type SOAP-ENV:Detail */
- struct SOAP_ENV__Code *SOAP_ENV__Code; /* optional element of type SOAP-ENV:Code */
- struct SOAP_ENV__Reason *SOAP_ENV__Reason; /* optional element of type SOAP-ENV:Reason */
- char *SOAP_ENV__Node; /* optional element of type xsd:string */
- char *SOAP_ENV__Role; /* optional element of type xsd:string */
- struct SOAP_ENV__Detail *SOAP_ENV__Detail; /* optional element of type SOAP-ENV:Detail */
-};
-#endif
-
-/******************************************************************************\
- * *
- * Typedefs *
- * *
-\******************************************************************************/
-
-#ifndef SOAP_TYPE_KMS_Agent__QName
-#define SOAP_TYPE_KMS_Agent__QName (5)
-typedef char *_QName;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent__XML
-#define SOAP_TYPE_KMS_Agent__XML (6)
-typedef char *_XML;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_xsd__string
-#define SOAP_TYPE_KMS_Agent_xsd__string (7)
-typedef char *xsd__string;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_xsd__float
-#define SOAP_TYPE_KMS_Agent_xsd__float (9)
-typedef float xsd__float;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_xsd__int
-#define SOAP_TYPE_KMS_Agent_xsd__int (11)
-typedef long xsd__int;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_xsd__boolean
-#define SOAP_TYPE_KMS_Agent_xsd__boolean (13)
-typedef bool xsd__boolean;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_xsd__long
-#define SOAP_TYPE_KMS_Agent_xsd__long (15)
-typedef LONG64 xsd__long;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_xsd__dateTime
-#define SOAP_TYPE_KMS_Agent_xsd__dateTime (16)
-typedef char *xsd__dateTime;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Agent_xsd__duration
-#define SOAP_TYPE_KMS_Agent_xsd__duration (17)
-typedef char *xsd__duration;
-#endif
-
-
-/******************************************************************************\
- * *
- * Externals *
- * *
-\******************************************************************************/
-
-
-/******************************************************************************\
- * *
- * Server-Side Operations *
- * *
-\******************************************************************************/
-
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Agent__ListKeyGroups(struct soap*, struct KMS_Agent__QueryParameters QueryParameters, struct KMS_Agent__ListKeyGroupsResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Agent__CreateDataUnit(struct soap*, char *ExternalUniqueID, char *ExternalTag, char *Description, struct KMS_Agent__CreateDataUnitResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Agent__RetrieveDataUnit(struct soap*, char *DataUnitID, char *ExternalUniqueID, char *ExternalTag, char *Description, struct KMS_Agent__RetrieveDataUnitResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap*, char *ExternalUniqueID, char *ExternalTag, char *Description, struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Agent__DisassociateDataUnitKeys(struct soap*, struct KMS_Agent__DataUnit DataUnit, struct KMS_Agent__DisassociateDataUnitKeysResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Agent__CreateKey(struct soap*, struct KMS_Agent__DataUnit DataUnit, char *KeyGroupID, struct KMS_Agent__CreateKeyResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Agent__CreateKey2(struct soap*, struct KMS_Agent__DataUnit DataUnit, char *KeyGroupID, char *AgentKWKID, struct KMS_Agent__CreateKey2Response &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Agent__RetrieveKey(struct soap*, char *KeyID, struct KMS_Agent__DataUnit DataUnit, char *KeyGroupID, struct KMS_Agent__RetrieveKeyResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Agent__RetrieveKey2(struct soap*, char *KeyID, struct KMS_Agent__DataUnit DataUnit, char *KeyGroupID, char *AgentKWKID, struct KMS_Agent__RetrieveKey2Response &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Agent__RetrieveDataUnitKeys(struct soap*, struct KMS_Agent__DataUnit DataUnit, long PageSize, long PageOffset, char *KeyID, struct KMS_Agent__RetrieveDataUnitKeysResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Agent__RetrieveDataUnitKeys2(struct soap*, struct KMS_Agent__DataUnit DataUnit, long PageSize, long PageOffset, char *KeyID, char *AgentKWKID, struct KMS_Agent__RetrieveDataUnitKeys2Response &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Agent__RetrieveProtectAndProcessKey(struct soap*, struct KMS_Agent__DataUnit DataUnit, char *KeyGroupID, struct KMS_Agent__RetrieveProtectAndProcessKeyResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Agent__RetrieveProtectAndProcessKey2(struct soap*, struct KMS_Agent__DataUnit DataUnit, char *KeyGroupID, char *AgentKWKID, struct KMS_Agent__RetrieveProtectAndProcessKey2Response &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Agent__CreateAuditLog(struct soap*, enum KMS_Agent__AuditLogRetention Retention, enum KMS_Agent__AuditLogCondition Condition, bool IssueAlert, char *Message, struct KMS_Agent__CreateAuditLogResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Agent__GetAgentKWKPublicKey(struct soap*, struct KMS_Agent__GetAgentKWKPublicKeyResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Agent__RegisterAgentKWK(struct soap*, struct xsd__hexBinary AgentKWK, struct KMS_Agent__RegisterAgentKWKResponse &result);
-
-/******************************************************************************\
- * *
- * Server-Side Skeletons to Invoke Service Operations *
- * *
-\******************************************************************************/
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Agent_serve(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Agent_serve_request(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_Agent__ListKeyGroups(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_Agent__CreateDataUnit(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_Agent__RetrieveDataUnit(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_Agent__DisassociateDataUnitKeys(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_Agent__CreateKey(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_Agent__CreateKey2(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_Agent__RetrieveKey(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_Agent__RetrieveKey2(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_Agent__RetrieveDataUnitKeys(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_Agent__RetrieveDataUnitKeys2(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_Agent__RetrieveProtectAndProcessKey(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_Agent__CreateAuditLog(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_Agent__GetAgentKWKPublicKey(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_Agent__RegisterAgentKWK(struct soap*);
-
-/******************************************************************************\
- * *
- * Client-Side Call Stubs *
- * *
-\******************************************************************************/
-
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__ListKeyGroups(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct KMS_Agent__QueryParameters QueryParameters, struct KMS_Agent__ListKeyGroupsResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__CreateDataUnit(struct soap *soap, const char *soap_endpoint, const char *soap_action, char *ExternalUniqueID, char *ExternalTag, char *Description, struct KMS_Agent__CreateDataUnitResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__RetrieveDataUnit(struct soap *soap, const char *soap_endpoint, const char *soap_action, char *DataUnitID, char *ExternalUniqueID, char *ExternalTag, char *Description, struct KMS_Agent__RetrieveDataUnitResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__RetrieveDataUnitByExternalUniqueID(struct soap *soap, const char *soap_endpoint, const char *soap_action, char *ExternalUniqueID, char *ExternalTag, char *Description, struct KMS_Agent__RetrieveDataUnitByExternalUniqueIDResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__DisassociateDataUnitKeys(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct KMS_Agent__DataUnit DataUnit, struct KMS_Agent__DisassociateDataUnitKeysResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__CreateKey(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct KMS_Agent__DataUnit DataUnit, char *KeyGroupID, struct KMS_Agent__CreateKeyResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__CreateKey2(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct KMS_Agent__DataUnit DataUnit, char *KeyGroupID, char *AgentKWKID, struct KMS_Agent__CreateKey2Response &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__RetrieveKey(struct soap *soap, const char *soap_endpoint, const char *soap_action, char *KeyID, struct KMS_Agent__DataUnit DataUnit, char *KeyGroupID, struct KMS_Agent__RetrieveKeyResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__RetrieveKey2(struct soap *soap, const char *soap_endpoint, const char *soap_action, char *KeyID, struct KMS_Agent__DataUnit DataUnit, char *KeyGroupID, char *AgentKWKID, struct KMS_Agent__RetrieveKey2Response &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__RetrieveDataUnitKeys(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct KMS_Agent__DataUnit DataUnit, long PageSize, long PageOffset, char *KeyID, struct KMS_Agent__RetrieveDataUnitKeysResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__RetrieveDataUnitKeys2(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct KMS_Agent__DataUnit DataUnit, long PageSize, long PageOffset, char *KeyID, char *AgentKWKID, struct KMS_Agent__RetrieveDataUnitKeys2Response &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__RetrieveProtectAndProcessKey(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct KMS_Agent__DataUnit DataUnit, char *KeyGroupID, struct KMS_Agent__RetrieveProtectAndProcessKeyResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__RetrieveProtectAndProcessKey2(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct KMS_Agent__DataUnit DataUnit, char *KeyGroupID, char *AgentKWKID, struct KMS_Agent__RetrieveProtectAndProcessKey2Response &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__CreateAuditLog(struct soap *soap, const char *soap_endpoint, const char *soap_action, enum KMS_Agent__AuditLogRetention Retention, enum KMS_Agent__AuditLogCondition Condition, bool IssueAlert, char *Message, struct KMS_Agent__CreateAuditLogResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__GetAgentKWKPublicKey(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct KMS_Agent__GetAgentKWKPublicKeyResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Agent__RegisterAgentKWK(struct soap *soap, const char *soap_endpoint, const char *soap_action, struct xsd__hexBinary AgentKWK, struct KMS_Agent__RegisterAgentKWKResponse &result);
-
-} // namespace KMS_Agent
-
-
-#endif
-
-/* End of KMS_AgentStub.h */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_CA.nsmap b/usr/src/lib/libkmsagent/common/SOAP/KMS_CA.nsmap
deleted file mode 100644
index f7adb33d6c..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_CA.nsmap
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-
-#include "KMS_CAH.h"
-SOAP_NMAC struct Namespace KMS_CA_namespaces[] =
-{
- {"SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/", "http://www.w3.org/*/soap-envelope"},
- {"SOAP-ENC", "http://schemas.xmlsoap.org/soap/encoding/", "http://www.w3.org/*/soap-encoding"},
- {"xsi", "http://www.w3.org/2001/XMLSchema-instance", "http://www.w3.org/*/XMLSchema-instance"},
- {"xsd", "http://www.w3.org/2001/XMLSchema", "http://www.w3.org/*/XMLSchema"},
- {"KMS-CA", "http://www.sun.com/KMS/KMS-CA"},
- {NULL, NULL}
-};
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_CAC.cpp b/usr/src/lib/libkmsagent/common/SOAP/KMS_CAC.cpp
deleted file mode 100644
index 3be119b657..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_CAC.cpp
+++ /dev/null
@@ -1,2648 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* KMS_CAC.cpp
- Generated by gSOAP 2.7.17 from ../gsoapStubs/CAService/KMS_CA_SOAP.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#if defined(__BORLANDC__)
-#pragma option push -w-8060
-#pragma option push -w-8004
-#endif
-
-#include "KMS_CAH.h"
-
-namespace KMS_CA {
-
-SOAP_SOURCE_STAMP("@(#) KMS_CAC.cpp ver 2.7.17 2010-06-08 19:16:38 GMT")
-
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serializeheader(struct soap *soap)
-{
- if (soap->header)
- soap_serialize_SOAP_ENV__Header(soap, soap->header);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_putheader(struct soap *soap)
-{
- if (soap->header)
- { soap->part = SOAP_IN_HEADER;
- if (soap_out_SOAP_ENV__Header(soap, "SOAP-ENV:Header", 0, soap->header, NULL))
- return soap->error;
- soap->part = SOAP_END_HEADER;
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_getheader(struct soap *soap)
-{
- soap->part = SOAP_IN_HEADER;
- soap->header = soap_in_SOAP_ENV__Header(soap, "SOAP-ENV:Header", NULL, NULL);
- soap->part = SOAP_END_HEADER;
- return soap->header == NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_header(struct soap *soap)
-{
- if (!soap->header)
- { if ((soap->header = soap_new_SOAP_ENV__Header(soap, -1)))
- soap_default_SOAP_ENV__Header(soap, soap->header);
- }
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_fault(struct soap *soap)
-{
- if (!soap->fault)
- { soap->fault = soap_new_SOAP_ENV__Fault(soap, -1);
- if (!soap->fault)
- return;
- soap_default_SOAP_ENV__Fault(soap, soap->fault);
- }
- if (soap->version == 2 && !soap->fault->SOAP_ENV__Code)
- { soap->fault->SOAP_ENV__Code = soap_new_SOAP_ENV__Code(soap, -1);
- soap_default_SOAP_ENV__Code(soap, soap->fault->SOAP_ENV__Code);
- }
- if (soap->version == 2 && !soap->fault->SOAP_ENV__Reason)
- { soap->fault->SOAP_ENV__Reason = soap_new_SOAP_ENV__Reason(soap, -1);
- soap_default_SOAP_ENV__Reason(soap, soap->fault->SOAP_ENV__Reason);
- }
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serializefault(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->fault)
- soap_serialize_SOAP_ENV__Fault(soap, soap->fault);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_putfault(struct soap *soap)
-{
- if (soap->fault)
- return soap_put_SOAP_ENV__Fault(soap, soap->fault, "SOAP-ENV:Fault", NULL);
- return SOAP_OK;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_getfault(struct soap *soap)
-{
- return (soap->fault = soap_get_SOAP_ENV__Fault(soap, NULL, "SOAP-ENV:Fault", NULL)) == NULL;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultcode(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 2)
- return (const char**)&soap->fault->SOAP_ENV__Code->SOAP_ENV__Value;
- return (const char**)&soap->fault->faultcode;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultsubcode(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 2)
- { if (!soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode)
- { soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode = soap_new_SOAP_ENV__Code(soap, -1);
- soap_default_SOAP_ENV__Code(soap, soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode);
- }
- return (const char**)&soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode->SOAP_ENV__Value;
- }
- return (const char**)&soap->fault->faultcode;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultstring(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 2)
- return (const char**)&soap->fault->SOAP_ENV__Reason->SOAP_ENV__Text;
- return (const char**)&soap->fault->faultstring;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultdetail(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 1)
- { if (!soap->fault->detail)
- { soap->fault->detail = (struct SOAP_ENV__Detail*)soap_malloc(soap, sizeof(struct SOAP_ENV__Detail));
- soap_default_SOAP_ENV__Detail(soap, soap->fault->detail);
- }
- return (const char**)&soap->fault->detail->__any;
- }
- if (!soap->fault->SOAP_ENV__Detail)
- { soap->fault->SOAP_ENV__Detail = soap_new_SOAP_ENV__Detail(soap, -1);
- soap_default_SOAP_ENV__Detail(soap, soap->fault->SOAP_ENV__Detail);
- }
- return (const char**)&soap->fault->SOAP_ENV__Detail->__any;
-}
-
-#endif
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 int SOAP_FMAC4 soap_getindependent(struct soap *soap)
-{
- int t;
- if (soap->version == 1)
- { for (;;)
- { if (!soap_getelement(soap, &t))
- if (soap->error || soap_ignore_element(soap))
- break;
- }
- }
- if (soap->error == SOAP_NO_TAG || soap->error == SOAP_EOF)
- soap->error = SOAP_OK;
- return soap->error;
-}
-#endif
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 void * SOAP_FMAC4 soap_getelement(struct soap *soap, int *type)
-{
- if (soap_peek_element(soap))
- return NULL;
- if (!*soap->id || !(*type = soap_lookup_type(soap, soap->id)))
- *type = soap_lookup_type(soap, soap->href);
- switch (*type)
- {
- case SOAP_TYPE_KMS_CA_byte:
- return soap_in_byte(soap, NULL, NULL, "xsd:byte");
- case SOAP_TYPE_KMS_CA_int:
- return soap_in_int(soap, NULL, NULL, "xsd:int");
- case SOAP_TYPE_KMS_CA_xsd__int:
- return soap_in_xsd__int(soap, NULL, NULL, "xsd:int");
- case SOAP_TYPE_KMS_CA_long:
- return soap_in_long(soap, NULL, NULL, "xsd:long");
- case SOAP_TYPE_KMS_CA_xsd__long:
- return soap_in_xsd__long(soap, NULL, NULL, "xsd:long");
- case SOAP_TYPE_KMS_CA_LONG64:
- return soap_in_LONG64(soap, NULL, NULL, "xsd:long");
- case SOAP_TYPE_KMS_CA_xsd__float:
- return soap_in_xsd__float(soap, NULL, NULL, "xsd:float");
- case SOAP_TYPE_KMS_CA_float:
- return soap_in_float(soap, NULL, NULL, "xsd:float");
- case SOAP_TYPE_KMS_CA_unsignedByte:
- return soap_in_unsignedByte(soap, NULL, NULL, "xsd:unsignedByte");
- case SOAP_TYPE_KMS_CA_unsignedInt:
- return soap_in_unsignedInt(soap, NULL, NULL, "xsd:unsignedInt");
- case SOAP_TYPE_KMS_CA_xsd__boolean:
- return soap_in_xsd__boolean(soap, NULL, NULL, "xsd:boolean");
- case SOAP_TYPE_KMS_CA_bool:
- return soap_in_bool(soap, NULL, NULL, "xsd:boolean");
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClock:
- return soap_in_KMS_CA__RetrieveLocalClock(soap, NULL, NULL, "KMS-CA:RetrieveLocalClock");
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClockResponse:
- return soap_in_KMS_CA__RetrieveLocalClockResponse(soap, NULL, NULL, "KMS-CA:RetrieveLocalClockResponse");
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificate:
- return soap_in_KMS_CA__RetrieveRootCACertificate(soap, NULL, NULL, "KMS-CA:RetrieveRootCACertificate");
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificateResponse:
- return soap_in_KMS_CA__RetrieveRootCACertificateResponse(soap, NULL, NULL, "KMS-CA:RetrieveRootCACertificateResponse");
- case SOAP_TYPE_KMS_CA_xsd__hexBinary:
- return soap_in_xsd__hexBinary(soap, NULL, NULL, "xsd:hexBinary");
- case SOAP_TYPE_KMS_CA_PointerTounsignedByte:
- return soap_in_PointerTounsignedByte(soap, NULL, NULL, "xsd:unsignedByte");
- case SOAP_TYPE_KMS_CA_xsd__duration:
- { char **s;
- s = soap_in_xsd__duration(soap, NULL, NULL, "xsd:duration");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_KMS_CA_xsd__dateTime:
- { char **s;
- s = soap_in_xsd__dateTime(soap, NULL, NULL, "xsd:dateTime");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_KMS_CA_xsd__string:
- { char **s;
- s = soap_in_xsd__string(soap, NULL, NULL, "xsd:string");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_KMS_CA__QName:
- { char **s;
- s = soap_in__QName(soap, NULL, NULL, "xsd:QName");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_KMS_CA_string:
- { char **s;
- s = soap_in_string(soap, NULL, NULL, "xsd:string");
- return s ? *s : NULL;
- }
- default:
- { const char *t = soap->type;
- if (!*t)
- t = soap->tag;
- if (!soap_match_tag(soap, t, "xsd:byte"))
- { *type = SOAP_TYPE_KMS_CA_byte;
- return soap_in_byte(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:int"))
- { *type = SOAP_TYPE_KMS_CA_int;
- return soap_in_int(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:int"))
- { *type = SOAP_TYPE_KMS_CA_xsd__int;
- return soap_in_xsd__int(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:long"))
- { *type = SOAP_TYPE_KMS_CA_long;
- return soap_in_long(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:long"))
- { *type = SOAP_TYPE_KMS_CA_xsd__long;
- return soap_in_xsd__long(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:long"))
- { *type = SOAP_TYPE_KMS_CA_LONG64;
- return soap_in_LONG64(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:float"))
- { *type = SOAP_TYPE_KMS_CA_xsd__float;
- return soap_in_xsd__float(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:float"))
- { *type = SOAP_TYPE_KMS_CA_float;
- return soap_in_float(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:unsignedByte"))
- { *type = SOAP_TYPE_KMS_CA_unsignedByte;
- return soap_in_unsignedByte(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:unsignedInt"))
- { *type = SOAP_TYPE_KMS_CA_unsignedInt;
- return soap_in_unsignedInt(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:boolean"))
- { *type = SOAP_TYPE_KMS_CA_xsd__boolean;
- return soap_in_xsd__boolean(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:boolean"))
- { *type = SOAP_TYPE_KMS_CA_bool;
- return soap_in_bool(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-CA:RetrieveLocalClock"))
- { *type = SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClock;
- return soap_in_KMS_CA__RetrieveLocalClock(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-CA:RetrieveLocalClockResponse"))
- { *type = SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClockResponse;
- return soap_in_KMS_CA__RetrieveLocalClockResponse(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-CA:RetrieveRootCACertificate"))
- { *type = SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificate;
- return soap_in_KMS_CA__RetrieveRootCACertificate(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-CA:RetrieveRootCACertificateResponse"))
- { *type = SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificateResponse;
- return soap_in_KMS_CA__RetrieveRootCACertificateResponse(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:hexBinary"))
- { *type = SOAP_TYPE_KMS_CA_xsd__hexBinary;
- return soap_in_xsd__hexBinary(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:duration"))
- { char **s;
- *type = SOAP_TYPE_KMS_CA_xsd__duration;
- s = soap_in_xsd__duration(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:dateTime"))
- { char **s;
- *type = SOAP_TYPE_KMS_CA_xsd__dateTime;
- s = soap_in_xsd__dateTime(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:string"))
- { char **s;
- *type = SOAP_TYPE_KMS_CA_xsd__string;
- s = soap_in_xsd__string(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:QName"))
- { char **s;
- *type = SOAP_TYPE_KMS_CA__QName;
- s = soap_in__QName(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:string"))
- { char **s;
- *type = SOAP_TYPE_KMS_CA_string;
- s = soap_in_string(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- t = soap->tag;
- }
- }
- soap->error = SOAP_TAG_MISMATCH;
- return NULL;
-}
-#endif
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_ignore_element(struct soap *soap)
-{
- if (!soap_peek_element(soap))
- { int t;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Unexpected element '%s' in input (level=%u, %d)\n", soap->tag, soap->level, soap->body));
- if (soap->mustUnderstand && !soap->other)
- return soap->error = SOAP_MUSTUNDERSTAND;
- if (((soap->mode & SOAP_XML_STRICT) && soap->part != SOAP_IN_HEADER) || !soap_match_tag(soap, soap->tag, "SOAP-ENV:"))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "REJECTING element '%s'\n", soap->tag));
- return soap->error = SOAP_TAG_MISMATCH;
- }
- if (!*soap->id || !soap_getelement(soap, &t))
- { soap->peeked = 0;
- if (soap->fignore)
- soap->error = soap->fignore(soap, soap->tag);
- else
- soap->error = SOAP_OK;
- DBGLOG(TEST, if (!soap->error) SOAP_MESSAGE(fdebug, "IGNORING element '%s'\n", soap->tag));
- if (!soap->error && soap->body)
- { soap->level++;
- while (!soap_ignore_element(soap))
- ;
- if (soap->error == SOAP_NO_TAG)
- soap->error = soap_element_end_in(soap, NULL);
- }
- }
- }
- return soap->error;
-}
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 int SOAP_FMAC4 soap_putindependent(struct soap *soap)
-{
- int i;
- struct soap_plist *pp;
- if (soap->version == 1 && soap->encodingStyle && !(soap->mode & (SOAP_XML_TREE | SOAP_XML_GRAPH)))
- for (i = 0; i < SOAP_PTRHASH; i++)
- for (pp = soap->pht[i]; pp; pp = pp->next)
- if (pp->mark1 == 2 || pp->mark2 == 2)
- if (soap_putelement(soap, pp->ptr, "id", pp->id, pp->type))
- return soap->error;
- return SOAP_OK;
-}
-#endif
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 int SOAP_FMAC4 soap_putelement(struct soap *soap, const void *ptr, const char *tag, int id, int type)
-{
- switch (type)
- {
- case SOAP_TYPE_KMS_CA_byte:
- return soap_out_byte(soap, tag, id, (const char *)ptr, "xsd:byte");
- case SOAP_TYPE_KMS_CA_int:
- return soap_out_int(soap, tag, id, (const int *)ptr, "xsd:int");
- case SOAP_TYPE_KMS_CA_xsd__int:
- return soap_out_xsd__int(soap, tag, id, (const long *)ptr, "xsd:int");
- case SOAP_TYPE_KMS_CA_long:
- return soap_out_long(soap, tag, id, (const long *)ptr, "xsd:long");
- case SOAP_TYPE_KMS_CA_xsd__long:
- return soap_out_xsd__long(soap, tag, id, (const LONG64 *)ptr, "xsd:long");
- case SOAP_TYPE_KMS_CA_LONG64:
- return soap_out_LONG64(soap, tag, id, (const LONG64 *)ptr, "xsd:long");
- case SOAP_TYPE_KMS_CA_xsd__float:
- return soap_out_xsd__float(soap, tag, id, (const float *)ptr, "xsd:float");
- case SOAP_TYPE_KMS_CA_float:
- return soap_out_float(soap, tag, id, (const float *)ptr, "xsd:float");
- case SOAP_TYPE_KMS_CA_unsignedByte:
- return soap_out_unsignedByte(soap, tag, id, (const unsigned char *)ptr, "xsd:unsignedByte");
- case SOAP_TYPE_KMS_CA_unsignedInt:
- return soap_out_unsignedInt(soap, tag, id, (const unsigned int *)ptr, "xsd:unsignedInt");
- case SOAP_TYPE_KMS_CA_xsd__boolean:
- return soap_out_xsd__boolean(soap, tag, id, (const bool *)ptr, "xsd:boolean");
- case SOAP_TYPE_KMS_CA_bool:
- return soap_out_bool(soap, tag, id, (const bool *)ptr, "xsd:boolean");
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClock:
- return soap_out_KMS_CA__RetrieveLocalClock(soap, tag, id, (const struct KMS_CA__RetrieveLocalClock *)ptr, "KMS-CA:RetrieveLocalClock");
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClockResponse:
- return soap_out_KMS_CA__RetrieveLocalClockResponse(soap, tag, id, (const struct KMS_CA__RetrieveLocalClockResponse *)ptr, "KMS-CA:RetrieveLocalClockResponse");
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificate:
- return soap_out_KMS_CA__RetrieveRootCACertificate(soap, tag, id, (const struct KMS_CA__RetrieveRootCACertificate *)ptr, "KMS-CA:RetrieveRootCACertificate");
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificateResponse:
- return soap_out_KMS_CA__RetrieveRootCACertificateResponse(soap, tag, id, (const struct KMS_CA__RetrieveRootCACertificateResponse *)ptr, "KMS-CA:RetrieveRootCACertificateResponse");
- case SOAP_TYPE_KMS_CA_xsd__hexBinary:
- return soap_out_xsd__hexBinary(soap, tag, id, (const struct xsd__hexBinary *)ptr, "xsd:hexBinary");
- case SOAP_TYPE_KMS_CA_PointerTounsignedByte:
- return soap_out_PointerTounsignedByte(soap, tag, id, (unsigned char *const*)ptr, "xsd:unsignedByte");
- case SOAP_TYPE_KMS_CA_xsd__duration:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:duration");
- case SOAP_TYPE_KMS_CA_xsd__dateTime:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:dateTime");
- case SOAP_TYPE_KMS_CA_xsd__string:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:string");
- case SOAP_TYPE_KMS_CA__QName:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:QName");
- case SOAP_TYPE_KMS_CA_string:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:string");
- }
- return SOAP_OK;
-}
-#endif
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 void SOAP_FMAC4 soap_markelement(struct soap *soap, const void *ptr, int type)
-{
- (void)soap; (void)ptr; (void)type; /* appease -Wall -Werror */
- switch (type)
- {
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClock:
- soap_serialize_KMS_CA__RetrieveLocalClock(soap, (const struct KMS_CA__RetrieveLocalClock *)ptr);
- break;
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClockResponse:
- soap_serialize_KMS_CA__RetrieveLocalClockResponse(soap, (const struct KMS_CA__RetrieveLocalClockResponse *)ptr);
- break;
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificate:
- soap_serialize_KMS_CA__RetrieveRootCACertificate(soap, (const struct KMS_CA__RetrieveRootCACertificate *)ptr);
- break;
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificateResponse:
- soap_serialize_KMS_CA__RetrieveRootCACertificateResponse(soap, (const struct KMS_CA__RetrieveRootCACertificateResponse *)ptr);
- break;
- case SOAP_TYPE_KMS_CA_xsd__hexBinary:
- soap_serialize_xsd__hexBinary(soap, (const struct xsd__hexBinary *)ptr);
- break;
- case SOAP_TYPE_KMS_CA_PointerTounsignedByte:
- soap_serialize_PointerTounsignedByte(soap, (unsigned char *const*)ptr);
- break;
- case SOAP_TYPE_KMS_CA_xsd__duration:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_KMS_CA_xsd__dateTime:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_KMS_CA_xsd__string:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_KMS_CA__QName:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_KMS_CA_string:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- }
-}
-#endif
-
-SOAP_FMAC3 void * SOAP_FMAC4 soap_instantiate(struct soap *soap, int t, const char *type, const char *arrayType, size_t *n)
-{
- switch (t)
- {
- case SOAP_TYPE_KMS_CA_xsd__hexBinary:
- return (void*)soap_instantiate_xsd__hexBinary(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificateResponse:
- return (void*)soap_instantiate_KMS_CA__RetrieveRootCACertificateResponse(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificate:
- return (void*)soap_instantiate_KMS_CA__RetrieveRootCACertificate(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClockResponse:
- return (void*)soap_instantiate_KMS_CA__RetrieveLocalClockResponse(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClock:
- return (void*)soap_instantiate_KMS_CA__RetrieveLocalClock(soap, -1, type, arrayType, n);
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_CA_SOAP_ENV__Header:
- return (void*)soap_instantiate_SOAP_ENV__Header(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_CA_SOAP_ENV__Code:
- return (void*)soap_instantiate_SOAP_ENV__Code(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_CA_SOAP_ENV__Detail:
- return (void*)soap_instantiate_SOAP_ENV__Detail(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_CA_SOAP_ENV__Reason:
- return (void*)soap_instantiate_SOAP_ENV__Reason(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_CA_SOAP_ENV__Fault:
- return (void*)soap_instantiate_SOAP_ENV__Fault(soap, -1, type, arrayType, n);
-#endif
- }
- return NULL;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_fdelete(struct soap_clist *p)
-{ switch (p->type)
- {
- case SOAP_TYPE_KMS_CA_xsd__hexBinary:
- if (p->size < 0)
- SOAP_DELETE((struct xsd__hexBinary*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct xsd__hexBinary*)p->ptr);
- break;
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificateResponse:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_CA__RetrieveRootCACertificateResponse*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_CA__RetrieveRootCACertificateResponse*)p->ptr);
- break;
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificate:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_CA__RetrieveRootCACertificate*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_CA__RetrieveRootCACertificate*)p->ptr);
- break;
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClockResponse:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_CA__RetrieveLocalClockResponse*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_CA__RetrieveLocalClockResponse*)p->ptr);
- break;
- case SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClock:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_CA__RetrieveLocalClock*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_CA__RetrieveLocalClock*)p->ptr);
- break;
- case SOAP_TYPE_KMS_CA_SOAP_ENV__Header:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Header*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Header*)p->ptr);
- break;
- case SOAP_TYPE_KMS_CA_SOAP_ENV__Code:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Code*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Code*)p->ptr);
- break;
- case SOAP_TYPE_KMS_CA_SOAP_ENV__Detail:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Detail*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Detail*)p->ptr);
- break;
- case SOAP_TYPE_KMS_CA_SOAP_ENV__Reason:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Reason*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Reason*)p->ptr);
- break;
- case SOAP_TYPE_KMS_CA_SOAP_ENV__Fault:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Fault*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Fault*)p->ptr);
- break;
- default: return SOAP_ERR;
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 void* SOAP_FMAC4 soap_class_id_enter(struct soap *soap, const char *id, void *p, int t, size_t n, const char *type, const char *arrayType)
-{ return soap_id_enter(soap, id, p, t, n, 0, type, arrayType, soap_instantiate);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_byte(struct soap *soap, char *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_byte
- *a = SOAP_DEFAULT_byte;
-#else
- *a = (char)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_byte(struct soap *soap, const char *tag, int id, const char *a, const char *type)
-{
- return soap_outbyte(soap, tag, id, a, type, SOAP_TYPE_KMS_CA_byte);
-}
-
-SOAP_FMAC3 char * SOAP_FMAC4 soap_in_byte(struct soap *soap, const char *tag, char *a, const char *type)
-{ char *p;
- p = soap_inbyte(soap, tag, a, type, SOAP_TYPE_KMS_CA_byte);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_byte(struct soap *soap, const char *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_byte);
- if (soap_out_byte(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char * SOAP_FMAC4 soap_get_byte(struct soap *soap, char *p, const char *tag, const char *type)
-{
- if ((p = soap_in_byte(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_int(struct soap *soap, int *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_int
- *a = SOAP_DEFAULT_int;
-#else
- *a = (int)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_int(struct soap *soap, const char *tag, int id, const int *a, const char *type)
-{
- return soap_outint(soap, tag, id, a, type, SOAP_TYPE_KMS_CA_int);
-}
-
-SOAP_FMAC3 int * SOAP_FMAC4 soap_in_int(struct soap *soap, const char *tag, int *a, const char *type)
-{ int *p;
- p = soap_inint(soap, tag, a, type, SOAP_TYPE_KMS_CA_int);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_int(struct soap *soap, const int *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_int);
- if (soap_out_int(soap, tag?tag:"int", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 int * SOAP_FMAC4 soap_get_int(struct soap *soap, int *p, const char *tag, const char *type)
-{
- if ((p = soap_in_int(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__int(struct soap *soap, const char *tag, int id, const long *a, const char *type)
-{
- return soap_outlong(soap, tag, id, a, type, SOAP_TYPE_KMS_CA_xsd__int);
-}
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_in_xsd__int(struct soap *soap, const char *tag, long *a, const char *type)
-{ long *p;
- p = soap_inlong(soap, tag, a, type, SOAP_TYPE_KMS_CA_xsd__int);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__int(struct soap *soap, const long *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_xsd__int);
- if (soap_out_xsd__int(soap, tag?tag:"xsd:int", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_get_xsd__int(struct soap *soap, long *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__int(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_long(struct soap *soap, long *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_long
- *a = SOAP_DEFAULT_long;
-#else
- *a = (long)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_long(struct soap *soap, const char *tag, int id, const long *a, const char *type)
-{
- return soap_outlong(soap, tag, id, a, type, SOAP_TYPE_KMS_CA_long);
-}
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_in_long(struct soap *soap, const char *tag, long *a, const char *type)
-{ long *p;
- p = soap_inlong(soap, tag, a, type, SOAP_TYPE_KMS_CA_long);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_long(struct soap *soap, const long *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_long);
- if (soap_out_long(soap, tag?tag:"long", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_get_long(struct soap *soap, long *p, const char *tag, const char *type)
-{
- if ((p = soap_in_long(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__long(struct soap *soap, const char *tag, int id, const LONG64 *a, const char *type)
-{
- return soap_outLONG64(soap, tag, id, a, type, SOAP_TYPE_KMS_CA_xsd__long);
-}
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_in_xsd__long(struct soap *soap, const char *tag, LONG64 *a, const char *type)
-{ LONG64 *p;
- p = soap_inLONG64(soap, tag, a, type, SOAP_TYPE_KMS_CA_xsd__long);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__long(struct soap *soap, const LONG64 *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_xsd__long);
- if (soap_out_xsd__long(soap, tag?tag:"xsd:long", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_get_xsd__long(struct soap *soap, LONG64 *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__long(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_LONG64(struct soap *soap, LONG64 *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_LONG64
- *a = SOAP_DEFAULT_LONG64;
-#else
- *a = (LONG64)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_LONG64(struct soap *soap, const char *tag, int id, const LONG64 *a, const char *type)
-{
- return soap_outLONG64(soap, tag, id, a, type, SOAP_TYPE_KMS_CA_LONG64);
-}
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_in_LONG64(struct soap *soap, const char *tag, LONG64 *a, const char *type)
-{ LONG64 *p;
- p = soap_inLONG64(soap, tag, a, type, SOAP_TYPE_KMS_CA_LONG64);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_LONG64(struct soap *soap, const LONG64 *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_LONG64);
- if (soap_out_LONG64(soap, tag?tag:"long", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_get_LONG64(struct soap *soap, LONG64 *p, const char *tag, const char *type)
-{
- if ((p = soap_in_LONG64(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__float(struct soap *soap, const char *tag, int id, const float *a, const char *type)
-{
- return soap_outfloat(soap, tag, id, a, type, SOAP_TYPE_KMS_CA_xsd__float);
-}
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_in_xsd__float(struct soap *soap, const char *tag, float *a, const char *type)
-{ float *p;
- p = soap_infloat(soap, tag, a, type, SOAP_TYPE_KMS_CA_xsd__float);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__float(struct soap *soap, const float *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_xsd__float);
- if (soap_out_xsd__float(soap, tag?tag:"xsd:float", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_get_xsd__float(struct soap *soap, float *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__float(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_float(struct soap *soap, float *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_float
- *a = SOAP_DEFAULT_float;
-#else
- *a = (float)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_float(struct soap *soap, const char *tag, int id, const float *a, const char *type)
-{
- return soap_outfloat(soap, tag, id, a, type, SOAP_TYPE_KMS_CA_float);
-}
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_in_float(struct soap *soap, const char *tag, float *a, const char *type)
-{ float *p;
- p = soap_infloat(soap, tag, a, type, SOAP_TYPE_KMS_CA_float);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_float(struct soap *soap, const float *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_float);
- if (soap_out_float(soap, tag?tag:"float", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_get_float(struct soap *soap, float *p, const char *tag, const char *type)
-{
- if ((p = soap_in_float(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_unsignedByte(struct soap *soap, unsigned char *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_unsignedByte
- *a = SOAP_DEFAULT_unsignedByte;
-#else
- *a = (unsigned char)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_unsignedByte(struct soap *soap, const char *tag, int id, const unsigned char *a, const char *type)
-{
- return soap_outunsignedByte(soap, tag, id, a, type, SOAP_TYPE_KMS_CA_unsignedByte);
-}
-
-SOAP_FMAC3 unsigned char * SOAP_FMAC4 soap_in_unsignedByte(struct soap *soap, const char *tag, unsigned char *a, const char *type)
-{ unsigned char *p;
- p = soap_inunsignedByte(soap, tag, a, type, SOAP_TYPE_KMS_CA_unsignedByte);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_unsignedByte(struct soap *soap, const unsigned char *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_unsignedByte);
- if (soap_out_unsignedByte(soap, tag?tag:"unsignedByte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 unsigned char * SOAP_FMAC4 soap_get_unsignedByte(struct soap *soap, unsigned char *p, const char *tag, const char *type)
-{
- if ((p = soap_in_unsignedByte(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_unsignedInt(struct soap *soap, unsigned int *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_unsignedInt
- *a = SOAP_DEFAULT_unsignedInt;
-#else
- *a = (unsigned int)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_unsignedInt(struct soap *soap, const char *tag, int id, const unsigned int *a, const char *type)
-{
- return soap_outunsignedInt(soap, tag, id, a, type, SOAP_TYPE_KMS_CA_unsignedInt);
-}
-
-SOAP_FMAC3 unsigned int * SOAP_FMAC4 soap_in_unsignedInt(struct soap *soap, const char *tag, unsigned int *a, const char *type)
-{ unsigned int *p;
- p = soap_inunsignedInt(soap, tag, a, type, SOAP_TYPE_KMS_CA_unsignedInt);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_unsignedInt(struct soap *soap, const unsigned int *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_unsignedInt);
- if (soap_out_unsignedInt(soap, tag?tag:"unsignedInt", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 unsigned int * SOAP_FMAC4 soap_get_unsignedInt(struct soap *soap, unsigned int *p, const char *tag, const char *type)
-{
- if ((p = soap_in_unsignedInt(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_xsd__boolean2s(struct soap *soap, bool n)
-{ return soap_bool2s(soap, n);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__boolean(struct soap *soap, const char *tag, int id, const bool *a, const char *type)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_CA_xsd__boolean), type) || soap_send(soap, soap_xsd__boolean2s(soap, *a)))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2xsd__boolean(struct soap *soap, const char *s, bool *a)
-{
- return soap_s2bool(soap, s, a);
-}
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_in_xsd__boolean(struct soap *soap, const char *tag, bool *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
- if (*soap->type && soap_match_tag(soap, soap->type, type) && soap_match_tag(soap, soap->type, ":boolean"))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- a = (bool *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_CA_xsd__boolean, sizeof(bool), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- if (soap->body && !*soap->href)
- { if (!a || soap_s2xsd__boolean(soap, soap_value(soap), a) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (bool *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_CA_xsd__boolean, 0, sizeof(bool), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__boolean(struct soap *soap, const bool *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_xsd__boolean);
- if (soap_out_xsd__boolean(soap, tag?tag:"xsd:boolean", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_get_xsd__boolean(struct soap *soap, bool *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__boolean(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_bool(struct soap *soap, bool *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_bool
- *a = SOAP_DEFAULT_bool;
-#else
- *a = (bool)0;
-#endif
-}
-
-static const struct soap_code_map soap_codes_bool[] =
-{ { (long)false, "false" },
- { (long)true, "true" },
- { 0, NULL }
-};
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_bool2s(struct soap *soap, bool n)
-{
- (void)soap; /* appease -Wall -Werror */
-return soap_code_str(soap_codes_bool, n!=0);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_bool(struct soap *soap, const char *tag, int id, const bool *a, const char *type)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_CA_bool), type) || soap_send(soap, soap_bool2s(soap, *a)))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2bool(struct soap *soap, const char *s, bool *a)
-{
- const struct soap_code_map *map;
- if (!s)
- return soap->error;
- map = soap_code(soap_codes_bool, s);
- if (map)
- *a = (bool)(map->code != 0);
- else
- { long n;
- if (soap_s2long(soap, s, &n) || n < 0 || n > 1)
- return soap->error = SOAP_TYPE;
- *a = (bool)(n != 0);
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_in_bool(struct soap *soap, const char *tag, bool *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
- if (*soap->type && soap_match_tag(soap, soap->type, type) && soap_match_tag(soap, soap->type, ":boolean"))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- a = (bool *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_CA_bool, sizeof(bool), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- if (soap->body && !*soap->href)
- { if (!a || soap_s2bool(soap, soap_value(soap), a) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (bool *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_CA_bool, 0, sizeof(bool), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_bool(struct soap *soap, const bool *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_bool);
- if (soap_out_bool(soap, tag?tag:"boolean", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_get_bool(struct soap *soap, bool *p, const char *tag, const char *type)
-{
- if ((p = soap_in_bool(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Fault(struct soap *soap, struct SOAP_ENV__Fault *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default__QName(soap, &a->faultcode);
- soap_default_string(soap, &a->faultstring);
- soap_default_string(soap, &a->faultactor);
- a->detail = NULL;
- a->SOAP_ENV__Code = NULL;
- a->SOAP_ENV__Reason = NULL;
- soap_default_string(soap, &a->SOAP_ENV__Node);
- soap_default_string(soap, &a->SOAP_ENV__Role);
- a->SOAP_ENV__Detail = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Fault(struct soap *soap, const struct SOAP_ENV__Fault *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize__QName(soap, &a->faultcode);
- soap_serialize_string(soap, &a->faultstring);
- soap_serialize_string(soap, &a->faultactor);
- soap_serialize_PointerToSOAP_ENV__Detail(soap, &a->detail);
- soap_serialize_PointerToSOAP_ENV__Code(soap, &a->SOAP_ENV__Code);
- soap_serialize_PointerToSOAP_ENV__Reason(soap, &a->SOAP_ENV__Reason);
- soap_serialize_string(soap, &a->SOAP_ENV__Node);
- soap_serialize_string(soap, &a->SOAP_ENV__Role);
- soap_serialize_PointerToSOAP_ENV__Detail(soap, &a->SOAP_ENV__Detail);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Fault(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Fault *a, const char *type)
-{
- const char *soap_tmp_faultcode = soap_QName2s(soap, a->faultcode);
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_CA_SOAP_ENV__Fault), type))
- return soap->error;
- if (soap_out__QName(soap, "faultcode", -1, (char*const*)&soap_tmp_faultcode, ""))
- return soap->error;
- if (soap_out_string(soap, "faultstring", -1, &a->faultstring, "xsd:string"))
- return soap->error;
- if (soap_out_string(soap, "faultactor", -1, &a->faultactor, "xsd:string"))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Detail(soap, "detail", -1, &a->detail, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Code", -1, &a->SOAP_ENV__Code, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Reason(soap, "SOAP-ENV:Reason", -1, &a->SOAP_ENV__Reason, ""))
- return soap->error;
- if (soap_out_string(soap, "SOAP-ENV:Node", -1, &a->SOAP_ENV__Node, ""))
- return soap->error;
- if (soap_out_string(soap, "SOAP-ENV:Role", -1, &a->SOAP_ENV__Role, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Detail(soap, "SOAP-ENV:Detail", -1, &a->SOAP_ENV__Detail, ""))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_in_SOAP_ENV__Fault(struct soap *soap, const char *tag, struct SOAP_ENV__Fault *a, const char *type)
-{
- size_t soap_flag_faultcode = 1;
- size_t soap_flag_faultstring = 1;
- size_t soap_flag_faultactor = 1;
- size_t soap_flag_detail = 1;
- size_t soap_flag_SOAP_ENV__Code = 1;
- size_t soap_flag_SOAP_ENV__Reason = 1;
- size_t soap_flag_SOAP_ENV__Node = 1;
- size_t soap_flag_SOAP_ENV__Role = 1;
- size_t soap_flag_SOAP_ENV__Detail = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Fault *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_CA_SOAP_ENV__Fault, sizeof(struct SOAP_ENV__Fault), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Fault(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_faultcode && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in__QName(soap, "faultcode", &a->faultcode, ""))
- { soap_flag_faultcode--;
- continue;
- }
- if (soap_flag_faultstring && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "faultstring", &a->faultstring, "xsd:string"))
- { soap_flag_faultstring--;
- continue;
- }
- if (soap_flag_faultactor && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "faultactor", &a->faultactor, "xsd:string"))
- { soap_flag_faultactor--;
- continue;
- }
- if (soap_flag_detail && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Detail(soap, "detail", &a->detail, ""))
- { soap_flag_detail--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Code && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Code", &a->SOAP_ENV__Code, ""))
- { soap_flag_SOAP_ENV__Code--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Reason && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Reason(soap, "SOAP-ENV:Reason", &a->SOAP_ENV__Reason, ""))
- { soap_flag_SOAP_ENV__Reason--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Node && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "SOAP-ENV:Node", &a->SOAP_ENV__Node, "xsd:string"))
- { soap_flag_SOAP_ENV__Node--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Role && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "SOAP-ENV:Role", &a->SOAP_ENV__Role, "xsd:string"))
- { soap_flag_SOAP_ENV__Role--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Detail && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Detail(soap, "SOAP-ENV:Detail", &a->SOAP_ENV__Detail, ""))
- { soap_flag_SOAP_ENV__Detail--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Fault *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_CA_SOAP_ENV__Fault, 0, sizeof(struct SOAP_ENV__Fault), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Fault(struct soap *soap, const struct SOAP_ENV__Fault *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_SOAP_ENV__Fault);
- if (soap_out_SOAP_ENV__Fault(soap, tag?tag:"SOAP-ENV:Fault", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_get_SOAP_ENV__Fault(struct soap *soap, struct SOAP_ENV__Fault *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Fault(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Fault * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Fault(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Fault(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_CA_SOAP_ENV__Fault, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Fault);
- if (size)
- *size = sizeof(struct SOAP_ENV__Fault);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Fault[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Fault);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Fault*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Fault(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Fault %p -> %p\n", q, p));
- *(struct SOAP_ENV__Fault*)p = *(struct SOAP_ENV__Fault*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_string(soap, &a->SOAP_ENV__Text);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Reason(struct soap *soap, const struct SOAP_ENV__Reason *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_string(soap, &a->SOAP_ENV__Text);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Reason(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Reason *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_CA_SOAP_ENV__Reason), type))
- return soap->error;
- if (soap->lang)
- soap_set_attr(soap, "xml:lang", soap->lang, 1);
- if (soap_out_string(soap, "SOAP-ENV:Text", -1, &a->SOAP_ENV__Text, ""))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_in_SOAP_ENV__Reason(struct soap *soap, const char *tag, struct SOAP_ENV__Reason *a, const char *type)
-{
- size_t soap_flag_SOAP_ENV__Text = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Reason *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_CA_SOAP_ENV__Reason, sizeof(struct SOAP_ENV__Reason), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Reason(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_SOAP_ENV__Text && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "SOAP-ENV:Text", &a->SOAP_ENV__Text, "xsd:string"))
- { soap_flag_SOAP_ENV__Text--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Reason *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_CA_SOAP_ENV__Reason, 0, sizeof(struct SOAP_ENV__Reason), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Reason(struct soap *soap, const struct SOAP_ENV__Reason *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_SOAP_ENV__Reason);
- if (soap_out_SOAP_ENV__Reason(soap, tag?tag:"SOAP-ENV:Reason", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_get_SOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Reason(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Reason * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Reason(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Reason(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_CA_SOAP_ENV__Reason, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Reason);
- if (size)
- *size = sizeof(struct SOAP_ENV__Reason);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Reason[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Reason);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Reason*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Reason(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Reason %p -> %p\n", q, p));
- *(struct SOAP_ENV__Reason*)p = *(struct SOAP_ENV__Reason*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- a->__type = 0;
- a->fault = NULL;
- a->__any = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Detail(struct soap *soap, const struct SOAP_ENV__Detail *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_markelement(soap, a->fault, a->__type);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Detail(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Detail *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_CA_SOAP_ENV__Detail), type))
- return soap->error;
- if (soap_putelement(soap, a->fault, "fault", -1, a->__type))
- return soap->error;
- soap_outliteral(soap, "-any", &a->__any, NULL);
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_in_SOAP_ENV__Detail(struct soap *soap, const char *tag, struct SOAP_ENV__Detail *a, const char *type)
-{
- size_t soap_flag_fault = 1;
- size_t soap_flag___any = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Detail *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_CA_SOAP_ENV__Detail, sizeof(struct SOAP_ENV__Detail), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Detail(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_fault && soap->error == SOAP_TAG_MISMATCH)
- if ((a->fault = soap_getelement(soap, &a->__type)))
- { soap_flag_fault = 0;
- continue;
- }
- if (soap_flag___any && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_inliteral(soap, "-any", &a->__any))
- { soap_flag___any--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Detail *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_CA_SOAP_ENV__Detail, 0, sizeof(struct SOAP_ENV__Detail), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Detail(struct soap *soap, const struct SOAP_ENV__Detail *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_SOAP_ENV__Detail);
- if (soap_out_SOAP_ENV__Detail(soap, tag?tag:"SOAP-ENV:Detail", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_get_SOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Detail(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Detail * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Detail(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Detail(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_CA_SOAP_ENV__Detail, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Detail);
- if (size)
- *size = sizeof(struct SOAP_ENV__Detail);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Detail[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Detail);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Detail*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Detail(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Detail %p -> %p\n", q, p));
- *(struct SOAP_ENV__Detail*)p = *(struct SOAP_ENV__Detail*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default__QName(soap, &a->SOAP_ENV__Value);
- a->SOAP_ENV__Subcode = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Code(struct soap *soap, const struct SOAP_ENV__Code *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize__QName(soap, &a->SOAP_ENV__Value);
- soap_serialize_PointerToSOAP_ENV__Code(soap, &a->SOAP_ENV__Subcode);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Code(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Code *a, const char *type)
-{
- const char *soap_tmp_SOAP_ENV__Value = soap_QName2s(soap, a->SOAP_ENV__Value);
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_CA_SOAP_ENV__Code), type))
- return soap->error;
- if (soap_out__QName(soap, "SOAP-ENV:Value", -1, (char*const*)&soap_tmp_SOAP_ENV__Value, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Subcode", -1, &a->SOAP_ENV__Subcode, ""))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_in_SOAP_ENV__Code(struct soap *soap, const char *tag, struct SOAP_ENV__Code *a, const char *type)
-{
- size_t soap_flag_SOAP_ENV__Value = 1;
- size_t soap_flag_SOAP_ENV__Subcode = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Code *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_CA_SOAP_ENV__Code, sizeof(struct SOAP_ENV__Code), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Code(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_SOAP_ENV__Value && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in__QName(soap, "SOAP-ENV:Value", &a->SOAP_ENV__Value, ""))
- { soap_flag_SOAP_ENV__Value--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Subcode && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Subcode", &a->SOAP_ENV__Subcode, ""))
- { soap_flag_SOAP_ENV__Subcode--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Code *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_CA_SOAP_ENV__Code, 0, sizeof(struct SOAP_ENV__Code), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Code(struct soap *soap, const struct SOAP_ENV__Code *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_SOAP_ENV__Code);
- if (soap_out_SOAP_ENV__Code(soap, tag?tag:"SOAP-ENV:Code", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_get_SOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Code(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Code * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Code(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Code(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_CA_SOAP_ENV__Code, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Code);
- if (size)
- *size = sizeof(struct SOAP_ENV__Code);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Code[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Code);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Code*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Code(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Code %p -> %p\n", q, p));
- *(struct SOAP_ENV__Code*)p = *(struct SOAP_ENV__Code*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Header(struct soap *soap, struct SOAP_ENV__Header *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Header(struct soap *soap, const struct SOAP_ENV__Header *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Header(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Header *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_CA_SOAP_ENV__Header), type))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_in_SOAP_ENV__Header(struct soap *soap, const char *tag, struct SOAP_ENV__Header *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Header *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_CA_SOAP_ENV__Header, sizeof(struct SOAP_ENV__Header), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Header(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Header *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_CA_SOAP_ENV__Header, 0, sizeof(struct SOAP_ENV__Header), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Header(struct soap *soap, const struct SOAP_ENV__Header *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_SOAP_ENV__Header);
- if (soap_out_SOAP_ENV__Header(soap, tag?tag:"SOAP-ENV:Header", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_get_SOAP_ENV__Header(struct soap *soap, struct SOAP_ENV__Header *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Header(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Header * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Header(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Header(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_CA_SOAP_ENV__Header, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Header);
- if (size)
- *size = sizeof(struct SOAP_ENV__Header);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Header[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Header);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Header*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Header(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Header %p -> %p\n", q, p));
- *(struct SOAP_ENV__Header*)p = *(struct SOAP_ENV__Header*)q;
-}
-
-#endif
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_CA__RetrieveLocalClock(struct soap *soap, struct KMS_CA__RetrieveLocalClock *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__string(soap, &a->EntityID);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_CA__RetrieveLocalClock(struct soap *soap, const struct KMS_CA__RetrieveLocalClock *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__string(soap, &a->EntityID);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_CA__RetrieveLocalClock(struct soap *soap, const char *tag, int id, const struct KMS_CA__RetrieveLocalClock *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClock), type))
- return soap->error;
- if (soap_out_xsd__string(soap, "EntityID", -1, &a->EntityID, "xsd:string"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_CA__RetrieveLocalClock * SOAP_FMAC4 soap_in_KMS_CA__RetrieveLocalClock(struct soap *soap, const char *tag, struct KMS_CA__RetrieveLocalClock *a, const char *type)
-{
- size_t soap_flag_EntityID = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_CA__RetrieveLocalClock *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClock, sizeof(struct KMS_CA__RetrieveLocalClock), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_CA__RetrieveLocalClock(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_EntityID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "EntityID", &a->EntityID, "xsd:string"))
- { soap_flag_EntityID--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_CA__RetrieveLocalClock *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClock, 0, sizeof(struct KMS_CA__RetrieveLocalClock), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_CA__RetrieveLocalClock(struct soap *soap, const struct KMS_CA__RetrieveLocalClock *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClock);
- if (soap_out_KMS_CA__RetrieveLocalClock(soap, tag?tag:"KMS-CA:RetrieveLocalClock", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_CA__RetrieveLocalClock * SOAP_FMAC4 soap_get_KMS_CA__RetrieveLocalClock(struct soap *soap, struct KMS_CA__RetrieveLocalClock *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_CA__RetrieveLocalClock(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_CA__RetrieveLocalClock * SOAP_FMAC2 soap_instantiate_KMS_CA__RetrieveLocalClock(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_CA__RetrieveLocalClock(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClock, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_CA__RetrieveLocalClock);
- if (size)
- *size = sizeof(struct KMS_CA__RetrieveLocalClock);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_CA__RetrieveLocalClock[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_CA__RetrieveLocalClock);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_CA__RetrieveLocalClock*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_CA__RetrieveLocalClock(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_CA__RetrieveLocalClock %p -> %p\n", q, p));
- *(struct KMS_CA__RetrieveLocalClock*)p = *(struct KMS_CA__RetrieveLocalClock*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_CA__RetrieveLocalClockResponse(struct soap *soap, struct KMS_CA__RetrieveLocalClockResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__dateTime(soap, &a->CurrentTime);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_CA__RetrieveLocalClockResponse(struct soap *soap, const struct KMS_CA__RetrieveLocalClockResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__dateTime(soap, &a->CurrentTime);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_CA__RetrieveLocalClockResponse(struct soap *soap, const char *tag, int id, const struct KMS_CA__RetrieveLocalClockResponse *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClockResponse), type))
- return soap->error;
- if (soap_out_xsd__dateTime(soap, "CurrentTime", -1, &a->CurrentTime, "xsd:dateTime"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_CA__RetrieveLocalClockResponse * SOAP_FMAC4 soap_in_KMS_CA__RetrieveLocalClockResponse(struct soap *soap, const char *tag, struct KMS_CA__RetrieveLocalClockResponse *a, const char *type)
-{
- size_t soap_flag_CurrentTime = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_CA__RetrieveLocalClockResponse *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClockResponse, sizeof(struct KMS_CA__RetrieveLocalClockResponse), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_CA__RetrieveLocalClockResponse(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_CurrentTime && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__dateTime(soap, "CurrentTime", &a->CurrentTime, "xsd:dateTime"))
- { soap_flag_CurrentTime--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_CA__RetrieveLocalClockResponse *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClockResponse, 0, sizeof(struct KMS_CA__RetrieveLocalClockResponse), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_CA__RetrieveLocalClockResponse(struct soap *soap, const struct KMS_CA__RetrieveLocalClockResponse *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClockResponse);
- if (soap_out_KMS_CA__RetrieveLocalClockResponse(soap, tag?tag:"KMS-CA:RetrieveLocalClockResponse", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_CA__RetrieveLocalClockResponse * SOAP_FMAC4 soap_get_KMS_CA__RetrieveLocalClockResponse(struct soap *soap, struct KMS_CA__RetrieveLocalClockResponse *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_CA__RetrieveLocalClockResponse(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_CA__RetrieveLocalClockResponse * SOAP_FMAC2 soap_instantiate_KMS_CA__RetrieveLocalClockResponse(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_CA__RetrieveLocalClockResponse(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClockResponse, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_CA__RetrieveLocalClockResponse);
- if (size)
- *size = sizeof(struct KMS_CA__RetrieveLocalClockResponse);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_CA__RetrieveLocalClockResponse[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_CA__RetrieveLocalClockResponse);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_CA__RetrieveLocalClockResponse*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_CA__RetrieveLocalClockResponse(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_CA__RetrieveLocalClockResponse %p -> %p\n", q, p));
- *(struct KMS_CA__RetrieveLocalClockResponse*)p = *(struct KMS_CA__RetrieveLocalClockResponse*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_CA__RetrieveRootCACertificate(struct soap *soap, struct KMS_CA__RetrieveRootCACertificate *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__string(soap, &a->EntityID);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_CA__RetrieveRootCACertificate(struct soap *soap, const struct KMS_CA__RetrieveRootCACertificate *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__string(soap, &a->EntityID);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_CA__RetrieveRootCACertificate(struct soap *soap, const char *tag, int id, const struct KMS_CA__RetrieveRootCACertificate *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificate), type))
- return soap->error;
- if (soap_out_xsd__string(soap, "EntityID", -1, &a->EntityID, "xsd:string"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_CA__RetrieveRootCACertificate * SOAP_FMAC4 soap_in_KMS_CA__RetrieveRootCACertificate(struct soap *soap, const char *tag, struct KMS_CA__RetrieveRootCACertificate *a, const char *type)
-{
- size_t soap_flag_EntityID = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_CA__RetrieveRootCACertificate *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificate, sizeof(struct KMS_CA__RetrieveRootCACertificate), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_CA__RetrieveRootCACertificate(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_EntityID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "EntityID", &a->EntityID, "xsd:string"))
- { soap_flag_EntityID--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_CA__RetrieveRootCACertificate *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificate, 0, sizeof(struct KMS_CA__RetrieveRootCACertificate), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_CA__RetrieveRootCACertificate(struct soap *soap, const struct KMS_CA__RetrieveRootCACertificate *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificate);
- if (soap_out_KMS_CA__RetrieveRootCACertificate(soap, tag?tag:"KMS-CA:RetrieveRootCACertificate", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_CA__RetrieveRootCACertificate * SOAP_FMAC4 soap_get_KMS_CA__RetrieveRootCACertificate(struct soap *soap, struct KMS_CA__RetrieveRootCACertificate *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_CA__RetrieveRootCACertificate(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_CA__RetrieveRootCACertificate * SOAP_FMAC2 soap_instantiate_KMS_CA__RetrieveRootCACertificate(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_CA__RetrieveRootCACertificate(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificate, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_CA__RetrieveRootCACertificate);
- if (size)
- *size = sizeof(struct KMS_CA__RetrieveRootCACertificate);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_CA__RetrieveRootCACertificate[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_CA__RetrieveRootCACertificate);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_CA__RetrieveRootCACertificate*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_CA__RetrieveRootCACertificate(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_CA__RetrieveRootCACertificate %p -> %p\n", q, p));
- *(struct KMS_CA__RetrieveRootCACertificate*)p = *(struct KMS_CA__RetrieveRootCACertificate*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_CA__RetrieveRootCACertificateResponse(struct soap *soap, struct KMS_CA__RetrieveRootCACertificateResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__hexBinary(soap, &a->RootCACertificate);
- soap_default_xsd__int(soap, &a->AuthenticationHashIterationCount);
- soap_default_xsd__hexBinary(soap, &a->ClientAuthenticationChallenge);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_CA__RetrieveRootCACertificateResponse(struct soap *soap, const struct KMS_CA__RetrieveRootCACertificateResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__hexBinary(soap, &a->RootCACertificate);
- soap_serialize_xsd__hexBinary(soap, &a->ClientAuthenticationChallenge);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_CA__RetrieveRootCACertificateResponse(struct soap *soap, const char *tag, int id, const struct KMS_CA__RetrieveRootCACertificateResponse *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificateResponse), type))
- return soap->error;
- if (soap_out_xsd__hexBinary(soap, "RootCACertificate", -1, &a->RootCACertificate, "xsd:hexBinary"))
- return soap->error;
- if (soap_out_xsd__int(soap, "AuthenticationHashIterationCount", -1, &a->AuthenticationHashIterationCount, "xsd:int"))
- return soap->error;
- if (soap_out_xsd__hexBinary(soap, "ClientAuthenticationChallenge", -1, &a->ClientAuthenticationChallenge, "xsd:hexBinary"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_CA__RetrieveRootCACertificateResponse * SOAP_FMAC4 soap_in_KMS_CA__RetrieveRootCACertificateResponse(struct soap *soap, const char *tag, struct KMS_CA__RetrieveRootCACertificateResponse *a, const char *type)
-{
- size_t soap_flag_RootCACertificate = 1;
- size_t soap_flag_AuthenticationHashIterationCount = 1;
- size_t soap_flag_ClientAuthenticationChallenge = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_CA__RetrieveRootCACertificateResponse *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificateResponse, sizeof(struct KMS_CA__RetrieveRootCACertificateResponse), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_CA__RetrieveRootCACertificateResponse(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_RootCACertificate && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__hexBinary(soap, "RootCACertificate", &a->RootCACertificate, "xsd:hexBinary"))
- { soap_flag_RootCACertificate--;
- continue;
- }
- if (soap_flag_AuthenticationHashIterationCount && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__int(soap, "AuthenticationHashIterationCount", &a->AuthenticationHashIterationCount, "xsd:int"))
- { soap_flag_AuthenticationHashIterationCount--;
- continue;
- }
- if (soap_flag_ClientAuthenticationChallenge && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__hexBinary(soap, "ClientAuthenticationChallenge", &a->ClientAuthenticationChallenge, "xsd:hexBinary"))
- { soap_flag_ClientAuthenticationChallenge--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_CA__RetrieveRootCACertificateResponse *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificateResponse, 0, sizeof(struct KMS_CA__RetrieveRootCACertificateResponse), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_RootCACertificate > 0 || soap_flag_AuthenticationHashIterationCount > 0 || soap_flag_ClientAuthenticationChallenge > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_CA__RetrieveRootCACertificateResponse(struct soap *soap, const struct KMS_CA__RetrieveRootCACertificateResponse *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificateResponse);
- if (soap_out_KMS_CA__RetrieveRootCACertificateResponse(soap, tag?tag:"KMS-CA:RetrieveRootCACertificateResponse", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_CA__RetrieveRootCACertificateResponse * SOAP_FMAC4 soap_get_KMS_CA__RetrieveRootCACertificateResponse(struct soap *soap, struct KMS_CA__RetrieveRootCACertificateResponse *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_CA__RetrieveRootCACertificateResponse(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_CA__RetrieveRootCACertificateResponse * SOAP_FMAC2 soap_instantiate_KMS_CA__RetrieveRootCACertificateResponse(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_CA__RetrieveRootCACertificateResponse(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificateResponse, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_CA__RetrieveRootCACertificateResponse);
- if (size)
- *size = sizeof(struct KMS_CA__RetrieveRootCACertificateResponse);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_CA__RetrieveRootCACertificateResponse[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_CA__RetrieveRootCACertificateResponse);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_CA__RetrieveRootCACertificateResponse*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_CA__RetrieveRootCACertificateResponse(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_CA__RetrieveRootCACertificateResponse %p -> %p\n", q, p));
- *(struct KMS_CA__RetrieveRootCACertificateResponse*)p = *(struct KMS_CA__RetrieveRootCACertificateResponse*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_xsd__hexBinary(struct soap *soap, struct xsd__hexBinary *a)
-{
- (void)soap; /* appease -Wall -Werror */
- a->__size = 0;
- a->__ptr = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_xsd__hexBinary(struct soap *soap, struct xsd__hexBinary const*a)
-{
- if (a->__ptr)
- soap_array_reference(soap, a, (struct soap_array*)&a->__ptr, 1, SOAP_TYPE_KMS_CA_xsd__hexBinary);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__hexBinary(struct soap *soap, const char *tag, int id, const struct xsd__hexBinary *a, const char *type)
-{
- id = soap_element_id(soap, tag, id, a, (struct soap_array*)&a->__ptr, 1, type, SOAP_TYPE_KMS_CA_xsd__hexBinary);
- if (id < 0)
- return soap->error;
- if (soap_element_begin_out(soap, tag, id, type))
- return soap->error;
- if (soap_puthex(soap, a->__ptr, a->__size))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct xsd__hexBinary * SOAP_FMAC4 soap_in_xsd__hexBinary(struct soap *soap, const char *tag, struct xsd__hexBinary *a, const char *type)
-{
- (void)type; /* appease -Wall -Werror */
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (*soap->type && soap_match_tag(soap, soap->type, type) && soap_match_tag(soap, soap->type, ":hexBinary"))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- a = (struct xsd__hexBinary *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_CA_xsd__hexBinary, sizeof(struct xsd__hexBinary), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_xsd__hexBinary(soap, a);
- if (soap->body && !*soap->href)
- {
- a->__ptr = soap_gethex(soap, &a->__size);
- if ((!a->__ptr && soap->error) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct xsd__hexBinary *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_CA_xsd__hexBinary, 0, sizeof(struct xsd__hexBinary), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__hexBinary(struct soap *soap, const struct xsd__hexBinary *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, (struct soap_array*)&a->__ptr, 1, tag, SOAP_TYPE_KMS_CA_xsd__hexBinary);
- if (soap_out_xsd__hexBinary(soap, tag?tag:"SOAP-ENC:Array", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct xsd__hexBinary * SOAP_FMAC4 soap_get_xsd__hexBinary(struct soap *soap, struct xsd__hexBinary *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__hexBinary(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct xsd__hexBinary * SOAP_FMAC2 soap_instantiate_xsd__hexBinary(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_xsd__hexBinary(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_CA_xsd__hexBinary, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct xsd__hexBinary);
- if (size)
- *size = sizeof(struct xsd__hexBinary);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct xsd__hexBinary[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct xsd__hexBinary);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct xsd__hexBinary*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_xsd__hexBinary(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct xsd__hexBinary %p -> %p\n", q, p));
- *(struct xsd__hexBinary*)p = *(struct xsd__hexBinary*)q;
-}
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_KMS_CA_SOAP_ENV__Reason))
- soap_serialize_SOAP_ENV__Reason(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Reason(struct soap *soap, const char *tag, int id, struct SOAP_ENV__Reason *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_CA_SOAP_ENV__Reason);
- if (id < 0)
- return soap->error;
- return soap_out_SOAP_ENV__Reason(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Reason(struct soap *soap, const char *tag, struct SOAP_ENV__Reason **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct SOAP_ENV__Reason **)soap_malloc(soap, sizeof(struct SOAP_ENV__Reason *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_SOAP_ENV__Reason(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Reason **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_CA_SOAP_ENV__Reason, sizeof(struct SOAP_ENV__Reason), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_PointerToSOAP_ENV__Reason);
- if (soap_out_PointerToSOAP_ENV__Reason(soap, tag?tag:"SOAP-ENV:Reason", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToSOAP_ENV__Reason(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_KMS_CA_SOAP_ENV__Detail))
- soap_serialize_SOAP_ENV__Detail(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Detail(struct soap *soap, const char *tag, int id, struct SOAP_ENV__Detail *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_CA_SOAP_ENV__Detail);
- if (id < 0)
- return soap->error;
- return soap_out_SOAP_ENV__Detail(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Detail(struct soap *soap, const char *tag, struct SOAP_ENV__Detail **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct SOAP_ENV__Detail **)soap_malloc(soap, sizeof(struct SOAP_ENV__Detail *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_SOAP_ENV__Detail(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Detail **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_CA_SOAP_ENV__Detail, sizeof(struct SOAP_ENV__Detail), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_PointerToSOAP_ENV__Detail);
- if (soap_out_PointerToSOAP_ENV__Detail(soap, tag?tag:"SOAP-ENV:Detail", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToSOAP_ENV__Detail(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_KMS_CA_SOAP_ENV__Code))
- soap_serialize_SOAP_ENV__Code(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Code(struct soap *soap, const char *tag, int id, struct SOAP_ENV__Code *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_CA_SOAP_ENV__Code);
- if (id < 0)
- return soap->error;
- return soap_out_SOAP_ENV__Code(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Code(struct soap *soap, const char *tag, struct SOAP_ENV__Code **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct SOAP_ENV__Code **)soap_malloc(soap, sizeof(struct SOAP_ENV__Code *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_SOAP_ENV__Code(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Code **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_CA_SOAP_ENV__Code, sizeof(struct SOAP_ENV__Code), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_PointerToSOAP_ENV__Code);
- if (soap_out_PointerToSOAP_ENV__Code(soap, tag?tag:"SOAP-ENV:Code", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToSOAP_ENV__Code(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#endif
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerTounsignedByte(struct soap *soap, unsigned char *const*a)
-{
- soap_reference(soap, *a, SOAP_TYPE_KMS_CA_unsignedByte);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerTounsignedByte(struct soap *soap, const char *tag, int id, unsigned char *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_CA_unsignedByte);
- if (id < 0)
- return soap->error;
- return soap_out_unsignedByte(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 unsigned char ** SOAP_FMAC4 soap_in_PointerTounsignedByte(struct soap *soap, const char *tag, unsigned char **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (unsigned char **)soap_malloc(soap, sizeof(unsigned char *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_unsignedByte(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (unsigned char **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_CA_unsignedByte, sizeof(unsigned char), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerTounsignedByte(struct soap *soap, unsigned char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_PointerTounsignedByte);
- if (soap_out_PointerTounsignedByte(soap, tag?tag:"unsignedByte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 unsigned char ** SOAP_FMAC4 soap_get_PointerTounsignedByte(struct soap *soap, unsigned char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerTounsignedByte(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__duration(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_CA_xsd__duration);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__duration(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_CA_xsd__duration, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__duration(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_xsd__duration);
- if (soap_out_xsd__duration(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__duration(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__duration(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__dateTime(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_CA_xsd__dateTime);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__dateTime(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_CA_xsd__dateTime, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__dateTime(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_xsd__dateTime);
- if (soap_out_xsd__dateTime(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__dateTime(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__dateTime(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__string(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_CA_xsd__string);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__string(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_CA_xsd__string, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__string(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_xsd__string);
- if (soap_out_xsd__string(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__string(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__string(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out__QName(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_CA__QName);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in__QName(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_CA__QName, 2, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put__QName(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA__QName);
- if (soap_out__QName(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get__QName(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in__QName(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_string(struct soap *soap, char **a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_string
- *a = SOAP_DEFAULT_string;
-#else
- *a = (char *)0;
-#endif
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_string(struct soap *soap, char *const*a)
-{
- soap_reference(soap, *a, SOAP_TYPE_KMS_CA_string);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_string(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_CA_string);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_string(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_CA_string, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_string(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_CA_string);
- if (soap_out_string(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_string(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_string(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-} // namespace KMS_CA
-
-
-#if defined(__BORLANDC__)
-#pragma option pop
-#pragma option pop
-#endif
-
-/* End of KMS_CAC.cpp */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_CAClient.cpp b/usr/src/lib/libkmsagent/common/SOAP/KMS_CAClient.cpp
deleted file mode 100644
index b5ea12986d..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_CAClient.cpp
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* KMS_CAClient.cpp
- Generated by gSOAP 2.7.17 from ../gsoapStubs/CAService/KMS_CA_SOAP.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#if defined(__BORLANDC__)
-#pragma option push -w-8060
-#pragma option push -w-8004
-#endif
-#include "KMS_CAH.h"
-
-namespace KMS_CA {
-
-SOAP_SOURCE_STAMP("@(#) KMS_CAClient.cpp ver 2.7.17 2010-06-08 19:16:38 GMT")
-
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_CA__RetrieveRootCACertificate(struct soap *soap, const char *soap_endpoint, const char *soap_action, char *EntityID, struct KMS_CA__RetrieveRootCACertificateResponse &result)
-{ struct KMS_CA__RetrieveRootCACertificate soap_tmp_KMS_CA__RetrieveRootCACertificate;
- soap_tmp_KMS_CA__RetrieveRootCACertificate.EntityID = EntityID;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_CA__RetrieveRootCACertificate(soap, &soap_tmp_KMS_CA__RetrieveRootCACertificate);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_CA__RetrieveRootCACertificate(soap, &soap_tmp_KMS_CA__RetrieveRootCACertificate, "KMS-CA:RetrieveRootCACertificate", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_CA__RetrieveRootCACertificate(soap, &soap_tmp_KMS_CA__RetrieveRootCACertificate, "KMS-CA:RetrieveRootCACertificate", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_CA__RetrieveRootCACertificateResponse(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_CA__RetrieveRootCACertificateResponse(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_CA__RetrieveLocalClock(struct soap *soap, const char *soap_endpoint, const char *soap_action, char *EntityID, struct KMS_CA__RetrieveLocalClockResponse &result)
-{ struct KMS_CA__RetrieveLocalClock soap_tmp_KMS_CA__RetrieveLocalClock;
- soap_tmp_KMS_CA__RetrieveLocalClock.EntityID = EntityID;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_CA__RetrieveLocalClock(soap, &soap_tmp_KMS_CA__RetrieveLocalClock);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_CA__RetrieveLocalClock(soap, &soap_tmp_KMS_CA__RetrieveLocalClock, "KMS-CA:RetrieveLocalClock", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_CA__RetrieveLocalClock(soap, &soap_tmp_KMS_CA__RetrieveLocalClock, "KMS-CA:RetrieveLocalClock", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_CA__RetrieveLocalClockResponse(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_CA__RetrieveLocalClockResponse(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-} // namespace KMS_CA
-
-
-#if defined(__BORLANDC__)
-#pragma option pop
-#pragma option pop
-#endif
-
-/* End of KMS_CAClient.cpp */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_CAH.h b/usr/src/lib/libkmsagent/common/SOAP/KMS_CAH.h
deleted file mode 100644
index 80835bb84b..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_CAH.h
+++ /dev/null
@@ -1,702 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* KMS_CAH.h
- Generated by gSOAP 2.7.17 from ../gsoapStubs/CAService/KMS_CA_SOAP.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#ifndef KMS_CAH_H
-#define KMS_CAH_H
-#include "KMS_CAStub.h"
-
-namespace KMS_CA {
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 void SOAP_FMAC4 soap_markelement(struct soap*, const void*, int);
-SOAP_FMAC3 int SOAP_FMAC4 soap_putelement(struct soap*, const void*, const char*, int, int);
-SOAP_FMAC3 void *SOAP_FMAC4 soap_getelement(struct soap*, int*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_putindependent(struct soap*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_getindependent(struct soap*);
-#endif
-SOAP_FMAC3 int SOAP_FMAC4 soap_ignore_element(struct soap*);
-
-SOAP_FMAC3 void * SOAP_FMAC4 soap_instantiate(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_fdelete(struct soap_clist*);
-SOAP_FMAC3 void* SOAP_FMAC4 soap_class_id_enter(struct soap*, const char*, void*, int, size_t, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_CA_byte
-#define SOAP_TYPE_KMS_CA_byte (3)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_byte(struct soap*, char *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_byte(struct soap*, const char*, int, const char *, const char*);
-SOAP_FMAC3 char * SOAP_FMAC4 soap_in_byte(struct soap*, const char*, char *, const char*);
-
-#define soap_write_byte(soap, data) ( soap_begin_send(soap) || KMS_CA::soap_put_byte(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_byte(struct soap*, const char *, const char*, const char*);
-
-#define soap_read_byte(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_byte(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char * SOAP_FMAC4 soap_get_byte(struct soap*, char *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_CA_int
-#define SOAP_TYPE_KMS_CA_int (1)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_int(struct soap*, int *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_int(struct soap*, const char*, int, const int *, const char*);
-SOAP_FMAC3 int * SOAP_FMAC4 soap_in_int(struct soap*, const char*, int *, const char*);
-
-#define soap_write_int(soap, data) ( soap_begin_send(soap) || KMS_CA::soap_put_int(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_int(struct soap*, const int *, const char*, const char*);
-
-#define soap_read_int(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_int(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 int * SOAP_FMAC4 soap_get_int(struct soap*, int *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_CA_xsd__int
-#define SOAP_TYPE_KMS_CA_xsd__int (11)
-#endif
-
-#define soap_default_xsd__int(soap, a) soap_default_long(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__int(struct soap*, const char*, int, const long *, const char*);
-SOAP_FMAC3 long * SOAP_FMAC4 soap_in_xsd__int(struct soap*, const char*, long *, const char*);
-
-#define soap_write_xsd__int(soap, data) ( soap_begin_send(soap) || KMS_CA::soap_put_xsd__int(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__int(struct soap*, const long *, const char*, const char*);
-
-#define soap_read_xsd__int(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_xsd__int(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_get_xsd__int(struct soap*, long *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_CA_long
-#define SOAP_TYPE_KMS_CA_long (10)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_long(struct soap*, long *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_long(struct soap*, const char*, int, const long *, const char*);
-SOAP_FMAC3 long * SOAP_FMAC4 soap_in_long(struct soap*, const char*, long *, const char*);
-
-#define soap_write_long(soap, data) ( soap_begin_send(soap) || KMS_CA::soap_put_long(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_long(struct soap*, const long *, const char*, const char*);
-
-#define soap_read_long(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_long(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_get_long(struct soap*, long *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_CA_xsd__long
-#define SOAP_TYPE_KMS_CA_xsd__long (15)
-#endif
-
-#define soap_default_xsd__long(soap, a) soap_default_LONG64(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__long(struct soap*, const char*, int, const LONG64 *, const char*);
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_in_xsd__long(struct soap*, const char*, LONG64 *, const char*);
-
-#define soap_write_xsd__long(soap, data) ( soap_begin_send(soap) || KMS_CA::soap_put_xsd__long(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__long(struct soap*, const LONG64 *, const char*, const char*);
-
-#define soap_read_xsd__long(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_xsd__long(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_get_xsd__long(struct soap*, LONG64 *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_CA_LONG64
-#define SOAP_TYPE_KMS_CA_LONG64 (14)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_LONG64(struct soap*, LONG64 *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_LONG64(struct soap*, const char*, int, const LONG64 *, const char*);
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_in_LONG64(struct soap*, const char*, LONG64 *, const char*);
-
-#define soap_write_LONG64(soap, data) ( soap_begin_send(soap) || KMS_CA::soap_put_LONG64(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_LONG64(struct soap*, const LONG64 *, const char*, const char*);
-
-#define soap_read_LONG64(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_LONG64(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_get_LONG64(struct soap*, LONG64 *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_CA_xsd__float
-#define SOAP_TYPE_KMS_CA_xsd__float (9)
-#endif
-
-#define soap_default_xsd__float(soap, a) soap_default_float(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__float(struct soap*, const char*, int, const float *, const char*);
-SOAP_FMAC3 float * SOAP_FMAC4 soap_in_xsd__float(struct soap*, const char*, float *, const char*);
-
-#define soap_write_xsd__float(soap, data) ( soap_begin_send(soap) || KMS_CA::soap_put_xsd__float(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__float(struct soap*, const float *, const char*, const char*);
-
-#define soap_read_xsd__float(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_xsd__float(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_get_xsd__float(struct soap*, float *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_CA_float
-#define SOAP_TYPE_KMS_CA_float (8)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_float(struct soap*, float *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_float(struct soap*, const char*, int, const float *, const char*);
-SOAP_FMAC3 float * SOAP_FMAC4 soap_in_float(struct soap*, const char*, float *, const char*);
-
-#define soap_write_float(soap, data) ( soap_begin_send(soap) || KMS_CA::soap_put_float(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_float(struct soap*, const float *, const char*, const char*);
-
-#define soap_read_float(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_float(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_get_float(struct soap*, float *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_CA_unsignedByte
-#define SOAP_TYPE_KMS_CA_unsignedByte (20)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_unsignedByte(struct soap*, unsigned char *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_unsignedByte(struct soap*, const char*, int, const unsigned char *, const char*);
-SOAP_FMAC3 unsigned char * SOAP_FMAC4 soap_in_unsignedByte(struct soap*, const char*, unsigned char *, const char*);
-
-#define soap_write_unsignedByte(soap, data) ( soap_begin_send(soap) || KMS_CA::soap_put_unsignedByte(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_unsignedByte(struct soap*, const unsigned char *, const char*, const char*);
-
-#define soap_read_unsignedByte(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_unsignedByte(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 unsigned char * SOAP_FMAC4 soap_get_unsignedByte(struct soap*, unsigned char *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_CA_unsignedInt
-#define SOAP_TYPE_KMS_CA_unsignedInt (19)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_unsignedInt(struct soap*, unsigned int *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_unsignedInt(struct soap*, const char*, int, const unsigned int *, const char*);
-SOAP_FMAC3 unsigned int * SOAP_FMAC4 soap_in_unsignedInt(struct soap*, const char*, unsigned int *, const char*);
-
-#define soap_write_unsignedInt(soap, data) ( soap_begin_send(soap) || KMS_CA::soap_put_unsignedInt(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_unsignedInt(struct soap*, const unsigned int *, const char*, const char*);
-
-#define soap_read_unsignedInt(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_unsignedInt(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 unsigned int * SOAP_FMAC4 soap_get_unsignedInt(struct soap*, unsigned int *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_CA_xsd__boolean
-#define SOAP_TYPE_KMS_CA_xsd__boolean (13)
-#endif
-
-#define soap_default_xsd__boolean(soap, a) soap_default_bool(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__boolean(struct soap*, const char*, int, const bool *, const char*);
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_xsd__boolean2s(struct soap*, bool);
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_in_xsd__boolean(struct soap*, const char*, bool *, const char*);
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2xsd__boolean(struct soap*, const char*, bool *);
-
-#define soap_write_xsd__boolean(soap, data) ( soap_begin_send(soap) || KMS_CA::soap_put_xsd__boolean(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__boolean(struct soap*, const bool *, const char*, const char*);
-
-#define soap_read_xsd__boolean(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_xsd__boolean(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_get_xsd__boolean(struct soap*, bool *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_CA_bool
-#define SOAP_TYPE_KMS_CA_bool (12)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_bool(struct soap*, bool *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_bool(struct soap*, const char*, int, const bool *, const char*);
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_bool2s(struct soap*, bool);
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_in_bool(struct soap*, const char*, bool *, const char*);
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2bool(struct soap*, const char*, bool *);
-
-#define soap_write_bool(soap, data) ( soap_begin_send(soap) || KMS_CA::soap_put_bool(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_bool(struct soap*, const bool *, const char*, const char*);
-
-#define soap_read_bool(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_bool(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_get_bool(struct soap*, bool *, const char*, const char*);
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_CA_SOAP_ENV__Fault
-#define SOAP_TYPE_KMS_CA_SOAP_ENV__Fault (37)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Fault(struct soap*, struct SOAP_ENV__Fault *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Fault(struct soap*, const struct SOAP_ENV__Fault *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Fault(struct soap*, const char*, int, const struct SOAP_ENV__Fault *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_in_SOAP_ENV__Fault(struct soap*, const char*, struct SOAP_ENV__Fault *, const char*);
-
-#define soap_write_SOAP_ENV__Fault(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize_SOAP_ENV__Fault(soap, data), 0) || KMS_CA::soap_put_SOAP_ENV__Fault(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Fault(struct soap*, const struct SOAP_ENV__Fault *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Fault(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_SOAP_ENV__Fault(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_get_SOAP_ENV__Fault(struct soap*, struct SOAP_ENV__Fault *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Fault(soap, n) soap_instantiate_SOAP_ENV__Fault(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Fault(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Fault * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Fault(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Fault(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_CA_SOAP_ENV__Reason
-#define SOAP_TYPE_KMS_CA_SOAP_ENV__Reason (36)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Reason(struct soap*, const struct SOAP_ENV__Reason *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Reason(struct soap*, const char*, int, const struct SOAP_ENV__Reason *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_in_SOAP_ENV__Reason(struct soap*, const char*, struct SOAP_ENV__Reason *, const char*);
-
-#define soap_write_SOAP_ENV__Reason(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize_SOAP_ENV__Reason(soap, data), 0) || KMS_CA::soap_put_SOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Reason(struct soap*, const struct SOAP_ENV__Reason *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Reason(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_SOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_get_SOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Reason(soap, n) soap_instantiate_SOAP_ENV__Reason(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Reason(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Reason * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Reason(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Reason(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_CA_SOAP_ENV__Detail
-#define SOAP_TYPE_KMS_CA_SOAP_ENV__Detail (33)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Detail(struct soap*, const struct SOAP_ENV__Detail *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Detail(struct soap*, const char*, int, const struct SOAP_ENV__Detail *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_in_SOAP_ENV__Detail(struct soap*, const char*, struct SOAP_ENV__Detail *, const char*);
-
-#define soap_write_SOAP_ENV__Detail(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize_SOAP_ENV__Detail(soap, data), 0) || KMS_CA::soap_put_SOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Detail(struct soap*, const struct SOAP_ENV__Detail *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Detail(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_SOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_get_SOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Detail(soap, n) soap_instantiate_SOAP_ENV__Detail(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Detail(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Detail * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Detail(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Detail(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_CA_SOAP_ENV__Code
-#define SOAP_TYPE_KMS_CA_SOAP_ENV__Code (31)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Code(struct soap*, const struct SOAP_ENV__Code *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Code(struct soap*, const char*, int, const struct SOAP_ENV__Code *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_in_SOAP_ENV__Code(struct soap*, const char*, struct SOAP_ENV__Code *, const char*);
-
-#define soap_write_SOAP_ENV__Code(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize_SOAP_ENV__Code(soap, data), 0) || KMS_CA::soap_put_SOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Code(struct soap*, const struct SOAP_ENV__Code *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Code(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_SOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_get_SOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Code(soap, n) soap_instantiate_SOAP_ENV__Code(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Code(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Code * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Code(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Code(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_CA_SOAP_ENV__Header
-#define SOAP_TYPE_KMS_CA_SOAP_ENV__Header (30)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Header(struct soap*, struct SOAP_ENV__Header *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Header(struct soap*, const struct SOAP_ENV__Header *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Header(struct soap*, const char*, int, const struct SOAP_ENV__Header *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_in_SOAP_ENV__Header(struct soap*, const char*, struct SOAP_ENV__Header *, const char*);
-
-#define soap_write_SOAP_ENV__Header(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize_SOAP_ENV__Header(soap, data), 0) || KMS_CA::soap_put_SOAP_ENV__Header(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Header(struct soap*, const struct SOAP_ENV__Header *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Header(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_SOAP_ENV__Header(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_get_SOAP_ENV__Header(struct soap*, struct SOAP_ENV__Header *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Header(soap, n) soap_instantiate_SOAP_ENV__Header(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Header(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Header * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Header(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Header(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClock
-#define SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClock (29)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_CA__RetrieveLocalClock(struct soap*, struct KMS_CA__RetrieveLocalClock *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_CA__RetrieveLocalClock(struct soap*, const struct KMS_CA__RetrieveLocalClock *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_CA__RetrieveLocalClock(struct soap*, const char*, int, const struct KMS_CA__RetrieveLocalClock *, const char*);
-SOAP_FMAC3 struct KMS_CA__RetrieveLocalClock * SOAP_FMAC4 soap_in_KMS_CA__RetrieveLocalClock(struct soap*, const char*, struct KMS_CA__RetrieveLocalClock *, const char*);
-
-#define soap_write_KMS_CA__RetrieveLocalClock(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize_KMS_CA__RetrieveLocalClock(soap, data), 0) || KMS_CA::soap_put_KMS_CA__RetrieveLocalClock(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_CA__RetrieveLocalClock(struct soap*, const struct KMS_CA__RetrieveLocalClock *, const char*, const char*);
-
-#define soap_read_KMS_CA__RetrieveLocalClock(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_KMS_CA__RetrieveLocalClock(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_CA__RetrieveLocalClock * SOAP_FMAC4 soap_get_KMS_CA__RetrieveLocalClock(struct soap*, struct KMS_CA__RetrieveLocalClock *, const char*, const char*);
-
-#define soap_new_KMS_CA__RetrieveLocalClock(soap, n) soap_instantiate_KMS_CA__RetrieveLocalClock(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_CA__RetrieveLocalClock(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_CA__RetrieveLocalClock * SOAP_FMAC2 soap_instantiate_KMS_CA__RetrieveLocalClock(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_CA__RetrieveLocalClock(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClockResponse
-#define SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClockResponse (26)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_CA__RetrieveLocalClockResponse(struct soap*, struct KMS_CA__RetrieveLocalClockResponse *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_CA__RetrieveLocalClockResponse(struct soap*, const struct KMS_CA__RetrieveLocalClockResponse *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_CA__RetrieveLocalClockResponse(struct soap*, const char*, int, const struct KMS_CA__RetrieveLocalClockResponse *, const char*);
-SOAP_FMAC3 struct KMS_CA__RetrieveLocalClockResponse * SOAP_FMAC4 soap_in_KMS_CA__RetrieveLocalClockResponse(struct soap*, const char*, struct KMS_CA__RetrieveLocalClockResponse *, const char*);
-
-#define soap_write_KMS_CA__RetrieveLocalClockResponse(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize_KMS_CA__RetrieveLocalClockResponse(soap, data), 0) || KMS_CA::soap_put_KMS_CA__RetrieveLocalClockResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_CA__RetrieveLocalClockResponse(struct soap*, const struct KMS_CA__RetrieveLocalClockResponse *, const char*, const char*);
-
-#define soap_read_KMS_CA__RetrieveLocalClockResponse(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_KMS_CA__RetrieveLocalClockResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_CA__RetrieveLocalClockResponse * SOAP_FMAC4 soap_get_KMS_CA__RetrieveLocalClockResponse(struct soap*, struct KMS_CA__RetrieveLocalClockResponse *, const char*, const char*);
-
-#define soap_new_KMS_CA__RetrieveLocalClockResponse(soap, n) soap_instantiate_KMS_CA__RetrieveLocalClockResponse(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_CA__RetrieveLocalClockResponse(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_CA__RetrieveLocalClockResponse * SOAP_FMAC2 soap_instantiate_KMS_CA__RetrieveLocalClockResponse(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_CA__RetrieveLocalClockResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificate
-#define SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificate (25)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_CA__RetrieveRootCACertificate(struct soap*, struct KMS_CA__RetrieveRootCACertificate *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_CA__RetrieveRootCACertificate(struct soap*, const struct KMS_CA__RetrieveRootCACertificate *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_CA__RetrieveRootCACertificate(struct soap*, const char*, int, const struct KMS_CA__RetrieveRootCACertificate *, const char*);
-SOAP_FMAC3 struct KMS_CA__RetrieveRootCACertificate * SOAP_FMAC4 soap_in_KMS_CA__RetrieveRootCACertificate(struct soap*, const char*, struct KMS_CA__RetrieveRootCACertificate *, const char*);
-
-#define soap_write_KMS_CA__RetrieveRootCACertificate(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize_KMS_CA__RetrieveRootCACertificate(soap, data), 0) || KMS_CA::soap_put_KMS_CA__RetrieveRootCACertificate(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_CA__RetrieveRootCACertificate(struct soap*, const struct KMS_CA__RetrieveRootCACertificate *, const char*, const char*);
-
-#define soap_read_KMS_CA__RetrieveRootCACertificate(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_KMS_CA__RetrieveRootCACertificate(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_CA__RetrieveRootCACertificate * SOAP_FMAC4 soap_get_KMS_CA__RetrieveRootCACertificate(struct soap*, struct KMS_CA__RetrieveRootCACertificate *, const char*, const char*);
-
-#define soap_new_KMS_CA__RetrieveRootCACertificate(soap, n) soap_instantiate_KMS_CA__RetrieveRootCACertificate(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_CA__RetrieveRootCACertificate(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_CA__RetrieveRootCACertificate * SOAP_FMAC2 soap_instantiate_KMS_CA__RetrieveRootCACertificate(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_CA__RetrieveRootCACertificate(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificateResponse
-#define SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificateResponse (22)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_CA__RetrieveRootCACertificateResponse(struct soap*, struct KMS_CA__RetrieveRootCACertificateResponse *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_CA__RetrieveRootCACertificateResponse(struct soap*, const struct KMS_CA__RetrieveRootCACertificateResponse *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_CA__RetrieveRootCACertificateResponse(struct soap*, const char*, int, const struct KMS_CA__RetrieveRootCACertificateResponse *, const char*);
-SOAP_FMAC3 struct KMS_CA__RetrieveRootCACertificateResponse * SOAP_FMAC4 soap_in_KMS_CA__RetrieveRootCACertificateResponse(struct soap*, const char*, struct KMS_CA__RetrieveRootCACertificateResponse *, const char*);
-
-#define soap_write_KMS_CA__RetrieveRootCACertificateResponse(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize_KMS_CA__RetrieveRootCACertificateResponse(soap, data), 0) || KMS_CA::soap_put_KMS_CA__RetrieveRootCACertificateResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_CA__RetrieveRootCACertificateResponse(struct soap*, const struct KMS_CA__RetrieveRootCACertificateResponse *, const char*, const char*);
-
-#define soap_read_KMS_CA__RetrieveRootCACertificateResponse(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_KMS_CA__RetrieveRootCACertificateResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_CA__RetrieveRootCACertificateResponse * SOAP_FMAC4 soap_get_KMS_CA__RetrieveRootCACertificateResponse(struct soap*, struct KMS_CA__RetrieveRootCACertificateResponse *, const char*, const char*);
-
-#define soap_new_KMS_CA__RetrieveRootCACertificateResponse(soap, n) soap_instantiate_KMS_CA__RetrieveRootCACertificateResponse(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_CA__RetrieveRootCACertificateResponse(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_CA__RetrieveRootCACertificateResponse * SOAP_FMAC2 soap_instantiate_KMS_CA__RetrieveRootCACertificateResponse(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_CA__RetrieveRootCACertificateResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_CA_xsd__hexBinary
-#define SOAP_TYPE_KMS_CA_xsd__hexBinary (18)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_xsd__hexBinary(struct soap*, struct xsd__hexBinary *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_xsd__hexBinary(struct soap*, struct xsd__hexBinary const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__hexBinary(struct soap*, const char*, int, const struct xsd__hexBinary *, const char*);
-SOAP_FMAC3 struct xsd__hexBinary * SOAP_FMAC4 soap_in_xsd__hexBinary(struct soap*, const char*, struct xsd__hexBinary *, const char*);
-
-#define soap_write_xsd__hexBinary(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize_xsd__hexBinary(soap, data), 0) || KMS_CA::soap_put_xsd__hexBinary(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__hexBinary(struct soap*, const struct xsd__hexBinary *, const char*, const char*);
-
-#define soap_read_xsd__hexBinary(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_xsd__hexBinary(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct xsd__hexBinary * SOAP_FMAC4 soap_get_xsd__hexBinary(struct soap*, struct xsd__hexBinary *, const char*, const char*);
-
-#define soap_new_xsd__hexBinary(soap, n) soap_instantiate_xsd__hexBinary(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_xsd__hexBinary(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct xsd__hexBinary * SOAP_FMAC2 soap_instantiate_xsd__hexBinary(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_xsd__hexBinary(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_CA_PointerToSOAP_ENV__Reason
-#define SOAP_TYPE_KMS_CA_PointerToSOAP_ENV__Reason (39)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Reason(struct soap*, const char *, int, struct SOAP_ENV__Reason *const*, const char *);
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Reason(struct soap*, const char*, struct SOAP_ENV__Reason **, const char*);
-
-#define soap_write_PointerToSOAP_ENV__Reason(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize_PointerToSOAP_ENV__Reason(soap, data), 0) || KMS_CA::soap_put_PointerToSOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *const*, const char*, const char*);
-
-#define soap_read_PointerToSOAP_ENV__Reason(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_PointerToSOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason **, const char*, const char*);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_CA_PointerToSOAP_ENV__Detail
-#define SOAP_TYPE_KMS_CA_PointerToSOAP_ENV__Detail (38)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Detail(struct soap*, const char *, int, struct SOAP_ENV__Detail *const*, const char *);
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Detail(struct soap*, const char*, struct SOAP_ENV__Detail **, const char*);
-
-#define soap_write_PointerToSOAP_ENV__Detail(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize_PointerToSOAP_ENV__Detail(soap, data), 0) || KMS_CA::soap_put_PointerToSOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *const*, const char*, const char*);
-
-#define soap_read_PointerToSOAP_ENV__Detail(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_PointerToSOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail **, const char*, const char*);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_CA_PointerToSOAP_ENV__Code
-#define SOAP_TYPE_KMS_CA_PointerToSOAP_ENV__Code (32)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Code(struct soap*, const char *, int, struct SOAP_ENV__Code *const*, const char *);
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Code(struct soap*, const char*, struct SOAP_ENV__Code **, const char*);
-
-#define soap_write_PointerToSOAP_ENV__Code(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize_PointerToSOAP_ENV__Code(soap, data), 0) || KMS_CA::soap_put_PointerToSOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *const*, const char*, const char*);
-
-#define soap_read_PointerToSOAP_ENV__Code(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_PointerToSOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code **, const char*, const char*);
-
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_PointerTounsignedByte
-#define SOAP_TYPE_KMS_CA_PointerTounsignedByte (21)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerTounsignedByte(struct soap*, unsigned char *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerTounsignedByte(struct soap*, const char *, int, unsigned char *const*, const char *);
-SOAP_FMAC3 unsigned char ** SOAP_FMAC4 soap_in_PointerTounsignedByte(struct soap*, const char*, unsigned char **, const char*);
-
-#define soap_write_PointerTounsignedByte(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize_PointerTounsignedByte(soap, data), 0) || KMS_CA::soap_put_PointerTounsignedByte(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerTounsignedByte(struct soap*, unsigned char *const*, const char*, const char*);
-
-#define soap_read_PointerTounsignedByte(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_PointerTounsignedByte(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 unsigned char ** SOAP_FMAC4 soap_get_PointerTounsignedByte(struct soap*, unsigned char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_CA_xsd__duration
-#define SOAP_TYPE_KMS_CA_xsd__duration (17)
-#endif
-
-#define soap_default_xsd__duration(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize_xsd__duration(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__duration(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__duration(struct soap*, const char*, char **, const char*);
-
-#define soap_write_xsd__duration(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize_xsd__duration(soap, data), 0) || KMS_CA::soap_put_xsd__duration(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__duration(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_xsd__duration(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_xsd__duration(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__duration(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_CA_xsd__dateTime
-#define SOAP_TYPE_KMS_CA_xsd__dateTime (16)
-#endif
-
-#define soap_default_xsd__dateTime(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize_xsd__dateTime(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__dateTime(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__dateTime(struct soap*, const char*, char **, const char*);
-
-#define soap_write_xsd__dateTime(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize_xsd__dateTime(soap, data), 0) || KMS_CA::soap_put_xsd__dateTime(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__dateTime(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_xsd__dateTime(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_xsd__dateTime(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__dateTime(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_CA_xsd__string
-#define SOAP_TYPE_KMS_CA_xsd__string (7)
-#endif
-
-#define soap_default_xsd__string(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize_xsd__string(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__string(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__string(struct soap*, const char*, char **, const char*);
-
-#define soap_write_xsd__string(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize_xsd__string(soap, data), 0) || KMS_CA::soap_put_xsd__string(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__string(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_xsd__string(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_xsd__string(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__string(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_CA__QName
-#define SOAP_TYPE_KMS_CA__QName (5)
-#endif
-
-#define soap_default__QName(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize__QName(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out__QName(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in__QName(struct soap*, const char*, char **, const char*);
-
-#define soap_write__QName(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize__QName(soap, data), 0) || KMS_CA::soap_put__QName(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put__QName(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read__QName(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get__QName(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get__QName(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_CA_string
-#define SOAP_TYPE_KMS_CA_string (4)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_string(struct soap*, char **);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_string(struct soap*, char *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_string(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_string(struct soap*, const char*, char **, const char*);
-
-#define soap_write_string(soap, data) ( soap_begin_send(soap) || (KMS_CA::soap_serialize_string(soap, data), 0) || KMS_CA::soap_put_string(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_string(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_string(soap, data) ( soap_begin_recv(soap) || !KMS_CA::soap_get_string(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_string(struct soap*, char **, const char*, const char*);
-
-} // namespace KMS_CA
-
-
-#endif
-
-/* End of KMS_CAH.h */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_CAStub.h b/usr/src/lib/libkmsagent/common/SOAP/KMS_CAStub.h
deleted file mode 100644
index 2eef609acc..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_CAStub.h
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* KMS_CAStub.h
- Generated by gSOAP 2.7.17 from ../gsoapStubs/CAService/KMS_CA_SOAP.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#ifndef KMS_CAStub_H
-#define KMS_CAStub_H
-#ifndef WITH_NONAMESPACES
-#define WITH_NONAMESPACES
-#endif
-#ifndef WITH_NOGLOBAL
-#define WITH_NOGLOBAL
-#endif
-#include "stdsoap2.h"
-
-namespace KMS_CA {
-
-/******************************************************************************\
- * *
- * Enumerations *
- * *
-\******************************************************************************/
-
-
-/******************************************************************************\
- * *
- * Types with Custom Serializers *
- * *
-\******************************************************************************/
-
-
-/******************************************************************************\
- * *
- * Classes and Structs *
- * *
-\******************************************************************************/
-
-
-#if 0 /* volatile type: do not declare here, declared elsewhere */
-
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_xsd__hexBinary
-#define SOAP_TYPE_KMS_CA_xsd__hexBinary (18)
-/* hexBinary schema type: */
-struct xsd__hexBinary
-{
-public:
- unsigned char *__ptr;
- int __size;
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificateResponse
-#define SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificateResponse (22)
-/* KMS-CA:RetrieveRootCACertificateResponse */
-struct KMS_CA__RetrieveRootCACertificateResponse
-{
-public:
- struct xsd__hexBinary RootCACertificate; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type xsd:hexBinary */
- long AuthenticationHashIterationCount; /* required element of type xsd:int */
- struct xsd__hexBinary ClientAuthenticationChallenge; /* required element of type xsd:hexBinary */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificate
-#define SOAP_TYPE_KMS_CA_KMS_CA__RetrieveRootCACertificate (25)
-/* KMS-CA:RetrieveRootCACertificate */
-struct KMS_CA__RetrieveRootCACertificate
-{
-public:
- char *EntityID; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClockResponse
-#define SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClockResponse (26)
-/* KMS-CA:RetrieveLocalClockResponse */
-struct KMS_CA__RetrieveLocalClockResponse
-{
-public:
- char *CurrentTime; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* optional element of type xsd:dateTime */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClock
-#define SOAP_TYPE_KMS_CA_KMS_CA__RetrieveLocalClock (29)
-/* KMS-CA:RetrieveLocalClock */
-struct KMS_CA__RetrieveLocalClock
-{
-public:
- char *EntityID; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_SOAP_ENV__Header
-#define SOAP_TYPE_KMS_CA_SOAP_ENV__Header (30)
-/* SOAP Header: */
-struct SOAP_ENV__Header
-{
-#ifdef WITH_NOEMPTYSTRUCT
-private:
- char dummy; /* dummy member to enable compilation */
-#endif
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_SOAP_ENV__Code
-#define SOAP_TYPE_KMS_CA_SOAP_ENV__Code (31)
-/* SOAP Fault Code: */
-struct SOAP_ENV__Code
-{
-public:
- char *SOAP_ENV__Value; /* optional element of type xsd:QName */
- struct SOAP_ENV__Code *SOAP_ENV__Subcode; /* optional element of type SOAP-ENV:Code */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_SOAP_ENV__Detail
-#define SOAP_TYPE_KMS_CA_SOAP_ENV__Detail (33)
-/* SOAP-ENV:Detail */
-struct SOAP_ENV__Detail
-{
-public:
- int __type; /* any type of element <fault> (defined below) */
- void *fault; /* transient */
- char *__any;
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_SOAP_ENV__Reason
-#define SOAP_TYPE_KMS_CA_SOAP_ENV__Reason (36)
-/* SOAP-ENV:Reason */
-struct SOAP_ENV__Reason
-{
-public:
- char *SOAP_ENV__Text; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_SOAP_ENV__Fault
-#define SOAP_TYPE_KMS_CA_SOAP_ENV__Fault (37)
-/* SOAP Fault: */
-struct SOAP_ENV__Fault
-{
-public:
- char *faultcode; /* optional element of type xsd:QName */
- char *faultstring; /* optional element of type xsd:string */
- char *faultactor; /* optional element of type xsd:string */
- struct SOAP_ENV__Detail *detail; /* optional element of type SOAP-ENV:Detail */
- struct SOAP_ENV__Code *SOAP_ENV__Code; /* optional element of type SOAP-ENV:Code */
- struct SOAP_ENV__Reason *SOAP_ENV__Reason; /* optional element of type SOAP-ENV:Reason */
- char *SOAP_ENV__Node; /* optional element of type xsd:string */
- char *SOAP_ENV__Role; /* optional element of type xsd:string */
- struct SOAP_ENV__Detail *SOAP_ENV__Detail; /* optional element of type SOAP-ENV:Detail */
-};
-#endif
-
-/******************************************************************************\
- * *
- * Typedefs *
- * *
-\******************************************************************************/
-
-#ifndef SOAP_TYPE_KMS_CA__QName
-#define SOAP_TYPE_KMS_CA__QName (5)
-typedef char *_QName;
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA__XML
-#define SOAP_TYPE_KMS_CA__XML (6)
-typedef char *_XML;
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_xsd__string
-#define SOAP_TYPE_KMS_CA_xsd__string (7)
-typedef char *xsd__string;
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_xsd__float
-#define SOAP_TYPE_KMS_CA_xsd__float (9)
-typedef float xsd__float;
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_xsd__int
-#define SOAP_TYPE_KMS_CA_xsd__int (11)
-typedef long xsd__int;
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_xsd__boolean
-#define SOAP_TYPE_KMS_CA_xsd__boolean (13)
-typedef bool xsd__boolean;
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_xsd__long
-#define SOAP_TYPE_KMS_CA_xsd__long (15)
-typedef LONG64 xsd__long;
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_xsd__dateTime
-#define SOAP_TYPE_KMS_CA_xsd__dateTime (16)
-typedef char *xsd__dateTime;
-#endif
-
-#ifndef SOAP_TYPE_KMS_CA_xsd__duration
-#define SOAP_TYPE_KMS_CA_xsd__duration (17)
-typedef char *xsd__duration;
-#endif
-
-
-/******************************************************************************\
- * *
- * Externals *
- * *
-\******************************************************************************/
-
-
-/******************************************************************************\
- * *
- * Server-Side Operations *
- * *
-\******************************************************************************/
-
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_CA__RetrieveRootCACertificate(struct soap*, char *EntityID, struct KMS_CA__RetrieveRootCACertificateResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_CA__RetrieveLocalClock(struct soap*, char *EntityID, struct KMS_CA__RetrieveLocalClockResponse &result);
-
-/******************************************************************************\
- * *
- * Server-Side Skeletons to Invoke Service Operations *
- * *
-\******************************************************************************/
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_CA_serve(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_CA_serve_request(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_CA__RetrieveRootCACertificate(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_CA__RetrieveLocalClock(struct soap*);
-
-/******************************************************************************\
- * *
- * Client-Side Call Stubs *
- * *
-\******************************************************************************/
-
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_CA__RetrieveRootCACertificate(struct soap *soap, const char *soap_endpoint, const char *soap_action, char *EntityID, struct KMS_CA__RetrieveRootCACertificateResponse &result);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_CA__RetrieveLocalClock(struct soap *soap, const char *soap_endpoint, const char *soap_action, char *EntityID, struct KMS_CA__RetrieveLocalClockResponse &result);
-
-} // namespace KMS_CA
-
-
-#endif
-
-/* End of KMS_CAStub.h */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_Certificate.nsmap b/usr/src/lib/libkmsagent/common/SOAP/KMS_Certificate.nsmap
deleted file mode 100644
index 0cca992fff..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_Certificate.nsmap
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-
-#include "KMS_CertificateH.h"
-SOAP_NMAC struct Namespace KMS_Certificate_namespaces[] =
-{
- {"SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/", "http://www.w3.org/*/soap-envelope"},
- {"SOAP-ENC", "http://schemas.xmlsoap.org/soap/encoding/", "http://www.w3.org/*/soap-encoding"},
- {"xsi", "http://www.w3.org/2001/XMLSchema-instance", "http://www.w3.org/*/XMLSchema-instance"},
- {"xsd", "http://www.w3.org/2001/XMLSchema", "http://www.w3.org/*/XMLSchema"},
- {"KMS-Certificate", "http://www.sun.com/KMS/KMS-Certificate"},
- {NULL, NULL}
-};
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_CertificateC.cpp b/usr/src/lib/libkmsagent/common/SOAP/KMS_CertificateC.cpp
deleted file mode 100644
index 44d466ca4f..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_CertificateC.cpp
+++ /dev/null
@@ -1,2425 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* KMS_CertificateC.cpp
- Generated by gSOAP 2.7.17 from ../gsoapStubs/CertificateService/KMS_Certificate_SOAP.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#if defined(__BORLANDC__)
-#pragma option push -w-8060
-#pragma option push -w-8004
-#endif
-
-#include "KMS_CertificateH.h"
-
-namespace KMS_Certificate {
-
-SOAP_SOURCE_STAMP("@(#) KMS_CertificateC.cpp ver 2.7.17 2010-06-08 19:16:38 GMT")
-
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serializeheader(struct soap *soap)
-{
- if (soap->header)
- soap_serialize_SOAP_ENV__Header(soap, soap->header);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_putheader(struct soap *soap)
-{
- if (soap->header)
- { soap->part = SOAP_IN_HEADER;
- if (soap_out_SOAP_ENV__Header(soap, "SOAP-ENV:Header", 0, soap->header, NULL))
- return soap->error;
- soap->part = SOAP_END_HEADER;
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_getheader(struct soap *soap)
-{
- soap->part = SOAP_IN_HEADER;
- soap->header = soap_in_SOAP_ENV__Header(soap, "SOAP-ENV:Header", NULL, NULL);
- soap->part = SOAP_END_HEADER;
- return soap->header == NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_header(struct soap *soap)
-{
- if (!soap->header)
- { if ((soap->header = soap_new_SOAP_ENV__Header(soap, -1)))
- soap_default_SOAP_ENV__Header(soap, soap->header);
- }
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_fault(struct soap *soap)
-{
- if (!soap->fault)
- { soap->fault = soap_new_SOAP_ENV__Fault(soap, -1);
- if (!soap->fault)
- return;
- soap_default_SOAP_ENV__Fault(soap, soap->fault);
- }
- if (soap->version == 2 && !soap->fault->SOAP_ENV__Code)
- { soap->fault->SOAP_ENV__Code = soap_new_SOAP_ENV__Code(soap, -1);
- soap_default_SOAP_ENV__Code(soap, soap->fault->SOAP_ENV__Code);
- }
- if (soap->version == 2 && !soap->fault->SOAP_ENV__Reason)
- { soap->fault->SOAP_ENV__Reason = soap_new_SOAP_ENV__Reason(soap, -1);
- soap_default_SOAP_ENV__Reason(soap, soap->fault->SOAP_ENV__Reason);
- }
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serializefault(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->fault)
- soap_serialize_SOAP_ENV__Fault(soap, soap->fault);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_putfault(struct soap *soap)
-{
- if (soap->fault)
- return soap_put_SOAP_ENV__Fault(soap, soap->fault, "SOAP-ENV:Fault", NULL);
- return SOAP_OK;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_getfault(struct soap *soap)
-{
- return (soap->fault = soap_get_SOAP_ENV__Fault(soap, NULL, "SOAP-ENV:Fault", NULL)) == NULL;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultcode(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 2)
- return (const char**)&soap->fault->SOAP_ENV__Code->SOAP_ENV__Value;
- return (const char**)&soap->fault->faultcode;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultsubcode(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 2)
- { if (!soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode)
- { soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode = soap_new_SOAP_ENV__Code(soap, -1);
- soap_default_SOAP_ENV__Code(soap, soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode);
- }
- return (const char**)&soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode->SOAP_ENV__Value;
- }
- return (const char**)&soap->fault->faultcode;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultstring(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 2)
- return (const char**)&soap->fault->SOAP_ENV__Reason->SOAP_ENV__Text;
- return (const char**)&soap->fault->faultstring;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultdetail(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 1)
- { if (!soap->fault->detail)
- { soap->fault->detail = (struct SOAP_ENV__Detail*)soap_malloc(soap, sizeof(struct SOAP_ENV__Detail));
- soap_default_SOAP_ENV__Detail(soap, soap->fault->detail);
- }
- return (const char**)&soap->fault->detail->__any;
- }
- if (!soap->fault->SOAP_ENV__Detail)
- { soap->fault->SOAP_ENV__Detail = soap_new_SOAP_ENV__Detail(soap, -1);
- soap_default_SOAP_ENV__Detail(soap, soap->fault->SOAP_ENV__Detail);
- }
- return (const char**)&soap->fault->SOAP_ENV__Detail->__any;
-}
-
-#endif
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 int SOAP_FMAC4 soap_getindependent(struct soap *soap)
-{
- int t;
- if (soap->version == 1)
- { for (;;)
- { if (!soap_getelement(soap, &t))
- if (soap->error || soap_ignore_element(soap))
- break;
- }
- }
- if (soap->error == SOAP_NO_TAG || soap->error == SOAP_EOF)
- soap->error = SOAP_OK;
- return soap->error;
-}
-#endif
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 void * SOAP_FMAC4 soap_getelement(struct soap *soap, int *type)
-{
- if (soap_peek_element(soap))
- return NULL;
- if (!*soap->id || !(*type = soap_lookup_type(soap, soap->id)))
- *type = soap_lookup_type(soap, soap->href);
- switch (*type)
- {
- case SOAP_TYPE_KMS_Certificate_byte:
- return soap_in_byte(soap, NULL, NULL, "xsd:byte");
- case SOAP_TYPE_KMS_Certificate_int:
- return soap_in_int(soap, NULL, NULL, "xsd:int");
- case SOAP_TYPE_KMS_Certificate_xsd__int:
- return soap_in_xsd__int(soap, NULL, NULL, "xsd:int");
- case SOAP_TYPE_KMS_Certificate_long:
- return soap_in_long(soap, NULL, NULL, "xsd:long");
- case SOAP_TYPE_KMS_Certificate_xsd__long:
- return soap_in_xsd__long(soap, NULL, NULL, "xsd:long");
- case SOAP_TYPE_KMS_Certificate_LONG64:
- return soap_in_LONG64(soap, NULL, NULL, "xsd:long");
- case SOAP_TYPE_KMS_Certificate_xsd__float:
- return soap_in_xsd__float(soap, NULL, NULL, "xsd:float");
- case SOAP_TYPE_KMS_Certificate_float:
- return soap_in_float(soap, NULL, NULL, "xsd:float");
- case SOAP_TYPE_KMS_Certificate_unsignedByte:
- return soap_in_unsignedByte(soap, NULL, NULL, "xsd:unsignedByte");
- case SOAP_TYPE_KMS_Certificate_unsignedInt:
- return soap_in_unsignedInt(soap, NULL, NULL, "xsd:unsignedInt");
- case SOAP_TYPE_KMS_Certificate_xsd__boolean:
- return soap_in_xsd__boolean(soap, NULL, NULL, "xsd:boolean");
- case SOAP_TYPE_KMS_Certificate_bool:
- return soap_in_bool(soap, NULL, NULL, "xsd:boolean");
- case SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificate:
- return soap_in_KMS_Certificate__RetrieveEntityCertificate(soap, NULL, NULL, "KMS-Certificate:RetrieveEntityCertificate");
- case SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificateResponse:
- return soap_in_KMS_Certificate__RetrieveEntityCertificateResponse(soap, NULL, NULL, "KMS-Certificate:RetrieveEntityCertificateResponse");
- case SOAP_TYPE_KMS_Certificate_xsd__hexBinary:
- return soap_in_xsd__hexBinary(soap, NULL, NULL, "xsd:hexBinary");
- case SOAP_TYPE_KMS_Certificate_PointerTounsignedByte:
- return soap_in_PointerTounsignedByte(soap, NULL, NULL, "xsd:unsignedByte");
- case SOAP_TYPE_KMS_Certificate_xsd__duration:
- { char **s;
- s = soap_in_xsd__duration(soap, NULL, NULL, "xsd:duration");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_KMS_Certificate_xsd__dateTime:
- { char **s;
- s = soap_in_xsd__dateTime(soap, NULL, NULL, "xsd:dateTime");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_KMS_Certificate_xsd__string:
- { char **s;
- s = soap_in_xsd__string(soap, NULL, NULL, "xsd:string");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_KMS_Certificate__QName:
- { char **s;
- s = soap_in__QName(soap, NULL, NULL, "xsd:QName");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_KMS_Certificate_string:
- { char **s;
- s = soap_in_string(soap, NULL, NULL, "xsd:string");
- return s ? *s : NULL;
- }
- default:
- { const char *t = soap->type;
- if (!*t)
- t = soap->tag;
- if (!soap_match_tag(soap, t, "xsd:byte"))
- { *type = SOAP_TYPE_KMS_Certificate_byte;
- return soap_in_byte(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:int"))
- { *type = SOAP_TYPE_KMS_Certificate_int;
- return soap_in_int(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:int"))
- { *type = SOAP_TYPE_KMS_Certificate_xsd__int;
- return soap_in_xsd__int(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:long"))
- { *type = SOAP_TYPE_KMS_Certificate_long;
- return soap_in_long(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:long"))
- { *type = SOAP_TYPE_KMS_Certificate_xsd__long;
- return soap_in_xsd__long(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:long"))
- { *type = SOAP_TYPE_KMS_Certificate_LONG64;
- return soap_in_LONG64(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:float"))
- { *type = SOAP_TYPE_KMS_Certificate_xsd__float;
- return soap_in_xsd__float(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:float"))
- { *type = SOAP_TYPE_KMS_Certificate_float;
- return soap_in_float(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:unsignedByte"))
- { *type = SOAP_TYPE_KMS_Certificate_unsignedByte;
- return soap_in_unsignedByte(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:unsignedInt"))
- { *type = SOAP_TYPE_KMS_Certificate_unsignedInt;
- return soap_in_unsignedInt(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:boolean"))
- { *type = SOAP_TYPE_KMS_Certificate_xsd__boolean;
- return soap_in_xsd__boolean(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:boolean"))
- { *type = SOAP_TYPE_KMS_Certificate_bool;
- return soap_in_bool(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Certificate:RetrieveEntityCertificate"))
- { *type = SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificate;
- return soap_in_KMS_Certificate__RetrieveEntityCertificate(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Certificate:RetrieveEntityCertificateResponse"))
- { *type = SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificateResponse;
- return soap_in_KMS_Certificate__RetrieveEntityCertificateResponse(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:hexBinary"))
- { *type = SOAP_TYPE_KMS_Certificate_xsd__hexBinary;
- return soap_in_xsd__hexBinary(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:duration"))
- { char **s;
- *type = SOAP_TYPE_KMS_Certificate_xsd__duration;
- s = soap_in_xsd__duration(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:dateTime"))
- { char **s;
- *type = SOAP_TYPE_KMS_Certificate_xsd__dateTime;
- s = soap_in_xsd__dateTime(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:string"))
- { char **s;
- *type = SOAP_TYPE_KMS_Certificate_xsd__string;
- s = soap_in_xsd__string(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:QName"))
- { char **s;
- *type = SOAP_TYPE_KMS_Certificate__QName;
- s = soap_in__QName(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:string"))
- { char **s;
- *type = SOAP_TYPE_KMS_Certificate_string;
- s = soap_in_string(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- t = soap->tag;
- }
- }
- soap->error = SOAP_TAG_MISMATCH;
- return NULL;
-}
-#endif
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_ignore_element(struct soap *soap)
-{
- if (!soap_peek_element(soap))
- { int t;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Unexpected element '%s' in input (level=%u, %d)\n", soap->tag, soap->level, soap->body));
- if (soap->mustUnderstand && !soap->other)
- return soap->error = SOAP_MUSTUNDERSTAND;
- if (((soap->mode & SOAP_XML_STRICT) && soap->part != SOAP_IN_HEADER) || !soap_match_tag(soap, soap->tag, "SOAP-ENV:"))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "REJECTING element '%s'\n", soap->tag));
- return soap->error = SOAP_TAG_MISMATCH;
- }
- if (!*soap->id || !soap_getelement(soap, &t))
- { soap->peeked = 0;
- if (soap->fignore)
- soap->error = soap->fignore(soap, soap->tag);
- else
- soap->error = SOAP_OK;
- DBGLOG(TEST, if (!soap->error) SOAP_MESSAGE(fdebug, "IGNORING element '%s'\n", soap->tag));
- if (!soap->error && soap->body)
- { soap->level++;
- while (!soap_ignore_element(soap))
- ;
- if (soap->error == SOAP_NO_TAG)
- soap->error = soap_element_end_in(soap, NULL);
- }
- }
- }
- return soap->error;
-}
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 int SOAP_FMAC4 soap_putindependent(struct soap *soap)
-{
- int i;
- struct soap_plist *pp;
- if (soap->version == 1 && soap->encodingStyle && !(soap->mode & (SOAP_XML_TREE | SOAP_XML_GRAPH)))
- for (i = 0; i < SOAP_PTRHASH; i++)
- for (pp = soap->pht[i]; pp; pp = pp->next)
- if (pp->mark1 == 2 || pp->mark2 == 2)
- if (soap_putelement(soap, pp->ptr, "id", pp->id, pp->type))
- return soap->error;
- return SOAP_OK;
-}
-#endif
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 int SOAP_FMAC4 soap_putelement(struct soap *soap, const void *ptr, const char *tag, int id, int type)
-{
- switch (type)
- {
- case SOAP_TYPE_KMS_Certificate_byte:
- return soap_out_byte(soap, tag, id, (const char *)ptr, "xsd:byte");
- case SOAP_TYPE_KMS_Certificate_int:
- return soap_out_int(soap, tag, id, (const int *)ptr, "xsd:int");
- case SOAP_TYPE_KMS_Certificate_xsd__int:
- return soap_out_xsd__int(soap, tag, id, (const long *)ptr, "xsd:int");
- case SOAP_TYPE_KMS_Certificate_long:
- return soap_out_long(soap, tag, id, (const long *)ptr, "xsd:long");
- case SOAP_TYPE_KMS_Certificate_xsd__long:
- return soap_out_xsd__long(soap, tag, id, (const LONG64 *)ptr, "xsd:long");
- case SOAP_TYPE_KMS_Certificate_LONG64:
- return soap_out_LONG64(soap, tag, id, (const LONG64 *)ptr, "xsd:long");
- case SOAP_TYPE_KMS_Certificate_xsd__float:
- return soap_out_xsd__float(soap, tag, id, (const float *)ptr, "xsd:float");
- case SOAP_TYPE_KMS_Certificate_float:
- return soap_out_float(soap, tag, id, (const float *)ptr, "xsd:float");
- case SOAP_TYPE_KMS_Certificate_unsignedByte:
- return soap_out_unsignedByte(soap, tag, id, (const unsigned char *)ptr, "xsd:unsignedByte");
- case SOAP_TYPE_KMS_Certificate_unsignedInt:
- return soap_out_unsignedInt(soap, tag, id, (const unsigned int *)ptr, "xsd:unsignedInt");
- case SOAP_TYPE_KMS_Certificate_xsd__boolean:
- return soap_out_xsd__boolean(soap, tag, id, (const bool *)ptr, "xsd:boolean");
- case SOAP_TYPE_KMS_Certificate_bool:
- return soap_out_bool(soap, tag, id, (const bool *)ptr, "xsd:boolean");
- case SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificate:
- return soap_out_KMS_Certificate__RetrieveEntityCertificate(soap, tag, id, (const struct KMS_Certificate__RetrieveEntityCertificate *)ptr, "KMS-Certificate:RetrieveEntityCertificate");
- case SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificateResponse:
- return soap_out_KMS_Certificate__RetrieveEntityCertificateResponse(soap, tag, id, (const struct KMS_Certificate__RetrieveEntityCertificateResponse *)ptr, "KMS-Certificate:RetrieveEntityCertificateResponse");
- case SOAP_TYPE_KMS_Certificate_xsd__hexBinary:
- return soap_out_xsd__hexBinary(soap, tag, id, (const struct xsd__hexBinary *)ptr, "xsd:hexBinary");
- case SOAP_TYPE_KMS_Certificate_PointerTounsignedByte:
- return soap_out_PointerTounsignedByte(soap, tag, id, (unsigned char *const*)ptr, "xsd:unsignedByte");
- case SOAP_TYPE_KMS_Certificate_xsd__duration:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:duration");
- case SOAP_TYPE_KMS_Certificate_xsd__dateTime:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:dateTime");
- case SOAP_TYPE_KMS_Certificate_xsd__string:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:string");
- case SOAP_TYPE_KMS_Certificate__QName:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:QName");
- case SOAP_TYPE_KMS_Certificate_string:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:string");
- }
- return SOAP_OK;
-}
-#endif
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 void SOAP_FMAC4 soap_markelement(struct soap *soap, const void *ptr, int type)
-{
- (void)soap; (void)ptr; (void)type; /* appease -Wall -Werror */
- switch (type)
- {
- case SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificate:
- soap_serialize_KMS_Certificate__RetrieveEntityCertificate(soap, (const struct KMS_Certificate__RetrieveEntityCertificate *)ptr);
- break;
- case SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificateResponse:
- soap_serialize_KMS_Certificate__RetrieveEntityCertificateResponse(soap, (const struct KMS_Certificate__RetrieveEntityCertificateResponse *)ptr);
- break;
- case SOAP_TYPE_KMS_Certificate_xsd__hexBinary:
- soap_serialize_xsd__hexBinary(soap, (const struct xsd__hexBinary *)ptr);
- break;
- case SOAP_TYPE_KMS_Certificate_PointerTounsignedByte:
- soap_serialize_PointerTounsignedByte(soap, (unsigned char *const*)ptr);
- break;
- case SOAP_TYPE_KMS_Certificate_xsd__duration:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_KMS_Certificate_xsd__dateTime:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_KMS_Certificate_xsd__string:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_KMS_Certificate__QName:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_KMS_Certificate_string:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- }
-}
-#endif
-
-SOAP_FMAC3 void * SOAP_FMAC4 soap_instantiate(struct soap *soap, int t, const char *type, const char *arrayType, size_t *n)
-{
- switch (t)
- {
- case SOAP_TYPE_KMS_Certificate_xsd__hexBinary:
- return (void*)soap_instantiate_xsd__hexBinary(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificateResponse:
- return (void*)soap_instantiate_KMS_Certificate__RetrieveEntityCertificateResponse(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificate:
- return (void*)soap_instantiate_KMS_Certificate__RetrieveEntityCertificate(soap, -1, type, arrayType, n);
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_Certificate_SOAP_ENV__Header:
- return (void*)soap_instantiate_SOAP_ENV__Header(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_Certificate_SOAP_ENV__Code:
- return (void*)soap_instantiate_SOAP_ENV__Code(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_Certificate_SOAP_ENV__Detail:
- return (void*)soap_instantiate_SOAP_ENV__Detail(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_Certificate_SOAP_ENV__Reason:
- return (void*)soap_instantiate_SOAP_ENV__Reason(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_Certificate_SOAP_ENV__Fault:
- return (void*)soap_instantiate_SOAP_ENV__Fault(soap, -1, type, arrayType, n);
-#endif
- }
- return NULL;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_fdelete(struct soap_clist *p)
-{ switch (p->type)
- {
- case SOAP_TYPE_KMS_Certificate_xsd__hexBinary:
- if (p->size < 0)
- SOAP_DELETE((struct xsd__hexBinary*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct xsd__hexBinary*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificateResponse:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Certificate__RetrieveEntityCertificateResponse*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Certificate__RetrieveEntityCertificateResponse*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificate:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Certificate__RetrieveEntityCertificate*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Certificate__RetrieveEntityCertificate*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Certificate_SOAP_ENV__Header:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Header*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Header*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Certificate_SOAP_ENV__Code:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Code*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Code*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Certificate_SOAP_ENV__Detail:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Detail*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Detail*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Certificate_SOAP_ENV__Reason:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Reason*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Reason*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Certificate_SOAP_ENV__Fault:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Fault*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Fault*)p->ptr);
- break;
- default: return SOAP_ERR;
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 void* SOAP_FMAC4 soap_class_id_enter(struct soap *soap, const char *id, void *p, int t, size_t n, const char *type, const char *arrayType)
-{ return soap_id_enter(soap, id, p, t, n, 0, type, arrayType, soap_instantiate);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_byte(struct soap *soap, char *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_byte
- *a = SOAP_DEFAULT_byte;
-#else
- *a = (char)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_byte(struct soap *soap, const char *tag, int id, const char *a, const char *type)
-{
- return soap_outbyte(soap, tag, id, a, type, SOAP_TYPE_KMS_Certificate_byte);
-}
-
-SOAP_FMAC3 char * SOAP_FMAC4 soap_in_byte(struct soap *soap, const char *tag, char *a, const char *type)
-{ char *p;
- p = soap_inbyte(soap, tag, a, type, SOAP_TYPE_KMS_Certificate_byte);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_byte(struct soap *soap, const char *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_byte);
- if (soap_out_byte(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char * SOAP_FMAC4 soap_get_byte(struct soap *soap, char *p, const char *tag, const char *type)
-{
- if ((p = soap_in_byte(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_int(struct soap *soap, int *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_int
- *a = SOAP_DEFAULT_int;
-#else
- *a = (int)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_int(struct soap *soap, const char *tag, int id, const int *a, const char *type)
-{
- return soap_outint(soap, tag, id, a, type, SOAP_TYPE_KMS_Certificate_int);
-}
-
-SOAP_FMAC3 int * SOAP_FMAC4 soap_in_int(struct soap *soap, const char *tag, int *a, const char *type)
-{ int *p;
- p = soap_inint(soap, tag, a, type, SOAP_TYPE_KMS_Certificate_int);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_int(struct soap *soap, const int *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_int);
- if (soap_out_int(soap, tag?tag:"int", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 int * SOAP_FMAC4 soap_get_int(struct soap *soap, int *p, const char *tag, const char *type)
-{
- if ((p = soap_in_int(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__int(struct soap *soap, const char *tag, int id, const long *a, const char *type)
-{
- return soap_outlong(soap, tag, id, a, type, SOAP_TYPE_KMS_Certificate_xsd__int);
-}
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_in_xsd__int(struct soap *soap, const char *tag, long *a, const char *type)
-{ long *p;
- p = soap_inlong(soap, tag, a, type, SOAP_TYPE_KMS_Certificate_xsd__int);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__int(struct soap *soap, const long *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_xsd__int);
- if (soap_out_xsd__int(soap, tag?tag:"xsd:int", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_get_xsd__int(struct soap *soap, long *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__int(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_long(struct soap *soap, long *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_long
- *a = SOAP_DEFAULT_long;
-#else
- *a = (long)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_long(struct soap *soap, const char *tag, int id, const long *a, const char *type)
-{
- return soap_outlong(soap, tag, id, a, type, SOAP_TYPE_KMS_Certificate_long);
-}
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_in_long(struct soap *soap, const char *tag, long *a, const char *type)
-{ long *p;
- p = soap_inlong(soap, tag, a, type, SOAP_TYPE_KMS_Certificate_long);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_long(struct soap *soap, const long *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_long);
- if (soap_out_long(soap, tag?tag:"long", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_get_long(struct soap *soap, long *p, const char *tag, const char *type)
-{
- if ((p = soap_in_long(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__long(struct soap *soap, const char *tag, int id, const LONG64 *a, const char *type)
-{
- return soap_outLONG64(soap, tag, id, a, type, SOAP_TYPE_KMS_Certificate_xsd__long);
-}
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_in_xsd__long(struct soap *soap, const char *tag, LONG64 *a, const char *type)
-{ LONG64 *p;
- p = soap_inLONG64(soap, tag, a, type, SOAP_TYPE_KMS_Certificate_xsd__long);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__long(struct soap *soap, const LONG64 *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_xsd__long);
- if (soap_out_xsd__long(soap, tag?tag:"xsd:long", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_get_xsd__long(struct soap *soap, LONG64 *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__long(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_LONG64(struct soap *soap, LONG64 *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_LONG64
- *a = SOAP_DEFAULT_LONG64;
-#else
- *a = (LONG64)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_LONG64(struct soap *soap, const char *tag, int id, const LONG64 *a, const char *type)
-{
- return soap_outLONG64(soap, tag, id, a, type, SOAP_TYPE_KMS_Certificate_LONG64);
-}
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_in_LONG64(struct soap *soap, const char *tag, LONG64 *a, const char *type)
-{ LONG64 *p;
- p = soap_inLONG64(soap, tag, a, type, SOAP_TYPE_KMS_Certificate_LONG64);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_LONG64(struct soap *soap, const LONG64 *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_LONG64);
- if (soap_out_LONG64(soap, tag?tag:"long", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_get_LONG64(struct soap *soap, LONG64 *p, const char *tag, const char *type)
-{
- if ((p = soap_in_LONG64(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__float(struct soap *soap, const char *tag, int id, const float *a, const char *type)
-{
- return soap_outfloat(soap, tag, id, a, type, SOAP_TYPE_KMS_Certificate_xsd__float);
-}
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_in_xsd__float(struct soap *soap, const char *tag, float *a, const char *type)
-{ float *p;
- p = soap_infloat(soap, tag, a, type, SOAP_TYPE_KMS_Certificate_xsd__float);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__float(struct soap *soap, const float *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_xsd__float);
- if (soap_out_xsd__float(soap, tag?tag:"xsd:float", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_get_xsd__float(struct soap *soap, float *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__float(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_float(struct soap *soap, float *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_float
- *a = SOAP_DEFAULT_float;
-#else
- *a = (float)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_float(struct soap *soap, const char *tag, int id, const float *a, const char *type)
-{
- return soap_outfloat(soap, tag, id, a, type, SOAP_TYPE_KMS_Certificate_float);
-}
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_in_float(struct soap *soap, const char *tag, float *a, const char *type)
-{ float *p;
- p = soap_infloat(soap, tag, a, type, SOAP_TYPE_KMS_Certificate_float);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_float(struct soap *soap, const float *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_float);
- if (soap_out_float(soap, tag?tag:"float", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_get_float(struct soap *soap, float *p, const char *tag, const char *type)
-{
- if ((p = soap_in_float(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_unsignedByte(struct soap *soap, unsigned char *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_unsignedByte
- *a = SOAP_DEFAULT_unsignedByte;
-#else
- *a = (unsigned char)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_unsignedByte(struct soap *soap, const char *tag, int id, const unsigned char *a, const char *type)
-{
- return soap_outunsignedByte(soap, tag, id, a, type, SOAP_TYPE_KMS_Certificate_unsignedByte);
-}
-
-SOAP_FMAC3 unsigned char * SOAP_FMAC4 soap_in_unsignedByte(struct soap *soap, const char *tag, unsigned char *a, const char *type)
-{ unsigned char *p;
- p = soap_inunsignedByte(soap, tag, a, type, SOAP_TYPE_KMS_Certificate_unsignedByte);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_unsignedByte(struct soap *soap, const unsigned char *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_unsignedByte);
- if (soap_out_unsignedByte(soap, tag?tag:"unsignedByte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 unsigned char * SOAP_FMAC4 soap_get_unsignedByte(struct soap *soap, unsigned char *p, const char *tag, const char *type)
-{
- if ((p = soap_in_unsignedByte(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_unsignedInt(struct soap *soap, unsigned int *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_unsignedInt
- *a = SOAP_DEFAULT_unsignedInt;
-#else
- *a = (unsigned int)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_unsignedInt(struct soap *soap, const char *tag, int id, const unsigned int *a, const char *type)
-{
- return soap_outunsignedInt(soap, tag, id, a, type, SOAP_TYPE_KMS_Certificate_unsignedInt);
-}
-
-SOAP_FMAC3 unsigned int * SOAP_FMAC4 soap_in_unsignedInt(struct soap *soap, const char *tag, unsigned int *a, const char *type)
-{ unsigned int *p;
- p = soap_inunsignedInt(soap, tag, a, type, SOAP_TYPE_KMS_Certificate_unsignedInt);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_unsignedInt(struct soap *soap, const unsigned int *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_unsignedInt);
- if (soap_out_unsignedInt(soap, tag?tag:"unsignedInt", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 unsigned int * SOAP_FMAC4 soap_get_unsignedInt(struct soap *soap, unsigned int *p, const char *tag, const char *type)
-{
- if ((p = soap_in_unsignedInt(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_xsd__boolean2s(struct soap *soap, bool n)
-{ return soap_bool2s(soap, n);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__boolean(struct soap *soap, const char *tag, int id, const bool *a, const char *type)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Certificate_xsd__boolean), type) || soap_send(soap, soap_xsd__boolean2s(soap, *a)))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2xsd__boolean(struct soap *soap, const char *s, bool *a)
-{
- return soap_s2bool(soap, s, a);
-}
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_in_xsd__boolean(struct soap *soap, const char *tag, bool *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
- if (*soap->type && soap_match_tag(soap, soap->type, type) && soap_match_tag(soap, soap->type, ":boolean"))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- a = (bool *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Certificate_xsd__boolean, sizeof(bool), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- if (soap->body && !*soap->href)
- { if (!a || soap_s2xsd__boolean(soap, soap_value(soap), a) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (bool *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Certificate_xsd__boolean, 0, sizeof(bool), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__boolean(struct soap *soap, const bool *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_xsd__boolean);
- if (soap_out_xsd__boolean(soap, tag?tag:"xsd:boolean", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_get_xsd__boolean(struct soap *soap, bool *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__boolean(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_bool(struct soap *soap, bool *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_bool
- *a = SOAP_DEFAULT_bool;
-#else
- *a = (bool)0;
-#endif
-}
-
-static const struct soap_code_map soap_codes_bool[] =
-{ { (long)false, "false" },
- { (long)true, "true" },
- { 0, NULL }
-};
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_bool2s(struct soap *soap, bool n)
-{
- (void)soap; /* appease -Wall -Werror */
-return soap_code_str(soap_codes_bool, n!=0);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_bool(struct soap *soap, const char *tag, int id, const bool *a, const char *type)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Certificate_bool), type) || soap_send(soap, soap_bool2s(soap, *a)))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2bool(struct soap *soap, const char *s, bool *a)
-{
- const struct soap_code_map *map;
- if (!s)
- return soap->error;
- map = soap_code(soap_codes_bool, s);
- if (map)
- *a = (bool)(map->code != 0);
- else
- { long n;
- if (soap_s2long(soap, s, &n) || n < 0 || n > 1)
- return soap->error = SOAP_TYPE;
- *a = (bool)(n != 0);
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_in_bool(struct soap *soap, const char *tag, bool *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
- if (*soap->type && soap_match_tag(soap, soap->type, type) && soap_match_tag(soap, soap->type, ":boolean"))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- a = (bool *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Certificate_bool, sizeof(bool), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- if (soap->body && !*soap->href)
- { if (!a || soap_s2bool(soap, soap_value(soap), a) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (bool *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Certificate_bool, 0, sizeof(bool), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_bool(struct soap *soap, const bool *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_bool);
- if (soap_out_bool(soap, tag?tag:"boolean", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_get_bool(struct soap *soap, bool *p, const char *tag, const char *type)
-{
- if ((p = soap_in_bool(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Fault(struct soap *soap, struct SOAP_ENV__Fault *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default__QName(soap, &a->faultcode);
- soap_default_string(soap, &a->faultstring);
- soap_default_string(soap, &a->faultactor);
- a->detail = NULL;
- a->SOAP_ENV__Code = NULL;
- a->SOAP_ENV__Reason = NULL;
- soap_default_string(soap, &a->SOAP_ENV__Node);
- soap_default_string(soap, &a->SOAP_ENV__Role);
- a->SOAP_ENV__Detail = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Fault(struct soap *soap, const struct SOAP_ENV__Fault *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize__QName(soap, &a->faultcode);
- soap_serialize_string(soap, &a->faultstring);
- soap_serialize_string(soap, &a->faultactor);
- soap_serialize_PointerToSOAP_ENV__Detail(soap, &a->detail);
- soap_serialize_PointerToSOAP_ENV__Code(soap, &a->SOAP_ENV__Code);
- soap_serialize_PointerToSOAP_ENV__Reason(soap, &a->SOAP_ENV__Reason);
- soap_serialize_string(soap, &a->SOAP_ENV__Node);
- soap_serialize_string(soap, &a->SOAP_ENV__Role);
- soap_serialize_PointerToSOAP_ENV__Detail(soap, &a->SOAP_ENV__Detail);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Fault(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Fault *a, const char *type)
-{
- const char *soap_tmp_faultcode = soap_QName2s(soap, a->faultcode);
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Fault), type))
- return soap->error;
- if (soap_out__QName(soap, "faultcode", -1, (char*const*)&soap_tmp_faultcode, ""))
- return soap->error;
- if (soap_out_string(soap, "faultstring", -1, &a->faultstring, "xsd:string"))
- return soap->error;
- if (soap_out_string(soap, "faultactor", -1, &a->faultactor, "xsd:string"))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Detail(soap, "detail", -1, &a->detail, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Code", -1, &a->SOAP_ENV__Code, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Reason(soap, "SOAP-ENV:Reason", -1, &a->SOAP_ENV__Reason, ""))
- return soap->error;
- if (soap_out_string(soap, "SOAP-ENV:Node", -1, &a->SOAP_ENV__Node, ""))
- return soap->error;
- if (soap_out_string(soap, "SOAP-ENV:Role", -1, &a->SOAP_ENV__Role, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Detail(soap, "SOAP-ENV:Detail", -1, &a->SOAP_ENV__Detail, ""))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_in_SOAP_ENV__Fault(struct soap *soap, const char *tag, struct SOAP_ENV__Fault *a, const char *type)
-{
- size_t soap_flag_faultcode = 1;
- size_t soap_flag_faultstring = 1;
- size_t soap_flag_faultactor = 1;
- size_t soap_flag_detail = 1;
- size_t soap_flag_SOAP_ENV__Code = 1;
- size_t soap_flag_SOAP_ENV__Reason = 1;
- size_t soap_flag_SOAP_ENV__Node = 1;
- size_t soap_flag_SOAP_ENV__Role = 1;
- size_t soap_flag_SOAP_ENV__Detail = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Fault *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Fault, sizeof(struct SOAP_ENV__Fault), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Fault(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_faultcode && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in__QName(soap, "faultcode", &a->faultcode, ""))
- { soap_flag_faultcode--;
- continue;
- }
- if (soap_flag_faultstring && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "faultstring", &a->faultstring, "xsd:string"))
- { soap_flag_faultstring--;
- continue;
- }
- if (soap_flag_faultactor && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "faultactor", &a->faultactor, "xsd:string"))
- { soap_flag_faultactor--;
- continue;
- }
- if (soap_flag_detail && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Detail(soap, "detail", &a->detail, ""))
- { soap_flag_detail--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Code && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Code", &a->SOAP_ENV__Code, ""))
- { soap_flag_SOAP_ENV__Code--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Reason && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Reason(soap, "SOAP-ENV:Reason", &a->SOAP_ENV__Reason, ""))
- { soap_flag_SOAP_ENV__Reason--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Node && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "SOAP-ENV:Node", &a->SOAP_ENV__Node, "xsd:string"))
- { soap_flag_SOAP_ENV__Node--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Role && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "SOAP-ENV:Role", &a->SOAP_ENV__Role, "xsd:string"))
- { soap_flag_SOAP_ENV__Role--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Detail && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Detail(soap, "SOAP-ENV:Detail", &a->SOAP_ENV__Detail, ""))
- { soap_flag_SOAP_ENV__Detail--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Fault *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Fault, 0, sizeof(struct SOAP_ENV__Fault), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Fault(struct soap *soap, const struct SOAP_ENV__Fault *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Fault);
- if (soap_out_SOAP_ENV__Fault(soap, tag?tag:"SOAP-ENV:Fault", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_get_SOAP_ENV__Fault(struct soap *soap, struct SOAP_ENV__Fault *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Fault(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Fault * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Fault(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Fault(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Fault, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Fault);
- if (size)
- *size = sizeof(struct SOAP_ENV__Fault);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Fault[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Fault);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Fault*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Fault(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Fault %p -> %p\n", q, p));
- *(struct SOAP_ENV__Fault*)p = *(struct SOAP_ENV__Fault*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_string(soap, &a->SOAP_ENV__Text);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Reason(struct soap *soap, const struct SOAP_ENV__Reason *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_string(soap, &a->SOAP_ENV__Text);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Reason(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Reason *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Reason), type))
- return soap->error;
- if (soap->lang)
- soap_set_attr(soap, "xml:lang", soap->lang, 1);
- if (soap_out_string(soap, "SOAP-ENV:Text", -1, &a->SOAP_ENV__Text, ""))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_in_SOAP_ENV__Reason(struct soap *soap, const char *tag, struct SOAP_ENV__Reason *a, const char *type)
-{
- size_t soap_flag_SOAP_ENV__Text = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Reason *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Reason, sizeof(struct SOAP_ENV__Reason), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Reason(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_SOAP_ENV__Text && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "SOAP-ENV:Text", &a->SOAP_ENV__Text, "xsd:string"))
- { soap_flag_SOAP_ENV__Text--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Reason *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Reason, 0, sizeof(struct SOAP_ENV__Reason), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Reason(struct soap *soap, const struct SOAP_ENV__Reason *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Reason);
- if (soap_out_SOAP_ENV__Reason(soap, tag?tag:"SOAP-ENV:Reason", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_get_SOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Reason(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Reason * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Reason(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Reason(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Reason, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Reason);
- if (size)
- *size = sizeof(struct SOAP_ENV__Reason);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Reason[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Reason);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Reason*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Reason(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Reason %p -> %p\n", q, p));
- *(struct SOAP_ENV__Reason*)p = *(struct SOAP_ENV__Reason*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- a->__type = 0;
- a->fault = NULL;
- a->__any = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Detail(struct soap *soap, const struct SOAP_ENV__Detail *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_markelement(soap, a->fault, a->__type);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Detail(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Detail *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Detail), type))
- return soap->error;
- if (soap_putelement(soap, a->fault, "fault", -1, a->__type))
- return soap->error;
- soap_outliteral(soap, "-any", &a->__any, NULL);
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_in_SOAP_ENV__Detail(struct soap *soap, const char *tag, struct SOAP_ENV__Detail *a, const char *type)
-{
- size_t soap_flag_fault = 1;
- size_t soap_flag___any = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Detail *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Detail, sizeof(struct SOAP_ENV__Detail), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Detail(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_fault && soap->error == SOAP_TAG_MISMATCH)
- if ((a->fault = soap_getelement(soap, &a->__type)))
- { soap_flag_fault = 0;
- continue;
- }
- if (soap_flag___any && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_inliteral(soap, "-any", &a->__any))
- { soap_flag___any--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Detail *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Detail, 0, sizeof(struct SOAP_ENV__Detail), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Detail(struct soap *soap, const struct SOAP_ENV__Detail *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Detail);
- if (soap_out_SOAP_ENV__Detail(soap, tag?tag:"SOAP-ENV:Detail", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_get_SOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Detail(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Detail * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Detail(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Detail(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Detail, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Detail);
- if (size)
- *size = sizeof(struct SOAP_ENV__Detail);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Detail[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Detail);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Detail*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Detail(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Detail %p -> %p\n", q, p));
- *(struct SOAP_ENV__Detail*)p = *(struct SOAP_ENV__Detail*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default__QName(soap, &a->SOAP_ENV__Value);
- a->SOAP_ENV__Subcode = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Code(struct soap *soap, const struct SOAP_ENV__Code *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize__QName(soap, &a->SOAP_ENV__Value);
- soap_serialize_PointerToSOAP_ENV__Code(soap, &a->SOAP_ENV__Subcode);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Code(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Code *a, const char *type)
-{
- const char *soap_tmp_SOAP_ENV__Value = soap_QName2s(soap, a->SOAP_ENV__Value);
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Code), type))
- return soap->error;
- if (soap_out__QName(soap, "SOAP-ENV:Value", -1, (char*const*)&soap_tmp_SOAP_ENV__Value, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Subcode", -1, &a->SOAP_ENV__Subcode, ""))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_in_SOAP_ENV__Code(struct soap *soap, const char *tag, struct SOAP_ENV__Code *a, const char *type)
-{
- size_t soap_flag_SOAP_ENV__Value = 1;
- size_t soap_flag_SOAP_ENV__Subcode = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Code *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Code, sizeof(struct SOAP_ENV__Code), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Code(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_SOAP_ENV__Value && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in__QName(soap, "SOAP-ENV:Value", &a->SOAP_ENV__Value, ""))
- { soap_flag_SOAP_ENV__Value--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Subcode && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Subcode", &a->SOAP_ENV__Subcode, ""))
- { soap_flag_SOAP_ENV__Subcode--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Code *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Code, 0, sizeof(struct SOAP_ENV__Code), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Code(struct soap *soap, const struct SOAP_ENV__Code *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Code);
- if (soap_out_SOAP_ENV__Code(soap, tag?tag:"SOAP-ENV:Code", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_get_SOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Code(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Code * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Code(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Code(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Code, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Code);
- if (size)
- *size = sizeof(struct SOAP_ENV__Code);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Code[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Code);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Code*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Code(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Code %p -> %p\n", q, p));
- *(struct SOAP_ENV__Code*)p = *(struct SOAP_ENV__Code*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Header(struct soap *soap, struct SOAP_ENV__Header *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Header(struct soap *soap, const struct SOAP_ENV__Header *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Header(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Header *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Header), type))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_in_SOAP_ENV__Header(struct soap *soap, const char *tag, struct SOAP_ENV__Header *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Header *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Header, sizeof(struct SOAP_ENV__Header), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Header(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Header *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Header, 0, sizeof(struct SOAP_ENV__Header), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Header(struct soap *soap, const struct SOAP_ENV__Header *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Header);
- if (soap_out_SOAP_ENV__Header(soap, tag?tag:"SOAP-ENV:Header", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_get_SOAP_ENV__Header(struct soap *soap, struct SOAP_ENV__Header *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Header(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Header * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Header(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Header(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Header, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Header);
- if (size)
- *size = sizeof(struct SOAP_ENV__Header);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Header[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Header);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Header*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Header(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Header %p -> %p\n", q, p));
- *(struct SOAP_ENV__Header*)p = *(struct SOAP_ENV__Header*)q;
-}
-
-#endif
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Certificate__RetrieveEntityCertificate(struct soap *soap, struct KMS_Certificate__RetrieveEntityCertificate *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__string(soap, &a->EntityID);
- soap_default_xsd__hexBinary(soap, &a->ClientAuthenticationResponse);
- soap_default_xsd__hexBinary(soap, &a->ServerAuthenticationChallenge);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Certificate__RetrieveEntityCertificate(struct soap *soap, const struct KMS_Certificate__RetrieveEntityCertificate *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__string(soap, &a->EntityID);
- soap_serialize_xsd__hexBinary(soap, &a->ClientAuthenticationResponse);
- soap_serialize_xsd__hexBinary(soap, &a->ServerAuthenticationChallenge);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Certificate__RetrieveEntityCertificate(struct soap *soap, const char *tag, int id, const struct KMS_Certificate__RetrieveEntityCertificate *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificate), type))
- return soap->error;
- if (soap_out_xsd__string(soap, "EntityID", -1, &a->EntityID, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__hexBinary(soap, "ClientAuthenticationResponse", -1, &a->ClientAuthenticationResponse, "xsd:hexBinary"))
- return soap->error;
- if (soap_out_xsd__hexBinary(soap, "ServerAuthenticationChallenge", -1, &a->ServerAuthenticationChallenge, "xsd:hexBinary"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Certificate__RetrieveEntityCertificate * SOAP_FMAC4 soap_in_KMS_Certificate__RetrieveEntityCertificate(struct soap *soap, const char *tag, struct KMS_Certificate__RetrieveEntityCertificate *a, const char *type)
-{
- size_t soap_flag_EntityID = 1;
- size_t soap_flag_ClientAuthenticationResponse = 1;
- size_t soap_flag_ServerAuthenticationChallenge = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Certificate__RetrieveEntityCertificate *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificate, sizeof(struct KMS_Certificate__RetrieveEntityCertificate), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Certificate__RetrieveEntityCertificate(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_EntityID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "EntityID", &a->EntityID, "xsd:string"))
- { soap_flag_EntityID--;
- continue;
- }
- if (soap_flag_ClientAuthenticationResponse && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__hexBinary(soap, "ClientAuthenticationResponse", &a->ClientAuthenticationResponse, "xsd:hexBinary"))
- { soap_flag_ClientAuthenticationResponse--;
- continue;
- }
- if (soap_flag_ServerAuthenticationChallenge && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__hexBinary(soap, "ServerAuthenticationChallenge", &a->ServerAuthenticationChallenge, "xsd:hexBinary"))
- { soap_flag_ServerAuthenticationChallenge--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Certificate__RetrieveEntityCertificate *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificate, 0, sizeof(struct KMS_Certificate__RetrieveEntityCertificate), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_ClientAuthenticationResponse > 0 || soap_flag_ServerAuthenticationChallenge > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Certificate__RetrieveEntityCertificate(struct soap *soap, const struct KMS_Certificate__RetrieveEntityCertificate *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificate);
- if (soap_out_KMS_Certificate__RetrieveEntityCertificate(soap, tag?tag:"KMS-Certificate:RetrieveEntityCertificate", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Certificate__RetrieveEntityCertificate * SOAP_FMAC4 soap_get_KMS_Certificate__RetrieveEntityCertificate(struct soap *soap, struct KMS_Certificate__RetrieveEntityCertificate *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Certificate__RetrieveEntityCertificate(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Certificate__RetrieveEntityCertificate * SOAP_FMAC2 soap_instantiate_KMS_Certificate__RetrieveEntityCertificate(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Certificate__RetrieveEntityCertificate(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificate, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Certificate__RetrieveEntityCertificate);
- if (size)
- *size = sizeof(struct KMS_Certificate__RetrieveEntityCertificate);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Certificate__RetrieveEntityCertificate[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Certificate__RetrieveEntityCertificate);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Certificate__RetrieveEntityCertificate*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Certificate__RetrieveEntityCertificate(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Certificate__RetrieveEntityCertificate %p -> %p\n", q, p));
- *(struct KMS_Certificate__RetrieveEntityCertificate*)p = *(struct KMS_Certificate__RetrieveEntityCertificate*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Certificate__RetrieveEntityCertificateResponse(struct soap *soap, struct KMS_Certificate__RetrieveEntityCertificateResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__hexBinary(soap, &a->ServerAuthenticationResponse);
- soap_default_xsd__hexBinary(soap, &a->Certificate);
- soap_default_xsd__hexBinary(soap, &a->WrappedPrivateKeyMaterial);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Certificate__RetrieveEntityCertificateResponse(struct soap *soap, const struct KMS_Certificate__RetrieveEntityCertificateResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__hexBinary(soap, &a->ServerAuthenticationResponse);
- soap_serialize_xsd__hexBinary(soap, &a->Certificate);
- soap_serialize_xsd__hexBinary(soap, &a->WrappedPrivateKeyMaterial);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Certificate__RetrieveEntityCertificateResponse(struct soap *soap, const char *tag, int id, const struct KMS_Certificate__RetrieveEntityCertificateResponse *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificateResponse), type))
- return soap->error;
- if (soap_out_xsd__hexBinary(soap, "ServerAuthenticationResponse", -1, &a->ServerAuthenticationResponse, "xsd:hexBinary"))
- return soap->error;
- if (soap_out_xsd__hexBinary(soap, "Certificate", -1, &a->Certificate, "xsd:hexBinary"))
- return soap->error;
- if (soap_out_xsd__hexBinary(soap, "WrappedPrivateKeyMaterial", -1, &a->WrappedPrivateKeyMaterial, "xsd:hexBinary"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Certificate__RetrieveEntityCertificateResponse * SOAP_FMAC4 soap_in_KMS_Certificate__RetrieveEntityCertificateResponse(struct soap *soap, const char *tag, struct KMS_Certificate__RetrieveEntityCertificateResponse *a, const char *type)
-{
- size_t soap_flag_ServerAuthenticationResponse = 1;
- size_t soap_flag_Certificate = 1;
- size_t soap_flag_WrappedPrivateKeyMaterial = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Certificate__RetrieveEntityCertificateResponse *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificateResponse, sizeof(struct KMS_Certificate__RetrieveEntityCertificateResponse), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Certificate__RetrieveEntityCertificateResponse(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_ServerAuthenticationResponse && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__hexBinary(soap, "ServerAuthenticationResponse", &a->ServerAuthenticationResponse, "xsd:hexBinary"))
- { soap_flag_ServerAuthenticationResponse--;
- continue;
- }
- if (soap_flag_Certificate && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__hexBinary(soap, "Certificate", &a->Certificate, "xsd:hexBinary"))
- { soap_flag_Certificate--;
- continue;
- }
- if (soap_flag_WrappedPrivateKeyMaterial && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__hexBinary(soap, "WrappedPrivateKeyMaterial", &a->WrappedPrivateKeyMaterial, "xsd:hexBinary"))
- { soap_flag_WrappedPrivateKeyMaterial--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Certificate__RetrieveEntityCertificateResponse *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificateResponse, 0, sizeof(struct KMS_Certificate__RetrieveEntityCertificateResponse), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_ServerAuthenticationResponse > 0 || soap_flag_Certificate > 0 || soap_flag_WrappedPrivateKeyMaterial > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Certificate__RetrieveEntityCertificateResponse(struct soap *soap, const struct KMS_Certificate__RetrieveEntityCertificateResponse *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificateResponse);
- if (soap_out_KMS_Certificate__RetrieveEntityCertificateResponse(soap, tag?tag:"KMS-Certificate:RetrieveEntityCertificateResponse", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Certificate__RetrieveEntityCertificateResponse * SOAP_FMAC4 soap_get_KMS_Certificate__RetrieveEntityCertificateResponse(struct soap *soap, struct KMS_Certificate__RetrieveEntityCertificateResponse *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Certificate__RetrieveEntityCertificateResponse(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Certificate__RetrieveEntityCertificateResponse * SOAP_FMAC2 soap_instantiate_KMS_Certificate__RetrieveEntityCertificateResponse(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Certificate__RetrieveEntityCertificateResponse(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificateResponse, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Certificate__RetrieveEntityCertificateResponse);
- if (size)
- *size = sizeof(struct KMS_Certificate__RetrieveEntityCertificateResponse);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Certificate__RetrieveEntityCertificateResponse[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Certificate__RetrieveEntityCertificateResponse);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Certificate__RetrieveEntityCertificateResponse*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Certificate__RetrieveEntityCertificateResponse(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Certificate__RetrieveEntityCertificateResponse %p -> %p\n", q, p));
- *(struct KMS_Certificate__RetrieveEntityCertificateResponse*)p = *(struct KMS_Certificate__RetrieveEntityCertificateResponse*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_xsd__hexBinary(struct soap *soap, struct xsd__hexBinary *a)
-{
- (void)soap; /* appease -Wall -Werror */
- a->__size = 0;
- a->__ptr = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_xsd__hexBinary(struct soap *soap, struct xsd__hexBinary const*a)
-{
- if (a->__ptr)
- soap_array_reference(soap, a, (struct soap_array*)&a->__ptr, 1, SOAP_TYPE_KMS_Certificate_xsd__hexBinary);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__hexBinary(struct soap *soap, const char *tag, int id, const struct xsd__hexBinary *a, const char *type)
-{
- id = soap_element_id(soap, tag, id, a, (struct soap_array*)&a->__ptr, 1, type, SOAP_TYPE_KMS_Certificate_xsd__hexBinary);
- if (id < 0)
- return soap->error;
- if (soap_element_begin_out(soap, tag, id, type))
- return soap->error;
- if (soap_puthex(soap, a->__ptr, a->__size))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct xsd__hexBinary * SOAP_FMAC4 soap_in_xsd__hexBinary(struct soap *soap, const char *tag, struct xsd__hexBinary *a, const char *type)
-{
- (void)type; /* appease -Wall -Werror */
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (*soap->type && soap_match_tag(soap, soap->type, type) && soap_match_tag(soap, soap->type, ":hexBinary"))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- a = (struct xsd__hexBinary *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Certificate_xsd__hexBinary, sizeof(struct xsd__hexBinary), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_xsd__hexBinary(soap, a);
- if (soap->body && !*soap->href)
- {
- a->__ptr = soap_gethex(soap, &a->__size);
- if ((!a->__ptr && soap->error) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct xsd__hexBinary *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Certificate_xsd__hexBinary, 0, sizeof(struct xsd__hexBinary), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__hexBinary(struct soap *soap, const struct xsd__hexBinary *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, (struct soap_array*)&a->__ptr, 1, tag, SOAP_TYPE_KMS_Certificate_xsd__hexBinary);
- if (soap_out_xsd__hexBinary(soap, tag?tag:"SOAP-ENC:Array", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct xsd__hexBinary * SOAP_FMAC4 soap_get_xsd__hexBinary(struct soap *soap, struct xsd__hexBinary *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__hexBinary(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct xsd__hexBinary * SOAP_FMAC2 soap_instantiate_xsd__hexBinary(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_xsd__hexBinary(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Certificate_xsd__hexBinary, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct xsd__hexBinary);
- if (size)
- *size = sizeof(struct xsd__hexBinary);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct xsd__hexBinary[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct xsd__hexBinary);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct xsd__hexBinary*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_xsd__hexBinary(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct xsd__hexBinary %p -> %p\n", q, p));
- *(struct xsd__hexBinary*)p = *(struct xsd__hexBinary*)q;
-}
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Reason))
- soap_serialize_SOAP_ENV__Reason(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Reason(struct soap *soap, const char *tag, int id, struct SOAP_ENV__Reason *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Reason);
- if (id < 0)
- return soap->error;
- return soap_out_SOAP_ENV__Reason(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Reason(struct soap *soap, const char *tag, struct SOAP_ENV__Reason **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct SOAP_ENV__Reason **)soap_malloc(soap, sizeof(struct SOAP_ENV__Reason *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_SOAP_ENV__Reason(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Reason **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Reason, sizeof(struct SOAP_ENV__Reason), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_PointerToSOAP_ENV__Reason);
- if (soap_out_PointerToSOAP_ENV__Reason(soap, tag?tag:"SOAP-ENV:Reason", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToSOAP_ENV__Reason(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Detail))
- soap_serialize_SOAP_ENV__Detail(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Detail(struct soap *soap, const char *tag, int id, struct SOAP_ENV__Detail *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Detail);
- if (id < 0)
- return soap->error;
- return soap_out_SOAP_ENV__Detail(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Detail(struct soap *soap, const char *tag, struct SOAP_ENV__Detail **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct SOAP_ENV__Detail **)soap_malloc(soap, sizeof(struct SOAP_ENV__Detail *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_SOAP_ENV__Detail(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Detail **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Detail, sizeof(struct SOAP_ENV__Detail), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_PointerToSOAP_ENV__Detail);
- if (soap_out_PointerToSOAP_ENV__Detail(soap, tag?tag:"SOAP-ENV:Detail", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToSOAP_ENV__Detail(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Code))
- soap_serialize_SOAP_ENV__Code(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Code(struct soap *soap, const char *tag, int id, struct SOAP_ENV__Code *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Code);
- if (id < 0)
- return soap->error;
- return soap_out_SOAP_ENV__Code(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Code(struct soap *soap, const char *tag, struct SOAP_ENV__Code **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct SOAP_ENV__Code **)soap_malloc(soap, sizeof(struct SOAP_ENV__Code *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_SOAP_ENV__Code(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Code **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_Certificate_SOAP_ENV__Code, sizeof(struct SOAP_ENV__Code), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_PointerToSOAP_ENV__Code);
- if (soap_out_PointerToSOAP_ENV__Code(soap, tag?tag:"SOAP-ENV:Code", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToSOAP_ENV__Code(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#endif
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerTounsignedByte(struct soap *soap, unsigned char *const*a)
-{
- soap_reference(soap, *a, SOAP_TYPE_KMS_Certificate_unsignedByte);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerTounsignedByte(struct soap *soap, const char *tag, int id, unsigned char *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_Certificate_unsignedByte);
- if (id < 0)
- return soap->error;
- return soap_out_unsignedByte(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 unsigned char ** SOAP_FMAC4 soap_in_PointerTounsignedByte(struct soap *soap, const char *tag, unsigned char **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (unsigned char **)soap_malloc(soap, sizeof(unsigned char *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_unsignedByte(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (unsigned char **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_Certificate_unsignedByte, sizeof(unsigned char), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerTounsignedByte(struct soap *soap, unsigned char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_PointerTounsignedByte);
- if (soap_out_PointerTounsignedByte(soap, tag?tag:"unsignedByte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 unsigned char ** SOAP_FMAC4 soap_get_PointerTounsignedByte(struct soap *soap, unsigned char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerTounsignedByte(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__duration(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_Certificate_xsd__duration);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__duration(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_Certificate_xsd__duration, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__duration(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_xsd__duration);
- if (soap_out_xsd__duration(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__duration(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__duration(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__dateTime(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_Certificate_xsd__dateTime);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__dateTime(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_Certificate_xsd__dateTime, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__dateTime(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_xsd__dateTime);
- if (soap_out_xsd__dateTime(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__dateTime(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__dateTime(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__string(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_Certificate_xsd__string);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__string(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_Certificate_xsd__string, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__string(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_xsd__string);
- if (soap_out_xsd__string(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__string(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__string(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out__QName(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_Certificate__QName);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in__QName(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_Certificate__QName, 2, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put__QName(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate__QName);
- if (soap_out__QName(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get__QName(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in__QName(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_string(struct soap *soap, char **a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_string
- *a = SOAP_DEFAULT_string;
-#else
- *a = (char *)0;
-#endif
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_string(struct soap *soap, char *const*a)
-{
- soap_reference(soap, *a, SOAP_TYPE_KMS_Certificate_string);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_string(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_Certificate_string);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_string(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_Certificate_string, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_string(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Certificate_string);
- if (soap_out_string(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_string(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_string(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-} // namespace KMS_Certificate
-
-
-#if defined(__BORLANDC__)
-#pragma option pop
-#pragma option pop
-#endif
-
-/* End of KMS_CertificateC.cpp */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_CertificateClient.cpp b/usr/src/lib/libkmsagent/common/SOAP/KMS_CertificateClient.cpp
deleted file mode 100644
index 89607f2999..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_CertificateClient.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* KMS_CertificateClient.cpp
- Generated by gSOAP 2.7.17 from ../gsoapStubs/CertificateService/KMS_Certificate_SOAP.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#if defined(__BORLANDC__)
-#pragma option push -w-8060
-#pragma option push -w-8004
-#endif
-#include "KMS_CertificateH.h"
-
-namespace KMS_Certificate {
-
-SOAP_SOURCE_STAMP("@(#) KMS_CertificateClient.cpp ver 2.7.17 2010-06-08 19:16:38 GMT")
-
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Certificate__RetrieveEntityCertificate(struct soap *soap, const char *soap_endpoint, const char *soap_action, char *EntityID, struct xsd__hexBinary ClientAuthenticationResponse, struct xsd__hexBinary ServerAuthenticationChallenge, struct KMS_Certificate__RetrieveEntityCertificateResponse &result)
-{ struct KMS_Certificate__RetrieveEntityCertificate soap_tmp_KMS_Certificate__RetrieveEntityCertificate;
- soap_tmp_KMS_Certificate__RetrieveEntityCertificate.EntityID = EntityID;
- soap_tmp_KMS_Certificate__RetrieveEntityCertificate.ClientAuthenticationResponse = ClientAuthenticationResponse;
- soap_tmp_KMS_Certificate__RetrieveEntityCertificate.ServerAuthenticationChallenge = ServerAuthenticationChallenge;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_Certificate__RetrieveEntityCertificate(soap, &soap_tmp_KMS_Certificate__RetrieveEntityCertificate);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Certificate__RetrieveEntityCertificate(soap, &soap_tmp_KMS_Certificate__RetrieveEntityCertificate, "KMS-Certificate:RetrieveEntityCertificate", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Certificate__RetrieveEntityCertificate(soap, &soap_tmp_KMS_Certificate__RetrieveEntityCertificate, "KMS-Certificate:RetrieveEntityCertificate", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_Certificate__RetrieveEntityCertificateResponse(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_Certificate__RetrieveEntityCertificateResponse(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-} // namespace KMS_Certificate
-
-
-#if defined(__BORLANDC__)
-#pragma option pop
-#pragma option pop
-#endif
-
-/* End of KMS_CertificateClient.cpp */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_CertificateH.h b/usr/src/lib/libkmsagent/common/SOAP/KMS_CertificateH.h
deleted file mode 100644
index 7b41bd1a6a..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_CertificateH.h
+++ /dev/null
@@ -1,652 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* KMS_CertificateH.h
- Generated by gSOAP 2.7.17 from ../gsoapStubs/CertificateService/KMS_Certificate_SOAP.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#ifndef KMS_CertificateH_H
-#define KMS_CertificateH_H
-#include "KMS_CertificateStub.h"
-
-namespace KMS_Certificate {
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 void SOAP_FMAC4 soap_markelement(struct soap*, const void*, int);
-SOAP_FMAC3 int SOAP_FMAC4 soap_putelement(struct soap*, const void*, const char*, int, int);
-SOAP_FMAC3 void *SOAP_FMAC4 soap_getelement(struct soap*, int*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_putindependent(struct soap*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_getindependent(struct soap*);
-#endif
-SOAP_FMAC3 int SOAP_FMAC4 soap_ignore_element(struct soap*);
-
-SOAP_FMAC3 void * SOAP_FMAC4 soap_instantiate(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_fdelete(struct soap_clist*);
-SOAP_FMAC3 void* SOAP_FMAC4 soap_class_id_enter(struct soap*, const char*, void*, int, size_t, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Certificate_byte
-#define SOAP_TYPE_KMS_Certificate_byte (3)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_byte(struct soap*, char *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_byte(struct soap*, const char*, int, const char *, const char*);
-SOAP_FMAC3 char * SOAP_FMAC4 soap_in_byte(struct soap*, const char*, char *, const char*);
-
-#define soap_write_byte(soap, data) ( soap_begin_send(soap) || KMS_Certificate::soap_put_byte(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_byte(struct soap*, const char *, const char*, const char*);
-
-#define soap_read_byte(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_byte(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char * SOAP_FMAC4 soap_get_byte(struct soap*, char *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Certificate_int
-#define SOAP_TYPE_KMS_Certificate_int (1)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_int(struct soap*, int *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_int(struct soap*, const char*, int, const int *, const char*);
-SOAP_FMAC3 int * SOAP_FMAC4 soap_in_int(struct soap*, const char*, int *, const char*);
-
-#define soap_write_int(soap, data) ( soap_begin_send(soap) || KMS_Certificate::soap_put_int(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_int(struct soap*, const int *, const char*, const char*);
-
-#define soap_read_int(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_int(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 int * SOAP_FMAC4 soap_get_int(struct soap*, int *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Certificate_xsd__int
-#define SOAP_TYPE_KMS_Certificate_xsd__int (11)
-#endif
-
-#define soap_default_xsd__int(soap, a) soap_default_long(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__int(struct soap*, const char*, int, const long *, const char*);
-SOAP_FMAC3 long * SOAP_FMAC4 soap_in_xsd__int(struct soap*, const char*, long *, const char*);
-
-#define soap_write_xsd__int(soap, data) ( soap_begin_send(soap) || KMS_Certificate::soap_put_xsd__int(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__int(struct soap*, const long *, const char*, const char*);
-
-#define soap_read_xsd__int(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_xsd__int(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_get_xsd__int(struct soap*, long *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Certificate_long
-#define SOAP_TYPE_KMS_Certificate_long (10)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_long(struct soap*, long *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_long(struct soap*, const char*, int, const long *, const char*);
-SOAP_FMAC3 long * SOAP_FMAC4 soap_in_long(struct soap*, const char*, long *, const char*);
-
-#define soap_write_long(soap, data) ( soap_begin_send(soap) || KMS_Certificate::soap_put_long(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_long(struct soap*, const long *, const char*, const char*);
-
-#define soap_read_long(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_long(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_get_long(struct soap*, long *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Certificate_xsd__long
-#define SOAP_TYPE_KMS_Certificate_xsd__long (15)
-#endif
-
-#define soap_default_xsd__long(soap, a) soap_default_LONG64(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__long(struct soap*, const char*, int, const LONG64 *, const char*);
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_in_xsd__long(struct soap*, const char*, LONG64 *, const char*);
-
-#define soap_write_xsd__long(soap, data) ( soap_begin_send(soap) || KMS_Certificate::soap_put_xsd__long(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__long(struct soap*, const LONG64 *, const char*, const char*);
-
-#define soap_read_xsd__long(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_xsd__long(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_get_xsd__long(struct soap*, LONG64 *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Certificate_LONG64
-#define SOAP_TYPE_KMS_Certificate_LONG64 (14)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_LONG64(struct soap*, LONG64 *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_LONG64(struct soap*, const char*, int, const LONG64 *, const char*);
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_in_LONG64(struct soap*, const char*, LONG64 *, const char*);
-
-#define soap_write_LONG64(soap, data) ( soap_begin_send(soap) || KMS_Certificate::soap_put_LONG64(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_LONG64(struct soap*, const LONG64 *, const char*, const char*);
-
-#define soap_read_LONG64(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_LONG64(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_get_LONG64(struct soap*, LONG64 *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Certificate_xsd__float
-#define SOAP_TYPE_KMS_Certificate_xsd__float (9)
-#endif
-
-#define soap_default_xsd__float(soap, a) soap_default_float(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__float(struct soap*, const char*, int, const float *, const char*);
-SOAP_FMAC3 float * SOAP_FMAC4 soap_in_xsd__float(struct soap*, const char*, float *, const char*);
-
-#define soap_write_xsd__float(soap, data) ( soap_begin_send(soap) || KMS_Certificate::soap_put_xsd__float(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__float(struct soap*, const float *, const char*, const char*);
-
-#define soap_read_xsd__float(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_xsd__float(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_get_xsd__float(struct soap*, float *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Certificate_float
-#define SOAP_TYPE_KMS_Certificate_float (8)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_float(struct soap*, float *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_float(struct soap*, const char*, int, const float *, const char*);
-SOAP_FMAC3 float * SOAP_FMAC4 soap_in_float(struct soap*, const char*, float *, const char*);
-
-#define soap_write_float(soap, data) ( soap_begin_send(soap) || KMS_Certificate::soap_put_float(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_float(struct soap*, const float *, const char*, const char*);
-
-#define soap_read_float(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_float(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_get_float(struct soap*, float *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Certificate_unsignedByte
-#define SOAP_TYPE_KMS_Certificate_unsignedByte (20)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_unsignedByte(struct soap*, unsigned char *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_unsignedByte(struct soap*, const char*, int, const unsigned char *, const char*);
-SOAP_FMAC3 unsigned char * SOAP_FMAC4 soap_in_unsignedByte(struct soap*, const char*, unsigned char *, const char*);
-
-#define soap_write_unsignedByte(soap, data) ( soap_begin_send(soap) || KMS_Certificate::soap_put_unsignedByte(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_unsignedByte(struct soap*, const unsigned char *, const char*, const char*);
-
-#define soap_read_unsignedByte(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_unsignedByte(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 unsigned char * SOAP_FMAC4 soap_get_unsignedByte(struct soap*, unsigned char *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Certificate_unsignedInt
-#define SOAP_TYPE_KMS_Certificate_unsignedInt (19)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_unsignedInt(struct soap*, unsigned int *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_unsignedInt(struct soap*, const char*, int, const unsigned int *, const char*);
-SOAP_FMAC3 unsigned int * SOAP_FMAC4 soap_in_unsignedInt(struct soap*, const char*, unsigned int *, const char*);
-
-#define soap_write_unsignedInt(soap, data) ( soap_begin_send(soap) || KMS_Certificate::soap_put_unsignedInt(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_unsignedInt(struct soap*, const unsigned int *, const char*, const char*);
-
-#define soap_read_unsignedInt(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_unsignedInt(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 unsigned int * SOAP_FMAC4 soap_get_unsignedInt(struct soap*, unsigned int *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Certificate_xsd__boolean
-#define SOAP_TYPE_KMS_Certificate_xsd__boolean (13)
-#endif
-
-#define soap_default_xsd__boolean(soap, a) soap_default_bool(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__boolean(struct soap*, const char*, int, const bool *, const char*);
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_xsd__boolean2s(struct soap*, bool);
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_in_xsd__boolean(struct soap*, const char*, bool *, const char*);
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2xsd__boolean(struct soap*, const char*, bool *);
-
-#define soap_write_xsd__boolean(soap, data) ( soap_begin_send(soap) || KMS_Certificate::soap_put_xsd__boolean(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__boolean(struct soap*, const bool *, const char*, const char*);
-
-#define soap_read_xsd__boolean(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_xsd__boolean(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_get_xsd__boolean(struct soap*, bool *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Certificate_bool
-#define SOAP_TYPE_KMS_Certificate_bool (12)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_bool(struct soap*, bool *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_bool(struct soap*, const char*, int, const bool *, const char*);
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_bool2s(struct soap*, bool);
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_in_bool(struct soap*, const char*, bool *, const char*);
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2bool(struct soap*, const char*, bool *);
-
-#define soap_write_bool(soap, data) ( soap_begin_send(soap) || KMS_Certificate::soap_put_bool(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_bool(struct soap*, const bool *, const char*, const char*);
-
-#define soap_read_bool(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_bool(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_get_bool(struct soap*, bool *, const char*, const char*);
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Certificate_SOAP_ENV__Fault
-#define SOAP_TYPE_KMS_Certificate_SOAP_ENV__Fault (33)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Fault(struct soap*, struct SOAP_ENV__Fault *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Fault(struct soap*, const struct SOAP_ENV__Fault *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Fault(struct soap*, const char*, int, const struct SOAP_ENV__Fault *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_in_SOAP_ENV__Fault(struct soap*, const char*, struct SOAP_ENV__Fault *, const char*);
-
-#define soap_write_SOAP_ENV__Fault(soap, data) ( soap_begin_send(soap) || (KMS_Certificate::soap_serialize_SOAP_ENV__Fault(soap, data), 0) || KMS_Certificate::soap_put_SOAP_ENV__Fault(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Fault(struct soap*, const struct SOAP_ENV__Fault *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Fault(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_SOAP_ENV__Fault(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_get_SOAP_ENV__Fault(struct soap*, struct SOAP_ENV__Fault *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Fault(soap, n) soap_instantiate_SOAP_ENV__Fault(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Fault(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Fault * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Fault(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Fault(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Certificate_SOAP_ENV__Reason
-#define SOAP_TYPE_KMS_Certificate_SOAP_ENV__Reason (32)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Reason(struct soap*, const struct SOAP_ENV__Reason *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Reason(struct soap*, const char*, int, const struct SOAP_ENV__Reason *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_in_SOAP_ENV__Reason(struct soap*, const char*, struct SOAP_ENV__Reason *, const char*);
-
-#define soap_write_SOAP_ENV__Reason(soap, data) ( soap_begin_send(soap) || (KMS_Certificate::soap_serialize_SOAP_ENV__Reason(soap, data), 0) || KMS_Certificate::soap_put_SOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Reason(struct soap*, const struct SOAP_ENV__Reason *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Reason(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_SOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_get_SOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Reason(soap, n) soap_instantiate_SOAP_ENV__Reason(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Reason(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Reason * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Reason(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Reason(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Certificate_SOAP_ENV__Detail
-#define SOAP_TYPE_KMS_Certificate_SOAP_ENV__Detail (29)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Detail(struct soap*, const struct SOAP_ENV__Detail *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Detail(struct soap*, const char*, int, const struct SOAP_ENV__Detail *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_in_SOAP_ENV__Detail(struct soap*, const char*, struct SOAP_ENV__Detail *, const char*);
-
-#define soap_write_SOAP_ENV__Detail(soap, data) ( soap_begin_send(soap) || (KMS_Certificate::soap_serialize_SOAP_ENV__Detail(soap, data), 0) || KMS_Certificate::soap_put_SOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Detail(struct soap*, const struct SOAP_ENV__Detail *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Detail(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_SOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_get_SOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Detail(soap, n) soap_instantiate_SOAP_ENV__Detail(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Detail(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Detail * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Detail(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Detail(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Certificate_SOAP_ENV__Code
-#define SOAP_TYPE_KMS_Certificate_SOAP_ENV__Code (27)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Code(struct soap*, const struct SOAP_ENV__Code *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Code(struct soap*, const char*, int, const struct SOAP_ENV__Code *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_in_SOAP_ENV__Code(struct soap*, const char*, struct SOAP_ENV__Code *, const char*);
-
-#define soap_write_SOAP_ENV__Code(soap, data) ( soap_begin_send(soap) || (KMS_Certificate::soap_serialize_SOAP_ENV__Code(soap, data), 0) || KMS_Certificate::soap_put_SOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Code(struct soap*, const struct SOAP_ENV__Code *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Code(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_SOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_get_SOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Code(soap, n) soap_instantiate_SOAP_ENV__Code(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Code(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Code * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Code(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Code(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Certificate_SOAP_ENV__Header
-#define SOAP_TYPE_KMS_Certificate_SOAP_ENV__Header (26)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Header(struct soap*, struct SOAP_ENV__Header *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Header(struct soap*, const struct SOAP_ENV__Header *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Header(struct soap*, const char*, int, const struct SOAP_ENV__Header *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_in_SOAP_ENV__Header(struct soap*, const char*, struct SOAP_ENV__Header *, const char*);
-
-#define soap_write_SOAP_ENV__Header(soap, data) ( soap_begin_send(soap) || (KMS_Certificate::soap_serialize_SOAP_ENV__Header(soap, data), 0) || KMS_Certificate::soap_put_SOAP_ENV__Header(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Header(struct soap*, const struct SOAP_ENV__Header *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Header(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_SOAP_ENV__Header(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_get_SOAP_ENV__Header(struct soap*, struct SOAP_ENV__Header *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Header(soap, n) soap_instantiate_SOAP_ENV__Header(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Header(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Header * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Header(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Header(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificate
-#define SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificate (25)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Certificate__RetrieveEntityCertificate(struct soap*, struct KMS_Certificate__RetrieveEntityCertificate *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Certificate__RetrieveEntityCertificate(struct soap*, const struct KMS_Certificate__RetrieveEntityCertificate *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Certificate__RetrieveEntityCertificate(struct soap*, const char*, int, const struct KMS_Certificate__RetrieveEntityCertificate *, const char*);
-SOAP_FMAC3 struct KMS_Certificate__RetrieveEntityCertificate * SOAP_FMAC4 soap_in_KMS_Certificate__RetrieveEntityCertificate(struct soap*, const char*, struct KMS_Certificate__RetrieveEntityCertificate *, const char*);
-
-#define soap_write_KMS_Certificate__RetrieveEntityCertificate(soap, data) ( soap_begin_send(soap) || (KMS_Certificate::soap_serialize_KMS_Certificate__RetrieveEntityCertificate(soap, data), 0) || KMS_Certificate::soap_put_KMS_Certificate__RetrieveEntityCertificate(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Certificate__RetrieveEntityCertificate(struct soap*, const struct KMS_Certificate__RetrieveEntityCertificate *, const char*, const char*);
-
-#define soap_read_KMS_Certificate__RetrieveEntityCertificate(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_KMS_Certificate__RetrieveEntityCertificate(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Certificate__RetrieveEntityCertificate * SOAP_FMAC4 soap_get_KMS_Certificate__RetrieveEntityCertificate(struct soap*, struct KMS_Certificate__RetrieveEntityCertificate *, const char*, const char*);
-
-#define soap_new_KMS_Certificate__RetrieveEntityCertificate(soap, n) soap_instantiate_KMS_Certificate__RetrieveEntityCertificate(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Certificate__RetrieveEntityCertificate(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Certificate__RetrieveEntityCertificate * SOAP_FMAC2 soap_instantiate_KMS_Certificate__RetrieveEntityCertificate(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Certificate__RetrieveEntityCertificate(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificateResponse
-#define SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificateResponse (22)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Certificate__RetrieveEntityCertificateResponse(struct soap*, struct KMS_Certificate__RetrieveEntityCertificateResponse *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Certificate__RetrieveEntityCertificateResponse(struct soap*, const struct KMS_Certificate__RetrieveEntityCertificateResponse *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Certificate__RetrieveEntityCertificateResponse(struct soap*, const char*, int, const struct KMS_Certificate__RetrieveEntityCertificateResponse *, const char*);
-SOAP_FMAC3 struct KMS_Certificate__RetrieveEntityCertificateResponse * SOAP_FMAC4 soap_in_KMS_Certificate__RetrieveEntityCertificateResponse(struct soap*, const char*, struct KMS_Certificate__RetrieveEntityCertificateResponse *, const char*);
-
-#define soap_write_KMS_Certificate__RetrieveEntityCertificateResponse(soap, data) ( soap_begin_send(soap) || (KMS_Certificate::soap_serialize_KMS_Certificate__RetrieveEntityCertificateResponse(soap, data), 0) || KMS_Certificate::soap_put_KMS_Certificate__RetrieveEntityCertificateResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Certificate__RetrieveEntityCertificateResponse(struct soap*, const struct KMS_Certificate__RetrieveEntityCertificateResponse *, const char*, const char*);
-
-#define soap_read_KMS_Certificate__RetrieveEntityCertificateResponse(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_KMS_Certificate__RetrieveEntityCertificateResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Certificate__RetrieveEntityCertificateResponse * SOAP_FMAC4 soap_get_KMS_Certificate__RetrieveEntityCertificateResponse(struct soap*, struct KMS_Certificate__RetrieveEntityCertificateResponse *, const char*, const char*);
-
-#define soap_new_KMS_Certificate__RetrieveEntityCertificateResponse(soap, n) soap_instantiate_KMS_Certificate__RetrieveEntityCertificateResponse(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Certificate__RetrieveEntityCertificateResponse(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Certificate__RetrieveEntityCertificateResponse * SOAP_FMAC2 soap_instantiate_KMS_Certificate__RetrieveEntityCertificateResponse(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Certificate__RetrieveEntityCertificateResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Certificate_xsd__hexBinary
-#define SOAP_TYPE_KMS_Certificate_xsd__hexBinary (18)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_xsd__hexBinary(struct soap*, struct xsd__hexBinary *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_xsd__hexBinary(struct soap*, struct xsd__hexBinary const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__hexBinary(struct soap*, const char*, int, const struct xsd__hexBinary *, const char*);
-SOAP_FMAC3 struct xsd__hexBinary * SOAP_FMAC4 soap_in_xsd__hexBinary(struct soap*, const char*, struct xsd__hexBinary *, const char*);
-
-#define soap_write_xsd__hexBinary(soap, data) ( soap_begin_send(soap) || (KMS_Certificate::soap_serialize_xsd__hexBinary(soap, data), 0) || KMS_Certificate::soap_put_xsd__hexBinary(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__hexBinary(struct soap*, const struct xsd__hexBinary *, const char*, const char*);
-
-#define soap_read_xsd__hexBinary(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_xsd__hexBinary(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct xsd__hexBinary * SOAP_FMAC4 soap_get_xsd__hexBinary(struct soap*, struct xsd__hexBinary *, const char*, const char*);
-
-#define soap_new_xsd__hexBinary(soap, n) soap_instantiate_xsd__hexBinary(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_xsd__hexBinary(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct xsd__hexBinary * SOAP_FMAC2 soap_instantiate_xsd__hexBinary(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_xsd__hexBinary(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Certificate_PointerToSOAP_ENV__Reason
-#define SOAP_TYPE_KMS_Certificate_PointerToSOAP_ENV__Reason (35)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Reason(struct soap*, const char *, int, struct SOAP_ENV__Reason *const*, const char *);
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Reason(struct soap*, const char*, struct SOAP_ENV__Reason **, const char*);
-
-#define soap_write_PointerToSOAP_ENV__Reason(soap, data) ( soap_begin_send(soap) || (KMS_Certificate::soap_serialize_PointerToSOAP_ENV__Reason(soap, data), 0) || KMS_Certificate::soap_put_PointerToSOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *const*, const char*, const char*);
-
-#define soap_read_PointerToSOAP_ENV__Reason(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_PointerToSOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason **, const char*, const char*);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Certificate_PointerToSOAP_ENV__Detail
-#define SOAP_TYPE_KMS_Certificate_PointerToSOAP_ENV__Detail (34)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Detail(struct soap*, const char *, int, struct SOAP_ENV__Detail *const*, const char *);
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Detail(struct soap*, const char*, struct SOAP_ENV__Detail **, const char*);
-
-#define soap_write_PointerToSOAP_ENV__Detail(soap, data) ( soap_begin_send(soap) || (KMS_Certificate::soap_serialize_PointerToSOAP_ENV__Detail(soap, data), 0) || KMS_Certificate::soap_put_PointerToSOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *const*, const char*, const char*);
-
-#define soap_read_PointerToSOAP_ENV__Detail(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_PointerToSOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail **, const char*, const char*);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Certificate_PointerToSOAP_ENV__Code
-#define SOAP_TYPE_KMS_Certificate_PointerToSOAP_ENV__Code (28)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Code(struct soap*, const char *, int, struct SOAP_ENV__Code *const*, const char *);
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Code(struct soap*, const char*, struct SOAP_ENV__Code **, const char*);
-
-#define soap_write_PointerToSOAP_ENV__Code(soap, data) ( soap_begin_send(soap) || (KMS_Certificate::soap_serialize_PointerToSOAP_ENV__Code(soap, data), 0) || KMS_Certificate::soap_put_PointerToSOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *const*, const char*, const char*);
-
-#define soap_read_PointerToSOAP_ENV__Code(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_PointerToSOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code **, const char*, const char*);
-
-#endif
-
-#ifndef SOAP_TYPE_KMS_Certificate_PointerTounsignedByte
-#define SOAP_TYPE_KMS_Certificate_PointerTounsignedByte (21)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerTounsignedByte(struct soap*, unsigned char *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerTounsignedByte(struct soap*, const char *, int, unsigned char *const*, const char *);
-SOAP_FMAC3 unsigned char ** SOAP_FMAC4 soap_in_PointerTounsignedByte(struct soap*, const char*, unsigned char **, const char*);
-
-#define soap_write_PointerTounsignedByte(soap, data) ( soap_begin_send(soap) || (KMS_Certificate::soap_serialize_PointerTounsignedByte(soap, data), 0) || KMS_Certificate::soap_put_PointerTounsignedByte(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerTounsignedByte(struct soap*, unsigned char *const*, const char*, const char*);
-
-#define soap_read_PointerTounsignedByte(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_PointerTounsignedByte(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 unsigned char ** SOAP_FMAC4 soap_get_PointerTounsignedByte(struct soap*, unsigned char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Certificate_xsd__duration
-#define SOAP_TYPE_KMS_Certificate_xsd__duration (17)
-#endif
-
-#define soap_default_xsd__duration(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize_xsd__duration(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__duration(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__duration(struct soap*, const char*, char **, const char*);
-
-#define soap_write_xsd__duration(soap, data) ( soap_begin_send(soap) || (KMS_Certificate::soap_serialize_xsd__duration(soap, data), 0) || KMS_Certificate::soap_put_xsd__duration(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__duration(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_xsd__duration(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_xsd__duration(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__duration(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Certificate_xsd__dateTime
-#define SOAP_TYPE_KMS_Certificate_xsd__dateTime (16)
-#endif
-
-#define soap_default_xsd__dateTime(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize_xsd__dateTime(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__dateTime(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__dateTime(struct soap*, const char*, char **, const char*);
-
-#define soap_write_xsd__dateTime(soap, data) ( soap_begin_send(soap) || (KMS_Certificate::soap_serialize_xsd__dateTime(soap, data), 0) || KMS_Certificate::soap_put_xsd__dateTime(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__dateTime(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_xsd__dateTime(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_xsd__dateTime(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__dateTime(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Certificate_xsd__string
-#define SOAP_TYPE_KMS_Certificate_xsd__string (7)
-#endif
-
-#define soap_default_xsd__string(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize_xsd__string(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__string(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__string(struct soap*, const char*, char **, const char*);
-
-#define soap_write_xsd__string(soap, data) ( soap_begin_send(soap) || (KMS_Certificate::soap_serialize_xsd__string(soap, data), 0) || KMS_Certificate::soap_put_xsd__string(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__string(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_xsd__string(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_xsd__string(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__string(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Certificate__QName
-#define SOAP_TYPE_KMS_Certificate__QName (5)
-#endif
-
-#define soap_default__QName(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize__QName(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out__QName(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in__QName(struct soap*, const char*, char **, const char*);
-
-#define soap_write__QName(soap, data) ( soap_begin_send(soap) || (KMS_Certificate::soap_serialize__QName(soap, data), 0) || KMS_Certificate::soap_put__QName(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put__QName(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read__QName(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get__QName(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get__QName(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Certificate_string
-#define SOAP_TYPE_KMS_Certificate_string (4)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_string(struct soap*, char **);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_string(struct soap*, char *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_string(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_string(struct soap*, const char*, char **, const char*);
-
-#define soap_write_string(soap, data) ( soap_begin_send(soap) || (KMS_Certificate::soap_serialize_string(soap, data), 0) || KMS_Certificate::soap_put_string(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_string(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_string(soap, data) ( soap_begin_recv(soap) || !KMS_Certificate::soap_get_string(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_string(struct soap*, char **, const char*, const char*);
-
-} // namespace KMS_Certificate
-
-
-#endif
-
-/* End of KMS_CertificateH.h */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_CertificateStub.h b/usr/src/lib/libkmsagent/common/SOAP/KMS_CertificateStub.h
deleted file mode 100644
index a57c516f99..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_CertificateStub.h
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* KMS_CertificateStub.h
- Generated by gSOAP 2.7.17 from ../gsoapStubs/CertificateService/KMS_Certificate_SOAP.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#ifndef KMS_CertificateStub_H
-#define KMS_CertificateStub_H
-#ifndef WITH_NONAMESPACES
-#define WITH_NONAMESPACES
-#endif
-#ifndef WITH_NOGLOBAL
-#define WITH_NOGLOBAL
-#endif
-#include "stdsoap2.h"
-
-namespace KMS_Certificate {
-
-/******************************************************************************\
- * *
- * Enumerations *
- * *
-\******************************************************************************/
-
-
-/******************************************************************************\
- * *
- * Types with Custom Serializers *
- * *
-\******************************************************************************/
-
-
-/******************************************************************************\
- * *
- * Classes and Structs *
- * *
-\******************************************************************************/
-
-
-#if 0 /* volatile type: do not declare here, declared elsewhere */
-
-#endif
-
-#ifndef SOAP_TYPE_KMS_Certificate_xsd__hexBinary
-#define SOAP_TYPE_KMS_Certificate_xsd__hexBinary (18)
-/* hexBinary schema type: */
-struct xsd__hexBinary
-{
-public:
- unsigned char *__ptr;
- int __size;
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificateResponse
-#define SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificateResponse (22)
-/* KMS-Certificate:RetrieveEntityCertificateResponse */
-struct KMS_Certificate__RetrieveEntityCertificateResponse
-{
-public:
- struct xsd__hexBinary ServerAuthenticationResponse; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type xsd:hexBinary */
- struct xsd__hexBinary Certificate; /* required element of type xsd:hexBinary */
- struct xsd__hexBinary WrappedPrivateKeyMaterial; /* required element of type xsd:hexBinary */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificate
-#define SOAP_TYPE_KMS_Certificate_KMS_Certificate__RetrieveEntityCertificate (25)
-/* KMS-Certificate:RetrieveEntityCertificate */
-struct KMS_Certificate__RetrieveEntityCertificate
-{
-public:
- char *EntityID; /* optional element of type xsd:string */
- struct xsd__hexBinary ClientAuthenticationResponse; /* required element of type xsd:hexBinary */
- struct xsd__hexBinary ServerAuthenticationChallenge; /* required element of type xsd:hexBinary */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Certificate_SOAP_ENV__Header
-#define SOAP_TYPE_KMS_Certificate_SOAP_ENV__Header (26)
-/* SOAP Header: */
-struct SOAP_ENV__Header
-{
-#ifdef WITH_NOEMPTYSTRUCT
-private:
- char dummy; /* dummy member to enable compilation */
-#endif
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Certificate_SOAP_ENV__Code
-#define SOAP_TYPE_KMS_Certificate_SOAP_ENV__Code (27)
-/* SOAP Fault Code: */
-struct SOAP_ENV__Code
-{
-public:
- char *SOAP_ENV__Value; /* optional element of type xsd:QName */
- struct SOAP_ENV__Code *SOAP_ENV__Subcode; /* optional element of type SOAP-ENV:Code */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Certificate_SOAP_ENV__Detail
-#define SOAP_TYPE_KMS_Certificate_SOAP_ENV__Detail (29)
-/* SOAP-ENV:Detail */
-struct SOAP_ENV__Detail
-{
-public:
- int __type; /* any type of element <fault> (defined below) */
- void *fault; /* transient */
- char *__any;
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Certificate_SOAP_ENV__Reason
-#define SOAP_TYPE_KMS_Certificate_SOAP_ENV__Reason (32)
-/* SOAP-ENV:Reason */
-struct SOAP_ENV__Reason
-{
-public:
- char *SOAP_ENV__Text; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Certificate_SOAP_ENV__Fault
-#define SOAP_TYPE_KMS_Certificate_SOAP_ENV__Fault (33)
-/* SOAP Fault: */
-struct SOAP_ENV__Fault
-{
-public:
- char *faultcode; /* optional element of type xsd:QName */
- char *faultstring; /* optional element of type xsd:string */
- char *faultactor; /* optional element of type xsd:string */
- struct SOAP_ENV__Detail *detail; /* optional element of type SOAP-ENV:Detail */
- struct SOAP_ENV__Code *SOAP_ENV__Code; /* optional element of type SOAP-ENV:Code */
- struct SOAP_ENV__Reason *SOAP_ENV__Reason; /* optional element of type SOAP-ENV:Reason */
- char *SOAP_ENV__Node; /* optional element of type xsd:string */
- char *SOAP_ENV__Role; /* optional element of type xsd:string */
- struct SOAP_ENV__Detail *SOAP_ENV__Detail; /* optional element of type SOAP-ENV:Detail */
-};
-#endif
-
-/******************************************************************************\
- * *
- * Typedefs *
- * *
-\******************************************************************************/
-
-#ifndef SOAP_TYPE_KMS_Certificate__QName
-#define SOAP_TYPE_KMS_Certificate__QName (5)
-typedef char *_QName;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Certificate__XML
-#define SOAP_TYPE_KMS_Certificate__XML (6)
-typedef char *_XML;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Certificate_xsd__string
-#define SOAP_TYPE_KMS_Certificate_xsd__string (7)
-typedef char *xsd__string;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Certificate_xsd__float
-#define SOAP_TYPE_KMS_Certificate_xsd__float (9)
-typedef float xsd__float;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Certificate_xsd__int
-#define SOAP_TYPE_KMS_Certificate_xsd__int (11)
-typedef long xsd__int;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Certificate_xsd__boolean
-#define SOAP_TYPE_KMS_Certificate_xsd__boolean (13)
-typedef bool xsd__boolean;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Certificate_xsd__long
-#define SOAP_TYPE_KMS_Certificate_xsd__long (15)
-typedef LONG64 xsd__long;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Certificate_xsd__dateTime
-#define SOAP_TYPE_KMS_Certificate_xsd__dateTime (16)
-typedef char *xsd__dateTime;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Certificate_xsd__duration
-#define SOAP_TYPE_KMS_Certificate_xsd__duration (17)
-typedef char *xsd__duration;
-#endif
-
-
-/******************************************************************************\
- * *
- * Externals *
- * *
-\******************************************************************************/
-
-
-/******************************************************************************\
- * *
- * Server-Side Operations *
- * *
-\******************************************************************************/
-
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Certificate__RetrieveEntityCertificate(struct soap*, char *EntityID, struct xsd__hexBinary ClientAuthenticationResponse, struct xsd__hexBinary ServerAuthenticationChallenge, struct KMS_Certificate__RetrieveEntityCertificateResponse &result);
-
-/******************************************************************************\
- * *
- * Server-Side Skeletons to Invoke Service Operations *
- * *
-\******************************************************************************/
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Certificate_serve(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Certificate_serve_request(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_Certificate__RetrieveEntityCertificate(struct soap*);
-
-/******************************************************************************\
- * *
- * Client-Side Call Stubs *
- * *
-\******************************************************************************/
-
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Certificate__RetrieveEntityCertificate(struct soap *soap, const char *soap_endpoint, const char *soap_action, char *EntityID, struct xsd__hexBinary ClientAuthenticationResponse, struct xsd__hexBinary ServerAuthenticationChallenge, struct KMS_Certificate__RetrieveEntityCertificateResponse &result);
-
-} // namespace KMS_Certificate
-
-
-#endif
-
-/* End of KMS_CertificateStub.h */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_Discovery.nsmap b/usr/src/lib/libkmsagent/common/SOAP/KMS_Discovery.nsmap
deleted file mode 100644
index 401e481af4..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_Discovery.nsmap
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-
-#include "KMS_DiscoveryH.h"
-SOAP_NMAC struct Namespace KMS_Discovery_namespaces[] =
-{
- {"SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/", "http://www.w3.org/*/soap-envelope"},
- {"SOAP-ENC", "http://schemas.xmlsoap.org/soap/encoding/", "http://www.w3.org/*/soap-encoding"},
- {"xsi", "http://www.w3.org/2001/XMLSchema-instance", "http://www.w3.org/*/XMLSchema-instance"},
- {"xsd", "http://www.w3.org/2001/XMLSchema", "http://www.w3.org/*/XMLSchema"},
- {"KMS-Discovery", "http://www.sun.com/KMS/KMS-Discovery"},
- {NULL, NULL}
-};
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_DiscoveryC.cpp b/usr/src/lib/libkmsagent/common/SOAP/KMS_DiscoveryC.cpp
deleted file mode 100644
index d74d4b84f6..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_DiscoveryC.cpp
+++ /dev/null
@@ -1,2904 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* KMS_DiscoveryC.cpp
- Generated by gSOAP 2.7.17 from ../gsoapStubs/DiscoveryService/KMS_Discovery_SOAP.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#if defined(__BORLANDC__)
-#pragma option push -w-8060
-#pragma option push -w-8004
-#endif
-
-#include "KMS_DiscoveryH.h"
-
-namespace KMS_Discovery {
-
-SOAP_SOURCE_STAMP("@(#) KMS_DiscoveryC.cpp ver 2.7.17 2010-06-08 19:16:38 GMT")
-
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serializeheader(struct soap *soap)
-{
- if (soap->header)
- soap_serialize_SOAP_ENV__Header(soap, soap->header);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_putheader(struct soap *soap)
-{
- if (soap->header)
- { soap->part = SOAP_IN_HEADER;
- if (soap_out_SOAP_ENV__Header(soap, "SOAP-ENV:Header", 0, soap->header, NULL))
- return soap->error;
- soap->part = SOAP_END_HEADER;
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_getheader(struct soap *soap)
-{
- soap->part = SOAP_IN_HEADER;
- soap->header = soap_in_SOAP_ENV__Header(soap, "SOAP-ENV:Header", NULL, NULL);
- soap->part = SOAP_END_HEADER;
- return soap->header == NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_header(struct soap *soap)
-{
- if (!soap->header)
- { if ((soap->header = soap_new_SOAP_ENV__Header(soap, -1)))
- soap_default_SOAP_ENV__Header(soap, soap->header);
- }
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_fault(struct soap *soap)
-{
- if (!soap->fault)
- { soap->fault = soap_new_SOAP_ENV__Fault(soap, -1);
- if (!soap->fault)
- return;
- soap_default_SOAP_ENV__Fault(soap, soap->fault);
- }
- if (soap->version == 2 && !soap->fault->SOAP_ENV__Code)
- { soap->fault->SOAP_ENV__Code = soap_new_SOAP_ENV__Code(soap, -1);
- soap_default_SOAP_ENV__Code(soap, soap->fault->SOAP_ENV__Code);
- }
- if (soap->version == 2 && !soap->fault->SOAP_ENV__Reason)
- { soap->fault->SOAP_ENV__Reason = soap_new_SOAP_ENV__Reason(soap, -1);
- soap_default_SOAP_ENV__Reason(soap, soap->fault->SOAP_ENV__Reason);
- }
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serializefault(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->fault)
- soap_serialize_SOAP_ENV__Fault(soap, soap->fault);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_putfault(struct soap *soap)
-{
- if (soap->fault)
- return soap_put_SOAP_ENV__Fault(soap, soap->fault, "SOAP-ENV:Fault", NULL);
- return SOAP_OK;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_getfault(struct soap *soap)
-{
- return (soap->fault = soap_get_SOAP_ENV__Fault(soap, NULL, "SOAP-ENV:Fault", NULL)) == NULL;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultcode(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 2)
- return (const char**)&soap->fault->SOAP_ENV__Code->SOAP_ENV__Value;
- return (const char**)&soap->fault->faultcode;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultsubcode(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 2)
- { if (!soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode)
- { soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode = soap_new_SOAP_ENV__Code(soap, -1);
- soap_default_SOAP_ENV__Code(soap, soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode);
- }
- return (const char**)&soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode->SOAP_ENV__Value;
- }
- return (const char**)&soap->fault->faultcode;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultstring(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 2)
- return (const char**)&soap->fault->SOAP_ENV__Reason->SOAP_ENV__Text;
- return (const char**)&soap->fault->faultstring;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultdetail(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 1)
- { if (!soap->fault->detail)
- { soap->fault->detail = (struct SOAP_ENV__Detail*)soap_malloc(soap, sizeof(struct SOAP_ENV__Detail));
- soap_default_SOAP_ENV__Detail(soap, soap->fault->detail);
- }
- return (const char**)&soap->fault->detail->__any;
- }
- if (!soap->fault->SOAP_ENV__Detail)
- { soap->fault->SOAP_ENV__Detail = soap_new_SOAP_ENV__Detail(soap, -1);
- soap_default_SOAP_ENV__Detail(soap, soap->fault->SOAP_ENV__Detail);
- }
- return (const char**)&soap->fault->SOAP_ENV__Detail->__any;
-}
-
-#endif
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 int SOAP_FMAC4 soap_getindependent(struct soap *soap)
-{
- int t;
- if (soap->version == 1)
- { for (;;)
- { if (!soap_getelement(soap, &t))
- if (soap->error || soap_ignore_element(soap))
- break;
- }
- }
- if (soap->error == SOAP_NO_TAG || soap->error == SOAP_EOF)
- soap->error = SOAP_OK;
- return soap->error;
-}
-#endif
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 void * SOAP_FMAC4 soap_getelement(struct soap *soap, int *type)
-{
- if (soap_peek_element(soap))
- return NULL;
- if (!*soap->id || !(*type = soap_lookup_type(soap, soap->id)))
- *type = soap_lookup_type(soap, soap->href);
- switch (*type)
- {
- case SOAP_TYPE_KMS_Discovery_byte:
- return soap_in_byte(soap, NULL, NULL, "xsd:byte");
- case SOAP_TYPE_KMS_Discovery_int:
- return soap_in_int(soap, NULL, NULL, "xsd:int");
- case SOAP_TYPE_KMS_Discovery_xsd__int:
- return soap_in_xsd__int(soap, NULL, NULL, "xsd:int");
- case SOAP_TYPE_KMS_Discovery_long:
- return soap_in_long(soap, NULL, NULL, "xsd:long");
- case SOAP_TYPE_KMS_Discovery_xsd__long:
- return soap_in_xsd__long(soap, NULL, NULL, "xsd:long");
- case SOAP_TYPE_KMS_Discovery_LONG64:
- return soap_in_LONG64(soap, NULL, NULL, "xsd:long");
- case SOAP_TYPE_KMS_Discovery_xsd__float:
- return soap_in_xsd__float(soap, NULL, NULL, "xsd:float");
- case SOAP_TYPE_KMS_Discovery_float:
- return soap_in_float(soap, NULL, NULL, "xsd:float");
- case SOAP_TYPE_KMS_Discovery_unsignedByte:
- return soap_in_unsignedByte(soap, NULL, NULL, "xsd:unsignedByte");
- case SOAP_TYPE_KMS_Discovery_unsignedInt:
- return soap_in_unsignedInt(soap, NULL, NULL, "xsd:unsignedInt");
- case SOAP_TYPE_KMS_Discovery_xsd__boolean:
- return soap_in_xsd__boolean(soap, NULL, NULL, "xsd:boolean");
- case SOAP_TYPE_KMS_Discovery_bool:
- return soap_in_bool(soap, NULL, NULL, "xsd:boolean");
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverCluster:
- return soap_in_KMS_Discovery__DiscoverCluster(soap, NULL, NULL, "KMS-Discovery:DiscoverCluster");
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverClusterResponse:
- return soap_in_KMS_Discovery__DiscoverClusterResponse(soap, NULL, NULL, "KMS-Discovery:DiscoverClusterResponse");
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery__ArrayOfClusterMembers:
- return soap_in_KMS_Discovery__ArrayOfClusterMembers(soap, NULL, NULL, "KMS-Discovery:ArrayOfClusterMembers");
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember:
- return soap_in_KMS_Discovery_ClusterMember(soap, NULL, NULL, "KMS-Discovery-ClusterMember");
- case SOAP_TYPE_KMS_Discovery_xsd__hexBinary:
- return soap_in_xsd__hexBinary(soap, NULL, NULL, "xsd:hexBinary");
- case SOAP_TYPE_KMS_Discovery_PointerToKMS_Discovery_ClusterMember:
- return soap_in_PointerToKMS_Discovery_ClusterMember(soap, NULL, NULL, "KMS-Discovery-ClusterMember");
- case SOAP_TYPE_KMS_Discovery_PointerTounsignedByte:
- return soap_in_PointerTounsignedByte(soap, NULL, NULL, "xsd:unsignedByte");
- case SOAP_TYPE_KMS_Discovery_xsd__networkAddress:
- { char **s;
- s = soap_in_xsd__networkAddress(soap, NULL, NULL, "xsd:networkAddress");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_KMS_Discovery_xsd__kmaVersion:
- { char **s;
- s = soap_in_xsd__kmaVersion(soap, NULL, NULL, "xsd:kmaVersion");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_KMS_Discovery_xsd__duration:
- { char **s;
- s = soap_in_xsd__duration(soap, NULL, NULL, "xsd:duration");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_KMS_Discovery_xsd__dateTime:
- { char **s;
- s = soap_in_xsd__dateTime(soap, NULL, NULL, "xsd:dateTime");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_KMS_Discovery_xsd__string:
- { char **s;
- s = soap_in_xsd__string(soap, NULL, NULL, "xsd:string");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_KMS_Discovery__QName:
- { char **s;
- s = soap_in__QName(soap, NULL, NULL, "xsd:QName");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_KMS_Discovery_string:
- { char **s;
- s = soap_in_string(soap, NULL, NULL, "xsd:string");
- return s ? *s : NULL;
- }
- default:
- { const char *t = soap->type;
- if (!*t)
- t = soap->tag;
- if (!soap_match_tag(soap, t, "xsd:byte"))
- { *type = SOAP_TYPE_KMS_Discovery_byte;
- return soap_in_byte(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:int"))
- { *type = SOAP_TYPE_KMS_Discovery_int;
- return soap_in_int(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:int"))
- { *type = SOAP_TYPE_KMS_Discovery_xsd__int;
- return soap_in_xsd__int(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:long"))
- { *type = SOAP_TYPE_KMS_Discovery_long;
- return soap_in_long(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:long"))
- { *type = SOAP_TYPE_KMS_Discovery_xsd__long;
- return soap_in_xsd__long(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:long"))
- { *type = SOAP_TYPE_KMS_Discovery_LONG64;
- return soap_in_LONG64(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:float"))
- { *type = SOAP_TYPE_KMS_Discovery_xsd__float;
- return soap_in_xsd__float(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:float"))
- { *type = SOAP_TYPE_KMS_Discovery_float;
- return soap_in_float(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:unsignedByte"))
- { *type = SOAP_TYPE_KMS_Discovery_unsignedByte;
- return soap_in_unsignedByte(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:unsignedInt"))
- { *type = SOAP_TYPE_KMS_Discovery_unsignedInt;
- return soap_in_unsignedInt(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:boolean"))
- { *type = SOAP_TYPE_KMS_Discovery_xsd__boolean;
- return soap_in_xsd__boolean(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:boolean"))
- { *type = SOAP_TYPE_KMS_Discovery_bool;
- return soap_in_bool(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Discovery:DiscoverCluster"))
- { *type = SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverCluster;
- return soap_in_KMS_Discovery__DiscoverCluster(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Discovery:DiscoverClusterResponse"))
- { *type = SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverClusterResponse;
- return soap_in_KMS_Discovery__DiscoverClusterResponse(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Discovery:ArrayOfClusterMembers"))
- { *type = SOAP_TYPE_KMS_Discovery_KMS_Discovery__ArrayOfClusterMembers;
- return soap_in_KMS_Discovery__ArrayOfClusterMembers(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "KMS-Discovery-ClusterMember"))
- { *type = SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember;
- return soap_in_KMS_Discovery_ClusterMember(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:hexBinary"))
- { *type = SOAP_TYPE_KMS_Discovery_xsd__hexBinary;
- return soap_in_xsd__hexBinary(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:networkAddress"))
- { char **s;
- *type = SOAP_TYPE_KMS_Discovery_xsd__networkAddress;
- s = soap_in_xsd__networkAddress(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:kmaVersion"))
- { char **s;
- *type = SOAP_TYPE_KMS_Discovery_xsd__kmaVersion;
- s = soap_in_xsd__kmaVersion(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:duration"))
- { char **s;
- *type = SOAP_TYPE_KMS_Discovery_xsd__duration;
- s = soap_in_xsd__duration(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:dateTime"))
- { char **s;
- *type = SOAP_TYPE_KMS_Discovery_xsd__dateTime;
- s = soap_in_xsd__dateTime(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:string"))
- { char **s;
- *type = SOAP_TYPE_KMS_Discovery_xsd__string;
- s = soap_in_xsd__string(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:QName"))
- { char **s;
- *type = SOAP_TYPE_KMS_Discovery__QName;
- s = soap_in__QName(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:string"))
- { char **s;
- *type = SOAP_TYPE_KMS_Discovery_string;
- s = soap_in_string(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- t = soap->tag;
- }
- }
- soap->error = SOAP_TAG_MISMATCH;
- return NULL;
-}
-#endif
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_ignore_element(struct soap *soap)
-{
- if (!soap_peek_element(soap))
- { int t;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Unexpected element '%s' in input (level=%u, %d)\n", soap->tag, soap->level, soap->body));
- if (soap->mustUnderstand && !soap->other)
- return soap->error = SOAP_MUSTUNDERSTAND;
- if (((soap->mode & SOAP_XML_STRICT) && soap->part != SOAP_IN_HEADER) || !soap_match_tag(soap, soap->tag, "SOAP-ENV:"))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "REJECTING element '%s'\n", soap->tag));
- return soap->error = SOAP_TAG_MISMATCH;
- }
- if (!*soap->id || !soap_getelement(soap, &t))
- { soap->peeked = 0;
- if (soap->fignore)
- soap->error = soap->fignore(soap, soap->tag);
- else
- soap->error = SOAP_OK;
- DBGLOG(TEST, if (!soap->error) SOAP_MESSAGE(fdebug, "IGNORING element '%s'\n", soap->tag));
- if (!soap->error && soap->body)
- { soap->level++;
- while (!soap_ignore_element(soap))
- ;
- if (soap->error == SOAP_NO_TAG)
- soap->error = soap_element_end_in(soap, NULL);
- }
- }
- }
- return soap->error;
-}
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 int SOAP_FMAC4 soap_putindependent(struct soap *soap)
-{
- int i;
- struct soap_plist *pp;
- if (soap->version == 1 && soap->encodingStyle && !(soap->mode & (SOAP_XML_TREE | SOAP_XML_GRAPH)))
- for (i = 0; i < SOAP_PTRHASH; i++)
- for (pp = soap->pht[i]; pp; pp = pp->next)
- if (pp->mark1 == 2 || pp->mark2 == 2)
- if (soap_putelement(soap, pp->ptr, "id", pp->id, pp->type))
- return soap->error;
- return SOAP_OK;
-}
-#endif
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 int SOAP_FMAC4 soap_putelement(struct soap *soap, const void *ptr, const char *tag, int id, int type)
-{
- switch (type)
- {
- case SOAP_TYPE_KMS_Discovery_byte:
- return soap_out_byte(soap, tag, id, (const char *)ptr, "xsd:byte");
- case SOAP_TYPE_KMS_Discovery_int:
- return soap_out_int(soap, tag, id, (const int *)ptr, "xsd:int");
- case SOAP_TYPE_KMS_Discovery_xsd__int:
- return soap_out_xsd__int(soap, tag, id, (const long *)ptr, "xsd:int");
- case SOAP_TYPE_KMS_Discovery_long:
- return soap_out_long(soap, tag, id, (const long *)ptr, "xsd:long");
- case SOAP_TYPE_KMS_Discovery_xsd__long:
- return soap_out_xsd__long(soap, tag, id, (const LONG64 *)ptr, "xsd:long");
- case SOAP_TYPE_KMS_Discovery_LONG64:
- return soap_out_LONG64(soap, tag, id, (const LONG64 *)ptr, "xsd:long");
- case SOAP_TYPE_KMS_Discovery_xsd__float:
- return soap_out_xsd__float(soap, tag, id, (const float *)ptr, "xsd:float");
- case SOAP_TYPE_KMS_Discovery_float:
- return soap_out_float(soap, tag, id, (const float *)ptr, "xsd:float");
- case SOAP_TYPE_KMS_Discovery_unsignedByte:
- return soap_out_unsignedByte(soap, tag, id, (const unsigned char *)ptr, "xsd:unsignedByte");
- case SOAP_TYPE_KMS_Discovery_unsignedInt:
- return soap_out_unsignedInt(soap, tag, id, (const unsigned int *)ptr, "xsd:unsignedInt");
- case SOAP_TYPE_KMS_Discovery_xsd__boolean:
- return soap_out_xsd__boolean(soap, tag, id, (const bool *)ptr, "xsd:boolean");
- case SOAP_TYPE_KMS_Discovery_bool:
- return soap_out_bool(soap, tag, id, (const bool *)ptr, "xsd:boolean");
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverCluster:
- return soap_out_KMS_Discovery__DiscoverCluster(soap, tag, id, (const struct KMS_Discovery__DiscoverCluster *)ptr, "KMS-Discovery:DiscoverCluster");
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverClusterResponse:
- return soap_out_KMS_Discovery__DiscoverClusterResponse(soap, tag, id, (const struct KMS_Discovery__DiscoverClusterResponse *)ptr, "KMS-Discovery:DiscoverClusterResponse");
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery__ArrayOfClusterMembers:
- return soap_out_KMS_Discovery__ArrayOfClusterMembers(soap, tag, id, (const struct KMS_Discovery__ArrayOfClusterMembers *)ptr, "KMS-Discovery:ArrayOfClusterMembers");
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember:
- return soap_out_KMS_Discovery_ClusterMember(soap, tag, id, (const struct KMS_Discovery_ClusterMember *)ptr, "KMS-Discovery-ClusterMember");
- case SOAP_TYPE_KMS_Discovery_xsd__hexBinary:
- return soap_out_xsd__hexBinary(soap, tag, id, (const struct xsd__hexBinary *)ptr, "xsd:hexBinary");
- case SOAP_TYPE_KMS_Discovery_PointerToKMS_Discovery_ClusterMember:
- return soap_out_PointerToKMS_Discovery_ClusterMember(soap, tag, id, (struct KMS_Discovery_ClusterMember *const*)ptr, "KMS-Discovery-ClusterMember");
- case SOAP_TYPE_KMS_Discovery_PointerTounsignedByte:
- return soap_out_PointerTounsignedByte(soap, tag, id, (unsigned char *const*)ptr, "xsd:unsignedByte");
- case SOAP_TYPE_KMS_Discovery_xsd__networkAddress:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:networkAddress");
- case SOAP_TYPE_KMS_Discovery_xsd__kmaVersion:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:kmaVersion");
- case SOAP_TYPE_KMS_Discovery_xsd__duration:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:duration");
- case SOAP_TYPE_KMS_Discovery_xsd__dateTime:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:dateTime");
- case SOAP_TYPE_KMS_Discovery_xsd__string:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:string");
- case SOAP_TYPE_KMS_Discovery__QName:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:QName");
- case SOAP_TYPE_KMS_Discovery_string:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:string");
- }
- return SOAP_OK;
-}
-#endif
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 void SOAP_FMAC4 soap_markelement(struct soap *soap, const void *ptr, int type)
-{
- (void)soap; (void)ptr; (void)type; /* appease -Wall -Werror */
- switch (type)
- {
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverCluster:
- soap_serialize_KMS_Discovery__DiscoverCluster(soap, (const struct KMS_Discovery__DiscoverCluster *)ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverClusterResponse:
- soap_serialize_KMS_Discovery__DiscoverClusterResponse(soap, (const struct KMS_Discovery__DiscoverClusterResponse *)ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery__ArrayOfClusterMembers:
- soap_serialize_KMS_Discovery__ArrayOfClusterMembers(soap, (const struct KMS_Discovery__ArrayOfClusterMembers *)ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember:
- soap_serialize_KMS_Discovery_ClusterMember(soap, (const struct KMS_Discovery_ClusterMember *)ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_xsd__hexBinary:
- soap_serialize_xsd__hexBinary(soap, (const struct xsd__hexBinary *)ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_PointerToKMS_Discovery_ClusterMember:
- soap_serialize_PointerToKMS_Discovery_ClusterMember(soap, (struct KMS_Discovery_ClusterMember *const*)ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_PointerTounsignedByte:
- soap_serialize_PointerTounsignedByte(soap, (unsigned char *const*)ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_xsd__networkAddress:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_xsd__kmaVersion:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_xsd__duration:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_xsd__dateTime:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_xsd__string:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_KMS_Discovery__QName:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_string:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- }
-}
-#endif
-
-SOAP_FMAC3 void * SOAP_FMAC4 soap_instantiate(struct soap *soap, int t, const char *type, const char *arrayType, size_t *n)
-{
- switch (t)
- {
- case SOAP_TYPE_KMS_Discovery_xsd__hexBinary:
- return (void*)soap_instantiate_xsd__hexBinary(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember:
- return (void*)soap_instantiate_KMS_Discovery_ClusterMember(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery__ArrayOfClusterMembers:
- return (void*)soap_instantiate_KMS_Discovery__ArrayOfClusterMembers(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverClusterResponse:
- return (void*)soap_instantiate_KMS_Discovery__DiscoverClusterResponse(soap, -1, type, arrayType, n);
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverCluster:
- return (void*)soap_instantiate_KMS_Discovery__DiscoverCluster(soap, -1, type, arrayType, n);
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_Discovery_SOAP_ENV__Header:
- return (void*)soap_instantiate_SOAP_ENV__Header(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_Discovery_SOAP_ENV__Code:
- return (void*)soap_instantiate_SOAP_ENV__Code(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_Discovery_SOAP_ENV__Detail:
- return (void*)soap_instantiate_SOAP_ENV__Detail(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_Discovery_SOAP_ENV__Reason:
- return (void*)soap_instantiate_SOAP_ENV__Reason(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_KMS_Discovery_SOAP_ENV__Fault:
- return (void*)soap_instantiate_SOAP_ENV__Fault(soap, -1, type, arrayType, n);
-#endif
- }
- return NULL;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_fdelete(struct soap_clist *p)
-{ switch (p->type)
- {
- case SOAP_TYPE_KMS_Discovery_xsd__hexBinary:
- if (p->size < 0)
- SOAP_DELETE((struct xsd__hexBinary*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct xsd__hexBinary*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Discovery_ClusterMember*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Discovery_ClusterMember*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery__ArrayOfClusterMembers:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Discovery__ArrayOfClusterMembers*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Discovery__ArrayOfClusterMembers*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverClusterResponse:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Discovery__DiscoverClusterResponse*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Discovery__DiscoverClusterResponse*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverCluster:
- if (p->size < 0)
- SOAP_DELETE((struct KMS_Discovery__DiscoverCluster*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct KMS_Discovery__DiscoverCluster*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_SOAP_ENV__Header:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Header*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Header*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_SOAP_ENV__Code:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Code*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Code*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_SOAP_ENV__Detail:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Detail*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Detail*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_SOAP_ENV__Reason:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Reason*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Reason*)p->ptr);
- break;
- case SOAP_TYPE_KMS_Discovery_SOAP_ENV__Fault:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Fault*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Fault*)p->ptr);
- break;
- default: return SOAP_ERR;
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 void* SOAP_FMAC4 soap_class_id_enter(struct soap *soap, const char *id, void *p, int t, size_t n, const char *type, const char *arrayType)
-{ return soap_id_enter(soap, id, p, t, n, 0, type, arrayType, soap_instantiate);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_byte(struct soap *soap, char *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_byte
- *a = SOAP_DEFAULT_byte;
-#else
- *a = (char)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_byte(struct soap *soap, const char *tag, int id, const char *a, const char *type)
-{
- return soap_outbyte(soap, tag, id, a, type, SOAP_TYPE_KMS_Discovery_byte);
-}
-
-SOAP_FMAC3 char * SOAP_FMAC4 soap_in_byte(struct soap *soap, const char *tag, char *a, const char *type)
-{ char *p;
- p = soap_inbyte(soap, tag, a, type, SOAP_TYPE_KMS_Discovery_byte);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_byte(struct soap *soap, const char *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_byte);
- if (soap_out_byte(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char * SOAP_FMAC4 soap_get_byte(struct soap *soap, char *p, const char *tag, const char *type)
-{
- if ((p = soap_in_byte(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_int(struct soap *soap, int *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_int
- *a = SOAP_DEFAULT_int;
-#else
- *a = (int)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_int(struct soap *soap, const char *tag, int id, const int *a, const char *type)
-{
- return soap_outint(soap, tag, id, a, type, SOAP_TYPE_KMS_Discovery_int);
-}
-
-SOAP_FMAC3 int * SOAP_FMAC4 soap_in_int(struct soap *soap, const char *tag, int *a, const char *type)
-{ int *p;
- p = soap_inint(soap, tag, a, type, SOAP_TYPE_KMS_Discovery_int);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_int(struct soap *soap, const int *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_int);
- if (soap_out_int(soap, tag?tag:"int", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 int * SOAP_FMAC4 soap_get_int(struct soap *soap, int *p, const char *tag, const char *type)
-{
- if ((p = soap_in_int(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__int(struct soap *soap, const char *tag, int id, const long *a, const char *type)
-{
- return soap_outlong(soap, tag, id, a, type, SOAP_TYPE_KMS_Discovery_xsd__int);
-}
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_in_xsd__int(struct soap *soap, const char *tag, long *a, const char *type)
-{ long *p;
- p = soap_inlong(soap, tag, a, type, SOAP_TYPE_KMS_Discovery_xsd__int);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__int(struct soap *soap, const long *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_xsd__int);
- if (soap_out_xsd__int(soap, tag?tag:"xsd:int", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_get_xsd__int(struct soap *soap, long *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__int(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_long(struct soap *soap, long *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_long
- *a = SOAP_DEFAULT_long;
-#else
- *a = (long)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_long(struct soap *soap, const char *tag, int id, const long *a, const char *type)
-{
- return soap_outlong(soap, tag, id, a, type, SOAP_TYPE_KMS_Discovery_long);
-}
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_in_long(struct soap *soap, const char *tag, long *a, const char *type)
-{ long *p;
- p = soap_inlong(soap, tag, a, type, SOAP_TYPE_KMS_Discovery_long);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_long(struct soap *soap, const long *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_long);
- if (soap_out_long(soap, tag?tag:"long", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_get_long(struct soap *soap, long *p, const char *tag, const char *type)
-{
- if ((p = soap_in_long(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__long(struct soap *soap, const char *tag, int id, const LONG64 *a, const char *type)
-{
- return soap_outLONG64(soap, tag, id, a, type, SOAP_TYPE_KMS_Discovery_xsd__long);
-}
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_in_xsd__long(struct soap *soap, const char *tag, LONG64 *a, const char *type)
-{ LONG64 *p;
- p = soap_inLONG64(soap, tag, a, type, SOAP_TYPE_KMS_Discovery_xsd__long);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__long(struct soap *soap, const LONG64 *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_xsd__long);
- if (soap_out_xsd__long(soap, tag?tag:"xsd:long", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_get_xsd__long(struct soap *soap, LONG64 *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__long(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_LONG64(struct soap *soap, LONG64 *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_LONG64
- *a = SOAP_DEFAULT_LONG64;
-#else
- *a = (LONG64)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_LONG64(struct soap *soap, const char *tag, int id, const LONG64 *a, const char *type)
-{
- return soap_outLONG64(soap, tag, id, a, type, SOAP_TYPE_KMS_Discovery_LONG64);
-}
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_in_LONG64(struct soap *soap, const char *tag, LONG64 *a, const char *type)
-{ LONG64 *p;
- p = soap_inLONG64(soap, tag, a, type, SOAP_TYPE_KMS_Discovery_LONG64);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_LONG64(struct soap *soap, const LONG64 *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_LONG64);
- if (soap_out_LONG64(soap, tag?tag:"long", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_get_LONG64(struct soap *soap, LONG64 *p, const char *tag, const char *type)
-{
- if ((p = soap_in_LONG64(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__float(struct soap *soap, const char *tag, int id, const float *a, const char *type)
-{
- return soap_outfloat(soap, tag, id, a, type, SOAP_TYPE_KMS_Discovery_xsd__float);
-}
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_in_xsd__float(struct soap *soap, const char *tag, float *a, const char *type)
-{ float *p;
- p = soap_infloat(soap, tag, a, type, SOAP_TYPE_KMS_Discovery_xsd__float);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__float(struct soap *soap, const float *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_xsd__float);
- if (soap_out_xsd__float(soap, tag?tag:"xsd:float", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_get_xsd__float(struct soap *soap, float *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__float(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_float(struct soap *soap, float *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_float
- *a = SOAP_DEFAULT_float;
-#else
- *a = (float)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_float(struct soap *soap, const char *tag, int id, const float *a, const char *type)
-{
- return soap_outfloat(soap, tag, id, a, type, SOAP_TYPE_KMS_Discovery_float);
-}
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_in_float(struct soap *soap, const char *tag, float *a, const char *type)
-{ float *p;
- p = soap_infloat(soap, tag, a, type, SOAP_TYPE_KMS_Discovery_float);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_float(struct soap *soap, const float *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_float);
- if (soap_out_float(soap, tag?tag:"float", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_get_float(struct soap *soap, float *p, const char *tag, const char *type)
-{
- if ((p = soap_in_float(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_unsignedByte(struct soap *soap, unsigned char *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_unsignedByte
- *a = SOAP_DEFAULT_unsignedByte;
-#else
- *a = (unsigned char)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_unsignedByte(struct soap *soap, const char *tag, int id, const unsigned char *a, const char *type)
-{
- return soap_outunsignedByte(soap, tag, id, a, type, SOAP_TYPE_KMS_Discovery_unsignedByte);
-}
-
-SOAP_FMAC3 unsigned char * SOAP_FMAC4 soap_in_unsignedByte(struct soap *soap, const char *tag, unsigned char *a, const char *type)
-{ unsigned char *p;
- p = soap_inunsignedByte(soap, tag, a, type, SOAP_TYPE_KMS_Discovery_unsignedByte);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_unsignedByte(struct soap *soap, const unsigned char *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_unsignedByte);
- if (soap_out_unsignedByte(soap, tag?tag:"unsignedByte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 unsigned char * SOAP_FMAC4 soap_get_unsignedByte(struct soap *soap, unsigned char *p, const char *tag, const char *type)
-{
- if ((p = soap_in_unsignedByte(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_unsignedInt(struct soap *soap, unsigned int *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_unsignedInt
- *a = SOAP_DEFAULT_unsignedInt;
-#else
- *a = (unsigned int)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_unsignedInt(struct soap *soap, const char *tag, int id, const unsigned int *a, const char *type)
-{
- return soap_outunsignedInt(soap, tag, id, a, type, SOAP_TYPE_KMS_Discovery_unsignedInt);
-}
-
-SOAP_FMAC3 unsigned int * SOAP_FMAC4 soap_in_unsignedInt(struct soap *soap, const char *tag, unsigned int *a, const char *type)
-{ unsigned int *p;
- p = soap_inunsignedInt(soap, tag, a, type, SOAP_TYPE_KMS_Discovery_unsignedInt);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_unsignedInt(struct soap *soap, const unsigned int *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_unsignedInt);
- if (soap_out_unsignedInt(soap, tag?tag:"unsignedInt", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 unsigned int * SOAP_FMAC4 soap_get_unsignedInt(struct soap *soap, unsigned int *p, const char *tag, const char *type)
-{
- if ((p = soap_in_unsignedInt(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_xsd__boolean2s(struct soap *soap, bool n)
-{ return soap_bool2s(soap, n);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__boolean(struct soap *soap, const char *tag, int id, const bool *a, const char *type)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Discovery_xsd__boolean), type) || soap_send(soap, soap_xsd__boolean2s(soap, *a)))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2xsd__boolean(struct soap *soap, const char *s, bool *a)
-{
- return soap_s2bool(soap, s, a);
-}
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_in_xsd__boolean(struct soap *soap, const char *tag, bool *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
- if (*soap->type && soap_match_tag(soap, soap->type, type) && soap_match_tag(soap, soap->type, ":boolean"))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- a = (bool *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Discovery_xsd__boolean, sizeof(bool), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- if (soap->body && !*soap->href)
- { if (!a || soap_s2xsd__boolean(soap, soap_value(soap), a) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (bool *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Discovery_xsd__boolean, 0, sizeof(bool), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__boolean(struct soap *soap, const bool *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_xsd__boolean);
- if (soap_out_xsd__boolean(soap, tag?tag:"xsd:boolean", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_get_xsd__boolean(struct soap *soap, bool *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__boolean(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_bool(struct soap *soap, bool *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_bool
- *a = SOAP_DEFAULT_bool;
-#else
- *a = (bool)0;
-#endif
-}
-
-static const struct soap_code_map soap_codes_bool[] =
-{ { (long)false, "false" },
- { (long)true, "true" },
- { 0, NULL }
-};
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_bool2s(struct soap *soap, bool n)
-{
- (void)soap; /* appease -Wall -Werror */
-return soap_code_str(soap_codes_bool, n!=0);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_bool(struct soap *soap, const char *tag, int id, const bool *a, const char *type)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Discovery_bool), type) || soap_send(soap, soap_bool2s(soap, *a)))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2bool(struct soap *soap, const char *s, bool *a)
-{
- const struct soap_code_map *map;
- if (!s)
- return soap->error;
- map = soap_code(soap_codes_bool, s);
- if (map)
- *a = (bool)(map->code != 0);
- else
- { long n;
- if (soap_s2long(soap, s, &n) || n < 0 || n > 1)
- return soap->error = SOAP_TYPE;
- *a = (bool)(n != 0);
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_in_bool(struct soap *soap, const char *tag, bool *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
- if (*soap->type && soap_match_tag(soap, soap->type, type) && soap_match_tag(soap, soap->type, ":boolean"))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- a = (bool *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Discovery_bool, sizeof(bool), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- if (soap->body && !*soap->href)
- { if (!a || soap_s2bool(soap, soap_value(soap), a) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (bool *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Discovery_bool, 0, sizeof(bool), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_bool(struct soap *soap, const bool *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_bool);
- if (soap_out_bool(soap, tag?tag:"boolean", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_get_bool(struct soap *soap, bool *p, const char *tag, const char *type)
-{
- if ((p = soap_in_bool(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Fault(struct soap *soap, struct SOAP_ENV__Fault *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default__QName(soap, &a->faultcode);
- soap_default_string(soap, &a->faultstring);
- soap_default_string(soap, &a->faultactor);
- a->detail = NULL;
- a->SOAP_ENV__Code = NULL;
- a->SOAP_ENV__Reason = NULL;
- soap_default_string(soap, &a->SOAP_ENV__Node);
- soap_default_string(soap, &a->SOAP_ENV__Role);
- a->SOAP_ENV__Detail = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Fault(struct soap *soap, const struct SOAP_ENV__Fault *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize__QName(soap, &a->faultcode);
- soap_serialize_string(soap, &a->faultstring);
- soap_serialize_string(soap, &a->faultactor);
- soap_serialize_PointerToSOAP_ENV__Detail(soap, &a->detail);
- soap_serialize_PointerToSOAP_ENV__Code(soap, &a->SOAP_ENV__Code);
- soap_serialize_PointerToSOAP_ENV__Reason(soap, &a->SOAP_ENV__Reason);
- soap_serialize_string(soap, &a->SOAP_ENV__Node);
- soap_serialize_string(soap, &a->SOAP_ENV__Role);
- soap_serialize_PointerToSOAP_ENV__Detail(soap, &a->SOAP_ENV__Detail);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Fault(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Fault *a, const char *type)
-{
- const char *soap_tmp_faultcode = soap_QName2s(soap, a->faultcode);
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Fault), type))
- return soap->error;
- if (soap_out__QName(soap, "faultcode", -1, (char*const*)&soap_tmp_faultcode, ""))
- return soap->error;
- if (soap_out_string(soap, "faultstring", -1, &a->faultstring, "xsd:string"))
- return soap->error;
- if (soap_out_string(soap, "faultactor", -1, &a->faultactor, "xsd:string"))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Detail(soap, "detail", -1, &a->detail, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Code", -1, &a->SOAP_ENV__Code, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Reason(soap, "SOAP-ENV:Reason", -1, &a->SOAP_ENV__Reason, ""))
- return soap->error;
- if (soap_out_string(soap, "SOAP-ENV:Node", -1, &a->SOAP_ENV__Node, ""))
- return soap->error;
- if (soap_out_string(soap, "SOAP-ENV:Role", -1, &a->SOAP_ENV__Role, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Detail(soap, "SOAP-ENV:Detail", -1, &a->SOAP_ENV__Detail, ""))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_in_SOAP_ENV__Fault(struct soap *soap, const char *tag, struct SOAP_ENV__Fault *a, const char *type)
-{
- size_t soap_flag_faultcode = 1;
- size_t soap_flag_faultstring = 1;
- size_t soap_flag_faultactor = 1;
- size_t soap_flag_detail = 1;
- size_t soap_flag_SOAP_ENV__Code = 1;
- size_t soap_flag_SOAP_ENV__Reason = 1;
- size_t soap_flag_SOAP_ENV__Node = 1;
- size_t soap_flag_SOAP_ENV__Role = 1;
- size_t soap_flag_SOAP_ENV__Detail = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Fault *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Fault, sizeof(struct SOAP_ENV__Fault), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Fault(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_faultcode && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in__QName(soap, "faultcode", &a->faultcode, ""))
- { soap_flag_faultcode--;
- continue;
- }
- if (soap_flag_faultstring && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "faultstring", &a->faultstring, "xsd:string"))
- { soap_flag_faultstring--;
- continue;
- }
- if (soap_flag_faultactor && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "faultactor", &a->faultactor, "xsd:string"))
- { soap_flag_faultactor--;
- continue;
- }
- if (soap_flag_detail && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Detail(soap, "detail", &a->detail, ""))
- { soap_flag_detail--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Code && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Code", &a->SOAP_ENV__Code, ""))
- { soap_flag_SOAP_ENV__Code--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Reason && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Reason(soap, "SOAP-ENV:Reason", &a->SOAP_ENV__Reason, ""))
- { soap_flag_SOAP_ENV__Reason--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Node && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "SOAP-ENV:Node", &a->SOAP_ENV__Node, "xsd:string"))
- { soap_flag_SOAP_ENV__Node--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Role && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "SOAP-ENV:Role", &a->SOAP_ENV__Role, "xsd:string"))
- { soap_flag_SOAP_ENV__Role--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Detail && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Detail(soap, "SOAP-ENV:Detail", &a->SOAP_ENV__Detail, ""))
- { soap_flag_SOAP_ENV__Detail--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Fault *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Fault, 0, sizeof(struct SOAP_ENV__Fault), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Fault(struct soap *soap, const struct SOAP_ENV__Fault *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Fault);
- if (soap_out_SOAP_ENV__Fault(soap, tag?tag:"SOAP-ENV:Fault", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_get_SOAP_ENV__Fault(struct soap *soap, struct SOAP_ENV__Fault *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Fault(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Fault * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Fault(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Fault(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Fault, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Fault);
- if (size)
- *size = sizeof(struct SOAP_ENV__Fault);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Fault[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Fault);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Fault*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Fault(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Fault %p -> %p\n", q, p));
- *(struct SOAP_ENV__Fault*)p = *(struct SOAP_ENV__Fault*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_string(soap, &a->SOAP_ENV__Text);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Reason(struct soap *soap, const struct SOAP_ENV__Reason *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_string(soap, &a->SOAP_ENV__Text);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Reason(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Reason *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Reason), type))
- return soap->error;
- if (soap->lang)
- soap_set_attr(soap, "xml:lang", soap->lang, 1);
- if (soap_out_string(soap, "SOAP-ENV:Text", -1, &a->SOAP_ENV__Text, ""))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_in_SOAP_ENV__Reason(struct soap *soap, const char *tag, struct SOAP_ENV__Reason *a, const char *type)
-{
- size_t soap_flag_SOAP_ENV__Text = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Reason *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Reason, sizeof(struct SOAP_ENV__Reason), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Reason(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_SOAP_ENV__Text && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "SOAP-ENV:Text", &a->SOAP_ENV__Text, "xsd:string"))
- { soap_flag_SOAP_ENV__Text--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Reason *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Reason, 0, sizeof(struct SOAP_ENV__Reason), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Reason(struct soap *soap, const struct SOAP_ENV__Reason *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Reason);
- if (soap_out_SOAP_ENV__Reason(soap, tag?tag:"SOAP-ENV:Reason", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_get_SOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Reason(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Reason * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Reason(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Reason(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Reason, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Reason);
- if (size)
- *size = sizeof(struct SOAP_ENV__Reason);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Reason[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Reason);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Reason*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Reason(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Reason %p -> %p\n", q, p));
- *(struct SOAP_ENV__Reason*)p = *(struct SOAP_ENV__Reason*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- a->__type = 0;
- a->fault = NULL;
- a->__any = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Detail(struct soap *soap, const struct SOAP_ENV__Detail *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_markelement(soap, a->fault, a->__type);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Detail(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Detail *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Detail), type))
- return soap->error;
- if (soap_putelement(soap, a->fault, "fault", -1, a->__type))
- return soap->error;
- soap_outliteral(soap, "-any", &a->__any, NULL);
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_in_SOAP_ENV__Detail(struct soap *soap, const char *tag, struct SOAP_ENV__Detail *a, const char *type)
-{
- size_t soap_flag_fault = 1;
- size_t soap_flag___any = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Detail *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Detail, sizeof(struct SOAP_ENV__Detail), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Detail(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_fault && soap->error == SOAP_TAG_MISMATCH)
- if ((a->fault = soap_getelement(soap, &a->__type)))
- { soap_flag_fault = 0;
- continue;
- }
- if (soap_flag___any && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_inliteral(soap, "-any", &a->__any))
- { soap_flag___any--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Detail *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Detail, 0, sizeof(struct SOAP_ENV__Detail), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Detail(struct soap *soap, const struct SOAP_ENV__Detail *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Detail);
- if (soap_out_SOAP_ENV__Detail(soap, tag?tag:"SOAP-ENV:Detail", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_get_SOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Detail(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Detail * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Detail(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Detail(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Detail, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Detail);
- if (size)
- *size = sizeof(struct SOAP_ENV__Detail);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Detail[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Detail);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Detail*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Detail(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Detail %p -> %p\n", q, p));
- *(struct SOAP_ENV__Detail*)p = *(struct SOAP_ENV__Detail*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default__QName(soap, &a->SOAP_ENV__Value);
- a->SOAP_ENV__Subcode = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Code(struct soap *soap, const struct SOAP_ENV__Code *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize__QName(soap, &a->SOAP_ENV__Value);
- soap_serialize_PointerToSOAP_ENV__Code(soap, &a->SOAP_ENV__Subcode);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Code(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Code *a, const char *type)
-{
- const char *soap_tmp_SOAP_ENV__Value = soap_QName2s(soap, a->SOAP_ENV__Value);
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Code), type))
- return soap->error;
- if (soap_out__QName(soap, "SOAP-ENV:Value", -1, (char*const*)&soap_tmp_SOAP_ENV__Value, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Subcode", -1, &a->SOAP_ENV__Subcode, ""))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_in_SOAP_ENV__Code(struct soap *soap, const char *tag, struct SOAP_ENV__Code *a, const char *type)
-{
- size_t soap_flag_SOAP_ENV__Value = 1;
- size_t soap_flag_SOAP_ENV__Subcode = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Code *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Code, sizeof(struct SOAP_ENV__Code), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Code(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_SOAP_ENV__Value && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in__QName(soap, "SOAP-ENV:Value", &a->SOAP_ENV__Value, ""))
- { soap_flag_SOAP_ENV__Value--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Subcode && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Subcode", &a->SOAP_ENV__Subcode, ""))
- { soap_flag_SOAP_ENV__Subcode--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Code *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Code, 0, sizeof(struct SOAP_ENV__Code), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Code(struct soap *soap, const struct SOAP_ENV__Code *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Code);
- if (soap_out_SOAP_ENV__Code(soap, tag?tag:"SOAP-ENV:Code", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_get_SOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Code(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Code * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Code(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Code(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Code, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Code);
- if (size)
- *size = sizeof(struct SOAP_ENV__Code);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Code[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Code);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Code*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Code(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Code %p -> %p\n", q, p));
- *(struct SOAP_ENV__Code*)p = *(struct SOAP_ENV__Code*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Header(struct soap *soap, struct SOAP_ENV__Header *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Header(struct soap *soap, const struct SOAP_ENV__Header *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Header(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Header *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Header), type))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_in_SOAP_ENV__Header(struct soap *soap, const char *tag, struct SOAP_ENV__Header *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Header *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Header, sizeof(struct SOAP_ENV__Header), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Header(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Header *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Header, 0, sizeof(struct SOAP_ENV__Header), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Header(struct soap *soap, const struct SOAP_ENV__Header *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Header);
- if (soap_out_SOAP_ENV__Header(soap, tag?tag:"SOAP-ENV:Header", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_get_SOAP_ENV__Header(struct soap *soap, struct SOAP_ENV__Header *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Header(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Header * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Header(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Header(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Header, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Header);
- if (size)
- *size = sizeof(struct SOAP_ENV__Header);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Header[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Header);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Header*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Header(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Header %p -> %p\n", q, p));
- *(struct SOAP_ENV__Header*)p = *(struct SOAP_ENV__Header*)q;
-}
-
-#endif
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Discovery__DiscoverCluster(struct soap *soap, struct KMS_Discovery__DiscoverCluster *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- /* transient _ skipped */
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Discovery__DiscoverCluster(struct soap *soap, const struct KMS_Discovery__DiscoverCluster *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- /* transient _ skipped */
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Discovery__DiscoverCluster(struct soap *soap, const char *tag, int id, const struct KMS_Discovery__DiscoverCluster *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverCluster), type))
- return soap->error;
- /* transient _ skipped */
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Discovery__DiscoverCluster * SOAP_FMAC4 soap_in_KMS_Discovery__DiscoverCluster(struct soap *soap, const char *tag, struct KMS_Discovery__DiscoverCluster *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Discovery__DiscoverCluster *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverCluster, sizeof(struct KMS_Discovery__DiscoverCluster), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Discovery__DiscoverCluster(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- /* transient _ skipped */
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Discovery__DiscoverCluster *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverCluster, 0, sizeof(struct KMS_Discovery__DiscoverCluster), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Discovery__DiscoverCluster(struct soap *soap, const struct KMS_Discovery__DiscoverCluster *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverCluster);
- if (soap_out_KMS_Discovery__DiscoverCluster(soap, tag?tag:"KMS-Discovery:DiscoverCluster", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Discovery__DiscoverCluster * SOAP_FMAC4 soap_get_KMS_Discovery__DiscoverCluster(struct soap *soap, struct KMS_Discovery__DiscoverCluster *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Discovery__DiscoverCluster(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Discovery__DiscoverCluster * SOAP_FMAC2 soap_instantiate_KMS_Discovery__DiscoverCluster(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Discovery__DiscoverCluster(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverCluster, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Discovery__DiscoverCluster);
- if (size)
- *size = sizeof(struct KMS_Discovery__DiscoverCluster);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Discovery__DiscoverCluster[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Discovery__DiscoverCluster);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Discovery__DiscoverCluster*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Discovery__DiscoverCluster(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Discovery__DiscoverCluster %p -> %p\n", q, p));
- *(struct KMS_Discovery__DiscoverCluster*)p = *(struct KMS_Discovery__DiscoverCluster*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Discovery__DiscoverClusterResponse(struct soap *soap, struct KMS_Discovery__DiscoverClusterResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__string(soap, &a->EntitySiteID);
- soap_default_KMS_Discovery__ArrayOfClusterMembers(soap, &a->ArrayOfClusterMembers);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Discovery__DiscoverClusterResponse(struct soap *soap, const struct KMS_Discovery__DiscoverClusterResponse *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__string(soap, &a->EntitySiteID);
- soap_serialize_KMS_Discovery__ArrayOfClusterMembers(soap, &a->ArrayOfClusterMembers);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Discovery__DiscoverClusterResponse(struct soap *soap, const char *tag, int id, const struct KMS_Discovery__DiscoverClusterResponse *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverClusterResponse), type))
- return soap->error;
- if (soap_out_xsd__string(soap, "EntitySiteID", -1, &a->EntitySiteID, "xsd:string"))
- return soap->error;
- if (soap_out_KMS_Discovery__ArrayOfClusterMembers(soap, "ArrayOfClusterMembers", -1, &a->ArrayOfClusterMembers, "KMS-Discovery:ArrayOfClusterMembers"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Discovery__DiscoverClusterResponse * SOAP_FMAC4 soap_in_KMS_Discovery__DiscoverClusterResponse(struct soap *soap, const char *tag, struct KMS_Discovery__DiscoverClusterResponse *a, const char *type)
-{
- size_t soap_flag_EntitySiteID = 1;
- size_t soap_flag_ArrayOfClusterMembers = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Discovery__DiscoverClusterResponse *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverClusterResponse, sizeof(struct KMS_Discovery__DiscoverClusterResponse), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Discovery__DiscoverClusterResponse(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_EntitySiteID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "EntitySiteID", &a->EntitySiteID, "xsd:string"))
- { soap_flag_EntitySiteID--;
- continue;
- }
- if (soap_flag_ArrayOfClusterMembers && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_KMS_Discovery__ArrayOfClusterMembers(soap, "ArrayOfClusterMembers", &a->ArrayOfClusterMembers, "KMS-Discovery:ArrayOfClusterMembers"))
- { soap_flag_ArrayOfClusterMembers--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Discovery__DiscoverClusterResponse *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverClusterResponse, 0, sizeof(struct KMS_Discovery__DiscoverClusterResponse), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Discovery__DiscoverClusterResponse(struct soap *soap, const struct KMS_Discovery__DiscoverClusterResponse *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverClusterResponse);
- if (soap_out_KMS_Discovery__DiscoverClusterResponse(soap, tag?tag:"KMS-Discovery:DiscoverClusterResponse", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Discovery__DiscoverClusterResponse * SOAP_FMAC4 soap_get_KMS_Discovery__DiscoverClusterResponse(struct soap *soap, struct KMS_Discovery__DiscoverClusterResponse *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Discovery__DiscoverClusterResponse(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Discovery__DiscoverClusterResponse * SOAP_FMAC2 soap_instantiate_KMS_Discovery__DiscoverClusterResponse(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Discovery__DiscoverClusterResponse(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverClusterResponse, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Discovery__DiscoverClusterResponse);
- if (size)
- *size = sizeof(struct KMS_Discovery__DiscoverClusterResponse);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Discovery__DiscoverClusterResponse[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Discovery__DiscoverClusterResponse);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Discovery__DiscoverClusterResponse*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Discovery__DiscoverClusterResponse(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Discovery__DiscoverClusterResponse %p -> %p\n", q, p));
- *(struct KMS_Discovery__DiscoverClusterResponse*)p = *(struct KMS_Discovery__DiscoverClusterResponse*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Discovery__ArrayOfClusterMembers(struct soap *soap, struct KMS_Discovery__ArrayOfClusterMembers *a)
-{
- (void)soap; /* appease -Wall -Werror */
- a->__size = 0;
- a->__ptr = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Discovery__ArrayOfClusterMembers(struct soap *soap, struct KMS_Discovery__ArrayOfClusterMembers const*a)
-{
- int i;
- if (a->__ptr && !soap_array_reference(soap, a, (struct soap_array*)&a->__ptr, 1, SOAP_TYPE_KMS_Discovery_KMS_Discovery__ArrayOfClusterMembers))
- for (i = 0; i < a->__size; i++)
- { soap_embedded(soap, a->__ptr + i, SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember);
- soap_serialize_KMS_Discovery_ClusterMember(soap, a->__ptr + i);
- }
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Discovery__ArrayOfClusterMembers(struct soap *soap, const char *tag, int id, const struct KMS_Discovery__ArrayOfClusterMembers *a, const char *type)
-{
- int i, n = a->__size;
- id = soap_element_id(soap, tag, id, a, (struct soap_array*)&a->__ptr, 1, type, SOAP_TYPE_KMS_Discovery_KMS_Discovery__ArrayOfClusterMembers);
- if (id < 0)
- return soap->error;
- if (soap_element_begin_out(soap, tag, id, type))
- return soap->error;
- for (i = 0; i < n; i++)
- {
- soap_out_KMS_Discovery_ClusterMember(soap, "item", -1, &a->__ptr[i], "KMS-Discovery-ClusterMember");
- }
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Discovery__ArrayOfClusterMembers * SOAP_FMAC4 soap_in_KMS_Discovery__ArrayOfClusterMembers(struct soap *soap, const char *tag, struct KMS_Discovery__ArrayOfClusterMembers *a, const char *type)
-{ int i, j;
- struct KMS_Discovery_ClusterMember *p;
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (*soap->type && soap_match_array(soap, "KMS-Discovery-ClusterMember") && soap_match_tag(soap, soap->type, type))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- a = (struct KMS_Discovery__ArrayOfClusterMembers *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Discovery_KMS_Discovery__ArrayOfClusterMembers, sizeof(struct KMS_Discovery__ArrayOfClusterMembers), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Discovery__ArrayOfClusterMembers(soap, a);
- if (soap->body && !*soap->href)
- {
- a->__size = soap_getsize(soap->arraySize, soap->arrayOffset, &j);
- if (a->__size >= 0)
- { a->__ptr = (struct KMS_Discovery_ClusterMember *)soap_malloc(soap, sizeof(struct KMS_Discovery_ClusterMember) * a->__size);
- for (i = 0; i < a->__size; i++)
- soap_default_KMS_Discovery_ClusterMember(soap, a->__ptr+i);
- for (i = 0; i < a->__size; i++)
- { soap_peek_element(soap);
- if (soap->position)
- { i = soap->positions[0]-j;
- if (i < 0 || i >= a->__size)
- { soap->error = SOAP_IOB;
- return NULL;
- }
- }
- if (!soap_in_KMS_Discovery_ClusterMember(soap, NULL, a->__ptr + i, "KMS-Discovery-ClusterMember"))
- { if (soap->error != SOAP_NO_TAG)
- return NULL;
- soap->error = SOAP_OK;
- break;
- }
- }
- }
- else
- { if (soap_new_block(soap) == NULL)
- return NULL;
- for (a->__size = 0; ; a->__size++)
- { p = (struct KMS_Discovery_ClusterMember *)soap_push_block(soap, NULL, sizeof(struct KMS_Discovery_ClusterMember));
- if (!p)
- return NULL;
- soap_default_KMS_Discovery_ClusterMember(soap, p);
- if (!soap_in_KMS_Discovery_ClusterMember(soap, NULL, p, "KMS-Discovery-ClusterMember"))
- { if (soap->error != SOAP_NO_TAG)
- return NULL;
- soap->error = SOAP_OK;
- break;
- }
- }
- soap_pop_block(soap, NULL);
- a->__ptr = (struct KMS_Discovery_ClusterMember *)soap_malloc(soap, soap->blist->size);
- soap_save_block(soap, NULL, (char*)a->__ptr, 1);
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Discovery__ArrayOfClusterMembers *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Discovery_KMS_Discovery__ArrayOfClusterMembers, 0, sizeof(struct KMS_Discovery__ArrayOfClusterMembers), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Discovery__ArrayOfClusterMembers(struct soap *soap, const struct KMS_Discovery__ArrayOfClusterMembers *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, (struct soap_array*)&a->__ptr, 1, tag, SOAP_TYPE_KMS_Discovery_KMS_Discovery__ArrayOfClusterMembers);
- if (soap_out_KMS_Discovery__ArrayOfClusterMembers(soap, tag?tag:"SOAP-ENC:Array", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Discovery__ArrayOfClusterMembers * SOAP_FMAC4 soap_get_KMS_Discovery__ArrayOfClusterMembers(struct soap *soap, struct KMS_Discovery__ArrayOfClusterMembers *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Discovery__ArrayOfClusterMembers(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Discovery__ArrayOfClusterMembers * SOAP_FMAC2 soap_instantiate_KMS_Discovery__ArrayOfClusterMembers(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Discovery__ArrayOfClusterMembers(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Discovery_KMS_Discovery__ArrayOfClusterMembers, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Discovery__ArrayOfClusterMembers);
- if (size)
- *size = sizeof(struct KMS_Discovery__ArrayOfClusterMembers);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Discovery__ArrayOfClusterMembers[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Discovery__ArrayOfClusterMembers);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Discovery__ArrayOfClusterMembers*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Discovery__ArrayOfClusterMembers(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Discovery__ArrayOfClusterMembers %p -> %p\n", q, p));
- *(struct KMS_Discovery__ArrayOfClusterMembers*)p = *(struct KMS_Discovery__ArrayOfClusterMembers*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Discovery_ClusterMember(struct soap *soap, struct KMS_Discovery_ClusterMember *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_xsd__long(soap, &a->KMAID);
- soap_default_xsd__string(soap, &a->KMAName);
- soap_default_xsd__string(soap, &a->KMASiteID);
- soap_default_xsd__string(soap, &a->KMAHostName);
- soap_default_xsd__string(soap, &a->KMANetworkAddress);
- soap_default_xsd__boolean(soap, &a->Enabled);
- soap_default_xsd__int(soap, &a->Load);
- soap_default_xsd__boolean(soap, &a->Responding);
- a->KMAVersion = (char *)"";
- a->KMAHostNameIPv6 = (char *)"";
- a->KMANetworkAddressIPv6 = (char *)"";
- a->KMS_Discovery__Locked = (bool)0;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Discovery_ClusterMember(struct soap *soap, const struct KMS_Discovery_ClusterMember *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_xsd__string(soap, &a->KMAName);
- soap_serialize_xsd__string(soap, &a->KMASiteID);
- soap_serialize_xsd__string(soap, &a->KMAHostName);
- soap_serialize_xsd__string(soap, &a->KMANetworkAddress);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Discovery_ClusterMember(struct soap *soap, const char *tag, int id, const struct KMS_Discovery_ClusterMember *a, const char *type)
-{
- if (a->KMAVersion)
- soap_set_attr(soap, "KMAVersion", a->KMAVersion, 1);
- if (a->KMAHostNameIPv6)
- soap_set_attr(soap, "KMAHostNameIPv6", a->KMAHostNameIPv6, 1);
- if (a->KMANetworkAddressIPv6)
- soap_set_attr(soap, "KMANetworkAddressIPv6", a->KMANetworkAddressIPv6, 1);
- soap_set_attr(soap, "KMS-Discovery:Locked", soap_xsd__boolean2s(soap, a->KMS_Discovery__Locked), 1);
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember), type))
- return soap->error;
- if (soap_out_xsd__long(soap, "KMAID", -1, &a->KMAID, "xsd:long"))
- return soap->error;
- if (soap_out_xsd__string(soap, "KMAName", -1, &a->KMAName, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "KMASiteID", -1, &a->KMASiteID, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "KMAHostName", -1, &a->KMAHostName, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__string(soap, "KMANetworkAddress", -1, &a->KMANetworkAddress, "xsd:string"))
- return soap->error;
- if (soap_out_xsd__boolean(soap, "Enabled", -1, &a->Enabled, "xsd:boolean"))
- return soap->error;
- if (soap_out_xsd__int(soap, "Load", -1, &a->Load, "xsd:int"))
- return soap->error;
- if (soap_out_xsd__boolean(soap, "Responding", -1, &a->Responding, "xsd:boolean"))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct KMS_Discovery_ClusterMember * SOAP_FMAC4 soap_in_KMS_Discovery_ClusterMember(struct soap *soap, const char *tag, struct KMS_Discovery_ClusterMember *a, const char *type)
-{
- size_t soap_flag_KMAID = 1;
- size_t soap_flag_KMAName = 1;
- size_t soap_flag_KMASiteID = 1;
- size_t soap_flag_KMAHostName = 1;
- size_t soap_flag_KMANetworkAddress = 1;
- size_t soap_flag_Enabled = 1;
- size_t soap_flag_Load = 1;
- size_t soap_flag_Responding = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct KMS_Discovery_ClusterMember *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember, sizeof(struct KMS_Discovery_ClusterMember), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_KMS_Discovery_ClusterMember(soap, a);
- if (soap_s2string(soap, soap_attr_value(soap, "KMAVersion", 0), &a->KMAVersion, -1, -1))
- return NULL;
- if (soap_s2string(soap, soap_attr_value(soap, "KMAHostNameIPv6", 0), &a->KMAHostNameIPv6, -1, -1))
- return NULL;
- if (soap_s2string(soap, soap_attr_value(soap, "KMANetworkAddressIPv6", 0), &a->KMANetworkAddressIPv6, -1, -1))
- return NULL;
- if (soap_s2xsd__boolean(soap, soap_attr_value(soap, "KMS-Discovery:Locked", 0), &a->KMS_Discovery__Locked))
- return NULL;
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_KMAID && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__long(soap, "KMAID", &a->KMAID, "xsd:long"))
- { soap_flag_KMAID--;
- continue;
- }
- if (soap_flag_KMAName && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "KMAName", &a->KMAName, "xsd:string"))
- { soap_flag_KMAName--;
- continue;
- }
- if (soap_flag_KMASiteID && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "KMASiteID", &a->KMASiteID, "xsd:string"))
- { soap_flag_KMASiteID--;
- continue;
- }
- if (soap_flag_KMAHostName && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "KMAHostName", &a->KMAHostName, "xsd:string"))
- { soap_flag_KMAHostName--;
- continue;
- }
- if (soap_flag_KMANetworkAddress && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_xsd__string(soap, "KMANetworkAddress", &a->KMANetworkAddress, "xsd:string"))
- { soap_flag_KMANetworkAddress--;
- continue;
- }
- if (soap_flag_Enabled && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__boolean(soap, "Enabled", &a->Enabled, "xsd:boolean"))
- { soap_flag_Enabled--;
- continue;
- }
- if (soap_flag_Load && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__int(soap, "Load", &a->Load, "xsd:int"))
- { soap_flag_Load--;
- continue;
- }
- if (soap_flag_Responding && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_xsd__boolean(soap, "Responding", &a->Responding, "xsd:boolean"))
- { soap_flag_Responding--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct KMS_Discovery_ClusterMember *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember, 0, sizeof(struct KMS_Discovery_ClusterMember), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- if ((soap->mode & SOAP_XML_STRICT) && (soap_flag_KMAID > 0 || soap_flag_Enabled > 0 || soap_flag_Load > 0 || soap_flag_Responding > 0))
- { soap->error = SOAP_OCCURS;
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Discovery_ClusterMember(struct soap *soap, const struct KMS_Discovery_ClusterMember *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember);
- if (soap_out_KMS_Discovery_ClusterMember(soap, tag?tag:"KMS-Discovery-ClusterMember", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Discovery_ClusterMember * SOAP_FMAC4 soap_get_KMS_Discovery_ClusterMember(struct soap *soap, struct KMS_Discovery_ClusterMember *p, const char *tag, const char *type)
-{
- if ((p = soap_in_KMS_Discovery_ClusterMember(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct KMS_Discovery_ClusterMember * SOAP_FMAC2 soap_instantiate_KMS_Discovery_ClusterMember(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_KMS_Discovery_ClusterMember(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Discovery_ClusterMember);
- if (size)
- *size = sizeof(struct KMS_Discovery_ClusterMember);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct KMS_Discovery_ClusterMember[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct KMS_Discovery_ClusterMember);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct KMS_Discovery_ClusterMember*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Discovery_ClusterMember(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct KMS_Discovery_ClusterMember %p -> %p\n", q, p));
- *(struct KMS_Discovery_ClusterMember*)p = *(struct KMS_Discovery_ClusterMember*)q;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_xsd__hexBinary(struct soap *soap, struct xsd__hexBinary *a)
-{
- (void)soap; /* appease -Wall -Werror */
- a->__size = 0;
- a->__ptr = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_xsd__hexBinary(struct soap *soap, struct xsd__hexBinary const*a)
-{
- if (a->__ptr)
- soap_array_reference(soap, a, (struct soap_array*)&a->__ptr, 1, SOAP_TYPE_KMS_Discovery_xsd__hexBinary);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__hexBinary(struct soap *soap, const char *tag, int id, const struct xsd__hexBinary *a, const char *type)
-{
- id = soap_element_id(soap, tag, id, a, (struct soap_array*)&a->__ptr, 1, type, SOAP_TYPE_KMS_Discovery_xsd__hexBinary);
- if (id < 0)
- return soap->error;
- if (soap_element_begin_out(soap, tag, id, type))
- return soap->error;
- if (soap_puthex(soap, a->__ptr, a->__size))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct xsd__hexBinary * SOAP_FMAC4 soap_in_xsd__hexBinary(struct soap *soap, const char *tag, struct xsd__hexBinary *a, const char *type)
-{
- (void)type; /* appease -Wall -Werror */
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (*soap->type && soap_match_tag(soap, soap->type, type) && soap_match_tag(soap, soap->type, ":hexBinary"))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- a = (struct xsd__hexBinary *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_KMS_Discovery_xsd__hexBinary, sizeof(struct xsd__hexBinary), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_xsd__hexBinary(soap, a);
- if (soap->body && !*soap->href)
- {
- a->__ptr = soap_gethex(soap, &a->__size);
- if ((!a->__ptr && soap->error) || soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct xsd__hexBinary *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_KMS_Discovery_xsd__hexBinary, 0, sizeof(struct xsd__hexBinary), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__hexBinary(struct soap *soap, const struct xsd__hexBinary *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, (struct soap_array*)&a->__ptr, 1, tag, SOAP_TYPE_KMS_Discovery_xsd__hexBinary);
- if (soap_out_xsd__hexBinary(soap, tag?tag:"SOAP-ENC:Array", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct xsd__hexBinary * SOAP_FMAC4 soap_get_xsd__hexBinary(struct soap *soap, struct xsd__hexBinary *p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__hexBinary(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct xsd__hexBinary * SOAP_FMAC2 soap_instantiate_xsd__hexBinary(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_xsd__hexBinary(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_KMS_Discovery_xsd__hexBinary, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct xsd__hexBinary);
- if (size)
- *size = sizeof(struct xsd__hexBinary);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct xsd__hexBinary[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct xsd__hexBinary);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct xsd__hexBinary*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_xsd__hexBinary(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct xsd__hexBinary %p -> %p\n", q, p));
- *(struct xsd__hexBinary*)p = *(struct xsd__hexBinary*)q;
-}
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Reason))
- soap_serialize_SOAP_ENV__Reason(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Reason(struct soap *soap, const char *tag, int id, struct SOAP_ENV__Reason *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Reason);
- if (id < 0)
- return soap->error;
- return soap_out_SOAP_ENV__Reason(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Reason(struct soap *soap, const char *tag, struct SOAP_ENV__Reason **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct SOAP_ENV__Reason **)soap_malloc(soap, sizeof(struct SOAP_ENV__Reason *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_SOAP_ENV__Reason(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Reason **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Reason, sizeof(struct SOAP_ENV__Reason), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_PointerToSOAP_ENV__Reason);
- if (soap_out_PointerToSOAP_ENV__Reason(soap, tag?tag:"SOAP-ENV:Reason", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToSOAP_ENV__Reason(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Detail))
- soap_serialize_SOAP_ENV__Detail(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Detail(struct soap *soap, const char *tag, int id, struct SOAP_ENV__Detail *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Detail);
- if (id < 0)
- return soap->error;
- return soap_out_SOAP_ENV__Detail(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Detail(struct soap *soap, const char *tag, struct SOAP_ENV__Detail **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct SOAP_ENV__Detail **)soap_malloc(soap, sizeof(struct SOAP_ENV__Detail *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_SOAP_ENV__Detail(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Detail **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Detail, sizeof(struct SOAP_ENV__Detail), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_PointerToSOAP_ENV__Detail);
- if (soap_out_PointerToSOAP_ENV__Detail(soap, tag?tag:"SOAP-ENV:Detail", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToSOAP_ENV__Detail(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Code))
- soap_serialize_SOAP_ENV__Code(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Code(struct soap *soap, const char *tag, int id, struct SOAP_ENV__Code *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Code);
- if (id < 0)
- return soap->error;
- return soap_out_SOAP_ENV__Code(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Code(struct soap *soap, const char *tag, struct SOAP_ENV__Code **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct SOAP_ENV__Code **)soap_malloc(soap, sizeof(struct SOAP_ENV__Code *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_SOAP_ENV__Code(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Code **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_Discovery_SOAP_ENV__Code, sizeof(struct SOAP_ENV__Code), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_PointerToSOAP_ENV__Code);
- if (soap_out_PointerToSOAP_ENV__Code(soap, tag?tag:"SOAP-ENV:Code", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToSOAP_ENV__Code(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#endif
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToKMS_Discovery_ClusterMember(struct soap *soap, struct KMS_Discovery_ClusterMember *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember))
- soap_serialize_KMS_Discovery_ClusterMember(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToKMS_Discovery_ClusterMember(struct soap *soap, const char *tag, int id, struct KMS_Discovery_ClusterMember *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember);
- if (id < 0)
- return soap->error;
- return soap_out_KMS_Discovery_ClusterMember(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct KMS_Discovery_ClusterMember ** SOAP_FMAC4 soap_in_PointerToKMS_Discovery_ClusterMember(struct soap *soap, const char *tag, struct KMS_Discovery_ClusterMember **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct KMS_Discovery_ClusterMember **)soap_malloc(soap, sizeof(struct KMS_Discovery_ClusterMember *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_KMS_Discovery_ClusterMember(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct KMS_Discovery_ClusterMember **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember, sizeof(struct KMS_Discovery_ClusterMember), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToKMS_Discovery_ClusterMember(struct soap *soap, struct KMS_Discovery_ClusterMember *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_PointerToKMS_Discovery_ClusterMember);
- if (soap_out_PointerToKMS_Discovery_ClusterMember(soap, tag?tag:"KMS-Discovery-ClusterMember", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct KMS_Discovery_ClusterMember ** SOAP_FMAC4 soap_get_PointerToKMS_Discovery_ClusterMember(struct soap *soap, struct KMS_Discovery_ClusterMember **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToKMS_Discovery_ClusterMember(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerTounsignedByte(struct soap *soap, unsigned char *const*a)
-{
- soap_reference(soap, *a, SOAP_TYPE_KMS_Discovery_unsignedByte);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerTounsignedByte(struct soap *soap, const char *tag, int id, unsigned char *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_KMS_Discovery_unsignedByte);
- if (id < 0)
- return soap->error;
- return soap_out_unsignedByte(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 unsigned char ** SOAP_FMAC4 soap_in_PointerTounsignedByte(struct soap *soap, const char *tag, unsigned char **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (unsigned char **)soap_malloc(soap, sizeof(unsigned char *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_unsignedByte(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (unsigned char **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_KMS_Discovery_unsignedByte, sizeof(unsigned char), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerTounsignedByte(struct soap *soap, unsigned char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_PointerTounsignedByte);
- if (soap_out_PointerTounsignedByte(soap, tag?tag:"unsignedByte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 unsigned char ** SOAP_FMAC4 soap_get_PointerTounsignedByte(struct soap *soap, unsigned char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerTounsignedByte(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__networkAddress(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_Discovery_xsd__networkAddress);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__networkAddress(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_Discovery_xsd__networkAddress, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__networkAddress(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_xsd__networkAddress);
- if (soap_out_xsd__networkAddress(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__networkAddress(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__networkAddress(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__kmaVersion(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_Discovery_xsd__kmaVersion);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__kmaVersion(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_Discovery_xsd__kmaVersion, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__kmaVersion(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_xsd__kmaVersion);
- if (soap_out_xsd__kmaVersion(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__kmaVersion(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__kmaVersion(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__duration(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_Discovery_xsd__duration);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__duration(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_Discovery_xsd__duration, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__duration(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_xsd__duration);
- if (soap_out_xsd__duration(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__duration(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__duration(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__dateTime(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_Discovery_xsd__dateTime);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__dateTime(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_Discovery_xsd__dateTime, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__dateTime(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_xsd__dateTime);
- if (soap_out_xsd__dateTime(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__dateTime(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__dateTime(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__string(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_Discovery_xsd__string);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__string(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_Discovery_xsd__string, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__string(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_xsd__string);
- if (soap_out_xsd__string(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__string(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_xsd__string(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out__QName(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_Discovery__QName);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in__QName(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_Discovery__QName, 2, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put__QName(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery__QName);
- if (soap_out__QName(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get__QName(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in__QName(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_string(struct soap *soap, char **a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_string
- *a = SOAP_DEFAULT_string;
-#else
- *a = (char *)0;
-#endif
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_string(struct soap *soap, char *const*a)
-{
- soap_reference(soap, *a, SOAP_TYPE_KMS_Discovery_string);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_string(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_KMS_Discovery_string);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_string(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_KMS_Discovery_string, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_string(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_KMS_Discovery_string);
- if (soap_out_string(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_string(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_string(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-} // namespace KMS_Discovery
-
-
-#if defined(__BORLANDC__)
-#pragma option pop
-#pragma option pop
-#endif
-
-/* End of KMS_DiscoveryC.cpp */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_DiscoveryClient.cpp b/usr/src/lib/libkmsagent/common/SOAP/KMS_DiscoveryClient.cpp
deleted file mode 100644
index 5e3341003a..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_DiscoveryClient.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* KMS_DiscoveryClient.cpp
- Generated by gSOAP 2.7.17 from ../gsoapStubs/DiscoveryService/KMS_Discovery_SOAP.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#if defined(__BORLANDC__)
-#pragma option push -w-8060
-#pragma option push -w-8004
-#endif
-#include "KMS_DiscoveryH.h"
-
-namespace KMS_Discovery {
-
-SOAP_SOURCE_STAMP("@(#) KMS_DiscoveryClient.cpp ver 2.7.17 2010-06-08 19:16:38 GMT")
-
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Discovery__DiscoverCluster(struct soap *soap, const char *soap_endpoint, const char *soap_action, void *_, struct KMS_Discovery__DiscoverClusterResponse &result)
-{ struct KMS_Discovery__DiscoverCluster soap_tmp_KMS_Discovery__DiscoverCluster;
- soap_tmp_KMS_Discovery__DiscoverCluster._ = _;
- soap_begin(soap);
- soap_serializeheader(soap);
- soap_serialize_KMS_Discovery__DiscoverCluster(soap, &soap_tmp_KMS_Discovery__DiscoverCluster);
- if (soap_begin_count(soap))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Discovery__DiscoverCluster(soap, &soap_tmp_KMS_Discovery__DiscoverCluster, "KMS-Discovery:DiscoverCluster", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap->error;
- }
- if (soap_end_count(soap))
- return soap->error;
- if (soap_connect(soap, soap_endpoint, soap_action)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_put_KMS_Discovery__DiscoverCluster(soap, &soap_tmp_KMS_Discovery__DiscoverCluster, "KMS-Discovery:DiscoverCluster", NULL)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap)
- || soap_end_send(soap))
- return soap_closesock(soap);
- if (!&result)
- return soap_closesock(soap);
- soap_default_KMS_Discovery__DiscoverClusterResponse(soap, &result);
- if (soap_begin_recv(soap)
- || soap_envelope_begin_in(soap)
- || soap_recv_header(soap)
- || soap_body_begin_in(soap))
- return soap_closesock(soap);
- if (soap_recv_fault(soap, 1))
- return soap->error;
- soap_get_KMS_Discovery__DiscoverClusterResponse(soap, &result, "", "");
- if (soap->error)
- return soap_recv_fault(soap, 0);
- if (soap_body_end_in(soap)
- || soap_envelope_end_in(soap)
- || soap_end_recv(soap))
- return soap_closesock(soap);
- return soap_closesock(soap);
-}
-
-} // namespace KMS_Discovery
-
-
-#if defined(__BORLANDC__)
-#pragma option pop
-#pragma option pop
-#endif
-
-/* End of KMS_DiscoveryClient.cpp */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_DiscoveryH.h b/usr/src/lib/libkmsagent/common/SOAP/KMS_DiscoveryH.h
deleted file mode 100644
index 0cffb3ac19..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_DiscoveryH.h
+++ /dev/null
@@ -1,757 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* KMS_DiscoveryH.h
- Generated by gSOAP 2.7.17 from ../gsoapStubs/DiscoveryService/KMS_Discovery_SOAP.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#ifndef KMS_DiscoveryH_H
-#define KMS_DiscoveryH_H
-#include "KMS_DiscoveryStub.h"
-
-namespace KMS_Discovery {
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 void SOAP_FMAC4 soap_markelement(struct soap*, const void*, int);
-SOAP_FMAC3 int SOAP_FMAC4 soap_putelement(struct soap*, const void*, const char*, int, int);
-SOAP_FMAC3 void *SOAP_FMAC4 soap_getelement(struct soap*, int*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_putindependent(struct soap*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_getindependent(struct soap*);
-#endif
-SOAP_FMAC3 int SOAP_FMAC4 soap_ignore_element(struct soap*);
-
-SOAP_FMAC3 void * SOAP_FMAC4 soap_instantiate(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_fdelete(struct soap_clist*);
-SOAP_FMAC3 void* SOAP_FMAC4 soap_class_id_enter(struct soap*, const char*, void*, int, size_t, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_byte
-#define SOAP_TYPE_KMS_Discovery_byte (3)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_byte(struct soap*, char *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_byte(struct soap*, const char*, int, const char *, const char*);
-SOAP_FMAC3 char * SOAP_FMAC4 soap_in_byte(struct soap*, const char*, char *, const char*);
-
-#define soap_write_byte(soap, data) ( soap_begin_send(soap) || KMS_Discovery::soap_put_byte(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_byte(struct soap*, const char *, const char*, const char*);
-
-#define soap_read_byte(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_byte(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char * SOAP_FMAC4 soap_get_byte(struct soap*, char *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_int
-#define SOAP_TYPE_KMS_Discovery_int (1)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_int(struct soap*, int *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_int(struct soap*, const char*, int, const int *, const char*);
-SOAP_FMAC3 int * SOAP_FMAC4 soap_in_int(struct soap*, const char*, int *, const char*);
-
-#define soap_write_int(soap, data) ( soap_begin_send(soap) || KMS_Discovery::soap_put_int(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_int(struct soap*, const int *, const char*, const char*);
-
-#define soap_read_int(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_int(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 int * SOAP_FMAC4 soap_get_int(struct soap*, int *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__int
-#define SOAP_TYPE_KMS_Discovery_xsd__int (11)
-#endif
-
-#define soap_default_xsd__int(soap, a) soap_default_long(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__int(struct soap*, const char*, int, const long *, const char*);
-SOAP_FMAC3 long * SOAP_FMAC4 soap_in_xsd__int(struct soap*, const char*, long *, const char*);
-
-#define soap_write_xsd__int(soap, data) ( soap_begin_send(soap) || KMS_Discovery::soap_put_xsd__int(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__int(struct soap*, const long *, const char*, const char*);
-
-#define soap_read_xsd__int(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_xsd__int(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_get_xsd__int(struct soap*, long *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_long
-#define SOAP_TYPE_KMS_Discovery_long (10)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_long(struct soap*, long *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_long(struct soap*, const char*, int, const long *, const char*);
-SOAP_FMAC3 long * SOAP_FMAC4 soap_in_long(struct soap*, const char*, long *, const char*);
-
-#define soap_write_long(soap, data) ( soap_begin_send(soap) || KMS_Discovery::soap_put_long(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_long(struct soap*, const long *, const char*, const char*);
-
-#define soap_read_long(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_long(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 long * SOAP_FMAC4 soap_get_long(struct soap*, long *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__long
-#define SOAP_TYPE_KMS_Discovery_xsd__long (15)
-#endif
-
-#define soap_default_xsd__long(soap, a) soap_default_LONG64(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__long(struct soap*, const char*, int, const LONG64 *, const char*);
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_in_xsd__long(struct soap*, const char*, LONG64 *, const char*);
-
-#define soap_write_xsd__long(soap, data) ( soap_begin_send(soap) || KMS_Discovery::soap_put_xsd__long(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__long(struct soap*, const LONG64 *, const char*, const char*);
-
-#define soap_read_xsd__long(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_xsd__long(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_get_xsd__long(struct soap*, LONG64 *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_LONG64
-#define SOAP_TYPE_KMS_Discovery_LONG64 (14)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_LONG64(struct soap*, LONG64 *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_LONG64(struct soap*, const char*, int, const LONG64 *, const char*);
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_in_LONG64(struct soap*, const char*, LONG64 *, const char*);
-
-#define soap_write_LONG64(soap, data) ( soap_begin_send(soap) || KMS_Discovery::soap_put_LONG64(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_LONG64(struct soap*, const LONG64 *, const char*, const char*);
-
-#define soap_read_LONG64(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_LONG64(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 LONG64 * SOAP_FMAC4 soap_get_LONG64(struct soap*, LONG64 *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__float
-#define SOAP_TYPE_KMS_Discovery_xsd__float (9)
-#endif
-
-#define soap_default_xsd__float(soap, a) soap_default_float(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__float(struct soap*, const char*, int, const float *, const char*);
-SOAP_FMAC3 float * SOAP_FMAC4 soap_in_xsd__float(struct soap*, const char*, float *, const char*);
-
-#define soap_write_xsd__float(soap, data) ( soap_begin_send(soap) || KMS_Discovery::soap_put_xsd__float(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__float(struct soap*, const float *, const char*, const char*);
-
-#define soap_read_xsd__float(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_xsd__float(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_get_xsd__float(struct soap*, float *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_float
-#define SOAP_TYPE_KMS_Discovery_float (8)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_float(struct soap*, float *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_float(struct soap*, const char*, int, const float *, const char*);
-SOAP_FMAC3 float * SOAP_FMAC4 soap_in_float(struct soap*, const char*, float *, const char*);
-
-#define soap_write_float(soap, data) ( soap_begin_send(soap) || KMS_Discovery::soap_put_float(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_float(struct soap*, const float *, const char*, const char*);
-
-#define soap_read_float(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_float(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 float * SOAP_FMAC4 soap_get_float(struct soap*, float *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_unsignedByte
-#define SOAP_TYPE_KMS_Discovery_unsignedByte (22)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_unsignedByte(struct soap*, unsigned char *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_unsignedByte(struct soap*, const char*, int, const unsigned char *, const char*);
-SOAP_FMAC3 unsigned char * SOAP_FMAC4 soap_in_unsignedByte(struct soap*, const char*, unsigned char *, const char*);
-
-#define soap_write_unsignedByte(soap, data) ( soap_begin_send(soap) || KMS_Discovery::soap_put_unsignedByte(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_unsignedByte(struct soap*, const unsigned char *, const char*, const char*);
-
-#define soap_read_unsignedByte(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_unsignedByte(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 unsigned char * SOAP_FMAC4 soap_get_unsignedByte(struct soap*, unsigned char *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_unsignedInt
-#define SOAP_TYPE_KMS_Discovery_unsignedInt (21)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_unsignedInt(struct soap*, unsigned int *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_unsignedInt(struct soap*, const char*, int, const unsigned int *, const char*);
-SOAP_FMAC3 unsigned int * SOAP_FMAC4 soap_in_unsignedInt(struct soap*, const char*, unsigned int *, const char*);
-
-#define soap_write_unsignedInt(soap, data) ( soap_begin_send(soap) || KMS_Discovery::soap_put_unsignedInt(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_unsignedInt(struct soap*, const unsigned int *, const char*, const char*);
-
-#define soap_read_unsignedInt(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_unsignedInt(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 unsigned int * SOAP_FMAC4 soap_get_unsignedInt(struct soap*, unsigned int *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__boolean
-#define SOAP_TYPE_KMS_Discovery_xsd__boolean (13)
-#endif
-
-#define soap_default_xsd__boolean(soap, a) soap_default_bool(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__boolean(struct soap*, const char*, int, const bool *, const char*);
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_xsd__boolean2s(struct soap*, bool);
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_in_xsd__boolean(struct soap*, const char*, bool *, const char*);
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2xsd__boolean(struct soap*, const char*, bool *);
-
-#define soap_write_xsd__boolean(soap, data) ( soap_begin_send(soap) || KMS_Discovery::soap_put_xsd__boolean(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__boolean(struct soap*, const bool *, const char*, const char*);
-
-#define soap_read_xsd__boolean(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_xsd__boolean(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_get_xsd__boolean(struct soap*, bool *, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_bool
-#define SOAP_TYPE_KMS_Discovery_bool (12)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_bool(struct soap*, bool *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_bool(struct soap*, const char*, int, const bool *, const char*);
-
-SOAP_FMAC3S const char* SOAP_FMAC4S soap_bool2s(struct soap*, bool);
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_in_bool(struct soap*, const char*, bool *, const char*);
-
-SOAP_FMAC3S int SOAP_FMAC4S soap_s2bool(struct soap*, const char*, bool *);
-
-#define soap_write_bool(soap, data) ( soap_begin_send(soap) || KMS_Discovery::soap_put_bool(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_bool(struct soap*, const bool *, const char*, const char*);
-
-#define soap_read_bool(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_bool(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 bool * SOAP_FMAC4 soap_get_bool(struct soap*, bool *, const char*, const char*);
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Discovery_SOAP_ENV__Fault
-#define SOAP_TYPE_KMS_Discovery_SOAP_ENV__Fault (38)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Fault(struct soap*, struct SOAP_ENV__Fault *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Fault(struct soap*, const struct SOAP_ENV__Fault *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Fault(struct soap*, const char*, int, const struct SOAP_ENV__Fault *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_in_SOAP_ENV__Fault(struct soap*, const char*, struct SOAP_ENV__Fault *, const char*);
-
-#define soap_write_SOAP_ENV__Fault(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_SOAP_ENV__Fault(soap, data), 0) || KMS_Discovery::soap_put_SOAP_ENV__Fault(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Fault(struct soap*, const struct SOAP_ENV__Fault *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Fault(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_SOAP_ENV__Fault(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_get_SOAP_ENV__Fault(struct soap*, struct SOAP_ENV__Fault *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Fault(soap, n) soap_instantiate_SOAP_ENV__Fault(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Fault(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Fault * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Fault(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Fault(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Discovery_SOAP_ENV__Reason
-#define SOAP_TYPE_KMS_Discovery_SOAP_ENV__Reason (37)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Reason(struct soap*, const struct SOAP_ENV__Reason *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Reason(struct soap*, const char*, int, const struct SOAP_ENV__Reason *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_in_SOAP_ENV__Reason(struct soap*, const char*, struct SOAP_ENV__Reason *, const char*);
-
-#define soap_write_SOAP_ENV__Reason(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_SOAP_ENV__Reason(soap, data), 0) || KMS_Discovery::soap_put_SOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Reason(struct soap*, const struct SOAP_ENV__Reason *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Reason(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_SOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_get_SOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Reason(soap, n) soap_instantiate_SOAP_ENV__Reason(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Reason(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Reason * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Reason(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Reason(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Discovery_SOAP_ENV__Detail
-#define SOAP_TYPE_KMS_Discovery_SOAP_ENV__Detail (36)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Detail(struct soap*, const struct SOAP_ENV__Detail *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Detail(struct soap*, const char*, int, const struct SOAP_ENV__Detail *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_in_SOAP_ENV__Detail(struct soap*, const char*, struct SOAP_ENV__Detail *, const char*);
-
-#define soap_write_SOAP_ENV__Detail(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_SOAP_ENV__Detail(soap, data), 0) || KMS_Discovery::soap_put_SOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Detail(struct soap*, const struct SOAP_ENV__Detail *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Detail(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_SOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_get_SOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Detail(soap, n) soap_instantiate_SOAP_ENV__Detail(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Detail(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Detail * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Detail(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Detail(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Discovery_SOAP_ENV__Code
-#define SOAP_TYPE_KMS_Discovery_SOAP_ENV__Code (34)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Code(struct soap*, const struct SOAP_ENV__Code *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Code(struct soap*, const char*, int, const struct SOAP_ENV__Code *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_in_SOAP_ENV__Code(struct soap*, const char*, struct SOAP_ENV__Code *, const char*);
-
-#define soap_write_SOAP_ENV__Code(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_SOAP_ENV__Code(soap, data), 0) || KMS_Discovery::soap_put_SOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Code(struct soap*, const struct SOAP_ENV__Code *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Code(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_SOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_get_SOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Code(soap, n) soap_instantiate_SOAP_ENV__Code(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Code(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Code * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Code(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Code(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Discovery_SOAP_ENV__Header
-#define SOAP_TYPE_KMS_Discovery_SOAP_ENV__Header (33)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Header(struct soap*, struct SOAP_ENV__Header *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Header(struct soap*, const struct SOAP_ENV__Header *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Header(struct soap*, const char*, int, const struct SOAP_ENV__Header *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_in_SOAP_ENV__Header(struct soap*, const char*, struct SOAP_ENV__Header *, const char*);
-
-#define soap_write_SOAP_ENV__Header(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_SOAP_ENV__Header(soap, data), 0) || KMS_Discovery::soap_put_SOAP_ENV__Header(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Header(struct soap*, const struct SOAP_ENV__Header *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Header(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_SOAP_ENV__Header(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_get_SOAP_ENV__Header(struct soap*, struct SOAP_ENV__Header *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Header(soap, n) soap_instantiate_SOAP_ENV__Header(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Header(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Header * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Header(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Header(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverCluster
-#define SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverCluster (32)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Discovery__DiscoverCluster(struct soap*, struct KMS_Discovery__DiscoverCluster *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Discovery__DiscoverCluster(struct soap*, const struct KMS_Discovery__DiscoverCluster *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Discovery__DiscoverCluster(struct soap*, const char*, int, const struct KMS_Discovery__DiscoverCluster *, const char*);
-SOAP_FMAC3 struct KMS_Discovery__DiscoverCluster * SOAP_FMAC4 soap_in_KMS_Discovery__DiscoverCluster(struct soap*, const char*, struct KMS_Discovery__DiscoverCluster *, const char*);
-
-#define soap_write_KMS_Discovery__DiscoverCluster(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_KMS_Discovery__DiscoverCluster(soap, data), 0) || KMS_Discovery::soap_put_KMS_Discovery__DiscoverCluster(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Discovery__DiscoverCluster(struct soap*, const struct KMS_Discovery__DiscoverCluster *, const char*, const char*);
-
-#define soap_read_KMS_Discovery__DiscoverCluster(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_KMS_Discovery__DiscoverCluster(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Discovery__DiscoverCluster * SOAP_FMAC4 soap_get_KMS_Discovery__DiscoverCluster(struct soap*, struct KMS_Discovery__DiscoverCluster *, const char*, const char*);
-
-#define soap_new_KMS_Discovery__DiscoverCluster(soap, n) soap_instantiate_KMS_Discovery__DiscoverCluster(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Discovery__DiscoverCluster(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Discovery__DiscoverCluster * SOAP_FMAC2 soap_instantiate_KMS_Discovery__DiscoverCluster(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Discovery__DiscoverCluster(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverClusterResponse
-#define SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverClusterResponse (29)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Discovery__DiscoverClusterResponse(struct soap*, struct KMS_Discovery__DiscoverClusterResponse *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Discovery__DiscoverClusterResponse(struct soap*, const struct KMS_Discovery__DiscoverClusterResponse *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Discovery__DiscoverClusterResponse(struct soap*, const char*, int, const struct KMS_Discovery__DiscoverClusterResponse *, const char*);
-SOAP_FMAC3 struct KMS_Discovery__DiscoverClusterResponse * SOAP_FMAC4 soap_in_KMS_Discovery__DiscoverClusterResponse(struct soap*, const char*, struct KMS_Discovery__DiscoverClusterResponse *, const char*);
-
-#define soap_write_KMS_Discovery__DiscoverClusterResponse(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_KMS_Discovery__DiscoverClusterResponse(soap, data), 0) || KMS_Discovery::soap_put_KMS_Discovery__DiscoverClusterResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Discovery__DiscoverClusterResponse(struct soap*, const struct KMS_Discovery__DiscoverClusterResponse *, const char*, const char*);
-
-#define soap_read_KMS_Discovery__DiscoverClusterResponse(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_KMS_Discovery__DiscoverClusterResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Discovery__DiscoverClusterResponse * SOAP_FMAC4 soap_get_KMS_Discovery__DiscoverClusterResponse(struct soap*, struct KMS_Discovery__DiscoverClusterResponse *, const char*, const char*);
-
-#define soap_new_KMS_Discovery__DiscoverClusterResponse(soap, n) soap_instantiate_KMS_Discovery__DiscoverClusterResponse(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Discovery__DiscoverClusterResponse(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Discovery__DiscoverClusterResponse * SOAP_FMAC2 soap_instantiate_KMS_Discovery__DiscoverClusterResponse(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Discovery__DiscoverClusterResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Discovery_KMS_Discovery__ArrayOfClusterMembers
-#define SOAP_TYPE_KMS_Discovery_KMS_Discovery__ArrayOfClusterMembers (25)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Discovery__ArrayOfClusterMembers(struct soap*, struct KMS_Discovery__ArrayOfClusterMembers *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Discovery__ArrayOfClusterMembers(struct soap*, struct KMS_Discovery__ArrayOfClusterMembers const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Discovery__ArrayOfClusterMembers(struct soap*, const char*, int, const struct KMS_Discovery__ArrayOfClusterMembers *, const char*);
-SOAP_FMAC3 struct KMS_Discovery__ArrayOfClusterMembers * SOAP_FMAC4 soap_in_KMS_Discovery__ArrayOfClusterMembers(struct soap*, const char*, struct KMS_Discovery__ArrayOfClusterMembers *, const char*);
-
-#define soap_write_KMS_Discovery__ArrayOfClusterMembers(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_KMS_Discovery__ArrayOfClusterMembers(soap, data), 0) || KMS_Discovery::soap_put_KMS_Discovery__ArrayOfClusterMembers(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Discovery__ArrayOfClusterMembers(struct soap*, const struct KMS_Discovery__ArrayOfClusterMembers *, const char*, const char*);
-
-#define soap_read_KMS_Discovery__ArrayOfClusterMembers(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_KMS_Discovery__ArrayOfClusterMembers(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Discovery__ArrayOfClusterMembers * SOAP_FMAC4 soap_get_KMS_Discovery__ArrayOfClusterMembers(struct soap*, struct KMS_Discovery__ArrayOfClusterMembers *, const char*, const char*);
-
-#define soap_new_KMS_Discovery__ArrayOfClusterMembers(soap, n) soap_instantiate_KMS_Discovery__ArrayOfClusterMembers(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Discovery__ArrayOfClusterMembers(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Discovery__ArrayOfClusterMembers * SOAP_FMAC2 soap_instantiate_KMS_Discovery__ArrayOfClusterMembers(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Discovery__ArrayOfClusterMembers(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember
-#define SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember (24)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_KMS_Discovery_ClusterMember(struct soap*, struct KMS_Discovery_ClusterMember *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_KMS_Discovery_ClusterMember(struct soap*, const struct KMS_Discovery_ClusterMember *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_KMS_Discovery_ClusterMember(struct soap*, const char*, int, const struct KMS_Discovery_ClusterMember *, const char*);
-SOAP_FMAC3 struct KMS_Discovery_ClusterMember * SOAP_FMAC4 soap_in_KMS_Discovery_ClusterMember(struct soap*, const char*, struct KMS_Discovery_ClusterMember *, const char*);
-
-#define soap_write_KMS_Discovery_ClusterMember(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_KMS_Discovery_ClusterMember(soap, data), 0) || KMS_Discovery::soap_put_KMS_Discovery_ClusterMember(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_KMS_Discovery_ClusterMember(struct soap*, const struct KMS_Discovery_ClusterMember *, const char*, const char*);
-
-#define soap_read_KMS_Discovery_ClusterMember(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_KMS_Discovery_ClusterMember(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Discovery_ClusterMember * SOAP_FMAC4 soap_get_KMS_Discovery_ClusterMember(struct soap*, struct KMS_Discovery_ClusterMember *, const char*, const char*);
-
-#define soap_new_KMS_Discovery_ClusterMember(soap, n) soap_instantiate_KMS_Discovery_ClusterMember(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_KMS_Discovery_ClusterMember(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct KMS_Discovery_ClusterMember * SOAP_FMAC2 soap_instantiate_KMS_Discovery_ClusterMember(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_KMS_Discovery_ClusterMember(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__hexBinary
-#define SOAP_TYPE_KMS_Discovery_xsd__hexBinary (20)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_xsd__hexBinary(struct soap*, struct xsd__hexBinary *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_xsd__hexBinary(struct soap*, struct xsd__hexBinary const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__hexBinary(struct soap*, const char*, int, const struct xsd__hexBinary *, const char*);
-SOAP_FMAC3 struct xsd__hexBinary * SOAP_FMAC4 soap_in_xsd__hexBinary(struct soap*, const char*, struct xsd__hexBinary *, const char*);
-
-#define soap_write_xsd__hexBinary(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_xsd__hexBinary(soap, data), 0) || KMS_Discovery::soap_put_xsd__hexBinary(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__hexBinary(struct soap*, const struct xsd__hexBinary *, const char*, const char*);
-
-#define soap_read_xsd__hexBinary(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_xsd__hexBinary(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct xsd__hexBinary * SOAP_FMAC4 soap_get_xsd__hexBinary(struct soap*, struct xsd__hexBinary *, const char*, const char*);
-
-#define soap_new_xsd__hexBinary(soap, n) soap_instantiate_xsd__hexBinary(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_xsd__hexBinary(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct xsd__hexBinary * SOAP_FMAC2 soap_instantiate_xsd__hexBinary(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_xsd__hexBinary(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Discovery_PointerToSOAP_ENV__Reason
-#define SOAP_TYPE_KMS_Discovery_PointerToSOAP_ENV__Reason (40)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Reason(struct soap*, const char *, int, struct SOAP_ENV__Reason *const*, const char *);
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Reason(struct soap*, const char*, struct SOAP_ENV__Reason **, const char*);
-
-#define soap_write_PointerToSOAP_ENV__Reason(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_PointerToSOAP_ENV__Reason(soap, data), 0) || KMS_Discovery::soap_put_PointerToSOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *const*, const char*, const char*);
-
-#define soap_read_PointerToSOAP_ENV__Reason(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_PointerToSOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason **, const char*, const char*);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Discovery_PointerToSOAP_ENV__Detail
-#define SOAP_TYPE_KMS_Discovery_PointerToSOAP_ENV__Detail (39)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Detail(struct soap*, const char *, int, struct SOAP_ENV__Detail *const*, const char *);
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Detail(struct soap*, const char*, struct SOAP_ENV__Detail **, const char*);
-
-#define soap_write_PointerToSOAP_ENV__Detail(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_PointerToSOAP_ENV__Detail(soap, data), 0) || KMS_Discovery::soap_put_PointerToSOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *const*, const char*, const char*);
-
-#define soap_read_PointerToSOAP_ENV__Detail(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_PointerToSOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail **, const char*, const char*);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_KMS_Discovery_PointerToSOAP_ENV__Code
-#define SOAP_TYPE_KMS_Discovery_PointerToSOAP_ENV__Code (35)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Code(struct soap*, const char *, int, struct SOAP_ENV__Code *const*, const char *);
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Code(struct soap*, const char*, struct SOAP_ENV__Code **, const char*);
-
-#define soap_write_PointerToSOAP_ENV__Code(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_PointerToSOAP_ENV__Code(soap, data), 0) || KMS_Discovery::soap_put_PointerToSOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *const*, const char*, const char*);
-
-#define soap_read_PointerToSOAP_ENV__Code(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_PointerToSOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code **, const char*, const char*);
-
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_PointerToKMS_Discovery_ClusterMember
-#define SOAP_TYPE_KMS_Discovery_PointerToKMS_Discovery_ClusterMember (26)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToKMS_Discovery_ClusterMember(struct soap*, struct KMS_Discovery_ClusterMember *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToKMS_Discovery_ClusterMember(struct soap*, const char *, int, struct KMS_Discovery_ClusterMember *const*, const char *);
-SOAP_FMAC3 struct KMS_Discovery_ClusterMember ** SOAP_FMAC4 soap_in_PointerToKMS_Discovery_ClusterMember(struct soap*, const char*, struct KMS_Discovery_ClusterMember **, const char*);
-
-#define soap_write_PointerToKMS_Discovery_ClusterMember(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_PointerToKMS_Discovery_ClusterMember(soap, data), 0) || KMS_Discovery::soap_put_PointerToKMS_Discovery_ClusterMember(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToKMS_Discovery_ClusterMember(struct soap*, struct KMS_Discovery_ClusterMember *const*, const char*, const char*);
-
-#define soap_read_PointerToKMS_Discovery_ClusterMember(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_PointerToKMS_Discovery_ClusterMember(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct KMS_Discovery_ClusterMember ** SOAP_FMAC4 soap_get_PointerToKMS_Discovery_ClusterMember(struct soap*, struct KMS_Discovery_ClusterMember **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_PointerTounsignedByte
-#define SOAP_TYPE_KMS_Discovery_PointerTounsignedByte (23)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerTounsignedByte(struct soap*, unsigned char *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerTounsignedByte(struct soap*, const char *, int, unsigned char *const*, const char *);
-SOAP_FMAC3 unsigned char ** SOAP_FMAC4 soap_in_PointerTounsignedByte(struct soap*, const char*, unsigned char **, const char*);
-
-#define soap_write_PointerTounsignedByte(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_PointerTounsignedByte(soap, data), 0) || KMS_Discovery::soap_put_PointerTounsignedByte(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerTounsignedByte(struct soap*, unsigned char *const*, const char*, const char*);
-
-#define soap_read_PointerTounsignedByte(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_PointerTounsignedByte(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 unsigned char ** SOAP_FMAC4 soap_get_PointerTounsignedByte(struct soap*, unsigned char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__networkAddress
-#define SOAP_TYPE_KMS_Discovery_xsd__networkAddress (19)
-#endif
-
-#define soap_default_xsd__networkAddress(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize_xsd__networkAddress(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__networkAddress(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__networkAddress(struct soap*, const char*, char **, const char*);
-
-#define soap_write_xsd__networkAddress(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_xsd__networkAddress(soap, data), 0) || KMS_Discovery::soap_put_xsd__networkAddress(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__networkAddress(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_xsd__networkAddress(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_xsd__networkAddress(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__networkAddress(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__kmaVersion
-#define SOAP_TYPE_KMS_Discovery_xsd__kmaVersion (18)
-#endif
-
-#define soap_default_xsd__kmaVersion(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize_xsd__kmaVersion(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__kmaVersion(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__kmaVersion(struct soap*, const char*, char **, const char*);
-
-#define soap_write_xsd__kmaVersion(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_xsd__kmaVersion(soap, data), 0) || KMS_Discovery::soap_put_xsd__kmaVersion(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__kmaVersion(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_xsd__kmaVersion(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_xsd__kmaVersion(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__kmaVersion(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__duration
-#define SOAP_TYPE_KMS_Discovery_xsd__duration (17)
-#endif
-
-#define soap_default_xsd__duration(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize_xsd__duration(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__duration(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__duration(struct soap*, const char*, char **, const char*);
-
-#define soap_write_xsd__duration(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_xsd__duration(soap, data), 0) || KMS_Discovery::soap_put_xsd__duration(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__duration(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_xsd__duration(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_xsd__duration(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__duration(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__dateTime
-#define SOAP_TYPE_KMS_Discovery_xsd__dateTime (16)
-#endif
-
-#define soap_default_xsd__dateTime(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize_xsd__dateTime(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__dateTime(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__dateTime(struct soap*, const char*, char **, const char*);
-
-#define soap_write_xsd__dateTime(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_xsd__dateTime(soap, data), 0) || KMS_Discovery::soap_put_xsd__dateTime(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__dateTime(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_xsd__dateTime(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_xsd__dateTime(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__dateTime(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__string
-#define SOAP_TYPE_KMS_Discovery_xsd__string (7)
-#endif
-
-#define soap_default_xsd__string(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize_xsd__string(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__string(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_xsd__string(struct soap*, const char*, char **, const char*);
-
-#define soap_write_xsd__string(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_xsd__string(soap, data), 0) || KMS_Discovery::soap_put_xsd__string(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__string(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_xsd__string(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_xsd__string(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_xsd__string(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery__QName
-#define SOAP_TYPE_KMS_Discovery__QName (5)
-#endif
-
-#define soap_default__QName(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize__QName(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out__QName(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in__QName(struct soap*, const char*, char **, const char*);
-
-#define soap_write__QName(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize__QName(soap, data), 0) || KMS_Discovery::soap_put__QName(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put__QName(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read__QName(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get__QName(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get__QName(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_KMS_Discovery_string
-#define SOAP_TYPE_KMS_Discovery_string (4)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_string(struct soap*, char **);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_string(struct soap*, char *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_string(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_string(struct soap*, const char*, char **, const char*);
-
-#define soap_write_string(soap, data) ( soap_begin_send(soap) || (KMS_Discovery::soap_serialize_string(soap, data), 0) || KMS_Discovery::soap_put_string(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_string(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_string(soap, data) ( soap_begin_recv(soap) || !KMS_Discovery::soap_get_string(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_string(struct soap*, char **, const char*, const char*);
-
-} // namespace KMS_Discovery
-
-
-#endif
-
-/* End of KMS_DiscoveryH.h */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/KMS_DiscoveryStub.h b/usr/src/lib/libkmsagent/common/SOAP/KMS_DiscoveryStub.h
deleted file mode 100644
index d91409eb3d..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/KMS_DiscoveryStub.h
+++ /dev/null
@@ -1,301 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* KMS_DiscoveryStub.h
- Generated by gSOAP 2.7.17 from ../gsoapStubs/DiscoveryService/KMS_Discovery_SOAP.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#ifndef KMS_DiscoveryStub_H
-#define KMS_DiscoveryStub_H
-#ifndef WITH_NONAMESPACES
-#define WITH_NONAMESPACES
-#endif
-#ifndef WITH_NOGLOBAL
-#define WITH_NOGLOBAL
-#endif
-#include "stdsoap2.h"
-
-namespace KMS_Discovery {
-
-/******************************************************************************\
- * *
- * Enumerations *
- * *
-\******************************************************************************/
-
-
-/******************************************************************************\
- * *
- * Types with Custom Serializers *
- * *
-\******************************************************************************/
-
-
-/******************************************************************************\
- * *
- * Classes and Structs *
- * *
-\******************************************************************************/
-
-
-#if 0 /* volatile type: do not declare here, declared elsewhere */
-
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__hexBinary
-#define SOAP_TYPE_KMS_Discovery_xsd__hexBinary (20)
-/* hexBinary schema type: */
-struct xsd__hexBinary
-{
-public:
- unsigned char *__ptr;
- int __size;
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember
-#define SOAP_TYPE_KMS_Discovery_KMS_Discovery_ClusterMember (24)
-/* KMS-Discovery-ClusterMember */
-struct KMS_Discovery_ClusterMember
-{
-public:
- LONG64 KMAID; /* required element of type xsd:long */
- char *KMAName; /* optional element of type xsd:string */
- char *KMASiteID; /* optional element of type xsd:string */
- char *KMAHostName; /* optional element of type xsd:string */
- char *KMANetworkAddress; /* optional element of type xsd:string */
- bool Enabled; /* required element of type xsd:boolean */
- long Load; /* required element of type xsd:int */
- bool Responding; /* required element of type xsd:boolean */
- char *KMAVersion; /* optional attribute of type xsd:kmaVersion */
- char *KMAHostNameIPv6; /* optional attribute of type xsd:networkAddress */
- char *KMANetworkAddressIPv6; /* optional attribute of type xsd:networkAddress */
- bool KMS_Discovery__Locked; /* optional attribute of type xsd:boolean */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_KMS_Discovery__ArrayOfClusterMembers
-#define SOAP_TYPE_KMS_Discovery_KMS_Discovery__ArrayOfClusterMembers (25)
-/* Sequence of KMS-Discovery:ArrayOfClusterMembers schema type: */
-struct KMS_Discovery__ArrayOfClusterMembers
-{
-public:
- struct KMS_Discovery_ClusterMember *__ptr;
- int __size;
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverClusterResponse
-#define SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverClusterResponse (29)
-/* KMS-Discovery:DiscoverClusterResponse */
-struct KMS_Discovery__DiscoverClusterResponse
-{
-public:
- char *EntitySiteID; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* optional element of type xsd:string */
- struct KMS_Discovery__ArrayOfClusterMembers ArrayOfClusterMembers; /* optional element of type KMS-Discovery:ArrayOfClusterMembers */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverCluster
-#define SOAP_TYPE_KMS_Discovery_KMS_Discovery__DiscoverCluster (32)
-/* KMS-Discovery:DiscoverCluster */
-struct KMS_Discovery__DiscoverCluster
-{
-public:
- void *_; /* transient */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_SOAP_ENV__Header
-#define SOAP_TYPE_KMS_Discovery_SOAP_ENV__Header (33)
-/* SOAP Header: */
-struct SOAP_ENV__Header
-{
-#ifdef WITH_NOEMPTYSTRUCT
-private:
- char dummy; /* dummy member to enable compilation */
-#endif
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_SOAP_ENV__Code
-#define SOAP_TYPE_KMS_Discovery_SOAP_ENV__Code (34)
-/* SOAP Fault Code: */
-struct SOAP_ENV__Code
-{
-public:
- char *SOAP_ENV__Value; /* optional element of type xsd:QName */
- struct SOAP_ENV__Code *SOAP_ENV__Subcode; /* optional element of type SOAP-ENV:Code */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_SOAP_ENV__Detail
-#define SOAP_TYPE_KMS_Discovery_SOAP_ENV__Detail (36)
-/* SOAP-ENV:Detail */
-struct SOAP_ENV__Detail
-{
-public:
- int __type; /* any type of element <fault> (defined below) */
- void *fault; /* transient */
- char *__any;
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_SOAP_ENV__Reason
-#define SOAP_TYPE_KMS_Discovery_SOAP_ENV__Reason (37)
-/* SOAP-ENV:Reason */
-struct SOAP_ENV__Reason
-{
-public:
- char *SOAP_ENV__Text; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_SOAP_ENV__Fault
-#define SOAP_TYPE_KMS_Discovery_SOAP_ENV__Fault (38)
-/* SOAP Fault: */
-struct SOAP_ENV__Fault
-{
-public:
- char *faultcode; /* optional element of type xsd:QName */
- char *faultstring; /* optional element of type xsd:string */
- char *faultactor; /* optional element of type xsd:string */
- struct SOAP_ENV__Detail *detail; /* optional element of type SOAP-ENV:Detail */
- struct SOAP_ENV__Code *SOAP_ENV__Code; /* optional element of type SOAP-ENV:Code */
- struct SOAP_ENV__Reason *SOAP_ENV__Reason; /* optional element of type SOAP-ENV:Reason */
- char *SOAP_ENV__Node; /* optional element of type xsd:string */
- char *SOAP_ENV__Role; /* optional element of type xsd:string */
- struct SOAP_ENV__Detail *SOAP_ENV__Detail; /* optional element of type SOAP-ENV:Detail */
-};
-#endif
-
-/******************************************************************************\
- * *
- * Typedefs *
- * *
-\******************************************************************************/
-
-#ifndef SOAP_TYPE_KMS_Discovery__QName
-#define SOAP_TYPE_KMS_Discovery__QName (5)
-typedef char *_QName;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery__XML
-#define SOAP_TYPE_KMS_Discovery__XML (6)
-typedef char *_XML;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__string
-#define SOAP_TYPE_KMS_Discovery_xsd__string (7)
-typedef char *xsd__string;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__float
-#define SOAP_TYPE_KMS_Discovery_xsd__float (9)
-typedef float xsd__float;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__int
-#define SOAP_TYPE_KMS_Discovery_xsd__int (11)
-typedef long xsd__int;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__boolean
-#define SOAP_TYPE_KMS_Discovery_xsd__boolean (13)
-typedef bool xsd__boolean;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__long
-#define SOAP_TYPE_KMS_Discovery_xsd__long (15)
-typedef LONG64 xsd__long;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__dateTime
-#define SOAP_TYPE_KMS_Discovery_xsd__dateTime (16)
-typedef char *xsd__dateTime;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__duration
-#define SOAP_TYPE_KMS_Discovery_xsd__duration (17)
-typedef char *xsd__duration;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__kmaVersion
-#define SOAP_TYPE_KMS_Discovery_xsd__kmaVersion (18)
-typedef char *xsd__kmaVersion;
-#endif
-
-#ifndef SOAP_TYPE_KMS_Discovery_xsd__networkAddress
-#define SOAP_TYPE_KMS_Discovery_xsd__networkAddress (19)
-typedef char *xsd__networkAddress;
-#endif
-
-
-/******************************************************************************\
- * *
- * Externals *
- * *
-\******************************************************************************/
-
-
-/******************************************************************************\
- * *
- * Server-Side Operations *
- * *
-\******************************************************************************/
-
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Discovery__DiscoverCluster(struct soap*, void *_, struct KMS_Discovery__DiscoverClusterResponse &result);
-
-/******************************************************************************\
- * *
- * Server-Side Skeletons to Invoke Service Operations *
- * *
-\******************************************************************************/
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Discovery_serve(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 KMS_Discovery_serve_request(struct soap*);
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_serve_KMS_Discovery__DiscoverCluster(struct soap*);
-
-/******************************************************************************\
- * *
- * Client-Side Call Stubs *
- * *
-\******************************************************************************/
-
-
-SOAP_FMAC5 int SOAP_FMAC6 soap_call_KMS_Discovery__DiscoverCluster(struct soap *soap, const char *soap_endpoint, const char *soap_action, void *_, struct KMS_Discovery__DiscoverClusterResponse &result);
-
-} // namespace KMS_Discovery
-
-
-#endif
-
-/* End of KMS_DiscoveryStub.h */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/envC.cpp b/usr/src/lib/libkmsagent/common/SOAP/envC.cpp
deleted file mode 100644
index a8f1887388..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/envC.cpp
+++ /dev/null
@@ -1,1359 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* envC.cpp
- Generated by gSOAP 2.7.17 from ../gsoapStubs/Env/env.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#if defined(__BORLANDC__)
-#pragma option push -w-8060
-#pragma option push -w-8004
-#endif
-
-#include "envH.h"
-
-SOAP_SOURCE_STAMP("@(#) envC.cpp ver 2.7.17 2010-06-08 19:16:38 GMT")
-
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serializeheader(struct soap *soap)
-{
- if (soap->header)
- soap_serialize_SOAP_ENV__Header(soap, soap->header);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_putheader(struct soap *soap)
-{
- if (soap->header)
- { soap->part = SOAP_IN_HEADER;
- if (soap_out_SOAP_ENV__Header(soap, "SOAP-ENV:Header", 0, soap->header, NULL))
- return soap->error;
- soap->part = SOAP_END_HEADER;
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_getheader(struct soap *soap)
-{
- soap->part = SOAP_IN_HEADER;
- soap->header = soap_in_SOAP_ENV__Header(soap, "SOAP-ENV:Header", NULL, NULL);
- soap->part = SOAP_END_HEADER;
- return soap->header == NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_header(struct soap *soap)
-{
- if (!soap->header)
- { if ((soap->header = soap_new_SOAP_ENV__Header(soap, -1)))
- soap_default_SOAP_ENV__Header(soap, soap->header);
- }
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_fault(struct soap *soap)
-{
- if (!soap->fault)
- { soap->fault = soap_new_SOAP_ENV__Fault(soap, -1);
- if (!soap->fault)
- return;
- soap_default_SOAP_ENV__Fault(soap, soap->fault);
- }
- if (soap->version == 2 && !soap->fault->SOAP_ENV__Code)
- { soap->fault->SOAP_ENV__Code = soap_new_SOAP_ENV__Code(soap, -1);
- soap_default_SOAP_ENV__Code(soap, soap->fault->SOAP_ENV__Code);
- }
- if (soap->version == 2 && !soap->fault->SOAP_ENV__Reason)
- { soap->fault->SOAP_ENV__Reason = soap_new_SOAP_ENV__Reason(soap, -1);
- soap_default_SOAP_ENV__Reason(soap, soap->fault->SOAP_ENV__Reason);
- }
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serializefault(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->fault)
- soap_serialize_SOAP_ENV__Fault(soap, soap->fault);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_putfault(struct soap *soap)
-{
- if (soap->fault)
- return soap_put_SOAP_ENV__Fault(soap, soap->fault, "SOAP-ENV:Fault", NULL);
- return SOAP_OK;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_getfault(struct soap *soap)
-{
- return (soap->fault = soap_get_SOAP_ENV__Fault(soap, NULL, "SOAP-ENV:Fault", NULL)) == NULL;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultcode(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 2)
- return (const char**)&soap->fault->SOAP_ENV__Code->SOAP_ENV__Value;
- return (const char**)&soap->fault->faultcode;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultsubcode(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 2)
- { if (!soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode)
- { soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode = soap_new_SOAP_ENV__Code(soap, -1);
- soap_default_SOAP_ENV__Code(soap, soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode);
- }
- return (const char**)&soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode->SOAP_ENV__Value;
- }
- return (const char**)&soap->fault->faultcode;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultstring(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 2)
- return (const char**)&soap->fault->SOAP_ENV__Reason->SOAP_ENV__Text;
- return (const char**)&soap->fault->faultstring;
-}
-
-SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultdetail(struct soap *soap)
-{
- soap_fault(soap);
- if (soap->version == 1)
- { if (!soap->fault->detail)
- { soap->fault->detail = (struct SOAP_ENV__Detail*)soap_malloc(soap, sizeof(struct SOAP_ENV__Detail));
- soap_default_SOAP_ENV__Detail(soap, soap->fault->detail);
- }
- return (const char**)&soap->fault->detail->__any;
- }
- if (!soap->fault->SOAP_ENV__Detail)
- { soap->fault->SOAP_ENV__Detail = soap_new_SOAP_ENV__Detail(soap, -1);
- soap_default_SOAP_ENV__Detail(soap, soap->fault->SOAP_ENV__Detail);
- }
- return (const char**)&soap->fault->SOAP_ENV__Detail->__any;
-}
-
-#endif
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 int SOAP_FMAC4 soap_getindependent(struct soap *soap)
-{
- int t;
- if (soap->version == 1)
- { for (;;)
- { if (!soap_getelement(soap, &t))
- if (soap->error || soap_ignore_element(soap))
- break;
- }
- }
- if (soap->error == SOAP_NO_TAG || soap->error == SOAP_EOF)
- soap->error = SOAP_OK;
- return soap->error;
-}
-#endif
-
-#ifndef WITH_NOIDREF
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-SOAP_FMAC3 void * SOAP_FMAC4 soap_getelement(struct soap *soap, int *type)
-{
- if (soap_peek_element(soap))
- return NULL;
- if (!*soap->id || !(*type = soap_lookup_type(soap, soap->id)))
- *type = soap_lookup_type(soap, soap->href);
- switch (*type)
- {
- case SOAP_TYPE_byte:
- return soap_in_byte(soap, NULL, NULL, "xsd:byte");
- case SOAP_TYPE_int:
- return soap_in_int(soap, NULL, NULL, "xsd:int");
- case SOAP_TYPE__QName:
- { char **s;
- s = soap_in__QName(soap, NULL, NULL, "xsd:QName");
- return s ? *s : NULL;
- }
- case SOAP_TYPE_string:
- { char **s;
- s = soap_in_string(soap, NULL, NULL, "xsd:string");
- return s ? *s : NULL;
- }
- default:
- { const char *t = soap->type;
- if (!*t)
- t = soap->tag;
- if (!soap_match_tag(soap, t, "xsd:byte"))
- { *type = SOAP_TYPE_byte;
- return soap_in_byte(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:int"))
- { *type = SOAP_TYPE_int;
- return soap_in_int(soap, NULL, NULL, NULL);
- }
- if (!soap_match_tag(soap, t, "xsd:QName"))
- { char **s;
- *type = SOAP_TYPE__QName;
- s = soap_in__QName(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- if (!soap_match_tag(soap, t, "xsd:string"))
- { char **s;
- *type = SOAP_TYPE_string;
- s = soap_in_string(soap, NULL, NULL, NULL);
- return s ? *s : NULL;
- }
- t = soap->tag;
- }
- }
- soap->error = SOAP_TAG_MISMATCH;
- return NULL;
-}
-
-#ifdef __cplusplus
-}
-#endif
-#endif
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_ignore_element(struct soap *soap)
-{
- if (!soap_peek_element(soap))
- { int t;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Unexpected element '%s' in input (level=%u, %d)\n", soap->tag, soap->level, soap->body));
- if (soap->mustUnderstand && !soap->other)
- return soap->error = SOAP_MUSTUNDERSTAND;
- if (((soap->mode & SOAP_XML_STRICT) && soap->part != SOAP_IN_HEADER) || !soap_match_tag(soap, soap->tag, "SOAP-ENV:"))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "REJECTING element '%s'\n", soap->tag));
- return soap->error = SOAP_TAG_MISMATCH;
- }
- if (!*soap->id || !soap_getelement(soap, &t))
- { soap->peeked = 0;
- if (soap->fignore)
- soap->error = soap->fignore(soap, soap->tag);
- else
- soap->error = SOAP_OK;
- DBGLOG(TEST, if (!soap->error) SOAP_MESSAGE(fdebug, "IGNORING element '%s'\n", soap->tag));
- if (!soap->error && soap->body)
- { soap->level++;
- while (!soap_ignore_element(soap))
- ;
- if (soap->error == SOAP_NO_TAG)
- soap->error = soap_element_end_in(soap, NULL);
- }
- }
- }
- return soap->error;
-}
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC3 int SOAP_FMAC4 soap_putindependent(struct soap *soap)
-{
- int i;
- struct soap_plist *pp;
- if (soap->version == 1 && soap->encodingStyle && !(soap->mode & (SOAP_XML_TREE | SOAP_XML_GRAPH)))
- for (i = 0; i < SOAP_PTRHASH; i++)
- for (pp = soap->pht[i]; pp; pp = pp->next)
- if (pp->mark1 == 2 || pp->mark2 == 2)
- if (soap_putelement(soap, pp->ptr, "id", pp->id, pp->type))
- return soap->error;
- return SOAP_OK;
-}
-#endif
-
-#ifndef WITH_NOIDREF
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-SOAP_FMAC3 int SOAP_FMAC4 soap_putelement(struct soap *soap, const void *ptr, const char *tag, int id, int type)
-{
- switch (type)
- {
- case SOAP_TYPE_byte:
- return soap_out_byte(soap, tag, id, (const char *)ptr, "xsd:byte");
- case SOAP_TYPE_int:
- return soap_out_int(soap, tag, id, (const int *)ptr, "xsd:int");
- case SOAP_TYPE__QName:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:QName");
- case SOAP_TYPE_string:
- return soap_out_string(soap, tag, id, (char*const*)&ptr, "xsd:string");
- }
- return SOAP_OK;
-}
-
-#ifdef __cplusplus
-}
-#endif
-#endif
-
-#ifndef WITH_NOIDREF
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_markelement(struct soap *soap, const void *ptr, int type)
-{
- (void)soap; (void)ptr; (void)type; /* appease -Wall -Werror */
- switch (type)
- {
- case SOAP_TYPE__QName:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- case SOAP_TYPE_string:
- soap_serialize_string(soap, (char*const*)&ptr);
- break;
- }
-}
-
-#ifdef __cplusplus
-}
-#endif
-#endif
-
-SOAP_FMAC3 void * SOAP_FMAC4 soap_instantiate(struct soap *soap, int t, const char *type, const char *arrayType, size_t *n)
-{
- switch (t)
- {
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_SOAP_ENV__Header:
- return (void*)soap_instantiate_SOAP_ENV__Header(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_SOAP_ENV__Code:
- return (void*)soap_instantiate_SOAP_ENV__Code(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_SOAP_ENV__Detail:
- return (void*)soap_instantiate_SOAP_ENV__Detail(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_SOAP_ENV__Reason:
- return (void*)soap_instantiate_SOAP_ENV__Reason(soap, -1, type, arrayType, n);
-#endif
-#ifndef WITH_NOGLOBAL
- case SOAP_TYPE_SOAP_ENV__Fault:
- return (void*)soap_instantiate_SOAP_ENV__Fault(soap, -1, type, arrayType, n);
-#endif
- }
- return NULL;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_fdelete(struct soap_clist *p)
-{ switch (p->type)
- {
- case SOAP_TYPE_SOAP_ENV__Header:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Header*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Header*)p->ptr);
- break;
- case SOAP_TYPE_SOAP_ENV__Code:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Code*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Code*)p->ptr);
- break;
- case SOAP_TYPE_SOAP_ENV__Detail:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Detail*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Detail*)p->ptr);
- break;
- case SOAP_TYPE_SOAP_ENV__Reason:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Reason*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Reason*)p->ptr);
- break;
- case SOAP_TYPE_SOAP_ENV__Fault:
- if (p->size < 0)
- SOAP_DELETE((struct SOAP_ENV__Fault*)p->ptr);
- else
- SOAP_DELETE_ARRAY((struct SOAP_ENV__Fault*)p->ptr);
- break;
- default: return SOAP_ERR;
- }
- return SOAP_OK;
-}
-
-SOAP_FMAC3 void* SOAP_FMAC4 soap_class_id_enter(struct soap *soap, const char *id, void *p, int t, size_t n, const char *type, const char *arrayType)
-{ return soap_id_enter(soap, id, p, t, n, 0, type, arrayType, soap_instantiate);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_byte(struct soap *soap, char *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_byte
- *a = SOAP_DEFAULT_byte;
-#else
- *a = (char)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_byte(struct soap *soap, const char *tag, int id, const char *a, const char *type)
-{
- return soap_outbyte(soap, tag, id, a, type, SOAP_TYPE_byte);
-}
-
-SOAP_FMAC3 char * SOAP_FMAC4 soap_in_byte(struct soap *soap, const char *tag, char *a, const char *type)
-{ char *p;
- p = soap_inbyte(soap, tag, a, type, SOAP_TYPE_byte);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_byte(struct soap *soap, const char *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_byte);
- if (soap_out_byte(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char * SOAP_FMAC4 soap_get_byte(struct soap *soap, char *p, const char *tag, const char *type)
-{
- if ((p = soap_in_byte(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_int(struct soap *soap, int *a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_int
- *a = SOAP_DEFAULT_int;
-#else
- *a = (int)0;
-#endif
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_int(struct soap *soap, const char *tag, int id, const int *a, const char *type)
-{
- return soap_outint(soap, tag, id, a, type, SOAP_TYPE_int);
-}
-
-SOAP_FMAC3 int * SOAP_FMAC4 soap_in_int(struct soap *soap, const char *tag, int *a, const char *type)
-{ int *p;
- p = soap_inint(soap, tag, a, type, SOAP_TYPE_int);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_int(struct soap *soap, const int *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_int);
- if (soap_out_int(soap, tag?tag:"int", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 int * SOAP_FMAC4 soap_get_int(struct soap *soap, int *p, const char *tag, const char *type)
-{
- if ((p = soap_in_int(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Fault(struct soap *soap, struct SOAP_ENV__Fault *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default__QName(soap, &a->faultcode);
- soap_default_string(soap, &a->faultstring);
- soap_default_string(soap, &a->faultactor);
- a->detail = NULL;
- a->SOAP_ENV__Code = NULL;
- a->SOAP_ENV__Reason = NULL;
- soap_default_string(soap, &a->SOAP_ENV__Node);
- soap_default_string(soap, &a->SOAP_ENV__Role);
- a->SOAP_ENV__Detail = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Fault(struct soap *soap, const struct SOAP_ENV__Fault *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize__QName(soap, &a->faultcode);
- soap_serialize_string(soap, &a->faultstring);
- soap_serialize_string(soap, &a->faultactor);
- soap_serialize_PointerToSOAP_ENV__Detail(soap, &a->detail);
- soap_serialize_PointerToSOAP_ENV__Code(soap, &a->SOAP_ENV__Code);
- soap_serialize_PointerToSOAP_ENV__Reason(soap, &a->SOAP_ENV__Reason);
- soap_serialize_string(soap, &a->SOAP_ENV__Node);
- soap_serialize_string(soap, &a->SOAP_ENV__Role);
- soap_serialize_PointerToSOAP_ENV__Detail(soap, &a->SOAP_ENV__Detail);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Fault(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Fault *a, const char *type)
-{
- const char *soap_tmp_faultcode = soap_QName2s(soap, a->faultcode);
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_SOAP_ENV__Fault), type))
- return soap->error;
- if (soap_out__QName(soap, "faultcode", -1, (char*const*)&soap_tmp_faultcode, ""))
- return soap->error;
- if (soap_out_string(soap, "faultstring", -1, &a->faultstring, ""))
- return soap->error;
- if (soap_out_string(soap, "faultactor", -1, &a->faultactor, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Detail(soap, "detail", -1, &a->detail, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Code", -1, &a->SOAP_ENV__Code, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Reason(soap, "SOAP-ENV:Reason", -1, &a->SOAP_ENV__Reason, ""))
- return soap->error;
- if (soap_out_string(soap, "SOAP-ENV:Node", -1, &a->SOAP_ENV__Node, ""))
- return soap->error;
- if (soap_out_string(soap, "SOAP-ENV:Role", -1, &a->SOAP_ENV__Role, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Detail(soap, "SOAP-ENV:Detail", -1, &a->SOAP_ENV__Detail, ""))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_in_SOAP_ENV__Fault(struct soap *soap, const char *tag, struct SOAP_ENV__Fault *a, const char *type)
-{
- size_t soap_flag_faultcode = 1;
- size_t soap_flag_faultstring = 1;
- size_t soap_flag_faultactor = 1;
- size_t soap_flag_detail = 1;
- size_t soap_flag_SOAP_ENV__Code = 1;
- size_t soap_flag_SOAP_ENV__Reason = 1;
- size_t soap_flag_SOAP_ENV__Node = 1;
- size_t soap_flag_SOAP_ENV__Role = 1;
- size_t soap_flag_SOAP_ENV__Detail = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Fault *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_SOAP_ENV__Fault, sizeof(struct SOAP_ENV__Fault), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Fault(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_faultcode && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in__QName(soap, "faultcode", &a->faultcode, ""))
- { soap_flag_faultcode--;
- continue;
- }
- if (soap_flag_faultstring && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "faultstring", &a->faultstring, "xsd:string"))
- { soap_flag_faultstring--;
- continue;
- }
- if (soap_flag_faultactor && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "faultactor", &a->faultactor, "xsd:string"))
- { soap_flag_faultactor--;
- continue;
- }
- if (soap_flag_detail && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Detail(soap, "detail", &a->detail, ""))
- { soap_flag_detail--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Code && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Code", &a->SOAP_ENV__Code, ""))
- { soap_flag_SOAP_ENV__Code--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Reason && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Reason(soap, "SOAP-ENV:Reason", &a->SOAP_ENV__Reason, ""))
- { soap_flag_SOAP_ENV__Reason--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Node && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "SOAP-ENV:Node", &a->SOAP_ENV__Node, "xsd:string"))
- { soap_flag_SOAP_ENV__Node--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Role && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "SOAP-ENV:Role", &a->SOAP_ENV__Role, "xsd:string"))
- { soap_flag_SOAP_ENV__Role--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Detail && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Detail(soap, "SOAP-ENV:Detail", &a->SOAP_ENV__Detail, ""))
- { soap_flag_SOAP_ENV__Detail--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Fault *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_SOAP_ENV__Fault, 0, sizeof(struct SOAP_ENV__Fault), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Fault(struct soap *soap, const struct SOAP_ENV__Fault *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_SOAP_ENV__Fault);
- if (soap_out_SOAP_ENV__Fault(soap, tag?tag:"SOAP-ENV:Fault", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_get_SOAP_ENV__Fault(struct soap *soap, struct SOAP_ENV__Fault *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Fault(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Fault * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Fault(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Fault(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_SOAP_ENV__Fault, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Fault);
- if (size)
- *size = sizeof(struct SOAP_ENV__Fault);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Fault[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Fault);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Fault*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Fault(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Fault %p -> %p\n", q, p));
- *(struct SOAP_ENV__Fault*)p = *(struct SOAP_ENV__Fault*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default_string(soap, &a->SOAP_ENV__Text);
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Reason(struct soap *soap, const struct SOAP_ENV__Reason *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize_string(soap, &a->SOAP_ENV__Text);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Reason(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Reason *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_SOAP_ENV__Reason), type))
- return soap->error;
- if (soap->lang)
- soap_set_attr(soap, "xml:lang", soap->lang, 1);
- if (soap_out_string(soap, "SOAP-ENV:Text", -1, &a->SOAP_ENV__Text, ""))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_in_SOAP_ENV__Reason(struct soap *soap, const char *tag, struct SOAP_ENV__Reason *a, const char *type)
-{
- size_t soap_flag_SOAP_ENV__Text = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Reason *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_SOAP_ENV__Reason, sizeof(struct SOAP_ENV__Reason), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Reason(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_SOAP_ENV__Text && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in_string(soap, "SOAP-ENV:Text", &a->SOAP_ENV__Text, "xsd:string"))
- { soap_flag_SOAP_ENV__Text--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Reason *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_SOAP_ENV__Reason, 0, sizeof(struct SOAP_ENV__Reason), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Reason(struct soap *soap, const struct SOAP_ENV__Reason *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_SOAP_ENV__Reason);
- if (soap_out_SOAP_ENV__Reason(soap, tag?tag:"SOAP-ENV:Reason", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_get_SOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Reason(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Reason * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Reason(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Reason(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_SOAP_ENV__Reason, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Reason);
- if (size)
- *size = sizeof(struct SOAP_ENV__Reason);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Reason[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Reason);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Reason*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Reason(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Reason %p -> %p\n", q, p));
- *(struct SOAP_ENV__Reason*)p = *(struct SOAP_ENV__Reason*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- a->__type = 0;
- a->fault = NULL;
- a->__any = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Detail(struct soap *soap, const struct SOAP_ENV__Detail *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_markelement(soap, a->fault, a->__type);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Detail(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Detail *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_SOAP_ENV__Detail), type))
- return soap->error;
- if (soap_putelement(soap, a->fault, "fault", -1, a->__type))
- return soap->error;
- soap_outliteral(soap, "-any", &a->__any, NULL);
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_in_SOAP_ENV__Detail(struct soap *soap, const char *tag, struct SOAP_ENV__Detail *a, const char *type)
-{
- size_t soap_flag_fault = 1;
- size_t soap_flag___any = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Detail *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_SOAP_ENV__Detail, sizeof(struct SOAP_ENV__Detail), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Detail(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_fault && soap->error == SOAP_TAG_MISMATCH)
- if ((a->fault = soap_getelement(soap, &a->__type)))
- { soap_flag_fault = 0;
- continue;
- }
- if (soap_flag___any && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_inliteral(soap, "-any", &a->__any))
- { soap_flag___any--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Detail *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_SOAP_ENV__Detail, 0, sizeof(struct SOAP_ENV__Detail), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Detail(struct soap *soap, const struct SOAP_ENV__Detail *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_SOAP_ENV__Detail);
- if (soap_out_SOAP_ENV__Detail(soap, tag?tag:"SOAP-ENV:Detail", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_get_SOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Detail(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Detail * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Detail(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Detail(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_SOAP_ENV__Detail, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Detail);
- if (size)
- *size = sizeof(struct SOAP_ENV__Detail);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Detail[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Detail);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Detail*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Detail(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Detail %p -> %p\n", q, p));
- *(struct SOAP_ENV__Detail*)p = *(struct SOAP_ENV__Detail*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_default__QName(soap, &a->SOAP_ENV__Value);
- a->SOAP_ENV__Subcode = NULL;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Code(struct soap *soap, const struct SOAP_ENV__Code *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
- soap_serialize__QName(soap, &a->SOAP_ENV__Value);
- soap_serialize_PointerToSOAP_ENV__Code(soap, &a->SOAP_ENV__Subcode);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Code(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Code *a, const char *type)
-{
- const char *soap_tmp_SOAP_ENV__Value = soap_QName2s(soap, a->SOAP_ENV__Value);
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_SOAP_ENV__Code), type))
- return soap->error;
- if (soap_out__QName(soap, "SOAP-ENV:Value", -1, (char*const*)&soap_tmp_SOAP_ENV__Value, ""))
- return soap->error;
- if (soap_out_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Subcode", -1, &a->SOAP_ENV__Subcode, ""))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_in_SOAP_ENV__Code(struct soap *soap, const char *tag, struct SOAP_ENV__Code *a, const char *type)
-{
- size_t soap_flag_SOAP_ENV__Value = 1;
- size_t soap_flag_SOAP_ENV__Subcode = 1;
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Code *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_SOAP_ENV__Code, sizeof(struct SOAP_ENV__Code), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Code(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap_flag_SOAP_ENV__Value && (soap->error == SOAP_TAG_MISMATCH || soap->error == SOAP_NO_TAG))
- if (soap_in__QName(soap, "SOAP-ENV:Value", &a->SOAP_ENV__Value, ""))
- { soap_flag_SOAP_ENV__Value--;
- continue;
- }
- if (soap_flag_SOAP_ENV__Subcode && soap->error == SOAP_TAG_MISMATCH)
- if (soap_in_PointerToSOAP_ENV__Code(soap, "SOAP-ENV:Subcode", &a->SOAP_ENV__Subcode, ""))
- { soap_flag_SOAP_ENV__Subcode--;
- continue;
- }
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Code *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_SOAP_ENV__Code, 0, sizeof(struct SOAP_ENV__Code), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Code(struct soap *soap, const struct SOAP_ENV__Code *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_SOAP_ENV__Code);
- if (soap_out_SOAP_ENV__Code(soap, tag?tag:"SOAP-ENV:Code", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_get_SOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Code(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Code * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Code(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Code(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_SOAP_ENV__Code, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Code);
- if (size)
- *size = sizeof(struct SOAP_ENV__Code);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Code[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Code);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Code*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Code(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Code %p -> %p\n", q, p));
- *(struct SOAP_ENV__Code*)p = *(struct SOAP_ENV__Code*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Header(struct soap *soap, struct SOAP_ENV__Header *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Header(struct soap *soap, const struct SOAP_ENV__Header *a)
-{
- (void)soap; (void)a; /* appease -Wall -Werror */
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Header(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Header *a, const char *type)
-{
- if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_SOAP_ENV__Header), type))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_in_SOAP_ENV__Header(struct soap *soap, const char *tag, struct SOAP_ENV__Header *a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 0, type))
- return NULL;
- a = (struct SOAP_ENV__Header *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_SOAP_ENV__Header, sizeof(struct SOAP_ENV__Header), 0, NULL, NULL, NULL);
- if (!a)
- return NULL;
- soap_default_SOAP_ENV__Header(soap, a);
- if (soap->body && !*soap->href)
- {
- for (;;)
- { soap->error = SOAP_TAG_MISMATCH;
- if (soap->error == SOAP_TAG_MISMATCH)
- soap->error = soap_ignore_element(soap);
- if (soap->error == SOAP_NO_TAG)
- break;
- if (soap->error)
- return NULL;
- }
- if (soap_element_end_in(soap, tag))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Header *)soap_id_forward(soap, soap->href, (void*)a, 0, SOAP_TYPE_SOAP_ENV__Header, 0, sizeof(struct SOAP_ENV__Header), 0, NULL);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Header(struct soap *soap, const struct SOAP_ENV__Header *a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_SOAP_ENV__Header);
- if (soap_out_SOAP_ENV__Header(soap, tag?tag:"SOAP-ENV:Header", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_get_SOAP_ENV__Header(struct soap *soap, struct SOAP_ENV__Header *p, const char *tag, const char *type)
-{
- if ((p = soap_in_SOAP_ENV__Header(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC1 struct SOAP_ENV__Header * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Header(struct soap *soap, int n, const char *type, const char *arrayType, size_t *size)
-{
- (void)type; (void)arrayType; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "soap_instantiate_SOAP_ENV__Header(%d, %s, %s)\n", n, type?type:"", arrayType?arrayType:""));
- struct soap_clist *cp = soap_link(soap, NULL, SOAP_TYPE_SOAP_ENV__Header, n, soap_fdelete);
- if (!cp)
- return NULL;
- if (n < 0)
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Header);
- if (size)
- *size = sizeof(struct SOAP_ENV__Header);
- }
- else
- { cp->ptr = (void*)SOAP_NEW(struct SOAP_ENV__Header[n]);
- if (!cp->ptr)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- if (size)
- *size = n * sizeof(struct SOAP_ENV__Header);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Instantiated location=%p\n", cp->ptr));
- return (struct SOAP_ENV__Header*)cp->ptr;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Header(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{
- (void)soap; (void)st; (void)len; (void)n; /* appease -Wall -Werror */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying struct SOAP_ENV__Header %p -> %p\n", q, p));
- *(struct SOAP_ENV__Header*)p = *(struct SOAP_ENV__Header*)q;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_SOAP_ENV__Reason))
- soap_serialize_SOAP_ENV__Reason(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Reason(struct soap *soap, const char *tag, int id, struct SOAP_ENV__Reason *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_SOAP_ENV__Reason);
- if (id < 0)
- return soap->error;
- return soap_out_SOAP_ENV__Reason(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Reason(struct soap *soap, const char *tag, struct SOAP_ENV__Reason **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct SOAP_ENV__Reason **)soap_malloc(soap, sizeof(struct SOAP_ENV__Reason *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_SOAP_ENV__Reason(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Reason **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_SOAP_ENV__Reason, sizeof(struct SOAP_ENV__Reason), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_PointerToSOAP_ENV__Reason);
- if (soap_out_PointerToSOAP_ENV__Reason(soap, tag?tag:"SOAP-ENV:Reason", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToSOAP_ENV__Reason(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_SOAP_ENV__Detail))
- soap_serialize_SOAP_ENV__Detail(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Detail(struct soap *soap, const char *tag, int id, struct SOAP_ENV__Detail *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_SOAP_ENV__Detail);
- if (id < 0)
- return soap->error;
- return soap_out_SOAP_ENV__Detail(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Detail(struct soap *soap, const char *tag, struct SOAP_ENV__Detail **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct SOAP_ENV__Detail **)soap_malloc(soap, sizeof(struct SOAP_ENV__Detail *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_SOAP_ENV__Detail(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Detail **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_SOAP_ENV__Detail, sizeof(struct SOAP_ENV__Detail), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_PointerToSOAP_ENV__Detail);
- if (soap_out_PointerToSOAP_ENV__Detail(soap, tag?tag:"SOAP-ENV:Detail", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToSOAP_ENV__Detail(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *const*a)
-{
- if (!soap_reference(soap, *a, SOAP_TYPE_SOAP_ENV__Code))
- soap_serialize_SOAP_ENV__Code(soap, *a);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Code(struct soap *soap, const char *tag, int id, struct SOAP_ENV__Code *const*a, const char *type)
-{
- id = soap_element_id(soap, tag, id, *a, NULL, 0, type, SOAP_TYPE_SOAP_ENV__Code);
- if (id < 0)
- return soap->error;
- return soap_out_SOAP_ENV__Code(soap, tag, id, *a, type);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Code(struct soap *soap, const char *tag, struct SOAP_ENV__Code **a, const char *type)
-{
- if (soap_element_begin_in(soap, tag, 1, NULL))
- return NULL;
- if (!a)
- if (!(a = (struct SOAP_ENV__Code **)soap_malloc(soap, sizeof(struct SOAP_ENV__Code *))))
- return NULL;
- *a = NULL;
- if (!soap->null && *soap->href != '#')
- { soap_revert(soap);
- if (!(*a = soap_in_SOAP_ENV__Code(soap, tag, *a, type)))
- return NULL;
- }
- else
- { a = (struct SOAP_ENV__Code **)soap_id_lookup(soap, soap->href, (void**)a, SOAP_TYPE_SOAP_ENV__Code, sizeof(struct SOAP_ENV__Code), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- }
- return a;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_PointerToSOAP_ENV__Code);
- if (soap_out_PointerToSOAP_ENV__Code(soap, tag?tag:"SOAP-ENV:Code", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code **p, const char *tag, const char *type)
-{
- if ((p = soap_in_PointerToSOAP_ENV__Code(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#endif
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out__QName(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE__QName);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in__QName(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE__QName, 2, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put__QName(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE__QName);
- if (soap_out__QName(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get__QName(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in__QName(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_string(struct soap *soap, char **a)
-{
- (void)soap; /* appease -Wall -Werror */
-#ifdef SOAP_DEFAULT_string
- *a = SOAP_DEFAULT_string;
-#else
- *a = (char *)0;
-#endif
-}
-
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_string(struct soap *soap, char *const*a)
-{
- soap_reference(soap, *a, SOAP_TYPE_string);
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_string(struct soap *soap, const char *tag, int id, char *const*a, const char *type)
-{
- return soap_outstring(soap, tag, id, a, type, SOAP_TYPE_string);
-}
-
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_string(struct soap *soap, const char *tag, char **a, const char *type)
-{ char **p;
- p = soap_instring(soap, tag, a, type, SOAP_TYPE_string, 1, -1, -1);
- return p;
-}
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_string(struct soap *soap, char *const*a, const char *tag, const char *type)
-{
- register int id = soap_embed(soap, (void*)a, NULL, 0, tag, SOAP_TYPE_string);
- if (soap_out_string(soap, tag?tag:"byte", id, a, type))
- return soap->error;
- return soap_putindependent(soap);
-}
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_string(struct soap *soap, char **p, const char *tag, const char *type)
-{
- if ((p = soap_in_string(soap, tag, p, type)))
- if (soap_getindependent(soap))
- return NULL;
- return p;
-}
-
-#if defined(__BORLANDC__)
-#pragma option pop
-#pragma option pop
-#endif
-
-/* End of envC.cpp */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/envH.h b/usr/src/lib/libkmsagent/common/SOAP/envH.h
deleted file mode 100644
index 3e32983a7c..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/envH.h
+++ /dev/null
@@ -1,329 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* envH.h
- Generated by gSOAP 2.7.17 from ../gsoapStubs/Env/env.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#ifndef envH_H
-#define envH_H
-#include "envStub.h"
-#ifndef WITH_NOIDREF
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_markelement(struct soap*, const void*, int);
-SOAP_FMAC3 int SOAP_FMAC4 soap_putelement(struct soap*, const void*, const char*, int, int);
-SOAP_FMAC3 void *SOAP_FMAC4 soap_getelement(struct soap*, int*);
-
-#ifdef __cplusplus
-}
-#endif
-SOAP_FMAC3 int SOAP_FMAC4 soap_putindependent(struct soap*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_getindependent(struct soap*);
-#endif
-SOAP_FMAC3 int SOAP_FMAC4 soap_ignore_element(struct soap*);
-
-SOAP_FMAC3 void * SOAP_FMAC4 soap_instantiate(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_fdelete(struct soap_clist*);
-SOAP_FMAC3 void* SOAP_FMAC4 soap_class_id_enter(struct soap*, const char*, void*, int, size_t, const char*, const char*);
-
-#ifndef SOAP_TYPE_byte
-#define SOAP_TYPE_byte (3)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_byte(struct soap*, char *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_byte(struct soap*, const char*, int, const char *, const char*);
-SOAP_FMAC3 char * SOAP_FMAC4 soap_in_byte(struct soap*, const char*, char *, const char*);
-
-#define soap_write_byte(soap, data) ( soap_begin_send(soap) || soap_put_byte(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_byte(struct soap*, const char *, const char*, const char*);
-
-#define soap_read_byte(soap, data) ( soap_begin_recv(soap) || !soap_get_byte(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char * SOAP_FMAC4 soap_get_byte(struct soap*, char *, const char*, const char*);
-
-#ifndef SOAP_TYPE_int
-#define SOAP_TYPE_int (1)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_int(struct soap*, int *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_int(struct soap*, const char*, int, const int *, const char*);
-SOAP_FMAC3 int * SOAP_FMAC4 soap_in_int(struct soap*, const char*, int *, const char*);
-
-#define soap_write_int(soap, data) ( soap_begin_send(soap) || soap_put_int(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_int(struct soap*, const int *, const char*, const char*);
-
-#define soap_read_int(soap, data) ( soap_begin_recv(soap) || !soap_get_int(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 int * SOAP_FMAC4 soap_get_int(struct soap*, int *, const char*, const char*);
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_SOAP_ENV__Fault
-#define SOAP_TYPE_SOAP_ENV__Fault (14)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Fault(struct soap*, struct SOAP_ENV__Fault *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Fault(struct soap*, const struct SOAP_ENV__Fault *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Fault(struct soap*, const char*, int, const struct SOAP_ENV__Fault *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_in_SOAP_ENV__Fault(struct soap*, const char*, struct SOAP_ENV__Fault *, const char*);
-
-#define soap_write_SOAP_ENV__Fault(soap, data) ( soap_begin_send(soap) || (soap_serialize_SOAP_ENV__Fault(soap, data), 0) || soap_put_SOAP_ENV__Fault(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Fault(struct soap*, const struct SOAP_ENV__Fault *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Fault(soap, data) ( soap_begin_recv(soap) || !soap_get_SOAP_ENV__Fault(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_get_SOAP_ENV__Fault(struct soap*, struct SOAP_ENV__Fault *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Fault(soap, n) soap_instantiate_SOAP_ENV__Fault(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Fault(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Fault * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Fault(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Fault(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_SOAP_ENV__Reason
-#define SOAP_TYPE_SOAP_ENV__Reason (13)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Reason(struct soap*, const struct SOAP_ENV__Reason *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Reason(struct soap*, const char*, int, const struct SOAP_ENV__Reason *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_in_SOAP_ENV__Reason(struct soap*, const char*, struct SOAP_ENV__Reason *, const char*);
-
-#define soap_write_SOAP_ENV__Reason(soap, data) ( soap_begin_send(soap) || (soap_serialize_SOAP_ENV__Reason(soap, data), 0) || soap_put_SOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Reason(struct soap*, const struct SOAP_ENV__Reason *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Reason(soap, data) ( soap_begin_recv(soap) || !soap_get_SOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_get_SOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Reason(soap, n) soap_instantiate_SOAP_ENV__Reason(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Reason(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Reason * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Reason(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Reason(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_SOAP_ENV__Detail
-#define SOAP_TYPE_SOAP_ENV__Detail (10)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Detail(struct soap*, const struct SOAP_ENV__Detail *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Detail(struct soap*, const char*, int, const struct SOAP_ENV__Detail *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_in_SOAP_ENV__Detail(struct soap*, const char*, struct SOAP_ENV__Detail *, const char*);
-
-#define soap_write_SOAP_ENV__Detail(soap, data) ( soap_begin_send(soap) || (soap_serialize_SOAP_ENV__Detail(soap, data), 0) || soap_put_SOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Detail(struct soap*, const struct SOAP_ENV__Detail *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Detail(soap, data) ( soap_begin_recv(soap) || !soap_get_SOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_get_SOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Detail(soap, n) soap_instantiate_SOAP_ENV__Detail(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Detail(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Detail * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Detail(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Detail(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_SOAP_ENV__Code
-#define SOAP_TYPE_SOAP_ENV__Code (8)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Code(struct soap*, const struct SOAP_ENV__Code *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Code(struct soap*, const char*, int, const struct SOAP_ENV__Code *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_in_SOAP_ENV__Code(struct soap*, const char*, struct SOAP_ENV__Code *, const char*);
-
-#define soap_write_SOAP_ENV__Code(soap, data) ( soap_begin_send(soap) || (soap_serialize_SOAP_ENV__Code(soap, data), 0) || soap_put_SOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Code(struct soap*, const struct SOAP_ENV__Code *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Code(soap, data) ( soap_begin_recv(soap) || !soap_get_SOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_get_SOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Code(soap, n) soap_instantiate_SOAP_ENV__Code(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Code(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Code * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Code(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Code(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_SOAP_ENV__Header
-#define SOAP_TYPE_SOAP_ENV__Header (7)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Header(struct soap*, struct SOAP_ENV__Header *);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Header(struct soap*, const struct SOAP_ENV__Header *);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Header(struct soap*, const char*, int, const struct SOAP_ENV__Header *, const char*);
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_in_SOAP_ENV__Header(struct soap*, const char*, struct SOAP_ENV__Header *, const char*);
-
-#define soap_write_SOAP_ENV__Header(soap, data) ( soap_begin_send(soap) || (soap_serialize_SOAP_ENV__Header(soap, data), 0) || soap_put_SOAP_ENV__Header(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Header(struct soap*, const struct SOAP_ENV__Header *, const char*, const char*);
-
-#define soap_read_SOAP_ENV__Header(soap, data) ( soap_begin_recv(soap) || !soap_get_SOAP_ENV__Header(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_get_SOAP_ENV__Header(struct soap*, struct SOAP_ENV__Header *, const char*, const char*);
-
-#define soap_new_SOAP_ENV__Header(soap, n) soap_instantiate_SOAP_ENV__Header(soap, n, NULL, NULL, NULL)
-
-
-#define soap_delete_SOAP_ENV__Header(soap, p) soap_delete(soap, p)
-
-SOAP_FMAC1 struct SOAP_ENV__Header * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Header(struct soap*, int, const char*, const char*, size_t*);
-SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Header(struct soap*, int, int, void*, size_t, const void*, size_t);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_PointerToSOAP_ENV__Reason
-#define SOAP_TYPE_PointerToSOAP_ENV__Reason (16)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Reason(struct soap*, const char *, int, struct SOAP_ENV__Reason *const*, const char *);
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Reason(struct soap*, const char*, struct SOAP_ENV__Reason **, const char*);
-
-#define soap_write_PointerToSOAP_ENV__Reason(soap, data) ( soap_begin_send(soap) || (soap_serialize_PointerToSOAP_ENV__Reason(soap, data), 0) || soap_put_PointerToSOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *const*, const char*, const char*);
-
-#define soap_read_PointerToSOAP_ENV__Reason(soap, data) ( soap_begin_recv(soap) || !soap_get_PointerToSOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason **, const char*, const char*);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_PointerToSOAP_ENV__Detail
-#define SOAP_TYPE_PointerToSOAP_ENV__Detail (15)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Detail(struct soap*, const char *, int, struct SOAP_ENV__Detail *const*, const char *);
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Detail(struct soap*, const char*, struct SOAP_ENV__Detail **, const char*);
-
-#define soap_write_PointerToSOAP_ENV__Detail(soap, data) ( soap_begin_send(soap) || (soap_serialize_PointerToSOAP_ENV__Detail(soap, data), 0) || soap_put_PointerToSOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *const*, const char*, const char*);
-
-#define soap_read_PointerToSOAP_ENV__Detail(soap, data) ( soap_begin_recv(soap) || !soap_get_PointerToSOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail **, const char*, const char*);
-
-#endif
-
-#ifndef WITH_NOGLOBAL
-
-#ifndef SOAP_TYPE_PointerToSOAP_ENV__Code
-#define SOAP_TYPE_PointerToSOAP_ENV__Code (9)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Code(struct soap*, const char *, int, struct SOAP_ENV__Code *const*, const char *);
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Code(struct soap*, const char*, struct SOAP_ENV__Code **, const char*);
-
-#define soap_write_PointerToSOAP_ENV__Code(soap, data) ( soap_begin_send(soap) || (soap_serialize_PointerToSOAP_ENV__Code(soap, data), 0) || soap_put_PointerToSOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *const*, const char*, const char*);
-
-#define soap_read_PointerToSOAP_ENV__Code(soap, data) ( soap_begin_recv(soap) || !soap_get_PointerToSOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code **, const char*, const char*);
-
-#endif
-
-#ifndef SOAP_TYPE__QName
-#define SOAP_TYPE__QName (5)
-#endif
-
-#define soap_default__QName(soap, a) soap_default_string(soap, a)
-
-
-#define soap_serialize__QName(soap, a) soap_serialize_string(soap, a)
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_out__QName(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in__QName(struct soap*, const char*, char **, const char*);
-
-#define soap_write__QName(soap, data) ( soap_begin_send(soap) || (soap_serialize__QName(soap, data), 0) || soap_put__QName(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put__QName(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read__QName(soap, data) ( soap_begin_recv(soap) || !soap_get__QName(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get__QName(struct soap*, char **, const char*, const char*);
-
-#ifndef SOAP_TYPE_string
-#define SOAP_TYPE_string (4)
-#endif
-SOAP_FMAC3 void SOAP_FMAC4 soap_default_string(struct soap*, char **);
-SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_string(struct soap*, char *const*);
-SOAP_FMAC3 int SOAP_FMAC4 soap_out_string(struct soap*, const char*, int, char*const*, const char*);
-SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_string(struct soap*, const char*, char **, const char*);
-
-#define soap_write_string(soap, data) ( soap_begin_send(soap) || (soap_serialize_string(soap, data), 0) || soap_put_string(soap, data, NULL, NULL) || soap_end_send(soap) )
-
-SOAP_FMAC3 int SOAP_FMAC4 soap_put_string(struct soap*, char *const*, const char*, const char*);
-
-#define soap_read_string(soap, data) ( soap_begin_recv(soap) || !soap_get_string(soap, data, NULL, NULL) || soap_end_recv(soap) )
-
-SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_string(struct soap*, char **, const char*, const char*);
-
-#endif
-
-/* End of envH.h */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/envStub.h b/usr/src/lib/libkmsagent/common/SOAP/envStub.h
deleted file mode 100644
index 6642474746..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/envStub.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* envStub.h
- Generated by gSOAP 2.7.17 from ../gsoapStubs/Env/env.h
- Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
- This part of the software is released under one of the following licenses:
- GPL, the gSOAP public license, or Genivia's license for commercial use.
-*/
-
-#ifndef envStub_H
-#define envStub_H
-#include "stdsoap2.h"
-
-/******************************************************************************\
- * *
- * Enumerations *
- * *
-\******************************************************************************/
-
-
-/******************************************************************************\
- * *
- * Types with Custom Serializers *
- * *
-\******************************************************************************/
-
-
-/******************************************************************************\
- * *
- * Classes and Structs *
- * *
-\******************************************************************************/
-
-
-#if 0 /* volatile type: do not declare here, declared elsewhere */
-
-#endif
-
-#ifndef SOAP_TYPE_SOAP_ENV__Header
-#define SOAP_TYPE_SOAP_ENV__Header (7)
-/* SOAP Header: */
-struct SOAP_ENV__Header
-{
-#ifdef WITH_NOEMPTYSTRUCT
-private:
- char dummy; /* dummy member to enable compilation */
-#endif
-};
-#endif
-
-#ifndef SOAP_TYPE_SOAP_ENV__Code
-#define SOAP_TYPE_SOAP_ENV__Code (8)
-/* SOAP Fault Code: */
-struct SOAP_ENV__Code
-{
-public:
- char *SOAP_ENV__Value; /* optional element of type xsd:QName */
- struct SOAP_ENV__Code *SOAP_ENV__Subcode; /* optional element of type SOAP-ENV:Code */
-};
-#endif
-
-#ifndef SOAP_TYPE_SOAP_ENV__Detail
-#define SOAP_TYPE_SOAP_ENV__Detail (10)
-/* SOAP-ENV:Detail */
-struct SOAP_ENV__Detail
-{
-public:
- int __type; /* any type of element <fault> (defined below) */
- void *fault; /* transient */
- char *__any;
-};
-#endif
-
-#ifndef SOAP_TYPE_SOAP_ENV__Reason
-#define SOAP_TYPE_SOAP_ENV__Reason (13)
-/* SOAP-ENV:Reason */
-struct SOAP_ENV__Reason
-{
-public:
- char *SOAP_ENV__Text; /* optional element of type xsd:string */
-};
-#endif
-
-#ifndef SOAP_TYPE_SOAP_ENV__Fault
-#define SOAP_TYPE_SOAP_ENV__Fault (14)
-/* SOAP Fault: */
-struct SOAP_ENV__Fault
-{
-public:
- char *faultcode; /* optional element of type xsd:QName */
- char *faultstring; /* optional element of type xsd:string */
- char *faultactor; /* optional element of type xsd:string */
- struct SOAP_ENV__Detail *detail; /* optional element of type SOAP-ENV:Detail */
- struct SOAP_ENV__Code *SOAP_ENV__Code; /* optional element of type SOAP-ENV:Code */
- struct SOAP_ENV__Reason *SOAP_ENV__Reason; /* optional element of type SOAP-ENV:Reason */
- char *SOAP_ENV__Node; /* optional element of type xsd:string */
- char *SOAP_ENV__Role; /* optional element of type xsd:string */
- struct SOAP_ENV__Detail *SOAP_ENV__Detail; /* optional element of type SOAP-ENV:Detail */
-};
-#endif
-
-/******************************************************************************\
- * *
- * Typedefs *
- * *
-\******************************************************************************/
-
-#ifndef SOAP_TYPE__QName
-#define SOAP_TYPE__QName (5)
-typedef char *_QName;
-#endif
-
-#ifndef SOAP_TYPE__XML
-#define SOAP_TYPE__XML (6)
-typedef char *_XML;
-#endif
-
-
-/******************************************************************************\
- * *
- * Externals *
- * *
-\******************************************************************************/
-
-
-#endif
-
-/* End of envStub.h */
diff --git a/usr/src/lib/libkmsagent/common/SOAP/stdsoap2.cpp b/usr/src/lib/libkmsagent/common/SOAP/stdsoap2.cpp
deleted file mode 100644
index 725f64b08b..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/stdsoap2.cpp
+++ /dev/null
@@ -1,15632 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-/*
- stdsoap2.c[pp] 2.7.17
-
- gSOAP runtime engine
-
-gSOAP XML Web services tools
-Copyright (C) 2000-2010, Robert van Engelen, Genivia Inc., All Rights Reserved.
-This part of the software is released under ONE of the following licenses:
-GPL, or the gSOAP public license, or Genivia's license for commercial use.
---------------------------------------------------------------------------------
-Contributors:
-
-Oracle, Inc. - additions are noted in the code commented with
-"Oracle customization"
- - customization of the SSL accept timeout
- - work around for SSL_Sleep reporting closed connection
- - Function ssl_auth_init was static, but is now exported for external override
- - redirection of gSoap debug logs when debug builds enabled
- - added SSL_CTX_set_cipher_list call to restrict the cipher suite to RSA-2048/AES
- TLS_RSA_WITH_AES_256_CBC_SHA is defined in RFC 3268
- also see http://www.openssl.org/docs/apps/ciphers.html
- - Added SSL_OP_NO_SSLv3 to force use of TLS
- - bug fix: added call to close socket handle in various places noted in the code,
- since the caller overwrites soap->socket with the return value
- - compile warning cleanup
-
-
- Wind River Systems Inc., for the following additions under gSOAP public license:
- - vxWorks compatible
---------------------------------------------------------------------------------
-gSOAP public license.
-
-The contents of this file are subject to the gSOAP Public License Version 1.3
-(the "License"); you may not use this file except in compliance with the
-License. You may obtain a copy of the License at
-http://www.cs.fsu.edu/~engelen/soaplicense.html
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the License.
-
-The Initial Developer of the Original Code is Robert A. van Engelen.
-Copyright (C) 2000-2010, Robert van Engelen, Genivia Inc., All Rights Reserved.
---------------------------------------------------------------------------------
-GPL license.
-
-This program is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free Software
-Foundation; either version 2 of the License, or (at your option) any later
-version.
-
-This program is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program; if not, write to the Free Software Foundation, Inc., 59 Temple
-Place, Suite 330, Boston, MA 02111-1307 USA
-
-Author contact information:
-engelen@genivia.com / engelen@acm.org
-
-This program is released under the GPL with the additional exemption that
-compiling, linking, and/or using OpenSSL is allowed.
---------------------------------------------------------------------------------
-A commercial use license is available from Genivia, Inc., contact@genivia.com
---------------------------------------------------------------------------------
-
-Installation note:
-
-Win32 build needs winsock.dll (Visual C++ "wsock32.lib")
-To do this in Visual C++ 6.0, go to "Project", "settings", select the "Link"
-tab (the project file needs to be selected in the file view) and add
-"wsock32.lib" to the "Object/library modules" entry
-
-On Mac OS X with gcc (GCC) 3.1 20020420 (prerelease) you MUST compile with
--fstack_check when using -O2 because gcc 3.1 has a bug that smashes the stack
-when locally allocated data exceeds 64K.
-
-*/
-
-#ifdef AS400
-# pragma convert(819) /* EBCDIC to ASCII */
-#endif
-
-#include "stdsoap2.h"
-
-/*
- Oracle customization for OpenSSL 0.9.8 removal of deprecated function usage: RSA_generate_key
-*/
-#ifdef WITH_OPENSSL
-#ifdef OPENSSL_NO_DEPRECATED
-#include <openssl/rsa.h>
-#include <openssl/bn.h>
-#include <openssl/dh.h>
-#endif
-#endif
-
-#ifdef SOAP_MEM_DEBUG
-#ifndef WIN32
-#include <ucontext.h> /* Oracle customization (for printstack(3C)) */
-#endif
-#endif
-
-#ifdef __BORLANDC__
-# pragma warn -8060
-#else
-# ifdef WIN32
-# ifdef UNDER_CE
-# pragma comment(lib, "winsock.lib")
-# else
-# pragma comment(lib, "wsock32.lib")
-# endif
-# pragma warning(disable : 4996) /* disable deprecation warnings */
-# endif
-#endif
-
-#ifdef __cplusplus
-SOAP_SOURCE_STAMP("@(#) stdsoap2.cpp ver 2.7.17 2010-05-10 00:00:00 GMT")
-extern "C" {
-#else
-SOAP_SOURCE_STAMP("@(#) stdsoap2.c ver 2.7.17 2010-05-10 00:00:00 GMT")
-#endif
-
-/* 8bit character representing unknown/nonrepresentable character data (e.g. not supported by current locale with multibyte support enabled) */
-#ifndef SOAP_UNKNOWN_CHAR
-#define SOAP_UNKNOWN_CHAR (127)
-#endif
-
-/* EOF=-1 */
-#define SOAP_LT (soap_wchar)(-2) /* XML character '<' */
-#define SOAP_TT (soap_wchar)(-3) /* XML character '</' */
-#define SOAP_GT (soap_wchar)(-4) /* XML character '>' */
-#define SOAP_QT (soap_wchar)(-5) /* XML character '"' */
-#define SOAP_AP (soap_wchar)(-6) /* XML character ''' */
-
-#define soap_blank(c) ((c) >= 0 && (c) <= 32)
-#define soap_notblank(c) ((c) > 32)
-
-#if defined(WIN32) && !defined(UNDER_CE)
-#define soap_hash_ptr(p) ((PtrToUlong(p) >> 3) & (SOAP_PTRHASH - 1))
-#else
-#define soap_hash_ptr(p) ((size_t)(((unsigned long)(p) >> 3) & (SOAP_PTRHASH-1)))
-#endif
-
-#if !defined(WITH_LEAN) || defined(SOAP_DEBUG)
-static void soap_init_logs(struct soap*);
-#endif
-#ifdef SOAP_DEBUG
-static void soap_close_logfile(struct soap*, int);
-static void soap_set_logfile(struct soap*, int, const char*);
-#endif
-
-#ifdef SOAP_MEM_DEBUG
-static void soap_init_mht(struct soap*);
-static void soap_free_mht(struct soap*);
-static void soap_track_unlink(struct soap*, const void*);
-#endif
-
-#ifndef PALM_2
-static int soap_set_error(struct soap*, const char*, const char*, const char*, const char*, int);
-static int soap_copy_fault(struct soap*, const char*, const char*, const char*, const char*);
-static int soap_getattrval(struct soap*, char*, size_t, soap_wchar);
-#endif
-
-#ifndef PALM_1
-static void soap_free_ns(struct soap *soap);
-static soap_wchar soap_char(struct soap*);
-static soap_wchar soap_get_pi(struct soap*);
-static int soap_isxdigit(int);
-static void *fplugin(struct soap*, const char*);
-static char *soap_get_http_body(struct soap*);
-static size_t soap_count_attachments(struct soap *soap);
-static int soap_try_connect_command(struct soap*, int http_command, const char *endpoint, const char *action);
-#ifndef WITH_NOIDREF
-static void soap_update_ptrs(struct soap*, char*, char*, char*, char*);
-static int soap_has_copies(struct soap*, const char*, const char*);
-static void soap_init_iht(struct soap*);
-static void soap_free_iht(struct soap*);
-static void soap_init_pht(struct soap*);
-static void soap_free_pht(struct soap*);
-#endif
-#endif
-
-#ifndef WITH_LEAN
-static const char *soap_set_validation_fault(struct soap*, const char*, const char*);
-static int soap_isnumeric(struct soap*, const char*);
-static struct soap_nlist *soap_push_ns(struct soap *soap, const char *id, const char *ns, short utilized);
-static void soap_utilize_ns(struct soap *soap, const char *tag, size_t n);
-#endif
-
-#ifndef WITH_LEANER
-#ifndef PALM_1
-static struct soap_multipart *soap_new_multipart(struct soap*, struct soap_multipart**, struct soap_multipart**, char*, size_t);
-static int soap_putdimefield(struct soap*, const char*, size_t);
-static char *soap_getdimefield(struct soap*, size_t);
-static void soap_select_mime_boundary(struct soap*);
-static int soap_valid_mime_boundary(struct soap*);
-static void soap_resolve_attachment(struct soap*, struct soap_multipart*);
-#endif
-#endif
-
-#ifdef WITH_GZIP
-static int soap_getgziphdr(struct soap*);
-#endif
-
-#ifdef WITH_OPENSSL
-int soap_ssl_init_done = 0;
-
-//
-// Oracle customization
-//
-// Function ssl_auth_init was static, but is now exported for external override
-/*
-static int ssl_auth_init(struct soap*);
-*/
-int ssl_auth_init(struct soap*);
-static int ssl_verify_callback(int, X509_STORE_CTX*);
-static int ssl_verify_callback_allow_expired_certificate(int, X509_STORE_CTX*);
-static int ssl_password(char*, int, int, void *);
-#endif
-
-#if !defined(WITH_NOHTTP) || !defined(WITH_LEANER)
-#ifndef PALM_1
-static const char *soap_decode(char*, size_t, const char*, const char*);
-#endif
-#endif
-
-#ifndef WITH_NOHTTP
-#ifndef PALM_1
-static soap_wchar soap_getchunkchar(struct soap*);
-static const char *http_error(struct soap*, int);
-static int http_get(struct soap*);
-static int http_405(struct soap*);
-static int http_post(struct soap*, const char*, const char*, int, const char*, const char*, size_t);
-static int http_send_header(struct soap*, const char*);
-static int http_post_header(struct soap*, const char*, const char*);
-static int http_response(struct soap*, int, size_t);
-static int http_parse(struct soap*);
-static int http_parse_header(struct soap*, const char*, const char*);
-#endif
-#endif
-
-#ifndef WITH_NOIO
-
-#ifndef PALM_1
-static int fsend(struct soap*, const char*, size_t);
-static size_t frecv(struct soap*, char*, size_t);
-static int tcp_init(struct soap*);
-static const char *tcp_error(struct soap*);
-#ifndef WITH_IPV6
-static int tcp_gethost(struct soap*, const char *addr, struct in_addr *inaddr);
-#endif
-static SOAP_SOCKET tcp_connect(struct soap*, const char *endpoint, const char *host, int port);
-static SOAP_SOCKET tcp_accept(struct soap*, SOAP_SOCKET, struct sockaddr*, int*);
-static int tcp_select(struct soap*, SOAP_SOCKET, int, int);
-static int tcp_disconnect(struct soap*);
-static int tcp_closesocket(struct soap*, SOAP_SOCKET);
-static int tcp_shutdownsocket(struct soap*, SOAP_SOCKET, int);
-static const char *soap_strerror(struct soap*);
-#endif
-
-#define SOAP_TCP_SELECT_RCV 0x1
-#define SOAP_TCP_SELECT_SND 0x2
-#define SOAP_TCP_SELECT_ERR 0x4
-#define SOAP_TCP_SELECT_ALL 0x7
-
-#if defined(WIN32)
- #define SOAP_SOCKBLOCK(fd) \
- { u_long blocking = 0; \
- ioctlsocket(fd, FIONBIO, &blocking); \
- }
- #define SOAP_SOCKNONBLOCK(fd) \
- { u_long nonblocking = 1; \
- ioctlsocket(fd, FIONBIO, &nonblocking); \
- }
-#elif defined(VXWORKS)
- #define SOAP_SOCKBLOCK(fd) \
- { u_long blocking = 0; \
- ioctl(fd, FIONBIO, (int)(&blocking)); \
- }
- #define SOAP_SOCKNONBLOCK(fd) \
- { u_long nonblocking = 1; \
- ioctl(fd, FIONBIO, (int)(&nonblocking)); \
- }
-#elif defined(PALM)
- #define SOAP_SOCKBLOCK(fd) fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0)&~O_NONBLOCK);
- #define SOAP_SOCKNONBLOCK(fd) fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0)|O_NONBLOCK);
-#elif defined(SYMBIAN)
- #define SOAP_SOCKBLOCK(fd) \
- { long blocking = 0; \
- ioctl(fd, 0/*FIONBIO*/, &blocking); \
- }
- #define SOAP_SOCKNONBLOCK(fd) \
- { long nonblocking = 1; \
- ioctl(fd, 0/*FIONBIO*/, &nonblocking); \
- }
-#else
- #define SOAP_SOCKBLOCK(fd) fcntl(fd, F_SETFL, fcntl(fd, F_GETFL)&~O_NONBLOCK);
- #define SOAP_SOCKNONBLOCK(fd) fcntl(fd, F_SETFL, fcntl(fd, F_GETFL)|O_NONBLOCK);
-#endif
-
-#endif
-
-#if defined(PALM) && !defined(PALM_2)
-unsigned short errno;
-#endif
-
-#ifndef PALM_1
-static const char soap_env1[42] = "http://schemas.xmlsoap.org/soap/envelope/";
-static const char soap_enc1[42] = "http://schemas.xmlsoap.org/soap/encoding/";
-static const char soap_env2[40] = "http://www.w3.org/2003/05/soap-envelope";
-static const char soap_enc2[40] = "http://www.w3.org/2003/05/soap-encoding";
-static const char soap_rpc[35] = "http://www.w3.org/2003/05/soap-rpc";
-#endif
-
-#ifndef PALM_1
-const struct soap_double_nan soap_double_nan = {0xFFFFFFFF, 0xFFFFFFFF};
-static const char soap_base64o[65] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-static const char soap_base64i[81] = "\76XXX\77\64\65\66\67\70\71\72\73\74\75XXXXXXX\00\01\02\03\04\05\06\07\10\11\12\13\14\15\16\17\20\21\22\23\24\25\26\27\30\31XXXXXX\32\33\34\35\36\37\40\41\42\43\44\45\46\47\50\51\52\53\54\55\56\57\60\61\62\63";
-#endif
-
-#ifndef WITH_LEAN
-static const char soap_indent[11] = "\n\t\t\t\t\t\t\t\t\t";
-/* Alternative indentation form for SOAP_XML_INDENT:
-static const char soap_indent[21] = "\n ";
-*/
-#endif
-
-#ifndef SOAP_CANARY
-# define SOAP_CANARY (0xC0DE)
-#endif
-
-static const char soap_padding[4] = "\0\0\0";
-#define SOAP_STR_PADDING (soap_padding)
-#define SOAP_STR_EOS (soap_padding)
-#define SOAP_NON_NULL (soap_padding)
-
-#ifndef WITH_LEAN
-static const struct soap_code_map html_entity_codes[] = /* entities for XHTML parsing */
-{ { 160, "nbsp" },
- { 161, "iexcl" },
- { 162, "cent" },
- { 163, "pound" },
- { 164, "curren" },
- { 165, "yen" },
- { 166, "brvbar" },
- { 167, "sect" },
- { 168, "uml" },
- { 169, "copy" },
- { 170, "ordf" },
- { 171, "laquo" },
- { 172, "not" },
- { 173, "shy" },
- { 174, "reg" },
- { 175, "macr" },
- { 176, "deg" },
- { 177, "plusmn" },
- { 178, "sup2" },
- { 179, "sup3" },
- { 180, "acute" },
- { 181, "micro" },
- { 182, "para" },
- { 183, "middot" },
- { 184, "cedil" },
- { 185, "sup1" },
- { 186, "ordm" },
- { 187, "raquo" },
- { 188, "frac14" },
- { 189, "frac12" },
- { 190, "frac34" },
- { 191, "iquest" },
- { 192, "Agrave" },
- { 193, "Aacute" },
- { 194, "Acirc" },
- { 195, "Atilde" },
- { 196, "Auml" },
- { 197, "Aring" },
- { 198, "AElig" },
- { 199, "Ccedil" },
- { 200, "Egrave" },
- { 201, "Eacute" },
- { 202, "Ecirc" },
- { 203, "Euml" },
- { 204, "Igrave" },
- { 205, "Iacute" },
- { 206, "Icirc" },
- { 207, "Iuml" },
- { 208, "ETH" },
- { 209, "Ntilde" },
- { 210, "Ograve" },
- { 211, "Oacute" },
- { 212, "Ocirc" },
- { 213, "Otilde" },
- { 214, "Ouml" },
- { 215, "times" },
- { 216, "Oslash" },
- { 217, "Ugrave" },
- { 218, "Uacute" },
- { 219, "Ucirc" },
- { 220, "Uuml" },
- { 221, "Yacute" },
- { 222, "THORN" },
- { 223, "szlig" },
- { 224, "agrave" },
- { 225, "aacute" },
- { 226, "acirc" },
- { 227, "atilde" },
- { 228, "auml" },
- { 229, "aring" },
- { 230, "aelig" },
- { 231, "ccedil" },
- { 232, "egrave" },
- { 233, "eacute" },
- { 234, "ecirc" },
- { 235, "euml" },
- { 236, "igrave" },
- { 237, "iacute" },
- { 238, "icirc" },
- { 239, "iuml" },
- { 240, "eth" },
- { 241, "ntilde" },
- { 242, "ograve" },
- { 243, "oacute" },
- { 244, "ocirc" },
- { 245, "otilde" },
- { 246, "ouml" },
- { 247, "divide" },
- { 248, "oslash" },
- { 249, "ugrave" },
- { 250, "uacute" },
- { 251, "ucirc" },
- { 252, "uuml" },
- { 253, "yacute" },
- { 254, "thorn" },
- { 255, "yuml" },
- { 0, NULL }
-};
-#endif
-
-#ifndef WITH_NOIO
-#ifndef WITH_LEAN
-static const struct soap_code_map h_error_codes[] =
-{
-#ifdef HOST_NOT_FOUND
- { HOST_NOT_FOUND, "Host not found" },
-#endif
-#ifdef TRY_AGAIN
- { TRY_AGAIN, "Try Again" },
-#endif
-#ifdef NO_RECOVERY
- { NO_RECOVERY, "No Recovery" },
-#endif
-#ifdef NO_DATA
- { NO_DATA, "No Data" },
-#endif
-#ifdef NO_ADDRESS
- { NO_ADDRESS, "No Address" },
-#endif
- { 0, NULL }
-};
-#endif
-#endif
-
-#ifndef WITH_NOHTTP
-#ifndef WITH_LEAN
-static const struct soap_code_map h_http_error_codes[] =
-{ { 200, "OK" },
- { 201, "Created" },
- { 202, "Accepted" },
- { 203, "Non-Authoritative Information" },
- { 204, "No Content" },
- { 205, "Reset Content" },
- { 206, "Partial Content" },
- { 300, "Multiple Choices" },
- { 301, "Moved Permanently" },
- { 302, "Found" },
- { 303, "See Other" },
- { 304, "Not Modified" },
- { 305, "Use Proxy" },
- { 307, "Temporary Redirect" },
- { 400, "Bad Request" },
- { 401, "Unauthorized" },
- { 402, "Payment Required" },
- { 403, "Forbidden" },
- { 404, "Not Found" },
- { 405, "Method Not Allowed" },
- { 406, "Not Acceptable" },
- { 407, "Proxy Authentication Required" },
- { 408, "Request Time-out" },
- { 409, "Conflict" },
- { 410, "Gone" },
- { 411, "Length Required" },
- { 412, "Precondition Failed" },
- { 413, "Request Entity Too Large" },
- { 414, "Request-URI Too Large" },
- { 415, "Unsupported Media Type" },
- { 416, "Requested range not satisfiable" },
- { 417, "Expectation Failed" },
- { 500, "Internal Server Error" },
- { 501, "Not Implemented" },
- { 502, "Bad Gateway" },
- { 503, "Service Unavailable" },
- { 504, "Gateway Time-out" },
- { 505, "HTTP Version not supported" },
- { 0, NULL }
-};
-#endif
-#endif
-
-#ifdef WITH_OPENSSL
-static const struct soap_code_map h_ssl_error_codes[] =
-{
-#define _SSL_ERROR(e) { e, #e }
- _SSL_ERROR(SSL_ERROR_SSL),
- _SSL_ERROR(SSL_ERROR_ZERO_RETURN),
- _SSL_ERROR(SSL_ERROR_WANT_READ),
- _SSL_ERROR(SSL_ERROR_WANT_WRITE),
- _SSL_ERROR(SSL_ERROR_WANT_CONNECT),
- _SSL_ERROR(SSL_ERROR_WANT_X509_LOOKUP),
- _SSL_ERROR(SSL_ERROR_SYSCALL),
- { 0, NULL }
-};
-#endif
-
-#ifndef WITH_LEANER
-static const struct soap_code_map mime_codes[] =
-{ { SOAP_MIME_7BIT, "7bit" },
- { SOAP_MIME_8BIT, "8bit" },
- { SOAP_MIME_BINARY, "binary" },
- { SOAP_MIME_QUOTED_PRINTABLE, "quoted-printable" },
- { SOAP_MIME_BASE64, "base64" },
- { SOAP_MIME_IETF_TOKEN, "ietf-token" },
- { SOAP_MIME_X_TOKEN, "x-token" },
- { 0, NULL }
-};
-#endif
-
-#ifdef WIN32
-static int tcp_done = 0;
-#endif
-
-#if defined(HP_UX) && defined(HAVE_GETHOSTBYNAME_R)
-extern int h_errno;
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIO
-#ifndef PALM_1
-static int
-fsend(struct soap *soap, const char *s, size_t n)
-{ register int nwritten, err;
-#if defined(__cplusplus) && !defined(WITH_LEAN) && !defined(WITH_COMPAT)
- if (soap->os)
- { soap->os->write(s, (std::streamsize)n);
- if (soap->os->good())
- return SOAP_OK;
- soap->errnum = 0;
- return SOAP_EOF;
- }
-#endif
- while (n)
- { if (soap_valid_socket(soap->socket))
- {
- if (soap->send_timeout)
- { for (;;)
- { register int r;
-#ifdef WITH_OPENSSL
- if (soap->ssl)
- r = tcp_select(soap, soap->socket, SOAP_TCP_SELECT_ALL, soap->send_timeout);
- else
-#endif
- r = tcp_select(soap, soap->socket, SOAP_TCP_SELECT_SND | SOAP_TCP_SELECT_ERR, soap->send_timeout);
- if (r > 0)
- break;
- if (!r)
- return SOAP_EOF;
- err = soap->errnum;
- if (!err)
- return soap->error;
- if (err != SOAP_EINTR && err != SOAP_EAGAIN && err != SOAP_EWOULDBLOCK)
- return SOAP_EOF;
- }
- }
-#ifdef WITH_OPENSSL
- if (soap->ssl)
- nwritten = SSL_write(soap->ssl, s, (int)n);
- else if (soap->bio)
- nwritten = BIO_write(soap->bio, s, (int)n);
- else
-#endif
-#ifndef WITH_LEAN
- if ((soap->omode & SOAP_IO_UDP))
- { if (soap->peerlen)
- nwritten = sendto(soap->socket, (char*)s, (SOAP_WINSOCKINT)n, soap->socket_flags, (struct sockaddr*)&soap->peer, (SOAP_WINSOCKINT)soap->peerlen);
- else
- nwritten = send(soap->socket, s, (SOAP_WINSOCKINT)n, soap->socket_flags);
- /* retry and back-off algorithm */
- /* TODO: this is not very clear from specs so verify and limit conditions under which we should loop (e.g. ENOBUFS) */
- if (nwritten < 0)
- { int udp_repeat;
- int udp_delay;
- if ((soap->connect_flags & SO_BROADCAST))
- udp_repeat = 3; /* SOAP-over-UDP MULTICAST_UDP_REPEAT - 1 */
- else
- udp_repeat = 1; /* SOAP-over-UDP UNICAST_UDP_REPEAT - 1 */
- udp_delay = (soap_random % 201) + 50; /* UDP_MIN_DELAY .. UDP_MAX_DELAY */
- do
- { tcp_select(soap, soap->socket, SOAP_TCP_SELECT_ERR, -1000 * udp_delay);
- if (soap->peerlen)
- nwritten = sendto(soap->socket, (char*)s, (SOAP_WINSOCKINT)n, soap->socket_flags, (struct sockaddr*)&soap->peer, (SOAP_WINSOCKINT)soap->peerlen);
- else
- nwritten = send(soap->socket, s, (SOAP_WINSOCKINT)n, soap->socket_flags);
- udp_delay <<= 1;
- if (udp_delay > 500) /* UDP_UPPER_DELAY */
- udp_delay = 500;
- }
- while (nwritten < 0 && --udp_repeat > 0);
- }
- }
- else
-#endif
-#if !defined(PALM) && !defined(AS400)
- nwritten = send(soap->socket, s, (int)n, soap->socket_flags);
-#else
- nwritten = send(soap->socket, (void*)s, n, soap->socket_flags);
-#endif
- if (nwritten <= 0)
- {
- register int r = 0;
- err = soap_socket_errno(soap->socket);
-#ifdef WITH_OPENSSL
- if (soap->ssl && (r = SSL_get_error(soap->ssl, nwritten)) != SSL_ERROR_NONE && r != SSL_ERROR_WANT_READ && r != SSL_ERROR_WANT_WRITE)
- { soap->errnum = err;
- return SOAP_EOF;
- }
-#endif
- if (err == SOAP_EWOULDBLOCK || err == SOAP_EAGAIN)
- {
-#ifdef WITH_OPENSSL
- if (soap->ssl && r == SSL_ERROR_WANT_READ)
- r = tcp_select(soap, soap->socket, SOAP_TCP_SELECT_RCV | SOAP_TCP_SELECT_ERR, soap->send_timeout ? soap->send_timeout : -10000);
- else
- r = tcp_select(soap, soap->socket, SOAP_TCP_SELECT_SND | SOAP_TCP_SELECT_ERR, soap->send_timeout ? soap->send_timeout : -10000);
-#else
- r = tcp_select(soap, soap->socket, SOAP_TCP_SELECT_SND | SOAP_TCP_SELECT_ERR, soap->send_timeout ? soap->send_timeout : -10000);
-#endif
- if (!r && soap->send_timeout)
- return SOAP_EOF;
- if (r < 0 && soap->errnum != SOAP_EINTR)
- return SOAP_EOF;
- }
- else if (err && err != SOAP_EINTR)
- { soap->errnum = err;
- return SOAP_EOF;
- }
- nwritten = 0; /* and call write() again */
- }
- }
- else
- {
-#ifdef WITH_FASTCGI
- nwritten = fwrite((void*)s, 1, n, stdout);
- fflush(stdout);
-#else
-#ifdef UNDER_CE
- nwritten = fwrite(s, 1, n, soap->sendfd);
-#else
-#ifdef VXWORKS
-#ifdef WMW_RPM_IO
- if (soap->rpmreqid)
- nwritten = (httpBlockPut(soap->rpmreqid, (char*)s, n) == 0) ? n : -1;
- else
-#endif
- nwritten = fwrite(s, sizeof(char), n, fdopen(soap->sendfd, "w"));
-#else
-#ifdef WIN32
- nwritten = _write(soap->sendfd, s, (unsigned int)n);
-#else
- nwritten = write(soap->sendfd, s, (unsigned int)n);
-#endif
-#endif
-#endif
-#endif
- if (nwritten <= 0)
- {
-#ifndef WITH_FASTCGI
- err = soap_errno;
-#else
- err = EOF;
-#endif
- if (err && err != SOAP_EINTR && err != SOAP_EWOULDBLOCK && err != SOAP_EAGAIN)
- { soap->errnum = err;
- return SOAP_EOF;
- }
- nwritten = 0; /* and call write() again */
- }
- }
- n -= nwritten;
- s += nwritten;
- }
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_send_raw(struct soap *soap, const char *s, size_t n)
-{ if (!n)
- return SOAP_OK;
- if (soap->mode & SOAP_IO_LENGTH)
- { soap->count += n;
-#ifndef WITH_LEANER
- if (soap->fpreparesend && (soap->mode & SOAP_IO) != SOAP_IO_STORE)
- return soap->error = soap->fpreparesend(soap, s, n);
-#endif
- return SOAP_OK;
- }
- if (soap->mode & SOAP_IO)
- { register size_t i = SOAP_BUFLEN - soap->bufidx;
- while (n >= i)
- { memcpy(soap->buf + soap->bufidx, s, i);
- soap->bufidx = SOAP_BUFLEN;
- if (soap_flush(soap))
- return soap->error;
- s += i;
- n -= i;
- i = SOAP_BUFLEN;
- }
- memcpy(soap->buf + soap->bufidx, s, n);
- soap->bufidx += n;
- return SOAP_OK;
- }
- return soap_flush_raw(soap, s, n);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_flush(struct soap *soap)
-{ register size_t n = soap->bufidx;
- if (n)
- {
-#ifndef WITH_LEANER
- if ((soap->mode & SOAP_IO) == SOAP_IO_STORE)
- { register int r;
- if (soap->fpreparesend && (r = soap->fpreparesend(soap, soap->buf, n)))
- return soap->error = r;
- }
-#endif
- soap->bufidx = 0;
-#ifdef WITH_ZLIB
- if (soap->mode & SOAP_ENC_ZLIB)
- { soap->d_stream->next_in = (Byte*)soap->buf;
- soap->d_stream->avail_in = (unsigned int)n;
-#ifdef WITH_GZIP
- soap->z_crc = crc32(soap->z_crc, (Byte*)soap->buf, (unsigned int)n);
-#endif
- do
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Deflating %u bytes\n", soap->d_stream->avail_in));
- if (deflate(soap->d_stream, Z_NO_FLUSH) != Z_OK)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Unable to deflate: %s\n", soap->d_stream->msg?soap->d_stream->msg:SOAP_STR_EOS));
- return soap->error = SOAP_ZLIB_ERROR;
- }
- if (!soap->d_stream->avail_out)
- { if (soap_flush_raw(soap, soap->z_buf, SOAP_BUFLEN))
- return soap->error;
- soap->d_stream->next_out = (Byte*)soap->z_buf;
- soap->d_stream->avail_out = SOAP_BUFLEN;
- }
- } while (soap->d_stream->avail_in);
- }
- else
-#endif
- return soap_flush_raw(soap, soap->buf, n);
- }
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_flush_raw(struct soap *soap, const char *s, size_t n)
-{ if ((soap->mode & SOAP_IO) == SOAP_IO_STORE)
- { register char *t;
- if (!(t = (char*)soap_push_block(soap, NULL, n)))
- return soap->error = SOAP_EOM;
- memcpy(t, s, n);
- return SOAP_OK;
- }
-#ifndef WITH_LEANER
- if ((soap->mode & SOAP_IO) == SOAP_IO_CHUNK)
- { char t[16];
- sprintf(t, "\r\n%lX\r\n" + (soap->chunksize ? 0 : 2), (unsigned long)n);
- DBGMSG(SENT, t, strlen(t));
- if ((soap->error = soap->fsend(soap, t, strlen(t))))
- return soap->error;
- soap->chunksize += n;
- }
- DBGMSG(SENT, s, n);
-#endif
- return soap->error = soap->fsend(soap, s, n);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_send(struct soap *soap, const char *s)
-{ if (s)
- return soap_send_raw(soap, s, strlen(s));
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_send2(struct soap *soap, const char *s1, const char *s2)
-{ if (soap_send(soap, s1))
- return soap->error;
- return soap_send(soap, s2);
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_send3(struct soap *soap, const char *s1, const char *s2, const char *s3)
-{ if (soap_send(soap, s1)
- || soap_send(soap, s2))
- return soap->error;
- return soap_send(soap, s3);
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIO
-#ifndef PALM_1
-static size_t
-frecv(struct soap *soap, char *s, size_t n)
-{ register int r;
- register int retries = 100; /* max 100 retries with non-blocking sockets */
- soap->errnum = 0;
-#if defined(__cplusplus) && !defined(WITH_LEAN) && !defined(WITH_COMPAT)
- if (soap->is)
- { if (soap->is->good())
- return soap->is->read(s, (std::streamsize)n).gcount();
- return 0;
- }
-#endif
- if (soap_valid_socket(soap->socket))
- { for (;;)
- {
-#ifdef WITH_OPENSSL
- register int err = 0;
-#endif
-#ifdef WITH_OPENSSL
- if (soap->recv_timeout && !soap->ssl) /* SSL: sockets are nonblocking */
-#else
- if (soap->recv_timeout)
-#endif
- { for (;;)
- { r = tcp_select(soap, soap->socket, SOAP_TCP_SELECT_RCV | SOAP_TCP_SELECT_ERR, soap->recv_timeout);
- if (r > 0)
- break;
- if (!r)
- return 0;
- r = soap->errnum;
- if (r != SOAP_EINTR && r != SOAP_EAGAIN && r != SOAP_EWOULDBLOCK)
- return 0;
- }
- }
-#ifdef WITH_OPENSSL
- if (soap->ssl)
- { r = SSL_read(soap->ssl, s, (int)n);
- if (r > 0)
- return (size_t)r;
- err = SSL_get_error(soap->ssl, r);
- if (err != SSL_ERROR_NONE && err != SSL_ERROR_WANT_READ && err != SSL_ERROR_WANT_WRITE)
- return 0;
- }
- else if (soap->bio)
- { r = BIO_read(soap->bio, s, (int)n);
- if (r > 0)
- return (size_t)r;
- return 0;
- }
- else
-#endif
- {
-#ifndef WITH_LEAN
- if ((soap->omode & SOAP_IO_UDP))
- { SOAP_SOCKLEN_T k = (SOAP_SOCKLEN_T)sizeof(soap->peer);
- memset((void*)&soap->peer, 0, sizeof(soap->peer));
- r = recvfrom(soap->socket, s, (SOAP_WINSOCKINT)n, soap->socket_flags, (struct sockaddr*)&soap->peer, &k); /* portability note: see SOAP_SOCKLEN_T definition in stdsoap2.h */
- soap->peerlen = (size_t)k;
-#ifndef WITH_IPV6
- soap->ip = ntohl(soap->peer.sin_addr.s_addr);
-#endif
- }
- else
-#endif
- r = recv(soap->socket, s, (int)n, soap->socket_flags);
-#ifdef PALM
- /* CycleSyncDisplay(curStatusMsg); */
-#endif
- if (r >= 0)
- return (size_t)r;
- r = soap_socket_errno(soap->socket);
- if (r != SOAP_EINTR && r != SOAP_EAGAIN && r != SOAP_EWOULDBLOCK)
- { soap->errnum = r;
- return 0;
- }
- }
-#ifdef WITH_OPENSSL
- if (soap->ssl && err == SSL_ERROR_WANT_WRITE)
- r = tcp_select(soap, soap->socket, SOAP_TCP_SELECT_SND | SOAP_TCP_SELECT_ERR, soap->recv_timeout ? soap->recv_timeout : 5);
- else
- r = tcp_select(soap, soap->socket, SOAP_TCP_SELECT_RCV | SOAP_TCP_SELECT_ERR, soap->recv_timeout ? soap->recv_timeout : 5);
-#else
- r = tcp_select(soap, soap->socket, SOAP_TCP_SELECT_RCV | SOAP_TCP_SELECT_ERR, soap->recv_timeout ? soap->recv_timeout : 5);
-#endif
- if (!r && soap->recv_timeout)
- return 0;
- if (r < 0)
- { r = soap->errnum;
- if (r != SOAP_EINTR && r != SOAP_EAGAIN && r != SOAP_EWOULDBLOCK)
- return 0;
- }
- if (retries-- <= 0)
- return 0;
-#ifdef PALM
- r = soap_socket_errno(soap->socket);
- if (r != SOAP_EINTR && retries-- <= 0)
- { soap->errnum = r;
- return 0;
- }
-#endif
- }
- }
-#ifdef WITH_FASTCGI
- return fread(s, 1, n, stdin);
-#else
-#ifdef UNDER_CE
- return fread(s, 1, n, soap->recvfd);
-#else
-#ifdef WMW_RPM_IO
- if (soap->rpmreqid)
- r = httpBlockRead(soap->rpmreqid, s, n);
- else
-#endif
-#ifdef WIN32
- r = _read(soap->recvfd, s, (unsigned int)n);
-#else
- r = read(soap->recvfd, s, (unsigned int)n);
-#endif
- if (r >= 0)
- return (size_t)r;
- soap->errnum = soap_errno;
- return 0;
-#endif
-#endif
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOHTTP
-#ifndef PALM_1
-static soap_wchar
-soap_getchunkchar(struct soap *soap)
-{ if (soap->bufidx < soap->buflen)
- return soap->buf[soap->bufidx++];
- soap->bufidx = 0;
- soap->buflen = soap->chunkbuflen = soap->frecv(soap, soap->buf, SOAP_BUFLEN);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Read %u bytes from socket %d\n", (unsigned int)soap->buflen, soap->socket));
- DBGMSG(RECV, soap->buf, soap->buflen);
- if (soap->buflen)
- return soap->buf[soap->bufidx++];
- return EOF;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-static int
-soap_isxdigit(int c)
-{ return (c >= '0' && c <= '9') || (c >= 'A' && c <= 'F') || (c >= 'a' && c <= 'f');
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_recv_raw(struct soap *soap)
-{ register size_t ret;
-#if !defined(WITH_LEANER) || defined(WITH_ZLIB)
- register int r;
-#endif
-#ifdef WITH_ZLIB
- if (soap->mode & SOAP_ENC_ZLIB)
- { if (soap->d_stream->next_out == Z_NULL)
- return EOF;
- if (soap->d_stream->avail_in || !soap->d_stream->avail_out)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Inflating\n"));
- soap->d_stream->next_out = (Byte*)soap->buf;
- soap->d_stream->avail_out = SOAP_BUFLEN;
- r = inflate(soap->d_stream, Z_NO_FLUSH);
- if (r == Z_NEED_DICT && soap->z_dict)
- r = inflateSetDictionary(soap->d_stream, (const Bytef*)soap->z_dict, soap->z_dict_len);
- if (r == Z_OK || r == Z_STREAM_END)
- { soap->bufidx = 0;
- ret = soap->buflen = SOAP_BUFLEN - soap->d_stream->avail_out;
- if (soap->zlib_in == SOAP_ZLIB_GZIP)
- soap->z_crc = crc32(soap->z_crc, (Byte*)soap->buf, (unsigned int)ret);
- if (r == Z_STREAM_END)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Inflated %lu->%lu bytes\n", soap->d_stream->total_in, soap->d_stream->total_out));
- soap->z_ratio_in = (float)soap->d_stream->total_in / (float)soap->d_stream->total_out;
- soap->d_stream->next_out = Z_NULL;
- }
- if (ret)
- { soap->count += ret;
- DBGLOG(RECV, SOAP_MESSAGE(fdebug, "\n---- decompressed ----\n"));
- DBGMSG(RECV, soap->buf, ret);
- DBGLOG(RECV, SOAP_MESSAGE(fdebug, "\n----\n"));
-#ifndef WITH_LEANER
- if (soap->fpreparerecv && (r = soap->fpreparerecv(soap, soap->buf, ret)))
- return soap->error = r;
-#endif
- return SOAP_OK;
- }
- }
- else if (r != Z_BUF_ERROR)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Inflate error: %s\n", soap->d_stream->msg?soap->d_stream->msg:SOAP_STR_EOS));
- soap->d_stream->next_out = Z_NULL;
- soap->error = SOAP_ZLIB_ERROR;
- return EOF;
- }
- }
-zlib_again:
- if ((soap->mode & SOAP_IO) == SOAP_IO_CHUNK && !soap->chunksize)
- { memcpy(soap->buf, soap->z_buf, SOAP_BUFLEN);
- soap->buflen = soap->z_buflen;
- }
- DBGLOG(RECV, SOAP_MESSAGE(fdebug, "\n---- compressed ----\n"));
- }
-#endif
-#ifndef WITH_NOHTTP
- if ((soap->mode & SOAP_IO) == SOAP_IO_CHUNK) /* read HTTP chunked transfer */
- { for (;;)
- { register soap_wchar c;
- char *t, tmp[8];
- if (soap->chunksize)
- { soap->buflen = ret = soap->frecv(soap, soap->buf, soap->chunksize > SOAP_BUFLEN ? SOAP_BUFLEN : soap->chunksize);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Getting chunk: read %u bytes\n", (unsigned int)ret));
- DBGMSG(RECV, soap->buf, ret);
- soap->bufidx = 0;
- soap->chunksize -= ret;
- break;
- }
- t = tmp;
- if (!soap->chunkbuflen)
- { soap->chunkbuflen = ret = soap->frecv(soap, soap->buf, SOAP_BUFLEN);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Read %u bytes (chunked) from socket %d\n", (unsigned int)ret, soap->socket));
- DBGMSG(RECV, soap->buf, ret);
- soap->bufidx = 0;
- if (!ret)
- return soap->ahead = EOF;
- }
- else
- soap->bufidx = soap->buflen;
- soap->buflen = soap->chunkbuflen;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Getting chunk size (idx=%u len=%u)\n", (unsigned int)soap->bufidx, (unsigned int)soap->buflen));
- while (!soap_isxdigit((int)(c = soap_getchunkchar(soap))))
- { if ((int)c == EOF)
- return soap->ahead = EOF;
- }
- do
- *t++ = (char)c;
- while (soap_isxdigit((int)(c = soap_getchunkchar(soap))) && t - tmp < 7);
- while ((int)c != EOF && c != '\n')
- c = soap_getchunkchar(soap);
- if ((int)c == EOF)
- return soap->ahead = EOF;
- *t = '\0';
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Chunk size = %s (hex)\n", tmp));
- soap->chunksize = soap_strtoul(tmp, &t, 16);
- if (!soap->chunksize)
- { soap->chunkbuflen = 0;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "End of chunked message\n"));
- while ((int)c != EOF && c != '\n')
- c = soap_getchunkchar(soap);
- ret = 0;
- soap->ahead = EOF;
- break;
- }
- soap->buflen = soap->bufidx + soap->chunksize;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Moving buf len to idx=%u len=%u (%s)\n", (unsigned int)soap->bufidx, (unsigned int)soap->buflen, tmp));
- if (soap->buflen > soap->chunkbuflen)
- { soap->buflen = soap->chunkbuflen;
- soap->chunksize -= soap->buflen - soap->bufidx;
- soap->chunkbuflen = 0;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Passed end of buffer for chunked HTTP (%u bytes left)\n", (unsigned int)(soap->buflen - soap->bufidx)));
- }
- else if (soap->chunkbuflen)
- soap->chunksize = 0;
- ret = soap->buflen - soap->bufidx;
- if (ret)
- break;
- }
- }
- else
-#endif
- { soap->bufidx = 0;
- soap->buflen = ret = soap->frecv(soap, soap->buf, SOAP_BUFLEN);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Read %u bytes from socket %d\n", (unsigned int)ret, soap->socket));
- DBGMSG(RECV, soap->buf, ret);
- }
-#ifdef WITH_ZLIB
- if (soap->mode & SOAP_ENC_ZLIB)
- { memcpy(soap->z_buf, soap->buf, SOAP_BUFLEN);
- soap->d_stream->next_in = (Byte*)(soap->z_buf + soap->bufidx);
- soap->d_stream->avail_in = (unsigned int)ret;
- soap->d_stream->next_out = (Byte*)soap->buf;
- soap->d_stream->avail_out = SOAP_BUFLEN;
- r = inflate(soap->d_stream, Z_NO_FLUSH);
- if (r == Z_NEED_DICT && soap->z_dict)
- r = inflateSetDictionary(soap->d_stream, (const Bytef*)soap->z_dict, soap->z_dict_len);
- if (r == Z_OK || r == Z_STREAM_END)
- { soap->bufidx = 0;
- soap->z_buflen = soap->buflen;
- soap->buflen = SOAP_BUFLEN - soap->d_stream->avail_out;
- if (soap->zlib_in == SOAP_ZLIB_GZIP)
- soap->z_crc = crc32(soap->z_crc, (Byte*)soap->buf, (unsigned int)soap->buflen);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Inflated %u bytes\n", (unsigned int)soap->buflen));
- if (ret && !soap->buflen && r != Z_STREAM_END)
- goto zlib_again;
- ret = soap->buflen;
- if (r == Z_STREAM_END)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Inflated total %lu->%lu bytes\n", soap->d_stream->total_in, soap->d_stream->total_out));
- soap->z_ratio_in = (float)soap->d_stream->total_in / (float)soap->d_stream->total_out;
- soap->d_stream->next_out = Z_NULL;
- }
- DBGLOG(RECV, SOAP_MESSAGE(fdebug, "\n---- decompressed ----\n"));
- DBGMSG(RECV, soap->buf, ret);
-#ifndef WITH_LEANER
- if (soap->fpreparerecv && (r = soap->fpreparerecv(soap, soap->buf, ret)))
- return soap->error = r;
-#endif
- }
- else
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Unable to inflate: (%d) %s\n", r, soap->d_stream->msg?soap->d_stream->msg:SOAP_STR_EOS));
- soap->d_stream->next_out = Z_NULL;
- soap->error = SOAP_ZLIB_ERROR;
- return EOF;
- }
- }
-#endif
-#ifndef WITH_LEANER
- if (soap->fpreparerecv
-#ifdef WITH_ZLIB
- && soap->zlib_in == SOAP_ZLIB_NONE
-#endif
- && (r = soap->fpreparerecv(soap, soap->buf + soap->bufidx, ret)))
- return soap->error = r;
-#endif
- soap->count += ret;
- return !ret;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_recv(struct soap *soap)
-{
-#ifndef WITH_LEANER
- if (soap->mode & SOAP_ENC_DIME)
- { if (soap->dime.buflen)
- { char *s;
- int i;
- unsigned char tmp[12];
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "DIME hdr for chunked DIME is in buffer\n"));
- soap->count += soap->dime.buflen - soap->buflen;
- soap->buflen = soap->dime.buflen;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Skip padding (%ld bytes)\n", -(long)soap->dime.size&3));
- for (i = -(long)soap->dime.size&3; i > 0; i--)
- { soap->bufidx++;
- if (soap->bufidx >= soap->buflen)
- if (soap_recv_raw(soap))
- return EOF;
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Get DIME hdr for next chunk\n"));
- s = (char*)tmp;
- for (i = 12; i > 0; i--)
- { *s++ = soap->buf[soap->bufidx++];
- if (soap->bufidx >= soap->buflen)
- if (soap_recv_raw(soap))
- return EOF;
- }
- soap->dime.flags = tmp[0] & 0x7;
- soap->dime.size = ((size_t)tmp[8] << 24) | ((size_t)tmp[9] << 16) | ((size_t)tmp[10] << 8) | ((size_t)tmp[11]);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Get DIME chunk (%u bytes)\n", (unsigned int)soap->dime.size));
- if (soap->dime.flags & SOAP_DIME_CF)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "More chunking\n"));
- soap->dime.chunksize = soap->dime.size;
- if (soap->buflen - soap->bufidx >= soap->dime.size)
- { soap->dime.buflen = soap->buflen;
- soap->buflen = soap->bufidx + soap->dime.chunksize;
- }
- else
- soap->dime.chunksize -= soap->buflen - soap->bufidx;
- }
- else
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Last chunk\n"));
- soap->dime.buflen = 0;
- soap->dime.chunksize = 0;
- }
- soap->count = soap->buflen - soap->bufidx;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "%u bytes remaining\n", (unsigned int)soap->count));
- return SOAP_OK;
- }
- if (soap->dime.chunksize)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Get next DIME hdr for chunked DIME (%u bytes chunk)\n", (unsigned int)soap->dime.chunksize));
- if (soap_recv_raw(soap))
- return EOF;
- if (soap->buflen - soap->bufidx >= soap->dime.chunksize)
- { soap->dime.buflen = soap->buflen;
- soap->count -= soap->buflen - soap->bufidx - soap->dime.chunksize;
- soap->buflen = soap->bufidx + soap->dime.chunksize;
- }
- else
- soap->dime.chunksize -= soap->buflen - soap->bufidx;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "%lu bytes remaining, count=%u\n", (unsigned long)(soap->buflen-soap->bufidx), (unsigned int)soap->count));
- return SOAP_OK;
- }
- }
-#endif
- return soap_recv_raw(soap);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-soap_wchar
-SOAP_FMAC2
-soap_getchar(struct soap *soap)
-{ register soap_wchar c;
- c = soap->ahead;
- if (c)
- { if (c != EOF)
- soap->ahead = 0;
- return c;
- }
- return soap_get1(soap);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-const struct soap_code_map*
-SOAP_FMAC2
-soap_code(const struct soap_code_map *code_map, const char *str)
-{ if (code_map && str)
- { while (code_map->string)
- { if (!strcmp(str, code_map->string)) /* case sensitive */
- return code_map;
- code_map++;
- }
- }
- return NULL;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-long
-SOAP_FMAC2
-soap_code_int(const struct soap_code_map *code_map, const char *str, long other)
-{ if (code_map)
- { while (code_map->string)
- { if (!soap_tag_cmp(str, code_map->string)) /* case insensitive */
- return code_map->code;
- code_map++;
- }
- }
- return other;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_code_str(const struct soap_code_map *code_map, long code)
-{ if (!code_map)
- return NULL;
- while (code_map->code != code && code_map->string)
- code_map++;
- return code_map->string;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-long
-SOAP_FMAC2
-soap_code_bits(const struct soap_code_map *code_map, const char *str)
-{ register long bits = 0;
- if (code_map)
- { while (str && *str)
- { const struct soap_code_map *p;
- for (p = code_map; p->string; p++)
- { register size_t n = strlen(p->string);
- if (!strncmp(p->string, str, n) && soap_blank(str[n]))
- { bits |= p->code;
- str += n;
- while (*str > 0 && *str <= 32)
- str++;
- break;
- }
- }
- if (!p->string)
- return 0;
- }
- }
- return bits;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_code_list(struct soap *soap, const struct soap_code_map *code_map, long code)
-{ register char *t = soap->tmpbuf;
- if (code_map)
- { while (code_map->string)
- { if (code_map->code & code)
- { register const char *s = code_map->string;
- if (t != soap->tmpbuf)
- *t++ = ' ';
- while (*s && t < soap->tmpbuf + sizeof(soap->tmpbuf) - 1)
- *t++ = *s++;
- if (t == soap->tmpbuf + sizeof(soap->tmpbuf) - 1)
- break;
- }
- code_map++;
- }
- }
- *t = '\0';
- return soap->tmpbuf;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-static soap_wchar
-soap_char(struct soap *soap)
-{ char tmp[8];
- register int i;
- register soap_wchar c;
- register char *s = tmp;
- for (i = 0; i < 7; i++)
- { c = soap_get1(soap);
- if (c == ';' || (int)c == EOF)
- break;
- *s++ = (char)c;
- }
- *s = '\0';
- if (*tmp == '#')
- { if (tmp[1] == 'x' || tmp[1] == 'X')
- return (soap_wchar)soap_strtol(tmp + 2, NULL, 16);
- return (soap_wchar)soap_strtol(tmp + 1, NULL, 10);
- }
- if (!strcmp(tmp, "lt"))
- return '<';
- if (!strcmp(tmp, "gt"))
- return '>';
- if (!strcmp(tmp, "amp"))
- return '&';
- if (!strcmp(tmp, "quot"))
- return '"';
- if (!strcmp(tmp, "apos"))
- return '\'';
-#ifndef WITH_LEAN
- return (soap_wchar)soap_code_int(html_entity_codes, tmp, SOAP_UNKNOWN_CHAR);
-#else
- return SOAP_UNKNOWN_CHAR; /* use this to represent unknown code */
-#endif
-}
-#endif
-
-/******************************************************************************/
-#ifdef WITH_LEAN
-#ifndef PALM_1
-soap_wchar
-soap_get0(struct soap *soap)
-{ if (soap->bufidx >= soap->buflen && soap_recv(soap))
- return EOF;
- return (unsigned char)soap->buf[soap->bufidx];
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifdef WITH_LEAN
-#ifndef PALM_1
-soap_wchar
-soap_get1(struct soap *soap)
-{ if (soap->bufidx >= soap->buflen && soap_recv(soap))
- return EOF;
- return (unsigned char)soap->buf[soap->bufidx++];
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-soap_wchar
-SOAP_FMAC2
-soap_get(struct soap *soap)
-{ register soap_wchar c;
- c = soap->ahead;
- if (c)
- { if ((int)c != EOF)
- soap->ahead = 0;
- }
- else
- c = soap_get1(soap);
- while ((int)c != EOF)
- { if (soap->cdata)
- { if (c == ']')
- { c = soap_get1(soap);
- if (c == ']')
- { c = soap_get0(soap);
- if (c == '>')
- { soap->cdata = 0;
- soap_get1(soap);
- c = soap_get1(soap);
- }
- else
- { soap_unget(soap, ']');
- return ']';
- }
- }
- else
- { soap_revget1(soap);
- return ']';
- }
- }
- else
- return c;
- }
- switch (c)
- { case '<':
- do c = soap_get1(soap);
- while (soap_blank(c));
- if (c == '!' || c == '?' || c == '%')
- { register int k = 1;
- if (c == '!')
- { c = soap_get1(soap);
- if (c == '[')
- { do c = soap_get1(soap);
- while ((int)c != EOF && c != '[');
- if ((int)c == EOF)
- break;
- soap->cdata = 1;
- c = soap_get1(soap);
- continue;
- }
- if (c == '-' && (c = soap_get1(soap)) == '-')
- { do
- { c = soap_get1(soap);
- if (c == '-' && (c = soap_get1(soap)) == '-')
- break;
- } while ((int)c != EOF);
- }
- }
- else if (c == '?')
- c = soap_get_pi(soap);
- while ((int)c != EOF)
- { if (c == '<')
- k++;
- else if (c == '>')
- { if (--k <= 0)
- break;
- }
- c = soap_get1(soap);
- }
- if ((int)c == EOF)
- break;
- c = soap_get1(soap);
- continue;
- }
- if (c == '/')
- return SOAP_TT;
- soap_revget1(soap);
- return SOAP_LT;
- case '>':
- return SOAP_GT;
- case '"':
- return SOAP_QT;
- case '\'':
- return SOAP_AP;
- case '&':
- return soap_char(soap) | 0x80000000;
- }
- break;
- }
- return c;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-static soap_wchar
-soap_get_pi(struct soap *soap)
-{ char buf[64];
- register char *s = buf;
- register int i = sizeof(buf);
- register soap_wchar c = soap_getchar(soap);
- /* This is a quick way to parse XML PI and we could use a callback instead to
- * enable applications to intercept processing instructions */
- while ((int)c != EOF && c != '?')
- { if (--i > 0)
- { if (soap_blank(c))
- c = ' ';
- *s++ = (char)c;
- }
- c = soap_getchar(soap);
- }
- *s = '\0';
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "XML PI <?%s?>\n", buf));
- if (!strncmp(buf, "xml ", 4))
- { s = strstr(buf, " encoding=");
- if (s && s[10])
- { if (!soap_tag_cmp(s + 11, "iso-8859-1*")
- || !soap_tag_cmp(s + 11, "latin1*"))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Switching to latin1 encoding\n"));
- soap->mode |= SOAP_ENC_LATIN;
- }
- else if (!soap_tag_cmp(s + 11, "utf-8*"))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Switching to utf-8 encoding\n"));
- soap->mode &= ~SOAP_ENC_LATIN;
- }
- }
- }
- if ((int)c != EOF)
- c = soap_getchar(soap);
- return c;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_move(struct soap *soap, long n)
-{ DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Moving %ld bytes forward\n", (long)n));
- for (; n > 0; n--)
- if ((int)soap_getchar(soap) == EOF)
- return SOAP_EOF;
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-size_t
-SOAP_FMAC2
-soap_tell(struct soap *soap)
-{ return soap->count - soap->buflen + soap->bufidx - (soap->ahead != 0);
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_pututf8(struct soap *soap, register unsigned long c)
-{ char tmp[16];
- if (c < 0x80 && c > 0)
- { *tmp = (char)c;
- return soap_send_raw(soap, tmp, 1);
- }
-#ifndef WITH_LEAN
- if (c >= 0x80)
- { register char *t = tmp;
- if (c < 0x0800)
- *t++ = (char)(0xC0 | ((c >> 6) & 0x1F));
- else
- { if (c < 0x010000)
- *t++ = (char)(0xE0 | ((c >> 12) & 0x0F));
- else
- { if (c < 0x200000)
- *t++ = (char)(0xF0 | ((c >> 18) & 0x07));
- else
- { if (c < 0x04000000)
- *t++ = (char)(0xF8 | ((c >> 24) & 0x03));
- else
- { *t++ = (char)(0xFC | ((c >> 30) & 0x01));
- *t++ = (char)(0x80 | ((c >> 24) & 0x3F));
- }
- *t++ = (char)(0x80 | ((c >> 18) & 0x3F));
- }
- *t++ = (char)(0x80 | ((c >> 12) & 0x3F));
- }
- *t++ = (char)(0x80 | ((c >> 6) & 0x3F));
- }
- *t++ = (char)(0x80 | (c & 0x3F));
- *t = '\0';
- }
-#else
- sprintf(tmp, "&#%lu;", c);
-#endif
- return soap_send(soap, tmp);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-soap_wchar
-SOAP_FMAC2
-soap_getutf8(struct soap *soap)
-{ register soap_wchar c, c1, c2, c3, c4;
- c = soap->ahead;
- if (c > 0x7F)
- { soap->ahead = 0;
- return c;
- }
- c = soap_get(soap);
- if (c < 0x80 || (soap->mode & SOAP_ENC_LATIN))
- return c;
- c1 = soap_get1(soap);
- if (c1 < 0x80)
- { soap_revget1(soap); /* doesn't look like this is UTF8 */
- return c;
- }
- c1 &= 0x3F;
- if (c < 0xE0)
- return ((soap_wchar)(c & 0x1F) << 6) | c1;
- c2 = (soap_wchar)soap_get1(soap) & 0x3F;
- if (c < 0xF0)
- return ((soap_wchar)(c & 0x0F) << 12) | (c1 << 6) | c2;
- c3 = (soap_wchar)soap_get1(soap) & 0x3F;
- if (c < 0xF8)
- return ((soap_wchar)(c & 0x07) << 18) | (c1 << 12) | (c2 << 6) | c3;
- c4 = (soap_wchar)soap_get1(soap) & 0x3F;
- if (c < 0xFC)
- return ((soap_wchar)(c & 0x03) << 24) | (c1 << 18) | (c2 << 12) | (c3 << 6) | c4;
- return ((soap_wchar)(c & 0x01) << 30) | (c1 << 24) | (c2 << 18) | (c3 << 12) | (c4 << 6) | (soap_wchar)(soap_get1(soap) & 0x3F);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_puthex(struct soap *soap, const unsigned char *s, int n)
-{ char d[2];
- register int i;
-#ifdef WITH_DOM
- if ((soap->mode & SOAP_XML_DOM) && soap->dom)
- { if (!(soap->dom->data = soap_s2hex(soap, s, NULL, n)))
- return soap->error;
- return SOAP_OK;
- }
-#endif
- for (i = 0; i < n; i++)
- { register int m = *s++;
- d[0] = (char)((m >> 4) + (m > 159 ? '7' : '0'));
- m &= 0x0F;
- d[1] = (char)(m + (m > 9 ? '7' : '0'));
- if (soap_send_raw(soap, d, 2))
- return soap->error;
- }
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-unsigned char*
-SOAP_FMAC2
-soap_gethex(struct soap *soap, int *n)
-{
-#ifdef WITH_DOM
- if ((soap->mode & SOAP_XML_DOM) && soap->dom)
- { soap->dom->data = soap_string_in(soap, 0, -1, -1);
- return (unsigned char*)soap_hex2s(soap, soap->dom->data, NULL, 0, n);
- }
-#endif
-#ifdef WITH_FAST
- soap->labidx = 0;
- for (;;)
- { register char *s;
- register size_t i, k;
- if (soap_append_lab(soap, NULL, 0))
- return NULL;
- s = soap->labbuf + soap->labidx;
- k = soap->lablen - soap->labidx;
- soap->labidx = soap->lablen;
- for (i = 0; i < k; i++)
- { register char d1, d2;
- register soap_wchar c;
- c = soap_get(soap);
- if (soap_isxdigit(c))
- { d1 = (char)c;
- c = soap_get(soap);
- if (soap_isxdigit(c))
- d2 = (char)c;
- else
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- }
- else
- { unsigned char *p;
- soap_unget(soap, c);
- if (n)
- *n = (int)(soap->lablen + i - k);
- p = (unsigned char*)soap_malloc(soap, soap->lablen + i - k);
- if (p)
- memcpy(p, soap->labbuf, soap->lablen + i - k);
- return p;
- }
- *s++ = ((d1 >= 'A' ? (d1 & 0x7) + 9 : d1 - '0') << 4) + (d2 >= 'A' ? (d2 & 0x7) + 9 : d2 - '0');
- }
- }
-#else
- if (soap_new_block(soap) == NULL)
- return NULL;
- for (;;)
- { register int i;
- register char *s = (char*)soap_push_block(soap, NULL, SOAP_BLKLEN);
- if (!s)
- { soap_end_block(soap, NULL);
- return NULL;
- }
- for (i = 0; i < SOAP_BLKLEN; i++)
- { register char d1, d2;
- register soap_wchar c = soap_get(soap);
- if (soap_isxdigit(c))
- { d1 = (char)c;
- c = soap_get(soap);
- if (soap_isxdigit(c))
- d2 = (char)c;
- else
- { soap_end_block(soap, NULL);
- soap->error = SOAP_TYPE;
- return NULL;
- }
- }
- else
- { unsigned char *p;
- soap_unget(soap, c);
- if (n)
- *n = (int)soap_size_block(soap, NULL, i);
- p = (unsigned char*)soap_save_block(soap, NULL, 0);
- return p;
- }
- *s++ = ((d1 >= 'A' ? (d1 & 0x7) + 9 : d1 - '0') << 4) + (d2 >= 'A' ? (d2 & 0x7) + 9 : d2 - '0');
- }
- }
-#endif
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_putbase64(struct soap *soap, const unsigned char *s, int n)
-{ register int i;
- register unsigned long m;
- char d[4];
- if (!s)
- return SOAP_OK;
-#ifdef WITH_DOM
- if ((soap->mode & SOAP_XML_DOM) && soap->dom)
- { if (!(soap->dom->data = soap_s2base64(soap, s, NULL, n)))
- return soap->error;
- return SOAP_OK;
- }
-#endif
- for (; n > 2; n -= 3, s += 3)
- { m = s[0];
- m = (m << 8) | s[1];
- m = (m << 8) | s[2];
- for (i = 4; i > 0; m >>= 6)
- d[--i] = soap_base64o[m & 0x3F];
- if (soap_send_raw(soap, d, 4))
- return soap->error;
- }
- if (n > 0)
- { m = 0;
- for (i = 0; i < n; i++)
- m = (m << 8) | *s++;
- for (; i < 3; i++)
- m <<= 8;
- for (i++; i > 0; m >>= 6)
- d[--i] = soap_base64o[m & 0x3F];
- for (i = 3; i > n; i--)
- d[i] = '=';
- if (soap_send_raw(soap, d, 4))
- return soap->error;
- }
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-unsigned char*
-SOAP_FMAC2
-soap_getbase64(struct soap *soap, int *n, int malloc_flag)
-{
-#ifdef WITH_DOM
- if ((soap->mode & SOAP_XML_DOM) && soap->dom)
- { soap->dom->data = soap_string_in(soap, 0, -1, -1);
- return (unsigned char*)soap_base642s(soap, soap->dom->data, NULL, 0, n);
- }
-#endif
-#ifdef WITH_FAST
- soap->labidx = 0;
- for (;;)
- { register size_t i, k;
- register char *s;
- if (soap_append_lab(soap, NULL, 2))
- return NULL;
- s = soap->labbuf + soap->labidx;
- k = soap->lablen - soap->labidx;
- soap->labidx = 3 * (soap->lablen / 3);
- if (!s)
- return NULL;
- if (k > 2)
- { for (i = 0; i < k - 2; i += 3)
- { register unsigned long m = 0;
- register int j = 0;
- do
- { register soap_wchar c = soap_get(soap);
- if (c == '=' || c < 0)
- { unsigned char *p;
- switch (j)
- { case 2:
- *s++ = (char)((m >> 4) & 0xFF);
- i++;
- break;
- case 3:
- *s++ = (char)((m >> 10) & 0xFF);
- *s++ = (char)((m >> 2) & 0xFF);
- i += 2;
- }
- if (n)
- *n = (int)(soap->lablen + i - k);
- p = (unsigned char*)soap_malloc(soap, soap->lablen + i - k);
- if (p)
- memcpy(p, soap->labbuf, soap->lablen + i - k);
- if (c >= 0)
- { while ((int)((c = soap_get(soap)) != EOF) && c != SOAP_LT && c != SOAP_TT)
- ;
- }
- soap_unget(soap, c);
- return p;
- }
- c -= '+';
- if (c >= 0 && c <= 79)
- { register int b = soap_base64i[c];
- if (b >= 64)
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- m = (m << 6) + b;
- j++;
- }
- else if (!soap_blank(c + '+'))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- } while (j < 4);
- *s++ = (char)((m >> 16) & 0xFF);
- *s++ = (char)((m >> 8) & 0xFF);
- *s++ = (char)(m & 0xFF);
- }
- }
- }
-#else
- if (soap_new_block(soap) == NULL)
- return NULL;
- for (;;)
- { register int i;
- register char *s = (char*)soap_push_block(soap, NULL, 3 * SOAP_BLKLEN); /* must be multiple of 3 */
- if (!s)
- { soap_end_block(soap, NULL);
- return NULL;
- }
- for (i = 0; i < SOAP_BLKLEN; i++)
- { register unsigned long m = 0;
- register int j = 0;
- do
- { register soap_wchar c = soap_get(soap);
- if (c == '=' || c < 0)
- { unsigned char *p;
- i *= 3;
- switch (j)
- { case 2:
- *s++ = (char)((m >> 4) & 0xFF);
- i++;
- break;
- case 3:
- *s++ = (char)((m >> 10) & 0xFF);
- *s++ = (char)((m >> 2) & 0xFF);
- i += 2;
- }
- if (n)
- *n = (int)soap_size_block(soap, NULL, i);
- p = (unsigned char*)soap_save_block(soap, NULL, 0);
- if (c >= 0)
- { while ((int)((c = soap_get(soap)) != EOF) && c != SOAP_LT && c != SOAP_TT)
- ;
- }
- soap_unget(soap, c);
- return p;
- }
- c -= '+';
- if (c >= 0 && c <= 79)
- { int b = soap_base64i[c];
- if (b >= 64)
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- m = (m << 6) + b;
- j++;
- }
- else if (!soap_blank(c))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- } while (j < 4);
- *s++ = (char)((m >> 16) & 0xFF);
- *s++ = (char)((m >> 8) & 0xFF);
- *s++ = (char)(m & 0xFF);
- }
- }
-#endif
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_xop_forward(struct soap *soap, unsigned char **ptr, int *size, char **id, char **type, char **options)
-{ /* Check MTOM xop:Include element (within hex/base64Binary) */
- /* TODO: this code to be obsoleted with new import/xop.h conventions */
- int body = soap->body; /* should save type too? */
- if (!soap_peek_element(soap))
- { if (!soap_element_begin_in(soap, "xop:Include", 0, NULL) && *soap->href)
- { if (soap_dime_forward(soap, ptr, size, id, type, options))
- return soap->error;
- }
- if (soap->body && soap_element_end_in(soap, NULL))
- return soap->error;
- }
- soap->body = body;
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_dime_forward(struct soap *soap, unsigned char **ptr, int *size, char **id, char **type, char **options)
-{ struct soap_xlist *xp;
- *ptr = NULL;
- *size = 0;
- *id = NULL;
- *type = NULL;
- *options = NULL;
- if (!*soap->href)
- return SOAP_OK;
- *id = soap_strdup(soap, soap->href);
- xp = (struct soap_xlist*)SOAP_MALLOC(soap, sizeof(struct soap_xlist));
- if (!xp)
- return soap->error = SOAP_EOM;
- xp->next = soap->xlist;
- xp->ptr = ptr;
- xp->size = size;
- xp->id = *id;
- xp->type = type;
- xp->options = options;
- soap->xlist = xp;
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-char *
-SOAP_FMAC2
-soap_strdup(struct soap *soap, const char *s)
-{ char *t = NULL;
- if (s && (t = (char*)soap_malloc(soap, strlen(s) + 1)))
- strcpy(t, s);
- return t;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-wchar_t *
-SOAP_FMAC2
-soap_wstrdup(struct soap *soap, const wchar_t *s)
-{ wchar_t *t = NULL;
- if (s)
- { size_t n = 0;
- while (s[n])
- n++;
- if ((t = (wchar_t*)soap_malloc(soap, sizeof(wchar_t)*(n+1))))
- memcpy(t, s, sizeof(wchar_t)*(n+1));
- }
- return t;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-struct soap_blist*
-SOAP_FMAC2
-soap_new_block(struct soap *soap)
-{ struct soap_blist *p;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "New block sequence (prev=%p)\n", soap->blist));
- if (!(p = (struct soap_blist*)SOAP_MALLOC(soap, sizeof(struct soap_blist))))
- { soap->error = SOAP_EOM;
- return NULL;
- }
- p->next = soap->blist;
- p->ptr = NULL;
- p->size = 0;
- soap->blist = p;
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-void*
-SOAP_FMAC2
-soap_push_block(struct soap *soap, struct soap_blist *b, size_t n)
-{ char *p;
- if (!b)
- b = soap->blist;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Push block of %u bytes (%u bytes total)\n", (unsigned int)n, (unsigned int)b->size + (unsigned int)n));
- if (!(p = (char*)SOAP_MALLOC(soap, n + sizeof(char*) + sizeof(size_t))))
- { soap->error = SOAP_EOM;
- return NULL;
- }
- *(char**)p = b->ptr;
- *(size_t*)(p + sizeof(char*)) = n;
- b->ptr = p;
- b->size += n;
- return p + sizeof(char*) + sizeof(size_t);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_pop_block(struct soap *soap, struct soap_blist *b)
-{ char *p;
- if (!b)
- b = soap->blist;
- if (!b->ptr)
- return;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Pop block\n"));
- p = b->ptr;
- b->size -= *(size_t*)(p + sizeof(char*));
- b->ptr = *(char**)p;
- SOAP_FREE(soap, p);
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_1
-static void
-soap_update_ptrs(struct soap *soap, char *start, char *end, char *p1, char *p2)
-{ int i;
- register struct soap_ilist *ip = NULL;
- register struct soap_flist *fp = NULL;
-#ifndef WITH_LEANER
- register struct soap_xlist *xp = NULL;
-#endif
- register void *p, **q;
- for (i = 0; i < SOAP_IDHASH; i++)
- { for (ip = soap->iht[i]; ip; ip = ip->next)
- { if (ip->ptr && (char*)ip->ptr >= start && (char*)ip->ptr < end)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Update id='%s' %p -> %p\n", ip->id, ip->ptr, (char*)ip->ptr + (p1-p2)));
- ip->ptr = (char*)ip->ptr + (p1-p2);
- }
- for (q = &ip->link; q; q = (void**)p)
- { p = *q;
- if (p && (char*)p >= start && (char*)p < end)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Link update id='%s' %p\n", ip->id, p));
- *q = (char*)p + (p1-p2);
- }
- }
- for (q = &ip->copy; q; q = (void**)p)
- { p = *q;
- if (p && (char*)p >= start && (char*)p < end)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copy chain update id='%s' %p\n", ip->id, p));
- *q = (char*)p + (p1-p2);
- }
- }
- for (fp = ip->flist; fp; fp = fp->next)
- { if ((char*)fp->ptr >= start && (char*)fp->ptr < end)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copy list update id='%s' %p\n", ip->id, fp));
- fp->ptr = (char*)fp->ptr + (p1-p2);
- }
- }
- }
- }
-#ifndef WITH_LEANER
- for (xp = soap->xlist; xp; xp = xp->next)
- { if (xp->ptr && (char*)xp->ptr >= start && (char*)xp->ptr < end)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Update id='%s' %p -> %p\n", xp->id?xp->id:SOAP_STR_EOS, xp->ptr, (char*)xp->ptr + (p1-p2)));
- xp->ptr = (unsigned char**)((char*)xp->ptr + (p1-p2));
- xp->size = (int*)((char*)xp->size + (p1-p2));
- xp->type = (char**)((char*)xp->type + (p1-p2));
- xp->options = (char**)((char*)xp->options + (p1-p2));
- }
- }
-#endif
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_1
-static int
-soap_has_copies(struct soap *soap, register const char *start, register const char *end)
-{ register int i;
- register struct soap_ilist *ip = NULL;
- register struct soap_flist *fp = NULL;
- register const char *p;
- for (i = 0; i < SOAP_IDHASH; i++)
- { for (ip = soap->iht[i]; ip; ip = ip->next)
- { for (p = (const char*)ip->copy; p; p = *(const char**)p)
- if (p >= start && p < end)
- return SOAP_ERR;
- for (fp = ip->flist; fp; fp = fp->next)
- if ((const char*)fp->ptr >= start && (const char*)fp->ptr < end)
- return SOAP_ERR;
- }
- }
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_resolve(struct soap *soap)
-{ register int i;
- register struct soap_ilist *ip = NULL;
- register struct soap_flist *fp = NULL;
- short flag;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Resolving forwarded data\n"));
- for (i = 0; i < SOAP_IDHASH; i++)
- { for (ip = soap->iht[i]; ip; ip = ip->next)
- { if (ip->ptr)
- { register void *p, **q, *r;
- q = (void**)ip->link;
- ip->link = NULL;
- r = ip->ptr;
- DBGLOG(TEST, if (q) SOAP_MESSAGE(fdebug, "Traversing link chain to resolve id='%s'\n", ip->id));
- while (q)
- { p = *q;
- *q = r;
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "... link %p -> %p\n", q, r));
- q = (void**)p;
- }
- }
- else if (*ip->id == '#')
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Missing data for id='%s'\n", ip->id));
- /* Oracle customization */
- strncpy(soap->id, ip->id + 1, sizeof(soap->id) - 1);
- soap->id[sizeof(soap->id) - 1] = '\0';
- return soap->error = SOAP_MISSING_ID;
- }
- }
- }
- do
- { flag = 0;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Resolution phase\n"));
- for (i = 0; i < SOAP_IDHASH; i++)
- { for (ip = soap->iht[i]; ip; ip = ip->next)
- { if (ip->ptr && !soap_has_copies(soap, (const char*)ip->ptr, (const char*)ip->ptr + ip->size))
- { if (ip->copy)
- { register void *p, **q = (void**)ip->copy;
- DBGLOG(TEST, if (q) SOAP_MESSAGE(fdebug, "Traversing copy chain to resolve id='%s'\n", ip->id));
- ip->copy = NULL;
- do
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "... copy %p -> %p (%u bytes)\n", ip->ptr, q, (unsigned int)ip->size));
- p = *q;
- memcpy(q, ip->ptr, ip->size);
- q = (void**)p;
- } while (q);
- flag = 1;
- }
- for (fp = ip->flist; fp; fp = ip->flist)
- { register unsigned int k = fp->level;
- register void *p = ip->ptr;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Resolving forwarded data type=%d location=%p level=%u,%u id='%s'\n", ip->type, p, ip->level, fp->level, ip->id));
- while (ip->level < k)
- { register void **q = (void**)soap_malloc(soap, sizeof(void*));
- if (!q)
- return soap->error;
- *q = p;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Descending one level, new location=%p holds=%p...\n", q, *q));
- p = (void*)q;
- k--;
- }
- if (fp->fcopy)
- fp->fcopy(soap, ip->type, fp->type, fp->ptr, fp->len, p, ip->size);
- else
- soap_fcopy(soap, ip->type, fp->type, fp->ptr, fp->len, p, ip->size);
- ip->flist = fp->next;
- SOAP_FREE(soap, fp);
- flag = 1;
- }
- }
- }
- }
- } while (flag);
-#ifdef SOAP_DEBUG
- for (i = 0; i < SOAP_IDHASH; i++)
- { for (ip = soap->iht[i]; ip; ip = ip->next)
- { if (ip->copy || ip->flist)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Resolution error: forwarded data for id='%s' could not be propagated, please report this problem to the developers\n", ip->id));
- }
- }
- }
-#endif
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Resolution done\n"));
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-size_t
-SOAP_FMAC2
-soap_size_block(struct soap *soap, struct soap_blist *b, size_t n)
-{ if (!b)
- b = soap->blist;
- if (b->ptr)
- { b->size -= *(size_t*)(b->ptr + sizeof(char*)) - n;
- *(size_t*)(b->ptr + sizeof(char*)) = n;
- }
- return b->size;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-char*
-SOAP_FMAC2
-soap_first_block(struct soap *soap, struct soap_blist *b)
-{ char *p, *q, *r;
- if (!b)
- b = soap->blist;
- p = b->ptr;
- if (!p)
- return NULL;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "First block\n"));
- r = NULL;
- do
- { q = *(char**)p;
- *(char**)p = r;
- r = p;
- p = q;
- } while (p);
- b->ptr = r;
- return r + sizeof(char*) + sizeof(size_t);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-char*
-SOAP_FMAC2
-soap_next_block(struct soap *soap, struct soap_blist *b)
-{ char *p;
- if (!b)
- b = soap->blist;
- p = b->ptr;
- if (p)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Next block\n"));
- b->ptr = *(char**)p;
- SOAP_FREE(soap, p);
- if (b->ptr)
- return b->ptr + sizeof(char*) + sizeof(size_t);
- }
- return NULL;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-size_t
-SOAP_FMAC2
-soap_block_size(struct soap *soap, struct soap_blist *b)
-{ if (!b)
- b = soap->blist;
- return *(size_t*)(b->ptr + sizeof(char*));
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_end_block(struct soap *soap, struct soap_blist *b)
-{ char *p, *q;
- if (!b)
- b = soap->blist;
- if (b)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "End of block sequence, free all remaining blocks\n"));
- for (p = b->ptr; p; p = q)
- { q = *(char**)p;
- SOAP_FREE(soap, p);
- }
- if (soap->blist == b)
- soap->blist = b->next;
- else
- { struct soap_blist *bp;
- for (bp = soap->blist; bp; bp = bp->next)
- { if (bp->next == b)
- { bp->next = b->next;
- break;
- }
- }
- }
- SOAP_FREE(soap, b);
- }
- DBGLOG(TEST, if (soap->blist) SOAP_MESSAGE(fdebug, "Restore previous block sequence\n"));
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-char*
-SOAP_FMAC2
-soap_save_block(struct soap *soap, struct soap_blist *b, char *p, int flag)
-{ register size_t n;
- register char *q, *s;
- if (!b)
- b = soap->blist;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Save all blocks in contiguous memory space of %u bytes (%p->%p)\n", (unsigned int)b->size, b->ptr, p));
- if (b->size)
- { if (!p)
- p = (char*)soap_malloc(soap, b->size);
- if (p)
- { for (s = p, q = soap_first_block(soap, b); q; q = soap_next_block(soap, b))
- { n = soap_block_size(soap, b);
-#ifndef WITH_NOIDREF
- if (flag)
- soap_update_ptrs(soap, q, q + n, s, q);
-#endif
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copy %u bytes from %p to %p\n", (unsigned int)n, q, s));
- memcpy(s, q, n);
- s += n;
- }
- }
- else
- soap->error = SOAP_EOM;
- }
- soap_end_block(soap, b);
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-char *
-SOAP_FMAC2
-soap_putsize(struct soap *soap, const char *type, int size)
-{ return soap_putsizes(soap, type, &size, 1);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-char *
-SOAP_FMAC2
-soap_putsizes(struct soap *soap, const char *type, const int *size, int dim)
-{ return soap_putsizesoffsets(soap, type, size, NULL, dim);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-char *
-SOAP_FMAC2
-soap_putsizesoffsets(struct soap *soap, const char *type, const int *size, const int *offset, int dim)
-{ int i;
- if (!type)
- return NULL;
- if (soap->version == 2)
- { sprintf(soap->type, "%s[%d", type, size[0]);
- for (i = 1; i < dim; i++)
- sprintf(soap->type + strlen(soap->type), " %d", size[i]);
- }
- else
- { if (offset)
- { sprintf(soap->type, "%s[%d", type, size[0] + offset[0]);
- for (i = 1; i < dim; i++)
- sprintf(soap->type + strlen(soap->type), ",%d", size[i] + offset[i]);
- }
- else
- { sprintf(soap->type, "%s[%d", type, size[0]);
- for (i = 1; i < dim; i++)
- sprintf(soap->type + strlen(soap->type), ",%d", size[i]);
- }
- strcat(soap->type, "]");
- }
- return soap->type;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-char *
-SOAP_FMAC2
-soap_putoffset(struct soap *soap, int offset)
-{ return soap_putoffsets(soap, &offset, 1);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-char *
-SOAP_FMAC2
-soap_putoffsets(struct soap *soap, const int *offset, int dim)
-{ register int i;
- sprintf(soap->arrayOffset, "[%d", offset[0]);
- for (i = 1; i < dim; i++)
- sprintf(soap->arrayOffset + strlen(soap->arrayOffset), ",%d", offset[i]);
- strcat(soap->arrayOffset, "]");
- return soap->arrayOffset;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_size(const int *size, int dim)
-{ register int i, n = size[0];
- for (i = 1; i < dim; i++)
- n *= size[i];
- return n;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_getoffsets(const char *attr, const int *size, int *offset, int dim)
-{ register int i, j = 0;
- if (offset)
- for (i = 0; i < dim && attr && *attr; i++)
- { attr++;
- j *= size[i];
- j += offset[i] = (int)soap_strtol(attr, NULL, 10);
- attr = strchr(attr, ',');
- }
- else
- for (i = 0; i < dim && attr && *attr; i++)
- { attr++;
- j *= size[i];
- j += (int)soap_strtol(attr, NULL, 10);
- attr = strchr(attr, ',');
- }
- return j;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_getsize(const char *attr1, const char *attr2, int *j)
-{ register int n, k;
- char *s;
- *j = 0;
- if (!*attr1)
- return -1;
- if (*attr1 == '[')
- attr1++;
- n = 1;
- for (;;)
- { k = (int)soap_strtol(attr1, &s, 10);
- n *= k;
- if (k < 0 || n > SOAP_MAXARRAYSIZE || s == attr1)
- return -1;
- attr1 = strchr(s, ',');
- if (!attr1)
- attr1 = strchr(s, ' ');
- if (attr2 && *attr2)
- { attr2++;
- *j *= k;
- k = (int)soap_strtol(attr2, &s, 10);
- *j += k;
- if (k < 0)
- return -1;
- attr2 = s;
- }
- if (!attr1)
- break;
- attr1++;
- }
- return n - *j;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_getsizes(const char *attr, int *size, int dim)
-{ register int i, k, n;
- if (!*attr)
- return -1;
- i = (int)strlen(attr);
- n = 1;
- do
- { for (i = i-1; i >= 0; i--)
- if (attr[i] == '[' || attr[i] == ',' || attr[i] == ' ')
- break;
- k = (int)soap_strtol(attr + i + 1, NULL, 10);
- n *= size[--dim] = k;
- if (k < 0 || n > SOAP_MAXARRAYSIZE)
- return -1;
- } while (i >= 0 && attr[i] != '[');
- return n;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_getposition(const char *attr, int *pos)
-{ register int i, n;
- if (!*attr)
- return -1;
- n = 0;
- i = 1;
- do
- { pos[n++] = (int)soap_strtol(attr + i, NULL, 10);
- while (attr[i] && attr[i] != ',' && attr[i] != ']')
- i++;
- if (attr[i] == ',')
- i++;
- } while (n < SOAP_MAXDIMS && attr[i] && attr[i] != ']');
- return n;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-struct soap_nlist *
-SOAP_FMAC2
-soap_push_namespace(struct soap *soap, const char *id, const char *ns)
-{ register struct soap_nlist *np;
- register struct Namespace *p;
- register short i = -1;
- register size_t n, k;
- n = strlen(id);
- k = strlen(ns) + 1;
- p = soap->local_namespaces;
- if (p)
- { for (i = 0; p->id; p++, i++)
- { if (p->ns && !strcmp(ns, p->ns))
- { if (p->out)
- { SOAP_FREE(soap, p->out);
- p->out = NULL;
- }
- break;
- }
- if (p->out)
- { if (!strcmp(ns, p->out))
- break;
- }
- else if (p->in)
- { if (!soap_tag_cmp(ns, p->in))
- { if ((p->out = (char*)SOAP_MALLOC(soap, k)))
- strcpy(p->out, ns);
- break;
- }
- }
- }
- if (!p || !p->id)
- i = -1;
- }
- if (i >= 0)
- k = 0;
- np = (struct soap_nlist*)SOAP_MALLOC(soap, sizeof(struct soap_nlist) + n + k);
- if (!np)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- np->next = soap->nlist;
- soap->nlist = np;
- np->level = soap->level;
- np->index = i;
- strcpy(np->id, id);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Push namespace binding (level=%u) '%s' '%s'\n", soap->level, id, ns));
- if (i < 0)
- { np->ns = strcpy(np->id + n + 1, ns);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Push NOT OK: no match found for '%s' in namespace mapping table (added to stack anyway)\n", ns));
- }
- else
- { np->ns = NULL;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Push OK ('%s' matches '%s' in namespace table)\n", id, p->id));
- }
- return np;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_pop_namespace(struct soap *soap)
-{ register struct soap_nlist *np, *nq;
- for (np = soap->nlist; np && np->level >= soap->level; np = nq)
- { nq = np->next;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Pop namespace binding (level=%u) '%s'\n", soap->level, np->id));
- SOAP_FREE(soap, np);
- }
- soap->nlist = np;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_match_namespace(struct soap *soap, const char *id1, const char *id2, size_t n1, size_t n2)
-{ register struct soap_nlist *np = soap->nlist;
- while (np && (strncmp(np->id, id1, n1) || np->id[n1]))
- np = np->next;
- if (np)
- { if (!(soap->mode & SOAP_XML_IGNORENS))
- if (np->index < 0
- || (soap->local_namespaces[np->index].id
- && (strncmp(soap->local_namespaces[np->index].id, id2, n2)
- || soap->local_namespaces[np->index].id[n2])))
- return SOAP_NAMESPACE;
- return SOAP_OK;
- }
- if (n1 == 0)
- return SOAP_NAMESPACE;
- if ((n1 == 3 && n1 == n2 && !strncmp(id1, "xml", 3) && !strncmp(id1, id2, 3))
- || (soap->mode & SOAP_XML_IGNORENS))
- return SOAP_OK;
- return soap->error = SOAP_SYNTAX_ERROR;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_current_namespace(struct soap *soap, const char *tag)
-{ register struct soap_nlist *np;
- register const char *s;
- if (!tag || !strncmp(tag, "xml", 3))
- return NULL;
- np = soap->nlist;
- if (!(s = strchr(tag, ':')))
- { while (np && *np->id) /* find default namespace, if present */
- np = np->next;
- }
- else
- { while (np && (strncmp(np->id, tag, s - tag) || np->id[s - tag]))
- np = np->next;
- if (!np)
- soap->error = SOAP_NAMESPACE;
- }
- if (np)
- { if (np->index >= 0)
- return soap->namespaces[np->index].ns;
- if (np->ns)
- return soap_strdup(soap, np->ns);
- }
- return NULL;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_tag_cmp(const char *s, const char *t)
-{ for (;;)
- { register int c1 = *s;
- register int c2 = *t;
- if (!c1 || c1 == '"')
- break;
- if (c2 != '-')
- { if (c1 != c2)
- { if (c1 >= 'A' && c1 <= 'Z')
- c1 += 'a' - 'A';
- if (c2 >= 'A' && c2 <= 'Z')
- c2 += 'a' - 'A';
- }
- if (c1 != c2)
- { if (c2 != '*')
- return 1;
- c2 = *++t;
- if (!c2)
- return 0;
- if (c2 >= 'A' && c2 <= 'Z')
- c2 += 'a' - 'A';
- for (;;)
- { c1 = *s;
- if (!c1 || c1 == '"')
- break;
- if (c1 >= 'A' && c1 <= 'Z')
- c1 += 'a' - 'A';
- if (c1 == c2 && !soap_tag_cmp(s + 1, t + 1))
- return 0;
- s++;
- }
- break;
- }
- }
- s++;
- t++;
- }
- if (*t == '*' && !t[1])
- return 0;
- return *t;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_match_tag(struct soap *soap, const char *tag1, const char *tag2)
-{ register const char *s, *t;
- register int err;
- if (!tag1 || !tag2 || !*tag2)
- return SOAP_OK;
- s = strchr(tag1, ':');
- t = strchr(tag2, ':');
- if (t)
- { if (s)
- { if (t[1] && SOAP_STRCMP(s + 1, t + 1))
- return SOAP_TAG_MISMATCH;
- if (t != tag2 && (err = soap_match_namespace(soap, tag1, tag2, s - tag1, t - tag2)))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Tags '%s' and '%s' match but namespaces differ\n", tag1, tag2));
- if (err == SOAP_NAMESPACE)
- return SOAP_TAG_MISMATCH;
- return err;
- }
- }
- else if (SOAP_STRCMP(tag1, t + 1))
- { return SOAP_TAG_MISMATCH;
- }
- else if (t != tag2 && (err = soap_match_namespace(soap, tag1, tag2, 0, t - tag2)))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Tags '%s' and '%s' match but namespaces differ\n", tag1, tag2));
- if (err == SOAP_NAMESPACE)
- return SOAP_TAG_MISMATCH;
- return err;
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Tags and (default) namespaces match: '%s' '%s'\n", tag1, tag2));
- return SOAP_OK;
- }
- if (s)
- { if (SOAP_STRCMP(s + 1, tag2))
- return SOAP_TAG_MISMATCH;
- }
- else if (SOAP_STRCMP(tag1, tag2))
- return SOAP_TAG_MISMATCH;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Tags match: '%s' '%s'\n", tag1, tag2));
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_match_array(struct soap *soap, const char *type)
-{ if (*soap->arrayType)
- if (soap_match_tag(soap, soap->arrayType, type)
- && soap_match_tag(soap, soap->arrayType, "xsd:anyType")
- && soap_match_tag(soap, soap->arrayType, "xsd:ur-type")
- )
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Array type mismatch: '%s' '%s'\n", soap->arrayType, type));
- return SOAP_TAG_MISMATCH;
- }
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************\
- *
- * SSL/TLS
- *
-\******************************************************************************/
-
-/******************************************************************************/
-#ifdef WITH_OPENSSL
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_rand()
-{ unsigned char buf[4];
- if (!soap_ssl_init_done)
- soap_ssl_init();
- RAND_pseudo_bytes(buf, 4);
- return *(int*)buf;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifdef WITH_OPENSSL
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_ssl_server_context(struct soap *soap, unsigned short flags, const char *keyfile, const char *password, const char *cafile, const char *capath, const char *dhfile, const char *randfile, const char *sid)
-{ int err;
- soap->keyfile = keyfile;
- soap->password = password;
- soap->cafile = cafile;
- soap->capath = capath;
- soap->crlfile = NULL;
- soap->dhfile = dhfile;
- soap->randfile = randfile;
- soap->ssl_flags = flags | (dhfile == NULL ? SOAP_SSL_RSA : 0);
- if (!(err = soap->fsslauth(soap)))
- { if (sid)
- SSL_CTX_set_session_id_context(soap->ctx, (unsigned char*)sid, (unsigned int)strlen(sid));
- else
- SSL_CTX_set_session_cache_mode(soap->ctx, SSL_SESS_CACHE_OFF);
- }
- return err;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifdef WITH_OPENSSL
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_ssl_client_context(struct soap *soap, unsigned short flags, const char *keyfile, const char *password, const char *cafile, const char *capath, const char *randfile)
-{ soap->keyfile = keyfile;
- soap->password = password;
- soap->cafile = cafile;
- soap->capath = capath;
- soap->dhfile = NULL;
- soap->ssl_flags = flags;
- soap->randfile = randfile;
- soap->fsslverify = (flags & SOAP_SSL_ALLOW_EXPIRED_CERTIFICATE) == 0 ? ssl_verify_callback : ssl_verify_callback_allow_expired_certificate;
- return soap->fsslauth(soap);
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifdef WITH_OPENSSL
-#ifndef PALM_2
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_ssl_init()
-{ /* Note: for MT systems, the main program MUST call soap_ssl_init() before any threads are started */
- if (!soap_ssl_init_done)
- { soap_ssl_init_done = 1;
- SSL_library_init();
-#ifndef WITH_LEAN
- SSL_load_error_strings();
-#endif
- if (!RAND_load_file("/dev/urandom", 1024))
- { char buf[1024];
- RAND_seed(buf, sizeof(buf));
- while (!RAND_status())
- { int r = rand();
- RAND_seed(&r, sizeof(int));
- }
- }
- }
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifdef WITH_OPENSSL
-#ifndef PALM_1
-SOAP_FMAC1
-const char *
-SOAP_FMAC2
-soap_ssl_error(struct soap *soap, int ret)
-{ int err = SSL_get_error(soap->ssl, ret);
- const char *msg = soap_code_str(h_ssl_error_codes, err);
- size_t msgbufsize = sizeof(soap->msgbuf);
- if (msg)
- { /* Oracle customization */
- strncpy(soap->msgbuf, msg, msgbufsize - 1);
- soap->msgbuf[msgbufsize - 1] = '\0';
- }
- else
- return ERR_error_string(err, soap->msgbuf);
- if (ERR_peek_error())
- { unsigned long r;
- /* Oracle customization */
- if (strlen(soap->msgbuf) < (msgbufsize-1))
- strcat(soap->msgbuf, "\n");
- else
- soap->msgbuf[msgbufsize - 2] = '\n';
- while ((r = ERR_get_error()))
- ERR_error_string_n(r, soap->msgbuf + strlen(soap->msgbuf), sizeof(soap->msgbuf) - strlen(soap->msgbuf));
- }
- else
- { switch (ret)
- { case 0:
- {
- /* Oracle customization -- display SSL error code and string at the end */
- int myerrno = errno;
- unsigned long ec = ERR_get_error();
- sprintf(soap->msgbuf,
- "EOF was observed that violates the protocol. The client probably provided invalid authentication information. SSL error code is %s. ",
- msg);
- if (ec != 0)
- {
- /* display the next error string in the error queue */
- ERR_error_string_n(ec, soap->msgbuf + strlen(soap->msgbuf),
- sizeof(soap->msgbuf) - strlen(soap->msgbuf));
- if (sizeof(soap->msgbuf) - strlen(soap->msgbuf) > 2)
- {
- strcat(soap->msgbuf, ". ");
- }
- }
- if (myerrno != 0)
- {
- /* display system error too */
- char *mystrerror = strerror(myerrno);
- if (strlen(mystrerror)
- < (sizeof(soap->msgbuf) - strlen(soap->msgbuf)))
- {
- strncat(soap->msgbuf + strlen(soap->msgbuf), mystrerror,
- strlen(mystrerror));
- }
- else
- {
- strncat(soap->msgbuf + strlen(soap->msgbuf), mystrerror,
- (sizeof(soap->msgbuf) - strlen(soap->msgbuf)));
- }
- soap->msgbuf[sizeof(soap->msgbuf) - 1] = '\0';
- }
- }
- break;
- case -1:
- sprintf(soap->msgbuf, "Error observed by underlying BIO: %s", strerror(errno));
- break;
- }
- }
- return soap->msgbuf;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifdef WITH_OPENSSL
-#ifndef PALM_1
-static int
-ssl_password(char *buf, int num, int rwflag, void *userdata)
-{ if (num < (int)strlen((char*)userdata) + 1)
- return 0;
- return (int)strlen(strcpy(buf, (char*)userdata));
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifdef WITH_OPENSSL
-#ifndef PALM_1
-/*
-static int
-*/
-int
-ssl_auth_init(struct soap *soap)
-{ long flags;
- int mode;
- if (!soap_ssl_init_done)
- soap_ssl_init();
- ERR_clear_error();
- if (!soap->ctx)
- { if (!(soap->ctx = SSL_CTX_new(SSLv23_method())))
- return soap_set_receiver_error(soap, "SSL error", "Can't setup context", SOAP_SSL_ERROR);
- /* The following alters the behavior of SSL read/write: */
-#if 0
- SSL_CTX_set_mode(soap->ctx, SSL_MODE_ENABLE_PARTIAL_WRITE | SSL_MODE_AUTO_RETRY);
-#endif
- }
- //
- // Oracle customization
- //
- // added SSL_CTX_set_cipher_list call to restrict the cipher suite to RSA-2048/AES
- // TLS_RSA_WITH_AES_256_CBC_SHA is defined in RFC 3268
- // also see http://www.openssl.org/docs/apps/ciphers.html
- //
- if (!SSL_CTX_set_cipher_list(soap->ctx, "AES256-SHA"))
- return soap_set_receiver_error(soap, "SSL error", "Cannot set cipher suite", SOAP_SSL_ERROR);
- if (soap->randfile)
- { if (!RAND_load_file(soap->randfile, -1))
- return soap_set_receiver_error(soap, "SSL error", "Can't load randomness", SOAP_SSL_ERROR);
- }
- if (soap->cafile || soap->capath)
- { if (!SSL_CTX_load_verify_locations(soap->ctx, soap->cafile, soap->capath))
- return soap_set_receiver_error(soap, "SSL error", "Can't read CA file and directory", SOAP_SSL_ERROR);
- if (soap->cafile && (soap->ssl_flags & SOAP_SSL_REQUIRE_CLIENT_AUTHENTICATION))
- SSL_CTX_set_client_CA_list(soap->ctx, SSL_load_client_CA_file(soap->cafile));
- }
- if (!(soap->ssl_flags & SOAP_SSL_NO_DEFAULT_CA_PATH))
- { if (!SSL_CTX_set_default_verify_paths(soap->ctx))
- return soap_set_receiver_error(soap, "SSL error", "Can't read default CA file and/or directory", SOAP_SSL_ERROR);
- }
-/* This code assumes a typical scenario, see alternative code below */
- if (soap->keyfile)
- { if (!SSL_CTX_use_certificate_chain_file(soap->ctx, soap->keyfile))
- return soap_set_receiver_error(soap, "SSL error", "Can't read certificate key file", SOAP_SSL_ERROR);
- if (soap->password)
- { SSL_CTX_set_default_passwd_cb_userdata(soap->ctx, (void*)soap->password);
- SSL_CTX_set_default_passwd_cb(soap->ctx, ssl_password);
- }
- if (!SSL_CTX_use_PrivateKey_file(soap->ctx, soap->keyfile, SSL_FILETYPE_PEM))
- return soap_set_receiver_error(soap, "SSL error", "Can't read key file", SOAP_SSL_ERROR);
- }
-/* Suggested alternative approach to check the key file for certs (cafile=NULL):*/
-#if 0
- if (soap->password)
- { SSL_CTX_set_default_passwd_cb_userdata(soap->ctx, (void*)soap->password);
- SSL_CTX_set_default_passwd_cb(soap->ctx, ssl_password);
- }
- if (!soap->cafile || !SSL_CTX_use_certificate_chain_file(soap->ctx, soap->cafile))
- { if (soap->keyfile)
- { if (!SSL_CTX_use_certificate_chain_file(soap->ctx, soap->keyfile))
- return soap_set_receiver_error(soap, "SSL error", "Can't read certificate or key file", SOAP_SSL_ERROR);
- if (!SSL_CTX_use_PrivateKey_file(soap->ctx, soap->keyfile, SSL_FILETYPE_PEM))
- return soap_set_receiver_error(soap, "SSL error", "Can't read key file", SOAP_SSL_ERROR);
- }
- }
-#endif
- if ((soap->ssl_flags & SOAP_SSL_RSA))
- {
- /*
- Oracle customization for OpenSSL 0.9.8 removal of deprecated function usage: RSA_generate_key
- */
-#ifdef OPENSSL_NO_DEPRECATED
- RSA *rsa = RSA_new();
- if (!rsa)
- {
- return soap_set_receiver_error(soap, "SSL error", "Can't allocate RSA struct", SOAP_SSL_ERROR);
- }
-
- BIGNUM *e = BN_new();
- if (!e)
- {
- RSA_free(rsa);
- return soap_set_receiver_error(soap, "SSL error", "Can't allocate BIGNUM", SOAP_SSL_ERROR);
- }
- if (!BN_set_word(e, RSA_F4 ))
- {
- RSA_free(rsa);
- BN_free(e);
- return soap_set_receiver_error(soap, "SSL error", "Can't set BIGNUM value", SOAP_SSL_ERROR);
- }
-
-#if OPENSSL_VERSION_NUMBER > 0x00908000L
- if (!RSA_generate_key_ex(rsa, 1024, e, NULL))
-#else
- if (( rsa = RSA_generate_key(1024, RSA_F4, NULL, NULL)) == NULL )
-#endif
- {
- RSA_free(rsa);
- BN_free(e);
- return soap_set_receiver_error(soap, "SSL error", "Can't set RSA key", SOAP_SSL_ERROR);
- }
-
-#else
- RSA *rsa = RSA_generate_key(1024, RSA_F4, NULL, NULL);
-#endif
- if (!SSL_CTX_set_tmp_rsa(soap->ctx, rsa))
- { if (rsa)
- RSA_free(rsa);
-/*
- Oracle customization for OpenSSL 0.9.8 removal of deprecated function usage: RSA_generate_key
-*/
-#ifdef OPENSSL_NO_DEPRECATED
- BN_free(e);
-#endif
- return soap_set_receiver_error(soap, "SSL error", "Can't set RSA key", SOAP_SSL_ERROR);
- }
- RSA_free(rsa);
-/*
- Oracle customization for OpenSSL 0.9.8 removal of deprecated function usage: RSA_generate_key
-*/
-#ifdef OPENSSL_NO_DEPRECATED
- BN_free(e);
-#endif
- }
- else if (soap->dhfile)
- {
- DH *dh = 0;
-#ifdef OPENSSL_NO_DEPRECATED
- DH dhrec;
-#endif
- char *s;
- int n = (int)soap_strtoul(soap->dhfile, &s, 10);
- /* if dhfile is numeric, treat it as a key length to generate DH params which can take a while */
- if (n >= 512 && s && *s == '\0') {
-#if !defined(OPENSSL_NO_DEPRECATED) || OPENSSL_VERSION_NUMBER < 0x00908000L
- dh = DH_generate_parameters(n, 2/*or 5*/, NULL, NULL);
-#else
- if (DH_generate_parameters_ex(&dhrec, n, 2/*or 5*/, NULL) == 0)
- dh = &dhrec;
- else
- return soap_set_receiver_error(soap, "SSL error", "Can't compute DH params", SOAP_SSL_ERROR);
-#endif
- }
- else
- { BIO *bio;
- bio = BIO_new_file(soap->dhfile, "r");
- if (!bio)
- return soap_set_receiver_error(soap, "SSL error", "Can't read DH file", SOAP_SSL_ERROR);
- dh = PEM_read_bio_DHparams(bio, NULL, NULL, NULL);
- BIO_free(bio);
- }
- if (!dh || DH_check(dh, &n) != 1 || SSL_CTX_set_tmp_dh(soap->ctx, dh) < 0)
- {
-#ifndef OPENSSL_NO_DEPRECATED
- if (dh)
- DH_free(dh);
-#endif
- return soap_set_receiver_error(soap, "SSL error", "Can't set DH parameters", SOAP_SSL_ERROR);
- }
-#ifndef OPENSSL_NO_DEPRECATED
- DH_free(dh);
-#endif
- }
-
- //
- // Oracle customization
- //
- // Added SSL_OP_NO_SSLv3 to force use of TLS
- // Added SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG to prevent forced downgrade
- // of security level
-
- flags = ((SSL_OP_ALL & ~SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG) | SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3);
-
- flags = (SSL_OP_ALL | SSL_OP_NO_SSLv2);
- if ((soap->ssl_flags & SOAP_SSLv3))
- flags |= SSL_OP_NO_TLSv1;
- if ((soap->ssl_flags & SOAP_TLSv1))
- flags |= SSL_OP_NO_SSLv3;
-#ifdef SSL_OP_NO_TICKET
- /* TLS extension is enabled by default in OPENSSL v0.9.8k
- Disable it by adding SSL_OP_NO_TICKET */
- flags |= SSL_OP_NO_TICKET;
-#endif
- SSL_CTX_set_options(soap->ctx, flags);
- if ((soap->ssl_flags & SOAP_SSL_REQUIRE_CLIENT_AUTHENTICATION))
- mode = (SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT);
- else if ((soap->ssl_flags & SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION))
- mode = SSL_VERIFY_PEER;
- else
- mode = SSL_VERIFY_NONE;
- SSL_CTX_set_verify(soap->ctx, mode, soap->fsslverify);
-#if (OPENSSL_VERSION_NUMBER < 0x00905100L)
- SSL_CTX_set_verify_depth(soap->ctx, 1);
-#else
- SSL_CTX_set_verify_depth(soap->ctx, 9);
-#endif
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifdef WITH_OPENSSL
-#ifndef PALM_1
-static int
-ssl_verify_callback(int ok, X509_STORE_CTX *store)
-{
-#ifdef SOAP_DEBUG
- if (!ok)
- { char data[256];
- X509 *cert = X509_STORE_CTX_get_current_cert(store);
- fprintf(stderr, "SSL verify error or warning with certificate at depth %d: %s\n", X509_STORE_CTX_get_error_depth(store), X509_verify_cert_error_string(X509_STORE_CTX_get_error(store)));
- X509_NAME_oneline(X509_get_issuer_name(cert), data, sizeof(data));
- fprintf(stderr, "certificate issuer %s\n", data);
- X509_NAME_oneline(X509_get_subject_name(cert), data, sizeof(data));
- fprintf(stderr, "certificate subject %s\n", data);
- }
-#endif
- /* Note: return 1 to continue, but unsafe progress will be terminated by SSL */
- return ok;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifdef WITH_OPENSSL
-#ifndef PALM_1
-static int
-ssl_verify_callback_allow_expired_certificate(int ok, X509_STORE_CTX *store)
-{ ok = ssl_verify_callback(ok, store);
- if (ok == 0 && X509_STORE_CTX_get_error(store) == X509_V_ERR_CERT_HAS_EXPIRED)
- {
-#ifdef SOAP_DEBUG
- fprintf(stderr, "ignoring certificate expiration\n");
-#endif
- X509_STORE_CTX_set_error(store, X509_V_OK);
- ok = 1;
- }
- /* Note: return 1 to continue, but unsafe progress will be terminated by SSL */
- return ok;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifdef WITH_OPENSSL
-#ifndef WITH_NOIO
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_ssl_accept(struct soap *soap)
-{ BIO *bio;
- int retries, r, s;
- if (!soap_valid_socket(soap->socket))
- return soap_set_receiver_error(soap, "SSL error", "No socket in soap_ssl_accept()", SOAP_SSL_ERROR);
- if (!soap->ctx && (soap->error = soap->fsslauth(soap)))
- return SOAP_SSL_ERROR;
- if (!soap->ssl)
- { soap->ssl = SSL_new(soap->ctx);
- if (!soap->ssl)
- return soap_set_receiver_error(soap, "SSL error", "SSL_new() failed in soap_ssl_accept()", SOAP_SSL_ERROR);
- }
- else
- SSL_clear(soap->ssl);
- soap->imode |= SOAP_ENC_SSL;
- soap->omode |= SOAP_ENC_SSL;
- /* Set SSL sockets to non-blocking */
- SOAP_SOCKNONBLOCK(soap->socket)
- bio = BIO_new_socket((int)soap->socket, BIO_NOCLOSE);
- SSL_set_bio(soap->ssl, bio, bio);
- retries = 100; /* SSL_accept timeout: 10 sec retries, 100 times 0.1 sec */
-#if defined(WITH_OPENSSL) && defined(KMS_SERVER)
- /* Oracle customization for Ultra 2 KMS Server */
- if (soap->ssl_accept_timeout > 0 )
- {
- retries = 10 * soap->ssl_accept_timeout;
- }
-#endif
-
-while ((r = SSL_accept(soap->ssl)) <= 0)
- { int err = SSL_get_error(soap->ssl, r);
- if (err == SSL_ERROR_WANT_ACCEPT || err == SSL_ERROR_WANT_READ || err == SSL_ERROR_WANT_WRITE)
- { if (err == SSL_ERROR_WANT_READ)
- s = tcp_select(soap, soap->socket, SOAP_TCP_SELECT_RCV | SOAP_TCP_SELECT_ERR, -100000);
- else
- s = tcp_select(soap, soap->socket, SOAP_TCP_SELECT_SND | SOAP_TCP_SELECT_ERR, -100000);
- if (s < 0 && soap->errnum != SOAP_EINTR)
- break;
- }
- else
- { soap->errnum = soap_socket_errno(soap->socket);
- break;
- }
- if (retries-- <= 0)
- break;
- }
- if (r <= 0)
- { soap_set_receiver_error(soap, soap_ssl_error(soap, r), "SSL_accept() failed in soap_ssl_accept()", SOAP_SSL_ERROR);
- soap_closesock(soap);
- return SOAP_SSL_ERROR;
- }
- if ((soap->ssl_flags & SOAP_SSL_REQUIRE_CLIENT_AUTHENTICATION))
- { X509 *peer;
- int err;
- if ((err = SSL_get_verify_result(soap->ssl)) != X509_V_OK)
- { soap_closesock(soap);
- return soap_set_sender_error(soap, X509_verify_cert_error_string(err), "SSL certificate presented by peer cannot be verified in soap_ssl_accept()", SOAP_SSL_ERROR);
- }
- peer = SSL_get_peer_certificate(soap->ssl);
- if (!peer)
- { soap_closesock(soap);
- return soap_set_sender_error(soap, "SSL error", "No SSL certificate was presented by the peer in soap_ssl_accept()", SOAP_SSL_ERROR);
- }
- X509_free(peer);
- }
- return SOAP_OK;
-}
-#endif
-#endif
-#endif
-
-/******************************************************************************\
- *
- * TCP/UDP [SSL/TLS] IPv4 and IPv6
- *
-\******************************************************************************/
-
-/******************************************************************************/
-#ifndef WITH_NOIO
-#ifndef PALM_1
-static int
-tcp_init(struct soap *soap)
-{ soap->errmode = 1;
-#ifdef WIN32
- if (tcp_done)
- return 0;
- else
- { WSADATA w;
- if (WSAStartup(MAKEWORD(1, 1), &w))
- return -1;
- tcp_done = 1;
- }
-#endif
- return 0;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIO
-#ifndef PALM_1
-static const char*
-tcp_error(struct soap *soap)
-{ register const char *msg = NULL;
- switch (soap->errmode)
- { case 0:
- msg = soap_strerror(soap);
- break;
- case 1:
- msg = "WSAStartup failed";
- break;
- case 2:
- {
-#ifndef WITH_LEAN
- msg = soap_code_str(h_error_codes, soap->errnum);
- if (!msg)
-#endif
- { sprintf(soap->msgbuf, "TCP/UDP IP error %d", soap->errnum);
- msg = soap->msgbuf;
- }
- }
- }
- return msg;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_IPV6
-#ifndef WITH_NOIO
-#ifndef PALM_1
-static int
-tcp_gethost(struct soap *soap, const char *addr, struct in_addr *inaddr)
-{ soap_int32 iadd = -1;
- struct hostent hostent, *host = &hostent;
-#ifdef VXWORKS
- int hostint;
- /* inet_addr(), and hostGetByName() expect "char *"; addr is a "const char *". */
- iadd = inet_addr((char*)addr);
-#else
-#if defined(_AIX43) || ((defined(TRU64) || defined(HP_UX)) && defined(HAVE_GETHOSTBYNAME_R))
- struct hostent_data ht_data;
-#endif
-#ifdef AS400
- iadd = inet_addr((void*)addr);
-#else
- iadd = inet_addr(addr);
-#endif
-#endif
- if (iadd != -1)
- { memcpy(inaddr, &iadd, sizeof(iadd));
- return SOAP_OK;
- }
-#if defined(__GLIBC__) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__)))
- if (gethostbyname_r(addr, &hostent, soap->buf, SOAP_BUFLEN, &host, &soap->errnum) < 0)
- host = NULL;
-#elif defined(_AIX43) || ((defined(TRU64) || defined(HP_UX)) && defined(HAVE_GETHOSTBYNAME_R))
- memset((void*)&ht_data, 0, sizeof(ht_data));
- if (gethostbyname_r(addr, &hostent, &ht_data) < 0)
- { host = NULL;
- soap->errnum = h_errno;
- }
-#elif defined(HAVE_GETHOSTBYNAME_R)
- host = gethostbyname_r(addr, &hostent, soap->buf, SOAP_BUFLEN, &soap->errnum);
-#elif defined(VXWORKS)
- /* If the DNS resolver library resolvLib has been configured in the vxWorks
- * image, a query for the host IP address is sent to the DNS server, if the
- * name was not found in the local host table. */
- hostint = hostGetByName((char*)addr);
- if (hostint == ERROR)
- { host = NULL;
- soap->errnum = soap_errno;
- }
-#else
-#ifdef AS400
- if (!(host = gethostbyname((void*)addr)))
- soap->errnum = h_errno;
-#else
- if (!(host = gethostbyname(addr)))
- soap->errnum = h_errno;
-#endif
-#endif
- if (!host)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Host name not found\n"));
- return SOAP_ERR;
- }
-#ifdef VXWORKS
- inaddr->s_addr = hostint;
-#else
- memcpy(inaddr, host->h_addr, host->h_length);
-#endif
- return SOAP_OK;
-}
-#endif
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIO
-#ifndef PALM_1
-static SOAP_SOCKET
-tcp_connect(struct soap *soap, const char *endpoint, const char *host, int port)
-{
-#ifdef WITH_IPV6
- struct addrinfo hints, *res, *ressave;
-#endif
- SOAP_SOCKET fd;
- int err = 0;
-#ifndef WITH_LEAN
- int len = SOAP_BUFLEN;
- int set = 1;
-#endif
-#if !defined(WITH_LEAN) || defined(WITH_OPENSSL)
- int retries;
-#endif
- if (soap_valid_socket(soap->socket))
- soap->fclosesocket(soap, soap->socket);
- soap->socket = SOAP_INVALID_SOCKET;
- if (tcp_init(soap))
- { soap->errnum = 0;
- soap_set_sender_error(soap, tcp_error(soap), "TCP init failed in tcp_connect()", SOAP_TCP_ERROR);
- return SOAP_INVALID_SOCKET;
- }
- soap->errmode = 0;
-#ifdef WITH_IPV6
- memset((void*)&hints, 0, sizeof(hints));
- hints.ai_family = PF_UNSPEC;
-#ifndef WITH_LEAN
- if ((soap->omode & SOAP_IO_UDP))
- hints.ai_socktype = SOCK_DGRAM;
- else
-#endif
- hints.ai_socktype = SOCK_STREAM;
- soap->errmode = 2;
- res = NULL;
- if (soap->proxy_host)
- err = getaddrinfo(soap->proxy_host, soap_int2s(soap, soap->proxy_port), &hints, &res);
- else
- err = getaddrinfo(host, soap_int2s(soap, port), &hints, &res);
- /* Oracle customization: check err before using res */
- if (err || (res==NULL))
- { soap_set_sender_error(soap, SOAP_GAI_STRERROR(err), "getaddrinfo failed in tcp_connect()", SOAP_TCP_ERROR);
- if (res)
- {
- freeaddrinfo(res);
- }
- return SOAP_INVALID_SOCKET;
- }
- ressave = res;
-again:
- fd = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
- soap->errmode = 0;
-#else
-#ifndef WITH_LEAN
-again:
-#endif
-#ifndef WITH_LEAN
- if ((soap->omode & SOAP_IO_UDP))
- fd = socket(AF_INET, SOCK_DGRAM, 0);
- else
-#endif
- fd = socket(AF_INET, SOCK_STREAM, 0);
-#endif
- if (!soap_valid_socket(fd))
- {
-#ifdef WITH_IPV6
- if (res->ai_next)
- { res = res->ai_next;
- goto again;
- }
-#endif
- soap->errnum = soap_socket_errno(fd);
- soap_set_sender_error(soap, tcp_error(soap), "socket failed in tcp_connect()", SOAP_TCP_ERROR);
-#ifdef WITH_IPV6
- freeaddrinfo(ressave);
-#endif
- return SOAP_INVALID_SOCKET;
- }
-#ifdef SOCKET_CLOSE_ON_EXEC
-#ifdef WIN32
-#ifndef UNDER_CE
- SetHandleInformation((HANDLE)fd, HANDLE_FLAG_INHERIT, 0);
-#endif
-#else
- fcntl(fd, F_SETFD, 1);
-#endif
-#endif
-#ifndef WITH_LEAN
- if (soap->connect_flags == SO_LINGER)
- { struct linger linger;
- memset((void*)&linger, 0, sizeof(linger));
- linger.l_onoff = 1;
- linger.l_linger = soap->linger_time;
- if (setsockopt(fd, SOL_SOCKET, SO_LINGER, (char*)&linger, sizeof(struct linger)))
- { soap->errnum = soap_socket_errno(fd);
- soap_set_sender_error(soap, tcp_error(soap), "setsockopt SO_LINGER failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, fd);
-#ifdef WITH_IPV6
- freeaddrinfo(ressave);
-#endif
- return SOAP_INVALID_SOCKET;
- }
- }
- else if (soap->connect_flags && setsockopt(fd, SOL_SOCKET, soap->connect_flags, (char*)&set, sizeof(int)))
- { soap->errnum = soap_socket_errno(fd);
- soap_set_sender_error(soap, tcp_error(soap), "setsockopt failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, fd);
-#ifdef WITH_IPV6
- freeaddrinfo(ressave);
-#endif
- return SOAP_INVALID_SOCKET;
- }
- if ((soap->keep_alive || soap->tcp_keep_alive) && setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, (char*)&set, sizeof(int)))
- { soap->errnum = soap_socket_errno(fd);
- soap_set_sender_error(soap, tcp_error(soap), "setsockopt SO_KEEPALIVE failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, fd);
-#ifdef WITH_IPV6
- freeaddrinfo(ressave);
-#endif
- return SOAP_INVALID_SOCKET;
- }
- if (setsockopt(fd, SOL_SOCKET, SO_SNDBUF, (char*)&len, sizeof(int)))
- { soap->errnum = soap_socket_errno(fd);
- soap_set_sender_error(soap, tcp_error(soap), "setsockopt SO_SNDBUF failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, fd);
-#ifdef WITH_IPV6
- freeaddrinfo(ressave);
-#endif
- return SOAP_INVALID_SOCKET;
- }
- if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char*)&len, sizeof(int)))
- { soap->errnum = soap_socket_errno(fd);
- soap_set_sender_error(soap, tcp_error(soap), "setsockopt SO_RCVBUF failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, fd);
-#ifdef WITH_IPV6
- freeaddrinfo(ressave);
-#endif
- return SOAP_INVALID_SOCKET;
- }
-#ifdef TCP_KEEPIDLE
- if (soap->tcp_keep_idle && setsockopt((SOAP_SOCKET)fd, IPPROTO_TCP, TCP_KEEPIDLE, (char*)&(soap->tcp_keep_idle), sizeof(int)))
- { soap->errnum = soap_socket_errno(fd);
- soap_set_sender_error(soap, tcp_error(soap), "setsockopt TCP_KEEPIDLE failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, (SOAP_SOCKET)fd);
-#ifdef WITH_IPV6
- freeaddrinfo(ressave);
-#endif
- return SOAP_INVALID_SOCKET;
- }
-#endif
-#ifdef TCP_KEEPINTVL
- if (soap->tcp_keep_intvl && setsockopt((SOAP_SOCKET)fd, IPPROTO_TCP, TCP_KEEPINTVL, (char*)&(soap->tcp_keep_intvl), sizeof(int)))
- { soap->errnum = soap_socket_errno(fd);
- soap_set_sender_error(soap, tcp_error(soap), "setsockopt TCP_KEEPINTVL failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, (SOAP_SOCKET)fd);
-#ifdef WITH_IPV6
- freeaddrinfo(ressave);
-#endif
- return SOAP_INVALID_SOCKET;
- }
-#endif
-#ifdef TCP_KEEPCNT
- if (soap->tcp_keep_cnt && setsockopt((SOAP_SOCKET)fd, IPPROTO_TCP, TCP_KEEPCNT, (char*)&(soap->tcp_keep_cnt), sizeof(int)))
- { soap->errnum = soap_socket_errno(fd);
- soap_set_sender_error(soap, tcp_error(soap), "setsockopt TCP_KEEPCNT failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, (SOAP_SOCKET)fd);
-#ifdef WITH_IPV6
- freeaddrinfo(ressave);
-#endif
- return SOAP_INVALID_SOCKET;
- }
-#endif
-#ifdef TCP_NODELAY
- if (!(soap->omode & SOAP_IO_UDP) && setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char*)&set, sizeof(int)))
- { soap->errnum = soap_socket_errno(fd);
- soap_set_sender_error(soap, tcp_error(soap), "setsockopt TCP_NODELAY failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, fd);
-#ifdef WITH_IPV6
- freeaddrinfo(ressave);
-#endif
- return SOAP_INVALID_SOCKET;
- }
-#endif
-#ifdef WITH_IPV6
- if ((soap->omode & SOAP_IO_UDP) && soap->ipv6_multicast_if)
- { struct sockaddr_in6 *in6addr = (struct sockaddr_in6*)res->ai_addr;
- in6addr->sin6_scope_id = soap->ipv6_multicast_if;
- }
-#endif
-#ifdef IP_MULTICAST_TTL
- if ((soap->omode & SOAP_IO_UDP) && soap->ipv4_multicast_if && !soap->ipv6_multicast_if)
- { if (soap->ipv4_multicast_ttl > 0)
- { char ttl = (char)(soap->ipv4_multicast_ttl);
- if (setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL, (char*)&ttl, sizeof(ttl)))
- { soap->errnum = soap_socket_errno(fd);
- soap_set_sender_error(soap, tcp_error(soap), "setsockopt IP_MULTICAST_TTL failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, fd);
- return SOAP_INVALID_SOCKET;
- }
- }
-#ifndef WINDOWS
- if (setsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF, (char*)soap->ipv4_multicast_if, sizeof(struct in_addr)))
- { soap->errnum = soap_socket_errno(fd);
- soap_set_sender_error(soap, tcp_error(soap), "setsockopt IP_MULTICAST_IF failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, fd);
- return SOAP_INVALID_SOCKET;
- }
-#else
-#ifndef IP_MULTICAST_IF
-#define IP_MULTICAST_IF 2
-#endif
- if (setsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF, (char*)soap->ipv4_multicast_if, sizeof(struct in_addr)))
- { soap->errnum = soap_socket_errno(fd);
- soap_set_sender_error(soap, tcp_error(soap), "setsockopt IP_MULTICAST_IF failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, fd);
- return SOAP_INVALID_SOCKET;
- }
-#endif
- }
-#endif
-#endif
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Opening socket %d to host='%s' port=%d\n", fd, host, port));
-#ifndef WITH_IPV6
- soap->peerlen = sizeof(soap->peer);
- memset((void*)&soap->peer, 0, sizeof(soap->peer));
- soap->peer.sin_family = AF_INET;
- soap->errmode = 2;
- if (soap->proxy_host)
- { if (soap->fresolve(soap, soap->proxy_host, &soap->peer.sin_addr))
- { soap_set_sender_error(soap, tcp_error(soap), "get proxy host by name failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, fd);
- return SOAP_INVALID_SOCKET;
- }
- soap->peer.sin_port = htons((short)soap->proxy_port);
- }
- else
- { if (soap->fresolve(soap, host, &soap->peer.sin_addr))
- { soap_set_sender_error(soap, tcp_error(soap), "get host by name failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, fd);
- return SOAP_INVALID_SOCKET;
- }
- soap->peer.sin_port = htons((short)port);
- }
- soap->errmode = 0;
-#ifndef WITH_LEAN
- if ((soap->omode & SOAP_IO_UDP))
- return fd;
-#endif
-#else
- if ((soap->omode & SOAP_IO_UDP))
- { memcpy(&soap->peer, res->ai_addr, res->ai_addrlen);
- soap->peerlen = res->ai_addrlen;
- freeaddrinfo(ressave);
- return fd;
- }
-#endif
-#ifndef WITH_LEAN
- if (soap->connect_timeout)
- SOAP_SOCKNONBLOCK(fd)
- else
- SOAP_SOCKBLOCK(fd)
- retries = 10;
-#endif
- for (;;)
- {
-#ifdef WITH_IPV6
- if (connect(fd, res->ai_addr, (int)res->ai_addrlen))
-#else
- if (connect(fd, (struct sockaddr*)&soap->peer, sizeof(soap->peer)))
-#endif
- { err = soap_socket_errno(fd);
-#ifndef WITH_LEAN
- if (err == SOAP_EADDRINUSE)
- { soap->fclosesocket(soap, fd);
- if (retries-- > 0)
- goto again;
- }
- else if (soap->connect_timeout && (err == SOAP_EINPROGRESS || err == SOAP_EAGAIN || err == SOAP_EWOULDBLOCK))
- {
- SOAP_SOCKLEN_T k;
- for (;;)
- { register int r;
- r = tcp_select(soap, fd, SOAP_TCP_SELECT_SND, soap->connect_timeout);
- if (r > 0)
- break;
- if (!r)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Connect timeout\n"));
- soap_set_sender_error(soap, "Timeout", "connect failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, fd);
- soap->socket = SOAP_INVALID_SOCKET; /* Oracle customization */
-#ifdef WITH_IPV6
- freeaddrinfo(ressave);
-#endif
- return SOAP_INVALID_SOCKET;
- }
- r = soap->errnum;
- if (r != SOAP_EINTR)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Could not connect to host\n"));
- soap_set_sender_error(soap, tcp_error(soap), "connect failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, fd);
- soap->socket = SOAP_INVALID_SOCKET; /* Oracle customization */
-#ifdef WITH_IPV6
- freeaddrinfo(ressave);
-#endif
- return SOAP_INVALID_SOCKET;
- }
- }
- k = (SOAP_SOCKLEN_T)sizeof(soap->errnum);
- if (!getsockopt(fd, SOL_SOCKET, SO_ERROR, (char*)&soap->errnum, &k) && !soap->errnum) /* portability note: see SOAP_SOCKLEN_T definition in stdsoap2.h */
- break;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Could not connect to host\n"));
- if (!soap->errnum)
- soap->errnum = soap_socket_errno(fd);
- soap_set_sender_error(soap, tcp_error(soap), "connect failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, fd);
-#ifdef WITH_IPV6
- freeaddrinfo(ressave);
-#endif
- return SOAP_INVALID_SOCKET;
- }
-#endif
-#ifdef WITH_IPV6
- if (res->ai_next)
- { res = res->ai_next;
- soap->fclosesocket(soap, fd);
- goto again;
- }
-#endif
- if (err && err != SOAP_EINTR)
- { soap->errnum = err;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Could not connect to host\n"));
- soap_set_sender_error(soap, tcp_error(soap), "connect failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, fd);
-#ifdef WITH_IPV6
- freeaddrinfo(ressave);
-#endif
- return SOAP_INVALID_SOCKET;
- }
- }
- else
- break;
- }
-#ifdef WITH_IPV6
- soap->peerlen = 0; /* IPv6: already connected so use send() */
- freeaddrinfo(ressave);
-#endif
- if (soap->recv_timeout || soap->send_timeout)
- SOAP_SOCKNONBLOCK(fd)
- else
- SOAP_SOCKBLOCK(fd)
- soap->socket = fd;
- soap->imode &= ~SOAP_ENC_SSL;
- soap->omode &= ~SOAP_ENC_SSL;
- if (!soap_tag_cmp(endpoint, "https:*"))
- {
-#ifdef WITH_OPENSSL
- BIO *bio;
- int r;
- if (soap->proxy_host)
- { soap_mode m = soap->mode; /* preserve settings */
- soap_mode om = soap->omode; /* make sure we only parse HTTP */
- size_t n = soap->count; /* save the content length */
- const char *userid, *passwd;
- soap->omode &= ~SOAP_ENC; /* mask IO and ENC */
- soap->omode |= SOAP_IO_BUFFER;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Connecting to %s proxy server\n", soap->proxy_http_version));
- sprintf(soap->tmpbuf, "CONNECT %s:%d HTTP/%s", host, port, soap->proxy_http_version);
- if (soap_begin_send(soap)
- || (soap->error = soap->fposthdr(soap, soap->tmpbuf, NULL)))
- { soap->fclosesocket(soap, fd);
- soap->socket = SOAP_INVALID_SOCKET; /* Oracle customization */
- return SOAP_INVALID_SOCKET;
- }
-#ifndef WITH_LEAN
- if (soap->proxy_userid && soap->proxy_passwd && strlen(soap->proxy_userid) + strlen(soap->proxy_passwd) < 761)
- { sprintf(soap->tmpbuf + 262, "%s:%s", soap->proxy_userid, soap->proxy_passwd);
- strcpy(soap->tmpbuf, "Basic ");
- soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
- if ((soap->error = soap->fposthdr(soap, "Proxy-Authorization", soap->tmpbuf)))
- { soap->fclosesocket(soap, fd);
- soap->socket = SOAP_INVALID_SOCKET; /* Oracle customization */
- //
- // Oracle customization
- // TODO: returning soap->error may also be a bug
- //
- return soap->error;
- }
- }
-#endif
- if ((soap->error = soap->fposthdr(soap, NULL, NULL))
- || soap_flush(soap))
- { soap->fclosesocket(soap, fd);
- soap->socket = SOAP_INVALID_SOCKET; /* Oracle customization */
- return SOAP_INVALID_SOCKET;
- }
- soap->omode = om;
- om = soap->imode;
- soap->imode &= ~SOAP_ENC; /* mask IO and ENC */
- userid = soap->userid; /* preserve */
- passwd = soap->passwd; /* preserve */
- if ((soap->error = soap->fparse(soap)))
- { soap->fclosesocket(soap, fd);
- soap->socket = SOAP_INVALID_SOCKET; /* Oracle customization */
- return SOAP_INVALID_SOCKET;
- }
- soap->userid = userid; /* restore */
- soap->passwd = passwd; /* restore */
- soap->imode = om; /* restore */
- soap->count = n; /* restore */
- if (soap_begin_send(soap))
- { soap->fclosesocket(soap, fd);
- return SOAP_INVALID_SOCKET;
- }
- if (endpoint)
- strncpy(soap->endpoint, endpoint, sizeof(soap->endpoint)-1); /* restore */
- soap->mode = m;
- }
- if (!soap->ctx && (soap->error = soap->fsslauth(soap)))
- { soap_set_sender_error(soap, "SSL error", "SSL authentication failed in tcp_connect(): check password, key file, and ca file.", SOAP_SSL_ERROR);
- soap->fclosesocket(soap, fd);
- soap->socket = SOAP_INVALID_SOCKET; /* Oracle customization */
- return SOAP_INVALID_SOCKET;
- }
- if (!soap->ssl)
- { soap->ssl = SSL_new(soap->ctx);
- if (!soap->ssl)
- { soap->fclosesocket(soap, fd);
- soap->socket = SOAP_INVALID_SOCKET; /* Oracle customization */
- soap->error = SOAP_SSL_ERROR;
- return SOAP_INVALID_SOCKET;
- }
- }
- else
- SSL_clear(soap->ssl);
- if (soap->session)
- { if (!strcmp(soap->session_host, host) && soap->session_port == port)
- SSL_set_session(soap->ssl, soap->session);
- SSL_SESSION_free(soap->session);
- soap->session = NULL;
- }
- soap->imode |= SOAP_ENC_SSL;
- soap->omode |= SOAP_ENC_SSL;
- bio = BIO_new_socket((int)fd, BIO_NOCLOSE);
- SSL_set_bio(soap->ssl, bio, bio);
- retries = 0;
-#ifndef WITH_LEAN
- /* Connect timeout: set SSL sockets to non-blocking */
- if (soap->connect_timeout)
- { SOAP_SOCKNONBLOCK(fd)
- retries = 10*soap->connect_timeout;
- }
- else
- SOAP_SOCKBLOCK(fd)
-#endif
- //
- // Oracle customization
- //
- // Clear error queue of any errors remaining from a previous operation
- ERR_clear_error();
-
- if (retries <= 0)
- retries = 100; /* SSL connect timeout: 10 sec retries, 100 x 0.1 sec */
- /* Try connecting until success or timeout (when nonblocking) */
- do
- { if ((r = SSL_connect(soap->ssl)) <= 0)
- { int err = SSL_get_error(soap->ssl, r);
- if (err == SSL_ERROR_WANT_CONNECT || err == SSL_ERROR_WANT_READ || err == SSL_ERROR_WANT_WRITE)
- { register int s;
- if (err == SSL_ERROR_WANT_READ)
- s = tcp_select(soap, soap->socket, SOAP_TCP_SELECT_RCV | SOAP_TCP_SELECT_ERR, -100000);
- else
- s = tcp_select(soap, soap->socket, SOAP_TCP_SELECT_SND | SOAP_TCP_SELECT_ERR, -100000);
- if (s < 0 && soap->errnum != SOAP_EINTR)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "SSL_connect/select error in tcp_connect\n"));
- soap_set_sender_error(soap, soap_ssl_error(soap, r), "SSL_connect failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, fd);
- soap->socket = SOAP_INVALID_SOCKET; /* Oracle customization */
- return SOAP_INVALID_SOCKET;
- }
- if (s == 0 && retries-- <= 0)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "SSL connect timeout\n"));
- soap_set_sender_error(soap, "Timeout", "SSL connect failed in tcp_connect()", SOAP_TCP_ERROR);
- soap->fclosesocket(soap, fd);
- soap->socket = SOAP_INVALID_SOCKET; /* Oracle customization */
- return SOAP_INVALID_SOCKET;
- }
- }
- else
- { soap_set_sender_error(soap, soap_ssl_error(soap, r), "SSL_connect error in tcp_connect()", SOAP_SSL_ERROR);
- soap->fclosesocket(soap, fd);
- soap->socket = SOAP_INVALID_SOCKET; /* Oracle customization */
- return SOAP_INVALID_SOCKET;
- }
- }
- } while (!SSL_is_init_finished(soap->ssl));
- /* Set SSL sockets to nonblocking */
- SOAP_SOCKNONBLOCK(fd)
- /* Check server credentials when required */
- if ((soap->ssl_flags & SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION))
- { int err;
- if ((err = SSL_get_verify_result(soap->ssl)) != X509_V_OK)
- { soap_set_sender_error(soap, X509_verify_cert_error_string(err), "SSL certificate presented by peer cannot be verified in tcp_connect()", SOAP_SSL_ERROR);
- soap->fclosesocket(soap, fd);
- soap->socket = SOAP_INVALID_SOCKET; /* Oracle customization */
- return SOAP_INVALID_SOCKET;
- }
- if (!(soap->ssl_flags & SOAP_SSL_SKIP_HOST_CHECK))
- { /* Oracle customization: X509_NAME *subj; */
- int ext_count;
- int ok = 0;
- X509 *peer;
- peer = SSL_get_peer_certificate(soap->ssl);
- if (!peer)
- { soap_set_sender_error(soap, "SSL error", "No SSL certificate was presented by the peer in tcp_connect()", SOAP_SSL_ERROR);
- soap->fclosesocket(soap, fd);
- soap->socket = SOAP_INVALID_SOCKET; /* Oracle customization */
- return SOAP_INVALID_SOCKET;
- }
- ext_count = X509_get_ext_count(peer);
- if (ext_count > 0)
- { int i;
- for (i = 0; i < ext_count; i++)
- { X509_EXTENSION *ext = X509_get_ext(peer, i);
- const char *ext_str = OBJ_nid2sn(OBJ_obj2nid(X509_EXTENSION_get_object(ext)));
- if (ext_str && !strcmp(ext_str, "subjectAltName"))
- { X509V3_EXT_METHOD *meth = (X509V3_EXT_METHOD*)X509V3_EXT_get(ext);
- void *ext_data;
-#if (OPENSSL_VERSION_NUMBER >= 0x0090800fL)
- const unsigned char *data;
-#else
- unsigned char *data;
-#endif
- STACK_OF(CONF_VALUE) *val;
- int j;
- if (!meth)
- break;
- data = ext->value->data;
-#if (OPENSSL_VERSION_NUMBER > 0x00907000L)
- if (meth->it)
- ext_data = ASN1_item_d2i(NULL, &data, ext->value->length, ASN1_ITEM_ptr(meth->it));
- else
- { /* OpenSSL not perfectly portable at this point (?):
- Some compilers appear to prefer
- meth->d2i(NULL, (const unsigned char**)&data, ...
- and others prefer
- meth->d2i(NULL, &data, ext->value->length);
- */
- ext_data = meth->d2i(NULL, &data, ext->value->length);
- }
-#else
- ext_data = meth->d2i(NULL, &data, ext->value->length);
-#endif
- if (ext_data)
- { val = meth->i2v(meth, ext_data, NULL);
- if (val)
- { for (j = 0; j < sk_CONF_VALUE_num(val); j++)
- { CONF_VALUE *nval = sk_CONF_VALUE_value(val, j);
- if (nval && !strcmp(nval->name, "DNS") && !strcmp(nval->value, host))
- { ok = 1;
- break;
- }
- }
- sk_CONF_VALUE_pop_free(val, X509V3_conf_free);
- }
-#if (OPENSSL_VERSION_NUMBER > 0x00907000L)
- if (meth->it)
- ASN1_item_free((ASN1_VALUE*)ext_data, ASN1_ITEM_ptr(meth->it));
- else
- meth->ext_free(ext_data);
-#else
- meth->ext_free(ext_data);
-#endif
- }
- }
- if (ok)
- break;
- }
- }
- //
- // Oracle customization
- //
- // the certificate subject name is an entity name, not a DNS name
- //
- /*
- if (!ok && (subj = X509_get_subject_name(peer)))
- { int i = -1;
- do
- { ASN1_STRING *name;
- i = X509_NAME_get_index_by_NID(subj, NID_commonName, i);
- if (i == -1)
- break;
- name = X509_NAME_ENTRY_get_data(X509_NAME_get_entry(subj, i));
- if (name)
- { if (!soap_tag_cmp(host, (const char*)M_ASN1_STRING_data(name)))
- ok = 1;
- else
- { unsigned char *tmp = NULL;
- ASN1_STRING_to_UTF8(&tmp, name);
- if (tmp)
- { if (!soap_tag_cmp(host, (const char*)tmp))
- ok = 1;
- OPENSSL_free(tmp);
- }
- }
- }
- } while (!ok);
- }
- */
- X509_free(peer);
- /*
- if (!ok)
- { soap_set_sender_error(soap, "SSL error", "SSL certificate host name mismatch in tcp_connect()", SOAP_SSL_ERROR);
- soap->fclosesocket(soap, fd);
- return SOAP_INVALID_SOCKET;
- }
- */
- }
- }
-#ifdef SOAP_DEBUG
- //
- // Oracle customization for debug
- //
- if ( SSL_session_reused( soap->ssl ) == 1)
- {
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "SSL session reused\n"));
- }
- else
- {
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "SSL session negotiated\n"));
- }
-#endif
-#else
- soap->fclosesocket(soap, fd);
- soap->socket = SOAP_INVALID_SOCKET; /* Oracle customization */
- soap->error = SOAP_SSL_ERROR;
- return SOAP_INVALID_SOCKET;
-#endif
- }
- return fd;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIO
-#ifndef PALM_1
-static int
-tcp_select(struct soap *soap, SOAP_SOCKET s, int flags, int timeout)
-{ register int r;
- struct timeval tv;
- fd_set fd[3], *rfd, *sfd, *efd;
- soap->errnum = 0;
-#ifndef WIN32
- /* if fd max set size exceeded, use poll() when available */
-#if defined(__QNX__) || defined(QNX) /* select() is not MT safe on some QNX */
- if (1)
-#else
- if ((int)s >= (int)FD_SETSIZE)
-#endif
-#ifdef HAVE_POLL
- { struct pollfd pollfd;
- int retries = 0;
- pollfd.fd = (int)s;
- pollfd.events = 0;
- if (flags & SOAP_TCP_SELECT_RCV)
- pollfd.events |= POLLIN;
- if (flags & SOAP_TCP_SELECT_SND)
- pollfd.events |= POLLOUT;
- if (flags & SOAP_TCP_SELECT_ERR)
- pollfd.events |= POLLERR;
- if (timeout < 0)
- timeout /= -1000; /* -usec -> ms */
- else if (timeout <= 1000000) /* avoid overflow */
- timeout *= 1000; /* sec -> ms */
- else
- { retries = timeout / 1000000;
- timeout = 1000000000;
- }
- do r = poll(&pollfd, 1, timeout);
- while (r == 0 && retries--);
- if (r > 0)
- { r = 0;
- if ((flags & SOAP_TCP_SELECT_RCV) && (pollfd.revents & POLLIN))
- r |= SOAP_TCP_SELECT_RCV;
- if ((flags & SOAP_TCP_SELECT_SND) && (pollfd.revents & POLLOUT))
- r |= SOAP_TCP_SELECT_SND;
- if ((flags & SOAP_TCP_SELECT_ERR) && (pollfd.revents & POLLERR))
- r |= SOAP_TCP_SELECT_ERR;
- }
- else if (r < 0)
- soap->errnum = soap_socket_errno(s);
- return r;
- }
-#else
- { soap->error = SOAP_FD_EXCEEDED;
- return -1;
- }
-#endif
-#endif
- rfd = sfd = efd = NULL;
- if (flags & SOAP_TCP_SELECT_RCV)
- { rfd = &fd[0];
- FD_ZERO(rfd);
- FD_SET(s, rfd);
- }
- if (flags & SOAP_TCP_SELECT_SND)
- { sfd = &fd[1];
- FD_ZERO(sfd);
- FD_SET(s, sfd);
- }
- if (flags & SOAP_TCP_SELECT_ERR)
- { efd = &fd[2];
- FD_ZERO(efd);
- FD_SET(s, efd);
- }
- if (timeout >= 0)
- { tv.tv_sec = timeout;
- tv.tv_usec = 0;
- }
- else
- { tv.tv_sec = -timeout / 1000000;
- tv.tv_usec = -timeout % 1000000;
- }
- r = select((int)s + 1, rfd, sfd, efd, &tv);
- if (r > 0)
- { r = 0;
- if ((flags & SOAP_TCP_SELECT_RCV) && FD_ISSET(s, rfd))
- r |= SOAP_TCP_SELECT_RCV;
- if ((flags & SOAP_TCP_SELECT_SND) && FD_ISSET(s, sfd))
- r |= SOAP_TCP_SELECT_SND;
- if ((flags & SOAP_TCP_SELECT_ERR) && FD_ISSET(s, efd))
- r |= SOAP_TCP_SELECT_ERR;
- }
- else if (r < 0)
- soap->errnum = soap_socket_errno(s);
- return r;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIO
-#ifndef PALM_1
-static SOAP_SOCKET
-tcp_accept(struct soap *soap, SOAP_SOCKET s, struct sockaddr *a, int *n)
-{ SOAP_SOCKET fd;
- fd = accept(s, a, (SOAP_SOCKLEN_T*)n); /* portability note: see SOAP_SOCKLEN_T definition in stdsoap2.h */
-#ifdef SOCKET_CLOSE_ON_EXEC
-#ifdef WIN32
-#ifndef UNDER_CE
- SetHandleInformation((HANDLE)fd, HANDLE_FLAG_INHERIT, 0);
-#endif
-#else
- fcntl(fd, F_SETFD, FD_CLOEXEC);
-#endif
-#endif
- return fd;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIO
-#ifndef PALM_1
-static int
-tcp_disconnect(struct soap *soap)
-{
-#ifdef WITH_OPENSSL
- if (soap->ssl)
- { int r, s = 0;
- if (soap->session)
- { SSL_SESSION_free(soap->session);
- soap->session = NULL;
- }
- if (*soap->host)
- { soap->session = SSL_get1_session(soap->ssl);
- if (soap->session)
- { strcpy(soap->session_host, soap->host);
- soap->session_port = soap->port;
- }
- }
- r = SSL_shutdown(soap->ssl);
- /* SSL shutdown does not work when reads are pending */
- while (SSL_want_read(soap->ssl))
- { SSL_read(soap->ssl, NULL, 0);
- if (soap_socket_errno(soap->socket) != SOAP_EAGAIN)
- { r = SSL_shutdown(soap->ssl);
- break;
- }
- }
- if (r == 0)
- { if (soap_valid_socket(soap->socket))
- { if (!soap->fshutdownsocket(soap, soap->socket, 1))
- {
-#ifndef WITH_LEAN
- /*
- wait up to 10 seconds for close_notify to be sent by peer (if peer not
- present, this avoids calling SSL_shutdown() which has a lengthy return
- timeout)
- */
- r = tcp_select(soap, soap->socket, SOAP_TCP_SELECT_RCV | SOAP_TCP_SELECT_ERR, 10);
- if (r <= 0 && soap->errnum != SOAP_EINTR)
- { soap->errnum = 0;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Connection lost...\n"));
- soap->fclosesocket(soap, soap->socket);
- soap->socket = SOAP_INVALID_SOCKET;
- ERR_remove_state(0);
- return SOAP_OK;
- }
-#else
- r = SSL_shutdown(soap->ssl);
-#endif
- }
- }
- }
- if (r != 1)
- { s = ERR_get_error();
- if (s)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Shutdown failed: %d\n", SSL_get_error(soap->ssl, r)));
- if (soap_valid_socket(soap->socket) && !(soap->omode & SOAP_IO_UDP))
- { soap->fclosesocket(soap, soap->socket);
- soap->socket = SOAP_INVALID_SOCKET;
- }
- }
- }
- SSL_free(soap->ssl);
- soap->ssl = NULL;
- if (s)
- return SOAP_SSL_ERROR;
- ERR_remove_state(0);
- }
-#endif
- if (soap_valid_socket(soap->socket) && !(soap->omode & SOAP_IO_UDP))
- { soap->fshutdownsocket(soap, soap->socket, 2);
- soap->fclosesocket(soap, soap->socket);
- soap->socket = SOAP_INVALID_SOCKET;
- }
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIO
-#ifndef PALM_1
-static int
-tcp_closesocket(struct soap *soap, SOAP_SOCKET fd)
-{ DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Close socket %d\n", (int)fd));
- return soap_closesocket(fd);
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIO
-#ifndef PALM_1
-static int
-tcp_shutdownsocket(struct soap *soap, SOAP_SOCKET fd, int how)
-{ DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Shutdown socket %d how=%d\n", (int)fd, how));
- return shutdown(fd, how);
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIO
-#ifndef PALM_1
-SOAP_FMAC1
-SOAP_SOCKET
-SOAP_FMAC2
-soap_bind(struct soap *soap, const char *host, int port, int backlog)
-{
-#ifdef WITH_IPV6
- struct addrinfo *addrinfo = NULL;
- struct addrinfo hints;
- struct addrinfo res;
- int err;
-#ifdef IPV6_V6ONLY
- int unset = 0;
-#ifdef SOL_IP
- int level = SOL_IP;
-#else
- int level = IPPROTO_IPV6;
-#endif
-#endif
-#endif
-#ifndef WITH_LEAN
- int len = SOAP_BUFLEN;
- int set = 1;
-#endif
- if (soap_valid_socket(soap->master))
- { soap->fclosesocket(soap, soap->master);
- soap->master = SOAP_INVALID_SOCKET;
- }
- soap->socket = SOAP_INVALID_SOCKET;
- soap->errmode = 1;
- if (tcp_init(soap))
- { soap_set_receiver_error(soap, tcp_error(soap), "TCP init failed in soap_bind()", SOAP_TCP_ERROR);
- return SOAP_INVALID_SOCKET;
- }
-#ifdef WITH_IPV6
- memset((void*)&hints, 0, sizeof(hints));
- hints.ai_family = PF_UNSPEC;
-#ifndef WITH_LEAN
- if ((soap->omode & SOAP_IO_UDP))
- hints.ai_socktype = SOCK_DGRAM;
- else
-#endif
- hints.ai_socktype = SOCK_STREAM;
- hints.ai_flags = AI_PASSIVE;
- soap->errmode = 2;
- /* Oracle customization: check err before using addrinfo */
- err = getaddrinfo(host, soap_int2s(soap, port), &hints, &addrinfo);
- if (err || !addrinfo)
- { soap_set_receiver_error(soap, SOAP_GAI_STRERROR(err), "getaddrinfo failed in soap_bind()", SOAP_TCP_ERROR);
- if (addrinfo)
- {
- freeaddrinfo(addrinfo);
- }
- return SOAP_INVALID_SOCKET;
- }
- res = *addrinfo;
- memcpy(&soap->peer, addrinfo->ai_addr, addrinfo->ai_addrlen);
- soap->peerlen = addrinfo->ai_addrlen;
- res.ai_addr = (struct sockaddr*)&soap->peer;
- res.ai_addrlen = soap->peerlen;
- freeaddrinfo(addrinfo);
- soap->master = (int)socket(res.ai_family, res.ai_socktype, res.ai_protocol);
-#else
-#ifndef WITH_LEAN
- if ((soap->omode & SOAP_IO_UDP))
- soap->master = (int)socket(AF_INET, SOCK_DGRAM, 0);
- else
-#endif
- soap->master = (int)socket(AF_INET, SOCK_STREAM, 0);
-#endif
- soap->errmode = 0;
- if (!soap_valid_socket(soap->master))
- { soap->errnum = soap_socket_errno(soap->master);
- soap_set_receiver_error(soap, tcp_error(soap), "socket failed in soap_bind()", SOAP_TCP_ERROR);
- return SOAP_INVALID_SOCKET;
- }
-#ifndef WITH_LEAN
- if ((soap->omode & SOAP_IO_UDP))
- soap->socket = soap->master;
-#endif
-#ifdef SOCKET_CLOSE_ON_EXEC
-#ifdef WIN32
-#ifndef UNDER_CE
- SetHandleInformation((HANDLE)soap->master, HANDLE_FLAG_INHERIT, 0);
-#endif
-#else
- fcntl(soap->master, F_SETFD, 1);
-#endif
-#endif
-#ifndef WITH_LEAN
- if (soap->bind_flags && setsockopt(soap->master, SOL_SOCKET, soap->bind_flags, (char*)&set, sizeof(int)))
- { soap->errnum = soap_socket_errno(soap->master);
- soap_set_receiver_error(soap, tcp_error(soap), "setsockopt failed in soap_bind()", SOAP_TCP_ERROR);
- return SOAP_INVALID_SOCKET;
- }
- if (((soap->imode | soap->omode) & SOAP_IO_KEEPALIVE) && setsockopt(soap->master, SOL_SOCKET, SO_KEEPALIVE, (char*)&set, sizeof(int)))
- { soap->errnum = soap_socket_errno(soap->master);
- soap_set_receiver_error(soap, tcp_error(soap), "setsockopt SO_KEEPALIVE failed in soap_bind()", SOAP_TCP_ERROR);
- return SOAP_INVALID_SOCKET;
- }
- if (setsockopt(soap->master, SOL_SOCKET, SO_SNDBUF, (char*)&len, sizeof(int)))
- { soap->errnum = soap_socket_errno(soap->master);
- soap_set_receiver_error(soap, tcp_error(soap), "setsockopt SO_SNDBUF failed in soap_bind()", SOAP_TCP_ERROR);
- return SOAP_INVALID_SOCKET;
- }
- if (setsockopt(soap->master, SOL_SOCKET, SO_RCVBUF, (char*)&len, sizeof(int)))
- { soap->errnum = soap_socket_errno(soap->master);
- soap_set_receiver_error(soap, tcp_error(soap), "setsockopt SO_RCVBUF failed in soap_bind()", SOAP_TCP_ERROR);
- return SOAP_INVALID_SOCKET;
- }
-#ifdef TCP_NODELAY
- if (!(soap->omode & SOAP_IO_UDP) && setsockopt(soap->master, IPPROTO_TCP, TCP_NODELAY, (char*)&set, sizeof(int)))
- { soap->errnum = soap_socket_errno(soap->master);
- soap_set_receiver_error(soap, tcp_error(soap), "setsockopt TCP_NODELAY failed in soap_bind()", SOAP_TCP_ERROR);
- return SOAP_INVALID_SOCKET;
- }
-#endif
-#endif
-#ifdef WITH_IPV6
-#ifdef IPV6_V6ONLY
- if (setsockopt(soap->master, level, IPV6_V6ONLY, (char*)&unset, sizeof(int)))
- { soap->errnum = soap_socket_errno(soap->master);
- soap_set_receiver_error(soap, tcp_error(soap), "setsockopt IPV6_V6ONLY failed in soap_bind()", SOAP_TCP_ERROR);
- return SOAP_INVALID_SOCKET;
- }
-#endif
- soap->errmode = 0;
- if (bind(soap->master, res.ai_addr, (int)res.ai_addrlen))
- { soap->errnum = soap_socket_errno(soap->master);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Could not bind to host\n"));
- soap_closesock(soap);
- soap_set_receiver_error(soap, tcp_error(soap), "bind failed in soap_bind()", SOAP_TCP_ERROR);
- return SOAP_INVALID_SOCKET;
- }
-#else
- soap->peerlen = sizeof(soap->peer);
- memset((void*)&soap->peer, 0, sizeof(soap->peer));
- soap->peer.sin_family = AF_INET;
- soap->errmode = 2;
- if (host)
- { if (soap->fresolve(soap, host, &soap->peer.sin_addr))
- { soap_set_receiver_error(soap, tcp_error(soap), "get host by name failed in soap_bind()", SOAP_TCP_ERROR);
- return SOAP_INVALID_SOCKET;
- }
- }
- else
- soap->peer.sin_addr.s_addr = htonl(INADDR_ANY);
- soap->peer.sin_port = htons((short)port);
- soap->errmode = 0;
- if (bind(soap->master, (struct sockaddr*)&soap->peer, (int)soap->peerlen))
- { soap->errnum = soap_socket_errno(soap->master);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Could not bind to host\n"));
- soap_closesock(soap);
- soap_set_receiver_error(soap, tcp_error(soap), "bind failed in soap_bind()", SOAP_TCP_ERROR);
- return SOAP_INVALID_SOCKET;
- }
-#endif
- if (!(soap->omode & SOAP_IO_UDP) && listen(soap->master, backlog))
- { soap->errnum = soap_socket_errno(soap->master);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Could not bind to host\n"));
- soap_closesock(soap);
- soap_set_receiver_error(soap, tcp_error(soap), "listen failed in soap_bind()", SOAP_TCP_ERROR);
- return SOAP_INVALID_SOCKET;
- }
- return soap->master;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIO
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_poll(struct soap *soap)
-{
-#ifndef WITH_LEAN
- register int r;
- if (soap_valid_socket(soap->socket))
- { r = tcp_select(soap, soap->socket, SOAP_TCP_SELECT_ALL, 0);
- if (r > 0 && (r & SOAP_TCP_SELECT_ERR))
- r = -1;
- }
- else if (soap_valid_socket(soap->master))
- r = tcp_select(soap, soap->master, SOAP_TCP_SELECT_SND, 0);
- else
- return SOAP_OK;
- if (r > 0)
- {
-#ifdef WITH_OPENSSL
- if (soap->imode & SOAP_ENC_SSL)
- {
- if (soap_valid_socket(soap->socket)
- && (r & SOAP_TCP_SELECT_SND)
- && (!(r & SOAP_TCP_SELECT_RCV)
- || SSL_peek(soap->ssl, soap->tmpbuf, 1) > 0))
- return SOAP_OK;
- }
- else
-#endif
- if (soap_valid_socket(soap->socket)
- && (r & SOAP_TCP_SELECT_SND)
- && (!(r & SOAP_TCP_SELECT_RCV)
- || recv(soap->socket, soap->tmpbuf, 1, MSG_PEEK) > 0))
- return SOAP_OK;
- }
- else if (r < 0)
- { if ((soap_valid_socket(soap->master) || soap_valid_socket(soap->socket)) && soap_socket_errno(soap->master) != SOAP_EINTR)
- { soap_set_receiver_error(soap, tcp_error(soap), "select failed in soap_poll()", SOAP_TCP_ERROR);
- return soap->error = SOAP_TCP_ERROR;
- }
- }
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Polling: other end down on socket=%d select=%d\n", soap->socket, r));
- return SOAP_EOF;
-#else
- return SOAP_OK;
-#endif
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIO
-#ifndef PALM_1
-SOAP_FMAC1
-SOAP_SOCKET
-SOAP_FMAC2
-soap_accept(struct soap *soap)
-{ int n = (int)sizeof(soap->peer);
-#ifndef WITH_LEAN
- int len = SOAP_BUFLEN;
- int set = 1;
-#endif
- soap->error = SOAP_OK;
-#ifndef WITH_LEAN
- if ((soap->omode & SOAP_IO_UDP))
- return soap->socket = soap->master;
-#endif
- memset((void*)&soap->peer, 0, sizeof(soap->peer));
- soap->socket = SOAP_INVALID_SOCKET;
- soap->errmode = 0;
- soap->keep_alive = 0;
- if (soap_valid_socket(soap->master))
- { register int err;
- for (;;)
- { if (soap->accept_timeout || soap->send_timeout || soap->recv_timeout)
- { for (;;)
- { register int r;
- r = tcp_select(soap, soap->master, SOAP_TCP_SELECT_ALL, soap->accept_timeout ? soap->accept_timeout : 60);
- if (r > 0)
- break;
- if (!r && soap->accept_timeout)
- { soap_set_receiver_error(soap, "Timeout", "accept failed in soap_accept()", SOAP_TCP_ERROR);
- return SOAP_INVALID_SOCKET;
- }
- if (r < 0)
- { r = soap->errnum;
- if (r != SOAP_EINTR)
- { soap_closesock(soap);
- soap_set_sender_error(soap, tcp_error(soap), "accept failed in soap_accept()", SOAP_TCP_ERROR);
- return SOAP_INVALID_SOCKET;
- }
- }
- }
- }
- if (soap->accept_timeout || soap->send_timeout || soap->recv_timeout)
- SOAP_SOCKNONBLOCK(soap->master)
- else
- SOAP_SOCKBLOCK(soap->master)
- soap->socket = soap->faccept(soap, soap->master, (struct sockaddr*)&soap->peer, &n);
- soap->peerlen = (size_t)n;
- if (soap_valid_socket(soap->socket))
- {
-#ifdef WITH_IPV6
-/* Use soap->host to store the numeric form of the remote host */
- getnameinfo((struct sockaddr*)&soap->peer, n, soap->host, sizeof(soap->host), NULL, 0, NI_NUMERICHOST | NI_NUMERICSERV);
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Accept socket %d from %s\n", soap->socket, soap->host));
- //
- // Oracle customization
- //
- // bug fix: save off the remote host
- strcpy(soap->session_host, soap->host);
- soap->ip = 0; /* info stored in soap->peer and soap->host */
- soap->port = 0; /* info stored in soap->peer and soap->host */
-#else
- soap->ip = ntohl(soap->peer.sin_addr.s_addr);
- soap->port = (int)ntohs(soap->peer.sin_port); /* does not return port number on some systems */
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Accept socket %d at port %d from IP %d.%d.%d.%d\n", soap->socket, soap->port, (int)(soap->ip>>24)&0xFF, (int)(soap->ip>>16)&0xFF, (int)(soap->ip>>8)&0xFF, (int)soap->ip&0xFF));
-#endif
-#ifndef WITH_LEAN
- if (soap->accept_flags == SO_LINGER)
- { struct linger linger;
- memset((void*)&linger, 0, sizeof(linger));
- linger.l_onoff = 1;
- linger.l_linger = soap->linger_time;
- if (setsockopt(soap->socket, SOL_SOCKET, SO_LINGER, (char*)&linger, sizeof(struct linger)))
- { soap->errnum = soap_socket_errno(soap->socket);
- soap_set_receiver_error(soap, tcp_error(soap), "setsockopt SO_LINGER failed in soap_accept()", SOAP_TCP_ERROR);
- soap_closesock(soap);
- return SOAP_INVALID_SOCKET;
- }
- }
- else if (soap->accept_flags && setsockopt(soap->socket, SOL_SOCKET, soap->accept_flags, (char*)&set, sizeof(int)))
- { soap->errnum = soap_socket_errno(soap->socket);
- soap_set_receiver_error(soap, tcp_error(soap), "setsockopt failed in soap_accept()", SOAP_TCP_ERROR);
- soap_closesock(soap);
- return SOAP_INVALID_SOCKET;
- }
- if (((soap->imode | soap->omode) & SOAP_IO_KEEPALIVE) && setsockopt(soap->socket, SOL_SOCKET, SO_KEEPALIVE, (char*)&set, sizeof(int)))
- { soap->errnum = soap_socket_errno(soap->socket);
- soap_set_receiver_error(soap, tcp_error(soap), "setsockopt SO_KEEPALIVE failed in soap_accept()", SOAP_TCP_ERROR);
- soap_closesock(soap);
- return SOAP_INVALID_SOCKET;
- }
- if (setsockopt(soap->socket, SOL_SOCKET, SO_SNDBUF, (char*)&len, sizeof(int)))
- { soap->errnum = soap_socket_errno(soap->socket);
- soap_set_receiver_error(soap, tcp_error(soap), "setsockopt SO_SNDBUF failed in soap_accept()", SOAP_TCP_ERROR);
- soap_closesock(soap);
- return SOAP_INVALID_SOCKET;
- }
- if (setsockopt(soap->socket, SOL_SOCKET, SO_RCVBUF, (char*)&len, sizeof(int)))
- { soap->errnum = soap_socket_errno(soap->socket);
- soap_set_receiver_error(soap, tcp_error(soap), "setsockopt SO_RCVBUF failed in soap_accept()", SOAP_TCP_ERROR);
- soap_closesock(soap);
- return SOAP_INVALID_SOCKET;
- }
-#ifdef TCP_NODELAY
- if (!(soap->omode & SOAP_IO_UDP) && setsockopt(soap->socket, IPPROTO_TCP, TCP_NODELAY, (char*)&set, sizeof(int)))
- { soap->errnum = soap_socket_errno(soap->socket);
- soap_set_receiver_error(soap, tcp_error(soap), "setsockopt TCP_NODELAY failed in soap_accept()", SOAP_TCP_ERROR);
- soap_closesock(soap);
- return SOAP_INVALID_SOCKET;
- }
-#endif
-#endif
- soap->keep_alive = (((soap->imode | soap->omode) & SOAP_IO_KEEPALIVE) != 0);
- return soap->socket;
- }
- err = soap_socket_errno(soap->socket);
- if (err != 0 && err != SOAP_EINTR && err != SOAP_EAGAIN && err != SOAP_EWOULDBLOCK)
- { DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Accept failed from %s\n", soap->host));
- soap->errnum = err;
- soap_set_receiver_error(soap, tcp_error(soap), "accept failed in soap_accept()", SOAP_TCP_ERROR);
- soap_closesock(soap);
- return SOAP_INVALID_SOCKET;
- }
- }
- }
- else
- { soap->errnum = 0;
- soap_set_receiver_error(soap, tcp_error(soap), "no master socket in soap_accept()", SOAP_TCP_ERROR);
- return SOAP_INVALID_SOCKET;
- }
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_closesock(struct soap *soap)
-{ register int status = soap->error;
-#ifndef WITH_LEANER
- soap->mime.first = NULL;
- soap->mime.last = NULL;
- soap->dime.first = NULL;
- soap->dime.last = NULL;
-#endif
- if (soap->fdisconnect && (soap->error = soap->fdisconnect(soap)))
- return soap->error;
- if (status == SOAP_EOF || status == SOAP_TCP_ERROR || status == SOAP_SSL_ERROR || !soap->keep_alive)
- { if (soap->fclose && (soap->error = soap->fclose(soap)))
- return soap->error;
- soap->keep_alive = 0;
- }
-#ifdef WITH_ZLIB
- if (soap->zlib_state == SOAP_ZLIB_DEFLATE)
- deflateEnd(soap->d_stream);
- else if (soap->zlib_state == SOAP_ZLIB_INFLATE)
- inflateEnd(soap->d_stream);
- soap->zlib_state = SOAP_ZLIB_NONE;
-#endif
- return soap->error = status;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIO
-#ifndef PALM_2
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_cleanup(struct soap *soap)
-{ soap_done(soap);
-#ifdef WIN32
- if (!tcp_done)
- return;
- tcp_done = 0;
- WSACleanup();
-#endif
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_done(struct soap *soap)
-{
-#ifdef SOAP_DEBUG
- int i;
-#endif
- if (soap_check_state(soap))
- return;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Done with context\n"));
- soap_free_temp(soap);
- while (soap->clist)
- { struct soap_clist *p = soap->clist->next;
- SOAP_FREE(soap, soap->clist);
- soap->clist = p;
- }
- if (soap->state == SOAP_INIT)
- soap->omode &= ~SOAP_IO_UDP; /* to force close the socket */
- soap->keep_alive = 0; /* to force close the socket */
- soap_closesock(soap);
-#ifdef WITH_COOKIES
- soap_free_cookies(soap);
-#endif
- while (soap->plugins)
- { register struct soap_plugin *p = soap->plugins->next;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Removing plugin '%s'\n", soap->plugins->id));
- if (soap->plugins->fcopy || soap->state == SOAP_INIT)
- soap->plugins->fdelete(soap, soap->plugins);
- SOAP_FREE(soap, soap->plugins);
- soap->plugins = p;
- }
- soap->fplugin = fplugin;
- soap->fmalloc = NULL;
-#ifndef WITH_NOHTTP
- soap->fpost = http_post;
- soap->fget = http_get;
- soap->fput = http_405;
- soap->fdel = http_405;
- soap->fhead = http_405;
- soap->fform = NULL;
- soap->fposthdr = http_post_header;
- soap->fresponse = http_response;
- soap->fparse = http_parse;
- soap->fparsehdr = http_parse_header;
-#endif
- soap->fheader = NULL;
-#ifndef WITH_NOIO
-#ifndef WITH_IPV6
- soap->fresolve = tcp_gethost;
-#else
- soap->fresolve = NULL;
-#endif
- soap->faccept = tcp_accept;
- soap->fopen = tcp_connect;
- soap->fclose = tcp_disconnect;
- soap->fclosesocket = tcp_closesocket;
- soap->fshutdownsocket = tcp_shutdownsocket;
- soap->fsend = fsend;
- soap->frecv = frecv;
- soap->fpoll = soap_poll;
-#else
- soap->fopen = NULL;
- soap->fclose = NULL;
- soap->fpoll = NULL;
-#endif
-#ifndef WITH_LEANER
- soap->fprepareinitsend = NULL;
- soap->fprepareinitrecv = NULL;
- soap->fpreparesend = NULL;
- soap->fpreparerecv = NULL;
- soap->fpreparefinalsend = NULL;
- soap->fpreparefinalrecv = NULL;
-#endif
- soap->fseterror = NULL;
- soap->fignore = NULL;
- soap->fserveloop = NULL;
-#ifdef WITH_OPENSSL
- if (soap->session)
- { SSL_SESSION_free(soap->session);
- soap->session = NULL;
- }
-#endif
- if (soap->state == SOAP_INIT)
- { if (soap_valid_socket(soap->master))
- { soap->fclosesocket(soap, soap->master);
- soap->master = SOAP_INVALID_SOCKET;
- }
- }
-#ifdef WITH_OPENSSL
- if (soap->ssl)
- { SSL_free(soap->ssl);
- soap->ssl = NULL;
- }
- if (soap->state == SOAP_INIT)
- { if (soap->ctx)
- { SSL_CTX_free(soap->ctx);
- soap->ctx = NULL;
- }
- }
-#endif
-#ifdef WITH_OPENSSL
- ERR_remove_state(0);
-#endif
-#ifdef WITH_C_LOCALE
- freelocale(soap->c_locale);
-#endif
-#ifdef WITH_ZLIB
- if (soap->d_stream)
- { SOAP_FREE(soap, (void*)soap->d_stream);
- soap->d_stream = NULL;
- }
- if (soap->z_buf)
- { SOAP_FREE(soap, (void*)soap->z_buf);
- soap->z_buf = NULL;
- }
-#endif
-#ifdef SOAP_DEBUG
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Free logfiles\n"));
- for (i = 0; i < SOAP_MAXLOGS; i++)
- { if (soap->logfile[i])
- { SOAP_FREE(soap, (void*)soap->logfile[i]);
- soap->logfile[i] = NULL;
- }
- soap_close_logfile(soap, i);
- }
- soap->state = SOAP_NONE;
-#endif
-#ifdef SOAP_MEM_DEBUG
- soap_free_mht(soap);
-#endif
-}
-#endif
-
-/******************************************************************************\
- *
- * HTTP
- *
-\******************************************************************************/
-
-/******************************************************************************/
-#ifndef WITH_NOHTTP
-#ifndef PALM_1
-static int
-http_parse(struct soap *soap)
-{ char header[SOAP_HDRLEN], *s;
- unsigned short httpcmd = 0, status = 0;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Waiting for HTTP request/response...\n"));
- *soap->endpoint = '\0';
- soap->length = 0;
- soap->userid = NULL;
- soap->passwd = NULL;
- soap->action = NULL;
- soap->authrealm = NULL;
- soap->proxy_from = NULL;
- soap->http_content = NULL;
- soap->status = 0;
- do
- { if (soap_getline(soap, soap->msgbuf, sizeof(soap->msgbuf)))
- { if (soap->error == SOAP_EOF)
- return SOAP_EOF;
- return soap->error = 414;
- }
- if ((s = strchr(soap->msgbuf, ' ')))
- { soap->status = (unsigned short)soap_strtoul(s, &s, 10);
- if (!soap_blank(*s))
- soap->status = 0;
- }
- else
- soap->status = 0;
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "HTTP status: %s\n", soap->msgbuf));
- for (;;)
- { if (soap_getline(soap, header, SOAP_HDRLEN))
- { if (soap->error == SOAP_EOF)
- { soap->error = SOAP_OK;
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "EOF in HTTP header, continue anyway\n"));
- break;
- }
- return soap->error;
- }
- if (!*header)
- break;
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "HTTP header: %s\n", header));
- s = strchr(header, ':');
- if (s)
- { char *t;
- *s = '\0';
- do s++;
- while (*s && *s <= 32);
- if (*s == '"')
- s++;
- t = s + strlen(s) - 1;
- while (t > s && *t <= 32)
- t--;
- if (t >= s && *t == '"')
- t--;
- t[1] = '\0';
- if ((soap->error = soap->fparsehdr(soap, header, s)))
- { if (soap->error < SOAP_STOP)
- return soap->error;
- status = soap->error;
- soap->error = SOAP_OK;
- }
- }
- }
- } while (soap->status == 100);
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Finished HTTP header parsing, status = %d\n", soap->status));
- s = strstr(soap->msgbuf, "HTTP/");
- if (s && s[7] != '1')
- { if (soap->keep_alive == 1)
- soap->keep_alive = 0;
- if (soap->status == 0 && (soap->omode & SOAP_IO) == SOAP_IO_CHUNK) /* soap->status == 0 for HTTP request */
- { soap->imode |= SOAP_IO_CHUNK;
- soap->omode = (soap->omode & ~SOAP_IO) | SOAP_IO_STORE;
- }
- }
- if (soap->keep_alive < 0)
- soap->keep_alive = 1;
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Keep alive connection = %d\n", soap->keep_alive));
- if (soap->status == 0)
- { size_t l = 0;
- if (s)
- { if (!strncmp(soap->msgbuf, "POST ", l = 5))
- httpcmd = 1;
- else if (!strncmp(soap->msgbuf, "GET ", l = 4))
- httpcmd = 2;
- else if (!strncmp(soap->msgbuf, "PUT ", l = 4))
- httpcmd = 3;
- else if (!strncmp(soap->msgbuf, "DELETE ", l = 7))
- httpcmd = 4;
- else if (!strncmp(soap->msgbuf, "HEAD ", l = 5))
- httpcmd = 5;
- }
- if (s && httpcmd)
- { size_t m = strlen(soap->endpoint);
- size_t n = m + (s - soap->msgbuf) - l - 1;
- if (m > n)
- m = n;
- if (n >= sizeof(soap->endpoint))
- n = sizeof(soap->endpoint) - 1;
- strncpy(soap->path, soap->msgbuf + l, n - m);
- soap->path[n - m] = '\0';
- strcat(soap->endpoint, soap->path);
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Target endpoint='%s'\n", soap->endpoint));
- if (httpcmd > 1)
- { switch (httpcmd)
- { case 2: soap->error = soap->fget(soap); break;
- case 3: soap->error = soap->fput(soap); break;
- case 4: soap->error = soap->fdel(soap); break;
- case 5: soap->error = soap->fhead(soap); break;
- default: soap->error = 405; break;
- }
- if (soap->error == SOAP_OK)
- soap->error = SOAP_STOP; /* prevents further processing */
- return soap->error;
- }
- if (status)
- return soap->error = status;
- }
- else if (status)
- return soap->error = status;
- else if (s)
- return soap->error = 405;
- }
- /* Status OK (HTTP 200) */
- if (soap->status == 0 || soap->status == 200)
- return SOAP_OK;
- /* Status 201 (Created), 202 (Accepted), ... and HTTP 400 and 500 errors
- may not have a body. When content length, content type, or chunking is
- used assume there is a message to parse, either XML or HTTP.
- This version allows parsing of content when length=0:
- if (soap->length > 0 || soap->http_content || (soap->imode & SOAP_IO) == SOAP_IO_CHUNK)
- */
- if (soap->length > 0 || (soap->imode & SOAP_IO) == SOAP_IO_CHUNK)
- { if (((soap->status > 200 && soap->status <= 299) || soap->status == 400 || soap->status == 500))
- return SOAP_OK;
- /* force close afterwards in soap_closesock() */
- soap->keep_alive = 0;
- /* read HTTP body for error details */
- s = soap_get_http_body(soap);
- if (s)
- return soap_set_receiver_error(soap, soap->msgbuf, s, soap->status);
- }
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "HTTP error %d\n", soap->status));
- return soap_set_receiver_error(soap, "HTTP Error", soap->msgbuf, soap->status);
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOHTTP
-#ifndef PALM_1
-static int
-http_parse_header(struct soap *soap, const char *key, const char *val)
-{ if (!soap_tag_cmp(key, "Host"))
- {
-#ifdef WITH_OPENSSL
- if (soap->imode & SOAP_ENC_SSL)
- strcpy(soap->endpoint, "https://");
- else
-#endif
- strcpy(soap->endpoint, "http://");
- strncat(soap->endpoint, val, sizeof(soap->endpoint) - 8);
- soap->endpoint[sizeof(soap->endpoint) - 1] = '\0';
- }
-#ifndef WITH_LEANER
- else if (!soap_tag_cmp(key, "Content-Type"))
- { const char *action;
- soap->http_content = soap_strdup(soap, val);
- if (soap_get_header_attribute(soap, val, "application/dime"))
- soap->imode |= SOAP_ENC_DIME;
- else if (soap_get_header_attribute(soap, val, "multipart/related")
- || soap_get_header_attribute(soap, val, "multipart/form-data"))
- { soap->mime.boundary = soap_strdup(soap, soap_get_header_attribute(soap, val, "boundary"));
- soap->mime.start = soap_strdup(soap, soap_get_header_attribute(soap, val, "start"));
- soap->imode |= SOAP_ENC_MIME;
- }
- action = soap_get_header_attribute(soap, val, "action");
- if (action)
- { if (*action == '"')
- { soap->action = soap_strdup(soap, action + 1);
- soap->action[strlen(soap->action) - 1] = '\0';
- }
- else
- soap->action = soap_strdup(soap, action);
- }
- }
-#endif
- else if (!soap_tag_cmp(key, "Content-Length"))
- { soap->length = soap_strtoul(val, NULL, 10);
- }
- else if (!soap_tag_cmp(key, "Content-Encoding"))
- { if (!soap_tag_cmp(val, "deflate"))
-#ifdef WITH_ZLIB
- soap->zlib_in = SOAP_ZLIB_DEFLATE;
-#else
- return SOAP_ZLIB_ERROR;
-#endif
- else if (!soap_tag_cmp(val, "gzip"))
-#ifdef WITH_GZIP
- soap->zlib_in = SOAP_ZLIB_GZIP;
-#else
- return SOAP_ZLIB_ERROR;
-#endif
- }
-#ifdef WITH_ZLIB
- else if (!soap_tag_cmp(key, "Accept-Encoding"))
- {
-#ifdef WITH_GZIP
- if (strchr(val, '*') || soap_get_header_attribute(soap, val, "gzip"))
- soap->zlib_out = SOAP_ZLIB_GZIP;
- else
-#endif
- if (strchr(val, '*') || soap_get_header_attribute(soap, val, "deflate"))
- soap->zlib_out = SOAP_ZLIB_DEFLATE;
- else
- soap->zlib_out = SOAP_ZLIB_NONE;
- }
-#endif
- else if (!soap_tag_cmp(key, "Transfer-Encoding"))
- { soap->imode &= ~SOAP_IO;
- if (!soap_tag_cmp(val, "chunked"))
- soap->imode |= SOAP_IO_CHUNK;
- }
- else if (!soap_tag_cmp(key, "Connection"))
- { if (!soap_tag_cmp(val, "keep-alive"))
- soap->keep_alive = -soap->keep_alive;
- else if (!soap_tag_cmp(val, "close"))
- soap->keep_alive = 0;
- }
-#ifndef WITH_LEAN
- else if (!soap_tag_cmp(key, "Authorization"))
- { if (!soap_tag_cmp(val, "Basic *"))
- { int n;
- char *s;
- soap_base642s(soap, val + 6, soap->tmpbuf, sizeof(soap->tmpbuf) - 1, &n);
- soap->tmpbuf[n] = '\0';
- if ((s = strchr(soap->tmpbuf, ':')))
- { *s = '\0';
- soap->userid = soap_strdup(soap, soap->tmpbuf);
- soap->passwd = soap_strdup(soap, s + 1);
- }
- }
- }
- else if (!soap_tag_cmp(key, "WWW-Authenticate"))
- { soap->authrealm = soap_strdup(soap, soap_get_header_attribute(soap, val + 6, "realm"));
- }
- else if (!soap_tag_cmp(key, "Expect"))
- { if (!soap_tag_cmp(val, "100-continue"))
- { if ((soap->error = soap->fposthdr(soap, "HTTP/1.1 100 Continue", NULL))
- || (soap->error = soap->fposthdr(soap, NULL, NULL)))
- return soap->error;
- }
- }
-#endif
- else if (!soap_tag_cmp(key, "SOAPAction"))
- { if (*val == '"')
- { soap->action = soap_strdup(soap, val + 1);
- soap->action[strlen(soap->action) - 1] = '\0';
- }
- else
- soap->action = soap_strdup(soap, val);
- }
- else if (!soap_tag_cmp(key, "Location"))
- { strncpy(soap->endpoint, val, sizeof(soap->endpoint));
- soap->endpoint[sizeof(soap->endpoint) - 1] = '\0';
- }
- else if (!soap_tag_cmp(key, "X-Forwarded-For"))
- { soap->proxy_from = soap_strdup(soap, val);
- }
-#ifdef WITH_COOKIES
- else if (!soap_tag_cmp(key, "Cookie")
- || !soap_tag_cmp(key, "Cookie2")
- || !soap_tag_cmp(key, "Set-Cookie")
- || !soap_tag_cmp(key, "Set-Cookie2"))
- { soap_getcookies(soap, val);
- }
-#endif
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#if !defined(WITH_NOHTTP) || !defined(WITH_LEANER)
-#ifndef PALM_1
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_get_header_attribute(struct soap *soap, const char *line, const char *key)
-{ register const char *s = line;
- if (s)
- { while (*s)
- { register short flag;
- s = soap_decode_key(soap->tmpbuf, sizeof(soap->tmpbuf), s);
- flag = soap_tag_cmp(soap->tmpbuf, key);
- s = soap_decode_val(soap->tmpbuf, sizeof(soap->tmpbuf), s);
- if (!flag)
- return soap->tmpbuf;
- }
- }
- return NULL;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#if !defined(WITH_NOHTTP) || !defined(WITH_LEANER)
-#ifndef PALM_1
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_decode_key(char *buf, size_t len, const char *val)
-{ return soap_decode(buf, len, val, "=,;");
-}
-#endif
-#endif
-
-/******************************************************************************/
-#if !defined(WITH_NOHTTP) || !defined(WITH_LEANER)
-#ifndef PALM_1
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_decode_val(char *buf, size_t len, const char *val)
-{ if (*val != '=')
- { *buf = '\0';
- return val;
- }
- return soap_decode(buf, len, val + 1, ",;");
-}
-#endif
-#endif
-
-/******************************************************************************/
-#if !defined(WITH_NOHTTP) || !defined(WITH_LEANER)
-#ifndef PALM_1
-static const char*
-soap_decode(char *buf, size_t len, const char *val, const char *sep)
-{ const char *s;
- char *t = buf;
- for (s = val; *s; s++)
- if (*s != ' ' && *s != '\t' && !strchr(sep, *s))
- break;
- if (*s == '"')
- { s++;
- while (*s && *s != '"' && --len)
- *t++ = *s++;
- }
- else
- { while (*s && !soap_blank(*s) && !strchr(sep, *s) && --len)
- { if (*s == '%')
- { *t++ = ((s[1] >= 'A' ? (s[1] & 0x7) + 9 : s[1] - '0') << 4)
- + (s[2] >= 'A' ? (s[2] & 0x7) + 9 : s[2] - '0');
- s += 3;
- }
- else
- *t++ = *s++;
- }
- }
- *t = '\0';
- while (*s && !strchr(sep, *s))
- s++;
- return s;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOHTTP
-#ifndef PALM_1
-static const char*
-http_error(struct soap *soap, int status)
-{ register const char *msg = SOAP_STR_EOS;
-#ifndef WITH_LEAN
- msg = soap_code_str(h_http_error_codes, status);
- if (!msg)
- msg = SOAP_STR_EOS;
-#endif
- return msg;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOHTTP
-#ifndef PALM_1
-static int
-http_get(struct soap *soap)
-{ return SOAP_GET_METHOD;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOHTTP
-#ifndef PALM_1
-static int
-http_405(struct soap *soap)
-{ return 405;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOHTTP
-#ifndef PALM_1
-static int
-http_post(struct soap *soap, const char *endpoint, const char *host, int port, const char *path, const char *action, size_t count)
-{ register const char *s;
- register int err;
- if (soap->status == SOAP_GET)
- s = "GET";
- else
- s = "POST";
-#ifdef PALM
- if (!endpoint || (soap_tag_cmp(endpoint, "http:*") && soap_tag_cmp(endpoint, "https:*") && strncmp(endpoint, "httpg:", 6)) && strncmp(endpoint, "_beam:", 6) && strncmp(endpoint, "_local:", 7) && strncmp(endpoint, "_btobex:", 8))
-#else
- if (!endpoint || (soap_tag_cmp(endpoint, "http:*") && soap_tag_cmp(endpoint, "https:*") && strncmp(endpoint, "httpg:", 6)))
-#endif
- return SOAP_OK;
- if (strlen(endpoint) + strlen(soap->http_version) > sizeof(soap->tmpbuf) - 80)
- return soap->error = SOAP_EOM;
- if (soap->proxy_host && soap_tag_cmp(endpoint, "https:*"))
- sprintf(soap->tmpbuf, "%s %s HTTP/%s", s, endpoint, soap->http_version);
- else
- sprintf(soap->tmpbuf, "%s /%s HTTP/%s", s, (*path == '/' ? path + 1 : path), soap->http_version);
- if ((err = soap->fposthdr(soap, soap->tmpbuf, NULL)))
- return err;
-#ifdef WITH_OPENSSL
- if ((soap->ssl && soap->port != 443) || (!soap->ssl && soap->port != 80))
- sprintf(soap->tmpbuf, "%s:%d", host, port);
- else
- strcpy(soap->tmpbuf, host);
-#else
- if (port != 80)
- sprintf(soap->tmpbuf, "%s:%d", host, port);
- else
- { /* Oracle customization */
- strncpy(soap->tmpbuf, host, sizeof(soap->tmpbuf) - 1);
- soap->tmpbuf[sizeof(soap->tmpbuf) - 1] = '\0';
- }
-#endif
-// Oracle customization
- if ((err = soap->fposthdr(soap, "Host", soap->tmpbuf))
- || (err = soap->fposthdr(soap, "User-Agent", "SunKMS gSOAP/2.7.17"))
- || (err = soap_puthttphdr(soap, SOAP_OK, count)))
- return err;
-#ifdef WITH_ZLIB
-#ifdef WITH_GZIP
- if ((err = soap->fposthdr(soap, "Accept-Encoding", "gzip, deflate")))
-#else
- if ((err = soap->fposthdr(soap, "Accept-Encoding", "deflate")))
-#endif
- return err;
-#endif
-#ifndef WITH_LEAN
- if (soap->userid && soap->passwd && strlen(soap->userid) + strlen(soap->passwd) < 761)
- { sprintf(soap->tmpbuf + 262, "%s:%s", soap->userid, soap->passwd);
- strcpy(soap->tmpbuf, "Basic ");
- soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
- if ((err = soap->fposthdr(soap, "Authorization", soap->tmpbuf)))
- return err;
- }
- if (soap->proxy_userid && soap->proxy_passwd && strlen(soap->proxy_userid) + strlen(soap->proxy_passwd) < 761)
- { sprintf(soap->tmpbuf + 262, "%s:%s", soap->proxy_userid, soap->proxy_passwd);
- strcpy(soap->tmpbuf, "Basic ");
- soap_s2base64(soap, (const unsigned char*)(soap->tmpbuf + 262), soap->tmpbuf + 6, (int)strlen(soap->tmpbuf + 262));
- if ((err = soap->fposthdr(soap, "Proxy-Authorization", soap->tmpbuf)))
- return err;
- }
-#endif
-#ifdef WITH_COOKIES
-#ifdef WITH_OPENSSL
- if (soap_putcookies(soap, host, path, soap->ssl != NULL))
- return soap->error;
-#else
- if (soap_putcookies(soap, host, path, 0))
- return soap->error;
-#endif
-#endif
- if (soap->status != SOAP_GET && (soap->version == 1 || (action && *action)))
- { sprintf(soap->tmpbuf, "\"%s\"", action && strlen(action) < sizeof(soap->tmpbuf) - 3 ? action : SOAP_STR_EOS);
- if ((err = soap->fposthdr(soap, "SOAPAction", soap->tmpbuf)))
- return err;
- }
- return soap->fposthdr(soap, NULL, NULL);
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOHTTP
-#ifndef PALM_1
-static int
-http_send_header(struct soap *soap, const char *s)
-{ register const char *t;
- do
- { t = strchr(s, '\n'); /* disallow \n in HTTP headers */
- if (!t)
- t = s + strlen(s);
- if (soap_send_raw(soap, s, t - s))
- return soap->error;
- s = t + 1;
- } while (*t);
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOHTTP
-#ifndef PALM_1
-static int
-http_post_header(struct soap *soap, const char *key, const char *val)
-{ if (key)
- { if (http_send_header(soap, key))
- return soap->error;
- if (val && (soap_send_raw(soap, ": ", 2) || http_send_header(soap, val)))
- return soap->error;
- }
- return soap_send_raw(soap, "\r\n", 2);
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOHTTP
-#ifndef PALM_1
-static int
-http_response(struct soap *soap, int status, size_t count)
-{ register int err;
-#ifdef WMW_RPM_IO
- if (soap->rpmreqid)
- httpOutputEnable(soap->rpmreqid);
-#endif
- if (strlen(soap->http_version) > 4)
- return soap->error = SOAP_EOM;
- if (!status || status == SOAP_HTML || status == SOAP_FILE)
- { const char *s;
- if (count || ((soap->omode & SOAP_IO) == SOAP_IO_CHUNK))
- s = "200 OK";
- else
- s = "202 ACCEPTED";
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Status = %s\n", s));
-#ifdef WMW_RPM_IO
- if (soap->rpmreqid || soap_valid_socket(soap->master) || soap_valid_socket(soap->socket)) /* RPM behaves as if standalone */
-#else
- if (soap_valid_socket(soap->master) || soap_valid_socket(soap->socket)) /* standalone application (socket) or CGI (stdin/out)? */
-#endif
- { sprintf(soap->tmpbuf, "HTTP/%s %s", soap->http_version, s);
- if ((err = soap->fposthdr(soap, soap->tmpbuf, NULL)))
- return err;
- }
- else if ((err = soap->fposthdr(soap, "Status", s))) /* CGI header */
- return err;
- }
- else if (status >= 200 && status < 600)
- { sprintf(soap->tmpbuf, "HTTP/%s %d %s", soap->http_version, status, http_error(soap, status));
- if ((err = soap->fposthdr(soap, soap->tmpbuf, NULL)))
- return err;
-#ifndef WITH_LEAN
- if (status == 401)
- { sprintf(soap->tmpbuf, "Basic realm=\"%s\"", (soap->authrealm && strlen(soap->authrealm) < sizeof(soap->tmpbuf) - 14) ? soap->authrealm : "gSOAP Web Service");
- if ((err = soap->fposthdr(soap, "WWW-Authenticate", soap->tmpbuf)))
- return err;
- }
- else if ((status >= 301 && status <= 303) || status == 307)
- { if ((err = soap->fposthdr(soap, "Location", soap->endpoint)))
- return err;
- }
-#endif
- }
- else
- { const char *s = *soap_faultcode(soap);
- if (status >= SOAP_GET_METHOD && status <= SOAP_HTTP_METHOD)
- s = "405 Method Not Allowed";
- else if (soap->version == 2 && (!s || !strcmp(s, "SOAP-ENV:Sender")))
- s = "400 Bad Request";
- else
- s = "500 Internal Server Error";
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Error %s (status=%d)\n", s, status));
-#ifdef WMW_RPM_IO
- if (soap->rpmreqid || soap_valid_socket(soap->master) || soap_valid_socket(soap->socket)) /* RPM behaves as if standalone */
-#else
- if (soap_valid_socket(soap->master) || soap_valid_socket(soap->socket)) /* standalone application */
-#endif
- { sprintf(soap->tmpbuf, "HTTP/%s %s", soap->http_version, s);
- if ((err = soap->fposthdr(soap, soap->tmpbuf, NULL)))
- return err;
- }
- else if ((err = soap->fposthdr(soap, "Status", s))) /* CGI */
- return err;
- }
- if ((err = soap->fposthdr(soap, "Server", "gSOAP/2.7"))
- || (err = soap_puthttphdr(soap, status, count)))
- return err;
-#ifdef WITH_COOKIES
- if (soap_putsetcookies(soap))
- return soap->error;
-#endif
- return soap->fposthdr(soap, NULL, NULL);
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_response(struct soap *soap, int status)
-{ register size_t count;
- if (!(soap->omode & (SOAP_ENC_XML | SOAP_IO_STORE /* this tests for chunking too */))
- && (status == SOAP_HTML || status == SOAP_FILE))
- soap->omode = (soap->omode & ~SOAP_IO) | SOAP_IO_STORE;
- soap->status = status;
- count = soap_count_attachments(soap);
- if (soap_begin_send(soap))
- return soap->error;
-#ifndef WITH_NOHTTP
- if ((soap->mode & SOAP_IO) != SOAP_IO_STORE && !(soap->mode & SOAP_ENC_XML))
- { register int n = soap->mode;
- soap->mode &= ~(SOAP_IO | SOAP_ENC_ZLIB);
- if ((n & SOAP_IO) != SOAP_IO_FLUSH)
- soap->mode |= SOAP_IO_BUFFER;
- if ((soap->error = soap->fresponse(soap, status, count)))
- return soap->error;
-#ifndef WITH_LEANER
- if ((n & SOAP_IO) == SOAP_IO_CHUNK)
- { if (soap_flush(soap))
- return soap->error;
- }
-#endif
- soap->mode = n;
- }
-#endif
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************\
- *
- * HTTP Cookies
- *
-\******************************************************************************/
-
-#ifdef WITH_COOKIES
-/******************************************************************************/
-SOAP_FMAC1
-size_t
-SOAP_FMAC2
-soap_encode_cookie(const char *s, char *t, size_t len)
-{ register int c;
- register size_t n = len;
- while ((c = *s++) && --n > 0)
- { if (c > ' ' && c < 128 && !strchr("()<>@,;:\\\"/[]?={}#!$&'*+", c))
- *t++ = c;
- else if (n > 2)
- { *t++ = '%';
- *t++ = (c >> 4) + (c > 159 ? '7' : '0');
- c &= 0xF;
- *t++ = c + (c > 9 ? '7' : '0');
- n -= 2;
- }
- else
- break;
- }
- *t = '\0';
- return len - n;
-}
-
-/******************************************************************************/
-SOAP_FMAC1
-struct soap_cookie*
-SOAP_FMAC2
-soap_cookie(struct soap *soap, const char *name, const char *domain, const char *path)
-{ struct soap_cookie *p;
- if (!domain)
- domain = soap->cookie_domain;
- if (!path)
- path = soap->cookie_path;
- if (!path)
- path = SOAP_STR_EOS;
- else if (*path == '/')
- path++;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Search cookie %s domain=%s path=%s\n", name, domain?domain:"(null)", path?path:"(null)"));
- for (p = soap->cookies; p; p = p->next)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Cookie in database: %s=%s domain=%s path=%s env=%hd\n", p->name, p->value?p->value:"(null)", p->domain?p->domain:"(null)", p->path?p->path:"(null)", p->env));
- if (!strcmp(p->name, name)
- && p->domain
- && p->path
- && !strcmp(p->domain, domain)
- && (!*p->path || !strncmp(p->path, path, strlen(p->path))))
- break;
- }
- return p;
-}
-
-/******************************************************************************/
-SOAP_FMAC1
-struct soap_cookie*
-SOAP_FMAC2
-soap_set_cookie(struct soap *soap, const char *name, const char *value, const char *domain, const char *path)
-{ struct soap_cookie **p, *q;
- int n;
- if (!domain)
- domain = soap->cookie_domain;
- if (!path)
- path = soap->cookie_path;
- if (!path)
- path = SOAP_STR_EOS;
- else if (*path == '/')
- path++;
- q = soap_cookie(soap, name, domain, path);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Set %scookie: %s=%s domain=%s path=%s\n", q ? SOAP_STR_EOS : "new ", name, value?value:"(null)", domain?domain:"(null)", path?path:"(null)"));
- if (!q)
- { if ((q = (struct soap_cookie*)SOAP_MALLOC(soap, sizeof(struct soap_cookie))))
- { if ((q->name = (char*)SOAP_MALLOC(soap, strlen(name)+1)))
- strcpy(q->name, name);
- q->value = NULL;
- q->domain = NULL;
- q->path = NULL;
- q->expire = 0;
- q->maxage = -1;
- q->version = 1;
- q->secure = 0;
- q->modified = 0;
- for (p = &soap->cookies, n = soap->cookie_max; *p && n; p = &(*p)->next, n--)
- if (!strcmp((*p)->name, name) && (*p)->path && path && strcmp((*p)->path, path) < 0)
- break;
- if (n)
- { q->next = *p;
- *p = q;
- }
- else
- { SOAP_FREE(soap, q->name);
- SOAP_FREE(soap, q);
- q = NULL;
- }
- }
- }
- else
- q->modified = 1;
- if (q)
- { if (q->value)
- { if (!value || strcmp(value, q->value))
- { SOAP_FREE(soap, q->value);
- q->value = NULL;
- }
- }
- if (value && *value && !q->value && (q->value = (char*)SOAP_MALLOC(soap, strlen(value)+1)))
- strcpy(q->value, value);
- if (q->domain)
- { if (!domain || strcmp(domain, q->domain))
- { SOAP_FREE(soap, q->domain);
- q->domain = NULL;
- }
- }
- if (domain && !q->domain && (q->domain = (char*)SOAP_MALLOC(soap, strlen(domain)+1)))
- strcpy(q->domain, domain);
- if (q->path)
- { if (!path || strncmp(path, q->path, strlen(q->path)))
- { SOAP_FREE(soap, q->path);
- q->path = NULL;
- }
- }
- if (path && !q->path && (q->path = (char*)SOAP_MALLOC(soap, strlen(path)+1)))
- strcpy(q->path, path);
- q->session = 1;
- q->env = 0;
- }
- return q;
-}
-
-/******************************************************************************/
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_clr_cookie(struct soap *soap, const char *name, const char *domain, const char *path)
-{ struct soap_cookie **p, *q;
- if (!domain)
- domain = soap->cookie_domain;
- if (!domain)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Error in clear cookie %s: cookie domain not set\n", name?name:"(null)"));
- return;
- }
- if (!path)
- path = soap->cookie_path;
- if (!path)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Error in clear cookie %s: cookie path not set\n", name?name:"(null)"));
- return;
- }
- if (*path == '/')
- path++;
- for (p = &soap->cookies, q = *p; q; q = *p)
- { if (!strcmp(q->name, name) && !strcmp(q->domain, domain) && !strncmp(q->path, path, strlen(q->path)))
- { if (q->value)
- SOAP_FREE(soap, q->value);
- if (q->domain)
- SOAP_FREE(soap, q->domain);
- if (q->path)
- SOAP_FREE(soap, q->path);
- *p = q->next;
- SOAP_FREE(soap, q);
- }
- else
- p = &q->next;
- }
-}
-
-/******************************************************************************/
-SOAP_FMAC1
-char *
-SOAP_FMAC2
-soap_cookie_value(struct soap *soap, const char *name, const char *domain, const char *path)
-{ struct soap_cookie *p;
- if ((p = soap_cookie(soap, name, domain, path)))
- return p->value;
- return NULL;
-}
-
-/******************************************************************************/
-SOAP_FMAC1
-char *
-SOAP_FMAC2
-soap_env_cookie_value(struct soap *soap, const char *name, const char *domain, const char *path)
-{ struct soap_cookie *p;
- if ((p = soap_cookie(soap, name, domain, path)) && p->env)
- return p->value;
- return NULL;
-}
-
-/******************************************************************************/
-SOAP_FMAC1
-time_t
-SOAP_FMAC2
-soap_cookie_expire(struct soap *soap, const char *name, const char *domain, const char *path)
-{ struct soap_cookie *p;
- if ((p = soap_cookie(soap, name, domain, path)))
- return p->expire;
- return -1;
-}
-
-/******************************************************************************/
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_set_cookie_expire(struct soap *soap, const char *name, long expire, const char *domain, const char *path)
-{ struct soap_cookie *p;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Set cookie expiration max-age %ld: %s domain=%s path=%s\n", expire, name, domain?domain:"(null)", path?path:"(null)"));
- if ((p = soap_cookie(soap, name, domain, path)))
- { p->maxage = expire;
- p->modified = 1;
- return SOAP_OK;
- }
- return SOAP_ERR;
-}
-
-/******************************************************************************/
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_set_cookie_session(struct soap *soap, const char *name, const char *domain, const char *path)
-{ struct soap_cookie *p;
- if ((p = soap_cookie(soap, name, domain, path)))
- { p->session = 1;
- p->modified = 1;
- return SOAP_OK;
- }
- return SOAP_ERR;
-}
-
-/******************************************************************************/
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_clr_cookie_session(struct soap *soap, const char *name, const char *domain, const char *path)
-{ struct soap_cookie *p;
- if ((p = soap_cookie(soap, name, domain, path)))
- { p->session = 0;
- p->modified = 1;
- return SOAP_OK;
- }
- return SOAP_ERR;
-}
-
-/******************************************************************************/
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_putsetcookies(struct soap *soap)
-{ struct soap_cookie *p;
- char *s, tmp[4096];
- const char *t;
- for (p = soap->cookies; p; p = p->next)
- {
- if (p->modified
-#ifdef WITH_OPENSSL
- || (!p->env && !soap->ssl == !p->secure)
-#endif
- )
- { s = tmp;
- if (p->name)
- s += soap_encode_cookie(p->name, s, tmp-s+4064);
- if (p->value && *p->value)
- { *s++ = '=';
- s += soap_encode_cookie(p->value, s, tmp-s+4064);
- }
- if (p->domain && (int)strlen(p->domain) < tmp-s+4064)
- { strcpy(s, ";Domain=");
- strcat(s, p->domain);
- }
- else if (soap->cookie_domain && (int)strlen(soap->cookie_domain) < tmp-s+4064)
- { strcpy(s, ";Domain=");
- strcat(s, soap->cookie_domain);
- }
- strcat(s, ";Path=/");
- s += strlen(s);
- if (p->path)
- t = p->path;
- else
- t = soap->cookie_path;
- if (t)
- { if (*t == '/')
- t++;
- if ((int)strlen(t) < tmp-s+4064)
- { if (strchr(t, '%')) /* already URL encoded? */
- { strcpy(s, t);
- s += strlen(s);
- }
- else
- s += soap_encode_cookie(t, s, tmp-s+4064);
- }
- }
- if (p->version > 0 && s-tmp < 4060)
- { sprintf(s, ";Version=%u", p->version);
- s += strlen(s);
- }
- if (p->maxage >= 0 && s-tmp < 4060)
- { sprintf(s, ";Max-Age=%ld", p->maxage);
- s += strlen(s);
- }
- if (s-tmp < 4073
- && (p->secure
-#ifdef WITH_OPENSSL
- || soap->ssl
-#endif
- ))
- strcpy(s, ";Secure");
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Set-Cookie: %s\n", tmp));
- if ((soap->error = soap->fposthdr(soap, "Set-Cookie", tmp)))
- return soap->error;
- }
- }
- return SOAP_OK;
-}
-
-/******************************************************************************/
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_putcookies(struct soap *soap, const char *domain, const char *path, int secure)
-{ struct soap_cookie **p, *q;
- unsigned int version = 0;
- time_t now = time(NULL);
- char *s, tmp[4096];
- p = &soap->cookies;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Sending cookies for domain=%s path=%s\n", domain, path));
- if (*path == '/')
- path++;
- while ((q = *p))
- { if (q->expire && now > q->expire)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Cookie %s expired\n", q->name));
- SOAP_FREE(soap, q->name);
- if (q->value)
- SOAP_FREE(soap, q->value);
- if (q->domain)
- SOAP_FREE(soap, q->domain);
- if (q->path)
- SOAP_FREE(soap, q->path);
- *p = q->next;
- SOAP_FREE(soap, q);
- }
- else
- { int flag;
- char *t = q->domain;
- size_t n = 0;
- if (!t)
- flag = 1;
- else
- { const char *r = strchr(t, ':');
- if (r)
- n = r - t;
- else
- n = strlen(t);
- flag = !strncmp(t, domain, n);
- }
- /* domain-level cookies, cannot compile when WITH_NOIO set */
-#ifndef WITH_NOIO
- if (!flag)
- { struct hostent *hostent = gethostbyname((char*)domain);
- if (hostent)
- { const char *r = strchr(hostent->h_name, '.');
- if (!r)
- r = hostent->h_name;
- flag = !strncmp(t, r, n);
- }
- }
-#endif
- if (flag
- && (!q->path || !strncmp(q->path, path, strlen(q->path)))
- && (!q->secure || secure))
- { s = tmp;
- if (q->version != version)
- { sprintf(s, "$Version=%u;", q->version);
- version = q->version;
- }
- if (q->name)
- s += soap_encode_cookie(q->name, s, tmp-s+4080);
- if (q->value && *q->value)
- { *s++ = '=';
- s += soap_encode_cookie(q->value, s, tmp-s+4080);
- }
- if (q->path && *q->path && (int)strlen(q->path) < tmp-s+4080)
- { sprintf(s, ";$Path=\"/%s\"", (*q->path == '/' ? q->path + 1 : q->path));
- s += strlen(s);
- }
- if (q->domain && (int)strlen(q->domain) < tmp-s+4080)
- sprintf(s, ";$Domain=\"%s\"", q->domain);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Cookie: %s\n", tmp));
- if ((soap->error = soap->fposthdr(soap, "Cookie", tmp)))
- return soap->error;
- }
- p = &q->next;
- }
- }
- return SOAP_OK;
-}
-
-/******************************************************************************/
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_getcookies(struct soap *soap, const char *val)
-{ struct soap_cookie *p = NULL, *q;
- const char *s;
- char *t, tmp[4096]; /* cookie size is up to 4096 bytes [RFC2109] */
- char *domain = NULL;
- char *path = NULL;
- unsigned int version = 0;
- time_t now = time(NULL);
- if (!val)
- return;
- s = val;
- while (*s)
- { s = soap_decode_key(tmp, sizeof(tmp), s);
- if (!soap_tag_cmp(tmp, "$Version"))
- { if ((s = soap_decode_val(tmp, sizeof(tmp), s)))
- { if (p)
- p->version = (int)soap_strtol(tmp, NULL, 10);
- else
- version = (int)soap_strtol(tmp, NULL, 10);
- }
- }
- else if (!soap_tag_cmp(tmp, "$Path"))
- { s = soap_decode_val(tmp, sizeof(tmp), s);
- if (*tmp)
- { if ((t = (char*)SOAP_MALLOC(soap, strlen(tmp)+1)))
- strcpy(t, tmp);
- }
- else
- t = NULL;
- if (p)
- { if (p->path)
- SOAP_FREE(soap, p->path);
- p->path = t;
- }
- else
- { if (path)
- SOAP_FREE(soap, path);
- path = t;
- }
- }
- else if (!soap_tag_cmp(tmp, "$Domain"))
- { s = soap_decode_val(tmp, sizeof(tmp), s);
- if (*tmp)
- { if ((t = (char*)SOAP_MALLOC(soap, strlen(tmp)+1)))
- strcpy(t, tmp);
- }
- else
- t = NULL;
- if (p)
- { if (p->domain)
- SOAP_FREE(soap, p->domain);
- p->domain = t;
- }
- else
- { if (domain)
- SOAP_FREE(soap, domain);
- domain = t;
- }
- }
- else if (p && !soap_tag_cmp(tmp, "Path"))
- { if (p->path)
- SOAP_FREE(soap, p->path);
- s = soap_decode_val(tmp, sizeof(tmp), s);
- if (*tmp)
- { if ((p->path = (char*)SOAP_MALLOC(soap, strlen(tmp)+1)))
- strcpy(p->path, tmp);
- }
- else
- p->path = NULL;
- }
- else if (p && !soap_tag_cmp(tmp, "Domain"))
- { if (p->domain)
- SOAP_FREE(soap, p->domain);
- s = soap_decode_val(tmp, sizeof(tmp), s);
- if (*tmp)
- { if ((p->domain = (char*)SOAP_MALLOC(soap, strlen(tmp)+1)))
- strcpy(p->domain, tmp);
- }
- else
- p->domain = NULL;
- }
- else if (p && !soap_tag_cmp(tmp, "Version"))
- { s = soap_decode_val(tmp, sizeof(tmp), s);
- p->version = (unsigned int)soap_strtoul(tmp, NULL, 10);
- }
- else if (p && !soap_tag_cmp(tmp, "Max-Age"))
- { s = soap_decode_val(tmp, sizeof(tmp), s);
- p->expire = now + soap_strtol(tmp, NULL, 10);
- }
- else if (p && !soap_tag_cmp(tmp, "Expires"))
- { struct tm T;
- char a[3];
- static const char mns[] = "anebarprayunulugepctovec";
- s = soap_decode_val(tmp, sizeof(tmp), s);
- if (strlen(tmp) > 20)
- { memset((void*)&T, 0, sizeof(T));
- a[0] = tmp[4];
- a[1] = tmp[5];
- a[2] = '\0';
- T.tm_mday = (int)soap_strtol(a, NULL, 10);
- a[0] = tmp[8];
- a[1] = tmp[9];
- T.tm_mon = (int)(strstr(mns, a) - mns) / 2;
- a[0] = tmp[11];
- a[1] = tmp[12];
- T.tm_year = 100 + (int)soap_strtol(a, NULL, 10);
- a[0] = tmp[13];
- a[1] = tmp[14];
- T.tm_hour = (int)soap_strtol(a, NULL, 10);
- a[0] = tmp[16];
- a[1] = tmp[17];
- T.tm_min = (int)soap_strtol(a, NULL, 10);
- a[0] = tmp[19];
- a[1] = tmp[20];
- T.tm_sec = (int)soap_strtol(a, NULL, 10);
- p->expire = soap_timegm(&T);
- }
- }
- else if (p && !soap_tag_cmp(tmp, "Secure"))
- p->secure = 1;
- else
- { if (p)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Got environment cookie %s=%s domain=%s path=%s expire=%ld secure=%d\n", p->name, p->value?p->value:"(null)", p->domain?p->domain:"(null)", p->path?p->path:"(null)", p->expire, p->secure));
- if ((q = soap_set_cookie(soap, p->name, p->value, p->domain, p->path)))
- { q->version = p->version;
- q->expire = p->expire;
- q->secure = p->secure;
- q->env = 1;
- }
- if (p->name)
- SOAP_FREE(soap, p->name);
- if (p->value)
- SOAP_FREE(soap, p->value);
- if (p->domain)
- SOAP_FREE(soap, p->domain);
- if (p->path)
- SOAP_FREE(soap, p->path);
- SOAP_FREE(soap, p);
- }
- if ((p = (struct soap_cookie*)SOAP_MALLOC(soap, sizeof(struct soap_cookie))))
- { p->name = (char*)SOAP_MALLOC(soap, strlen(tmp)+1);
- strcpy(p->name, tmp);
- s = soap_decode_val(tmp, sizeof(tmp), s);
- if (*tmp)
- { p->value = (char*)SOAP_MALLOC(soap, strlen(tmp)+1);
- strcpy(p->value, tmp);
- }
- else
- p->value = NULL;
- if (domain)
- p->domain = domain;
- else if (*soap->host)
- { p->domain = (char*)SOAP_MALLOC(soap, strlen(soap->host)+1);
- strcpy(p->domain, soap->host);
- }
- else
- p->domain = NULL;
- if (path)
- p->path = path;
- else if (soap->path && *soap->path)
- { p->path = (char*)SOAP_MALLOC(soap, strlen(soap->path)+1);
- strcpy(p->path, soap->path);
- }
- else
- { p->path = (char*)SOAP_MALLOC(soap, 2);
- strcpy(p->path, "/");
- }
- p->expire = 0;
- p->secure = 0;
- p->version = version;
- }
- }
- }
- if (p)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Got environment cookie %s=%s domain=%s path=%s expire=%ld secure=%d\n", p->name, p->value?p->value:"(null)", p->domain?p->domain:"(null)", p->path?p->path:"(null)", p->expire, p->secure));
- if ((q = soap_set_cookie(soap, p->name, p->value, p->domain, p->path)))
- { q->version = p->version;
- q->expire = p->expire;
- q->secure = p->secure;
- q->env = 1;
- }
- if (p->name)
- SOAP_FREE(soap, p->name);
- if (p->value)
- SOAP_FREE(soap, p->value);
- if (p->domain)
- SOAP_FREE(soap, p->domain);
- if (p->path)
- SOAP_FREE(soap, p->path);
- SOAP_FREE(soap, p);
- }
- if (domain)
- SOAP_FREE(soap, domain);
- if (path)
- SOAP_FREE(soap, path);
-}
-
-/******************************************************************************/
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_getenv_cookies(struct soap *soap)
-{ struct soap_cookie *p;
- const char *s;
- char key[4096], val[4096]; /* cookie size is up to 4096 bytes [RFC2109] */
- if (!(s = getenv("HTTP_COOKIE")))
- return SOAP_ERR;
- do
- { s = soap_decode_key(key, sizeof(key), s);
- s = soap_decode_val(val, sizeof(val), s);
- p = soap_set_cookie(soap, key, val, NULL, NULL);
- if (p)
- p->env = 1;
- } while (*s);
- return SOAP_OK;
-}
-
-/******************************************************************************/
-SOAP_FMAC1
-struct soap_cookie*
-SOAP_FMAC2
-soap_copy_cookies(struct soap *copy, const struct soap *soap)
-{ struct soap_cookie *p, **q, *r;
- q = &r;
- for (p = soap->cookies; p; p = p->next)
- { if (!(*q = (struct soap_cookie*)SOAP_MALLOC(copy, sizeof(struct soap_cookie))))
- return r;
- **q = *p;
- if (p->name)
- { if (((*q)->name = (char*)SOAP_MALLOC(copy, strlen(p->name)+1)))
- strcpy((*q)->name, p->name);
- }
- if (p->value)
- { if (((*q)->value = (char*)SOAP_MALLOC(copy, strlen(p->value)+1)))
- strcpy((*q)->value, p->value);
- }
- if (p->domain)
- { if (((*q)->domain = (char*)SOAP_MALLOC(copy, strlen(p->domain)+1)))
- strcpy((*q)->domain, p->domain);
- }
- if (p->path)
- { if (((*q)->path = (char*)SOAP_MALLOC(copy, strlen(p->path)+1)))
- strcpy((*q)->path, p->path);
- }
- q = &(*q)->next;
- }
- *q = NULL;
- return r;
-}
-
-/******************************************************************************/
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_free_cookies(struct soap *soap)
-{ struct soap_cookie *p;
- for (p = soap->cookies; p; p = soap->cookies)
- { soap->cookies = p->next;
- SOAP_FREE(soap, p->name);
- if (p->value)
- SOAP_FREE(soap, p->value);
- if (p->domain)
- SOAP_FREE(soap, p->domain);
- if (p->path)
- SOAP_FREE(soap, p->path);
- SOAP_FREE(soap, p);
- }
-}
-
-/******************************************************************************/
-#endif /* WITH_COOKIES */
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_2
-SOAP_FMAC1
-size_t
-SOAP_FMAC2
-soap_hash(register const char *s)
-{ register size_t h = 0;
- while (*s)
- h = 65599*h + *s++;
- return h % SOAP_IDHASH;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_1
-static void
-soap_init_pht(struct soap *soap)
-{ register int i;
- soap->pblk = NULL;
- soap->pidx = 0;
- for (i = 0; i < (int)SOAP_PTRHASH; i++)
- soap->pht[i] = NULL;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-struct soap*
-SOAP_FMAC2
-soap_new1(soap_mode mode)
-{ return soap_new2(mode, mode);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-struct soap*
-SOAP_FMAC2
-soap_new()
-{ return soap_new2(SOAP_IO_DEFAULT, SOAP_IO_DEFAULT);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-struct soap*
-SOAP_FMAC2
-soap_new2(soap_mode imode, soap_mode omode)
-{ struct soap *soap = (struct soap*)malloc(sizeof(struct soap));
- if (soap)
- soap_init2(soap, imode, omode);
- return soap;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_free(struct soap *soap)
-{ soap_done(soap);
- free(soap);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_del(struct soap *soap)
-{ free(soap);
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_1
-static void
-soap_free_pht(struct soap *soap)
-{ register struct soap_pblk *pb, *next;
- register int i;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Free pointer hashtable\n"));
- for (pb = soap->pblk; pb; pb = next)
- { next = pb->next;
- SOAP_FREE(soap, pb);
- }
- soap->pblk = NULL;
- soap->pidx = 0;
- for (i = 0; i < (int)SOAP_PTRHASH; i++)
- soap->pht[i] = NULL;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_embed(struct soap *soap, const void *p, const struct soap_array *a, int n, const char *tag, int type)
-{ register int i;
- struct soap_plist *pp;
- if (soap->version == 2)
- soap->encoding = 1;
- if (a)
- i = soap_array_pointer_lookup(soap, p, a, n, type, &pp);
- else
- i = soap_pointer_lookup(soap, p, type, &pp);
- if (i)
- { if (soap_is_embedded(soap, pp)
- || soap_is_single(soap, pp))
- return 0;
- soap_set_embedded(soap, pp);
- }
- return i;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_pointer_lookup(struct soap *soap, const void *p, int type, struct soap_plist **ppp)
-{ register struct soap_plist *pp;
- *ppp = NULL;
- if (p)
- { for (pp = soap->pht[soap_hash_ptr(p)]; pp; pp = pp->next)
- { if (pp->ptr == p && pp->type == type)
- { *ppp = pp;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Lookup location=%p type=%d id=%d\n", p, type, pp->id));
- return pp->id;
- }
- }
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Lookup location=%p type=%d: not found\n", p, type));
- return 0;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_pointer_enter(struct soap *soap, const void *p, const struct soap_array *a, int n, int type, struct soap_plist **ppp)
-{ register size_t h;
- register struct soap_plist *pp;
- if (!soap->pblk || soap->pidx >= SOAP_PTRBLK)
- { register struct soap_pblk *pb = (struct soap_pblk*)SOAP_MALLOC(soap, sizeof(struct soap_pblk));
- if (!pb)
- { soap->error = SOAP_EOM;
- return 0;
- }
- pb->next = soap->pblk;
- soap->pblk = pb;
- soap->pidx = 0;
- }
- *ppp = pp = &soap->pblk->plist[soap->pidx++];
- if (a)
- h = soap_hash_ptr(a->__ptr);
- else
- h = soap_hash_ptr(p);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Pointer enter location=%p array=%p size=%d dim=%d type=%d id=%d\n", p, a?a->__ptr:NULL, a?a->__size:0, n, type, soap->idnum+1));
- pp->next = soap->pht[h];
- pp->type = type;
- pp->mark1 = 0;
- pp->mark2 = 0;
- pp->ptr = p;
- pp->array = a;
- soap->pht[h] = pp;
- pp->id = ++soap->idnum;
- return pp->id;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_array_pointer_lookup(struct soap *soap, const void *p, const struct soap_array *a, int n, int type, struct soap_plist **ppp)
-{ register struct soap_plist *pp;
- *ppp = NULL;
- if (!p || !a->__ptr)
- return 0;
- for (pp = soap->pht[soap_hash_ptr(a->__ptr)]; pp; pp = pp->next)
- { if (pp->type == type && pp->array && pp->array->__ptr == a->__ptr)
- { register int i;
- for (i = 0; i < n; i++)
- if (((const int*)&pp->array->__size)[i] != ((const int*)&a->__size)[i])
- break;
- if (i == n)
- { *ppp = pp;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Array lookup location=%p type=%d id=%d\n", a->__ptr, type, pp->id));
- return pp->id;
- }
- }
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Array lookup location=%p type=%d: not found\n", a->__ptr, type));
- return 0;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_begin_count(struct soap *soap)
-{ soap_free_ns(soap);
-#ifndef WITH_LEANER
- if ((soap->mode & SOAP_ENC_DIME) || (soap->omode & SOAP_ENC_DIME))
- soap->mode = soap->omode | SOAP_IO_LENGTH | SOAP_ENC_DIME;
- else
-#endif
- { soap->mode = soap->omode;
- if ((soap->mode & SOAP_IO_UDP))
- soap->mode |= SOAP_ENC_XML;
- if ((soap->mode & SOAP_IO) == SOAP_IO_STORE
- || (((soap->mode & SOAP_IO) == SOAP_IO_CHUNK || (soap->mode & SOAP_ENC_XML))
-#ifndef WITH_LEANER
- && !soap->fpreparesend
-#endif
- ))
- soap->mode &= ~SOAP_IO_LENGTH;
- else
- soap->mode |= SOAP_IO_LENGTH;
- }
-#ifdef WITH_ZLIB
- if ((soap->mode & SOAP_ENC_ZLIB) && (soap->mode & SOAP_IO) == SOAP_IO_FLUSH)
- { if (!(soap->mode & SOAP_ENC_DIME))
- soap->mode &= ~SOAP_IO_LENGTH;
- if (soap->mode & SOAP_ENC_XML)
- soap->mode |= SOAP_IO_BUFFER;
- else
- soap->mode |= SOAP_IO_STORE;
- }
-#endif
- if (!soap->encodingStyle && !(soap->mode & SOAP_XML_GRAPH))
- soap->mode |= SOAP_XML_TREE;
-#ifndef WITH_LEANER
- if ((soap->mode & SOAP_ENC_MTOM) && (soap->mode & SOAP_ENC_DIME))
- soap->mode |= SOAP_ENC_MIME;
- else if (!(soap->mode & SOAP_ENC_MIME))
- soap->mode &= ~SOAP_ENC_MTOM;
- if (soap->mode & SOAP_ENC_MIME)
- soap_select_mime_boundary(soap);
- soap->dime.list = soap->dime.last; /* keep track of last DIME attachment */
-#endif
- soap->count = 0;
- soap->ns = 0;
- soap->null = 0;
- soap->position = 0;
- soap->mustUnderstand = 0;
- soap->encoding = 0;
- soap->part = SOAP_BEGIN;
- soap->idnum = 0;
- soap_clr_attr(soap);
- soap_set_local_namespaces(soap);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Begin count phase (socket=%d mode=0x%x count=%lu)\n", soap->socket, (unsigned int)soap->mode, (unsigned long)soap->count));
-#ifndef WITH_LEANER
- soap->dime.count = 0; /* count # of attachments */
- soap->dime.size = 0; /* accumulate total size of attachments */
- if (soap->fprepareinitsend && (soap->mode & SOAP_IO) != SOAP_IO_STORE)
- return soap->error = soap->fprepareinitsend(soap);
-#endif
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_end_count(struct soap *soap)
-{ DBGLOG(TEST, SOAP_MESSAGE(fdebug, "End of count phase\n"));
-#ifndef WITH_LEANER
- if (soap->fpreparefinalsend && (soap->mode & SOAP_IO_LENGTH))
- return soap->error = soap->fpreparefinalsend(soap);
-#endif
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_begin_send(struct soap *soap)
-{ DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Initializing for output\n"));
- soap_free_ns(soap);
- soap->error = SOAP_OK;
- soap->mode = soap->omode | (soap->mode & (SOAP_IO_LENGTH | SOAP_ENC_DIME));
-#ifdef WITH_ZLIB
- if ((soap->mode & SOAP_ENC_ZLIB) && (soap->mode & SOAP_IO) == SOAP_IO_FLUSH)
- { if (soap->mode & SOAP_ENC_XML)
- soap->mode |= SOAP_IO_BUFFER;
- else
- soap->mode |= SOAP_IO_STORE;
- }
-#endif
-#ifndef WITH_LEAN
- if ((soap->mode & SOAP_IO_UDP))
- { soap->mode |= SOAP_ENC_XML;
- if (soap->count > SOAP_BUFLEN)
- return soap->error = SOAP_UDP_ERROR;
- }
-#endif
- if ((soap->mode & SOAP_IO) == SOAP_IO_FLUSH && soap_valid_socket(soap->socket))
- { if (soap->count || (soap->mode & SOAP_IO_LENGTH) || (soap->mode & SOAP_ENC_XML))
- soap->mode |= SOAP_IO_BUFFER;
- else
- soap->mode |= SOAP_IO_STORE;
- }
- soap->mode &= ~SOAP_IO_LENGTH;
- if ((soap->mode & SOAP_IO) == SOAP_IO_STORE)
- if (soap_new_block(soap) == NULL)
- return soap->error;
- if (!(soap->mode & SOAP_IO_KEEPALIVE))
- soap->keep_alive = 0;
- if (!soap->encodingStyle && !(soap->mode & SOAP_XML_GRAPH))
- soap->mode |= SOAP_XML_TREE;
-#ifndef WITH_LEANER
- if ((soap->mode & SOAP_ENC_MTOM) && (soap->mode & SOAP_ENC_DIME))
- { soap->mode |= SOAP_ENC_MIME;
- soap->mode &= ~SOAP_ENC_DIME;
- }
- else if (!(soap->mode & SOAP_ENC_MIME))
- soap->mode &= ~SOAP_ENC_MTOM;
- if (soap->mode & SOAP_ENC_MIME)
- soap_select_mime_boundary(soap);
-#ifdef WIN32
-#ifndef UNDER_CE
-#ifndef WITH_FASTCGI
- if (!soap_valid_socket(soap->socket)) /* Set win32 stdout or soap->sendfd to BINARY, e.g. to support DIME */
-#ifdef __BORLANDC__
- setmode(soap->sendfd, _O_BINARY);
-#else
- _setmode(soap->sendfd, _O_BINARY);
-#endif
-#endif
-#endif
-#endif
-#endif
- if (soap->mode & SOAP_IO)
- { soap->bufidx = 0;
- soap->buflen = 0;
- }
- soap->chunksize = 0;
- soap->ns = 0;
- soap->null = 0;
- soap->position = 0;
- soap->mustUnderstand = 0;
- soap->encoding = 0;
- soap->idnum = 0;
- soap->level = 0;
- soap_clr_attr(soap);
- soap_set_local_namespaces(soap);
-#ifdef WITH_ZLIB
- soap->z_ratio_out = 1.0;
- if ((soap->mode & SOAP_ENC_ZLIB) && soap->zlib_state != SOAP_ZLIB_DEFLATE)
- { if (!soap->z_buf)
- soap->z_buf = (char*)SOAP_MALLOC(soap, SOAP_BUFLEN);
- soap->d_stream->next_out = (Byte*)soap->z_buf;
- soap->d_stream->avail_out = SOAP_BUFLEN;
-#ifdef WITH_GZIP
- if (soap->zlib_out != SOAP_ZLIB_DEFLATE)
- { memcpy(soap->z_buf, "\37\213\10\0\0\0\0\0\0\377", 10);
- soap->d_stream->next_out = (Byte*)soap->z_buf + 10;
- soap->d_stream->avail_out = SOAP_BUFLEN - 10;
- soap->z_crc = crc32(0L, NULL, 0);
- soap->zlib_out = SOAP_ZLIB_GZIP;
- if (soap->z_dict)
- *((Byte*)soap->z_buf + 2) = 0xff;
- if (deflateInit2(soap->d_stream, soap->z_level, Z_DEFLATED, -MAX_WBITS, 8, Z_DEFAULT_STRATEGY) != Z_OK)
- return soap->error = SOAP_ZLIB_ERROR;
- }
- else
-#endif
- if (deflateInit(soap->d_stream, soap->z_level) != Z_OK)
- return soap->error = SOAP_ZLIB_ERROR;
- if (soap->z_dict)
- { if (deflateSetDictionary(soap->d_stream, (const Bytef*)soap->z_dict, soap->z_dict_len) != Z_OK)
- return soap->error = SOAP_ZLIB_ERROR;
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Deflate initialized\n"));
- soap->zlib_state = SOAP_ZLIB_DEFLATE;
- }
-#endif
-#ifdef WITH_OPENSSL
- if (soap->ssl)
- ERR_clear_error();
-#endif
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Begin send phase (socket=%d mode=0x%x count=%lu)\n", soap->socket, soap->mode, (unsigned long)soap->count));
- soap->part = SOAP_BEGIN;
-#ifndef WITH_LEANER
- if (soap->fprepareinitsend && (soap->mode & SOAP_IO) == SOAP_IO_STORE)
- soap->fprepareinitsend(soap);
-#endif
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_2
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_embedded(struct soap *soap, const void *p, int t)
-{ struct soap_plist *pp;
- if (soap_pointer_lookup(soap, p, t, &pp))
- { pp->mark1 = 1;
- pp->mark2 = 1;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Embedded %p type=%d mark set to 1\n", p, t));
- }
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_reference(struct soap *soap, const void *p, int t)
-{ struct soap_plist *pp;
- if (!p || (soap->mode & SOAP_XML_TREE))
- return 1;
- if (soap_pointer_lookup(soap, p, t, &pp))
- { if (pp->mark1 == 0)
- { pp->mark1 = 2;
- pp->mark2 = 2;
- }
- }
- else if (soap_pointer_enter(soap, p, NULL, 0, t, &pp))
- { pp->mark1 = 0;
- pp->mark2 = 0;
- }
- else
- return 1;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Reference %p type=%d (%d %d)\n", p, t, (int)pp->mark1, (int)pp->mark2));
- return pp->mark1;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_array_reference(struct soap *soap, const void *p, const struct soap_array *a, int n, int t)
-{ register int i;
- struct soap_plist *pp;
- if (!p || !a->__ptr)
- return 1;
- i = soap_array_pointer_lookup(soap, p, a, n, t, &pp);
- if (i)
- { if (pp->mark1 == 0)
- { pp->mark1 = 2;
- pp->mark2 = 2;
- }
- }
- else if (!soap_pointer_enter(soap, p, a, n, t, &pp))
- return 1;
- else
- { pp->mark1 = 0;
- pp->mark2 = 0;
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Array reference %p ptr=%p dim=%d type=%d (%d %d)\n", p, a->__ptr, n, t, (int)pp->mark1, (int)pp->mark2));
- return pp->mark1;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_embedded_id(struct soap *soap, int id, const void *p, int t)
-{ struct soap_plist *pp = NULL;
- if (soap->mode & SOAP_XML_TREE)
- return id;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Embedded_id %p type=%d id=%d\n", p, t, id));
- if (soap->version == 1 && soap->encodingStyle && !(soap->mode & SOAP_XML_GRAPH) && soap->part != SOAP_IN_HEADER)
- { if (id < 0)
- { id = soap_pointer_lookup(soap, p, t, &pp);
- if (id)
- { if (soap->mode & SOAP_IO_LENGTH)
- pp->mark1 = 2;
- else
- pp->mark2 = 2;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Embedded_id multiref id=%d %p type=%d = (%d %d)\n", id, p, t, (int)pp->mark1, (int)pp->mark2));
- }
- return -1;
- }
- return id;
- }
- if (id < 0)
- id = soap_pointer_lookup(soap, p, t, &pp);
- else if (id && !soap_pointer_lookup(soap, p, t, &pp))
- return 0;
- if (id && pp)
- { if (soap->mode & SOAP_IO_LENGTH)
- pp->mark1 = 1;
- else
- pp->mark2 = 1;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Embedded_id embedded ref id=%d %p type=%d = (%d %d)\n", id, p, t, (int)pp->mark1, (int)pp->mark2));
- }
- return id;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_is_embedded(struct soap *soap, struct soap_plist *pp)
-{ if (!pp)
- return 0;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Is embedded? %d %d\n", (int)pp->mark1, (int)pp->mark2));
- if (soap->version == 1 && soap->encodingStyle && !(soap->mode & SOAP_XML_GRAPH) && soap->part != SOAP_IN_HEADER)
- { if (soap->mode & SOAP_IO_LENGTH)
- return pp->mark1 != 0;
- return pp->mark2 != 0;
- }
- if (soap->mode & SOAP_IO_LENGTH)
- return pp->mark1 == 1;
- return pp->mark2 == 1;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_is_single(struct soap *soap, struct soap_plist *pp)
-{ if (soap->part == SOAP_IN_HEADER)
- return 1;
- if (!pp)
- return 0;
- if (soap->mode & SOAP_IO_LENGTH)
- return pp->mark1 == 0;
- return pp->mark2 == 0;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_2
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_set_embedded(struct soap *soap, struct soap_plist *pp)
-{ if (!pp)
- return;
- if (soap->mode & SOAP_IO_LENGTH)
- pp->mark1 = 1;
- else
- pp->mark2 = 1;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_attachment(struct soap *soap, const char *tag, int id, const void *p, const struct soap_array *a, const char *aid, const char *atype, const char *aoptions, int n, const char *type, int t)
-{
-#ifndef WITH_NOIDREF
- struct soap_plist *pp = NULL; /* Oracle customization */
- int i;
- if (!p || !a->__ptr || (!aid && !atype))
- return soap_element_id(soap, tag, id, p, a, n, type, t);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Attachment tag='%s' id='%s' (%d) type='%s'\n", tag, aid?aid:SOAP_STR_EOS, id, atype?atype:SOAP_STR_EOS));
- i = soap_array_pointer_lookup(soap, p, a, n, t, &pp);
- if (!i)
- { i = soap_pointer_enter(soap, p, a, n, t, &pp);
- if (!i)
- { soap->error = SOAP_EOM;
- return -1;
- }
- }
- if (id <= 0)
- id = i;
- if (!aid)
- { sprintf(soap->tmpbuf, soap->dime_id_format, id);
- aid = soap_strdup(soap, soap->tmpbuf);
- }
- /* Add MTOM xop:Include element when necessary */
- /* TODO: this code to be obsoleted with new import/xop.h conventions */
- if ((soap->mode & SOAP_ENC_MTOM) && strcmp(tag, "xop:Include"))
- { if (soap_element_begin_out(soap, tag, 0, type)
- || soap_element_href(soap, "xop:Include", 0, "xmlns:xop=\"http://www.w3.org/2004/08/xop/include\" href", aid)
- || soap_element_end_out(soap, tag))
- return soap->error;
- }
- else if (soap_element_href(soap, tag, 0, "href", aid))
- return soap->error;
- if (soap->mode & SOAP_IO_LENGTH)
- { if (pp && (pp->mark1 != 3)) /* Oracle customization */
- { struct soap_multipart *content;
- if (soap->mode & SOAP_ENC_MTOM)
- content = soap_new_multipart(soap, &soap->mime.first, &soap->mime.last, (char*)a->__ptr, a->__size);
- else
- content = soap_new_multipart(soap, &soap->dime.first, &soap->dime.last, (char*)a->__ptr, a->__size);
- if (!content)
- { soap->error = SOAP_EOM;
- return -1;
- }
- if (!strncmp(aid, "cid:", 4)) /* RFC 2111 */
- { if (soap->mode & SOAP_ENC_MTOM)
- { char *s = (char*)soap_malloc(soap, strlen(aid) - 1);
- if (s)
- { *s = '<';
- strcpy(s + 1, aid + 4);
- strcat(s, ">");
- content->id = s;
- }
- }
- else
- content->id = aid + 4;
- }
- else
- content->id = aid;
- content->type = atype;
- content->options = aoptions;
- content->encoding = SOAP_MIME_BINARY;
- pp->mark1 = 3;
- }
- }
- else if (pp) /* Oracle customization */
- pp->mark2 = 3;
-#endif
- return -1;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_1
-static void
-soap_init_iht(struct soap *soap)
-{ register int i;
- for (i = 0; i < SOAP_IDHASH; i++)
- soap->iht[i] = NULL;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_1
-static void
-soap_free_iht(struct soap *soap)
-{ register int i;
- register struct soap_ilist *ip = NULL, *p = NULL;
- register struct soap_flist *fp = NULL, *fq = NULL;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Free ID hashtable\n"));
- for (i = 0; i < SOAP_IDHASH; i++)
- { for (ip = soap->iht[i]; ip; ip = p)
- { for (fp = ip->flist; fp; fp = fq)
- { fq = fp->next;
- SOAP_FREE(soap, fp);
- }
- p = ip->next;
- SOAP_FREE(soap, ip);
- }
- soap->iht[i] = NULL;
- }
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_2
-SOAP_FMAC1
-struct soap_ilist *
-SOAP_FMAC2
-soap_lookup(struct soap *soap, const char *id)
-{ register struct soap_ilist *ip = NULL;
- for (ip = soap->iht[soap_hash(id)]; ip; ip = ip->next)
- if (!strcmp(ip->id, id))
- return ip;
- return NULL;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_2
-SOAP_FMAC1
-struct soap_ilist *
-SOAP_FMAC2
-soap_enter(struct soap *soap, const char *id)
-{ register size_t h;
- register struct soap_ilist *ip;
- ip = (struct soap_ilist*)SOAP_MALLOC(soap, sizeof(struct soap_ilist) + strlen(id));
- if (ip)
- { h = soap_hash(id);
- strcpy(ip->id, id);
- ip->next = soap->iht[h];
- soap->iht[h] = ip;
- }
- return ip;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-void*
-SOAP_FMAC2
-soap_malloc(struct soap *soap, size_t n)
-{ register char *p;
- if (!n)
- return (void*)SOAP_NON_NULL;
- if (!soap)
- return SOAP_MALLOC(soap, n);
- if (soap->fmalloc)
- p = (char*)soap->fmalloc(soap, n);
- else
- { n += sizeof(short);
- n += (-(long)n) & (sizeof(void*)-1); /* align at 4-, 8- or 16-byte boundary */
- if (!(p = (char*)SOAP_MALLOC(soap, n + sizeof(void*) + sizeof(size_t))))
- { soap->error = SOAP_EOM;
- return NULL;
- }
- /* set the canary to detect corruption */
- *(unsigned short*)(p + n - sizeof(unsigned short)) = (unsigned short)SOAP_CANARY;
- /* keep chain of alloced cells for destruction */
- *(void**)(p + n) = soap->alist;
- *(size_t*)(p + n + sizeof(void*)) = n;
- soap->alist = p + n;
- }
- soap->alloced = 1;
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifdef SOAP_MEM_DEBUG
-static void
-soap_init_mht(struct soap *soap)
-{ register int i;
- for (i = 0; i < (int)SOAP_PTRHASH; i++)
- soap->mht[i] = NULL;
-}
-#endif
-
-/******************************************************************************/
-#ifdef SOAP_MEM_DEBUG
-static void
-soap_free_mht(struct soap *soap)
-{ register int i;
- register struct soap_mlist *mp, *mq;
- for (i = 0; i < (int)SOAP_PTRHASH; i++)
- { for (mp = soap->mht[i]; mp; mp = mq)
- { mq = mp->next;
- if (mp->live)
- {
- fprintf(stderr, "%s(%d): malloc() = %p not freed (memory leak or forgot to call soap_end()?)\n", mp->file, mp->line, mp->ptr);
-#ifndef WIN32
- (void) printstack( 2 ); /* Oracle customization */
-#endif
- }
- free(mp);
- }
- soap->mht[i] = NULL;
- }
-}
-#endif
-
-/******************************************************************************/
-#ifdef SOAP_MEM_DEBUG
-SOAP_FMAC1
-void*
-SOAP_FMAC2
-soap_track_malloc(struct soap *soap, const char *file, int line, size_t size)
-{ register void *p = malloc(size);
- if (soap)
- { register size_t h = soap_hash_ptr(p);
- register struct soap_mlist *mp = (struct soap_mlist*)malloc(sizeof(struct soap_mlist));
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "%s(%d): malloc(%lu) = %p\n", file, line, (unsigned long)size, p));
- mp->next = soap->mht[h];
- mp->ptr = p;
- mp->file = file;
- mp->line = line;
- mp->live = 1;
- soap->mht[h] = mp;
- }
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifdef SOAP_MEM_DEBUG
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_track_free(struct soap *soap, const char *file, int line, void *p)
-{ register size_t h = soap_hash_ptr(p);
- register struct soap_mlist *mp;
- for (mp = soap->mht[h]; mp; mp = mp->next)
- if (mp->ptr == p)
- break;
- if (mp)
- { if (mp->live)
- { free(p);
- if (soap->fdebug[SOAP_INDEX_TEST])
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "%s(%d): free(%p)\n", file, line, p));
- }
- mp->live = 0;
- }
- else
- fprintf(stderr, "%s(%d): free(%p) double free of pointer malloced at %s(%d)\n", file, line, p, mp->file, mp->line);
- }
- else
- fprintf(stderr, "%s(%d): free(%p) pointer not malloced\n", file, line, p);
-}
-#endif
-
-/******************************************************************************/
-#ifdef SOAP_MEM_DEBUG
-static void
-soap_track_unlink(struct soap *soap, const void *p)
-{ register size_t h = soap_hash_ptr(p);
- register struct soap_mlist *mp;
- for (mp = soap->mht[h]; mp; mp = mp->next)
- if (mp->ptr == p)
- break;
- if (mp)
- mp->live = 0;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_dealloc(struct soap *soap, void *p)
-{ if (soap_check_state(soap))
- return;
- if (p)
- { register char **q;
- for (q = (char**)&soap->alist; *q; q = *(char***)q)
- {
- if (*(unsigned short*)(char*)(*q - sizeof(unsigned short)) != (unsigned short)SOAP_CANARY)
- {
-#ifdef SOAP_MEM_DEBUG
- fprintf(stderr, "Data corruption in dynamic allocation (see logs)\n");
-#endif
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Data corruption:\n"));
- DBGHEX(TEST, *q - 200, 200);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "\n"));
- soap->error = SOAP_MOE;
- return;
- }
- if (p == (void*)(*q - *(size_t*)(*q + sizeof(void*))))
- { *q = **(char***)q;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Freed data at %p\n", p));
- SOAP_FREE(soap, p);
- return;
- }
- }
- soap_delete(soap, p);
- }
- else
- { register char *q;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Free all soap_malloc() data\n"));
- while (soap->alist)
- { q = (char*)soap->alist;
- if (*(unsigned short*)(char*)(q - sizeof(unsigned short)) != (unsigned short)SOAP_CANARY)
- {
-#ifdef SOAP_MEM_DEBUG
- fprintf(stderr, "Data corruption in dynamic allocation (see logs)\n");
-#endif
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Data corruption:\n"));
- DBGHEX(TEST, q - 200, 200);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "\n"));
- soap->error = SOAP_MOE;
- return;
- }
- soap->alist = *(void**)q;
- q -= *(size_t*)(q + sizeof(void*));
- SOAP_FREE(soap, q);
- }
- /* we must assume these were deallocated: */
- soap->action = NULL;
- soap->fault = NULL;
- soap->header = NULL;
- soap->userid = NULL;
- soap->passwd = NULL;
- soap->authrealm = NULL;
- soap->http_content = NULL;
-#ifndef WITH_LEANER
- soap_clr_mime(soap);
-#endif
- }
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_delete(struct soap *soap, void *p)
-{ register struct soap_clist **cp;
- if (soap_check_state(soap))
- return;
- cp = &soap->clist;
- if (p)
- { while (*cp)
- { if (p == (*cp)->ptr)
- { register struct soap_clist *q = *cp;
- *cp = q->next;
- if (q->fdelete(q))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Could not dealloc data %p: deletion callback failed for object type %d\n", q->ptr, q->type));
-#ifdef SOAP_MEM_DEBUG
- fprintf(stderr, "new(object type = %d) = %p not freed: deletion callback failed\n", q->type, q->ptr);
-#endif
- }
- SOAP_FREE(soap, q);
- return;
- }
- cp = &(*cp)->next;
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Could not dealloc data %p: address not in list\n", p));
- }
- else
- { while (*cp)
- { register struct soap_clist *q = *cp;
- *cp = q->next;
- if (q->fdelete(q))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Could not dealloc data %p: deletion callback failed for object type %d\n", q->ptr, q->type));
-#ifdef SOAP_MEM_DEBUG
- fprintf(stderr, "new(object type = %d) = %p not freed: deletion callback failed\n", q->type, q->ptr);
-#endif
- }
- SOAP_FREE(soap, q);
- }
- }
- soap->fault = NULL; /* this was possibly deallocated */
- soap->header = NULL; /* this was possibly deallocated */
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_delegate_deletion(struct soap *soap, struct soap *soap_to)
-{ register struct soap_clist *cp;
- register char **q;
-#ifdef SOAP_MEM_DEBUG
- register void *p;
- register struct soap_mlist **mp, *mq;
- size_t h;
-#endif
- for (q = (char**)&soap->alist; *q; q = *(char***)q)
- {
- if (*(unsigned short*)(char*)(*q - sizeof(unsigned short)) != (unsigned short)SOAP_CANARY)
- {
-#ifdef SOAP_MEM_DEBUG
- fprintf(stderr, "Data corruption in dynamic allocation (see logs)\n");
-#endif
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Data corruption:\n"));
- DBGHEX(TEST, *q - 200, 200);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "\n"));
- soap->error = SOAP_MOE;
- return;
- }
-#ifdef SOAP_MEM_DEBUG
- p = (void*)(*q - *(size_t*)(*q + sizeof(void*)));
- h = soap_hash_ptr(p);
- for (mp = &soap->mht[h]; *mp; mp = &(*mp)->next)
- { if ((*mp)->ptr == p)
- { mq = *mp;
- *mp = mq->next;
- mq->next = soap_to->mht[h];
- soap_to->mht[h] = mq;
- break;
- }
- }
-#endif
- }
- *q = (char*)soap_to->alist;
- soap_to->alist = soap->alist;
- soap->alist = NULL;
- cp = soap_to->clist;
- if (cp)
- { while (cp->next)
- cp = cp->next;
- cp->next = soap->clist;
- }
- else
- soap_to->clist = soap->clist;
- soap->clist = NULL;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-struct soap_clist *
-SOAP_FMAC2
-soap_link(struct soap *soap, void *p, int t, int n, int (*fdelete)(struct soap_clist*))
-{ register struct soap_clist *cp;
- if ((cp = (struct soap_clist*)SOAP_MALLOC(soap, sizeof(struct soap_clist))))
- { cp->next = soap->clist;
- cp->type = t;
- cp->size = n;
- cp->ptr = p;
- cp->fdelete = fdelete;
- soap->clist = cp;
- }
- return cp;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_unlink(struct soap *soap, const void *p)
-{ register char **q;
- register struct soap_clist **cp;
- if (!soap || !p)
- return;
- for (q = (char**)&soap->alist; *q; q = *(char***)q)
- { if (p == (void*)(*q - *(size_t*)(*q + sizeof(void*))))
- { *q = **(char***)q;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Unlinked data %p\n", p));
-#ifdef SOAP_MEM_DEBUG
- soap_track_unlink(soap, p);
-#endif
- return;
- }
- }
- for (cp = &soap->clist; *cp; cp = &(*cp)->next)
- { if (p == (*cp)->ptr)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Unlinked class instance %p\n", p));
- q = (char**)*cp;
- *cp = (*cp)->next;
- SOAP_FREE(soap, q);
- return;
- }
- }
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_lookup_type(struct soap *soap, const char *id)
-{ register struct soap_ilist *ip;
- if (id && *id)
- { ip = soap_lookup(soap, id);
- if (ip)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Lookup id='%s' type=%d\n", id, ip->type));
- return ip->type;
- }
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "lookup type id='%s' NOT FOUND! Need to get it from xsi:type\n", id));
- return 0;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_2
-SOAP_FMAC1
-void*
-SOAP_FMAC2
-soap_id_lookup(struct soap *soap, const char *id, void **p, int t, size_t n, unsigned int k)
-{ struct soap_ilist *ip;
- void **q;
- if (!p || !id || !*id)
- return p;
- ip = soap_lookup(soap, id); /* lookup pointer to hash table entry for string id */
- if (!ip)
- { if (!(ip = soap_enter(soap, id))) /* new hash table entry for string id */
- return NULL;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Forwarding first href='%s' type=%d %p (%u bytes)\n", id, t, p, (unsigned int)n));
- ip->type = t;
- ip->size = n;
- ip->link = p;
- ip->copy = NULL;
- ip->flist = NULL;
- ip->ptr = NULL;
- ip->level = k;
- *p = NULL;
- }
- else if (ip->ptr)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Resolved href='%s' type=%d location=%p (%u bytes)\n", id, t, ip->ptr, (unsigned int)n));
- if (ip->type != t)
- {
- /* Oracle customization */
- strncpy(soap->id, id, sizeof(soap->id) - 1);
- soap->id[sizeof(soap->id) - 1] = '\0';
- soap->error = SOAP_HREF;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Type incompatibility: href='%s' id-type=%d href-type=%d\n", id, ip->type, t));
- return NULL;
- }
- while (ip->level < k)
- { q = (void**)soap_malloc(soap, sizeof(void*));
- if (!q)
- return NULL;
- *p = (void*)q;
- p = q;
- k--;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Descending one level...\n"));
- }
- *p = ip->ptr;
- }
- else if (ip->level > k)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Resolving level %u pointers to href='%s'\n", ip->level, id));
- while (ip->level > k)
- { void *s, **r = &ip->link;
- q = (void**)ip->link;
- while (q)
- { *r = (void*)soap_malloc(soap, sizeof(void*));
- if (!*r)
- return NULL;
- s = *q;
- *q = *r;
- r = (void**)*r;
- q = (void**)s;
- }
- *r = NULL;
- ip->size = n;
- ip->copy = NULL;
- ip->level = ip->level - 1;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Descending one level...\n"));
- }
- q = (void**)ip->link;
- ip->link = p;
- *p = (void*)q;
- }
- else
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Forwarded href='%s' type=%d location=%p (%u bytes)\n", id, t, p, (unsigned int)n));
- while (ip->level < k)
- { q = (void**)soap_malloc(soap, sizeof(void*));
- if (!q)
- return NULL;
- *p = q;
- p = q;
- k--;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Descending one level...\n"));
- }
- q = (void**)ip->link;
- ip->link = p;
- *p = (void*)q;
- }
- return p;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIDREF
-#ifndef PALM_2
-SOAP_FMAC1
-void*
-SOAP_FMAC2
-soap_id_forward(struct soap *soap, const char *href, void *p, size_t len, int st, int tt, size_t n, unsigned int k, void (*fcopy)(struct soap*, int, int, void*, size_t, const void*, size_t))
-{ struct soap_ilist *ip;
- if (!p || !href || !*href)
- return p;
- ip = soap_lookup(soap, href); /* lookup pointer to hash table entry for string id */
- if (!ip)
- { if (!(ip = soap_enter(soap, href))) /* new hash table entry for string id */
- return NULL;
- ip->type = st;
- ip->size = n;
- ip->link = NULL;
- ip->copy = NULL;
- ip->ptr = NULL;
- ip->level = 0;
- ip->flist = NULL;
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "New entry href='%s' type=%d size=%lu level=%d location=%p\n", href, st, (unsigned long)n, k, p));
- }
- else if (ip->type != st || (ip->level == k && ip->size != n))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Type incompatibility id='%s' expect type=%d size=%lu level=%u got type=%d size=%lu\n", href, ip->type, (unsigned long)ip->size, k, st, (unsigned long)n));
- /* Oracle customization */
- strncpy(soap->id, href, sizeof(soap->id) - 1);
- soap->id[sizeof(soap->id) - 1] = '\0';
- soap->error = SOAP_HREF;
- return NULL;
- }
- if (fcopy || n < sizeof(void*) || *href != '#')
- { register struct soap_flist *fp = (struct soap_flist*)SOAP_MALLOC(soap, sizeof(struct soap_flist));
- if (!fp)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- fp->next = ip->flist;
- fp->type = tt;
- fp->ptr = p;
- fp->level = k;
- fp->len = len;
- if (fcopy)
- fp->fcopy = fcopy;
- else
- fp->fcopy = soap_fcopy;
- ip->flist = fp;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Forwarding type=%d (target type=%d) size=%lu location=%p level=%u len=%lu href='%s'\n", st, tt, (unsigned long)n, p, k, (unsigned long)len, href));
- }
- else
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Forwarding copying address %p for type=%d href='%s'\n", p, st, href));
- *(void**)p = ip->copy;
- ip->copy = p;
- }
- return p;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-void*
-SOAP_FMAC2
-soap_id_enter(struct soap *soap, const char *id, void *p, int t, size_t n, unsigned int k, const char *type, const char *arrayType, void *(*finstantiate)(struct soap*, int, const char*, const char*, size_t*))
-{
-#ifndef WITH_NOIDREF
- struct soap_ilist *ip;
-#endif
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Enter id='%s' type=%d loc=%p size=%lu level=%u\n", id, t, p, (unsigned long)n, k));
- soap->alloced = 0;
- if (!p)
- { if (finstantiate)
- p = finstantiate(soap, t, type, arrayType, &n);
- else
- p = soap_malloc(soap, n);
- if (p)
- soap->alloced = 1;
- }
-#ifndef WITH_NOIDREF
- if (!id || !*id)
-#endif
- return p;
-#ifndef WITH_NOIDREF
- ip = soap_lookup(soap, id); /* lookup pointer to hash table entry for string id */
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Lookup entry id='%s for location=%p'\n", id, p));
- if (!ip)
- { if (!(ip = soap_enter(soap, id))) /* new hash table entry for string id */
- return NULL;
- ip->type = t;
- ip->link = NULL;
- ip->copy = NULL;
- ip->flist = NULL;
- ip->size = n;
- ip->ptr = p;
- ip->level = k;
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "New entry id='%s' type=%d size=%lu level=%u location=%p\n", id, t, (unsigned long)n, k, p));
- }
- else if ((ip->type != t || (ip->level == k && ip->size != n)) && (ip->copy || ip->flist))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Type incompatibility id='%s' expect type=%d size=%lu level=%u got type=%d size=%lu\n", id, ip->type, (unsigned long)ip->size, k, t, (unsigned long)n));
- /* Oracle customization */
- strncpy(soap->id, id, sizeof(soap->id) - 1);
- soap->id[sizeof(soap->id) - 1] = '\0';
- soap->error = SOAP_HREF;
- return NULL;
- }
- else if (ip->ptr)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Multiply defined id='%s'\n", id));
- /* Oracle customization */
- strncpy(soap->id, id, sizeof(soap->id) - 1);
- soap->id[sizeof(soap->id) - 1] = '\0';
- soap->error = SOAP_DUPLICATE_ID;
- return NULL;
- }
- else
- { ip->size = n;
- ip->ptr = p;
- ip->level = k;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Update entry id='%s' type=%d location=%p size=%lu level=%u\n", id, t, p, (unsigned long)n, k));
- }
- return ip->ptr;
-#endif
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_fcopy(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)
-{ DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Copying data type=%d (target type=%d) %p -> %p (%lu bytes)\n", st, tt, q, p, (unsigned long)n));
- memcpy(p, q, n);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_end_send(struct soap *soap)
-{
-#ifndef WITH_LEANER
- int err;
- if (soap->dime.list)
- { /* SOAP body referenced attachments must appear first */
- soap->dime.last->next = soap->dime.first;
- soap->dime.first = soap->dime.list->next;
- soap->dime.list->next = NULL;
- soap->dime.last = soap->dime.list;
- }
- if (!(err = soap_putdime(soap)))
- err = soap_putmime(soap);
- soap->mime.list = NULL;
- soap->mime.first = NULL;
- soap->mime.last = NULL;
- soap->dime.list = NULL;
- soap->dime.first = NULL;
- soap->dime.last = NULL;
- if (err)
- return err;
-#endif
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "End send\n"));
- if (soap->mode & SOAP_IO) /* need to flush the remaining data in buffer */
- { if (soap_flush(soap))
-#ifdef WITH_ZLIB
- { if (soap->mode & SOAP_ENC_ZLIB && soap->zlib_state == SOAP_ZLIB_DEFLATE)
- { soap->zlib_state = SOAP_ZLIB_NONE;
- deflateEnd(soap->d_stream);
- }
- return soap->error;
- }
-#else
- return soap->error;
-#endif
-#ifdef WITH_ZLIB
- if (soap->mode & SOAP_ENC_ZLIB)
- { int r;
- soap->d_stream->avail_in = 0;
- do
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Deflating remainder\n"));
- r = deflate(soap->d_stream, Z_FINISH);
- if (soap->d_stream->avail_out != SOAP_BUFLEN)
- { if (soap_flush_raw(soap, soap->z_buf, SOAP_BUFLEN - soap->d_stream->avail_out))
- { soap->zlib_state = SOAP_ZLIB_NONE;
- deflateEnd(soap->d_stream);
- return soap->error;
- }
- soap->d_stream->next_out = (Byte*)soap->z_buf;
- soap->d_stream->avail_out = SOAP_BUFLEN;
- }
- } while (r == Z_OK);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Deflated total %lu->%lu bytes\n", soap->d_stream->total_in, soap->d_stream->total_out));
- soap->z_ratio_out = (float)soap->d_stream->total_out / (float)soap->d_stream->total_in;
- soap->mode &= ~SOAP_ENC_ZLIB;
- soap->zlib_state = SOAP_ZLIB_NONE;
- if (deflateEnd(soap->d_stream) != Z_OK || r != Z_STREAM_END)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Unable to end deflate: %s\n", soap->d_stream->msg?soap->d_stream->msg:SOAP_STR_EOS));
- return soap->error = SOAP_ZLIB_ERROR;
- }
-#ifdef WITH_GZIP
- if (soap->zlib_out != SOAP_ZLIB_DEFLATE)
- { soap->z_buf[0] = soap->z_crc & 0xFF;
- soap->z_buf[1] = (soap->z_crc >> 8) & 0xFF;
- soap->z_buf[2] = (soap->z_crc >> 16) & 0xFF;
- soap->z_buf[3] = (soap->z_crc >> 24) & 0xFF;
- soap->z_buf[4] = soap->d_stream->total_in & 0xFF;
- soap->z_buf[5] = (soap->d_stream->total_in >> 8) & 0xFF;
- soap->z_buf[6] = (soap->d_stream->total_in >> 16) & 0xFF;
- soap->z_buf[7] = (soap->d_stream->total_in >> 24) & 0xFF;
- if (soap_flush_raw(soap, soap->z_buf, 8))
- return soap->error;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "gzip crc32=%lu\n", (unsigned long)soap->z_crc));
- }
-#endif
- }
-#endif
- if ((soap->mode & SOAP_IO) == SOAP_IO_STORE)
- { char *p;
-#ifndef WITH_NOHTTP
- if (!(soap->mode & SOAP_ENC_XML))
- { soap->mode--;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Sending buffered message of length %u\n", (unsigned int)soap->blist->size));
- if (soap->status >= SOAP_POST)
- soap->error = soap->fpost(soap, soap->endpoint, soap->host, soap->port, soap->path, soap->action, soap->blist->size);
- else if (soap->status != SOAP_STOP)
- soap->error = soap->fresponse(soap, soap->status, soap->blist->size);
- if (soap->error || soap_flush(soap))
- return soap->error;
- soap->mode++;
- }
-#endif
- for (p = soap_first_block(soap, NULL); p; p = soap_next_block(soap, NULL))
- { DBGMSG(SENT, p, soap_block_size(soap, NULL));
- if ((soap->error = soap->fsend(soap, p, soap_block_size(soap, NULL))))
- { soap_end_block(soap, NULL);
- return soap->error;
- }
- }
- soap_end_block(soap, NULL);
- }
-#ifndef WITH_LEANER
- else if ((soap->mode & SOAP_IO) == SOAP_IO_CHUNK)
- { DBGMSG(SENT, "\r\n0\r\n\r\n", 7);
- if ((soap->error = soap->fsend(soap, "\r\n0\r\n\r\n", 7)))
- return soap->error;
- }
-#endif
- }
-#ifdef WITH_TCPFIN
-#ifdef WITH_OPENSSL
- if (!soap->ssl && soap_valid_socket(soap->socket) && !soap->keep_alive && !(soap->omode & SOAP_IO_UDP))
- soap->fshutdownsocket(soap, soap->socket, 1); /* Send TCP FIN */
-#else
- if (soap_valid_socket(soap->socket) && !soap->keep_alive && !(soap->omode & SOAP_IO_UDP))
- soap->fshutdownsocket(soap, soap->socket, 1); /* Send TCP FIN */
-#endif
-#endif
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "End of send phase\n"));
- soap->omode &= ~SOAP_XML_SEC;
- soap->count = 0;
- soap->part = SOAP_END;
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_end_recv(struct soap *soap)
-{ soap->part = SOAP_END;
-#ifndef WITH_LEAN
- soap->wsuid = NULL; /* reset before next send */
- soap->c14nexclude = NULL; /* reset before next send */
-#endif
-#ifndef WITH_LEANER
- if ((soap->mode & SOAP_ENC_DIME) && soap_getdime(soap))
- { soap->dime.first = NULL;
- soap->dime.last = NULL;
- return soap->error;
- }
- soap->dime.list = soap->dime.first;
- soap->dime.first = NULL;
- soap->dime.last = NULL;
- /* Check if MIME attachments and mime-post-check flag is set, if set call soap_resolve() and return */
- if (soap->mode & SOAP_ENC_MIME)
- {
-#ifndef WITH_NOIDREF
- if (soap->mode & SOAP_MIME_POSTCHECK)
- { soap_resolve(soap);
- return SOAP_OK;
- }
-#endif
- if (soap_getmime(soap))
- return soap->error;
- }
- soap->mime.list = soap->mime.first;
- soap->mime.first = NULL;
- soap->mime.last = NULL;
- soap->mime.boundary = NULL;
- if (soap->xlist)
- { struct soap_multipart *content;
- for (content = soap->mime.list; content; content = content->next)
- soap_resolve_attachment(soap, content);
- }
-#endif
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "End of receive message ok\n"));
-#ifdef WITH_ZLIB
- if (soap->mode & SOAP_ENC_ZLIB)
- { /* Make sure end of compressed content is reached */
- while (soap->d_stream->next_out != Z_NULL)
- if ((int)soap_get1(soap) == EOF)
- break;
- soap->mode &= ~SOAP_ENC_ZLIB;
- memcpy(soap->buf, soap->z_buf, SOAP_BUFLEN);
- soap->bufidx = (char*)soap->d_stream->next_in - soap->z_buf;
- soap->buflen = soap->z_buflen;
- soap->zlib_state = SOAP_ZLIB_NONE;
- if (inflateEnd(soap->d_stream) != Z_OK)
- return soap->error = SOAP_ZLIB_ERROR;
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Inflate end ok\n"));
-#ifdef WITH_GZIP
- if (soap->zlib_in == SOAP_ZLIB_GZIP)
- { soap_wchar c;
- short i;
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Inflate gzip crc check\n"));
- for (i = 0; i < 8; i++)
- { if ((int)(c = soap_get1(soap)) == EOF)
- return soap->error = SOAP_EOF;
- soap->z_buf[i] = (char)c;
- }
- if (soap->z_crc != ((uLong)(unsigned char)soap->z_buf[0] | ((uLong)(unsigned char)soap->z_buf[1] << 8) | ((uLong)(unsigned char)soap->z_buf[2] << 16) | ((uLong)(unsigned char)soap->z_buf[3] << 24)))
- { DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Gzip error: crc check failed, message corrupted? (crc32=%lu)\n", (unsigned long)soap->z_crc));
- return soap->error = SOAP_ZLIB_ERROR;
- }
- if (soap->d_stream->total_out != ((uLong)(unsigned char)soap->z_buf[4] | ((uLong)(unsigned char)soap->z_buf[5] << 8) | ((uLong)(unsigned char)soap->z_buf[6] << 16) | ((uLong)(unsigned char)soap->z_buf[7] << 24)))
- { DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Gzip error: incorrect message length\n"));
- return soap->error = SOAP_ZLIB_ERROR;
- }
- }
- soap->zlib_in = SOAP_ZLIB_NONE;
-#endif
- }
-#endif
- if ((soap->mode & SOAP_IO) == SOAP_IO_CHUNK)
- while ((int)soap_getchar(soap) != EOF) /* advance to last chunk */
- ;
-#ifndef WITH_NOIDREF
- if (soap_resolve(soap))
- return soap->error;
-#endif
-#ifndef WITH_LEANER
- if (soap->xlist)
- { if (soap->mode & SOAP_ENC_MTOM)
- return soap->error = SOAP_MIME_HREF;
- return soap->error = SOAP_DIME_HREF;
- }
-#endif
- soap_free_ns(soap);
-#ifndef WITH_LEANER
- if (soap->fpreparefinalrecv)
- return soap->error = soap->fpreparefinalrecv(soap);
-#endif
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_free_temp(struct soap *soap)
-{ register struct soap_attribute *tp, *tq;
- register struct Namespace *ns;
- soap_free_ns(soap);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Free any remaining temp blocks\n"));
- while (soap->blist)
- soap_end_block(soap, NULL);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Free attribute storage\n"));
- for (tp = soap->attributes; tp; tp = tq)
- { tq = tp->next;
- if (tp->value)
- SOAP_FREE(soap, tp->value);
- SOAP_FREE(soap, tp);
- }
- soap->attributes = NULL;
-#ifdef WITH_FAST
- if (soap->labbuf)
- SOAP_FREE(soap, soap->labbuf);
- soap->labbuf = NULL;
- soap->lablen = 0;
- soap->labidx = 0;
-#endif
- ns = soap->local_namespaces;
- if (ns)
- { for (; ns->id; ns++)
- { if (ns->out)
- { if (soap->encodingStyle == ns->out)
- soap->encodingStyle = SOAP_STR_EOS;
- SOAP_FREE(soap, ns->out);
- ns->out = NULL;
- }
- if (soap->encodingStyle == ns->ns)
- soap->encodingStyle = SOAP_STR_EOS;
- }
- SOAP_FREE(soap, soap->local_namespaces);
- soap->local_namespaces = NULL;
- }
-#ifndef WITH_LEANER
- while (soap->xlist)
- { struct soap_xlist *xp = soap->xlist->next;
- SOAP_FREE(soap, soap->xlist);
- soap->xlist = xp;
- }
-#endif
-#ifndef WITH_NOIDREF
- soap_free_pht(soap);
- soap_free_iht(soap);
-#endif
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-static void
-soap_free_ns(struct soap *soap)
-{ register struct soap_nlist *np, *nq;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Free namespace stack\n"));
- for (np = soap->nlist; np; np = nq)
- { nq = np->next;
- SOAP_FREE(soap, np);
- }
- soap->nlist = NULL;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-#if !defined(WITH_LEAN) || defined(SOAP_DEBUG)
-static void
-soap_init_logs(struct soap *soap)
-{ int i;
- for (i = 0; i < SOAP_MAXLOGS; i++)
- { soap->logfile[i] = NULL;
- soap->fdebug[i] = NULL;
- }
-}
-#endif
-#endif
-
-/******************************************************************************/
-#if !defined(WITH_LEAN) || defined(SOAP_DEBUG)
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_open_logfile(struct soap *soap, int i)
-{ if (soap->logfile[i])
- soap->fdebug[i] = fopen(soap->logfile[i], i < 2 ? "ab" : "a");
-}
-#endif
-
-/******************************************************************************/
-#ifdef SOAP_DEBUG
-static void
-soap_close_logfile(struct soap *soap, int i)
-{ if (soap->fdebug[i])
- { fclose(soap->fdebug[i]);
- soap->fdebug[i] = NULL;
- }
-}
-#endif
-
-/******************************************************************************/
-#ifdef SOAP_DEBUG
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_close_logfiles(struct soap *soap)
-{ int i;
- for (i = 0; i < SOAP_MAXLOGS; i++)
- soap_close_logfile(soap, i);
-}
-#endif
-
-/******************************************************************************/
-#ifdef SOAP_DEBUG
-static void
-soap_set_logfile(struct soap *soap, int i, const char *logfile)
-{ const char *s;
- char *t = NULL;
- soap_close_logfile(soap, i);
- s = soap->logfile[i];
- soap->logfile[i] = logfile;
- if (s)
- SOAP_FREE(soap, (void*)s);
- if (logfile)
- if ((t = (char*)SOAP_MALLOC(soap, strlen(logfile) + 1)))
- strcpy(t, logfile);
- soap->logfile[i] = t;
-}
-#endif
-
-/******************************************************************************/
-#ifdef SOAP_DEBUG
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_set_recv_logfile(struct soap *soap, const char *logfile)
-{ soap_set_logfile(soap, SOAP_INDEX_RECV, logfile);
-}
-#endif
-
-/******************************************************************************/
-#ifdef SOAP_DEBUG
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_set_sent_logfile(struct soap *soap, const char *logfile)
-{ soap_set_logfile(soap, SOAP_INDEX_SENT, logfile);
-}
-#endif
-
-/******************************************************************************/
-#ifdef SOAP_DEBUG
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_set_test_logfile(struct soap *soap, const char *logfile)
-{ soap_set_logfile(soap, SOAP_INDEX_TEST, logfile);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-struct soap*
-SOAP_FMAC2
-soap_copy(const struct soap *soap)
-{ return soap_copy_context((struct soap*)malloc(sizeof(struct soap)), soap);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-struct soap*
-SOAP_FMAC2
-soap_copy_context(struct soap *copy, const struct soap *soap)
-{ if (soap_check_state(soap))
- return NULL;
- if (copy)
- { register struct soap_plugin *p = NULL;
-#ifdef __cplusplus
- *copy = *soap;
-#else
- memcpy(copy, soap, sizeof(struct soap));
-#endif
- copy->state = SOAP_COPY;
- copy->error = SOAP_OK;
- copy->userid = NULL;
- copy->passwd = NULL;
- copy->nlist = NULL;
- copy->blist = NULL;
- copy->clist = NULL;
- copy->alist = NULL;
- copy->attributes = NULL;
- copy->labbuf = NULL;
- copy->lablen = 0;
- copy->labidx = 0;
-#ifdef SOAP_MEM_DEBUG
- soap_init_mht(copy);
-#endif
-#if !defined(WITH_LEAN) || defined(SOAP_DEBUG)
- soap_init_logs(copy);
-#endif
-#ifdef SOAP_DEBUG
- soap_set_test_logfile(copy, soap->logfile[SOAP_INDEX_TEST]);
- soap_set_sent_logfile(copy, soap->logfile[SOAP_INDEX_SENT]);
- soap_set_recv_logfile(copy, soap->logfile[SOAP_INDEX_RECV]);
-#endif
-#ifdef WITH_C_LOCALE
- copy->c_locale = duplocale(soap->c_locale);
-#else
- copy->c_locale = NULL;
-#endif
-#ifdef WITH_OPENSSL
- copy->bio = NULL;
- copy->ssl = NULL;
- copy->session = NULL;
-#endif
-#ifdef WITH_ZLIB
- copy->d_stream = (z_stream*)SOAP_MALLOC(copy, sizeof(z_stream));
- copy->d_stream->zalloc = Z_NULL;
- copy->d_stream->zfree = Z_NULL;
- copy->d_stream->opaque = Z_NULL;
- copy->z_buf = NULL;
-#endif
- copy->local_namespaces = NULL;
-#ifndef WITH_NOIDREF
- soap_init_iht(copy);
- soap_init_pht(copy);
-#endif
- copy->header = NULL;
- copy->fault = NULL;
- copy->action = NULL;
-#ifndef WITH_LEAN
-#ifdef WITH_COOKIES
- copy->cookies = soap_copy_cookies(copy, soap);
-#else
- copy->cookies = NULL;
-#endif
-#endif
- copy->plugins = NULL;
- for (p = soap->plugins; p; p = p->next)
- { register struct soap_plugin *q = (struct soap_plugin*)SOAP_MALLOC(copy, sizeof(struct soap_plugin));
- if (!q)
- return NULL;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Copying plugin '%s'\n", p->id));
- *q = *p;
- if (p->fcopy && p->fcopy(copy, q, p))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Could not copy plugin '%s'\n", p->id));
- SOAP_FREE(copy, q);
- return NULL;
- }
- q->next = copy->plugins;
- copy->plugins = q;
- }
- }
- return copy;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_copy_stream(struct soap *copy, struct soap *soap)
-{ copy->mode = soap->mode;
- copy->imode = soap->imode;
- copy->omode = soap->omode;
- copy->socket = soap->socket;
- copy->recv_timeout = soap->recv_timeout;
- copy->send_timeout = soap->send_timeout;
-#if defined(__cplusplus) && !defined(WITH_LEAN)
- copy->os = soap->os;
- copy->is = soap->is;
-#endif
- copy->sendfd = soap->sendfd;
- copy->recvfd = soap->recvfd;
- copy->bufidx = soap->bufidx;
- copy->buflen = soap->buflen;
- copy->ahead = soap->ahead;
- copy->cdata = soap->cdata;
- copy->chunksize = soap->chunksize;
- copy->chunkbuflen = soap->chunkbuflen;
- copy->keep_alive = soap->keep_alive;
- copy->tcp_keep_alive = soap->tcp_keep_alive;
- copy->tcp_keep_idle = soap->tcp_keep_idle;
- copy->tcp_keep_intvl = soap->tcp_keep_intvl;
- copy->tcp_keep_cnt = soap->tcp_keep_cnt;
- copy->max_keep_alive = soap->max_keep_alive;
-#ifndef WITH_NOIO
- copy->peer = soap->peer;
- copy->peerlen = soap->peerlen;
-#endif
-#ifdef WITH_OPENSSL
- copy->bio = soap->bio;
- copy->ssl = soap->ssl;
- copy->ctx = soap->ctx;
-#endif
-#ifdef WITH_ZLIB
- copy->zlib_state = soap->zlib_state;
- copy->zlib_in = soap->zlib_in;
- copy->zlib_out = soap->zlib_out;
- copy->d_stream = (z_stream*)SOAP_MALLOC(copy, sizeof(z_stream));
- memcpy(copy->d_stream, soap->d_stream, sizeof(z_stream));
- copy->z_crc = soap->z_crc;
- copy->z_ratio_in = soap->z_ratio_in;
- copy->z_ratio_out = soap->z_ratio_out;
- copy->z_buf = NULL;
- copy->z_buflen = soap->z_buflen;
- copy->z_level = soap->z_level;
- if (soap->z_buf && soap->zlib_state != SOAP_ZLIB_NONE)
- { copy->z_buf = (char*)SOAP_MALLOC(copy, SOAP_BUFLEN);
- memcpy(copy->z_buf, soap->z_buf, sizeof(soap->z_buf));
- }
- copy->z_dict = soap->z_dict;
- copy->z_dict_len = soap->z_dict_len;
-#endif
- memcpy(copy->buf, soap->buf, sizeof(soap->buf));
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_free_stream(struct soap *soap)
-{ soap->socket = SOAP_INVALID_SOCKET;
-#ifdef WITH_OPENSSL
- soap->bio = NULL;
- soap->ssl = NULL;
-#endif
-#ifdef WITH_ZLIB
- if (soap->d_stream)
- SOAP_FREE(soap, soap->d_stream);
- soap->d_stream = NULL;
- if (soap->z_buf)
- SOAP_FREE(soap, soap->z_buf);
- soap->z_buf = NULL;
-#endif
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_init(struct soap *soap)
-{ soap->state = SOAP_INIT;
-#ifdef SOAP_MEM_DEBUG
- soap_init_mht(soap);
-#endif
-#if !defined(WITH_LEAN) || defined(SOAP_DEBUG)
- soap_init_logs(soap);
-#endif
-#ifdef SOAP_DEBUG
-/*
- Oracle customization for KMS server debug
-*/
-#ifdef SOAP_DEBUG_SERVER
- soap_set_test_logfile(soap, "/var/log/SUNWkms2/TEST.log");
- soap_set_sent_logfile(soap, "/var/log/SUNWkms2/SENT.log");
- soap_set_recv_logfile(soap, "/var/log/SUNWkms2/RECV.log");
-#else
- soap_set_test_logfile(soap, "TEST.log");
- soap_set_sent_logfile(soap, "SENT.log");
- soap_set_recv_logfile(soap, "RECV.log");
-#endif
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Initializing context\n"));
-#endif
- soap->version = 0;
- soap_imode(soap, SOAP_IO_DEFAULT);
- soap_omode(soap, SOAP_IO_DEFAULT);
- soap->plugins = NULL;
- soap->user = NULL;
- soap->userid = NULL;
- soap->passwd = NULL;
-#ifndef WITH_NOHTTP
- soap->fpost = http_post;
- soap->fget = http_get;
- soap->fput = http_405;
- soap->fdel = http_405;
- soap->fhead = http_405;
- soap->fform = NULL;
- soap->fposthdr = http_post_header;
- soap->fresponse = http_response;
- soap->fparse = http_parse;
- soap->fparsehdr = http_parse_header;
-#endif
- soap->fheader = NULL;
- soap->fconnect = NULL;
- soap->fdisconnect = NULL;
-#ifndef WITH_NOIO
- soap->ipv6_multicast_if = 0;
- soap->ipv4_multicast_if = NULL;
-#ifndef WITH_IPV6
- soap->fresolve = tcp_gethost;
-#else
- soap->fresolve = NULL;
-#endif
- soap->faccept = tcp_accept;
- soap->fopen = tcp_connect;
- soap->fclose = tcp_disconnect;
- soap->fclosesocket = tcp_closesocket;
- soap->fshutdownsocket = tcp_shutdownsocket;
- soap->fsend = fsend;
- soap->frecv = frecv;
- soap->fpoll = soap_poll;
-#else
- soap->fopen = NULL;
- soap->fclose = NULL;
- soap->fpoll = NULL;
-#endif
- soap->fseterror = NULL;
- soap->fignore = NULL;
- soap->fserveloop = NULL;
- soap->fplugin = fplugin;
- soap->fmalloc = NULL;
-#ifndef WITH_LEANER
- soap->fprepareinitsend = NULL;
- soap->fprepareinitrecv = NULL;
- soap->fpreparesend = NULL;
- soap->fpreparerecv = NULL;
- soap->fpreparefinalsend = NULL;
- soap->fpreparefinalrecv = NULL;
- soap->fdimereadopen = NULL;
- soap->fdimewriteopen = NULL;
- soap->fdimereadclose = NULL;
- soap->fdimewriteclose = NULL;
- soap->fdimeread = NULL;
- soap->fdimewrite = NULL;
- soap->fmimereadopen = NULL;
- soap->fmimewriteopen = NULL;
- soap->fmimereadclose = NULL;
- soap->fmimewriteclose = NULL;
- soap->fmimeread = NULL;
- soap->fmimewrite = NULL;
-#endif
- soap->float_format = "%.9G"; /* Alternative: use "%G" */
- soap->double_format = "%.17lG"; /* Alternative: use "%lG" */
- soap->dime_id_format = "cid:id%d"; /* default DIME id format */
- soap->http_version = "1.1";
- soap->proxy_http_version = "1.0";
- soap->http_content = NULL;
- soap->actor = NULL;
- soap->lang = "en";
- soap->keep_alive = 0;
- soap->tcp_keep_alive = 0;
- soap->tcp_keep_idle = 0;
- soap->tcp_keep_intvl = 0;
- soap->tcp_keep_cnt = 0;
- soap->max_keep_alive = SOAP_MAXKEEPALIVE;
- soap->recv_timeout = 0;
- soap->send_timeout = 0;
- soap->connect_timeout = 0;
- soap->accept_timeout = 0;
-#if defined(WITH_OPENSSL) && defined(KMS_SERVER)
- /* Oracle customization for Ultra 2 KMS Server */
- soap->ssl_accept_timeout = 0;
-#endif
- soap->socket_flags = 0;
- soap->connect_flags = 0;
- soap->bind_flags = 0;
- soap->accept_flags = 0;
- soap->linger_time = 0;
- soap->ip = 0;
- soap->labbuf = NULL;
- soap->lablen = 0;
- soap->labidx = 0;
- soap->encodingStyle = SOAP_STR_EOS;
-#ifndef WITH_NONAMESPACES
- soap->namespaces = namespaces;
-#else
- soap->namespaces = NULL;
-#endif
- soap->local_namespaces = NULL;
- soap->nlist = NULL;
- soap->blist = NULL;
- soap->clist = NULL;
- soap->alist = NULL;
- soap->attributes = NULL;
- soap->header = NULL;
- soap->fault = NULL;
- soap->master = SOAP_INVALID_SOCKET;
- soap->socket = SOAP_INVALID_SOCKET;
- soap->os = NULL;
- soap->is = NULL;
-#ifndef WITH_LEANER
- soap->dom = NULL;
- soap->dime.list = NULL;
- soap->dime.first = NULL;
- soap->dime.last = NULL;
- soap->mime.list = NULL;
- soap->mime.first = NULL;
- soap->mime.last = NULL;
- soap->mime.boundary = NULL;
- soap->mime.start = NULL;
- soap->xlist = NULL;
-#endif
-#ifndef UNDER_CE
- soap->recvfd = 0;
- soap->sendfd = 1;
-#else
- soap->recvfd = stdin;
- soap->sendfd = stdout;
-#endif
- soap->host[0] = '\0';
- soap->session_host[0] = '\0'; /* Oracle customization */
- soap->session_port = 0; /* Oracle customization */
- soap->port = 0;
- soap->action = NULL;
- soap->proxy_host = NULL;
- soap->proxy_port = 8080;
- soap->proxy_userid = NULL;
- soap->proxy_passwd = NULL;
- soap->authrealm = NULL;
- soap->prolog = NULL;
-#ifdef WITH_ZLIB
- soap->zlib_state = SOAP_ZLIB_NONE;
- soap->zlib_in = SOAP_ZLIB_NONE;
- soap->zlib_out = SOAP_ZLIB_NONE;
- soap->d_stream = (z_stream*)SOAP_MALLOC(soap, sizeof(z_stream));
- soap->d_stream->zalloc = Z_NULL;
- soap->d_stream->zfree = Z_NULL;
- soap->d_stream->opaque = Z_NULL;
- soap->z_buf = NULL;
- soap->z_level = 6;
- soap->z_dict = NULL;
- soap->z_dict_len = 0;
-#endif
-#ifndef WITH_LEAN
- soap->wsuid = NULL;
- soap->c14nexclude = NULL;
- soap->cookies = NULL;
- soap->cookie_domain = NULL;
- soap->cookie_path = NULL;
- soap->cookie_max = 32;
-#endif
-#ifdef WMW_RPM_IO
- soap->rpmreqid = NULL;
-#endif
-#ifdef PALM
- palmNetLibOpen();
-#endif
-#ifndef WITH_NOIDREF
- soap_init_iht(soap);
- soap_init_pht(soap);
-#endif
-#ifdef WITH_OPENSSL
- if (!soap_ssl_init_done)
- soap_ssl_init();
- soap->fsslauth = ssl_auth_init;
- soap->fsslverify = ssl_verify_callback;
- soap->bio = NULL;
- soap->ssl = NULL;
- soap->ctx = NULL;
- soap->ssl_flags = SOAP_SSL_DEFAULT;
- soap->keyfile = NULL;
- soap->password = NULL;
- soap->dhfile = NULL;
- soap->cafile = NULL;
- soap->capath = NULL;
- soap->crlfile = NULL;
- soap->randfile = NULL;
- soap->session = NULL;
-#endif
-#ifdef WITH_C_LOCALE
- soap->c_locale = newlocale(LC_ALL_MASK, "C", NULL);
-#else
- soap->c_locale = NULL;
-#endif
- soap->buflen = 0;
- soap->bufidx = 0;
-#ifndef WITH_LEANER
- soap->dime.chunksize = 0;
- soap->dime.buflen = 0;
-#endif
- soap->null = 0;
- soap->position = 0;
- soap->encoding = 0;
- soap->mustUnderstand = 0;
- soap->ns = 0;
- soap->part = SOAP_END;
- soap->alloced = 0;
- soap->count = 0;
- soap->length = 0;
- soap->cdata = 0;
- soap->peeked = 0;
- soap->ahead = 0;
- soap->idnum = 0;
- soap->level = 0;
- soap->endpoint[0] = '\0';
- soap->error = SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_init1(struct soap *soap, soap_mode mode)
-{ soap_init2(soap, mode, mode);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_init2(struct soap *soap, soap_mode imode, soap_mode omode)
-{ soap_init(soap);
- soap_imode(soap, imode);
- soap_omode(soap, omode);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_begin(struct soap *soap)
-{ DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Reinitializing context\n"));
- if (!soap->keep_alive)
- { soap->buflen = 0;
- soap->bufidx = 0;
- }
- soap->keep_alive = (((soap->imode | soap->omode) & SOAP_IO_KEEPALIVE) != 0);
- soap->null = 0;
- soap->position = 0;
- soap->encoding = 0;
- soap->mustUnderstand = 0;
- soap->mode = 0;
- soap->ns = 0;
- soap->part = SOAP_END;
- soap->alloced = 0;
- soap->count = 0;
- soap->length = 0;
- soap->cdata = 0;
- soap->error = SOAP_OK;
- soap->peeked = 0;
- soap->ahead = 0;
- soap->idnum = 0;
- soap->level = 0;
- soap->endpoint[0] = '\0';
-#ifndef WITH_LEANER
- soap->dime.chunksize = 0;
- soap->dime.buflen = 0;
-#endif
- soap_free_temp(soap);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_end(struct soap *soap)
-{ if (soap_check_state(soap))
- return;
- soap_free_temp(soap);
- soap_dealloc(soap, NULL);
- while (soap->clist)
- { register struct soap_clist *cp = soap->clist->next;
- SOAP_FREE(soap, soap->clist);
- soap->clist = cp;
- }
- soap_closesock(soap);
-#ifdef SOAP_DEBUG
- soap_close_logfiles(soap);
-#endif
-#ifdef PALM
- palmNetLibClose();
-#endif
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_set_namespaces(struct soap *soap, const struct Namespace *p)
-{ register struct Namespace *ns = soap->local_namespaces;
- register struct soap_nlist *np, *nq, *nr;
- register unsigned int level = soap->level;
- soap->namespaces = p;
- soap->local_namespaces = NULL;
- soap_set_local_namespaces(soap);
- /* reverse the namespace list */
- np = soap->nlist;
- soap->nlist = NULL;
- if (np)
- { nq = np->next;
- np->next = NULL;
- while (nq)
- { nr = nq->next;
- nq->next = np;
- np = nq;
- nq = nr;
- }
- }
- /* then push on new stack */
- while (np)
- { register const char *s;
- soap->level = np->level; /* preserve element nesting level */
- s = np->ns;
- if (!s && np->index >= 0 && ns)
- { s = ns[np->index].out;
- if (!s)
- s = ns[np->index].ns;
- }
- if (s && soap_push_namespace(soap, np->id, s) == NULL)
- return soap->error;
- nq = np;
- np = np->next;
- SOAP_FREE(soap, nq);
- }
- if (ns)
- { register int i;
- for (i = 0; ns[i].id; i++)
- { if (ns[i].out)
- { SOAP_FREE(soap, ns[i].out);
- ns[i].out = NULL;
- }
- }
- SOAP_FREE(soap, ns);
- }
- soap->level = level; /* restore level */
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_set_local_namespaces(struct soap *soap)
-{ if (soap->namespaces && !soap->local_namespaces)
- { register const struct Namespace *ns1;
- register struct Namespace *ns2;
- register size_t n = 1;
- for (ns1 = soap->namespaces; ns1->id; ns1++)
- n++;
- n *= sizeof(struct Namespace);
- ns2 = (struct Namespace*)SOAP_MALLOC(soap, n);
- if (ns2)
- { memcpy(ns2, soap->namespaces, n);
- if (ns2[0].ns)
- { if (!strcmp(ns2[0].ns, soap_env1))
- soap->version = 1;
- else
- soap->version = 2;
- }
- soap->local_namespaces = ns2;
- }
- }
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-#ifndef PALM_1
-SOAP_FMAC1
-const char *
-SOAP_FMAC2
-soap_tagsearch(const char *big, const char *little)
-{ if (little)
- { register size_t n = strlen(little);
- register const char *s = big;
- while (s)
- { register const char *t = s;
- register size_t i;
- for (i = 0; i < n; i++, t++)
- { if (*t != little[i])
- break;
- }
- if (*t == '\0' || *t == ' ')
- { if (i == n || (i && little[i-1] == ':'))
- return s;
- }
- s = strchr(t, ' ');
- if (s)
- s++;
- }
- }
- return NULL;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-#ifndef PALM_1
-SOAP_FMAC1
-struct soap_nlist *
-SOAP_FMAC2
-soap_lookup_ns(struct soap *soap, const char *tag, size_t n)
-{ register struct soap_nlist *np;
- for (np = soap->nlist; np; np = np->next)
- { if (!strncmp(np->id, tag, n) && !np->id[n])
- return np;
- }
- return NULL;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-static struct soap_nlist *
-soap_push_ns(struct soap *soap, const char *id, const char *ns, short utilized)
-{ register struct soap_nlist *np;
- size_t n, k;
- if (soap_tagsearch(soap->c14nexclude, id))
- return NULL;
- if (!utilized)
- { for (np = soap->nlist; np; np = np->next)
- { if (!strcmp(np->id, id) && (!np->ns || !strcmp(np->ns, ns)))
- break;
- }
- if (np)
- { if ((np->level < soap->level || !np->ns) && np->index == 1)
- utilized = 1;
- else
- return NULL;
- }
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Adding namespace binding (level=%u) '%s' '%s' utilized=%d\n", soap->level, id, ns?ns:"(null)", utilized));
- n = strlen(id);
- if (ns)
- k = strlen(ns);
- else
- k = 0;
- np = (struct soap_nlist*)SOAP_MALLOC(soap, sizeof(struct soap_nlist) + n + k + 1);
- if (!np)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- np->next = soap->nlist;
- soap->nlist = np;
- strcpy(np->id, id);
- if (ns)
- np->ns = strcpy(np->id + n + 1, ns);
- else
- np->ns = NULL;
- np->level = soap->level;
- np->index = utilized;
- return np;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-static void
-soap_utilize_ns(struct soap *soap, const char *tag, size_t n)
-{ register struct soap_nlist *np = soap_lookup_ns(soap, tag, n);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Utilizing namespace of '%s'\n", tag));
- if (np)
- { if (np->index == 0)
- soap_push_ns(soap, np->id, np->ns, 1);
- }
- else if (strncmp(tag, "xml", 3))
- { strncpy(soap->tmpbuf, tag, n);
- soap->tmpbuf[n] = '\0';
- soap_push_ns(soap, soap->tmpbuf, NULL, 1);
- }
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_element(struct soap *soap, const char *tag, int id, const char *type)
-{
-#ifndef WITH_LEAN
- register const char *s;
-#endif
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Element begin tag='%s' id='%d' type='%s'\n", tag, id, type?type:SOAP_STR_EOS));
-#ifdef WITH_DOM
-#ifndef WITH_LEAN
- if (soap->wsuid && soap_tagsearch(soap->wsuid, tag))
- { int i;
- for (s = tag, i = 0; *s && i < sizeof(soap->tag); s++, i++)
- soap->tag[i] = *s == ':' ? '-' : *s;
- soap->tag[sizeof(soap->tag) - 1] = '\0';
- if (soap_set_attr(soap, "wsu:Id", soap->tag, 1))
- return soap->error;
- }
-#endif
- if (soap->part == SOAP_BEGIN_SECURITY && (soap->mode & SOAP_XML_CANONICAL) && !(soap->mode & SOAP_DOM_ASIS))
- { register struct soap_nlist *np;
- /* wsu:Id found: clear xmlns renderings, so re-emit them for exc-c14n */
- for (np = soap->nlist; np; np = np->next)
- { if (np->index == 2)
- np->index = 0;
- }
- }
- if (soap->mode & SOAP_XML_DOM)
- { register struct soap_dom_element *elt = (struct soap_dom_element*)soap_malloc(soap, sizeof(struct soap_dom_element));
- if (!elt)
- return soap->error;
- elt->soap = soap;
- elt->next = NULL;
- elt->prnt = soap->dom;
- elt->name = soap_strdup(soap, tag);
- elt->elts = NULL;
- elt->atts = NULL;
- elt->nstr = NULL;
- elt->data = NULL;
- elt->wide = NULL;
- elt->node = NULL;
- elt->type = 0;
- elt->head = NULL;
- elt->tail = NULL;
- if (soap->dom)
- { struct soap_dom_element *p = soap->dom->elts;
- if (p)
- { while (p->next)
- p = p->next;
- p->next = elt;
- }
- else
- soap->dom->elts = elt;
- }
- soap->dom = elt;
- }
- else
- {
-#endif
- soap->level++;
-#ifndef WITH_LEAN
- if (!soap->ns)
- { if (!(soap->mode & SOAP_XML_CANONICAL)
- && soap_send(soap, soap->prolog ? soap->prolog : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"))
- return soap->error;
- }
- else if (soap->mode & SOAP_XML_INDENT)
- { if (soap->ns == 1 && soap_send_raw(soap, soap_indent, soap->level < sizeof(soap_indent) ? soap->level : sizeof(soap_indent) - 1))
- return soap->error;
- soap->body = 1;
- }
- if ((soap->mode & SOAP_XML_DEFAULTNS) && (s = strchr(tag, ':')))
- { struct Namespace *ns = soap->local_namespaces;
- size_t n = s - tag;
- if (soap_send_raw(soap, "<", 1)
- || soap_send(soap, s + 1))
- return soap->error;
- if (soap->nlist && !strncmp(soap->nlist->id, tag, n) && !soap->nlist->id[n])
- ns = NULL;
- for (; ns && ns->id; ns++)
- { if (*ns->id && (ns->out || ns->ns) && !strncmp(ns->id, tag, n) && !ns->id[n])
- { soap_push_ns(soap, ns->id, ns->out ? ns->out : ns->ns, 0);
- if (soap_attribute(soap, "xmlns", ns->out ? ns->out : ns->ns))
- return soap->error;
- break;
- }
- }
- }
- else
-#endif
- if (soap_send_raw(soap, "<", 1)
- || soap_send(soap, tag))
- return soap->error;
-#ifdef WITH_DOM
- }
-#endif
- if (!soap->ns)
- { struct Namespace *ns;
- int k = -1;
-#ifndef WITH_LEAN
- if ((soap->mode & SOAP_XML_DEFAULTNS))
- k = 4; /* only produce the first four required entries */
-#endif
- for (ns = soap->local_namespaces; ns && ns->id && k; ns++, k--)
- { if (*ns->id && (ns->out || ns->ns))
- { sprintf(soap->tmpbuf, "xmlns:%s", ns->id);
- if (soap_attribute(soap, soap->tmpbuf, ns->out ? ns->out : ns->ns))
- return soap->error;
- }
- }
- }
- soap->ns = 1; /* namespace table control: ns = 0 or 2 to start, then 1 to stop dumping the table */
-#ifndef WITH_LEAN
- if (soap->mode & SOAP_XML_CANONICAL)
- { const char *t = strchr(tag, ':');
- if (t)
- soap_utilize_ns(soap, tag, t - tag);
- }
-#endif
- if (id > 0)
- { sprintf(soap->tmpbuf, "_%d", id);
- if (soap_attribute(soap, "id", soap->tmpbuf))
- return soap->error;
- }
- if (type && *type && (!(soap->mode & SOAP_XML_SEC) || soap->part == SOAP_IN_BODY))
- { if (soap_attribute(soap, "xsi:type", type))
- return soap->error;
-#ifndef WITH_LEAN
- if (soap->mode & SOAP_XML_CANONICAL)
- { const char *t = strchr(type, ':');
- if (t)
- soap_utilize_ns(soap, type, t - type);
- }
-#endif
- }
- if (soap->null && soap->position > 0)
- { register int i;
- sprintf(soap->tmpbuf, "[%d", soap->positions[0]);
- for (i = 1; i < soap->position; i++)
- sprintf(soap->tmpbuf + strlen(soap->tmpbuf), ",%d", soap->positions[i]);
- strcat(soap->tmpbuf, "]");
- if (soap_attribute(soap, "SOAP-ENC:position", soap->tmpbuf))
- return soap->error;
- }
- if (soap->mustUnderstand)
- { if (soap->actor && *soap->actor)
- { if (soap_attribute(soap, soap->version == 2 ? "SOAP-ENV:role" : "SOAP-ENV:actor", soap->actor))
- return soap->error;
- }
- if (soap_attribute(soap, "SOAP-ENV:mustUnderstand", soap->version == 2 ? "true" : "1"))
- return soap->error;
- soap->mustUnderstand = 0;
- }
- if (soap->encoding)
- { if (soap->encodingStyle && soap->local_namespaces)
- { if (!*soap->encodingStyle)
- { if (soap->local_namespaces[1].out)
- soap->encodingStyle = soap->local_namespaces[1].out;
- else
- soap->encodingStyle = soap->local_namespaces[1].ns;
- }
- if (soap->encodingStyle && soap_attribute(soap, "SOAP-ENV:encodingStyle", soap->encodingStyle))
- return soap->error;
- }
- soap->encoding = 0;
- }
- soap->null = 0;
- soap->position = 0;
- if (soap->part == SOAP_BEGIN_SECURITY && (soap->mode & SOAP_XML_CANONICAL))
- soap->part = SOAP_IN_SECURITY;
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_element_begin_out(struct soap *soap, const char *tag, int id, const char *type)
-{ if (*tag == '-')
- return SOAP_OK;
- if (soap_element(soap, tag, id, type))
- return soap->error;
- return soap_element_start_end_out(soap, NULL);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-#ifndef HAVE_STRRCHR
-SOAP_FMAC1
-char*
-SOAP_FMAC2
-soap_strrchr(const char *s, int t)
-{ register char *r = NULL;
- while (*s)
- if (*s++ == t)
- r = (char*)s - 1;
- return r;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-#ifndef HAVE_STRTOL
-SOAP_FMAC1
-long
-SOAP_FMAC2
-soap_strtol(const char *s, char **t, int b)
-{ register long n = 0;
- register int c;
- while (*s > 0 && *s <= 32)
- s++;
- if (b == 10)
- { short neg = 0;
- if (*s == '-')
- { s++;
- neg = 1;
- }
- else if (*s == '+')
- s++;
- while ((c = *s) && c >= '0' && c <= '9')
- { if (n >= 214748364 && (n > 214748364 || c >= '8'))
- break;
- n *= 10;
- n += c - '0';
- s++;
- }
- if (neg)
- n = -n;
- }
- else /* assume b == 16 and value is always positive */
- { while ((c = *s))
- { if (c >= '0' && c <= '9')
- c -= '0';
- else if (c >= 'A' && c <= 'F')
- c -= 'A' - 10;
- else if (c >= 'a' && c <= 'f')
- c -= 'a' - 10;
- if (n > 0x07FFFFFF)
- break;
- n <<= 4;
- n += c;
- s++;
- }
- }
- if (t)
- *t = (char*)s;
- return n;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-#ifndef HAVE_STRTOUL
-SOAP_FMAC1
-unsigned long
-SOAP_FMAC2
-soap_strtoul(const char *s, char **t, int b)
-{ unsigned long n = 0;
- register int c;
- while (*s > 0 && *s <= 32)
- s++;
- if (b == 10)
- { if (*s == '+')
- s++;
- while ((c = *s) && c >= '0' && c <= '9')
- { if (n >= 429496729 && (n > 429496729 || c >= '6'))
- break;
- n *= 10;
- n += c - '0';
- s++;
- }
- }
- else /* b == 16 */
- { while ((c = *s))
- { if (c >= '0' && c <= '9')
- c -= '0';
- else if (c >= 'A' && c <= 'F')
- c -= 'A' - 10;
- else if (c >= 'a' && c <= 'f')
- c -= 'a' - 10;
- if (n > 0x0FFFFFFF)
- break;
- n <<= 4;
- n += c;
- s++;
- }
- }
- if (t)
- *t = (char*)s;
- return n;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_array_begin_out(struct soap *soap, const char *tag, int id, const char *type, const char *offset)
-{ if (!type || !*type)
- return soap_element_begin_out(soap, tag, id, NULL);
- if (soap_element(soap, tag, id, "SOAP-ENC:Array"))
- return soap->error;
- if (soap->version == 2)
- { const char *s;
- s = soap_strrchr(type, '[');
- if ((size_t)(s - type) < sizeof(soap->tmpbuf))
- { strncpy(soap->tmpbuf, type, s - type);
- soap->tmpbuf[s - type] = '\0';
- if (soap_attribute(soap, "SOAP-ENC:itemType", soap->tmpbuf))
- return soap->error;
- if (s && (soap_attribute(soap, "SOAP-ENC:arraySize", s + 1)))
- return soap->error;
- }
- }
- else
- { if (offset && soap_attribute(soap, "SOAP-ENC:offset", offset))
- return soap->error;
- if (soap_attribute(soap, "SOAP-ENC:arrayType", type))
- return soap->error;
- }
-#ifndef WITH_LEAN
- if ((soap->mode & SOAP_XML_CANONICAL))
- { const char *s = strchr(type, ':');
- if (s)
- soap_utilize_ns(soap, type, s - type);
- }
-#endif
- return soap_element_start_end_out(soap, NULL);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_element_start_end_out(struct soap *soap, const char *tag)
-{ register struct soap_attribute *tp;
-#ifndef WITH_LEAN
- if (soap->mode & SOAP_XML_CANONICAL)
- { struct soap_nlist *np;
- for (tp = soap->attributes; tp; tp = tp->next)
- { if (tp->visible && tp->name)
- { const char *s = strchr(tp->name, ':');
- if (s)
- soap_utilize_ns(soap, tp->name, s - tp->name);
- }
- }
- for (np = soap->nlist; np; np = np->next)
- { if (np->index == 1 && np->ns)
- { sprintf(soap->tmpbuf, "xmlns:%s", np->id);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Enabling utilized binding (level=%u) %s='%s'\n", np->level, soap->tmpbuf, np->ns));
- soap_set_attr(soap, soap->tmpbuf, np->ns, 1);
- np->index = 2;
- }
- }
- }
-#endif
-#ifdef WITH_DOM
- if ((soap->mode & SOAP_XML_DOM) && soap->dom)
- { register struct soap_dom_attribute **att;
- att = &soap->dom->atts;
- for (tp = soap->attributes; tp; tp = tp->next)
- { if (tp->visible)
- { *att = (struct soap_dom_attribute*)soap_malloc(soap, sizeof(struct soap_dom_attribute));
- if (!*att)
- return soap->error;
- (*att)->next = NULL;
- (*att)->nstr = NULL;
- (*att)->name = soap_strdup(soap, tp->name);
- (*att)->data = soap_strdup(soap, tp->value);
- (*att)->wide = NULL;
- (*att)->soap = soap;
- att = &(*att)->next;
- tp->visible = 0;
- }
- }
- return SOAP_OK;
- }
-#endif
- for (tp = soap->attributes; tp; tp = tp->next)
- { if (tp->visible)
- {
-#ifndef WITH_LEAN
- const char *s;
- if ((soap->mode & SOAP_XML_DEFAULTNS) && (s = strchr(tp->name, ':')))
- { size_t n = s - tp->name;
- if (soap->nlist && !strncmp(soap->nlist->id, tp->name, n) && !soap->nlist->id[n])
- s++;
- else
- s = tp->name;
- if (soap_send(soap, " ") || soap_send(soap, s))
- return soap->error;
- }
- else
-#endif
- if (soap_send(soap, " ") || soap_send(soap, tp->name))
- return soap->error;
- if (tp->visible == 2 && tp->value)
- if (soap_send_raw(soap, "=\"", 2)
- || soap_string_out(soap, tp->value, tp->flag)
- || soap_send_raw(soap, "\"", 1))
- return soap->error;
- tp->visible = 0;
- }
- }
- if (tag)
- {
-#ifndef WITH_LEAN
- if (soap->mode & SOAP_XML_CANONICAL)
- { if (soap_send_raw(soap, ">", 1)
- || soap_element_end_out(soap, tag))
- return soap->error;
- return SOAP_OK;
- }
-#endif
- soap->level--; /* decrement level just before /> */
- if (soap_send_raw(soap, "/>", 2))
- return soap->error;
- return SOAP_OK;
- }
- return soap_send_raw(soap, ">", 1);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_element_end_out(struct soap *soap, const char *tag)
-{
-#ifndef WITH_LEAN
- const char *s;
-#endif
- if (*tag == '-')
- return SOAP_OK;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Element ending tag='%s'\n", tag));
-#ifdef WITH_DOM
- if ((soap->mode & SOAP_XML_DOM) && soap->dom)
- { if (soap->dom->prnt)
- soap->dom = soap->dom->prnt;
- return SOAP_OK;
- }
-#endif
-#ifndef WITH_LEAN
- if (soap->mode & SOAP_XML_CANONICAL)
- soap_pop_namespace(soap);
- if (soap->mode & SOAP_XML_INDENT)
- { if (!soap->body)
- { if (soap_send_raw(soap, soap_indent, soap->level < sizeof(soap_indent) ? soap->level : sizeof(soap_indent) - 1))
- return soap->error;
- }
- soap->body = 0;
- }
- if ((soap->mode & SOAP_XML_DEFAULTNS) && (s = strchr(tag, ':')))
- { soap_pop_namespace(soap);
- tag = s + 1;
- }
-#endif
- if (soap_send_raw(soap, "</", 2)
- || soap_send(soap, tag))
- return soap->error;
- soap->level--; /* decrement level just before > */
- return soap_send_raw(soap, ">", 1);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_element_ref(struct soap *soap, const char *tag, int id, int href)
-{ register int n = 0;
- const char *s = "href";
- if (soap->version == 2)
- { s = "SOAP-ENC:ref";
- n = 1;
- }
- sprintf(soap->href, "#_%d", href);
- return soap_element_href(soap, tag, id, s, soap->href + n);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_element_href(struct soap *soap, const char *tag, int id, const char *ref, const char *val)
-{ DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Element '%s' reference %s='%s'\n", tag, ref, val));
- if (soap_element(soap, tag, id, NULL)
- || soap_attribute(soap, ref, val)
- || soap_element_start_end_out(soap, tag))
- return soap->error;
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_element_null(struct soap *soap, const char *tag, int id, const char *type)
-{ struct soap_attribute *tp;
- for (tp = soap->attributes; tp; tp = tp->next)
- if (tp->visible)
- break;
- if (tp || (soap->version == 2 && soap->position > 0) || id > 0 || (soap->mode & SOAP_XML_NIL))
- { if (soap_element(soap, tag, id, type))
- return soap->error;
- if (!tp && soap_attribute(soap, "xsi:nil", "true"))
- return soap->error;
- return soap_element_start_end_out(soap, tag);
- }
- soap->null = 1;
- soap->position = 0;
- soap->mustUnderstand = 0;
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_element_id(struct soap *soap, const char *tag, int id, const void *p, const struct soap_array *a, int n, const char *type, int t)
-{ if (!p)
- { soap_element_null(soap, tag, id, type);
- return -1;
- }
-#ifndef WITH_NOIDREF
- if (soap->mode & SOAP_XML_TREE)
- return 0;
- if (id < 0)
- { struct soap_plist *pp;
- if (a)
- id = soap_array_pointer_lookup(soap, p, a, n, t, &pp);
- else
- id = soap_pointer_lookup(soap, p, t, &pp);
- if (id)
- { if (soap_is_embedded(soap, pp))
- { soap_element_ref(soap, tag, 0, id);
- return -1;
- }
- if (soap_is_single(soap, pp))
- return 0;
- soap_set_embedded(soap, pp);
- }
- }
- return id;
-#else
- return 0;
-#endif
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_element_result(struct soap *soap, const char *tag)
-{ if (soap->version == 2 && soap->encodingStyle)
- { if (soap_element(soap, "SOAP-RPC:result", 0, NULL)
- || soap_attribute(soap, "xmlns:SOAP-RPC", soap_rpc)
- || soap_element_start_end_out(soap, NULL)
- || soap_string_out(soap, tag, 0)
- || soap_element_end_out(soap, "SOAP-RPC:result"))
- return soap->error;
- }
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_check_result(struct soap *soap, const char *tag)
-{ if (soap->version == 2 && soap->encodingStyle)
- { soap_instring(soap, ":result", NULL, NULL, 0, 2, -1, -1);
- /* just ignore content for compliance reasons, but should compare tag to element's QName value? */
- }
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_attribute(struct soap *soap, const char *name, const char *value)
-{
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Attribute '%s'='%s'\n", name, value));
-#ifdef WITH_DOM
- if ((soap->mode & SOAP_XML_DOM) && !(soap->mode & SOAP_XML_CANONICAL) && soap->dom)
- { register struct soap_dom_attribute *a = (struct soap_dom_attribute*)soap_malloc(soap, sizeof(struct soap_dom_attribute));
- if (!a)
- return soap->error;
- a->next = soap->dom->atts;
- a->nstr = NULL;
- a->name = soap_strdup(soap, name);
- a->data = soap_strdup(soap, value);
- a->wide = NULL;
- a->soap = soap;
- soap->dom->atts = a;
- return SOAP_OK;
- }
-#endif
-#ifndef WITH_LEAN
- if (soap->mode & SOAP_XML_CANONICAL)
- { /* TODO: consider using this code to handle default namespace bindings
- if (!strncmp(name, "xmlns", 5) && (name[5] == ':' || name[5] == '\0'))
- { if (name[5] == ':')
- soap_push_ns(soap, name + 6, value, 0);
- else
- soap_push_ns(soap, "", value, 0);
- }
- */
- if (!strncmp(name, "xmlns:", 6))
- soap_push_ns(soap, name + 6, value, 0);
- else if (soap_set_attr(soap, name, value, 1))
- return soap->error;
- }
- else
-#endif
- { if (soap_send(soap, " ") || soap_send(soap, name))
- return soap->error;
- if (value)
- if (soap_send_raw(soap, "=\"", 2)
- || soap_string_out(soap, value, 1)
- || soap_send_raw(soap, "\"", 1))
- return soap->error;
- }
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_element_begin_in(struct soap *soap, const char *tag, int nillable, const char *type)
-{ if (!soap_peek_element(soap))
- { if (soap->other)
- return soap->error = SOAP_TAG_MISMATCH;
- if (tag && *tag == '-')
- return SOAP_OK;
- if (!(soap->error = soap_match_tag(soap, soap->tag, tag)))
- { soap->peeked = 0;
- if (type && *soap->type && soap_match_tag(soap, soap->type, type))
- return soap->error = SOAP_TYPE;
- if (!nillable && soap->null && (soap->mode & SOAP_XML_STRICT))
- return soap->error = SOAP_NULL;
- if (soap->body)
- soap->level++;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Begin element found (level=%u) '%s'='%s'\n", soap->level, soap->tag, tag?tag:SOAP_STR_EOS ));
- }
- }
- else if (soap->error == SOAP_NO_TAG && tag && *tag == '-')
- soap->error = SOAP_OK;
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_element_end_in(struct soap *soap, const char *tag)
-{ register soap_wchar c;
- register char *s;
- register int n = 0;
- if (tag && *tag == '-')
- return SOAP_OK;
- if (soap->error == SOAP_NO_TAG)
- soap->error = SOAP_OK;
-#ifdef WITH_DOM
- /* this whitespace or mixed content is not insignificant for DOM */
- if ((soap->mode & SOAP_XML_DOM) && soap->dom)
- { if (!soap->peeked && !soap_string_in(soap, 3, -1, -1))
- return soap->error;
- if (soap->dom->prnt)
- soap->dom = soap->dom->prnt;
- }
-#endif
- if (soap->peeked)
- { if (*soap->tag)
- n++;
- soap->peeked = 0;
- }
- do
- { while (((c = soap_get(soap)) != SOAP_TT))
- { if ((int)c == EOF)
- return soap->error = SOAP_EOF;
- if (c == SOAP_LT)
- n++;
- else if (c == '/')
- { c = soap_get(soap);
- if (c == SOAP_GT)
- n--;
- else
- soap_unget(soap, c);
- }
- }
- } while (n--);
- s = soap->tag;
- n = sizeof(soap->tag);
- while (soap_notblank(c = soap_get(soap)))
- { if (--n > 0)
- *s++ = (char)c;
- }
- *s = '\0';
- if ((int)c == EOF)
- return soap->error = SOAP_EOF;
- while (soap_blank(c))
- c = soap_get(soap);
- if (c != SOAP_GT)
- return soap->error = SOAP_SYNTAX_ERROR;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "End element found (level=%u) '%s'='%s'\n", soap->level, soap->tag, tag?tag:SOAP_STR_EOS));
-#ifndef WITH_LEAN
- if (tag && (soap->mode & SOAP_XML_STRICT))
- { soap_pop_namespace(soap);
- if (soap_match_tag(soap, soap->tag, tag))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "End element tag name does not match\n"));
- return soap->error = SOAP_SYNTAX_ERROR;
- }
- }
-#endif
- soap->level--;
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-const char *
-SOAP_FMAC2
-soap_attr_value(struct soap *soap, const char *name, int flag)
-{ register struct soap_attribute *tp;
- if (*name == '-')
- return SOAP_STR_EOS;
- for (tp = soap->attributes; tp; tp = tp->next)
- { if (tp->visible && !soap_match_tag(soap, tp->name, name))
- break;
- }
- if (tp)
- { if (flag == 2 && (soap->mode & SOAP_XML_STRICT))
- soap->error = SOAP_PROHIBITED;
- else
- return tp->value;
- }
- else if (flag == 1 && (soap->mode & SOAP_XML_STRICT))
- soap->error = SOAP_REQUIRED;
- else
- soap->error = SOAP_OK;
- return NULL;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_set_attr(struct soap *soap, const char *name, const char *value, int flag)
-{ register struct soap_attribute *tp;
- if (*name == '-')
- return SOAP_OK;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Set attribute %s='%s'\n", name, value?value:SOAP_STR_EOS));
- for (tp = soap->attributes; tp; tp = tp->next)
- { if (!strcmp(tp->name, name))
- break;
- }
- if (!tp)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Allocate attribute %s\n", name));
- if (!(tp = (struct soap_attribute*)SOAP_MALLOC(soap, sizeof(struct soap_attribute) + strlen(name))))
- return soap->error = SOAP_EOM;
- tp->ns = NULL;
-#ifndef WITH_LEAN
- if ((soap->mode & SOAP_XML_CANONICAL))
- { struct soap_attribute **tpp = &soap->attributes;
- const char *s = strchr(name, ':');
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Inserting attribute %s for c14n\n", name))
- if (!strncmp(name, "xmlns", 5))
- { for (; *tpp; tpp = &(*tpp)->next)
- if (strncmp((*tpp)->name, "xmlns", 5) || strcmp((*tpp)->name + 5, name + 5) > 0)
- break;
- }
- else if (!s)
- { for (; *tpp; tpp = &(*tpp)->next)
- if (strncmp((*tpp)->name, "xmlns", 5) && ((*tpp)->ns || strcmp((*tpp)->name, name) > 0))
- break;
- }
- else
- { int k;
- for (; *tpp; tpp = &(*tpp)->next)
- { if (!strncmp((*tpp)->name, "xmlns:", 6) && !strncmp((*tpp)->name + 6, name, s - name) && !(*tpp)->name[6 + s - name])
- { if (!tp->ns)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Canonicalization: prefix %s=%p (%s)\n", name, (*tpp)->ns, (*tpp)->ns));
- tp->ns = (*tpp)->ns;
- }
- }
- else if (strncmp((*tpp)->name, "xmlns", 5) && (*tpp)->ns && tp->ns && ((k = strcmp((*tpp)->ns, tp->ns)) > 0 || (!k && strcmp((*tpp)->name, name) > 0)))
- break;
- }
- }
- tp->next = *tpp;
- *tpp = tp;
- }
- else
-#endif
- { tp->next = soap->attributes;
- soap->attributes = tp;
- }
- strcpy(tp->name, name);
- tp->value = NULL;
- }
- else if (tp->visible)
- { return SOAP_OK;
- }
- else if (value && tp->value && tp->size <= strlen(value))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Free attribute value of %s (free %p)\n", name, tp->value));
- SOAP_FREE(soap, tp->value);
- tp->value = NULL;
- tp->ns = NULL;
- }
- if (value)
- { if (!tp->value)
- { tp->size = strlen(value) + 1;
- if (!(tp->value = (char*)SOAP_MALLOC(soap, tp->size)))
- return soap->error = SOAP_EOM;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Allocate attribute value for %s (%p)\n", tp->name, tp->value));
- }
- strcpy(tp->value, value);
- if (!strncmp(tp->name, "xmlns:", 6))
- tp->ns = tp->value;
- tp->visible = 2;
- tp->flag = flag;
-#ifndef WITH_LEAN
- if (soap->part != SOAP_IN_SECURITY && !strcmp(name, "wsu:Id"))
- { soap->part = SOAP_BEGIN_SECURITY;
- strncpy(soap->id, value, sizeof(soap->id));
- soap->id[sizeof(soap->id)-1] = '\0';
- }
-#endif
- }
- else
- tp->visible = 1;
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_clr_attr(struct soap *soap)
-{ register struct soap_attribute *tp;
-#ifndef WITH_LEAN
- if ((soap->mode & SOAP_XML_CANONICAL))
- { while (soap->attributes)
- { tp = soap->attributes->next;
- if (soap->attributes->value)
- SOAP_FREE(soap, soap->attributes->value);
- SOAP_FREE(soap, soap->attributes);
- soap->attributes = tp;
- }
- }
- else
-#endif
- { for (tp = soap->attributes; tp; tp = tp->next)
- tp->visible = 0;
- }
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-static int
-soap_getattrval(struct soap *soap, char *s, size_t n, soap_wchar d)
-{ register size_t i;
- for (i = 0; i < n; i++)
- { register soap_wchar c = soap_get(soap);
- switch (c)
- {
- case SOAP_TT:
- *s++ = '<';
- soap_unget(soap, '/');
- break;
- case SOAP_LT:
- *s++ = '<';
- break;
- case SOAP_GT:
- if (d == ' ')
- { soap_unget(soap, c);
- *s = '\0';
- return SOAP_OK;
- }
- *s++ = '>';
- break;
- case SOAP_QT:
- if (c == d)
- { *s = '\0';
- return SOAP_OK;
- }
- *s++ = '"';
- break;
- case SOAP_AP:
- if (c == d)
- { *s = '\0';
- return SOAP_OK;
- }
- *s++ = '\'';
- break;
- case '\t':
- case '\n':
- case '\r':
- case ' ':
- case '/':
- if (d == ' ')
- { soap_unget(soap, c);
- *s = '\0';
- return SOAP_OK;
- }
- default:
- if ((int)c == EOF)
- return soap->error = SOAP_EOF;
- *s++ = (char)c;
- }
- }
- return soap->error = SOAP_EOM;
-}
-#endif
-
-/******************************************************************************/
-#ifdef WITH_FAST
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_store_lab(struct soap *soap, const char *s, size_t n)
-{ soap->labidx = 0;
- return soap_append_lab(soap, s, n);
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifdef WITH_FAST
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_append_lab(struct soap *soap, const char *s, size_t n)
-{ if (soap->labidx + n >= soap->lablen)
- { register char *t = soap->labbuf;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Enlarging look-aside buffer to append data, old size=%lu", (unsigned long)soap->lablen));
- if (soap->lablen == 0)
- soap->lablen = SOAP_LABLEN;
- while (soap->labidx + n >= soap->lablen)
- soap->lablen <<= 1;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, ", new size=%lu\n", (unsigned long)soap->lablen));
- soap->labbuf = (char*)SOAP_MALLOC(soap, soap->lablen);
- if (!soap->labbuf)
- { if (t)
- SOAP_FREE(soap, t);
- return soap->error = SOAP_EOM;
- }
- if (t)
- { memcpy(soap->labbuf, t, soap->labidx);
- SOAP_FREE(soap, t);
- }
- }
- if (s)
- { memcpy(soap->labbuf + soap->labidx, s, n);
- soap->labidx += n;
- }
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_peek_element(struct soap *soap)
-{
-#ifdef WITH_DOM
- register struct soap_dom_attribute **att = NULL;
- register char *lead = NULL;
-#endif
- register struct soap_attribute *tp, *tq = NULL;
- register const char *t;
- register char *s;
- register soap_wchar c;
- register int i;
- if (soap->peeked)
- { if (!*soap->tag)
- return soap->error = SOAP_NO_TAG;
- return SOAP_OK;
- }
- soap->peeked = 1;
- soap->id[0] = '\0';
- soap->href[0] = '\0';
- soap->type[0] = '\0';
- soap->arrayType[0] = '\0';
- soap->arraySize[0] = '\0';
- soap->arrayOffset[0] = '\0';
- soap->other = 0;
- soap->root = -1;
- soap->position = 0;
- soap->null = 0;
- soap->mustUnderstand = 0;
- /* skip BOM */
- if ((c = soap_getchar(soap)) != 0xEF || (c = soap_get1(soap)) != 0xBB || (c = soap_get1(soap)) != 0xBF)
- soap_unget(soap, c);
- c = soap_get(soap);
-#ifdef WITH_DOM
- /* whitespace leading to start tag is not insignificant for DOM */
- if (soap_blank(c))
- { soap->labidx = 0;
- do
- { if (soap_append_lab(soap, NULL, 0))
- return soap->error;
- s = soap->labbuf + soap->labidx;
- i = soap->lablen - soap->labidx;
- soap->labidx = soap->lablen;
- while (soap_blank(c) && i--)
- { *s++ = c;
- c = soap_get(soap);
- }
- }
- while (soap_blank(c));
- *s = '\0';
- if (*soap->labbuf)
- lead = soap->labbuf;
- }
-#else
- /* skip space */
- while (soap_blank(c))
- c = soap_get(soap);
-#endif
- if (c != SOAP_LT)
- { *soap->tag = '\0';
- if ((int)c == EOF)
- return soap->error = SOAP_EOF;
- soap_unget(soap, c);
-#ifdef WITH_DOM
- /* whitespace leading to end tag is not insignificant for DOM */
- if ((soap->mode & SOAP_XML_DOM) && soap->dom)
- soap->dom->tail = soap_strdup(soap, lead);
-#endif
- return soap->error = SOAP_NO_TAG;
- }
- s = soap->tag;
- do c = soap_get1(soap);
- while (soap_blank(c));
- i = sizeof(soap->tag);
- while (c != '>' && c != '/' && soap_notblank(c) && (int)c != EOF)
- { if (--i > 0)
- *s++ = (char)c;
- c = soap_get1(soap);
- }
- while (soap_blank(c))
- c = soap_get1(soap);
- *s = '\0';
-#ifdef WITH_DOM
- if (soap->mode & SOAP_XML_DOM)
- { register struct soap_dom_element *elt;
- elt = (struct soap_dom_element*)soap_malloc(soap, sizeof(struct soap_dom_element));
- if (!elt)
- return soap->error;
- elt->next = NULL;
- elt->nstr = NULL;
- elt->name = soap_strdup(soap, soap->tag);
- elt->prnt = soap->dom;
- elt->elts = NULL;
- elt->atts = NULL;
- elt->data = NULL;
- elt->wide = NULL;
- elt->type = 0;
- elt->node = NULL;
- elt->head = soap_strdup(soap, lead);
- elt->tail = NULL;
- elt->soap = soap;
- if (soap->dom)
- { struct soap_dom_element *p = soap->dom->elts;
- if (p)
- { while (p->next)
- p = p->next;
- p->next = elt;
- }
- else
- soap->dom->elts = elt;
- }
- soap->dom = elt;
- att = &elt->atts;
- }
-#endif
- soap_pop_namespace(soap);
- for (tp = soap->attributes; tp; tp = tp->next)
- tp->visible = 0;
- while ((int)c != EOF && c != '>' && c != '/')
- { s = soap->tmpbuf;
- i = sizeof(soap->tmpbuf);
- while (c != '=' && c != '>' && c != '/' && soap_notblank(c) && (int)c != EOF)
- { if (--i > 0)
- *s++ = (char)c;
- c = soap_get1(soap);
- }
- *s = '\0';
- if (i == sizeof(soap->tmpbuf))
- return soap->error = SOAP_SYNTAX_ERROR;
-#ifdef WITH_DOM
- /* add attribute name to dom */
- if (att)
- { *att = (struct soap_dom_attribute*)soap_malloc(soap, sizeof(struct soap_dom_attribute));
- if (!*att)
- return soap->error;
- (*att)->next = NULL;
- (*att)->nstr = NULL;
- (*att)->name = soap_strdup(soap, soap->tmpbuf);
- (*att)->data = NULL;
- (*att)->wide = NULL;
- (*att)->soap = soap;
- }
-#endif
- if (!strncmp(soap->tmpbuf, "xmlns", 5))
- { if (soap->tmpbuf[5] == ':')
- t = soap->tmpbuf + 6;
- else if (soap->tmpbuf[5])
- t = NULL;
- else
- t = SOAP_STR_EOS;
- }
- else
- t = NULL;
- tq = NULL;
- for (tp = soap->attributes; tp; tq = tp, tp = tp->next)
- { if (!SOAP_STRCMP(tp->name, soap->tmpbuf))
- break;
- }
- if (!tp)
- { tp = (struct soap_attribute*)SOAP_MALLOC(soap, sizeof(struct soap_attribute) + strlen(soap->tmpbuf));
- if (!tp)
- return soap->error = SOAP_EOM;
- strcpy(tp->name, soap->tmpbuf);
- tp->value = NULL;
- tp->size = 0;
- /* if attribute name is qualified, append it to the end of the list */
- if (tq && strchr(soap->tmpbuf, ':'))
- { tq->next = tp;
- tp->next = NULL;
- }
- else
- { tp->next = soap->attributes;
- soap->attributes = tp;
- }
- }
- while (soap_blank(c))
- c = soap_get1(soap);
- if (c == '=')
- { do c = soap_getutf8(soap);
- while (soap_blank(c));
- if (c != SOAP_QT && c != SOAP_AP)
- { soap_unget(soap, c);
- c = ' '; /* blank delimiter */
- }
- if (soap_getattrval(soap, tp->value, tp->size, c))
- {
-#ifdef WITH_FAST
- if (soap->error != SOAP_EOM)
- return soap->error;
- soap->error = SOAP_OK;
- if (soap_store_lab(soap, tp->value, tp->size))
- return soap->error;
- if (tp->value)
- SOAP_FREE(soap, tp->value);
- for (;;)
- { if (soap_getattrval(soap, soap->labbuf + soap->labidx, soap->lablen - soap->labidx, c))
- { if (soap->error != SOAP_EOM)
- return soap->error;
- soap->error = SOAP_OK;
- soap->labidx = soap->lablen;
- if (soap_append_lab(soap, NULL, 0))
- return soap->error;
- }
- else
- break;
- }
- if (soap->labidx)
- tp->size = soap->lablen;
- else
- { tp->size = strlen(soap->labbuf) + 1;
- if (tp->size < SOAP_LABLEN)
- tp->size = SOAP_LABLEN;
- }
- if (!(tp->value = (char*)SOAP_MALLOC(soap, tp->size)))
- return soap->error = SOAP_EOM;
- strcpy(tp->value, soap->labbuf);
-#else
- size_t n;
- if (soap->error != SOAP_EOM)
- return soap->error;
- soap->error = SOAP_OK;
- if (soap_new_block(soap) == NULL)
- return soap->error;
- for (;;)
- { if (!(s = (char*)soap_push_block(soap, NULL, SOAP_BLKLEN)))
- return soap->error;
- if (soap_getattrval(soap, s, SOAP_BLKLEN, c))
- { if (soap->error != SOAP_EOM)
- return soap->error;
- soap->error = SOAP_OK;
- }
- else
- break;
- }
- n = tp->size + soap->blist->size;
- if (!(s = (char*)SOAP_MALLOC(soap, n)))
- return soap->error = SOAP_EOM;
- if (tp->value)
- { memcpy(s, tp->value, tp->size);
- SOAP_FREE(soap, tp->value);
- }
- soap_save_block(soap, NULL, s + tp->size, 0);
- tp->value = s;
- tp->size = n;
-#endif
- }
- do c = soap_get1(soap);
- while (soap_blank(c));
- tp->visible = 2; /* seen this attribute w/ value */
-#ifdef WITH_DOM
- if (att)
- (*att)->data = soap_strdup(soap, tp->value);
-#endif
- }
- else
- tp->visible = 1; /* seen this attribute w/o value */
-#ifdef WITH_DOM
- if (att)
- att = &(*att)->next;
-#endif
- if (t && tp->value)
- { if (soap_push_namespace(soap, t, tp->value) == NULL)
- return soap->error;
- }
- }
-#ifdef WITH_DOM
- if (att)
- { soap->dom->nstr = soap_current_namespace(soap, soap->tag);
- for (att = &soap->dom->atts; *att; att = &(*att)->next)
- (*att)->nstr = soap_current_namespace(soap, (*att)->name);
- }
-#endif
- if ((int)c == EOF)
- return soap->error = SOAP_EOF;
- if (!(soap->body = (c != '/')))
- do c = soap_get1(soap);
- while (soap_blank(c));
-#ifdef WITH_DOM
- if (soap->mode & SOAP_XML_DOM)
- { if (!soap->body && soap->dom->prnt)
- soap->dom = soap->dom->prnt;
- }
-#endif
- for (tp = soap->attributes; tp; tp = tp->next)
- { if (tp->visible && tp->value)
- {
-#ifndef WITH_NOIDREF
- if (!strcmp(tp->name, "id"))
- { if ((soap->version > 0 && !(soap->mode & SOAP_XML_TREE))
- || (soap->mode & SOAP_XML_GRAPH))
- { *soap->id = '#';
- strncpy(soap->id + 1, tp->value, sizeof(soap->id) - 2);
- soap->id[sizeof(soap->id)-1] = '\0';
- }
- }
- else if (!strcmp(tp->name, "href"))
- { if (soap->version == 1
- || (soap->mode & SOAP_XML_GRAPH)
- || (soap->mode & SOAP_ENC_MTOM)
- || (soap->mode & SOAP_ENC_DIME))
- { strncpy(soap->href, tp->value, sizeof(soap->href) - 1);
- soap->href[sizeof(soap->href)-1] = '\0';
- }
- }
- else
-#endif
- if (!soap_match_tag(soap, tp->name, "xsi:type"))
- { strncpy(soap->type, tp->value, sizeof(soap->type) - 1);
- soap->type[sizeof(soap->type)-1] = '\0';
- }
- else if ((!soap_match_tag(soap, tp->name, "xsi:null")
- || !soap_match_tag(soap, tp->name, "xsi:nil"))
- && (!strcmp(tp->value, "1")
- || !strcmp(tp->value, "true")))
- { soap->null = 1;
- }
- else if (soap->version == 1)
- { if (!soap_match_tag(soap, tp->name, "SOAP-ENC:arrayType"))
- { s = soap_strrchr(tp->value, '[');
- if (s && (size_t)(s - tp->value) < sizeof(soap->arrayType))
- { strncpy(soap->arrayType, tp->value, s - tp->value);
- soap->arrayType[s - tp->value] = '\0';
- strncpy(soap->arraySize, s, sizeof(soap->arraySize) - 1);
- }
- else
- strncpy(soap->arrayType, tp->value, sizeof(soap->arrayType) - 1);
- soap->arraySize[sizeof(soap->arrayType)-1] = '\0';
- soap->arrayType[sizeof(soap->arrayType)-1] = '\0';
- }
- else if (!soap_match_tag(soap, tp->name, "SOAP-ENC:offset"))
- strncpy(soap->arrayOffset, tp->value, sizeof(soap->arrayOffset));
- else if (!soap_match_tag(soap, tp->name, "SOAP-ENC:position"))
- soap->position = soap_getposition(tp->value, soap->positions);
- else if (!soap_match_tag(soap, tp->name, "SOAP-ENC:root"))
- soap->root = ((!strcmp(tp->value, "1") || !strcmp(tp->value, "true")));
- else if (!soap_match_tag(soap, tp->name, "SOAP-ENV:mustUnderstand")
- && (!strcmp(tp->value, "1") || !strcmp(tp->value, "true")))
- soap->mustUnderstand = 1;
- else if (!soap_match_tag(soap, tp->name, "SOAP-ENV:actor"))
- { if ((!soap->actor || strcmp(soap->actor, tp->value))
- && strcmp(tp->value, "http://schemas.xmlsoap.org/soap/actor/next"))
- soap->other = 1;
- }
- }
- else if (soap->version == 2)
- {
-#ifndef WITH_NOIDREF
- if (!strcmp(tp->name, "ref")
- || !soap_match_tag(soap, tp->name, "SOAP-ENC:ref"))
- { *soap->href = '#';
- strncpy(soap->href + 1, tp->value, sizeof(soap->href) - 2);
- soap->href[sizeof(soap->href)-1] = '\0';
- }
- else
-#endif
- if (!soap_match_tag(soap, tp->name, "SOAP-ENC:itemType"))
- strncpy(soap->arrayType, tp->value, sizeof(soap->arrayType) - 1);
- else if (!soap_match_tag(soap, tp->name, "SOAP-ENC:arraySize"))
- strncpy(soap->arraySize, tp->value, sizeof(soap->arraySize) - 1);
- else if (!soap_match_tag(soap, tp->name, "SOAP-ENV:mustUnderstand")
- && (!strcmp(tp->value, "1") || !strcmp(tp->value, "true")))
- soap->mustUnderstand = 1;
- else if (!soap_match_tag(soap, tp->name, "SOAP-ENV:role"))
- { if ((!soap->actor || strcmp(soap->actor, tp->value))
- && strcmp(tp->value, "http://www.w3.org/2003/05/soap-envelope/role/next"))
- soap->other = 1;
- }
- }
- else
- { if (!soap_match_tag(soap, tp->name, "wsdl:required") && !strcmp(tp->value, "true"))
- soap->mustUnderstand = 1;
- }
- }
- }
- return soap->error = SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_retry(struct soap *soap)
-{ soap->error = SOAP_OK;
- soap_revert(soap);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_revert(struct soap *soap)
-{ if (!soap->peeked)
- { soap->peeked = 1;
- if (soap->body)
- soap->level--;
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Reverting last element (level=%u)\n", soap->level));
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_string_out(struct soap *soap, const char *s, int flag)
-{ register const char *t;
- register soap_wchar c;
- register soap_wchar mask = (soap_wchar)0xFFFFFF80UL;
-#ifdef WITH_DOM
- if ((soap->mode & SOAP_XML_DOM) && soap->dom)
- { soap->dom->data = soap_strdup(soap, s);
- return SOAP_OK;
- }
-#endif
- if (flag == 2 || soap->mode & SOAP_C_UTFSTRING)
- mask = 0;
- t = s;
- while ((c = *t++))
- { switch (c)
- {
- case 0x09:
- if (flag)
- { if (soap_send_raw(soap, s, t - s - 1) || soap_send_raw(soap, "&#x9;", 5))
- return soap->error;
- s = t;
- }
- break;
- case 0x0A:
- if (flag || !(soap->mode & SOAP_XML_CANONICAL))
- { if (soap_send_raw(soap, s, t - s - 1) || soap_send_raw(soap, "&#xA;", 5))
- return soap->error;
- s = t;
- }
- break;
- case 0x0D:
- if (soap_send_raw(soap, s, t - s - 1) || soap_send_raw(soap, "&#xD;", 5))
- return soap->error;
- s = t;
- break;
- case '&':
- if (soap_send_raw(soap, s, t - s - 1) || soap_send_raw(soap, "&amp;", 5))
- return soap->error;
- s = t;
- break;
- case '<':
- if (soap_send_raw(soap, s, t - s - 1) || soap_send_raw(soap, "&lt;", 4))
- return soap->error;
- s = t;
- break;
- case '>':
- if (!flag)
- { if (soap_send_raw(soap, s, t - s - 1) || soap_send_raw(soap, "&gt;", 4))
- return soap->error;
- s = t;
- }
- break;
- case '"':
- if (flag)
- { if (soap_send_raw(soap, s, t - s - 1) || soap_send_raw(soap, "&quot;", 6))
- return soap->error;
- s = t;
- }
- break;
- default:
-#ifndef WITH_LEANER
-#ifdef HAVE_MBTOWC
- if (soap->mode & SOAP_C_MBSTRING)
- { wchar_t wc;
- register int m = mbtowc(&wc, t - 1, MB_CUR_MAX);
- if (m > 0 && wc != c)
- { if (soap_send_raw(soap, s, t - s - 1) || soap_pututf8(soap, wc))
- return soap->error;
- s = t += m - 1;
- continue;
- }
- }
-#endif
-#endif
-#ifndef WITH_NOSTRINGTOUTF8
- if ((c & mask) || !(c & 0xFFFFFFE0UL))
- { if (soap_send_raw(soap, s, t - s - 1) || soap_pututf8(soap, (unsigned char)c))
- return soap->error;
- s = t;
- }
-#endif
- }
- }
- return soap_send_raw(soap, s, t - s - 1);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-char *
-SOAP_FMAC2
-soap_string_in(struct soap *soap, int flag, long minlen, long maxlen)
-{ register char *s;
- char *t = NULL;
- register size_t i;
- register long l = 0;
- register int n = 0, f = 0, m = 0;
- register soap_wchar c;
-#if !defined(WITH_LEANER) && defined(HAVE_WCTOMB)
- char buf[MB_LEN_MAX > 8 ? MB_LEN_MAX : 8];
-#else
- char buf[8];
-#endif
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Reading string content, flag=%d\n", flag));
- if (soap->peeked && *soap->tag)
- {
-#ifndef WITH_LEAN
- struct soap_attribute *tp;
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "String content includes tag '%s' and attributes\n", soap->tag));
- t = soap->tmpbuf;
- *t = '<';
- t[sizeof(soap->tmpbuf)-1] = '\0';
- strncpy(t + 1, soap->tag, sizeof(soap->tmpbuf) - 2);
- t += strlen(t);
- for (tp = soap->attributes; tp; tp = tp->next)
- { if (tp->visible)
- { if (t >= soap->tmpbuf + sizeof(soap->tmpbuf) - 2)
- break;
- *t++ = ' ';
- strcpy(t, tp->name);
- t += strlen(t);
- if (t >= soap->tmpbuf + sizeof(soap->tmpbuf) - 2)
- break; /* too many or large attribute values */
- if (tp->value)
- { *t++ = '=';
- *t++ = '"';
- strcpy(t, tp->value);
- t += strlen(t);
- *t++ = '"';
- }
- }
- }
- if (!soap->body)
- *t++ = '/';
- *t++ = '>';
- *t = '\0';
- t = soap->tmpbuf;
- m = (int)strlen(soap->tmpbuf);
-#endif
- if (soap->body)
- n = 1;
- f = 1;
- soap->peeked = 0;
- }
-#ifdef WITH_CDATA
- if (!flag)
- { register int state = 0;
-#ifdef WITH_FAST
- soap->labidx = 0; /* use look-aside buffer */
-#else
- if (soap_new_block(soap) == NULL)
- return NULL;
-#endif
- for (;;)
- {
-#ifdef WITH_FAST
- register size_t k;
- if (soap_append_lab(soap, NULL, 0)) /* allocate more space in look-aside buffer if necessary */
- return NULL;
- s = soap->labbuf + soap->labidx; /* space to populate */
- k = soap->lablen - soap->labidx; /* number of bytes available */
- soap->labidx = soap->lablen; /* claim this space */
-#else
- register size_t k = SOAP_BLKLEN;
- if (!(s = (char*)soap_push_block(soap, NULL, k)))
- return NULL;
-#endif
- for (i = 0; i < k; i++)
- { if (m > 0)
- { *s++ = *t++; /* copy multibyte characters */
- m--;
- continue;
- }
- c = soap_getchar(soap);
- if ((int)c == EOF)
- goto end;
- if (c >= 0x80 && state != 1 && !(soap->mode & SOAP_ENC_LATIN))
- { soap_unget(soap, c);
- c = soap_getutf8(soap);
- if (soap->mode & SOAP_C_UTFSTRING)
- { c &= 0x7FFFFFFF;
- t = buf;
- if (c < 0x0800)
- *t++ = (char)(0xC0 | ((c >> 6) & 0x1F));
- else
- { if (c < 0x010000)
- *t++ = (char)(0xE0 | ((c >> 12) & 0x0F));
- else
- { if (c < 0x200000)
- *t++ = (char)(0xF0 | ((c >> 18) & 0x07));
- else
- { if (c < 0x04000000)
- *t++ = (char)(0xF8 | ((c >> 24) & 0x03));
- else
- { *t++ = (char)(0xFC | ((c >> 30) & 0x01));
- *t++ = (char)(0x80 | ((c >> 24) & 0x3F));
- }
- *t++ = (char)(0x80 | ((c >> 18) & 0x3F));
- }
- *t++ = (char)(0x80 | ((c >> 12) & 0x3F));
- }
- *t++ = (char)(0x80 | ((c >> 6) & 0x3F));
- }
- *t++ = (char)(0x80 | (c & 0x3F));
- m = (int)(t - buf) - 1;
- t = buf;
- *s++ = *t++;
- continue;
- }
- }
- switch (state)
- { case 1:
- if (c == ']')
- state = 4;
- *s++ = c;
- continue;
- case 2:
- if (c == '-')
- state = 6;
- *s++ = c;
- continue;
- case 3:
- if (c == '?')
- state = 8;
- *s++ = c;
- continue;
- /* CDATA */
- case 4:
- if (c == ']')
- state = 5;
- else
- state = 1;
- *s++ = c;
- continue;
- case 5:
- if (c == '>')
- state = 0;
- else
- state = 1;
- *s++ = c;
- continue;
- /* comment */
- case 6:
- if (c == '-')
- state = 7;
- else
- state = 2;
- *s++ = c;
- continue;
- case 7:
- if (c == '>')
- state = 0;
- else
- state = 2;
- *s++ = c;
- continue;
- /* PI */
- case 8:
- if (c == '>')
- state = 0;
- else
- state = 3;
- *s++ = c;
- continue;
- }
- switch (c)
- {
- case SOAP_TT:
- if (n == 0)
- goto end;
- n--;
- *s++ = '<';
- t = (char*)"/";
- m = 1;
- break;
- case SOAP_LT:
- if (f && n == 0)
- goto end;
- n++;
- *s++ = '<';
- break;
- case '/':
- if (n > 0)
- { c = soap_getchar(soap);
- if (c == '>')
- n--;
- soap_unget(soap, c);
- }
- *s++ = '/';
- break;
- case '<':
- c = soap_getchar(soap);
- if (c == '/')
- { if (n == 0)
- { c = SOAP_TT;
- goto end;
- }
- n--;
- }
- else if (c == '!')
- { c = soap_getchar(soap);
- if (c == '[')
- { do c = soap_getchar(soap);
- while ((int)c != EOF && c != '[');
- if ((int)c == EOF)
- goto end;
- t = (char*)"![CDATA[";
- m = 8;
- state = 1;
- }
- else if (c == '-')
- { if ((c = soap_getchar(soap)) == '-')
- state = 2;
- t = (char*)"!-";
- m = 2;
- soap_unget(soap, c);
- }
- else
- { t = (char*)"!";
- m = 1;
- soap_unget(soap, c);
- }
- *s++ = '<';
- break;
- }
- else if (c == '?')
- state = 3;
- else if (f && n == 0)
- { soap_revget1(soap);
- c = '<';
- goto end;
- }
- else
- n++;
- soap_unget(soap, c);
- *s++ = '<';
- break;
- case '>':
- *s++ = '>';
- break;
- case '"':
- *s++ = '"';
- break;
- default:
-#ifndef WITH_LEANER
-#ifdef HAVE_WCTOMB
- if (soap->mode & SOAP_C_MBSTRING)
- { m = wctomb(buf, c & 0x7FFFFFFF);
- if (m >= 1 && m <= (int)MB_CUR_MAX)
- { t = buf;
- *s++ = *t++;
- m--;
- }
- else
- { *s++ = SOAP_UNKNOWN_CHAR;
- m = 0;
- }
- }
- else
-#endif
-#endif
- *s++ = (char)(c & 0xFF);
- }
- l++;
- if (maxlen >= 0 && l > maxlen)
- { DBGLOG(TEST,SOAP_MESSAGE(fdebug, "String too long: maxlen=%ld\n", maxlen));
- soap->error = SOAP_LENGTH;
- return NULL;
- }
- }
- }
- }
-#endif
-#ifdef WITH_FAST
- soap->labidx = 0; /* use look-aside buffer */
-#else
- if (soap_new_block(soap) == NULL)
- return NULL;
-#endif
- for (;;)
- {
-#ifdef WITH_FAST
- register size_t k;
- if (soap_append_lab(soap, NULL, 0)) /* allocate more space in look-aside buffer if necessary */
- return NULL;
- s = soap->labbuf + soap->labidx; /* space to populate */
- k = soap->lablen - soap->labidx; /* number of bytes available */
- soap->labidx = soap->lablen; /* claim this space */
-#else
- register size_t k = SOAP_BLKLEN;
- if (!(s = (char*)soap_push_block(soap, NULL, k)))
- return NULL;
-#endif
- for (i = 0; i < k; i++)
- { if (m > 0)
- { *s++ = *t++; /* copy multibyte characters */
- m--;
- continue;
- }
- if (soap->mode & SOAP_C_UTFSTRING)
- { if (((c = soap_get(soap)) & 0x80000000) && c >= -0x7FFFFF80 && c < SOAP_AP)
- { c &= 0x7FFFFFFF;
- t = buf;
- if (c < 0x0800)
- *t++ = (char)(0xC0 | ((c >> 6) & 0x1F));
- else
- { if (c < 0x010000)
- *t++ = (char)(0xE0 | ((c >> 12) & 0x0F));
- else
- { if (c < 0x200000)
- *t++ = (char)(0xF0 | ((c >> 18) & 0x07));
- else
- { if (c < 0x04000000)
- *t++ = (char)(0xF8 | ((c >> 24) & 0x03));
- else
- { *t++ = (char)(0xFC | ((c >> 30) & 0x01));
- *t++ = (char)(0x80 | ((c >> 24) & 0x3F));
- }
- *t++ = (char)(0x80 | ((c >> 18) & 0x3F));
- }
- *t++ = (char)(0x80 | ((c >> 12) & 0x3F));
- }
- *t++ = (char)(0x80 | ((c >> 6) & 0x3F));
- }
- *t++ = (char)(0x80 | (c & 0x3F));
- m = (int)(t - buf) - 1;
- t = buf;
- *s++ = *t++;
- continue;
- }
- }
- else
- c = soap_getutf8(soap);
- switch (c)
- {
- case SOAP_TT:
- if (n == 0)
- goto end;
- n--;
- *s++ = '<';
- t = (char*)"/";
- m = 1;
- break;
- case SOAP_LT:
- if (f && n == 0)
- goto end;
- n++;
- *s++ = '<';
- break;
- case SOAP_GT:
- *s++ = '>';
- break;
- case SOAP_QT:
- *s++ = '"';
- break;
- case SOAP_AP:
- *s++ = '\'';
- break;
- case '/':
- if (n > 0)
- { c = soap_get(soap);
- if (c == SOAP_GT)
- n--;
- soap_unget(soap, c);
- }
- *s++ = '/';
- break;
- case (soap_wchar)('<' | 0x80000000):
- if (flag)
- *s++ = '<';
- else
- { *s++ = '&';
- t = (char*)"lt;";
- m = 3;
- }
- break;
- case (soap_wchar)('>' | 0x80000000):
- if (flag)
- *s++ = '>';
- else
- { *s++ = '&';
- t = (char*)"gt;";
- m = 3;
- }
- break;
- case (soap_wchar)('&' | 0x80000000):
- if (flag)
- *s++ = '&';
- else
- { *s++ = '&';
- t = (char*)"amp;";
- m = 4;
- }
- break;
- case (soap_wchar)('"' | 0x80000000):
- if (flag)
- *s++ = '"';
- else
- { *s++ = '&';
- t = (char*)"quot;";
- m = 5;
- }
- break;
- case (soap_wchar)('\'' | 0x80000000):
- if (flag)
- *s++ = '\'';
- else
- { *s++ = '&';
- t = (char*)"apos;";
- m = 5;
- }
- break;
- default:
- if ((int)c == EOF)
- goto end;
-#ifndef WITH_LEANER
-#ifdef HAVE_WCTOMB
- if (soap->mode & SOAP_C_MBSTRING)
- { m = wctomb(buf, c & 0x7FFFFFFF);
- if (m >= 1 && m <= (int)MB_CUR_MAX)
- { t = buf;
- *s++ = *t++;
- m--;
- }
- else
- { *s++ = SOAP_UNKNOWN_CHAR;
- m = 0;
- }
- }
- else
-#endif
-#endif
- *s++ = (char)(c & 0xFF);
- }
- l++;
- if (maxlen >= 0 && l > maxlen)
- { DBGLOG(TEST,SOAP_MESSAGE(fdebug, "String too long: maxlen=%ld\n", maxlen));
- soap->error = SOAP_LENGTH;
- return NULL;
- }
- }
- }
-end:
- soap_unget(soap, c);
- *s = '\0';
-#ifdef WITH_FAST
- t = soap_strdup(soap, soap->labbuf);
-#else
- soap_size_block(soap, NULL, i+1);
- t = soap_save_block(soap, NULL, 0);
-#endif
- if (l < minlen)
- { DBGLOG(TEST,SOAP_MESSAGE(fdebug, "String too short: %ld chars, minlen=%ld\n", l, minlen));
- soap->error = SOAP_LENGTH;
- return NULL;
- }
-#ifdef WITH_DOM
- if ((soap->mode & SOAP_XML_DOM) && soap->dom)
- { if (flag == 3)
- soap->dom->tail = t;
- else
- soap->dom->data = t;
- }
-#endif
- if (flag == 2)
- if (soap_s2QName(soap, t, &t, minlen, maxlen))
- return NULL;
- return t;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_wstring_out(struct soap *soap, const wchar_t *s, int flag)
-{ const char *t;
- char tmp;
- register soap_wchar c;
-#ifdef WITH_DOM
- if ((soap->mode & SOAP_XML_DOM) && soap->dom)
- { wchar_t *r = (wchar_t*)s;
- int n = 1;
- while (*r++)
- n++;
- soap->dom->wide = r = (wchar_t*)soap_malloc(soap, n * sizeof(wchar_t));
- while (n--)
- *r++ = *s++;
- return SOAP_OK;
- }
-#endif
- while ((c = *s++))
- { switch (c)
- {
- case 0x09:
- if (flag)
- t = "&#x9;";
- else
- t = "\t";
- break;
- case 0x0A:
- if (flag || !(soap->mode & SOAP_XML_CANONICAL))
- t = "&#xA;";
- else
- t = "\n";
- break;
- case 0x0D:
- t = "&#xD;";
- break;
- case '&':
- t = "&amp;";
- break;
- case '<':
- t = "&lt;";
- break;
- case '>':
- if (flag)
- t = ">";
- else
- t = "&gt;";
- break;
- case '"':
- if (flag)
- t = "&quot;";
- else
- t = "\"";
- break;
- default:
- if (c >= 0x20 && c < 0x80)
- { tmp = (char)c;
- if (soap_send_raw(soap, &tmp, 1))
- return soap->error;
- }
- else if (soap_pututf8(soap, (unsigned long)c))
- return soap->error;
- continue;
- }
- if (soap_send(soap, t))
- return soap->error;
- }
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_2
-SOAP_FMAC1
-wchar_t *
-SOAP_FMAC2
-soap_wstring_in(struct soap *soap, int flag, long minlen, long maxlen)
-{ wchar_t *s;
- register int i, n = 0, f = 0;
- register long l = 0;
- register soap_wchar c;
- char *t = NULL;
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Reading wide string content\n"));
- if (soap->peeked)
- { if (*soap->tag)
- {
-#ifndef WITH_LEAN
- struct soap_attribute *tp;
- t = soap->tmpbuf;
- *t = '<';
- t[sizeof(soap->tmpbuf)-1] = '\0';
- strncpy(t + 1, soap->tag, sizeof(soap->tmpbuf) - 2);
- t += strlen(t);
- for (tp = soap->attributes; tp; tp = tp->next)
- { if (tp->visible)
- { if (t >= soap->tmpbuf + sizeof(soap->tmpbuf) - 2)
- break;
- *t++ = ' ';
- strcpy(t, tp->name);
- t += strlen(t);
- if (t >= soap->tmpbuf + sizeof(soap->tmpbuf) - 2)
- break;
- if (tp->value)
- { *t++ = '=';
- *t++ = '"';
- strcpy(t, tp->value);
- t += strlen(t);
- *t++ = '"';
- }
- }
- }
- if (!soap->body)
- *t++ = '/';
- *t++ = '>';
- *t = '\0';
- t = soap->tmpbuf;
-#endif
- if (soap->body)
- n = 1;
- f = 1;
- soap->peeked = 0;
- }
- }
- if (soap_new_block(soap) == NULL)
- return NULL;
- for (;;)
- { if (!(s = (wchar_t*)soap_push_block(soap, NULL, sizeof(wchar_t)*SOAP_BLKLEN)))
- return NULL;
- for (i = 0; i < SOAP_BLKLEN; i++)
- { if (t)
- { *s++ = (wchar_t)*t++;
- if (!*t)
- t = NULL;
- continue;
- }
- c = soap_getutf8(soap);
- switch (c)
- {
- case SOAP_TT:
- if (n == 0)
- goto end;
- n--;
- *s++ = '<';
- soap_unget(soap, '/');
- break;
- case SOAP_LT:
- if (f && n == 0)
- goto end;
- n++;
- *s++ = '<';
- break;
- case SOAP_GT:
- *s++ = '>';
- break;
- case SOAP_QT:
- *s++ = '"';
- break;
- case SOAP_AP:
- *s++ = '\'';
- break;
- case '/':
- if (n > 0)
- { c = soap_getutf8(soap);
- if (c == SOAP_GT)
- n--;
- soap_unget(soap, c);
- }
- *s++ = '/';
- break;
- case '<':
- if (flag)
- *s++ = (soap_wchar)'<';
- else
- { *s++ = (soap_wchar)'&';
- t = (char*)"lt;";
- }
- break;
- case '>':
- if (flag)
- *s++ = (soap_wchar)'>';
- else
- { *s++ = (soap_wchar)'&';
- t = (char*)"gt;";
- }
- break;
- case '"':
- if (flag)
- *s++ = (soap_wchar)'"';
- else
- { *s++ = (soap_wchar)'&';
- t = (char*)"quot;";
- }
- break;
- default:
- if ((int)c == EOF)
- goto end;
- *s++ = (wchar_t)c & 0x7FFFFFFF;
- }
- l++;
- if (maxlen >= 0 && l > maxlen)
- { DBGLOG(TEST,SOAP_MESSAGE(fdebug, "String too long: maxlen=%ld\n", maxlen));
- soap->error = SOAP_LENGTH;
- return NULL;
- }
- }
- }
-end:
- soap_unget(soap, c);
- *s = '\0';
- soap_size_block(soap, NULL, sizeof(wchar_t) * (i + 1));
- if (l < minlen)
- { DBGLOG(TEST,SOAP_MESSAGE(fdebug, "String too short: %ld chars, minlen=%ld\n", l, minlen));
- soap->error = SOAP_LENGTH;
- return NULL;
- }
- s = (wchar_t*)soap_save_block(soap, NULL, NULL, 0);
-#ifdef WITH_DOM
- if ((soap->mode & SOAP_XML_DOM) && soap->dom)
- soap->dom->wide = s;
-#endif
- return s;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_int2s(struct soap *soap, int n)
-{ return soap_long2s(soap, (long)n);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_outint(struct soap *soap, const char *tag, int id, const int *p, const char *type, int n)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, p, n), type)
- || soap_string_out(soap, soap_long2s(soap, (long)*p), 0))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_s2int(struct soap *soap, const char *s, int *p)
-{ if (s)
- { char *r;
-#ifndef WITH_NOIO
-#ifndef WITH_LEAN
- soap_reset_errno;
-#endif
-#endif
- *p = (int)soap_strtol(s, &r, 10);
- if ((s == r && (soap->mode & SOAP_XML_STRICT)) || *r
-#ifndef WITH_NOIO
-#ifndef WITH_LEAN
- || soap_errno == SOAP_ERANGE
-#endif
-#endif
- )
- soap->error = SOAP_TYPE;
- }
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int *
-SOAP_FMAC2
-soap_inint(struct soap *soap, const char *tag, int *p, const char *type, int t)
-{ if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
-#ifndef WITH_LEAN
- if (*soap->type
- && soap_match_tag(soap, soap->type, type)
- && soap_match_tag(soap, soap->type, ":int")
- && soap_match_tag(soap, soap->type, ":short")
- && soap_match_tag(soap, soap->type, ":byte"))
- { soap->error = SOAP_TYPE;
- soap_revert(soap);
- return NULL;
- }
-#endif
- p = (int*)soap_id_enter(soap, soap->id, p, t, sizeof(int), 0, NULL, NULL, NULL);
- if (*soap->href)
- p = (int*)soap_id_forward(soap, soap->href, p, 0, t, 0, sizeof(int), 0, NULL);
- else if (p)
- { if (soap_s2int(soap, soap_value(soap), p))
- return NULL;
- }
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_long2s(struct soap *soap, long n)
-{ sprintf(soap->tmpbuf, "%ld", n);
- return soap->tmpbuf;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_outlong(struct soap *soap, const char *tag, int id, const long *p, const char *type, int n)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, p, n), type)
- || soap_string_out(soap, soap_long2s(soap, *p), 0))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_s2long(struct soap *soap, const char *s, long *p)
-{ if (s)
- { char *r;
-#ifndef WITH_NOIO
-#ifndef WITH_LEAN
- soap_reset_errno;
-#endif
-#endif
- *p = soap_strtol(s, &r, 10);
- if ((s == r && (soap->mode & SOAP_XML_STRICT)) || *r
-#ifndef WITH_NOIO
-#ifndef WITH_LEAN
- || soap_errno == SOAP_ERANGE
-#endif
-#endif
- )
- soap->error = SOAP_TYPE;
- }
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-long *
-SOAP_FMAC2
-soap_inlong(struct soap *soap, const char *tag, long *p, const char *type, int t)
-{ if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
-#ifndef WITH_LEAN
- if (*soap->type
- && soap_match_tag(soap, soap->type, type)
- && soap_match_tag(soap, soap->type, ":int")
- && soap_match_tag(soap, soap->type, ":short")
- && soap_match_tag(soap, soap->type, ":byte"))
- { soap->error = SOAP_TYPE;
- soap_revert(soap);
- return NULL;
- }
-#endif
- p = (long*)soap_id_enter(soap, soap->id, p, t, sizeof(long), 0, NULL, NULL, NULL);
- if (*soap->href)
- p = (long*)soap_id_forward(soap, soap->href, p, 0, t, 0, sizeof(long), 0, NULL);
- else if (p)
- { if (soap_s2long(soap, soap_value(soap), p))
- return NULL;
- }
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_LONG642s(struct soap *soap, LONG64 n)
-{ sprintf(soap->tmpbuf, SOAP_LONG_FORMAT, n);
- return soap->tmpbuf;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_outLONG64(struct soap *soap, const char *tag, int id, const LONG64 *p, const char *type, int n)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, p, n), type)
- || soap_string_out(soap, soap_LONG642s(soap, *p), 0))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_s2LONG64(struct soap *soap, const char *s, LONG64 *p)
-{ if (s)
- {
-#ifdef HAVE_STRTOLL
- char *r;
-#ifndef WITH_NOIO
-#ifndef WITH_LEAN
- soap_reset_errno;
-#endif
-#endif
- *p = strtoll(s, &r, 10);
- if ((s == r && (soap->mode & SOAP_XML_STRICT)) || *r
-#ifndef WITH_NOIO
-#ifndef WITH_LEAN
- || soap_errno == SOAP_ERANGE
-#endif
-#endif
- )
-#else
-# ifdef HAVE_SSCANF
- if (sscanf(s, SOAP_LONG_FORMAT, p) != 1)
-# endif
-#endif
- soap->error = SOAP_TYPE;
- }
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-LONG64 *
-SOAP_FMAC2
-soap_inLONG64(struct soap *soap, const char *tag, LONG64 *p, const char *type, int t)
-{ if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
-#ifndef WITH_LEAN
- if (*soap->type
- && soap_match_tag(soap, soap->type, type)
- && soap_match_tag(soap, soap->type, ":integer")
- && soap_match_tag(soap, soap->type, ":positiveInteger")
- && soap_match_tag(soap, soap->type, ":negativeInteger")
- && soap_match_tag(soap, soap->type, ":nonPositiveInteger")
- && soap_match_tag(soap, soap->type, ":nonNegativeInteger")
- && soap_match_tag(soap, soap->type, ":long")
- && soap_match_tag(soap, soap->type, ":int")
- && soap_match_tag(soap, soap->type, ":short")
- && soap_match_tag(soap, soap->type, ":byte"))
- { soap->error = SOAP_TYPE;
- soap_revert(soap);
- return NULL;
- }
-#endif
- p = (LONG64*)soap_id_enter(soap, soap->id, p, t, sizeof(LONG64), 0, NULL, NULL, NULL);
- if (*soap->href)
- p = (LONG64*)soap_id_forward(soap, soap->href, p, 0, t, 0, sizeof(LONG64), 0, NULL);
- else if (p)
- { if (soap_s2LONG64(soap, soap_value(soap), p))
- return NULL;
- }
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_byte2s(struct soap *soap, char n)
-{ return soap_long2s(soap, (long)n);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_outbyte(struct soap *soap, const char *tag, int id, const char *p, const char *type, int n)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, p, n), type)
- || soap_string_out(soap, soap_long2s(soap, (long)*p), 0))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_s2byte(struct soap *soap, const char *s, char *p)
-{ if (s)
- { long n;
- char *r;
- n = soap_strtol(s, &r, 10);
- if (s == r || *r || n < -128 || n > 127)
- soap->error = SOAP_TYPE;
- *p = (char)n;
- }
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-char *
-SOAP_FMAC2
-soap_inbyte(struct soap *soap, const char *tag, char *p, const char *type, int t)
-{ if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
-#ifndef WITH_LEAN
- if (*soap->type
- && soap_match_tag(soap, soap->type, type)
- && soap_match_tag(soap, soap->type, ":byte"))
- { soap->error = SOAP_TYPE;
- soap_revert(soap);
- return NULL;
- }
-#endif
- p = (char*)soap_id_enter(soap, soap->id, p, t, sizeof(char), 0, NULL, NULL, NULL);
- if (*soap->href)
- p = (char*)soap_id_forward(soap, soap->href, p, 0, t, 0, sizeof(char), 0, NULL);
- else if (p)
- { if (soap_s2byte(soap, soap_value(soap), p))
- return NULL;
- }
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_short2s(struct soap *soap, short n)
-{ return soap_long2s(soap, (long)n);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_outshort(struct soap *soap, const char *tag, int id, const short *p, const char *type, int n)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, p, n), type)
- || soap_string_out(soap, soap_long2s(soap, (long)*p), 0))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_s2short(struct soap *soap, const char *s, short *p)
-{ if (s)
- { long n;
- char *r;
- n = soap_strtol(s, &r, 10);
- if (s == r || *r || n < -32768 || n > 32767)
- soap->error = SOAP_TYPE;
- *p = (short)n;
- }
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-short *
-SOAP_FMAC2
-soap_inshort(struct soap *soap, const char *tag, short *p, const char *type, int t)
-{ if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
-#ifndef WITH_LEAN
- if (*soap->type
- && soap_match_tag(soap, soap->type, type)
- && soap_match_tag(soap, soap->type, ":short")
- && soap_match_tag(soap, soap->type, ":byte"))
- { soap->error = SOAP_TYPE;
- soap_revert(soap);
- return NULL;
- }
-#endif
- p = (short*)soap_id_enter(soap, soap->id, p, t, sizeof(short), 0, NULL, NULL, NULL);
- if (*soap->href)
- p = (short*)soap_id_forward(soap, soap->href, p, 0, t, 0, sizeof(short), 0, NULL);
- else if (p)
- { if (soap_s2short(soap, soap_value(soap), p))
- return NULL;
- }
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_float2s(struct soap *soap, float n)
-{ char *s;
- if (soap_isnan((double)n))
- return "NaN";
- if (soap_ispinff(n))
- return "INF";
- if (soap_isninff(n))
- return "-INF";
- s = soap->tmpbuf;
-#if defined(HAVE_SPRINTF_L)
- sprintf_l(s, soap->c_locale, soap->float_format, n);
-#else
- sprintf(s, soap->float_format, n);
- s = strchr(s, ','); /* convert decimal comma to DP */
- if (s)
- *s = '.';
-#endif
- return soap->tmpbuf;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_outfloat(struct soap *soap, const char *tag, int id, const float *p, const char *type, int n)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, p, n), type)
- || soap_string_out(soap, soap_float2s(soap, *p), 0))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_s2float(struct soap *soap, const char *s, float *p)
-{ if (s)
- { if (!*s)
- return soap->error = SOAP_TYPE;
- if (!soap_tag_cmp(s, "INF"))
- *p = FLT_PINFTY;
- else if (!soap_tag_cmp(s, "+INF"))
- *p = FLT_PINFTY;
- else if (!soap_tag_cmp(s, "-INF"))
- *p = FLT_NINFTY;
- else if (!soap_tag_cmp(s, "NaN"))
- *p = FLT_NAN;
- else
- {
-/* On some systems strtof requires -std=c99 or does not even link: so we try to use strtod first */
-#if defined(HAVE_STRTOD_L)
- char *r;
- *p = (float)strtod_l(s, &r, soap->c_locale);
- if (*r)
-#elif defined(HAVE_STRTOD)
- char *r;
- *p = (float)strtod(s, &r);
- if (*r)
-#elif defined(HAVE_STRTOF_L)
- char *r;
- *p = strtof_l((char*)s, &r, soap->c_locale);
- if (*r)
-#elif defined(HAVE_STRTOF)
- char *r;
- *p = strtof((char*)s, &r);
- if (*r)
-#endif
- {
-#if defined(HAVE_SSCANF_L) && !defined(HAVE_STRTOF_L) && !defined(HAVE_STRTOD_L)
- if (sscanf_l(s, soap->c_locale, "%g", p) != 1)
- soap->error = SOAP_TYPE;
-#elif defined(HAVE_SSCANF)
- if (sscanf(s, "%g", p) != 1)
- soap->error = SOAP_TYPE;
-#else
- soap->error = SOAP_TYPE;
-#endif
- }
- }
- }
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-static int soap_isnumeric(struct soap *soap, const char *type)
-{ if (soap_match_tag(soap, soap->type, type)
- && soap_match_tag(soap, soap->type, ":float")
- && soap_match_tag(soap, soap->type, ":double")
- && soap_match_tag(soap, soap->type, ":decimal")
- && soap_match_tag(soap, soap->type, ":integer")
- && soap_match_tag(soap, soap->type, ":positiveInteger")
- && soap_match_tag(soap, soap->type, ":negativeInteger")
- && soap_match_tag(soap, soap->type, ":nonPositiveInteger")
- && soap_match_tag(soap, soap->type, ":nonNegativeInteger")
- && soap_match_tag(soap, soap->type, ":long")
- && soap_match_tag(soap, soap->type, ":int")
- && soap_match_tag(soap, soap->type, ":short")
- && soap_match_tag(soap, soap->type, ":byte")
- && soap_match_tag(soap, soap->type, ":unsignedLong")
- && soap_match_tag(soap, soap->type, ":unsignedInt")
- && soap_match_tag(soap, soap->type, ":unsignedShort")
- && soap_match_tag(soap, soap->type, ":unsignedByte"))
- { soap->error = SOAP_TYPE;
- soap_revert(soap);
- return SOAP_ERR;
- }
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-float *
-SOAP_FMAC2
-soap_infloat(struct soap *soap, const char *tag, float *p, const char *type, int t)
-{ if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
-#ifndef WITH_LEAN
- if (*soap->type != '\0' && soap_isnumeric(soap, type))
- return NULL;
-#endif
- p = (float*)soap_id_enter(soap, soap->id, p, t, sizeof(float), 0, NULL, NULL, NULL);
- if (*soap->href)
- p = (float*)soap_id_forward(soap, soap->href, p, 0, t, 0, sizeof(float), 0, NULL);
- else if (p)
- { if (soap_s2float(soap, soap_value(soap), p))
- return NULL;
- }
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_double2s(struct soap *soap, double n)
-{ char *s;
- if (soap_isnan(n))
- return "NaN";
- if (soap_ispinfd(n))
- return "INF";
- if (soap_isninfd(n))
- return "-INF";
- s = soap->tmpbuf;
-#if defined(HAVE_SPRINTF_L)
- sprintf_l(s, soap->c_locale, soap->double_format, n);
-#else
- sprintf(s, soap->double_format, n);
- s = strchr(s, ','); /* convert decimal comma to DP */
- if (s)
- *s = '.';
-#endif
- return soap->tmpbuf;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_outdouble(struct soap *soap, const char *tag, int id, const double *p, const char *type, int n)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, p, n), type)
- || soap_string_out(soap, soap_double2s(soap, *p), 0))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_s2double(struct soap *soap, const char *s, double *p)
-{ if (s)
- { if (!*s)
- return soap->error = SOAP_TYPE;
- if (!soap_tag_cmp(s, "INF"))
- *p = DBL_PINFTY;
- else if (!soap_tag_cmp(s, "+INF"))
- *p = DBL_PINFTY;
- else if (!soap_tag_cmp(s, "-INF"))
- *p = DBL_NINFTY;
- else if (!soap_tag_cmp(s, "NaN"))
- *p = DBL_NAN;
- else
- {
-#if defined(HAVE_STRTOD_L)
- char *r;
- *p = strtod_l(s, &r, soap->c_locale);
- if (*r)
-#elif defined(HAVE_STRTOD)
- char *r;
- *p = strtod(s, &r);
- if (*r)
-#endif
- {
-#if defined(HAVE_SSCANF_L) && !defined(HAVE_STRTOF_L) && !defined(HAVE_STRTOD_L)
- if (sscanf_l(s, soap->c_locale, "%lg", p) != 1)
- soap->error = SOAP_TYPE;
-#elif defined(HAVE_SSCANF)
- if (sscanf(s, "%lg", p) != 1)
- soap->error = SOAP_TYPE;
-#else
- soap->error = SOAP_TYPE;
-#endif
- }
- }
- }
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-double *
-SOAP_FMAC2
-soap_indouble(struct soap *soap, const char *tag, double *p, const char *type, int t)
-{ if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
-#ifndef WITH_LEAN
- if (*soap->type != '\0' && soap_isnumeric(soap, type))
- return NULL;
-#endif
- p = (double*)soap_id_enter(soap, soap->id, p, t, sizeof(double), 0, NULL, NULL, NULL);
- if (*soap->href)
- p = (double*)soap_id_forward(soap, soap->href, p, 0, t, 0, sizeof(double), 0, NULL);
- else if (p)
- { if (soap_s2double(soap, soap_value(soap), p))
- return NULL;
- }
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_unsignedByte2s(struct soap *soap, unsigned char n)
-{ return soap_unsignedLong2s(soap, (unsigned long)n);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_outunsignedByte(struct soap *soap, const char *tag, int id, const unsigned char *p, const char *type, int n)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, p, n), type)
- || soap_string_out(soap, soap_unsignedLong2s(soap, (unsigned long)*p), 0))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_s2unsignedByte(struct soap *soap, const char *s, unsigned char *p)
-{ if (s)
- { unsigned long n;
- char *r;
- n = soap_strtoul(s, &r, 10);
- if (s == r || *r || n > 255)
- soap->error = SOAP_TYPE;
- *p = (unsigned char)n;
- }
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-unsigned char *
-SOAP_FMAC2
-soap_inunsignedByte(struct soap *soap, const char *tag, unsigned char *p, const char *type, int t)
-{ if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
-#ifndef WITH_LEAN
- if (*soap->type
- && soap_match_tag(soap, soap->type, type)
- && soap_match_tag(soap, soap->type, ":unsignedByte"))
- { soap->error = SOAP_TYPE;
- soap_revert(soap);
- return NULL;
- }
-#endif
- p = (unsigned char*)soap_id_enter(soap, soap->id, p, t, sizeof(unsigned char), 0, NULL, NULL, NULL);
- if (*soap->href)
- p = (unsigned char*)soap_id_forward(soap, soap->href, p, 0, t, 0, sizeof(unsigned char), 0, NULL);
- else if (p)
- { if (soap_s2unsignedByte(soap, soap_value(soap), p))
- return NULL;
- }
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_unsignedShort2s(struct soap *soap, unsigned short n)
-{ return soap_unsignedLong2s(soap, (unsigned long)n);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_outunsignedShort(struct soap *soap, const char *tag, int id, const unsigned short *p, const char *type, int n)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, p, n), type)
- || soap_string_out(soap, soap_unsignedLong2s(soap, (unsigned long)*p), 0))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_s2unsignedShort(struct soap *soap, const char *s, unsigned short *p)
-{ if (s)
- { unsigned long n;
- char *r;
- n = soap_strtoul(s, &r, 10);
- if (s == r || *r || n > 65535)
- soap->error = SOAP_TYPE;
- *p = (unsigned short)n;
- }
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-unsigned short *
-SOAP_FMAC2
-soap_inunsignedShort(struct soap *soap, const char *tag, unsigned short *p, const char *type, int t)
-{ if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
-#ifndef WITH_LEAN
- if (*soap->type
- && soap_match_tag(soap, soap->type, type)
- && soap_match_tag(soap, soap->type, ":unsignedShort")
- && soap_match_tag(soap, soap->type, ":unsignedByte"))
- { soap->error = SOAP_TYPE;
- soap_revert(soap);
- return NULL;
- }
-#endif
- p = (unsigned short*)soap_id_enter(soap, soap->id, p, t, sizeof(unsigned short), 0, NULL, NULL, NULL);
- if (*soap->href)
- p = (unsigned short*)soap_id_forward(soap, soap->href, p, 0, t, 0, sizeof(unsigned short), 0, NULL);
- else if (p)
- { if (soap_s2unsignedShort(soap, soap_value(soap), p))
- return NULL;
- }
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_unsignedInt2s(struct soap *soap, unsigned int n)
-{ return soap_unsignedLong2s(soap, (unsigned long)n);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_outunsignedInt(struct soap *soap, const char *tag, int id, const unsigned int *p, const char *type, int n)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, p, n), type)
- || soap_string_out(soap, soap_unsignedLong2s(soap, (unsigned long)*p), 0))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_s2unsignedInt(struct soap *soap, const char *s, unsigned int *p)
-{ if (s)
- { char *r;
-#ifndef WITH_NOIO
-#ifndef WITH_LEAN
- soap_reset_errno;
-#endif
-#endif
- *p = (unsigned int)soap_strtoul(s, &r, 10);
- if ((s == r && (soap->mode & SOAP_XML_STRICT)) || *r
-#ifndef WITH_NOIO
-#ifndef WITH_LEAN
- || soap_errno == SOAP_ERANGE
-#endif
-#endif
- )
- soap->error = SOAP_TYPE;
- }
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-unsigned int *
-SOAP_FMAC2
-soap_inunsignedInt(struct soap *soap, const char *tag, unsigned int *p, const char *type, int t)
-{ if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
-#ifndef WITH_LEAN
- if (*soap->type
- && soap_match_tag(soap, soap->type, type)
- && soap_match_tag(soap, soap->type, ":unsignedInt")
- && soap_match_tag(soap, soap->type, ":unsignedShort")
- && soap_match_tag(soap, soap->type, ":unsignedByte"))
- { soap->error = SOAP_TYPE;
- soap_revert(soap);
- return NULL;
- }
-#endif
- p = (unsigned int*)soap_id_enter(soap, soap->id, p, t, sizeof(unsigned int), 0, NULL, NULL, NULL);
- if (*soap->href)
- p = (unsigned int*)soap_id_forward(soap, soap->href, p, 0, t, 0, sizeof(unsigned int), 0, NULL);
- else if (p)
- { if (soap_s2unsignedInt(soap, soap_value(soap), p))
- return NULL;
- }
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_unsignedLong2s(struct soap *soap, unsigned long n)
-{ sprintf(soap->tmpbuf, "%lu", n);
- return soap->tmpbuf;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_outunsignedLong(struct soap *soap, const char *tag, int id, const unsigned long *p, const char *type, int n)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, p, n), type)
- || soap_string_out(soap, soap_unsignedLong2s(soap, *p), 0))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_s2unsignedLong(struct soap *soap, const char *s, unsigned long *p)
-{ if (s)
- { char *r;
-#ifndef WITH_NOIO
-#ifndef WITH_LEAN
- soap_reset_errno;
-#endif
-#endif
- *p = soap_strtoul(s, &r, 10);
- if ((s == r && (soap->mode & SOAP_XML_STRICT)) || *r
-#ifndef WITH_NOIO
-#ifndef WITH_LEAN
- || soap_errno == SOAP_ERANGE
-#endif
-#endif
- )
- soap->error = SOAP_TYPE;
- }
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-unsigned long *
-SOAP_FMAC2
-soap_inunsignedLong(struct soap *soap, const char *tag, unsigned long *p, const char *type, int t)
-{ if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
-#ifndef WITH_LEAN
- if (*soap->type
- && soap_match_tag(soap, soap->type, type)
- && soap_match_tag(soap, soap->type, ":unsignedInt")
- && soap_match_tag(soap, soap->type, ":unsignedShort")
- && soap_match_tag(soap, soap->type, ":unsignedByte"))
- { soap->error = SOAP_TYPE;
- soap_revert(soap);
- return NULL;
- }
-#endif
- p = (unsigned long*)soap_id_enter(soap, soap->id, p, t, sizeof(unsigned long), 0, NULL, NULL, NULL);
- if (*soap->href)
- p = (unsigned long*)soap_id_forward(soap, soap->href, p, 0, t, 0, sizeof(unsigned long), 0, NULL);
- else if (p)
- { if (soap_s2unsignedLong(soap, soap_value(soap), p))
- return NULL;
- }
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_ULONG642s(struct soap *soap, ULONG64 n)
-{ sprintf(soap->tmpbuf, SOAP_ULONG_FORMAT, n);
- return soap->tmpbuf;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_outULONG64(struct soap *soap, const char *tag, int id, const ULONG64 *p, const char *type, int n)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, p, n), type)
- || soap_string_out(soap, soap_ULONG642s(soap, *p), 0))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_s2ULONG64(struct soap *soap, const char *s, ULONG64 *p)
-{ if (s)
- {
-#ifdef HAVE_STRTOULL
- char *r;
-#ifndef WITH_NOIO
-#ifndef WITH_LEAN
- soap_reset_errno;
-#endif
-#endif
- *p = strtoull(s, &r, 10);
- if ((s == r && (soap->mode & SOAP_XML_STRICT)) || *r
-#ifndef WITH_NOIO
-#ifndef WITH_LEAN
- || soap_errno == SOAP_ERANGE
-#endif
-#endif
- )
-#else
-#ifdef HAVE_SSCANF
- if (sscanf(s, SOAP_ULONG_FORMAT, p) != 1)
-#endif
-#endif
- soap->error = SOAP_TYPE;
- }
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-ULONG64 *
-SOAP_FMAC2
-soap_inULONG64(struct soap *soap, const char *tag, ULONG64 *p, const char *type, int t)
-{ if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
- if (*soap->type
- && soap_match_tag(soap, soap->type, type)
- && soap_match_tag(soap, soap->type, ":positiveInteger")
- && soap_match_tag(soap, soap->type, ":nonNegativeInteger")
- && soap_match_tag(soap, soap->type, ":unsignedLong")
- && soap_match_tag(soap, soap->type, ":unsignedInt")
- && soap_match_tag(soap, soap->type, ":unsignedShort")
- && soap_match_tag(soap, soap->type, ":unsignedByte"))
- { soap->error = SOAP_TYPE;
- soap_revert(soap);
- return NULL;
- }
- p = (ULONG64*)soap_id_enter(soap, soap->id, p, t, sizeof(ULONG64), 0, NULL, NULL, NULL);
- if (*soap->href)
- p = (ULONG64*)soap_id_forward(soap, soap->href, p, 0, t, 0, sizeof(ULONG64), 0, NULL);
- else if (p)
- { if (soap_s2ULONG64(soap, soap_value(soap), p))
- return NULL;
- }
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_s2string(struct soap *soap, const char *s, char **t, long minlen, long maxlen)
-{ if (s)
- { long l = (long)strlen(s);
- if ((maxlen >= 0 && l > maxlen) || l < minlen)
- return soap->error = SOAP_LENGTH;
- if (!(*t = soap_strdup(soap, s)))
- return soap->error = SOAP_EOM;
- if (!(soap->mode & (SOAP_ENC_LATIN | SOAP_C_UTFSTRING)))
- { char *r = *t;
- /* remove non-ASCII chars */
- for (s = *t; *s; s++)
- if (!(*s & 0x80))
- *r++ = *s;
- *r = '\0';
- }
- }
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_s2QName(struct soap *soap, const char *s, char **t, long minlen, long maxlen)
-{ if (s)
- { long l = (long)strlen(s);
- if ((maxlen >= 0 && l > maxlen) || l < minlen)
- return soap->error = SOAP_LENGTH;
- soap->labidx = 0;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Normalized namespace(s) of QNames '%s'", s));
- /* convert (by prefix normalize prefix) all QNames in s */
- for (;;)
- { size_t n;
- struct soap_nlist *np;
- register const char *p;
- /* skip blanks */
- while (*s && soap_blank(*s))
- s++;
- if (!*s)
- break;
- /* find next QName */
- n = 1;
- while (s[n] && !soap_blank(s[n]))
- n++;
- np = soap->nlist;
- /* if there is no namespace stack, or prefix is "xml" then copy string */
- if (!np || !strncmp(s, "xml:", 4))
- { soap_append_lab(soap, s, n);
- }
- else /* we normalize the QName by replacing its prefix */
- { for (p = s; *p && p < s + n; p++)
- if (*p == ':')
- break;
- if (*p == ':')
- { size_t k = p - s;
- while (np && (strncmp(np->id, s, k) || np->id[k]))
- np = np->next;
- p++;
- }
- else
- { while (np && *np->id)
- np = np->next;
- p = s;
- }
- /* replace prefix */
- if (np)
- { if (np->index >= 0 && soap->local_namespaces)
- { const char *q = soap->local_namespaces[np->index].id;
- if (q)
- soap_append_lab(soap, q, strlen(q));
- }
- else if (np->ns)
- { soap_append_lab(soap, "\"", 1);
- soap_append_lab(soap, np->ns, strlen(np->ns));
- soap_append_lab(soap, "\"", 1);
- }
- else
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "\nNamespace prefix of '%s' not defined (index=%d, URI=%s)\n", s, np->index, np->ns?np->ns:SOAP_STR_EOS));
- return soap->error = SOAP_NAMESPACE;
- }
- }
- else if (s[n]) /* no namespace, part of string */
- { soap_append_lab(soap, s, n);
- }
- else /* no namespace: assume "" namespace */
- { soap_append_lab(soap, "\"\"", 2);
- }
- soap_append_lab(soap, ":", 1);
- soap_append_lab(soap, p, n - (p-s));
- }
- /* advance to next and add spacing */
- s += n;
- if (*s)
- soap_append_lab(soap, " ", 1);
- }
- soap_append_lab(soap, SOAP_STR_EOS, 1);
- *t = soap_strdup(soap, soap->labbuf);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, " into '%s'\n", *t));
- }
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_QName2s(struct soap *soap, const char *s)
-{ const char *t = NULL;
- if (s)
- { soap->labidx = 0;
- for (;;)
- { size_t n;
- /* skip blanks */
- while (*s && soap_blank(*s))
- s++;
- if (!*s)
- break;
- /* find next QName */
- n = 1;
- while (s[n] && !soap_blank(s[n]))
- n++;
- /* normal prefix: pass string as is */
- if (*s != '"')
- { soap_append_lab(soap, s, n);
-#ifndef WITH_LEAN
- if ((soap->mode & SOAP_XML_CANONICAL))
- { const char *r = strchr(s, ':');
- if (r)
- soap_utilize_ns(soap, s, r - s);
- }
-#endif
- }
- else /* URL-based string prefix */
- { const char *q;
- s++;
- q = strchr(s, '"');
- if (q)
- { struct Namespace *p = soap->local_namespaces;
- if (p)
- { for (; p->id; p++)
- { if (p->ns)
- if (!soap_tag_cmp(s, p->ns))
- break;
- if (p->in)
- if (!soap_tag_cmp(s, p->in))
- break;
- }
- }
- /* URL is in the namespace table? */
- if (p && p->id)
- { soap_append_lab(soap, p->id, strlen(p->id));
- }
- else /* not in namespace table: create xmlns binding */
- { char *r = soap_strdup(soap, s);
- r[q-s] = '\0';
- sprintf(soap->tmpbuf, "xmlns:_%d", soap->idnum++);
- soap_set_attr(soap, soap->tmpbuf, r, 1);
- soap_append_lab(soap, soap->tmpbuf + 6, strlen(soap->tmpbuf + 6));
- }
- soap_append_lab(soap, q + 1, n - (q-s) - 1);
- }
- }
- /* advance to next and add spacing */
- s += n;
- if (*s)
- soap_append_lab(soap, " ", 1);
- }
- soap_append_lab(soap, SOAP_STR_EOS, 1);
- t = soap_strdup(soap, soap->labbuf);
- }
- return t;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_s2wchar(struct soap *soap, const char *s, wchar_t **t, long minlen, long maxlen)
-{ if (s)
- { long l;
- wchar_t *r;
- *t = r = (wchar_t*)soap_malloc(soap, sizeof(wchar_t) * (strlen(s) + 1));
- if (!r)
- return soap->error = SOAP_EOM;
- if (soap->mode & SOAP_ENC_LATIN)
- { while (*s)
- *r++ = (wchar_t)*s++;
- }
- else
- { /* Convert UTF8 to wchar */
- while (*s)
- { register soap_wchar c, c1, c2, c3, c4;
- c = (unsigned char)*s++;
- if (c < 0x80)
- *r++ = (wchar_t)c;
- else
- { c1 = (soap_wchar)*s++ & 0x3F;
- if (c < 0xE0)
- *r++ = (wchar_t)(((soap_wchar)(c & 0x1F) << 6) | c1);
- else
- { c2 = (soap_wchar)*s++ & 0x3F;
- if (c < 0xF0)
- *r++ = (wchar_t)(((soap_wchar)(c & 0x0F) << 12) | (c1 << 6) | c2);
- else
- { c3 = (soap_wchar)*s++ & 0x3F;
- if (c < 0xF8)
- *r++ = (wchar_t)(((soap_wchar)(c & 0x07) << 18) | (c1 << 12) | (c2 << 6) | c3);
- else
- { c4 = (soap_wchar)*s++ & 0x3F;
- if (c < 0xFC)
- *r++ = (wchar_t)(((soap_wchar)(c & 0x03) << 24) | (c1 << 18) | (c2 << 12) | (c3 << 6) | c4);
- else
- *r++ = (wchar_t)(((soap_wchar)(c & 0x01) << 30) | (c1 << 24) | (c2 << 18) | (c3 << 12) | (c4 << 6) | (soap_wchar)(*s++ & 0x3F));
- }
- }
- }
- }
- }
- }
- *r = L'\0';
- l = (long)(r - *t);
- if ((maxlen >= 0 && l > maxlen) || l < minlen)
- return soap->error = SOAP_LENGTH;
- }
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_wchar2s(struct soap *soap, const wchar_t *s)
-{ register soap_wchar c;
- register char *r, *t;
- const wchar_t *q = s;
- size_t n = 0;
- while ((c = *q++))
- { if (c > 0 && c < 0x80)
- n++;
- else
- n += 6;
- }
- r = t = (char*)soap_malloc(soap, n + 1);
- if (r)
- { /* Convert wchar to UTF8 */
- while ((c = *s++))
- { if (c > 0 && c < 0x80)
- *t++ = (char)c;
- else
- { if (c < 0x0800)
- *t++ = (char)(0xC0 | ((c >> 6) & 0x1F));
- else
- { if (c < 0x010000)
- *t++ = (char)(0xE0 | ((c >> 12) & 0x0F));
- else
- { if (c < 0x200000)
- *t++ = (char)(0xF0 | ((c >> 18) & 0x07));
- else
- { if (c < 0x04000000)
- *t++ = (char)(0xF8 | ((c >> 24) & 0x03));
- else
- { *t++ = (char)(0xFC | ((c >> 30) & 0x01));
- *t++ = (char)(0x80 | ((c >> 24) & 0x3F));
- }
- *t++ = (char)(0x80 | ((c >> 18) & 0x3F));
- }
- *t++ = (char)(0x80 | ((c >> 12) & 0x3F));
- }
- *t++ = (char)(0x80 | ((c >> 6) & 0x3F));
- }
- *t++ = (char)(0x80 | (c & 0x3F));
- }
- }
- *t = '\0';
- }
- return r;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_outstring(struct soap *soap, const char *tag, int id, char *const*p, const char *type, int n)
-{ id = soap_element_id(soap, tag, id, *p, NULL, 0, type, n);
- if (id < 0)
- return soap->error;
- if (!**p && (soap->mode & SOAP_C_NILSTRING))
- return soap_element_null(soap, tag, id, type);
- if (soap_element_begin_out(soap, tag, id, type)
- || soap_string_out(soap, *p, 0)
- || soap_element_end_out(soap, tag))
- return soap->error;
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-char **
-SOAP_FMAC2
-soap_instring(struct soap *soap, const char *tag, char **p, const char *type, int t, int flag, long minlen, long maxlen)
-{ if (soap_element_begin_in(soap, tag, 1, NULL))
- { if (!tag || *tag != '-' || soap->error != SOAP_NO_TAG)
- return NULL;
- soap->error = SOAP_OK;
- }
- if (!p)
- { if (!(p = (char**)soap_malloc(soap, sizeof(char*))))
- return NULL;
- }
- if (soap->null)
- *p = NULL;
- else if (soap->body)
- { *p = soap_string_in(soap, flag, minlen, maxlen);
- if (!*p || !(char*)soap_id_enter(soap, soap->id, *p, t, sizeof(char*), 0, NULL, NULL, NULL))
- return NULL;
- if (!**p && tag && *tag == '-')
- { soap->error = SOAP_NO_TAG;
- return NULL;
- }
- }
- else if (tag && *tag == '-')
- { soap->error = SOAP_NO_TAG;
- return NULL;
- }
- else if (!*soap->href && minlen > 0)
- { soap->error = SOAP_LENGTH;
- return NULL;
- }
- else
- *p = soap_strdup(soap, SOAP_STR_EOS);
- if (*soap->href)
- p = (char**)soap_id_lookup(soap, soap->href, (void**)p, t, sizeof(char**), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_outwstring(struct soap *soap, const char *tag, int id, wchar_t *const*p, const char *type, int n)
-{ id = soap_element_id(soap, tag, id, *p, NULL, 0, type, n);
- if (id < 0)
- return soap->error;
- if (!**p && (soap->mode & SOAP_C_NILSTRING))
- return soap_element_null(soap, tag, id, type);
- if (soap_element_begin_out(soap, tag, id, type)
- || soap_wstring_out(soap, *p, 0)
- || soap_element_end_out(soap, tag))
- return soap->error;
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_2
-SOAP_FMAC1
-wchar_t **
-SOAP_FMAC2
-soap_inwstring(struct soap *soap, const char *tag, wchar_t **p, const char *type, int t, long minlen, long maxlen)
-{ if (soap_element_begin_in(soap, tag, 1, NULL))
- { if (!tag || *tag != '-' || soap->error != SOAP_NO_TAG)
- return NULL;
- soap->error = SOAP_OK;
- }
- if (!p)
- { if (!(p = (wchar_t**)soap_malloc(soap, sizeof(wchar_t*))))
- return NULL;
- }
- if (soap->body)
- { *p = soap_wstring_in(soap, 1, minlen, maxlen);
- if (!*p || !(wchar_t*)soap_id_enter(soap, soap->id, *p, t, sizeof(wchar_t*), 0, NULL, NULL, NULL))
- return NULL;
- if (!**p && tag && *tag == '-')
- { soap->error = SOAP_NO_TAG;
- return NULL;
- }
- }
- else if (tag && *tag == '-')
- { soap->error = SOAP_NO_TAG;
- return NULL;
- }
- else if (soap->null)
- *p = NULL;
- else
- *p = soap_wstrdup(soap, (wchar_t*)SOAP_STR_EOS);
- if (*soap->href)
- p = (wchar_t**)soap_id_lookup(soap, soap->href, (void**)p, t, sizeof(wchar_t**), 0);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- return p;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-time_t
-SOAP_FMAC2
-soap_timegm(struct tm *T)
-{
-#if defined(HAVE_TIMEGM)
- return timegm(T);
-#else
- time_t t, g, z;
- struct tm tm;
- t = mktime(T);
- if (t == (time_t)-1)
- return (time_t)-1;
-#ifdef HAVE_GMTIME_R
- gmtime_r(&t, &tm);
-#else
- tm = *gmtime(&t);
-#endif
- tm.tm_isdst = 0;
- g = mktime(&tm);
- if (g == (time_t)-1)
- return (time_t)-1;
- z = g - t;
- return t - z;
-#endif
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_dateTime2s(struct soap *soap, time_t n)
-{ struct tm T, *pT = &T;
-#if defined(HAVE_GMTIME_R)
- if (gmtime_r(&n, pT))
- strftime(soap->tmpbuf, sizeof(soap->tmpbuf), "%Y-%m-%dT%H:%M:%SZ", pT);
-#elif defined(HAVE_GMTIME)
- if ((pT = gmtime(&n)))
- strftime(soap->tmpbuf, sizeof(soap->tmpbuf), "%Y-%m-%dT%H:%M:%SZ", pT);
-#elif defined(HAVE_GETTIMEOFDAY)
- struct timezone tz;
- memset((void*)&tz, 0, sizeof(tz));
-#if defined(HAVE_LOCALTIME_R)
- if (localtime_r(&n, pT))
- { struct timeval tv;
- gettimeofday(&tv, &tz);
- strftime(soap->tmpbuf, sizeof(soap->tmpbuf), "%Y-%m-%dT%H:%M:%S", pT);
- sprintf(soap->tmpbuf + strlen(soap->tmpbuf), "%+03d:%02d", -tz.tz_minuteswest/60+(pT->tm_isdst!=0), abs(tz.tz_minuteswest)%60);
- }
-#else
- if ((pT = localtime(&n)))
- { struct timeval tv;
- gettimeofday(&tv, &tz);
- strftime(soap->tmpbuf, sizeof(soap->tmpbuf), "%Y-%m-%dT%H:%M:%S", pT);
- sprintf(soap->tmpbuf + strlen(soap->tmpbuf), "%+03d:%02d", -tz.tz_minuteswest/60+(pT->tm_isdst!=0), abs(tz.tz_minuteswest)%60);
- }
-#endif
-#elif defined(HAVE_FTIME)
- struct timeb t;
- memset((void*)&t, 0, sizeof(t));
-#if defined(HAVE_LOCALTIME_R)
- if (localtime_r(&n, pT))
- {
-#ifdef __BORLANDC__
- ::ftime(&t);
-#else
- ftime(&t);
-#endif
- strftime(soap->tmpbuf, sizeof(soap->tmpbuf), "%Y-%m-%dT%H:%M:%S", pT);
- sprintf(soap->tmpbuf + strlen(soap->tmpbuf), "%+03d:%02d", -t.timezone/60+(pT->tm_isdst!=0), abs(t.timezone)%60);
- }
-#else
- if ((pT = localtime(&n)))
- {
-#ifdef __BORLANDC__
- ::ftime(&t);
-#else
- ftime(&t);
-#endif
- strftime(soap->tmpbuf, sizeof(soap->tmpbuf), "%Y-%m-%dT%H:%M:%S", pT);
- sprintf(soap->tmpbuf + strlen(soap->tmpbuf), "%+03d:%02d", -t.timezone/60+(pT->tm_isdst!=0), abs(t.timezone)%60);
- }
-#endif
-#elif defined(HAVE_LOCALTIME_R)
- if (localtime_r(&n, pT))
- strftime(soap->tmpbuf, sizeof(soap->tmpbuf), "%Y-%m-%dT%H:%M:%S", pT);
-#else
- if ((pT = localtime(&n)))
- strftime(soap->tmpbuf, sizeof(soap->tmpbuf), "%Y-%m-%dT%H:%M:%S", pT);
-#endif
- else
- strcpy(soap->tmpbuf, "1969-12-31T23:59:59Z");
- return soap->tmpbuf;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_outdateTime(struct soap *soap, const char *tag, int id, const time_t *p, const char *type, int n)
-{ if (soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, p, n), type)
- || soap_string_out(soap, soap_dateTime2s(soap, *p), 0))
- return soap->error;
- return soap_element_end_out(soap, tag);
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_s2dateTime(struct soap *soap, const char *s, time_t *p)
-{ if (s)
- { char zone[32];
- struct tm T;
- const char *t;
- *zone = '\0';
- memset((void*)&T, 0, sizeof(T));
- if (strchr(s, '-'))
- t = "%d-%d-%dT%d:%d:%d%31s";
- else if (strchr(s, ':'))
- t = "%4d%2d%2dT%d:%d:%d%31s";
- else /* parse non-XSD-standard alternative ISO 8601 format */
- t = "%4d%2d%2dT%2d%2d%2d%31s";
- if (sscanf(s, t, &T.tm_year, &T.tm_mon, &T.tm_mday, &T.tm_hour, &T.tm_min, &T.tm_sec, zone) < 6)
- return soap->error = SOAP_TYPE;
- if (T.tm_year == 1)
- T.tm_year = 70;
- else
- T.tm_year -= 1900;
- T.tm_mon--;
- if (*zone == '.')
- { for (s = zone + 1; *s; s++)
- if (*s < '0' || *s > '9')
- break;
- }
- else
- s = zone;
- if (*s)
- {
-#ifndef WITH_NOZONE
- if (*s == '+' || *s == '-')
- { int h = 0, m = 0;
- if (s[3] == ':')
- { /* +hh:mm */
- sscanf(s, "%d:%d", &h, &m);
- if (h < 0)
- m = -m;
- }
- else /* +hhmm */
- { m = (int)soap_strtol(s, NULL, 10);
- h = m / 100;
- m = m % 100;
- }
- T.tm_min -= m;
- T.tm_hour -= h;
- /* put hour and min in range */
- T.tm_hour += T.tm_min / 60;
- T.tm_min %= 60;
- if (T.tm_min < 0)
- { T.tm_min += 60;
- T.tm_hour--;
- }
- T.tm_mday += T.tm_hour / 24;
- T.tm_hour %= 24;
- if (T.tm_hour < 0)
- { T.tm_hour += 24;
- T.tm_mday--;
- }
- /* note: day of the month may be out of range, timegm() handles it */
- }
-#endif
- *p = soap_timegm(&T);
- }
- else /* no UTC or timezone, so assume we got a localtime */
- { T.tm_isdst = -1;
- *p = mktime(&T);
- }
- }
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-time_t *
-SOAP_FMAC2
-soap_indateTime(struct soap *soap, const char *tag, time_t *p, const char *type, int t)
-{ if (soap_element_begin_in(soap, tag, 0, NULL))
- return NULL;
- if (*soap->type
- && soap_match_tag(soap, soap->type, type)
- && soap_match_tag(soap, soap->type, ":dateTime"))
- { soap->error = SOAP_TYPE;
- soap_revert(soap);
- return NULL;
- }
- p = (time_t*)soap_id_enter(soap, soap->id, p, t, sizeof(time_t), 0, NULL, NULL, NULL);
- if (*soap->href)
- p = (time_t*)soap_id_forward(soap, soap->href, p, 0, t, 0, sizeof(time_t), 0, NULL);
- else if (p)
- { if (soap_s2dateTime(soap, soap_value(soap), p))
- return NULL;
- }
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_outliteral(struct soap *soap, const char *tag, char *const*p, const char *type)
-{ int i;
- const char *t = NULL;
- if (tag && *tag != '-')
- { if (soap->local_namespaces && (t = strchr(tag, ':')))
- { strncpy(soap->tmpbuf, tag, t-tag);
- soap->tmpbuf[t-tag] = '\0';
- for (i = 0; soap->local_namespaces[i].id; i++)
- if (!strcmp(soap->tmpbuf, soap->local_namespaces[i].id))
- break;
- t++;
- if (soap_element(soap, t, 0, type)
- || soap_attribute(soap, "xmlns", soap->local_namespaces[i].ns ? soap->local_namespaces[i].ns : SOAP_STR_EOS)
- || soap_element_start_end_out(soap, NULL))
- return soap->error;
- }
- else
- { t = tag;
- if (soap_element_begin_out(soap, t, 0, type))
- return soap->error;
- }
- }
- if (p && *p)
- { if (soap_send(soap, *p))
- return soap->error;
- }
- if (t)
- return soap_element_end_out(soap, t);
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-char **
-SOAP_FMAC2
-soap_inliteral(struct soap *soap, const char *tag, char **p)
-{ if (soap_element_begin_in(soap, tag, 1, NULL))
- { if (soap->error != SOAP_NO_TAG || soap_unget(soap, soap_get(soap)) == SOAP_TT)
- return NULL;
- soap->error = SOAP_OK;
- }
- if (!p)
- { if (!(p = (char**)soap_malloc(soap, sizeof(char*))))
- return NULL;
- }
- if (soap->body || (tag && *tag == '-'))
- { *p = soap_string_in(soap, 0, -1, -1);
- if (!*p)
- return NULL;
- if (!**p && tag && *tag == '-')
- { soap->error = SOAP_NO_TAG;
- return NULL;
- }
- }
- else if (soap->null)
- *p = NULL;
- else
- *p = soap_strdup(soap, SOAP_STR_EOS);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_outwliteral(struct soap *soap, const char *tag, wchar_t *const*p, const char *type)
-{ int i;
- const char *t = NULL;
- if (tag && *tag != '-')
- { if (soap->local_namespaces && (t = strchr(tag, ':')))
- { strncpy(soap->tmpbuf, tag, t-tag);
- soap->tmpbuf[t-tag] = '\0';
- for (i = 0; soap->local_namespaces[i].id; i++)
- if (!strcmp(soap->tmpbuf, soap->local_namespaces[i].id))
- break;
- t++;
- if (soap_element(soap, t, 0, type)
- || soap_attribute(soap, "xmlns", soap->local_namespaces[i].ns ? soap->local_namespaces[i].ns : SOAP_STR_EOS)
- || soap_element_start_end_out(soap, NULL))
- return soap->error;
- }
- else
- { t = tag;
- if (soap_element_begin_out(soap, t, 0, type))
- return soap->error;
- }
- if (soap_send(soap, soap->tmpbuf))
- return soap->error;
- }
- if (p)
- { wchar_t c;
- const wchar_t *s = *p;
- while ((c = *s++))
- { if (soap_pututf8(soap, (unsigned long)c))
- return soap->error;
- }
- }
- if (t)
- return soap_element_end_out(soap, t);
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_2
-SOAP_FMAC1
-wchar_t **
-SOAP_FMAC2
-soap_inwliteral(struct soap *soap, const char *tag, wchar_t **p)
-{ if (soap_element_begin_in(soap, tag, 1, NULL))
- { if (soap->error != SOAP_NO_TAG || soap_unget(soap, soap_get(soap)) == SOAP_TT)
- return NULL;
- soap->error = SOAP_OK;
- }
- if (!p)
- { if (!(p = (wchar_t**)soap_malloc(soap, sizeof(wchar_t*))))
- return NULL;
- }
- if (soap->body)
- { *p = soap_wstring_in(soap, 0, -1, -1);
- if (!*p)
- return NULL;
- if (!**p && tag && *tag == '-')
- { soap->error = SOAP_NO_TAG;
- return NULL;
- }
- }
- else if (tag && *tag == '-')
- { soap->error = SOAP_NO_TAG;
- return NULL;
- }
- else if (soap->null)
- *p = NULL;
- else
- *p = soap_wstrdup(soap, (wchar_t*)SOAP_STR_EOS);
- if (soap->body && soap_element_end_in(soap, tag))
- return NULL;
- return p;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-const char *
-SOAP_FMAC2
-soap_value(struct soap *soap)
-{ register size_t i;
- register soap_wchar c = 0;
- register char *s = soap->tmpbuf;
- if (!soap->body)
- return SOAP_STR_EOS;
- do c = soap_get(soap);
- while (soap_blank(c));
- for (i = 0; i < sizeof(soap->tmpbuf) - 1; i++)
- { if (c == SOAP_TT || c == SOAP_LT || (int)c == EOF)
- break;
- *s++ = (char)c;
- c = soap_get(soap);
- }
- for (s--; i > 0; i--, s--)
- { if (!soap_blank(*s))
- break;
- }
- s[1] = '\0';
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Element content value='%s'\n", soap->tmpbuf));
- if (c == SOAP_TT || c == SOAP_LT || (int)c == EOF)
- soap_unget(soap, c);
- else if (soap->mode & SOAP_XML_STRICT)
- { soap->error = SOAP_LENGTH;
- return NULL;
- }
-#ifdef WITH_DOM
- if ((soap->mode & SOAP_XML_DOM) && soap->dom)
- soap->dom->data = soap_strdup(soap, soap->tmpbuf);
-#endif
- return soap->tmpbuf; /* return non-null pointer */
-}
-#endif
-
-/******************************************************************************/
-#if !defined(WITH_LEANER) || !defined(WITH_NOHTTP)
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_getline(struct soap *soap, char *s, int len)
-{ int i = len;
- soap_wchar c = 0;
- for (;;)
- { while (--i > 0)
- { c = soap_getchar(soap);
- if (c == '\r' || c == '\n')
- break;
- if ((int)c == EOF)
- return soap->error = SOAP_EOF;
- *s++ = (char)c;
- }
- if (c != '\n')
- c = soap_getchar(soap); /* got \r or something else, now get \n */
- if (c == '\n')
- { *s = '\0';
- if (i+1 == len) /* empty line: end of HTTP/MIME header */
- break;
- c = soap_get0(soap);
- if (c != ' ' && c != '\t') /* HTTP line continuation? */
- break;
- }
- else if ((int)c == EOF)
- return soap->error = SOAP_EOF;
- if (i < 0)
- return soap->error = SOAP_HDR;
- }
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-static size_t
-soap_count_attachments(struct soap *soap)
-{
-#ifndef WITH_LEANER
- register struct soap_multipart *content;
- register size_t count = soap->count;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Calculating the message size with attachments, current count=%lu\n", (unsigned long)count));
- if ((soap->mode & SOAP_ENC_DIME) && !(soap->mode & SOAP_ENC_MTOM))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Calculating the size of DIME attachments\n"));
- for (content = soap->dime.first; content; content = content->next)
- { count += 12 + ((content->size+3)&(~3));
- if (content->id)
- count += ((strlen(content->id)+3)&(~3));
- if (content->type)
- count += ((strlen(content->type)+3)&(~3));
- if (content->options)
- count += ((((unsigned char)content->options[2] << 8) | ((unsigned char)content->options[3]))+7)&(~3);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Size of DIME attachment content is %lu bytes\n", (unsigned long)content->size));
- }
- }
- if ((soap->mode & SOAP_ENC_MIME) && soap->mime.boundary)
- { register size_t n = strlen(soap->mime.boundary);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Calculating the size of MIME attachments\n"));
- for (content = soap->mime.first; content; content = content->next)
- { register const char *s;
- /* count \r\n--boundary\r\n */
- count += 6 + n;
- /* count Content-Type: ...\r\n */
- if (content->type)
- count += 16 + strlen(content->type);
- /* count Content-Transfer-Encoding: ...\r\n */
- s = soap_code_str(mime_codes, content->encoding);
- if (s)
- count += 29 + strlen(s);
- /* count Content-ID: ...\r\n */
- if (content->id)
- count += 14 + strlen(content->id);
- /* count Content-Location: ...\r\n */
- if (content->location)
- count += 20 + strlen(content->location);
- /* count Content-Description: ...\r\n */
- if (content->description)
- count += 23 + strlen(content->description);
- /* count \r\n...content */
- count += 2 + content->size;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Size of MIME attachment content is %lu bytes\n", (unsigned long)content->size));
- }
- /* count \r\n--boundary-- */
- count += 6 + n;
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "New count is %lu bytes\n", (unsigned long)count));
- return count;
-#else
- return soap->count;
-#endif
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-static int
-soap_putdimefield(struct soap *soap, const char *s, size_t n)
-{ if (soap_send_raw(soap, s, n))
- return soap->error;
- return soap_send_raw(soap, SOAP_STR_PADDING, -(long)n&3);
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-char *
-SOAP_FMAC2
-soap_dime_option(struct soap *soap, unsigned short optype, const char *option)
-{ size_t n;
- char *s = NULL;
- if (option)
- { n = strlen(option);
- s = (char*)soap_malloc(soap, n + 5);
- if (s)
- { s[0] = (char)(optype >> 8);
- s[1] = (char)(optype & 0xFF);
- s[2] = (char)(n >> 8);
- s[3] = (char)(n & 0xFF);
- strcpy(s + 4, option);
- }
- }
- return s;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_putdimehdr(struct soap *soap)
-{ unsigned char tmp[12];
- size_t optlen = 0, idlen = 0, typelen = 0;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Put DIME header id='%s'\n", soap->dime.id?soap->dime.id:SOAP_STR_EOS));
- if (soap->dime.options)
- optlen = (((unsigned char)soap->dime.options[2] << 8) | ((unsigned char)soap->dime.options[3])) + 4;
- if (soap->dime.id)
- { idlen = strlen(soap->dime.id);
- if (idlen > 0x0000FFFF)
- idlen = 0x0000FFFF;
- }
- if (soap->dime.type)
- { typelen = strlen(soap->dime.type);
- if (typelen > 0x0000FFFF)
- typelen = 0x0000FFFF;
- }
- tmp[0] = SOAP_DIME_VERSION | (soap->dime.flags & 0x7);
- tmp[1] = soap->dime.flags & 0xF0;
- tmp[2] = (char)(optlen >> 8);
- tmp[3] = (char)(optlen & 0xFF);
- tmp[4] = (char)(idlen >> 8);
- tmp[5] = (char)(idlen & 0xFF);
- tmp[6] = (char)(typelen >> 8);
- tmp[7] = (char)(typelen & 0xFF);
- tmp[8] = (char)(soap->dime.size >> 24);
- tmp[9] = (char)((soap->dime.size >> 16) & 0xFF);
- tmp[10] = (char)((soap->dime.size >> 8) & 0xFF);
- tmp[11] = (char)(soap->dime.size & 0xFF);
- if (soap_send_raw(soap, (char*)tmp, 12)
- || soap_putdimefield(soap, soap->dime.options, optlen)
- || soap_putdimefield(soap, soap->dime.id, idlen)
- || soap_putdimefield(soap, soap->dime.type, typelen))
- return soap->error;
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_putdime(struct soap *soap)
-{ struct soap_multipart *content;
- if (!(soap->mode & SOAP_ENC_DIME))
- return SOAP_OK;
- for (content = soap->dime.first; content; content = content->next)
- { void *handle;
- soap->dime.size = content->size;
- soap->dime.id = content->id;
- soap->dime.type = content->type;
- soap->dime.options = content->options;
- soap->dime.flags = SOAP_DIME_VERSION | SOAP_DIME_MEDIA;
- if (soap->fdimereadopen && ((handle = soap->fdimereadopen(soap, (void*)content->ptr, content->id, content->type, content->options)) || soap->error))
- { size_t size = content->size;
- if (!handle)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "fdimereadopen failed\n"));
- return soap->error;
- }
- if (!size && ((soap->mode & SOAP_ENC_XML) || (soap->mode & SOAP_IO) == SOAP_IO_CHUNK || (soap->mode & SOAP_IO) == SOAP_IO_STORE))
- { size_t chunksize = sizeof(soap->tmpbuf);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Chunked streaming DIME\n"));
- do
- { size = soap->fdimeread(soap, handle, soap->tmpbuf, chunksize);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "fdimeread returned %lu bytes\n", (unsigned long)size));
- if (size < chunksize)
- { soap->dime.flags &= ~SOAP_DIME_CF;
- if (!content->next)
- soap->dime.flags |= SOAP_DIME_ME;
- }
- else
- soap->dime.flags |= SOAP_DIME_CF;
- soap->dime.size = size;
- if (soap_putdimehdr(soap)
- || soap_putdimefield(soap, soap->tmpbuf, size))
- break;
- if (soap->dime.id)
- { soap->dime.flags &= ~(SOAP_DIME_MB | SOAP_DIME_MEDIA);
- soap->dime.id = NULL;
- soap->dime.type = NULL;
- soap->dime.options = NULL;
- }
- } while (size >= chunksize);
- }
- else
- { if (!content->next)
- soap->dime.flags |= SOAP_DIME_ME;
- if (soap_putdimehdr(soap))
- return soap->error;
- do
- { size_t bufsize;
- if (size < sizeof(soap->tmpbuf))
- bufsize = size;
- else
- bufsize = sizeof(soap->tmpbuf);
- if (!(bufsize = soap->fdimeread(soap, handle, soap->tmpbuf, bufsize)))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "fdimeread failed: insufficient data (%lu bytes remaining from %lu bytes)\n", (unsigned long)size, (unsigned long)content->size));
- soap->error = SOAP_EOF;
- break;
- }
- if (soap_send_raw(soap, soap->tmpbuf, bufsize))
- break;
- size -= bufsize;
- } while (size);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "fdimereadclose\n"));
- soap_send_raw(soap, SOAP_STR_PADDING, -(long)soap->dime.size&3);
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "fdimereadclose\n"));
- if (soap->fdimereadclose)
- soap->fdimereadclose(soap, handle);
- }
- else
- { if (!content->next)
- soap->dime.flags |= SOAP_DIME_ME;
- if (soap_putdimehdr(soap)
- || soap_putdimefield(soap, (char*)content->ptr, content->size))
- return soap->error;
- }
- }
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-static char *
-soap_getdimefield(struct soap *soap, size_t n)
-{ register soap_wchar c;
- register size_t i;
- register char *s;
- register char *p = NULL;
- if (n)
- { p = (char*)soap_malloc(soap, n + 1);
- if (p)
- { s = p;
- for (i = n; i > 0; i--)
- { if ((int)(c = soap_get1(soap)) == EOF)
- { soap->error = SOAP_EOF;
- return NULL;
- }
- *s++ = (char)c;
- }
- *s = '\0';
- if ((soap->error = soap_move(soap, -(long)n&3)))
- return NULL;
- }
- else
- soap->error = SOAP_EOM;
- }
- return p;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_getdimehdr(struct soap *soap)
-{ register soap_wchar c;
- register char *s;
- register int i;
- unsigned char tmp[12];
- size_t optlen, idlen, typelen;
- if (!(soap->mode & SOAP_ENC_DIME))
- return soap->error = SOAP_DIME_END;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Get DIME header\n"));
- if (soap->dime.buflen || soap->dime.chunksize)
- { if (soap_move(soap, (long)(soap->dime.size - soap_tell(soap))))
- return soap->error = SOAP_EOF;
- soap_unget(soap, soap_getchar(soap)); /* skip padding and get hdr */
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "... From chunked\n"));
- return SOAP_OK;
- }
- s = (char*)tmp;
- for (i = 12; i > 0; i--)
- { if ((int)(c = soap_getchar(soap)) == EOF)
- return soap->error = SOAP_EOF;
- *s++ = (char)c;
- }
- if ((tmp[0] & 0xF8) != SOAP_DIME_VERSION)
- return soap->error = SOAP_DIME_MISMATCH;
- soap->dime.flags = (tmp[0] & 0x7) | (tmp[1] & 0xF0);
- optlen = (tmp[2] << 8) | tmp[3];
- idlen = (tmp[4] << 8) | tmp[5];
- typelen = (tmp[6] << 8) | tmp[7];
- soap->dime.size = (tmp[8] << 24) | (tmp[9] << 16) | (tmp[10] << 8) | tmp[11];
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "DIME size=%lu flags=0x%X\n", (unsigned long)soap->dime.size, soap->dime.flags));
- if (!(soap->dime.options = soap_getdimefield(soap, optlen)) && soap->error)
- return soap->error;
- if (!(soap->dime.id = soap_getdimefield(soap, idlen)) && soap->error)
- return soap->error;
- if (!(soap->dime.type = soap_getdimefield(soap, typelen)) && soap->error)
- return soap->error;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "DIME id=%s, type=%s, options=%s\n", soap->dime.id?soap->dime.id:SOAP_STR_EOS, soap->dime.type?soap->dime.type:"", soap->dime.options?soap->dime.options+4:SOAP_STR_EOS));
- if (soap->dime.flags & SOAP_DIME_ME)
- soap->mode &= ~SOAP_ENC_DIME;
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_getdime(struct soap *soap)
-{ while (soap->dime.flags & SOAP_DIME_CF)
- { if (soap_getdimehdr(soap))
- return soap->error;
- if (soap_move(soap, (long)soap->dime.size))
- return soap->error = SOAP_EOF;
- }
- if (soap_move(soap, (long)(((soap->dime.size+3)&(~3))-soap_tell(soap))))
- return soap->error = SOAP_EOF;
- for (;;)
- { register struct soap_multipart *content;
- if (soap_getdimehdr(soap))
- break;
- if (soap->fdimewriteopen && ((soap->dime.ptr = (char*)soap->fdimewriteopen(soap, soap->dime.id, soap->dime.type, soap->dime.options)) || soap->error))
- { const char *id, *type, *options;
- size_t size, n;
- if (!soap->dime.ptr)
- return soap->error;
- id = soap->dime.id;
- type = soap->dime.type;
- options = soap->dime.options;
- for (;;)
- { size = soap->dime.size;
- for (;;)
- { n = soap->buflen - soap->bufidx;
- if (size < n)
- n = size;
- if ((soap->error = soap->fdimewrite(soap, (void*)soap->dime.ptr, soap->buf + soap->bufidx, n)))
- break;
- size -= n;
- if (!size)
- { soap->bufidx += n;
- break;
- }
- if (soap_recv(soap))
- { soap->error = SOAP_EOF;
- goto end;
- }
- }
- if (soap_move(soap, -(long)soap->dime.size&3))
- { soap->error = SOAP_EOF;
- break;
- }
- if (!(soap->dime.flags & SOAP_DIME_CF))
- break;
- if (soap_getdimehdr(soap))
- break;
- }
-end:
- if (soap->fdimewriteclose)
- soap->fdimewriteclose(soap, (void*)soap->dime.ptr);
- soap->dime.size = 0;
- soap->dime.id = id;
- soap->dime.type = type;
- soap->dime.options = options;
- }
- else if (soap->dime.flags & SOAP_DIME_CF)
- { const char *id, *type, *options;
- id = soap->dime.id;
- type = soap->dime.type;
- options = soap->dime.options;
- if (soap_new_block(soap) == NULL)
- return SOAP_EOM;
- for (;;)
- { register soap_wchar c;
- register size_t i;
- register char *s;
- s = (char*)soap_push_block(soap, NULL, soap->dime.size);
- if (!s)
- return soap->error = SOAP_EOM;
- for (i = soap->dime.size; i > 0; i--)
- { if ((int)(c = soap_get1(soap)) == EOF)
- return soap->error = SOAP_EOF;
- *s++ = (char)c;
- }
- if (soap_move(soap, -(long)soap->dime.size&3))
- return soap->error = SOAP_EOF;
- if (!(soap->dime.flags & SOAP_DIME_CF))
- break;
- if (soap_getdimehdr(soap))
- return soap->error;
- }
- soap->dime.size = soap->blist->size++; /* allocate one more for '\0' */
- if (!(soap->dime.ptr = soap_save_block(soap, NULL, NULL, 0)))
- return soap->error;
- soap->dime.ptr[soap->dime.size] = '\0'; /* force 0-terminated */
- soap->dime.id = id;
- soap->dime.type = type;
- soap->dime.options = options;
- }
- else
- soap->dime.ptr = soap_getdimefield(soap, soap->dime.size);
- content = soap_new_multipart(soap, &soap->dime.first, &soap->dime.last, soap->dime.ptr, soap->dime.size);
- if (!content)
- return soap->error = SOAP_EOM;
- content->id = soap->dime.id;
- content->type = soap->dime.type;
- content->options = soap->dime.options;
- if (soap->error)
- return soap->error;
- soap_resolve_attachment(soap, content);
- }
- if (soap->error != SOAP_DIME_END)
- return soap->error;
- return soap->error = SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_getmimehdr(struct soap *soap)
-{ struct soap_multipart *content;
- do
- { if (soap_getline(soap, soap->msgbuf, sizeof(soap->msgbuf)))
- return soap->error;
- }
- while (!*soap->msgbuf);
- if (soap->msgbuf[0] == '-' && soap->msgbuf[1] == '-')
- { char *s = soap->msgbuf + strlen(soap->msgbuf) - 1;
- /* remove white space */
- while (soap_blank(*s))
- s--;
- s[1] = '\0';
- if (soap->mime.boundary)
- { if (strcmp(soap->msgbuf + 2, soap->mime.boundary))
- return soap->error = SOAP_MIME_ERROR;
- }
- else
- soap->mime.boundary = soap_strdup(soap, soap->msgbuf + 2);
- if (soap_getline(soap, soap->msgbuf, sizeof(soap->msgbuf)))
- return soap->error;
- }
- if (soap_set_mime_attachment(soap, NULL, 0, SOAP_MIME_NONE, NULL, NULL, NULL, NULL))
- return soap->error = SOAP_EOM;
- content = soap->mime.last;
- for (;;)
- { register char *key = soap->msgbuf;
- register char *val;
- if (!*key)
- break;
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "MIME header: %s\n", key));
- val = strchr(soap->msgbuf, ':');
- if (val)
- { *val = '\0';
- do val++;
- while (*val && *val <= 32);
- if (!soap_tag_cmp(key, "Content-ID"))
- content->id = soap_strdup(soap, val);
- else if (!soap_tag_cmp(key, "Content-Location"))
- content->location = soap_strdup(soap, val);
- else if (!soap_tag_cmp(key, "Content-Disposition"))
- content->id = soap_strdup(soap, soap_get_header_attribute(soap, val, "name"));
- else if (!soap_tag_cmp(key, "Content-Type"))
- content->type = soap_strdup(soap, val);
- else if (!soap_tag_cmp(key, "Content-Description"))
- content->description = soap_strdup(soap, val);
- else if (!soap_tag_cmp(key, "Content-Transfer-Encoding"))
- content->encoding = (enum soap_mime_encoding)soap_code_int(mime_codes, val, (long)SOAP_MIME_NONE);
- }
- if (soap_getline(soap, key, sizeof(soap->msgbuf)))
- return soap->error;
- }
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_getmime(struct soap *soap)
-{ while (soap_get_mime_attachment(soap, NULL))
- ;
- return soap->error;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_post_check_mime_attachments(struct soap *soap)
-{ soap->imode |= SOAP_MIME_POSTCHECK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_check_mime_attachments(struct soap *soap)
-{ if (soap->mode & SOAP_MIME_POSTCHECK)
- return soap_get_mime_attachment(soap, NULL) != NULL;
- return 0;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-struct soap_multipart *
-SOAP_FMAC2
-soap_get_mime_attachment(struct soap *soap, void *handle)
-{ register soap_wchar c = 0;
- register size_t i, m = 0;
- register char *s, *t = NULL;
- register struct soap_multipart *content;
- register short flag = 0;
- if (!(soap->mode & SOAP_ENC_MIME))
- return NULL;
- content = soap->mime.last;
- if (!content)
- { if (soap_getmimehdr(soap))
- return NULL;
- content = soap->mime.last;
- }
- else if (content != soap->mime.first)
- { if (soap->fmimewriteopen && ((content->ptr = (char*)soap->fmimewriteopen(soap, (void*)handle, content->id, content->type, content->description, content->encoding)) || soap->error))
- { if (!content->ptr)
- return NULL;
- }
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Parsing MIME content id=%s type=%s\n", content->id?content->id:SOAP_STR_EOS, content->type?content->type:SOAP_STR_EOS));
- if (!content->ptr && soap_new_block(soap) == NULL)
- { soap->error = SOAP_EOM;
- return NULL;
- }
- for (;;)
- { if (content->ptr)
- s = soap->tmpbuf;
- else if (!(s = (char*)soap_push_block(soap, NULL, sizeof(soap->tmpbuf))))
- { soap->error = SOAP_EOM;
- return NULL;
- }
- for (i = 0; i < sizeof(soap->tmpbuf); i++)
- { if (m > 0)
- { *s++ = *t++;
- m--;
- }
- else
- { if (!flag)
- { c = soap_get1(soap);
- if ((int)c == EOF)
- { soap->error = SOAP_EOF;
- return NULL;
- }
- }
- if (flag || c == '\r')
- { t = soap->msgbuf;
- memset(t, 0, sizeof(soap->msgbuf));
- strcpy(t, "\n--");
- if (soap->mime.boundary)
- strncat(t, soap->mime.boundary, sizeof(soap->msgbuf)-4);
- do c = soap_getchar(soap);
- while (c == *t++);
- if ((int)c == EOF)
- { soap->error = SOAP_EOF;
- return NULL;
- }
- if (!*--t)
- goto end;
- *t = (char)c;
- flag = (c == '\r');
- m = t - soap->msgbuf + 1 - flag;
- t = soap->msgbuf;
- c = '\r';
- }
- *s++ = (char)c;
- }
- }
- if (content->ptr && soap->fmimewrite)
- { if ((soap->error = soap->fmimewrite(soap, (void*)content->ptr, soap->tmpbuf, i)))
- break;
- }
- }
-end:
- *s = '\0'; /* force 0-terminated */
- if (content->ptr)
- { if (!soap->error && soap->fmimewrite)
- soap->error = soap->fmimewrite(soap, (void*)content->ptr, soap->tmpbuf, i);
- if (soap->fmimewriteclose)
- soap->fmimewriteclose(soap, (void*)content->ptr);
- if (soap->error)
- return NULL;
- }
- else
- { content->size = soap_size_block(soap, NULL, i+1)-1;
- content->ptr = soap_save_block(soap, NULL, NULL, 0);
- }
- soap_resolve_attachment(soap, content);
- if (c == '-' && soap_getchar(soap) == '-')
- { soap->mode &= ~SOAP_ENC_MIME;
- if ((soap->mode & SOAP_MIME_POSTCHECK) && soap_end_recv(soap))
- return NULL;
- }
- else
- { while (c != '\r' && (int)c != EOF && soap_blank(c))
- c = soap_getchar(soap);
- if (c != '\r' || soap_getchar(soap) != '\n')
- { soap->error = SOAP_MIME_ERROR;
- return NULL;
- }
- if (soap_getmimehdr(soap))
- return NULL;
- }
- return content;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_match_cid(struct soap *soap, const char *s, const char *t)
-{ register size_t n;
- if (!s)
- return 1;
- if (!strcmp(s, t))
- return 0;
- if (!strncmp(s, "cid:", 4))
- s += 4;
- n = strlen(t);
- if (*t == '<')
- { t++;
- n -= 2;
- }
- if (!strncmp(s, t, n) && !s[n])
- return 0;
- soap_decode(soap->tmpbuf, sizeof(soap->tmpbuf), s, SOAP_STR_EOS);
- if (!strncmp(soap->tmpbuf, t, n) && !soap->tmpbuf[n])
- return 0;
- return 1;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-static void
-soap_resolve_attachment(struct soap *soap, struct soap_multipart *content)
-{ if (content->id)
- { register struct soap_xlist **xp = &soap->xlist;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Resolving attachment data for id=%s\n", content->id));
- while (*xp)
- { register struct soap_xlist *xq = *xp;
- if (!soap_match_cid(soap, xq->id, content->id))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Found matching attachment %s for content id=%s\n", xq->id, content->id));
- *xp = xq->next;
- *xq->ptr = (unsigned char*)content->ptr;
- *xq->size = (int)content->size;
- *xq->type = (char*)content->type;
- if (content->options)
- *xq->options = (char*)content->options;
- else
- *xq->options = (char*)content->description;
- SOAP_FREE(soap, xq);
- }
- else
- xp = &(*xp)->next;
- }
- }
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_putmimehdr(struct soap *soap, struct soap_multipart *content)
-{ const char *s;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "MIME attachment type=%s\n", content->type?content->type:SOAP_STR_EOS));
- if (soap_send3(soap, "\r\n--", soap->mime.boundary, "\r\n"))
- return soap->error;
- if (content->type && soap_send3(soap, "Content-Type: ", content->type, "\r\n"))
- return soap->error;
- s = soap_code_str(mime_codes, content->encoding);
- if (s && soap_send3(soap, "Content-Transfer-Encoding: ", s, "\r\n"))
- return soap->error;
- if (content->id && soap_send3(soap, "Content-ID: ", content->id, "\r\n"))
- return soap->error;
- if (content->location && soap_send3(soap, "Content-Location: ", content->location, "\r\n"))
- return soap->error;
- if (content->description && soap_send3(soap, "Content-Description: ", content->description, "\r\n"))
- return soap->error;
- return soap_send_raw(soap, "\r\n", 2);
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_putmime(struct soap *soap)
-{ struct soap_multipart *content;
- if (!(soap->mode & SOAP_ENC_MIME) || !soap->mime.boundary)
- return SOAP_OK;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Sending MIME attachments\n"));
- for (content = soap->mime.first; content; content = content->next)
- { void *handle;
- if (soap->fmimereadopen && ((handle = soap->fmimereadopen(soap, (void*)content->ptr, content->id, content->type, content->description)) || soap->error))
- { size_t size = content->size;
- if (!handle)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "fmimereadopen failed\n"));
- return soap->error;
- }
- if (soap_putmimehdr(soap, content))
- return soap->error;
- if (!size)
- { if ((soap->mode & SOAP_ENC_XML) || (soap->mode & SOAP_IO) == SOAP_IO_CHUNK || (soap->mode & SOAP_IO) == SOAP_IO_STORE)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Chunked streaming MIME\n"));
- do
- { size = soap->fmimeread(soap, handle, soap->tmpbuf, sizeof(soap->tmpbuf));
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "fmimeread returned %lu bytes\n", (unsigned long)size));
- if (soap_send_raw(soap, soap->tmpbuf, size))
- break;
- } while (size);
- }
- else
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Error: cannot chunk streaming MIME (no HTTP chunking)\n"));
- }
- }
- else
- { do
- { size_t bufsize;
- if (size < sizeof(soap->tmpbuf))
- bufsize = size;
- else
- bufsize = sizeof(soap->tmpbuf);
- if (!(bufsize = soap->fmimeread(soap, handle, soap->tmpbuf, bufsize)))
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "fmimeread failed: insufficient data (%lu bytes remaining from %lu bytes)\n", (unsigned long)size, (unsigned long)content->size));
- soap->error = SOAP_EOF;
- break;
- }
- if (soap_send_raw(soap, soap->tmpbuf, bufsize))
- break;
- size -= bufsize;
- } while (size);
- }
- if (soap->fmimereadclose)
- soap->fmimereadclose(soap, handle);
- }
- else
- { if (soap_putmimehdr(soap, content)
- || soap_send_raw(soap, content->ptr, content->size))
- return soap->error;
- }
- }
- return soap_send3(soap, "\r\n--", soap->mime.boundary, "--");
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_set_dime(struct soap *soap)
-{ soap->omode |= SOAP_ENC_DIME;
- soap->dime.first = NULL;
- soap->dime.last = NULL;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_set_mime(struct soap *soap, const char *boundary, const char *start)
-{ soap->omode |= SOAP_ENC_MIME;
- soap->mime.first = NULL;
- soap->mime.last = NULL;
- soap->mime.boundary = soap_strdup(soap, boundary);
- soap->mime.start = soap_strdup(soap, start);
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_clr_dime(struct soap *soap)
-{ soap->omode &= ~SOAP_ENC_DIME;
- soap->dime.first = NULL;
- soap->dime.last = NULL;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_clr_mime(struct soap *soap)
-{ soap->omode &= ~SOAP_ENC_MIME;
- soap->mime.first = NULL;
- soap->mime.last = NULL;
- soap->mime.boundary = NULL;
- soap->mime.start = NULL;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-static struct soap_multipart*
-soap_new_multipart(struct soap *soap, struct soap_multipart **first, struct soap_multipart **last, char *ptr, size_t size)
-{ struct soap_multipart *content;
- content = (struct soap_multipart*)soap_malloc(soap, sizeof(struct soap_multipart));
- if (content)
- { content->next = NULL;
- content->ptr = ptr;
- content->size = size;
- content->id = NULL;
- content->type = NULL;
- content->options = NULL;
- content->encoding = SOAP_MIME_NONE;
- content->location = NULL;
- content->description = NULL;
- if (!*first)
- *first = content;
- if (*last)
- (*last)->next = content;
- *last = content;
- }
- return content;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_set_dime_attachment(struct soap *soap, char *ptr, size_t size, const char *type, const char *id, unsigned short optype, const char *option)
-{ struct soap_multipart *content = soap_new_multipart(soap, &soap->dime.first, &soap->dime.last, ptr, size);
- if (!content)
- return SOAP_EOM;
- content->id = soap_strdup(soap, id);
- content->type = soap_strdup(soap, type);
- content->options = soap_dime_option(soap, optype, option);
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_set_mime_attachment(struct soap *soap, char *ptr, size_t size, enum soap_mime_encoding encoding, const char *type, const char *id, const char *location, const char *description)
-{ struct soap_multipart *content = soap_new_multipart(soap, &soap->mime.first, &soap->mime.last, ptr, size);
- if (!content)
- return SOAP_EOM;
- content->id = soap_strdup(soap, id);
- content->type = soap_strdup(soap, type);
- content->encoding = encoding;
- content->location = soap_strdup(soap, location);
- content->description = soap_strdup(soap, description);
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-SOAP_FMAC1
-struct soap_multipart*
-SOAP_FMAC2
-soap_next_multipart(struct soap_multipart *content)
-{ if (content)
- return content->next;
- return NULL;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-static void
-soap_select_mime_boundary(struct soap *soap)
-{ while (!soap->mime.boundary || soap_valid_mime_boundary(soap))
- { register char *s = soap->mime.boundary;
- register size_t n = 0;
- if (s)
- n = strlen(s);
- if (n < 16)
- { n = 64;
- s = soap->mime.boundary = (char*)soap_malloc(soap, n + 1);
- if (!s)
- return;
- }
- strcpy(s, "==");
- s += 2;
- n -= 4;
- while (n)
- { *s++ = soap_base64o[soap_random & 0x3F];
- n--;
- }
- strcpy(s, "==");
- }
- if (!soap->mime.start)
- soap->mime.start = "<SOAP-ENV:Envelope>";
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEANER
-#ifndef PALM_1
-static int
-soap_valid_mime_boundary(struct soap *soap)
-{ register struct soap_multipart *content;
- register size_t k;
- if (soap->fmimeread)
- return SOAP_OK;
- k = strlen(soap->mime.boundary);
- for (content = soap->mime.first; content; content = content->next)
- { if (content->ptr && content->size >= k)
- { register const char *p = (const char*)content->ptr;
- register size_t i;
- for (i = 0; i < content->size - k; i++, p++)
- { if (!strncmp(p, soap->mime.boundary, k))
- return SOAP_ERR;
- }
- }
- }
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifdef WITH_GZIP
-#ifndef PALM_1
-static int
-soap_getgziphdr(struct soap *soap)
-{ int i;
- soap_wchar c = 0, f = 0;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Get gzip header\n"));
- for (i = 0; i < 9; i++)
- { if ((int)(c = soap_get1(soap) == EOF))
- return soap->error = SOAP_EOF;
- if (i == 1 && c == 8)
- soap->z_dict = 0;
- if (i == 2)
- f = c;
- }
- if (f & 0x04) /* FEXTRA */
- { for (i = soap_get1(soap) | (soap_get1(soap) << 8); i; i--)
- { if ((int)soap_get1(soap) == EOF)
- return soap->error = SOAP_EOF;
- }
- }
- if (f & 0x08) /* skip FNAME */
- { do
- c = soap_get1(soap);
- while (c && (int)c != EOF);
- }
- if ((int)c != EOF && (f & 0x10)) /* skip FCOMMENT */
- { do
- c = soap_get1(soap);
- while (c && (int)c != EOF);
- }
- if ((int)c != EOF && (f & 0x02)) /* skip FHCRC (CRC32 is used) */
- { if ((int)(c = soap_get1(soap)) != EOF)
- c = soap_get1(soap);
- }
- if ((int)c == EOF)
- return soap->error = SOAP_EOF;
- return SOAP_OK;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_begin_recv(struct soap *soap)
-{ soap_wchar c;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Initializing for input\n"));
- soap->error = SOAP_OK;
- soap_free_temp(soap);
- soap_set_local_namespaces(soap);
- soap->version = 0; /* don't assume we're parsing SOAP content by default */
-#ifndef WITH_NOIDREF
- soap_free_iht(soap);
-#endif
- if ((soap->imode & SOAP_IO) == SOAP_IO_CHUNK)
- soap->omode |= SOAP_IO_CHUNK;
- soap->imode &= ~(SOAP_IO | SOAP_ENC_MIME);
- soap->mode = soap->imode;
- if (!soap->keep_alive)
- { soap->buflen = 0;
- soap->bufidx = 0;
- }
- if (!(soap->mode & SOAP_IO_KEEPALIVE))
- soap->keep_alive = 0;
- soap->ahead = 0;
- soap->peeked = 0;
- soap->level = 0;
- soap->part = SOAP_BEGIN;
- soap->alloced = 0;
- soap->count = 0;
- soap->length = 0;
- soap->cdata = 0;
- *soap->endpoint = '\0';
- soap->action = NULL;
- soap->header = NULL;
- soap->fault = NULL;
- soap->status = 0;
-#ifndef WITH_LEANER
- soap->dom = NULL;
- soap->dime.chunksize = 0;
- soap->dime.buflen = 0;
- soap->dime.list = NULL;
- soap->dime.first = NULL;
- soap->dime.last = NULL;
- soap->mime.list = NULL;
- soap->mime.first = NULL;
- soap->mime.last = NULL;
- soap->mime.boundary = NULL;
- soap->mime.start = NULL;
-#endif
-#ifdef WIN32
-#ifndef UNDER_CE
-#ifndef WITH_FASTCGI
- if (!soap_valid_socket(soap->socket))
-#ifdef __BORLANDC__
- setmode(soap->recvfd, _O_BINARY);
-#else
- _setmode(soap->recvfd, _O_BINARY);
-#endif
-#endif
-#endif
-#endif
-#ifdef WITH_ZLIB
- soap->mode &= ~SOAP_ENC_ZLIB;
- soap->zlib_in = SOAP_ZLIB_NONE;
- soap->zlib_out = SOAP_ZLIB_NONE;
- soap->d_stream->next_in = Z_NULL;
- soap->d_stream->avail_in = 0;
- soap->d_stream->next_out = (Byte*)soap->buf;
- soap->d_stream->avail_out = SOAP_BUFLEN;
- soap->z_ratio_in = 1.0;
-#endif
-#ifdef WITH_OPENSSL
- if (soap->ssl)
- ERR_clear_error();
-#endif
-#ifndef WITH_LEANER
- if (soap->fprepareinitrecv && (soap->error = soap->fprepareinitrecv(soap)))
- return soap->error;
-#endif
- c = soap_getchar(soap);
-#ifdef WITH_GZIP
- if (c == 0x1F)
- { if (soap_getgziphdr(soap))
- return soap->error;
- if (inflateInit2(soap->d_stream, -MAX_WBITS) != Z_OK)
- return soap->error = SOAP_ZLIB_ERROR;
- if (soap->z_dict)
- { if (inflateSetDictionary(soap->d_stream, (const Bytef*)soap->z_dict, soap->z_dict_len) != Z_OK)
- return soap->error = SOAP_ZLIB_ERROR;
- }
- soap->zlib_state = SOAP_ZLIB_INFLATE;
- soap->mode |= SOAP_ENC_ZLIB;
- soap->zlib_in = SOAP_ZLIB_GZIP;
- soap->z_crc = crc32(0L, NULL, 0);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "gzip initialized\n"));
- if (!soap->z_buf)
- soap->z_buf = (char*)SOAP_MALLOC(soap, SOAP_BUFLEN);
- memcpy(soap->z_buf, soap->buf, SOAP_BUFLEN);
- /* should not chunk over plain transport, so why bother to check? */
- /* if ((soap->mode & SOAP_IO) == SOAP_IO_CHUNK) */
- /* soap->z_buflen = soap->bufidx; */
- /* else */
- soap->d_stream->next_in = (Byte*)(soap->z_buf + soap->bufidx);
- soap->d_stream->avail_in = soap->buflen - soap->bufidx;
- soap->z_buflen = soap->buflen;
- soap->buflen = soap->bufidx;
- c = ' ';
- }
-#endif
- while (soap_blank(c))
- c = soap_getchar(soap);
-#ifndef WITH_LEANER
- if (c == '-' && soap_get0(soap) == '-')
- soap->mode |= SOAP_ENC_MIME;
- else if ((c & 0xFFFC) == (SOAP_DIME_VERSION | SOAP_DIME_MB) && (soap_get0(soap) & 0xFFF0) == 0x20)
- soap->mode |= SOAP_ENC_DIME;
- else
-#endif
- { /* skip BOM */
- if (c == 0xEF && (c = soap_getchar(soap)) == 0xBB && (c = soap_getchar(soap)) == 0xBF)
- c = soap_getchar(soap);
- /* skip space */
- while (soap_blank(c))
- c = soap_getchar(soap);
- }
- if ((int)c == EOF)
- return soap->error = SOAP_EOF;
- soap_unget(soap, c);
-#ifndef WITH_NOHTTP
- /* if not XML or MIME/DIME/ZLIB, assume HTTP header */
- if (c != '<' && !(soap->mode & (SOAP_ENC_MIME | SOAP_ENC_DIME | SOAP_ENC_ZLIB)))
- { soap_mode m = soap->imode;
- soap->mode &= ~SOAP_IO;
- soap->error = soap->fparse(soap);
- if (soap->error && soap->error < SOAP_STOP)
- { soap->keep_alive = 0; /* force close later */
- return soap->error;
- }
- if (soap->error == SOAP_STOP)
- return soap->error;
- soap->mode = soap->imode; /* if imode is changed, effectuate */
- soap->imode = m; /* restore imode */
-#ifdef WITH_ZLIB
- soap->mode &= ~SOAP_ENC_ZLIB;
-#endif
- if ((soap->mode & SOAP_IO) == SOAP_IO_CHUNK)
- { soap->chunkbuflen = soap->buflen;
- soap->buflen = soap->bufidx;
- soap->chunksize = 0;
- }
- /* Note: fparse should not use soap_unget to push back last char */
- if (soap_get0(soap) == (int)EOF)
- { if (soap->status == 200)
- return soap->error = SOAP_NO_DATA; /* HTTP OK: always expect data */
- return soap->error = soap->status;
- }
-#ifdef WITH_ZLIB
- if (soap->zlib_in != SOAP_ZLIB_NONE)
- {
-#ifdef WITH_GZIP
- if (soap->zlib_in != SOAP_ZLIB_DEFLATE)
- { c = soap_get1(soap);
- if (c == 0x1F)
- { if (soap_getgziphdr(soap))
- return soap->error;
- if (inflateInit2(soap->d_stream, -MAX_WBITS) != Z_OK)
- return soap->error = SOAP_ZLIB_ERROR;
- soap->z_crc = crc32(0L, NULL, 0);
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "gzip initialized\n"));
- }
- else
- { soap_revget1(soap);
- if (inflateInit(soap->d_stream) != Z_OK)
- return soap->error = SOAP_ZLIB_ERROR;
- soap->zlib_in = SOAP_ZLIB_DEFLATE;
- }
- }
- else
-#endif
- if (inflateInit(soap->d_stream) != Z_OK)
- return soap->error = SOAP_ZLIB_ERROR;
- if (soap->z_dict)
- { if (inflateSetDictionary(soap->d_stream, (const Bytef*)soap->z_dict, soap->z_dict_len) != Z_OK)
- return soap->error = SOAP_ZLIB_ERROR;
- }
- soap->zlib_state = SOAP_ZLIB_INFLATE;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Inflate initialized\n"));
- soap->mode |= SOAP_ENC_ZLIB;
- if (!soap->z_buf)
- soap->z_buf = (char*)SOAP_MALLOC(soap, SOAP_BUFLEN);
- memcpy(soap->z_buf, soap->buf, SOAP_BUFLEN);
- soap->d_stream->next_in = (Byte*)(soap->z_buf + soap->bufidx);
- soap->d_stream->avail_in = soap->buflen - soap->bufidx;
- soap->z_buflen = soap->buflen;
- soap->buflen = soap->bufidx;
- }
-#endif
-#ifndef WITH_LEANER
- if (soap->fpreparerecv && (soap->mode & SOAP_IO) != SOAP_IO_CHUNK && soap->buflen > soap->bufidx)
- { int r;
- if ((r = soap->fpreparerecv(soap, soap->buf + soap->bufidx, soap->buflen - soap->bufidx)))
- return soap->error = r;
- }
-#endif
- if (soap->error)
- { if (soap->error == SOAP_FORM && soap->fform)
- { soap->error = soap->fform(soap);
- if (soap->error == SOAP_OK)
- soap->error = SOAP_STOP; /* prevents further processing */
- }
- return soap->error;
- }
- }
-#endif
-#ifndef WITH_LEANER
- if (soap->mode & SOAP_ENC_MIME)
- { if (soap_getmimehdr(soap))
- return soap->error;
- if (soap->mime.start)
- { do
- { if (!soap->mime.last->id)
- break;
- if (!soap_match_cid(soap, soap->mime.start, soap->mime.last->id))
- break;
- } while (soap_get_mime_attachment(soap, NULL));
- }
- if (soap_get_header_attribute(soap, soap->mime.first->type, "application/dime"))
- soap->mode |= SOAP_ENC_DIME;
- }
- if (soap->mode & SOAP_ENC_DIME)
- { if (soap_getdimehdr(soap))
- return soap->error;
- if (soap->dime.flags & SOAP_DIME_CF)
- { DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Chunked DIME SOAP message\n"));
- soap->dime.chunksize = soap->dime.size;
- if (soap->buflen - soap->bufidx >= soap->dime.chunksize)
- { soap->dime.buflen = soap->buflen;
- soap->buflen = soap->bufidx + soap->dime.chunksize;
- }
- else
- soap->dime.chunksize -= soap->buflen - soap->bufidx;
- }
- soap->count = soap->buflen - soap->bufidx;
- }
-#endif
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_envelope_begin_out(struct soap *soap)
-{
-#ifndef WITH_LEANER
- size_t n = 0;
- if ((soap->mode & SOAP_ENC_MIME) && soap->mime.boundary && soap->mime.start && strlen(soap->mime.boundary) + strlen(soap->mime.start) < sizeof(soap->tmpbuf) - 80 )
- { const char *s;
- if ((soap->mode & SOAP_ENC_DIME) && !(soap->mode & SOAP_ENC_MTOM))
- s = "application/dime";
- else if (soap->version == 2)
- { if (soap->mode & SOAP_ENC_MTOM)
- s = "application/xop+xml; charset=utf-8; type=\"application/soap+xml\"";
- else
- s = "application/soap+xml; charset=utf-8";
- }
- else if (soap->mode & SOAP_ENC_MTOM)
- s = "application/xop+xml; charset=utf-8; type=\"text/xml\"";
- else
- s = "text/xml; charset=utf-8";
- sprintf(soap->tmpbuf, "--%s\r\nContent-Type: %s\r\nContent-Transfer-Encoding: binary\r\nContent-ID: %s\r\n\r\n", soap->mime.boundary, s, soap->mime.start);
- n = strlen(soap->tmpbuf);
- if (soap_send_raw(soap, soap->tmpbuf, n))
- return soap->error;
- }
- if (soap->mode & SOAP_IO_LENGTH)
- soap->dime.size = soap->count; /* DIME in MIME correction */
- if (!(soap->mode & SOAP_IO_LENGTH) && (soap->mode & SOAP_ENC_DIME))
- { if (soap_putdimehdr(soap))
- return soap->error;
- }
-#endif
- soap->part = SOAP_IN_ENVELOPE;
- return soap_element_begin_out(soap, "SOAP-ENV:Envelope", 0, NULL);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_envelope_end_out(struct soap *soap)
-{ if (soap_element_end_out(soap, "SOAP-ENV:Envelope") || ((soap->mode & SOAP_XML_INDENT) && soap_send_raw(soap, "\r\n", 2)))
- return soap->error;
-#ifndef WITH_LEANER
- if ((soap->mode & SOAP_IO_LENGTH) && (soap->mode & SOAP_ENC_DIME) && !(soap->mode & SOAP_ENC_MTOM))
- { soap->dime.size = soap->count - soap->dime.size; /* DIME in MIME correction */
- sprintf(soap->id, soap->dime_id_format, 0);
- soap->dime.id = soap->id;
- if (soap->local_namespaces)
- { if (soap->local_namespaces[0].out)
- soap->dime.type = (char*)soap->local_namespaces[0].out;
- else
- soap->dime.type = (char*)soap->local_namespaces[0].ns;
- }
- soap->dime.options = NULL;
- soap->dime.flags = SOAP_DIME_MB | SOAP_DIME_ABSURI;
- if (!soap->dime.first)
- soap->dime.flags |= SOAP_DIME_ME;
- soap->count += 12 + ((strlen(soap->dime.id)+3)&(~3)) + (soap->dime.type ? ((strlen(soap->dime.type)+3)&(~3)) : 0);
- }
- if ((soap->mode & SOAP_ENC_DIME) && !(soap->mode & SOAP_ENC_MTOM))
- return soap_send_raw(soap, SOAP_STR_PADDING, -(long)soap->dime.size&3);
-#endif
- soap->part = SOAP_END_ENVELOPE;
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-static char*
-soap_get_http_body(struct soap *soap)
-{
-#ifndef WITH_LEAN
- register size_t l = 0, n = 0;
- register char *s;
- /* get HTML body of HTTP error content */
- if (!(soap->mode & SOAP_ENC_ZLIB) && (soap->mode & SOAP_IO) != SOAP_IO_CHUNK)
- { n = soap->length;
- if (!n)
- return NULL;
- }
-#ifdef WITH_FAST
- soap->labidx = 0; /* use look-aside buffer */
-#else
- if (soap_new_block(soap) == NULL)
- return NULL;
-#endif
- for (;;)
- {
-#ifdef WITH_FAST
- register size_t i, k;
- if (soap_append_lab(soap, NULL, 0)) /* allocate more space in look-aside buffer if necessary */
- return NULL;
- s = soap->labbuf + soap->labidx; /* space to populate */
- k = soap->lablen - soap->labidx; /* number of bytes available */
- soap->labidx = soap->lablen; /* claim this space */
-#else
- register size_t i, k = SOAP_BLKLEN;
- if (!(s = (char*)soap_push_block(soap, NULL, k)))
- return NULL;
-#endif
- for (i = 0; i < k; i++)
- { register soap_wchar c = soap_getchar(soap);
- if ((int)c == EOF)
- goto end;
- *s++ = (char)(c & 0xFF);
- l++;
- if (n > 0 && l >= n)
- goto end;
- }
- }
-end:
- *s = '\0';
-#ifdef WITH_FAST
- s = soap_strdup(soap, soap->labbuf);
-#else
- soap_size_block(soap, NULL, i+1);
- s = soap_save_block(soap, NULL, 0);
-#endif
- return s;
-#else
- return NULL;
-#endif
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_envelope_begin_in(struct soap *soap)
-{ register struct Namespace *p;
- soap->part = SOAP_IN_ENVELOPE;
- if (soap_element_begin_in(soap, "SOAP-ENV:Envelope", 0, NULL))
- { if (soap->error == SOAP_TAG_MISMATCH
- && !soap_element_begin_in(soap, "Envelope", 0, NULL))
- soap->error = SOAP_VERSIONMISMATCH;
- else if (soap->status)
- soap->error = soap->status;
- return soap->error;
- }
- p = soap->local_namespaces;
- if (p)
- { const char *ns = p[0].out;
- if (!ns)
- ns = p[0].ns;
- if (!strcmp(ns, soap_env1))
- { soap->version = 1; /* make sure we use SOAP 1.1 */
- if (p[1].out)
- SOAP_FREE(soap, p[1].out);
- if ((p[1].out = (char*)SOAP_MALLOC(soap, sizeof(soap_enc1))))
- strcpy(p[1].out, soap_enc1);
- }
- else if (!strcmp(ns, soap_env2))
- { soap->version = 2; /* make sure we use SOAP 1.2 */
- if (p[1].out)
- SOAP_FREE(soap, p[1].out);
- if ((p[1].out = (char*)SOAP_MALLOC(soap, sizeof(soap_enc2))))
- strcpy(p[1].out, soap_enc2);
- }
- }
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_envelope_end_in(struct soap *soap)
-{ soap->part = SOAP_END_ENVELOPE;
- return soap_element_end_in(soap, "SOAP-ENV:Envelope");
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_body_begin_out(struct soap *soap)
-{ soap->part = SOAP_IN_BODY;
- if (soap->version == 1)
- soap->encoding = 1;
-#ifndef WITH_LEAN
- if ((soap->mode & SOAP_XML_SEC) && soap_set_attr(soap, "wsu:Id", "Body", 1))
- return soap->error;
-#endif
- if (soap_element(soap, "SOAP-ENV:Body", 0, NULL))
- return soap->error;
- return soap_element_start_end_out(soap, NULL);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_body_end_out(struct soap *soap)
-{ if (soap_element_end_out(soap, "SOAP-ENV:Body"))
- return soap->error;
- soap->part = SOAP_END_BODY;
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_body_begin_in(struct soap *soap)
-{ soap->part = SOAP_IN_BODY;
- if (soap_element_begin_in(soap, "SOAP-ENV:Body", 0, NULL))
- return soap->error;
- if (!soap->body)
- soap->part = SOAP_NO_BODY;
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_body_end_in(struct soap *soap)
-{ if (soap->part == SOAP_NO_BODY)
- return soap->error = SOAP_OK;
- soap->part = SOAP_END_BODY;
- return soap_element_end_in(soap, "SOAP-ENV:Body");
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_recv_header(struct soap *soap)
-{ if (soap_getheader(soap) && soap->error == SOAP_TAG_MISMATCH)
- soap->error = SOAP_OK;
- if (soap->error == SOAP_OK && soap->fheader)
- soap->error = soap->fheader(soap);
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_set_endpoint(struct soap *soap, const char *endpoint)
-{ register const char *s;
- register size_t i, n;
- soap->endpoint[0] = '\0';
- soap->host[0] = '\0';
- soap->path[0] = '/';
- soap->path[1] = '\0';
- soap->port = 80;
- if (!endpoint || !*endpoint)
- return;
-#ifdef WITH_OPENSSL
- if (!soap_tag_cmp(endpoint, "https:*"))
- soap->port = 443;
-#endif
- strncpy(soap->endpoint, endpoint, sizeof(soap->endpoint) - 1);
- soap->endpoint[sizeof(soap->endpoint) - 1] = '\0';
- s = strchr(endpoint, ':');
- if (s && s[1] == '/' && s[2] == '/')
- s += 3;
- else
- s = endpoint;
- n = strlen(s);
- if (n >= sizeof(soap->host))
- n = sizeof(soap->host) - 1;
-#ifdef WITH_IPV6
- if (s[0] == '[')
- { s++;
- for (i = 0; i < n; i++)
- { if (s[i] == ']')
- { s++;
- --n;
- break;
- }
- soap->host[i] = s[i];
- }
- }
- else
- { for (i = 0; i < n; i++)
- { soap->host[i] = s[i];
- if (s[i] == '/' || s[i] == ':')
- break;
- }
- }
-#else
- for (i = 0; i < n; i++)
- { soap->host[i] = s[i];
- if (s[i] == '/' || s[i] == ':')
- break;
- }
-#endif
- soap->host[i] = '\0';
- if (s[i] == ':')
- { soap->port = (int)soap_strtol(s + i + 1, NULL, 10);
- for (i++; i < n; i++)
- if (s[i] == '/')
- break;
- }
- if (i < n && s[i])
- { strncpy(soap->path, s + i, sizeof(soap->path));
- soap->path[sizeof(soap->path) - 1] = '\0';
- }
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_connect(struct soap *soap, const char *endpoint, const char *action)
-{ return soap_connect_command(soap, SOAP_POST, endpoint, action);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_connect_command(struct soap *soap, int http_command, const char *endpoints, const char *action)
-{ char *endpoint;
- const char *s;
- if (endpoints && (s = strchr(endpoints, ' ')))
- { endpoint = (char*)SOAP_MALLOC(soap, strlen(endpoints) + 1);
- for (;;)
- { strncpy(endpoint, endpoints, s - endpoints);
- endpoint[s - endpoints] = '\0';
- if (soap_try_connect_command(soap, http_command, endpoint, action) != SOAP_TCP_ERROR)
- break;
- if (!*s)
- break;
- soap->error = SOAP_OK;
- while (*s == ' ')
- s++;
- endpoints = s;
- s = strchr(endpoints, ' ');
- if (!s)
- s = endpoints + strlen(endpoints);
- }
- SOAP_FREE(soap, endpoint);
- }
- else
- soap_try_connect_command(soap, http_command, endpoints, action);
- return soap->error;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-static int
-soap_try_connect_command(struct soap *soap, int http_command, const char *endpoint, const char *action)
-{ char host[sizeof(soap->host)];
- int port;
- size_t count;
- soap->error = SOAP_OK;
- strcpy(host, soap->host); /* save previous host name: if != then reconnect */
- port = soap->port; /* save previous port to compare */
- soap->status = http_command;
- soap_set_endpoint(soap, endpoint);
-#ifndef WITH_LEANER
- if (soap->fconnect)
- { if ((soap->error = soap->fconnect(soap, endpoint, soap->host, soap->port)))
- return soap->error;
- }
- else
-#endif
- if (soap->fopen && *soap->host)
- { if (!soap->keep_alive || !soap_valid_socket(soap->socket) || strcmp(soap->host, host) || soap->port != port || !soap->fpoll || soap->fpoll(soap))
- { soap->keep_alive = 0; /* to force close */
- soap->omode &= ~SOAP_IO_UDP; /* to force close */
- soap_closesock(soap);
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Connect/reconnect to host='%s' path='%s' port=%d\n", soap->host, soap->path, soap->port));
-#ifndef WITH_LEAN
- if (!strncmp(endpoint, "soap.udp:", 9))
- soap->omode |= SOAP_IO_UDP;
-#endif
- soap->socket = soap->fopen(soap, endpoint, soap->host, soap->port);
- if (soap->error)
- return soap->error;
- soap->keep_alive = ((soap->omode & SOAP_IO_KEEPALIVE) != 0);
- }
- }
- count = soap_count_attachments(soap);
- if (soap_begin_send(soap))
- return soap->error;
- if (http_command == SOAP_GET)
- { soap->mode &= ~SOAP_IO;
- soap->mode |= SOAP_IO_BUFFER;
- }
-#ifndef WITH_NOHTTP
- soap->action = soap_strdup(soap, action);
- if ((soap->mode & SOAP_IO) != SOAP_IO_STORE && !(soap->mode & SOAP_ENC_XML) && endpoint)
- { unsigned int k = soap->mode;
- soap->mode &= ~(SOAP_IO | SOAP_ENC_ZLIB);
- if ((k & SOAP_IO) != SOAP_IO_FLUSH)
- soap->mode |= SOAP_IO_BUFFER;
- if ((soap->error = soap->fpost(soap, endpoint, soap->host, soap->port, soap->path, action, count)))
- return soap->error;
-#ifndef WITH_LEANER
- if ((k & SOAP_IO) == SOAP_IO_CHUNK)
- { if (soap_flush(soap))
- return soap->error;
- }
-#endif
- soap->mode = k;
- }
- if (http_command == SOAP_GET)
- return soap_end_send(soap);
-#endif
- return SOAP_OK;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-char*
-SOAP_FMAC2
-soap_s2base64(struct soap *soap, const unsigned char *s, char *t, int n)
-{ register int i;
- register unsigned long m;
- register char *p;
- if (!t)
- t = (char*)soap_malloc(soap, (n + 2) / 3 * 4 + 1);
- if (!t)
- return NULL;
- p = t;
- t[0] = '\0';
- if (!s)
- return p;
- for (; n > 2; n -= 3, s += 3)
- { m = s[0];
- m = (m << 8) | s[1];
- m = (m << 8) | s[2];
- for (i = 4; i > 0; m >>= 6)
- t[--i] = soap_base64o[m & 0x3F];
- t += 4;
- }
- t[0] = '\0';
- if (n > 0)
- { m = 0;
- for (i = 0; i < n; i++)
- m = (m << 8) | *s++;
- for (; i < 3; i++)
- m <<= 8;
- for (i++; i > 0; m >>= 6)
- t[--i] = soap_base64o[m & 0x3F];
- for (i = 3; i > n; i--)
- t[i] = '=';
- t[4] = '\0';
- }
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_base642s(struct soap *soap, const char *s, char *t, size_t l, int *n)
-{ register int i, j, c;
- register unsigned long m;
- register const char *p;
- if (!s || !*s)
- { if (n)
- *n = 0;
- if (soap->error)
- return NULL;
- return SOAP_NON_NULL;
- }
- if (!t)
- { l = (strlen(s) + 3) / 4 * 3;
- t = (char*)soap_malloc(soap, l);
- }
- if (!t)
- return NULL;
- p = t;
- if (n)
- *n = 0;
- for (;;)
- { for (i = 0; i < SOAP_BLKLEN; i++)
- { m = 0;
- j = 0;
- while (j < 4)
- { c = *s++;
- if (c == '=' || !c)
- { i *= 3;
- switch (j)
- { case 2:
- *t++ = (char)((m >> 4) & 0xFF);
- i++;
- break;
- case 3:
- *t++ = (char)((m >> 10) & 0xFF);
- *t++ = (char)((m >> 2) & 0xFF);
- i += 2;
- }
- if (n)
- *n += i;
- return p;
- }
- c -= '+';
- if (c >= 0 && c <= 79)
- { int b = soap_base64i[c];
- if (b >= 64)
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- m = (m << 6) + b;
- j++;
- }
- else if (!soap_blank(c + '+'))
- { soap->error = SOAP_TYPE;
- return NULL;
- }
- }
- *t++ = (char)((m >> 16) & 0xFF);
- *t++ = (char)((m >> 8) & 0xFF);
- *t++ = (char)(m & 0xFF);
- if (l < 3)
- { if (n)
- *n += i;
- return p;
- }
- l -= 3;
- }
- if (n)
- *n += 3 * SOAP_BLKLEN;
- }
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-char*
-SOAP_FMAC2
-soap_s2hex(struct soap *soap, const unsigned char *s, char *t, int n)
-{ register char *p;
- if (!t)
- t = (char*)soap_malloc(soap, 2 * n + 1);
- if (!t)
- return NULL;
- p = t;
- t[0] = '\0';
- if (s)
- { for (; n > 0; n--)
- { register int m = *s++;
- *t++ = (char)((m >> 4) + (m > 159 ? 'a' - 10 : '0'));
- m &= 0x0F;
- *t++ = (char)(m + (m > 9 ? 'a' - 10 : '0'));
- }
- }
- *t++ = '\0';
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-SOAP_FMAC1
-const char*
-SOAP_FMAC2
-soap_hex2s(struct soap *soap, const char *s, char *t, size_t l, int *n)
-{ register const char *p;
- if (!s || !*s)
- { if (n)
- *n = 0;
- if (soap->error)
- return NULL;
- return SOAP_NON_NULL;
- }
- if (!t)
- { l = strlen(s) / 2;
- t = (char*)soap_malloc(soap, l);
- }
- if (!t)
- return NULL;
- p = t;
- while (l)
- { register int d1, d2;
- d1 = *s++;
- if (!d1)
- break;
- d2 = *s++;
- if (!d2)
- break;
- *t++ = ((d1 >= 'A' ? (d1 & 0x7) + 9 : d1 - '0') << 4) + (d2 >= 'A' ? (d2 & 0x7) + 9 : d2 - '0');
- l--;
- }
- if (n)
- *n = (int)(t - p);
- return p;
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOHTTP
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_puthttphdr(struct soap *soap, int status, size_t count)
-{ if (soap->status != SOAP_GET)
- { register const char *s = "text/xml; charset=utf-8";
- register int err = SOAP_OK;
-#ifndef WITH_LEANER
- register const char *r = NULL;
-#endif
- if ((status == SOAP_FILE || soap->status == SOAP_POST_FILE) && soap->http_content)
- s = soap->http_content;
- else if (status == SOAP_HTML)
- s = "text/html; charset=utf-8";
- else if (count || ((soap->omode & SOAP_IO) == SOAP_IO_CHUNK))
- { if (soap->version == 2)
- s = "application/soap+xml; charset=utf-8";
- }
-#ifndef WITH_LEANER
- if (soap->mode & (SOAP_ENC_DIME | SOAP_ENC_MTOM))
- { if (soap->mode & SOAP_ENC_MTOM)
- { if (soap->version == 2)
- r = "application/soap+xml";
- else
- r = "text/xml";
- s = "application/xop+xml";
- }
- else
- s = "application/dime";
- }
- if ((soap->mode & SOAP_ENC_MIME) && soap->mime.boundary && strlen(soap->mime.boundary) + strlen(soap->mime.start ? soap->mime.start : SOAP_STR_EOS) < sizeof(soap->tmpbuf) - 80)
- { register const char *t = strchr(s, ';');
- sprintf(soap->tmpbuf, "multipart/related; charset=utf-8; boundary=\"%s\"; type=\"", soap->mime.boundary);
- if (t)
- { strncat(soap->tmpbuf, s, t - s);
- soap->tmpbuf[sizeof(soap->tmpbuf)-1] = '\0';
- }
- else
- strcat(soap->tmpbuf, s);
- if (soap->mime.start)
- { strcat(soap->tmpbuf, "\"; start=\"");
- strcat(soap->tmpbuf, soap->mime.start);
- }
- strcat(soap->tmpbuf, "\"");
- if (r)
- { strcat(soap->tmpbuf, "; start-info=\"");
- strcat(soap->tmpbuf, r);
- strcat(soap->tmpbuf, "\"");
- }
- s = soap->tmpbuf;
- }
-#endif
- if (s && (err = soap->fposthdr(soap, "Content-Type", s)))
- return err;
-#ifdef WITH_ZLIB
- if ((soap->omode & SOAP_ENC_ZLIB))
- {
-#ifdef WITH_GZIP
- err = soap->fposthdr(soap, "Content-Encoding", soap->zlib_out == SOAP_ZLIB_DEFLATE ? "deflate" : "gzip");
-#else
- err = soap->fposthdr(soap, "Content-Encoding", "deflate");
-#endif
- if (err)
- return err;
- }
-#endif
-#ifndef WITH_LEANER
- if ((soap->omode & SOAP_IO) == SOAP_IO_CHUNK)
- err = soap->fposthdr(soap, "Transfer-Encoding", "chunked");
- else
-#endif
- if (s)
- { sprintf(soap->tmpbuf, "%lu", (unsigned long)count);
- err = soap->fposthdr(soap, "Content-Length", soap->tmpbuf);
- }
- if (err)
- return err;
- }
- return soap->fposthdr(soap, "Connection", soap->keep_alive ? "keep-alive" : "close");
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-static const char*
-soap_set_validation_fault(struct soap *soap, const char *s, const char *t)
-{ if (*soap->tag)
- sprintf(soap->msgbuf, "Validation constraint violation: %s%s in element '%s'", s, t?t:SOAP_STR_EOS, soap->tag);
- else
- sprintf(soap->msgbuf, "Validation constraint violation: %s%s", s, t?t:SOAP_STR_EOS);
- return soap->msgbuf;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_set_fault(struct soap *soap)
-{ const char **c = soap_faultcode(soap);
- const char **s = soap_faultstring(soap);
- if (soap->fseterror)
- soap->fseterror(soap, c, s);
- if (!*c)
- { if (soap->version == 2)
- *c = "SOAP-ENV:Sender";
- else
- *c = "SOAP-ENV:Client";
- }
- if (*s)
- return;
- switch (soap->error)
- {
-#ifndef WITH_LEAN
- case SOAP_CLI_FAULT:
- *s = "Client fault";
- break;
- case SOAP_SVR_FAULT:
- *s = "Server fault";
- break;
- case SOAP_TAG_MISMATCH:
- *s = soap_set_validation_fault(soap, "tag name or namespace mismatch", NULL);
- break;
- case SOAP_TYPE:
- *s = soap_set_validation_fault(soap, "data type mismatch ", soap->type);
- break;
- case SOAP_SYNTAX_ERROR:
- *s = "Well-formedness violation";
- break;
- case SOAP_NO_TAG:
- *s = "No XML root element";
- break;
- case SOAP_MUSTUNDERSTAND:
- *c = "SOAP-ENV:MustUnderstand";
- sprintf(soap->msgbuf, "The data in element '%s' must be understood but cannot be handled", soap->tag);
- *s = soap->msgbuf;
- break;
- case SOAP_VERSIONMISMATCH:
- *c = "SOAP-ENV:VersionMismatch";
- *s = "Invalid SOAP message or SOAP version mismatch";
- break;
- case SOAP_DATAENCODINGUNKNOWN:
- *c = "SOAP-ENV:DataEncodingUnknown";
- *s = "Unsupported SOAP data encoding";
- break;
- case SOAP_NAMESPACE:
- *s = soap_set_validation_fault(soap, "namespace error", NULL);
- break;
- case SOAP_USER_ERROR:
- *s = "User error";
- break;
- case SOAP_FATAL_ERROR:
- *s = "Fatal error";
- break;
- case SOAP_NO_METHOD:
- sprintf(soap->msgbuf, "Method '%s' not implemented: method name or namespace not recognized", soap->tag);
- *s = soap->msgbuf;
- break;
- case SOAP_NO_DATA:
- *s = "Data required for operation";
- break;
- case SOAP_GET_METHOD:
- *s = "HTTP GET method not implemented";
- break;
- case SOAP_PUT_METHOD:
- *s = "HTTP PUT method not implemented";
- break;
- case SOAP_HEAD_METHOD:
- *s = "HTTP HEAD method not implemented";
- break;
- case SOAP_HTTP_METHOD:
- *s = "HTTP method not implemented";
- break;
- case SOAP_EOM:
- *s = "Out of memory";
- break;
- case SOAP_MOE:
- *s = "Memory overflow or memory corruption error";
- break;
- case SOAP_HDR:
- *s = "Header line too long";
- break;
- case SOAP_IOB:
- *s = "Array index out of bounds";
- break;
- case SOAP_NULL:
- *s = soap_set_validation_fault(soap, "nil not allowed", NULL);
- break;
- case SOAP_DUPLICATE_ID:
- *s = soap_set_validation_fault(soap, "multiple definitions of id ", soap->id);
- if (soap->version == 2)
- *soap_faultsubcode(soap) = "SOAP-ENC:DuplicateID";
- break;
- case SOAP_MISSING_ID:
- *s = soap_set_validation_fault(soap, "missing id for ref ", soap->id);
- if (soap->version == 2)
- *soap_faultsubcode(soap) = "SOAP-ENC:MissingID";
- break;
- case SOAP_HREF:
- *s = soap_set_validation_fault(soap, "incompatible object type ref/id pair ", soap->id);
- break;
- case SOAP_FAULT:
- break;
-#ifndef WITH_NOIO
- case SOAP_UDP_ERROR:
- *s = "Message too large for UDP packet";
- break;
- case SOAP_TCP_ERROR:
- *s = tcp_error(soap);
- break;
-#endif
- case SOAP_HTTP_ERROR:
- *s = "An HTTP processing error occurred";
- break;
- case SOAP_SSL_ERROR:
-#ifdef WITH_OPENSSL
- *s = "SSL error";
-#else
- *s = "OpenSSL not installed: recompile with -DWITH_OPENSSL";
-#endif
- break;
- case SOAP_PLUGIN_ERROR:
- *s = "Plugin registry error";
- break;
- case SOAP_DIME_ERROR:
- *s = "DIME format error";
- break;
- case SOAP_DIME_HREF:
- *s = "DIME href to missing attachment";
- break;
- case SOAP_DIME_MISMATCH:
- *s = "DIME version/transmission error";
- break;
- case SOAP_DIME_END:
- *s = "End of DIME error";
- break;
- case SOAP_MIME_ERROR:
- *s = "MIME format error";
- break;
- case SOAP_MIME_HREF:
- *s = "MIME href to missing attachment";
- break;
- case SOAP_MIME_END:
- *s = "End of MIME error";
- break;
- case SOAP_ZLIB_ERROR:
-#ifdef WITH_ZLIB
- sprintf(soap->msgbuf, "Zlib/gzip error: '%s'", soap->d_stream->msg?soap->d_stream->msg:SOAP_STR_EOS);
- *s = soap->msgbuf;
-#else
- *s = "Zlib/gzip not installed for (de)compression: recompile with -DWITH_GZIP";
-#endif
- break;
- case SOAP_REQUIRED:
- *s = soap_set_validation_fault(soap, "missing required attribute", NULL);
- break;
- case SOAP_PROHIBITED:
- *s = soap_set_validation_fault(soap, "prohibited attribute present", NULL);
- break;
- case SOAP_OCCURS:
- *s = soap_set_validation_fault(soap, "occurrence violation", NULL);
- break;
- case SOAP_LENGTH:
- *s = soap_set_validation_fault(soap, "content range or length violation", NULL);
- break;
- case SOAP_FD_EXCEEDED:
- *s = "Maximum number of open connections was reached (no define HAVE_POLL): increase FD_SETSIZE";
- break;
- case SOAP_STOP:
- *s = "Stopped: no response to be sent or received (informative)";
- break;
-#endif
- case SOAP_EOF:
-#ifndef WITH_NOIO
- strcpy(soap->msgbuf, soap_strerror(soap));
-#ifndef WITH_LEAN
- if (strlen(soap->msgbuf) + 25 < sizeof(soap->msgbuf))
- { memmove(soap->msgbuf + 25, soap->msgbuf, strlen(soap->msgbuf) + 1);
- memcpy(soap->msgbuf, "End of file or no input: ", 25);
- }
-#endif
- *s = soap->msgbuf;
- break;
-#else
- *s = "End of file or no input";
- break;
-#endif
- default:
-#ifndef WITH_NOHTTP
-#ifndef WITH_LEAN
- if (soap->error > 200 && soap->error < 600)
- { sprintf(soap->msgbuf, "HTTP Error: %d %s", soap->error, http_error(soap, soap->error));
- *s = soap->msgbuf;
- }
- else
-#endif
-#endif
- { sprintf(soap->msgbuf, "Error %d", soap->error);
- *s = soap->msgbuf;
- }
- }
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_send_fault(struct soap *soap)
-{ register int status = soap->error;
- if (status == SOAP_STOP)
- return soap_closesock(soap);
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Sending back fault struct for error code %d\n", soap->error));
- soap->keep_alive = 0; /* to terminate connection */
- soap_set_fault(soap);
- if (soap->error < 200 && soap->error != SOAP_FAULT)
- soap->header = NULL;
- if (status != SOAP_EOF || (!soap->recv_timeout && !soap->send_timeout))
- { int r = 1;
-#ifndef WITH_NOIO
- if (soap->fpoll && soap->fpoll(soap))
- r = 0;
-#ifndef WITH_LEAN
- else if (soap_valid_socket(soap->socket))
- { r = tcp_select(soap, soap->socket, SOAP_TCP_SELECT_RCV | SOAP_TCP_SELECT_SND, 0);
- if (r > 0)
- { if (!(r & SOAP_TCP_SELECT_SND)
- || ((r & SOAP_TCP_SELECT_RCV)
- && recv(soap->socket, soap->tmpbuf, 1, MSG_PEEK) < 0))
- r = 0;
- }
- }
-#endif
-#endif
- if (r > 0)
- { soap->error = SOAP_OK;
- soap_serializeheader(soap);
- soap_serializefault(soap);
- soap_begin_count(soap);
- if (soap->mode & SOAP_IO_LENGTH)
- { soap_envelope_begin_out(soap);
- soap_putheader(soap);
- soap_body_begin_out(soap);
- soap_putfault(soap);
- soap_body_end_out(soap);
- soap_envelope_end_out(soap);
- }
- soap_end_count(soap);
- if (soap_response(soap, status)
- || soap_envelope_begin_out(soap)
- || soap_putheader(soap)
- || soap_body_begin_out(soap)
- || soap_putfault(soap)
- || soap_body_end_out(soap)
- || soap_envelope_end_out(soap))
- return soap_closesock(soap);
- soap_end_send(soap);
- }
- }
- soap->error = status;
- return soap_closesock(soap);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_recv_fault(struct soap *soap, int check)
-{ register int status = soap->error;
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Check if receiving SOAP Fault\n"));
- if (!check)
- { /* try getfault when no tag or tag mismatched at level 2, otherwise ret */
- if (soap->error != SOAP_NO_TAG
- && (soap->error != SOAP_TAG_MISMATCH || soap->level != 2))
- return soap->error;
- }
- soap->error = SOAP_OK;
- if (soap_getfault(soap))
- { /* check flag set: check if SOAP Fault is present, if not just return */
- if (check && soap->error == SOAP_TAG_MISMATCH && soap->level == 2)
- return soap->error = SOAP_OK;
- DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Error: soap_get_soapfault() failed. Is this a SOAP message at all?\n"));
- *soap_faultcode(soap) = (soap->version == 2 ? "SOAP-ENV:Sender" : "SOAP-ENV:Client");
- soap->error = status;
- soap_set_fault(soap);
- }
- else
- { register const char *s = *soap_faultcode(soap);
- if (!soap_match_tag(soap, s, "SOAP-ENV:Server") || !soap_match_tag(soap, s, "SOAP-ENV:Receiver"))
- status = SOAP_SVR_FAULT;
- else if (!soap_match_tag(soap, s, "SOAP-ENV:Client") || !soap_match_tag(soap, s, "SOAP-ENV:Sender"))
- status = SOAP_CLI_FAULT;
- else if (!soap_match_tag(soap, s, "SOAP-ENV:MustUnderstand"))
- status = SOAP_MUSTUNDERSTAND;
- else if (!soap_match_tag(soap, s, "SOAP-ENV:VersionMismatch"))
- status = SOAP_VERSIONMISMATCH;
- else
- { DBGLOG(TEST,SOAP_MESSAGE(fdebug, "Received SOAP Fault code %s\n", s));
- status = SOAP_FAULT;
- }
- if (!soap_body_end_in(soap))
- soap_envelope_end_in(soap);
- }
- soap_end_recv(soap);
- soap->error = status;
- return soap_closesock(soap);
-}
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOHTTP
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_send_empty_response(struct soap *soap, int httpstatuscode)
-{ register soap_mode m = soap->omode;
- soap->count = 0;
- if ((m & SOAP_IO) == SOAP_IO_CHUNK)
- soap->omode = (m & ~SOAP_IO) | SOAP_IO_BUFFER;
- if (soap_response(soap, httpstatuscode) || soap_end_send(soap))
- { soap->omode = m;
- return soap_closesock(soap);
- }
- soap->omode = m;
- return soap->error = SOAP_STOP; /* stops the server's response */
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOHTTP
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_recv_empty_response(struct soap *soap)
-{ if (!soap_begin_recv(soap))
- soap_end_recv(soap);
- else if (soap->error == SOAP_NO_DATA || soap->error == 202)
- soap->error = SOAP_OK;
- return soap_closesock(soap);
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_NOIO
-#ifndef PALM_1
-static const char*
-soap_strerror(struct soap *soap)
-{ register int err = soap->errnum;
- if (err)
- {
-#ifndef WIN32
- return strerror(err);
-#else
-#ifndef UNDER_CE
- DWORD len;
- *soap->msgbuf = '\0';
- len = FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR)soap->msgbuf, (DWORD)sizeof(soap->msgbuf), NULL);
-#else
- DWORD i, len;
- *soap->msgbuf = '\0';
- len = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, err, 0, (LPTSTR)soap->msgbuf, (DWORD)(sizeof(soap->msgbuf)/sizeof(TCHAR)), NULL);
- for (i = 0; i <= len; i++)
- { if (((TCHAR*)soap->msgbuf)[i] < 0x80)
- soap->msgbuf[i] = (char)((TCHAR*)soap->msgbuf)[i];
- else
- soap->msgbuf[i] = '?';
- }
-#endif
-#endif
- }
- else
- { char *s = soap->msgbuf;
-#ifndef WITH_LEAN
- int rt = soap->recv_timeout, st = soap->send_timeout;
- int ru = ' ', su = ' ';
-#endif
- strcpy(s, "Operation interrupted or timed out");
-#ifndef WITH_LEAN
- if (rt < 0)
- { rt = -rt;
- ru = 'u';
- }
- if (st < 0)
- { st = -st;
- su = 'u';
- }
- if (rt)
- sprintf(s + strlen(s), " (%d%cs receive delay)", rt, ru);
- if (st)
- sprintf(s + strlen(s), " (%d%cs send delay)", st, su);
-#endif
- }
- return soap->msgbuf;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-static int
-soap_set_error(struct soap *soap, const char *faultcode, const char *faultsubcodeQName, const char *faultstring, const char *faultdetailXML, int soaperror)
-{ *soap_faultcode(soap) = faultcode;
- if (faultsubcodeQName)
- *soap_faultsubcode(soap) = faultsubcodeQName;
- *soap_faultstring(soap) = faultstring;
- if (faultdetailXML && *faultdetailXML)
- { register const char **s = soap_faultdetail(soap);
- if (s)
- *s = faultdetailXML;
- }
- return soap->error = soaperror;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_set_sender_error(struct soap *soap, const char *faultstring, const char *faultdetailXML, int soaperror)
-{ return soap_set_error(soap, soap->version == 2 ? "SOAP-ENV:Sender" : "SOAP-ENV:Client", NULL, faultstring, faultdetailXML, soaperror);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_set_receiver_error(struct soap *soap, const char *faultstring, const char *faultdetailXML, int soaperror)
-{ return soap_set_error(soap, soap->version == 2 ? "SOAP-ENV:Receiver" : "SOAP-ENV:Server", NULL, faultstring, faultdetailXML, soaperror);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-static int
-soap_copy_fault(struct soap *soap, const char *faultcode, const char *faultsubcodeQName, const char *faultstring, const char *faultdetailXML)
-{ char *r = NULL, *s = NULL, *t = NULL;
- if (faultsubcodeQName)
- r = soap_strdup(soap, faultsubcodeQName);
- if (faultstring)
- s = soap_strdup(soap, faultstring);
- if (faultdetailXML)
- t = soap_strdup(soap, faultdetailXML);
- return soap_set_error(soap, faultcode, r, s, t, SOAP_FAULT);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_sender_fault(struct soap *soap, const char *faultstring, const char *faultdetailXML)
-{ return soap_sender_fault_subcode(soap, NULL, faultstring, faultdetailXML);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_sender_fault_subcode(struct soap *soap, const char *faultsubcodeQName, const char *faultstring, const char *faultdetailXML)
-{ return soap_copy_fault(soap, soap->version == 2 ? "SOAP-ENV:Sender" : "SOAP-ENV:Client", faultsubcodeQName, faultstring, faultdetailXML);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_receiver_fault(struct soap *soap, const char *faultstring, const char *faultdetailXML)
-{ return soap_receiver_fault_subcode(soap, NULL, faultstring, faultdetailXML);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_receiver_fault_subcode(struct soap *soap, const char *faultsubcodeQName, const char *faultstring, const char *faultdetailXML)
-{ return soap_copy_fault(soap, soap->version == 2 ? "SOAP-ENV:Receiver" : "SOAP-ENV:Server", faultsubcodeQName, faultstring, faultdetailXML);
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-#ifndef WITH_NOSTDLIB
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_print_fault(struct soap *soap, FILE *fd)
-{ if (soap_check_state(soap))
- fprintf(fd, "Error: soap struct state not initialized\n");
- else if (soap->error)
- { const char *c, *v = NULL, *s, **d;
- d = soap_faultcode(soap);
- if (!*d)
- soap_set_fault(soap);
- c = *d;
- if (soap->version == 2)
- v = *soap_faultsubcode(soap);
- s = *soap_faultstring(soap);
- d = soap_faultdetail(soap);
- fprintf(fd, "%s%d fault: %s [%s]\n\"%s\"\nDetail: %s\n", soap->version ? "SOAP 1." : "Error ", soap->version ? (int)soap->version : soap->error, c, v ? v : "no subcode", s ? s : "[no reason]", d && *d ? *d : "[no detail]");
- }
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifdef __cplusplus
-#ifndef WITH_LEAN
-#ifndef WITH_NOSTDLIB
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_stream_fault(struct soap *soap, std::ostream& os)
-{ if (soap_check_state(soap))
- os << "Error: soap struct state not initialized\n";
- else if (soap->error)
- { const char *c, *v = NULL, *s, **d;
- d = soap_faultcode(soap);
- if (!*d)
- soap_set_fault(soap);
- c = *d;
- if (soap->version == 2)
- v = *soap_faultsubcode(soap);
- s = *soap_faultstring(soap);
- d = soap_faultdetail(soap);
- os << (soap->version ? "SOAP 1." : "Error ")
- << (soap->version ? (int)soap->version : soap->error)
- << " fault: " << c
- << "[" << (v ? v : "no subcode") << "]"
- << std::endl
- << "\"" << (s ? s : "[no reason]") << "\""
- << std::endl
- << "Detail: " << (d && *d ? *d : "[no detail]")
- << std::endl;
- }
-}
-#endif
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef WITH_LEAN
-#ifndef WITH_NOSTDLIB
-SOAP_FMAC1
-char*
-SOAP_FMAC2
-soap_sprint_fault(struct soap *soap, char *buf, size_t len)
-{ if (soap_check_state(soap))
- strncpy(buf, "Error: soap struct not initialized", len);
- else if (soap->error)
- { const char *c, *v = NULL, *s, **d;
- d = soap_faultcode(soap);
- if (!*d)
- soap_set_fault(soap);
- c = *d;
- if (soap->version == 2)
- v = *soap_faultsubcode(soap);
- s = *soap_faultstring(soap);
- d = soap_faultdetail(soap);
-#ifdef HAVE_SNPRINTF
-# ifdef WIN32
- _snprintf
-# else
- snprintf
-# endif
- (buf, len, "%s%d fault: %s [%s]\n\"%s\"\nDetail: %s\n", soap->version ? "SOAP 1." : "Error ", soap->version ? (int)soap->version : soap->error, c, v ? v : "no subcode", s ? s : "[no reason]", d && *d ? *d : "[no detail]");
-#else
- if (len > 40 + (v ? strlen(v) : 0) + (s ? strlen(s) : 0) + (d && *d ? strlen(*d) : 0))
- sprintf(buf, "%s%d fault: %s [%s]\n\"%s\"\nDetail: %s\n", soap->version ? "SOAP 1." : "Error ", soap->version ? (int)soap->version : soap->error, c, v ? v : "no subcode", s ? s : "[no reason]", d && *d ? *d : "[no detail]");
- else if (len > 40)
- sprintf(buf, "%s%d fault: %s\n", soap->version ? "SOAP 1." : "Error ", soap->version ? (int)soap->version : soap->error, c);
- else
- buf[0] = '\0';
-#endif
- }
- return buf;
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-#ifndef WITH_NOSTDLIB
-SOAP_FMAC1
-void
-SOAP_FMAC2
-soap_print_fault_location(struct soap *soap, FILE *fd)
-{
-#ifndef WITH_LEAN
- int i, j, c1, c2;
- if (soap->error && soap->error != SOAP_STOP && soap->bufidx <= soap->buflen && soap->buflen > 0 && soap->buflen <= SOAP_BUFLEN)
- { i = (int)soap->bufidx - 1;
- if (i <= 0)
- i = 0;
- c1 = soap->buf[i];
- soap->buf[i] = '\0';
- if ((int)soap->buflen >= i + 1024)
- j = i + 1023;
- else
- j = (int)soap->buflen - 1;
- c2 = soap->buf[j];
- soap->buf[j] = '\0';
- fprintf(fd, "%s%c\n<!-- ** HERE ** -->\n", soap->buf, c1);
- if (soap->bufidx < soap->buflen)
- fprintf(fd, "%s\n", soap->buf + soap->bufidx);
- soap->buf[i] = c1;
- soap->buf[j] = c2;
- }
-#endif
-}
-#endif
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-SOAP_FMAC1
-int
-SOAP_FMAC2
-soap_register_plugin_arg(struct soap *soap, int (*fcreate)(struct soap*, struct soap_plugin*, void*), void *arg)
-{ register struct soap_plugin *p;
- register int r;
- if (!(p = (struct soap_plugin*)SOAP_MALLOC(soap, sizeof(struct soap_plugin))))
- return soap->error = SOAP_EOM;
- p->id = NULL;
- p->data = NULL;
- p->fcopy = NULL;
- p->fdelete = NULL;
- r = fcreate(soap, p, arg);
- if (!r && p->fdelete)
- { p->next = soap->plugins;
- soap->plugins = p;
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Registered '%s' plugin\n", p->id));
- return SOAP_OK;
- }
- DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Could not register plugin '%s': plugin returned error %d (or fdelete callback not set)\n", p->id?p->id:"?", r));
- SOAP_FREE(soap, p);
- return r;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_1
-static void *
-fplugin(struct soap *soap, const char *id)
-{ register struct soap_plugin *p;
- for (p = soap->plugins; p; p = p->next)
- if (p->id == id || !strcmp(p->id, id))
- return p->data;
- return NULL;
-}
-#endif
-
-/******************************************************************************/
-#ifndef PALM_2
-SOAP_FMAC1
-void *
-SOAP_FMAC2
-soap_lookup_plugin(struct soap *soap, const char *id)
-{ return soap->fplugin(soap, id);
-}
-#endif
-
-/******************************************************************************/
-#ifdef __cplusplus
-}
-#endif
-
-/******************************************************************************\
- *
- * C++ soap struct methods
- *
-\******************************************************************************/
-
-#ifdef __cplusplus
-soap::soap()
-{ soap_init(this);
-}
-#endif
-
-/******************************************************************************/
-#ifdef __cplusplus
-soap::soap(soap_mode m)
-{ soap_init1(this, m);
-}
-#endif
-
-/******************************************************************************/
-#ifdef __cplusplus
-soap::soap(soap_mode im, soap_mode om)
-{ soap_init2(this, im, om);
-}
-#endif
-
-/******************************************************************************/
-#ifdef __cplusplus
-soap::soap(const struct soap& soap)
-{ soap_copy_context(this, &soap);
-}
-#endif
-
-/******************************************************************************/
-#ifdef __cplusplus
-soap::~soap()
-{ soap_destroy(this);
- soap_end(this);
- soap_done(this);
-}
-#endif
-
-/******************************************************************************/
diff --git a/usr/src/lib/libkmsagent/common/SOAP/stdsoap2.h b/usr/src/lib/libkmsagent/common/SOAP/stdsoap2.h
deleted file mode 100644
index a9161b80e6..0000000000
--- a/usr/src/lib/libkmsagent/common/SOAP/stdsoap2.h
+++ /dev/null
@@ -1,2444 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/*
- stdsoap2.h 2.7.17
-
- gSOAP runtime engine
-
-gSOAP XML Web services tools
-Copyright (C) 2000-2010, Robert van Engelen, Genivia Inc., All Rights Reserved.
-This part of the software is released under ONE of the following licenses:
-GPL, or the gSOAP public license, or Genivia's license for commercial use.
---------------------------------------------------------------------------------
-Contributors:
-
-Wind River Systems, Inc., for the following additions
- - vxWorks compatible
---------------------------------------------------------------------------------
-gSOAP public license.
-
-The contents of this file are subject to the gSOAP Public License Version 1.3
-(the "License"); you may not use this file except in compliance with the
-License. You may obtain a copy of the License at
-http://www.cs.fsu.edu/~engelen/soaplicense.html
-Software distributed under the License is distributed on an "AS IS" basis,
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-for the specific language governing rights and limitations under the License.
-
-The Initial Developer of the Original Code is Robert A. van Engelen.
-Copyright (C) 2000-2010, Robert van Engelen, Genivia Inc., All Rights Reserved.
---------------------------------------------------------------------------------
-GPL license.
-
-This program is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free Software
-Foundation; either version 2 of the License, or (at your option) any later
-version.
-
-This program is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program; if not, write to the Free Software Foundation, Inc., 59 Temple
-Place, Suite 330, Boston, MA 02111-1307 USA
-
-Author contact information:
-engelen@genivia.com / engelen@acm.org
-
-This program is released under the GPL with the additional exemption that
-compiling, linking, and/or using OpenSSL is allowed.
---------------------------------------------------------------------------------
-A commercial use license is available from Genivia, Inc., contact@genivia.com
---------------------------------------------------------------------------------
-*/
-
-#ifdef WITH_SOAPDEFS_H
-# include "soapdefs.h" /* include user-defined stuff */
-#endif
-
-#ifndef _THREAD_SAFE
-# define _THREAD_SAFE
-#endif
-
-#ifndef OPENSERVER
-# ifndef _REENTRANT
-# define _REENTRANT
-# endif
-#endif
-
-#ifndef SOAP_FMAC1 /* stdsoap2.h declaration macro */
-# define SOAP_FMAC1
-#endif
-
-#ifndef SOAP_FMAC2 /* stdsoap2.h declaration macro */
-# define SOAP_FMAC2
-#endif
-
-#ifndef SOAP_FMAC3 /* (de)serializer declaration macro */
-# define SOAP_FMAC3
-#endif
-
-#ifndef SOAP_FMAC3S /* string converter for (de)serializer declaration macro */
-# define SOAP_FMAC3S SOAP_FMAC3
-#endif
-
-#ifndef SOAP_FMAC4 /* (de)serializer declaration macro */
-# define SOAP_FMAC4
-#endif
-
-#ifndef SOAP_FMAC4S /* string converter for (de)serializer declaration macro */
-# define SOAP_FMAC4S SOAP_FMAC4
-#endif
-
-#ifndef SOAP_FMAC5 /* stub/skeleton declaration macro */
-# define SOAP_FMAC5
-#endif
-
-#ifndef SOAP_FMAC6 /* stub/skeleton declaration macro */
-# define SOAP_FMAC6
-#endif
-
-#ifndef SOAP_CMAC /* class declaration macro */
-# define SOAP_CMAC
-#endif
-
-#ifndef SOAP_NMAC /* namespace table declaration macro */
-# define SOAP_NMAC
-#endif
-
-#ifndef SOAP_SOURCE_STAMP
-# define SOAP_SOURCE_STAMP(str)
-#endif
-
-/* gSOAP 2.7.4 and higher: fast look-aside buffering is stable */
-#ifndef WITH_FAST
-# define WITH_FAST
-#endif
-
-/* gSOAP 2.7.15 and higher: always retain CDATA in literal XML, unless WITH_LEAN or WITH_NOCDATA */
-#ifndef WITH_LEAN
-# ifndef WITH_NOCDATA
-# ifndef WITH_CDATA
-# define WITH_CDATA
-# endif
-# endif
-#endif
-
-#ifdef WITH_LEANER
-# ifndef WITH_LEAN
-# define WITH_LEAN
-# endif
-#endif
-
-#ifdef WITH_LEAN
-# ifdef WITH_COOKIES
-# error "Cannot build WITH_LEAN code WITH_COOKIES enabled"
-# endif
-#endif
-
-#ifndef STDSOAP_H
-#define STDSOAP_H
-
-#if defined(__vxworks) || defined(__VXWORKS__)
-# ifndef VXWORKS
-# define VXWORKS
-# endif
-#endif
-
-#ifdef _WIN32
-# ifndef WIN32
-# define WIN32
-# endif
-#endif
-
-#ifdef _WIN32_WCE
-# ifndef UNDER_CE
-# define UNDER_CE _WIN32_WCE
-# endif
-#endif
-
-#ifdef UNDER_CE
-# ifndef WIN32
-# define WIN32
-# endif
-#endif
-
-#ifdef __BORLANDC__
-# ifdef __WIN32__
-# ifndef WIN32
-# define WIN32
-# endif
-# endif
-#endif
-
-#ifdef __CYGWIN__
-# ifndef CYGWIN
-# define CYGWIN
-# endif
-#endif
-
-#ifdef __SYMBIAN32__
-# define SYMBIAN
-# undef WIN32
-#endif
-
-#if defined(__palmos__) || defined(PALM_GCC) || defined(__PALMOS_TRAPS__)
-# ifndef PALM
-# define PALM
-# endif
-#endif
-
-#if defined(__hpux)
-# ifndef HP_UX
-# define HP_UX
-# endif
-#endif
-
-#if defined(__digital__) && defined(__unix__)
-# ifndef TRU64
-# define TRU64
-# endif
-#endif
-
-#ifdef __MVS__
-# ifndef OS390
-# define OS390
-# endif
-#endif
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-# if defined(WITH_OPENSSL)
-# ifndef HAVE_OPENSSL_SSL_H
-# undef WITH_OPENSSL
-# endif
-# endif
-# if defined(WITH_ZLIB) || defined(WITH_GZIP)
-# ifndef HAVE_ZLIB_H
-# undef WITH_ZLIB
-# undef WITH_GZIP
-# endif
-# endif
-#else
-# if defined(UNDER_CE)
-# define WITH_LEAN
-# define HAVE_SSCANF
-# elif defined(WIN32)
-# define HAVE_SNPRINTF
-# define HAVE_STRRCHR
-# define HAVE_STRTOD
-# define HAVE_SSCANF
-# define HAVE_STRTOL
-# define HAVE_STRTOUL
-# define HAVE_SYS_TIMEB_H
-# define HAVE_FTIME
-# define HAVE_GMTIME
-# define HAVE_WCTOMB
-# define HAVE_MBTOWC
-# define SOAP_LONG_FORMAT "%I64d"
-# define SOAP_ULONG_FORMAT "%I64u"
-# elif defined(CYGWIN)
-# define HAVE_POLL
-# define HAVE_SNPRINTF
-# define HAVE_STRRCHR
-# define HAVE_STRTOD
-# define HAVE_SSCANF
-# define HAVE_STRTOL
-# define HAVE_STRTOUL
-# define HAVE_SYS_TIMEB_H
-# define HAVE_FTIME
-# define HAVE_RAND_R
-# define HAVE_GMTIME_R
-# define HAVE_LOCALTIME_R
-# define HAVE_WCTOMB
-# define HAVE_MBTOWC
-# elif defined(__APPLE__)
-# define HAVE_POLL
-# define HAVE_SNPRINTF
-# define HAVE_STRRCHR
-# define HAVE_STRTOD
-# define HAVE_SSCANF
-# define HAVE_STRTOD_L
-# define HAVE_SSCANF_L
-# define HAVE_SPRINTF_L
-# define HAVE_STRTOL
-# define HAVE_STRTOUL
-# define HAVE_RAND_R
-# define HAVE_GMTIME_R
-# define HAVE_LOCALTIME_R
-# define HAVE_TIMEGM
-# define HAVE_WCTOMB
-# define HAVE_MBTOWC
-# elif defined(_AIX43)
-# define HAVE_SNPRINTF
-# define HAVE_STRRCHR
-# define HAVE_STRTOD
-# define HAVE_SSCANF
-# define HAVE_STRTOL
-# define HAVE_STRTOUL
-# define HAVE_SYS_TIMEB_H
-# define HAVE_FTIME
-# define HAVE_RAND_R
-# define HAVE_GMTIME_R
-# define HAVE_LOCALTIME_R
-# define HAVE_WCTOMB
-# define HAVE_MBTOWC
-# elif defined(_AIX41)
-# define HAVE_SNPRINTF
-# define HAVE_STRRCHR
-# define HAVE_STRTOD
-# define HAVE_SSCANF
-# define HAVE_STRTOL
-# define HAVE_STRTOUL
-# define HAVE_SYS_TIMEB_H
-# define HAVE_WCTOMB
-# define HAVE_MBTOWC
-# elif defined(HP_UX)
-# define HAVE_SNPRINTF
-# define HAVE_STRRCHR
-# define HAVE_STRTOD
-# define HAVE_SSCANF
-# define HAVE_STRTOL
-# define HAVE_STRTOUL
-# define HAVE_SYS_TIMEB_H
-# define HAVE_FTIME
-# define HAVE_RAND_R
-# define HAVE_GMTIME_R
-# define HAVE_LOCALTIME_R
-# define HAVE_WCTOMB
-# define HAVE_MBTOWC
-# elif defined(FREEBSD) || defined(__FreeBSD__) || defined(OPENBSD)
-# define HAVE_POLL
-# define HAVE_SNPRINTF
-# define HAVE_STRRCHR
-# define HAVE_STRTOD
-# define HAVE_SSCANF
-# define HAVE_STRTOD_L
-# define HAVE_SSCANF_L
-# define HAVE_SPRINTF_L
-# define HAVE_STRTOL
-# define HAVE_STRTOUL
-# define HAVE_STRTOLL
-# define HAVE_STRTOULL
-# define HAVE_GETTIMEOFDAY
-# define HAVE_RAND_R
-# define HAVE_GMTIME_R
-# define HAVE_LOCALTIME_R
-# define HAVE_WCTOMB
-# define HAVE_MBTOWC
-# define SOAP_LONG_FORMAT "%qd"
-# define SOAP_ULONG_FORMAT "%qu"
-# elif defined(__VMS)
-# define HAVE_SNPRINTF
-# define HAVE_STRRCHR
-# define HAVE_STRTOD
-# define HAVE_SSCANF
-# define HAVE_STRTOL
-# define HAVE_STRTOUL
-# define HAVE_SYS_TIMEB_H
-# define HAVE_FTIME
-# define HAVE_RAND_R
-# define HAVE_GMTIME_R
-# define HAVE_LOCALTIME_R
-# define HAVE_WCTOMB
-# define HAVE_MBTOWC
-# elif defined(__GLIBC__) || defined(__GNU__)
-# define HAVE_POLL
-# define HAVE_SNPRINTF
-# define HAVE_STRRCHR
-# define HAVE_STRTOD
-# define HAVE_SSCANF
-# define HAVE_STRTOD_L
-# define HAVE_SSCANF_L
-# define HAVE_SPRINTF_L
-# define HAVE_STRTOL
-# define HAVE_STRTOUL
-# define HAVE_STRTOLL
-# define HAVE_STRTOULL
-# define HAVE_SYS_TIMEB_H
-# define HAVE_FTIME
-# define HAVE_RAND_R
-# define HAVE_GMTIME_R
-# define HAVE_LOCALTIME_R
-# define HAVE_TIMEGM
-# define HAVE_WCTOMB
-# define HAVE_MBTOWC
-# define HAVE_ISNAN
-# elif defined(TRU64)
-# define HAVE_SNPRINTF
-# define HAVE_STRRCHR
-# define HAVE_STRTOD
-# define HAVE_SSCANF
-# define HAVE_STRTOL
-# define HAVE_STRTOUL
-# define HAVE_GETTIMEOFDAY
-# define HAVE_SYS_TIMEB_H
-# define HAVE_RAND_R
-# define HAVE_GMTIME_R
-# define HAVE_LOCALTIME_R
-# define __USE_STD_IOSTREAM
-# define HAVE_WCTOMB
-# define HAVE_MBTOWC
-# define SOAP_LONG_FORMAT "%ld"
-# define SOAP_ULONG_FORMAT "%lu"
-# elif defined(MAC_CARBON)
-# define WITH_NOIO
-# define HAVE_SNPRINTF
-# define HAVE_STRRCHR
-# define HAVE_STRTOD
-# define HAVE_SSCANF
-# define HAVE_STRTOD_L
-# define HAVE_SSCANF_L
-# define HAVE_SPRINTF_L
-# define HAVE_STRTOL
-# define HAVE_STRTOUL
-# define HAVE_FTIME
-# define HAVE_RAND_R
-# define HAVE_GETHOSTBYNAME_R
-# define HAVE_GMTIME_R
-# define HAVE_LOCALTIME_R
-# define HAVE_WCTOMB
-# define HAVE_MBTOWC
-# elif defined(PALM)
-# define WITH_LEAN
-# define HAVE_STRTOD /* strtod() is defined in palmFunctions.h */
-# include <stdlib.h> /* Needs to be included before unix headers */
-# include <sys_types.h>
-# define IGNORE_STDIO_STUBS
-# include <StdIOPalm.h>
-# define O_NONBLOCK FNONBIO
-# include <sys_socket.h>
-# include "palmFunctions.h"
-# elif defined(SYMBIAN)
-# define WITH_LEAN
-# define WITH_NONAMESPACES
-# define HAVE_STRTOD /* use STRTOD since sscanf doesn't seem to work */
-# include <e32def.h>
-# include <sys/ioctl.h>
-# elif defined(VXWORKS)
-# ifdef _WRS_KERNEL
-# define _POSIX_THREADS 1
-# endif
-# define HAVE_STRRCHR
-# define HAVE_STRTOD
-# define HAVE_SSCANF
-# define HAVE_STRTOL
-# define HAVE_STRTOUL
-# define HAVE_GMTIME
-# define HAVE_LOCALTIME
-# define HAVE_MKTIME
-# elif defined(OS390)
-# define HAVE_SNPRINTF
-# define HAVE_STRRCHR
-# define HAVE_STRTOD
-# define HAVE_SSCANF
-# define HAVE_STRTOL
-# define HAVE_STRTOUL
-# define HAVE_SYS_TIMEB_H
-# define HAVE_FTIME
-# define HAVE_RAND_R
-# define HAVE_GMTIME_R
-# define HAVE_LOCALTIME_R
-# define HAVE_WCTOMB
-# define HAVE_MBTOWC
-# elif defined(AS400)
-# define HAVE_SNPRINTF
-# define HAVE_STRRCHR
-# define HAVE_STRTOD
-# define HAVE_SSCANF
-# define HAVE_STRTOL
-# define HAVE_STRTOUL
-# define HAVE_SYS_TIMEB_H
-# define HAVE_FTIME
-# define HAVE_RAND_R
-# define HAVE_GMTIME_R
-# define HAVE_LOCALTIME_R
-# define HAVE_WCTOMB
-# define HAVE_MBTOWC
-# elif defined(__QNX__) || defined(QNX)
-/* QNX does not have a working version of strtof */
-# undef HAVE_STRTOF
-# define HAVE_POLL
-# define HAVE_SNPRINTF
-# define HAVE_STRRCHR
-# define HAVE_STRTOD
-# define HAVE_SSCANF
-# define HAVE_STRTOL
-# define HAVE_STRTOUL
-# define HAVE_SYS_TIMEB_H
-# define HAVE_FTIME
-# define HAVE_RAND_R
-# define HAVE_GETHOSTBYNAME_R
-# define HAVE_GMTIME_R
-# define HAVE_LOCALTIME_R
-# define HAVE_WCTOMB
-# define HAVE_MBTOWC
-# define LONG64 long
-# define ULONG64 unsigned LONG64
-# define SOAP_LONG_FORMAT "%ld"
-# define SOAP_ULONG_FORMAT "%lu"
-# else
-/* Default assumptions for supported functions */
-# define HAVE_SNPRINTF
-# define HAVE_STRRCHR
-# define HAVE_STRTOD
-# define HAVE_SSCANF
-# define HAVE_STRTOL
-# define HAVE_STRTOUL
-# define HAVE_SYS_TIMEB_H
-# define HAVE_FTIME
-# define HAVE_RAND_R
-# define HAVE_GETHOSTBYNAME_R
-# define HAVE_GMTIME_R
-# define HAVE_LOCALTIME_R
-# ifdef MB_LEN_MAX
-# define HAVE_WCTOMB
-# define HAVE_MBTOWC
-# endif
-# endif
-#endif
-
-/* native Win and HP-UX compilers don't like empty structs */
-#if defined(WIN32) || defined(HP_UX) || defined(_AIX41) || defined(_AIX43) || defined(VXWORKS)
-# define WITH_NOEMPTYSTRUCT
-#endif
-
-#ifdef HP_UX
-# undef HAVE_STRTOLL
-# undef HAVE_STRTOULL
-#endif
-
-/* older OpenVMS TCP/IP stacks cannot handle 65536 bytes */
-#ifdef __VMS
-# ifndef SOAP_BUFLEN
-# define SOAP_BUFLEN (65535)
-# endif
-#endif
-
-#ifdef WITH_C_LOCALE
-# include <xlocale.h>
-#else
-# undef HAVE_STRTOF_L
-# undef HAVE_STRTOD_L
-# undef HAVE_SSCANF_L
-# undef HAVE_SPRINTF_L
-#endif
-
-#ifndef WITH_NOSTDLIB
-# include <stdlib.h>
-# ifndef PALM
-# include <stdio.h>
-# include <string.h>
-# endif
-# include <ctype.h>
-# include <limits.h>
-#endif
-
-#ifdef HAVE_POLL
-# include <poll.h>
-#endif
-
-#if defined(__cplusplus) && !defined(WITH_LEAN) && !defined(WITH_COMPAT)
-# include <string>
-# include <iostream>
-#endif
-
-#ifdef WITH_NOHTTP
-# ifndef WITH_NOIO
-# define WITH_NOIO
-# undef WITH_COOKIES
-# endif
-#endif
-
-/* Suggestion when SOAP_FD_EXCEEDED error occurs:
- Some systems allow increasing FD_SETSIZE before including sys/types.h:
-#define FD_SETSIZE (2048)
-*/
-
-#ifndef UNDER_CE
-# ifndef PALM
-# ifndef WITH_NOIO
-# include <errno.h>
-# include <sys/types.h>
-# endif
-# ifndef WITH_LEAN
-# ifdef HAVE_SYS_TIMEB_H
-# include <sys/timeb.h> /* for ftime() */
-# endif
-# include <time.h>
-# endif
-# endif
-#endif
-
-#ifdef OPENSERVER
-# include <sys/socket.h>
-# include <sys/stream.h>
-# include <sys/protosw.h>
- extern int h_errno;
-#endif
-
-#ifndef WITH_NOIO
-# ifndef WIN32
-# ifndef PALM
-# include <sys/socket.h>
-# ifdef VXWORKS
-# include <sockLib.h>
-# include <selectLib.h>
-# ifndef _WRS_KERNEL
-# include <strings.h>
-# endif
-# else
-# ifndef SYMBIAN
-# include <strings.h>
-# endif
-# endif
-# ifdef SUN_OS
-# include <sys/stream.h> /* SUN */
-# include <sys/socketvar.h> /* SUN < 2.8 (?) */
-# endif
-# ifdef VXWORKS
-# ifdef _WRS_KERNEL
-# include <sys/times.h>
-# endif
-# else
-# include <sys/time.h>
-# endif
-# include <netinet/in.h>
-# ifdef OS390
-# include <netinet/tcp_var.h>
-# else
-# include <netinet/tcp.h> /* TCP_NODELAY */
-# endif
-# include <arpa/inet.h>
-# endif
-# endif
-#endif
-
-#ifdef WIN32
-# define SOAP_WINSOCKINT int
-#else
-# define SOAP_WINSOCKINT size_t
-#endif
-
-#ifdef WIN32
-# ifndef UNDER_CE
-# include <io.h>
-# include <fcntl.h>
-# endif
-# ifdef WITH_IPV6
-# include <winsock2.h> /* Visual Studio 2005 users: you must install the Platform SDK (R2) */
-# include <ws2tcpip.h>
-# include <wspiapi.h>
-# define SOAP_GAI_STRERROR gai_strerrorA
-# else
-# ifndef __BORLANDC__
-# include <winsock.h> /* Visual Studio 2005 users: you must install the Platform SDK (R2) */
-/* # include <winsock2.h> */ /* Alternative: use winsock2 (not available with eVC), enable this line and comment out the line above */
-# else
-# include <winsock2.h> /* Borland C */
-# endif
-# endif
-#else
-# ifdef VXWORKS
-# include <hostLib.h>
-# include <ioctl.h>
-# include <ioLib.h>
-# endif
-# ifndef WITH_NOIO
-# ifndef PALM
-# include <netdb.h>
-# include <netinet/in.h>
-# include <unistd.h>
-# include <fcntl.h>
-# ifdef _AIX41
-# include <sys/select.h>
-# endif
-# endif
-# endif
-#endif
-
-#ifdef WITH_FASTCGI
-# include <fcgi_stdio.h>
-#endif
-
-#ifdef WITH_OPENSSL
-# define OPENSSL_NO_KRB5
-# include <openssl/bio.h>
-# include <openssl/err.h>
-# include <openssl/rand.h>
-# include <openssl/ssl.h>
-# include <openssl/x509v3.h>
-# ifndef ALLOW_OLD_VERSIONS
-# if (OPENSSL_VERSION_NUMBER < 0x00905100L)
-# error "Must use OpenSSL 0.9.6 or later"
-# endif
-# endif
-#endif
-
-#ifdef WITH_GNUTLS
-# include <gnutls/gnutls.h>
-#endif
-
-#ifdef WITH_GZIP
-# ifndef WITH_ZLIB
-# define WITH_ZLIB
-# endif
-#endif
-
-#ifdef WITH_CASEINSENSITIVETAGS
-# define SOAP_STRCMP soap_tag_cmp /* case insensitve XML element/attribute names */
-#else
-# define SOAP_STRCMP strcmp /* case sensitive XML element/attribute names */
-#endif
-
-#ifdef WITH_ZLIB
-# include <zlib.h>
-#endif
-
-#ifndef WITH_NOSTDLIB
-# ifndef PALM
-# include <math.h> /* for isnan() */
-# endif
-#endif
-
-/* #define DEBUG */ /* Uncomment to debug sending (in file SENT.log) receiving (in file RECV.log) and messages (in file TEST.log) */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Portability: define SOAP_SOCKLEN_T */
-#if defined(_AIX)
-# if defined(_AIX43)
-# define SOAP_SOCKLEN_T socklen_t
-# else
-# define SOAP_SOCKLEN_T int
-# endif
-#elif defined(SOCKLEN_T)
-# define SOAP_SOCKLEN_T SOCKLEN_T
-#elif defined(__socklen_t_defined) || defined(_SOCKLEN_T) || defined(CYGWIN) || defined(FREEBSD) || defined(__FreeBSD__) || defined(OPENBSD) || defined(__QNX__) || defined(QNX) || defined(OS390) || defined(HP_UX)
-# define SOAP_SOCKLEN_T socklen_t
-#elif defined(IRIX) || defined(WIN32) || defined(__APPLE__) || defined(SUN_OS) || defined(OPENSERVER) || defined(TRU64) || defined(VXWORKS)
-# define SOAP_SOCKLEN_T int
-#else
-# define SOAP_SOCKLEN_T size_t
-#endif
-
-#ifndef SOAP_SOCKET
-# ifdef WIN32
-# define SOAP_SOCKET SOCKET
-# define soap_closesocket(n) closesocket(n)
-# else
-# define SOAP_SOCKET int
-# define soap_closesocket(n) close(n)
-# endif
-#endif
-
-#define SOAP_INVALID_SOCKET ((SOAP_SOCKET)-1)
-#define soap_valid_socket(n) ((n) != SOAP_INVALID_SOCKET)
-
-#ifndef SOAP_GAI_STRERROR
-# define SOAP_GAI_STRERROR gai_strerror
-#endif
-
-#ifndef FD_SETSIZE
-# define FD_SETSIZE (1024)
-#endif
-
-#if defined(SYMBIAN)
-# define LONG64 long
-# define ULONG64 unsigned LONG64
-#elif !defined(WIN32) || defined(CYGWIN) || defined(__GLIBC__) || defined(__GNU__)
-# ifndef LONG64
-# if defined(HAVE_STDINT_H)
-# include <stdint.h>
-# define LONG64 int64_t
-# define ULONG64 uint64_t
-# elif defined(__GLIBC__)
-# include <bits/wordsize.h>
-# if (__WORDSIZE == 64)
-# define LONG64 int64_t
-# define ULONG64 uint64_t
-# ifndef SOAP_LONG_FORMAT
-# define SOAP_LONG_FORMAT "%ld"
-# endif
-# ifndef SOAP_ULONG_FORMAT
-# define SOAP_ULONG_FORMAT "%lu"
-# endif
-# else
-# define LONG64 long long
-# define ULONG64 unsigned LONG64
-# endif
-# else
-# define LONG64 long long
-# define ULONG64 unsigned LONG64
-# endif
-# endif
-#elif defined(UNDER_CE)
-# define LONG64 __int64
-# define ULONG64 unsigned LONG64
-#elif defined(__BORLANDC__)
-# define LONG64 __int64
-# define ULONG64 unsigned LONG64
-#endif
-
-#ifndef SOAP_LONG_FORMAT
-# define SOAP_LONG_FORMAT "%lld" /* printf format for 64 bit ints */
-#endif
-
-#ifndef SOAP_ULONG_FORMAT
-# define SOAP_ULONG_FORMAT "%llu" /* printf format for unsigned 64 bit ints */
-#endif
-
-#if defined(WIN32) && !defined(CYGWIN)
-# define soap_int32 __int32
-#elif defined(SYMBIAN)
-# define soap_int32 long
-#elif defined(PALM)
-# define soap_int32 Int32
-#elif defined(_AIX)
-# define SOAP_NEW(type) new type /* AIX compilers don't like new (t) */
-# if defined(_AIX43)
-# define soap_int32 int32_t
-# else
-# define soap_int32 signed int
-# endif
-#else
-# define soap_int32 int32_t
-#endif
-
-#ifdef WIN32
-# define SOAP_ERANGE ERANGE
-# define SOAP_EINTR WSAEINTR
-# define SOAP_EAGAIN WSAEWOULDBLOCK
-# define SOAP_EWOULDBLOCK WSAEWOULDBLOCK
-# define SOAP_EINPROGRESS WSAEINPROGRESS
-# define SOAP_EADDRINUSE WSAEADDRINUSE
-#else
-# define SOAP_ERANGE ERANGE
-# define SOAP_EINTR EINTR
-# define SOAP_EAGAIN EAGAIN
-# define SOAP_EADDRINUSE EADDRINUSE
-# ifdef SYMBIAN
-# define SOAP_EWOULDBLOCK 9898
-# define SOAP_EINPROGRESS 9899
-# else
-# define SOAP_EWOULDBLOCK EWOULDBLOCK
-# define SOAP_EINPROGRESS EINPROGRESS
-# endif
-#endif
-
-#ifdef WIN32
-# ifdef UNDER_CE
-# define soap_errno GetLastError()
-# define soap_socket_errno(s) GetLastError()
-# define soap_reset_errno SetLastError(0)
-# else
-# define soap_errno GetLastError()
-# define soap_socket_errno(s) WSAGetLastError()
-# define soap_reset_errno SetLastError(0)
-# endif
-#else
-# ifndef WITH_NOIO
-# define soap_errno errno
-# define soap_socket_errno(s) errno
-# define soap_reset_errno (errno = 0)
-# else
-# define soap_errno 0
-# define soap_socket_errno(s) 0
-# define soap_reset_errno
-# endif
-#endif
-
-#ifndef SOAP_BUFLEN
-# if !defined(WITH_LEAN)
-# define SOAP_BUFLEN (65536) /* buffer length for socket packets, also used by gethostbyname_r and UDP messages, so don't make this too small */
-# else
-# define SOAP_BUFLEN (2048) /* lean size */
-# endif
-#endif
-#ifndef SOAP_LABLEN
-# define SOAP_LABLEN (256) /* initial look-aside buffer length */
-#endif
-#ifndef SOAP_PTRBLK
-# define SOAP_PTRBLK (32) /* block allocation for pointer hash table chains */
-#endif
-#ifndef SOAP_PTRHASH
-# ifndef WITH_LEAN
-# define SOAP_PTRHASH (1024) /* size of pointer analysis hash table (must be power of 2) */
-# else
-# define SOAP_PTRHASH (32)
-# endif
-#endif
-#ifndef SOAP_IDHASH
-# ifndef WITH_LEAN
-# define SOAP_IDHASH (1999) /* prime size of hash table for parsed id/ref */
-# else
-# define SOAP_IDHASH (19) /* 19, 199 */
-# endif
-#endif
-#ifndef SOAP_BLKLEN
-# ifndef WITH_LEAN
-# define SOAP_BLKLEN (256) /* size of blocks to collect long strings and XML attributes */
-# else
-# define SOAP_BLKLEN (32)
-# endif
-#endif
-#ifndef SOAP_TAGLEN
-# ifndef WITH_LEAN
-# define SOAP_TAGLEN (1024) /* maximum length of XML element tag/attribute name or host/path name + 1 */
-# else
-# define SOAP_TAGLEN (64)
-# endif
-#endif
-#ifndef SOAP_HDRLEN
-# ifndef WITH_LEAN
-# define SOAP_HDRLEN (8192) /* maximum length of HTTP header line (must be >4096 to read cookies) */
-# else
-# define SOAP_HDRLEN (1024)
-# endif
-#endif
-#ifndef SOAP_MAXDIMS
-# ifndef WITH_LEAN
-# define SOAP_MAXDIMS (16) /* maximum array dimensions (array nestings) must be less than 64 to protect soap->tmpbuf */
-# else
-# define SOAP_MAXDIMS (4)
-# endif
-#endif
-
-#ifndef SOAP_MAXLOGS
-# define SOAP_MAXLOGS (3) /* max number of debug logs per struct soap environment */
-# define SOAP_INDEX_RECV (0)
-# define SOAP_INDEX_SENT (1)
-# define SOAP_INDEX_TEST (2)
-#endif
-
-/* Max iterations in soap_serve() to keep server connection alive */
-#ifndef SOAP_MAXKEEPALIVE
-# define SOAP_MAXKEEPALIVE (100)
-#endif
-
-/* Trusted max size of inbound SOAP array for compound array allocation.
- Increase if necessary to allow larger arrays.
-*/
-#ifndef SOAP_MAXARRAYSIZE
-# define SOAP_MAXARRAYSIZE (1000000)
-#endif
-
-#ifdef VXWORKS
-# ifdef WMW_RPM_IO
-# include "httpLib.h"
-# endif
-# ifdef __INCmathh
-# include <private/mathP.h>
-# ifndef HAVE_ISNAN
-# define HAVE_ISNAN
-# endif
-# ifndef soap_isnan
-# define soap_isnan(num) isNan(num)
-# endif
-# endif
-# ifdef WM_SECURE_KEY_STORAGE
-# include <ipcom_key_db.h>
-# endif
-#endif
-
-#ifdef WIN32
-# include <float.h>
-# ifndef HAVE_ISNAN
-# define HAVE_ISNAN
-# endif
-# define soap_isnan(num) _isnan(num)
-#endif
-
-#ifdef SUN_OS
-# define HAVE_ISNAN
-#endif
-
-#ifdef __APPLE__
-# ifdef __cplusplus
-# ifndef isnan
-extern "C" int isnan(double);
-# endif
-# endif
-# define HAVE_ISNAN
-#endif
-
-#if !defined(HAVE_ISNAN) && (defined(_MATH_H) || defined(_MATH_INCLUDED))
-# define HAVE_ISNAN
-#endif
-
-extern const struct soap_double_nan { unsigned int n1, n2; } soap_double_nan;
-
-#ifdef VXWORKS
-# ifndef FLT_MAX
-# define FLT_MAX _ARCH_FLT_MAX
-# endif
-# ifndef DBL_MAX
-# define DBL_MAX _ARCH_DBL_MAX
-# endif
-#endif
-
-#ifndef FLT_NAN
-# define FLT_NAN (*(float*)(void*)&soap_double_nan)
-#endif
-
-#ifndef FLT_PINFTY
-# if defined(FLT_MAX)
-# define FLT_PINFTY FLT_MAX
-# elif defined(HUGE_VALF)
-# define FLT_PINFTY (float)HUGE_VALF
-# elif defined(HUGE_VAL)
-# define FLT_PINFTY (float)HUGE_VAL
-# elif defined(FLOAT_MAX)
-# define FLT_PINFTY FLOAT_MAX
-# else
-# define FLT_PINFTY (3.40282347e+38F)
-# endif
-#endif
-
-#ifndef FLT_NINFTY
-# define FLT_NINFTY (-FLT_PINFTY)
-#endif
-
-#ifndef DBL_NAN
-# define DBL_NAN (*(double*)(void*)&soap_double_nan)
-#endif
-
-#ifndef DBL_PINFTY
-# if defined(DBL_MAX)
-# define DBL_PINFTY DBL_MAX
-# elif defined(HUGE_VALF)
-# define DBL_PINFTY (double)HUGE_VALF
-# elif defined(HUGE_VAL)
-# define DBL_PINFTY (double)HUGE_VAL
-# elif defined(DOUBLE_MAX)
-# define DBL_PINFTY DOUBLE_MAX
-# else
-# define DBL_PINFTY (1.7976931348623157e+308)
-# endif
-#endif
-
-#ifndef DBL_NINFTY
-# define DBL_NINFTY (-DBL_PINFTY)
-#endif
-
-#ifndef soap_isnan
-# ifdef HAVE_ISNAN
-# define soap_isnan(n) isnan(n)
-# else
-# define soap_isnan(n) (0)
-# endif
-#endif
-
-#define soap_ispinfd(n) ((n) >= DBL_PINFTY)
-#define soap_ispinff(n) ((n) >= FLT_PINFTY)
-#define soap_isninfd(n) ((n) <= DBL_NINFTY)
-#define soap_isninff(n) ((n) <= FLT_NINFTY)
-
-/* gSOAP error codes */
-
-#define SOAP_EOF EOF
-#define SOAP_ERR EOF
-#define SOAP_OK 0
-#define SOAP_CLI_FAULT 1
-#define SOAP_SVR_FAULT 2
-#define SOAP_TAG_MISMATCH 3
-#define SOAP_TYPE 4
-#define SOAP_SYNTAX_ERROR 5
-#define SOAP_NO_TAG 6
-#define SOAP_IOB 7
-#define SOAP_MUSTUNDERSTAND 8
-#define SOAP_NAMESPACE 9
-#define SOAP_USER_ERROR 10
-#define SOAP_FATAL_ERROR 11
-#define SOAP_FAULT 12
-#define SOAP_NO_METHOD 13
-#define SOAP_NO_DATA 14
-#define SOAP_GET_METHOD 15
-#define SOAP_PUT_METHOD 16
-#define SOAP_DEL_METHOD 17
-#define SOAP_HEAD_METHOD 18
-#define SOAP_HTTP_METHOD 19
-#define SOAP_EOM 20
-#define SOAP_MOE 21
-#define SOAP_HDR 22
-#define SOAP_NULL 23
-#define SOAP_DUPLICATE_ID 24
-#define SOAP_MISSING_ID 25
-#define SOAP_HREF 26
-#define SOAP_UDP_ERROR 27
-#define SOAP_TCP_ERROR 28
-#define SOAP_HTTP_ERROR 29
-#define SOAP_SSL_ERROR 30
-#define SOAP_ZLIB_ERROR 31
-#define SOAP_DIME_ERROR 32
-#define SOAP_DIME_HREF 33
-#define SOAP_DIME_MISMATCH 34
-#define SOAP_DIME_END 35
-#define SOAP_MIME_ERROR 36
-#define SOAP_MIME_HREF 37
-#define SOAP_MIME_END 38
-#define SOAP_VERSIONMISMATCH 39
-#define SOAP_PLUGIN_ERROR 40
-#define SOAP_DATAENCODINGUNKNOWN 41
-#define SOAP_REQUIRED 42
-#define SOAP_PROHIBITED 43
-#define SOAP_OCCURS 44
-#define SOAP_LENGTH 45
-#define SOAP_FD_EXCEEDED 46
-
-#define soap_xml_error_check(e) ((e) == SOAP_TAG_MISMATCH || (e) == SOAP_NO_TAG || (e) == SOAP_SYNTAX_ERROR || (e) == SOAP_NAMESPACE || (e) == SOAP_DUPLICATE_ID || (e) == SOAP_MISSING_ID || (e) == SOAP_REQUIRED || (e) == SOAP_PROHIBITED || (e) == SOAP_OCCURS || (e) == SOAP_LENGTH || (e) == SOAP_NULL || (e) == SOAP_HREF)
-#define soap_soap_error_check(e) ((e) == SOAP_CLI_FAULT || (e) == SOAP_SVR_FAULT || (e) == SOAP_VERSIONMISMATCH || (e) == SOAP_MUSTUNDERSTAND || (e) == SOAP_FAULT || (e) == SOAP_NO_METHOD)
-#define soap_tcp_error_check(e) ((e) == SOAP_EOF || (e) == SOAP_TCP_ERROR)
-#define soap_ssl_error_check(e) ((e) == SOAP_SSL_ERROR)
-#define soap_zlib_error_check(e) ((e) == SOAP_ZLIB_ERROR)
-#define soap_http_error_check(e) ((e) == SOAP_HTTP_ERROR || (e) == SOAP_NO_DATA || ((e) >= SOAP_GET_METHOD && (e) <= SOAP_HTTP_METHOD) || ((e) >= 100 && (e) < 600))
-
-/* gSOAP HTTP response status codes 100 to 599 are reserved */
-
-/* Codes 600 to 999 are user definable */
-
-/* Exceptional gSOAP HTTP server response status codes >= 1000 */
-
-#define SOAP_STOP 1000 /* No HTTP response */
-#define SOAP_FORM 1001 /* Form request/response */
-#define SOAP_HTML 1002 /* Custom HTML response */
-#define SOAP_FILE 1003 /* Custom file-based response */
-
-/* gSOAP HTTP method codes (client) */
-
-#define SOAP_POST 2000 /* POST request */
-#define SOAP_POST_FILE 2001 /* Custom file-based POST request */
-#define SOAP_GET 2002 /* GET request */
-
-/* gSOAP DIME */
-
-#define SOAP_DIME_CF 0x01
-#define SOAP_DIME_ME 0x02
-#define SOAP_DIME_MB 0x04
-#define SOAP_DIME_VERSION 0x08 /* DIME version 1 */
-#define SOAP_DIME_MEDIA 0x10
-#define SOAP_DIME_ABSURI 0x20
-
-/* gSOAP ZLIB */
-
-#define SOAP_ZLIB_NONE 0x00
-#define SOAP_ZLIB_DEFLATE 0x01
-#define SOAP_ZLIB_INFLATE 0x02
-#define SOAP_ZLIB_GZIP 0x02
-
-/* gSOAP transport, connection, and content encoding modes */
-
-typedef soap_int32 soap_mode;
-
-#define SOAP_IO 0x00000003 /* IO mask */
-#define SOAP_IO_FLUSH 0x00000000 /* flush output immediately, no buffering */
-#define SOAP_IO_BUFFER 0x00000001 /* buffer output in packets of size SOAP_BUFLEN */
-#define SOAP_IO_STORE 0x00000002 /* store entire output to determine length for transport */
-#define SOAP_IO_CHUNK 0x00000003 /* use HTTP chunked transfer AND buffer packets */
-
-#define SOAP_IO_UDP 0x00000004 /* TCP or UDP */
-#define SOAP_IO_LENGTH 0x00000008 /* calc message length (internal) */
-#define SOAP_IO_KEEPALIVE 0x00000010 /* keep connection alive */
-
-#define SOAP_ENC 0x00000FFF /* IO and ENC mask */
-#define SOAP_ENC_LATIN 0x00000020 /* in: accept iso-8859-1 */
-#define SOAP_ENC_XML 0x00000040 /* out: plain XML encoding, no HTTP header */
-#define SOAP_ENC_DIME 0x00000080
-#define SOAP_ENC_MIME 0x00000100
-#define SOAP_ENC_MTOM 0x00000200
-#define SOAP_ENC_ZLIB 0x00000400
-#define SOAP_ENC_SSL 0x00000800
-
-#define SOAP_XML_STRICT 0x00001000 /* in: strict validation */
-#define SOAP_XML_INDENT 0x00002000 /* out: emit indented XML */
-#define SOAP_XML_IGNORENS 0x00004000 /* in: ignore namespaces */
-#define SOAP_XML_DEFAULTNS 0x00008000 /* out: emit xmlns="..." */
-#define SOAP_XML_CANONICAL 0x00010000 /* out: excC14N canonical XML */
-#define SOAP_XML_TREE 0x00020000 /* out: XML tree (no id/ref) */
-#define SOAP_XML_GRAPH 0x00040000 /* see DOM manual */
-#define SOAP_XML_NIL 0x00080000 /* out: NULLs as xsi:nil */
-
-#define SOAP_C_NOIOB 0x00100000 /* don't fault on array index out of bounds (just ignore) */
-#define SOAP_C_UTFSTRING 0x00200000 /* (de)serialize strings with UTF8 content */
-#define SOAP_C_MBSTRING 0x00400000 /* (de)serialize strings with multi-byte content */
-#define SOAP_C_NILSTRING 0x00800000 /* serialize empty strings as nil (omitted) */
-
-#define SOAP_XML_DOM 0x01000000
-
-#define SOAP_DOM_TREE 0x02000000
-#define SOAP_DOM_NODE 0x04000000
-#define SOAP_DOM_ASIS 0x08000000
-
-#define SOAP_MIME_POSTCHECK 0x10000000 /* MIME flag (internal) */
-
-#define SOAP_XML_SEC 0x80000000 /* reserved for WS security */
-
-/* WITH_XMLNS backward compatibility: always use XML default namespaces */
-#ifdef WITH_XMLNS
-# define SOAP_IO_DEFAULT (SOAP_IO_FLUSH | SOAP_XML_DEFAULTNS)
-#else
-# define SOAP_IO_DEFAULT SOAP_IO_FLUSH
-#endif
-
-/* SSL client/server authentication settings */
-
-#define SOAP_SSL_NO_AUTHENTICATION 0x00 /* for testing purposes */
-#define SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION 0x01 /* client requires server to authenticate */
-#define SOAP_SSL_REQUIRE_CLIENT_AUTHENTICATION 0x02 /* server requires client to authenticate */
-#define SOAP_SSL_SKIP_HOST_CHECK 0x04 /* client does not check the common name of the host in certificate */
-#define SOAP_SSL_ALLOW_EXPIRED_CERTIFICATE 0x08 /* client does not check the expiration date of the host certificate */
-#define SOAP_SSL_NO_DEFAULT_CA_PATH 0x10 /* don't use default_verify_paths */
-#define SOAP_SSL_RSA 0x20 /* use RSA */
-#define SOAP_SSLv3 0x40 /* SSL v3 only */
-#define SOAP_TLSv1 0x80 /* TLS v1 only */
-#define SOAP_SSLv3_TLSv1 0x00 /* SSL v3 and TLS v1 support by default (no SSL v1/v2) */
-
-#define SOAP_SSL_DEFAULT (SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION | SOAP_SSLv3_TLSv1)
-
-/* state */
-
-#define SOAP_NONE 0
-#define SOAP_INIT 1
-#define SOAP_COPY 2
-
-#define soap_check_state(soap) (!(soap) || ((soap)->state != SOAP_INIT && (soap)->state != SOAP_COPY))
-
-/* part */
-
-#define SOAP_BEGIN 0
-#define SOAP_IN_ENVELOPE 2
-#define SOAP_IN_HEADER 3
-#define SOAP_END_HEADER 4
-#define SOAP_NO_BODY 5
-#define SOAP_IN_BODY 6
-#define SOAP_END_BODY 7
-#define SOAP_END_ENVELOPE 8
-#define SOAP_END 9
-#define SOAP_BEGIN_SECURITY 10
-#define SOAP_IN_SECURITY 11
-#define SOAP_END_SECURITY 12
-
-/* DEBUG macros */
-
-#ifndef WITH_LEAN
-# ifdef DEBUG
-# ifndef SOAP_DEBUG
-# define SOAP_DEBUG
-# endif
-# ifndef SOAP_MEM_DEBUG
-# define SOAP_MEM_DEBUG
-# endif
-# endif
-#endif
-
-#ifdef SOAP_MEM_DEBUG
-# ifndef SOAP_MALLOC
-# define SOAP_MALLOC(soap, size) soap_track_malloc(soap, __FILE__, __LINE__, size)
-# endif
-# ifndef SOAP_FREE
-# define SOAP_FREE(soap, ptr) soap_track_free(soap, __FILE__, __LINE__, ptr)
-# endif
-#endif
-
-#ifndef SOAP_MALLOC /* use libc malloc */
-# define SOAP_MALLOC(soap, size) malloc(size)
-#endif
-
-#ifndef SOAP_FREE /* use libc free */
-# define SOAP_FREE(soap, ptr) free(ptr)
-#endif
-
-#ifndef SOAP_NEW /* use C++ new operator */
-# if __GNUC__ < 2
-# define SOAP_NEW(type) new type /* old form w/o parenthesis */
-# else
-# define SOAP_NEW(type) new (type) /* with parenthesis */
-# endif
-#endif
-
-#ifndef SOAP_NEW_COPY /* use C++ new operator for ::copy() */
-# define SOAP_NEW_COPY(clas) new clas
-#endif
-
-#ifndef SOAP_DELETE /* use C++ delete operator */
-# define SOAP_DELETE(obj) delete obj
-#endif
-
-#ifndef SOAP_DELETE_ARRAY /* use C++ delete[] operator */
-# define SOAP_DELETE_ARRAY(obj) delete[] obj
-#endif
-
-#ifdef SOAP_DEBUG
-# ifndef SOAP_MESSAGE
-# define SOAP_MESSAGE fprintf
-# endif
-# ifndef DBGLOG
-# define DBGLOG(DBGFILE, CMD) \
-{ if (soap)\
- { if (!soap->fdebug[SOAP_INDEX_##DBGFILE])\
- soap_open_logfile((struct soap*)soap, SOAP_INDEX_##DBGFILE);\
- if (soap->fdebug[SOAP_INDEX_##DBGFILE])\
- { FILE *fdebug = soap->fdebug[SOAP_INDEX_##DBGFILE];\
- CMD;\
- fflush(fdebug);\
- }\
- }\
-}
-# endif
-# ifndef DBGMSG
-# define DBGMSG(DBGFILE, MSG, LEN) \
-{ if (soap)\
- { if (!soap->fdebug[SOAP_INDEX_##DBGFILE])\
- soap_open_logfile((struct soap*)soap, SOAP_INDEX_##DBGFILE);\
- if (soap->fdebug[SOAP_INDEX_##DBGFILE])\
- { fwrite((MSG), 1, (LEN), soap->fdebug[SOAP_INDEX_##DBGFILE]);\
- fflush(soap->fdebug[SOAP_INDEX_##DBGFILE]);\
- }\
- }\
-}
-# endif
-# ifndef DBGFUN
-# define DBGFUN(FNAME) DBGLOG(TEST, SOAP_MESSAGE(fdebug, "%s(%d): %s()\n", __FILE__, __LINE__, FNAME))
-# define DBGFUN1(FNAME, FMT, ARG) DBGLOG(TEST, SOAP_MESSAGE(fdebug, "%s(%d): %s("FMT")\n", __FILE__, __LINE__, FNAME, (ARG)))
-# define DBGFUN2(FNAME, FMT1, ARG1, FMT2, ARG2) DBGLOG(TEST, SOAP_MESSAGE(fdebug, "%s(%d): %s("FMT1", "FMT2")\n", __FILE__, __LINE__, FNAME, (ARG1), (ARG2)))
-# define DBGFUN3(FNAME, FMT1, ARG1, FMT2, ARG2, FMT3, ARG3) DBGLOG(TEST, SOAP_MESSAGE(fdebug, "%s(%d): %s("FMT1", "FMT2", "FMT3")\n", __FILE__, __LINE__, FNAME, (ARG1), (ARG2), (ARG3)))
-# endif
-# ifndef DBGHEX
-# define DBGHEX(DBGFILE, MSG, LEN) \
-{ if (soap)\
- { if (!soap->fdebug[SOAP_INDEX_##DBGFILE])\
- soap_open_logfile(soap, SOAP_INDEX_##DBGFILE);\
- if (soap->fdebug[SOAP_INDEX_##DBGFILE])\
- { int i; char *s;\
- for (s = (char*)(MSG), i = (LEN); i; i--)\
- fprintf(soap->fdebug[SOAP_INDEX_##DBGFILE], "%2.2X ", (int)*s++&0xFF);\
- fflush(soap->fdebug[SOAP_INDEX_##DBGFILE]);\
- }\
- }\
-}
-# endif
-#else
-# define DBGLOG(DBGFILE, CMD)
-# define DBGMSG(DBGFILE, MSG, LEN)
-# define DBGFUN(FNAME)
-# define DBGFUN1(FNAME, FMT, ARG)
-# define DBGFUN2(FNAME, FMT1, ARG1, FMT2, ARG2)
-# define DBGFUN3(FNAME, FMT1, ARG1, FMT2, ARG2, FMT3, ARG3)
-# define DBGHEX(DBGFILE, MSG, LEN)
-#endif
-
-/* UCS-4 requires 32 bits (0-7FFFFFFF, the sign bit is used by gSOAP to distinguish XML entities) */
-typedef soap_int32 soap_wchar;
-
-/* namespace table row */
-struct Namespace
-{ const char *id;
- const char *ns;
- const char *in;
- char *out;
-};
-
-/* namespace stack */
-struct soap_nlist
-{ struct soap_nlist *next;
- unsigned int level; /* nesting depth level */
- short index; /* corresponding entry in ns mapping table */
- const char *ns; /* only set when parsed ns URI is not in the ns mapping table */
- char id[1]; /* the actual string value flows into the allocated region below this struct */
-};
-
-/* block stack for nested block allocations */
-struct soap_blist
-{ struct soap_blist *next;
- char *ptr;
- size_t size;
-};
-
-/* array layout */
-struct soap_array
-{ void *__ptr;
- int __size;
-};
-
-/* pointer serialization management */
-struct soap_plist
-{ struct soap_plist *next;
- const void *ptr;
- const struct soap_array *array;
- int type;
- int id;
- char mark1;
- char mark2;
-};
-
-/* block allocation for pointer serialization management */
-struct soap_pblk
-{ struct soap_pblk *next;
- struct soap_plist plist[SOAP_PTRBLK];
-};
-
-#ifdef SOAP_MEM_DEBUG
-/* malloc/free tracking for debugging */
-struct soap_mlist
-{ struct soap_mlist *next;
- const void *ptr;
- const char *file;
- int line;
- short live;
-};
-#endif
-
-/* class allocation list */
-struct soap_clist
-{ struct soap_clist *next;
- void *ptr;
- int type;
- int size;
- int (*fdelete)(struct soap_clist*);
-};
-
-/* attributes */
-struct soap_attribute
-{ struct soap_attribute *next;
- short flag; /* soap_set_attr: 1 = normal, 2 = utf content */
- char *value;
- size_t size;
- char *ns;
- short visible;
- char name[1]; /* the actual name string flows into the allocated region below this struct */
-};
-
-#ifndef WITH_LEAN
-struct soap_cookie
-{ struct soap_cookie *next;
- char *name;
- char *value;
- char *domain;
- char *path;
- time_t expire; /* client-side: local time to expire */
- long maxage; /* server-side: seconds to expire */
- unsigned int version;
- short secure;
- short session; /* server-side */
- short env; /* server-side: got cookie from client and should not be (re)send */
- short modified; /* server-side: client cookie was modified and should be send */
-};
-#endif
-
-SOAP_FMAC1 struct soap_multipart* SOAP_FMAC2 soap_next_multipart(struct soap_multipart*);
-
-#ifdef __cplusplus
-
-class soap_multipart_iterator
-{ public:
- struct soap_multipart *content;
- bool operator==(const soap_multipart_iterator& iter) const
- { return (bool)(content == iter.content); }
- bool operator!=(const soap_multipart_iterator& iter) const
- { return (bool)(content != iter.content); }
- struct soap_multipart &operator*() const
- { return *content; }
- soap_multipart_iterator &operator++()
- { content = soap_next_multipart(content); return *this; }
- soap_multipart_iterator() : content(NULL)
- { }
- soap_multipart_iterator(struct soap_multipart *p) : content(p)
- { }
-};
-#endif
-
-#ifndef WITH_LEANER
-struct soap_dime
-{ size_t count;
- size_t size;
- size_t chunksize;
- size_t buflen;
- char flags;
- char *ptr;
- const char *id;
- const char *type;
- const char *options;
- struct soap_multipart *list; /* list of DIME attachments received */
- struct soap_multipart *first, *last; /* temporary in/out queue */
-#ifdef __cplusplus
- soap_multipart_iterator begin()
- { soap_multipart_iterator iter(list); return iter; };
- soap_multipart_iterator end()
- { soap_multipart_iterator iter(NULL); return iter; };
-#endif
-};
-#endif
-
-#ifndef WITH_LEANER
-struct soap_mime
-{ char *boundary; /* MIME boundary */
- const char *start; /* MIME start ID */
- struct soap_multipart *list; /* list of MIME attachments received */
- struct soap_multipart *first, *last; /* temporary in/out queue */
-#ifdef __cplusplus
- soap_multipart_iterator begin()
- { soap_multipart_iterator iter(list); return iter; };
- soap_multipart_iterator end()
- { soap_multipart_iterator iter(NULL); return iter; };
-#endif
-};
-#endif
-
-#ifndef WITH_LEANER
-/* RFC2045 MIME content transfer encodings */
-enum soap_mime_encoding
-{ SOAP_MIME_NONE,
- SOAP_MIME_7BIT,
- SOAP_MIME_8BIT,
- SOAP_MIME_BINARY,
- SOAP_MIME_QUOTED_PRINTABLE,
- SOAP_MIME_BASE64,
- SOAP_MIME_IETF_TOKEN,
- SOAP_MIME_X_TOKEN
-};
-#endif
-
-#ifndef WITH_LEANER
-/* DIME/MIME multipart list */
-struct soap_multipart
-{ struct soap_multipart *next;
- char *ptr; /* points to raw data content */
- size_t size; /* size of data content */
- const char *id; /* DIME/MIME content ID or form data name */
- const char *type; /* DIME/MIME type (MIME type format) */
- const char *options; /* DIME options */
- enum soap_mime_encoding encoding; /* MIME Content-Transfer-Encoding */
- const char *location; /* MIME Content-Location (optional) */
- const char *description; /* MIME Content-Description (optional) */
-#ifdef __cplusplus
- typedef soap_multipart_iterator iterator;
-#endif
-};
-#endif
-
-#ifndef WITH_LEANER
-/* attachment DIME and MTOM XOP forwarding */
-struct soap_xlist
-{ struct soap_xlist *next;
- unsigned char **ptr;
- int *size;
- char *id;
- char **type;
- char **options;
-};
-#endif
-
-/******************************************************************************/
-
-#ifndef WITH_LEANER
-#ifdef __cplusplus
-class soap_dom_attribute_iterator
-{ public:
- struct soap_dom_attribute *att;
- const char *nstr;
- const char *name;
- bool operator==(const soap_dom_attribute_iterator&) const;
- bool operator!=(const soap_dom_attribute_iterator&) const;
- struct soap_dom_attribute &operator*() const;
- soap_dom_attribute_iterator &operator++();
- soap_dom_attribute_iterator();
- soap_dom_attribute_iterator(struct soap_dom_attribute*);
- ~soap_dom_attribute_iterator();
-};
-#endif
-#endif
-
-#ifndef WITH_LEANER
-struct soap_dom_attribute
-{ struct soap_dom_attribute *next;
- const char *nstr;
- char *name;
- char *data;
- wchar_t *wide;
- struct soap *soap;
-#ifdef __cplusplus
- typedef soap_dom_attribute_iterator iterator;
- struct soap_dom_attribute &set(const char *nstr, const char *name); /* set namespace and name */
- struct soap_dom_attribute &set(const char *data); /* set data */
- soap_dom_attribute_iterator begin();
- soap_dom_attribute_iterator end();
- soap_dom_attribute_iterator find(const char *nstr, const char *name);
- void unlink();
- soap_dom_attribute();
- soap_dom_attribute(struct soap *soap);
- soap_dom_attribute(struct soap *soap, const char *nstr, const char *name, const char *data);
- ~soap_dom_attribute();
-#endif
-};
-#endif
-
-#ifndef WITH_LEANER
-#ifdef __cplusplus
-class soap_dom_element_iterator
-{ public:
- struct soap_dom_element *elt;
- const char *nstr;
- const char *name;
- int type;
- bool operator==(const soap_dom_element_iterator&) const;
- bool operator!=(const soap_dom_element_iterator&) const;
- struct soap_dom_element &operator*() const;
- soap_dom_element_iterator &operator++();
- soap_dom_element_iterator();
- soap_dom_element_iterator(struct soap_dom_element*);
- ~soap_dom_element_iterator();
-};
-#endif
-#endif
-
-#ifndef WITH_LEANER
-struct soap_dom_element
-{ struct soap_dom_element *next; /* next sibling */
- struct soap_dom_element *prnt; /* parent */
- struct soap_dom_element *elts; /* list of child elements */
- struct soap_dom_attribute *atts; /* list of attributes */
- const char *nstr; /* namespace string */
- char *name; /* element tag name */
- char *data; /* element content data (with SOAP_C_UTFSTRING flag set) */
- wchar_t *wide; /* element content data */
- int type; /* optional: serialized C/C++ data type */
- void *node; /* optional: pointer to serialized C/C++ data */
- char *head; /* leading content before start tag */
- char *tail; /* leading content before end tag */
- struct soap *soap; /* soap context that manages this node */
-#ifdef __cplusplus
- typedef soap_dom_element_iterator iterator;
- struct soap_dom_element &set(const char *nstr, const char *name);
- struct soap_dom_element &set(const char *data);
- struct soap_dom_element &set(void *node, int type);
- struct soap_dom_element &add(struct soap_dom_element*);
- struct soap_dom_element &add(struct soap_dom_element&);
- struct soap_dom_element &add(struct soap_dom_attribute*);
- struct soap_dom_element &add(struct soap_dom_attribute&);
- soap_dom_element_iterator begin();
- soap_dom_element_iterator end();
- soap_dom_element_iterator find(const char *nstr, const char *name);
- soap_dom_element_iterator find(int type);
- void unlink();
- soap_dom_element();
- soap_dom_element(struct soap *soap);
- soap_dom_element(struct soap *soap, const char *nstr, const char *name);
- soap_dom_element(struct soap *soap, const char *nstr, const char *name, const char *data);
- soap_dom_element(struct soap *soap, const char *nstr, const char *name, void *node, int type);
- ~soap_dom_element();
-#endif
-};
-SOAP_FMAC1 struct soap_dom_element * SOAP_FMAC2 soap_dom_next_element(struct soap_dom_element *elt);
-SOAP_FMAC1 struct soap_dom_attribute * SOAP_FMAC2 soap_dom_next_attribute(struct soap_dom_attribute *att);
-#endif
-
-#if defined(__cplusplus) && !defined(WITH_LEAN) && !defined(WITH_COMPAT)
-}
-extern std::ostream &operator<<(std::ostream&, const struct soap_dom_element&);
-extern std::istream &operator>>(std::istream&, struct soap_dom_element&);
-extern "C" {
-#endif
-
-/******************************************************************************/
-
-#ifdef WIN32
-# ifdef SOAP_STD_EXPORTS
-# define SOAP_STD_API __declspec(dllexport)
-# else
-# define SOAP_STD_API
-# endif
-#else
-# define SOAP_STD_API
-#endif
-
-struct SOAP_STD_API soap
-{ short state; /* 0 = uninitialized, 1 = initialized, 2 = copy of another soap struct */
- short version; /* 1 = SOAP1.1 and 2 = SOAP1.2 (set automatically from namespace URI in nsmap table) */
- soap_mode mode;
- soap_mode imode;
- soap_mode omode;
- const char *float_format; /* user-definable format string for floats (<1024 chars) */
- const char *double_format; /* user-definable format string for doubles (<1024 chars) */
- const char *dime_id_format; /* user-definable format string for integer DIME id (<SOAP_TAGLEN chars) */
- const char *http_version; /* HTTP version used "1.0" or "1.1" */
- const char *http_content; /* optional custom response content type (with SOAP_FILE) */
- const char *encodingStyle; /* default = NULL which means that SOAP encoding is used */
- const char *actor; /* SOAP-ENV:actor or role attribute value */
- const char *lang; /* xml:lang attribute value of SOAP-ENV:Text */
- int recv_timeout; /* when > 0, gives socket recv timeout in seconds, < 0 in usec */
- int send_timeout; /* when > 0, gives socket send timeout in seconds, < 0 in usec */
- int connect_timeout; /* when > 0, gives socket connect() timeout in seconds, < 0 in usec */
- int accept_timeout; /* when > 0, gives socket accept() timeout in seconds, < 0 in usec */
-#if defined(WITH_OPENSSL) && defined(KMS_SERVER)
- /* Sun customization for Ultra 2 KMS Server */
- int ssl_accept_timeout; /* default 10s unless overridden by this field, specified in seconds, time in SSL_Accept() */
-#endif
- int socket_flags; /* socket recv() and send() flags, e.g. set to MSG_NOSIGNAL to disable sigpipe */
- int connect_flags; /* connect() SOL_SOCKET sockopt flags, e.g. set to SO_DEBUG to debug socket */
- int bind_flags; /* bind() SOL_SOCKET sockopt flags, e.g. set to SO_REUSEADDR to enable reuse */
- int accept_flags; /* accept() SOL_SOCKET sockopt flags */
- unsigned short linger_time; /* linger time for SO_LINGER option */
- const struct Namespace *namespaces; /* Pointer to global namespace mapping table */
- struct Namespace *local_namespaces; /* Local namespace mapping table */
- struct soap_nlist *nlist; /* namespace stack */
- struct soap_blist *blist; /* block allocation stack */
- struct soap_clist *clist; /* class instance allocation list */
- void *alist; /* memory allocation (malloc) list */
- struct soap_ilist *iht[SOAP_IDHASH];
- struct soap_plist *pht[SOAP_PTRHASH];
- struct soap_pblk *pblk; /* plist block allocation */
- short pidx; /* plist block allocation */
- struct SOAP_ENV__Header *header;
- struct SOAP_ENV__Fault *fault;
- int idnum;
- void *user; /* to pass user-defined data */
- struct soap_plugin *plugins; /* linked list of plug-in data */
- const char *userid; /* HTTP Basic authorization userid */
- const char *passwd; /* HTTP Basic authorization passwd */
- int (*fpost)(struct soap*, const char*, const char*, int, const char*, const char*, size_t);
- int (*fget)(struct soap*);
- int (*fput)(struct soap*);
- int (*fdel)(struct soap*);
- int (*fhead)(struct soap*);
- int (*fform)(struct soap*);
- int (*fposthdr)(struct soap*, const char*, const char*);
- int (*fresponse)(struct soap*, int, size_t);
- int (*fparse)(struct soap*);
- int (*fparsehdr)(struct soap*, const char*, const char*);
- int (*fheader)(struct soap*);
- int (*fresolve)(struct soap*, const char*, struct in_addr* inaddr);
- int (*fconnect)(struct soap*, const char*, const char*, int);
- int (*fdisconnect)(struct soap*);
- int (*fclosesocket)(struct soap*, SOAP_SOCKET);
- int (*fshutdownsocket)(struct soap*, SOAP_SOCKET, int);
- SOAP_SOCKET (*fopen)(struct soap*, const char*, const char*, int);
- SOAP_SOCKET (*faccept)(struct soap*, SOAP_SOCKET, struct sockaddr*, int *n);
- int (*fclose)(struct soap*);
- int (*fsend)(struct soap*, const char*, size_t);
- size_t (*frecv)(struct soap*, char*, size_t);
- int (*fpoll)(struct soap*);
- void (*fseterror)(struct soap*, const char **c, const char **s);
- int (*fignore)(struct soap*, const char*);
- int (*fserveloop)(struct soap*);
- void *(*fplugin)(struct soap*, const char*);
- void *(*fmalloc)(struct soap*, size_t);
-#ifndef WITH_LEANER
- int (*fprepareinitsend)(struct soap*);
- int (*fprepareinitrecv)(struct soap*);
- int (*fpreparesend)(struct soap*, const char*, size_t);
- int (*fpreparerecv)(struct soap*, const char*, size_t);
- int (*fpreparefinalsend)(struct soap*);
- int (*fpreparefinalrecv)(struct soap*);
- void *(*fdimereadopen)(struct soap*, void*, const char*, const char*, const char*);
- void *(*fdimewriteopen)(struct soap*, const char*, const char*, const char*);
- void (*fdimereadclose)(struct soap*, void*);
- void (*fdimewriteclose)(struct soap*, void*);
- size_t (*fdimeread)(struct soap*, void*, char*, size_t);
- int (*fdimewrite)(struct soap*, void*, const char*, size_t);
- void *(*fmimereadopen)(struct soap*, void*, const char*, const char*, const char*);
- void *(*fmimewriteopen)(struct soap*, void*, const char*, const char*, const char*, enum soap_mime_encoding);
- void (*fmimereadclose)(struct soap*, void*);
- void (*fmimewriteclose)(struct soap*, void*);
- size_t (*fmimeread)(struct soap*, void*, char*, size_t);
- int (*fmimewrite)(struct soap*, void*, const char*, size_t);
-#endif
- SOAP_SOCKET master;
- SOAP_SOCKET socket;
-#if defined(__cplusplus) && !defined(WITH_LEAN) && !defined(WITH_COMPAT)
- std::ostream *os;
- std::istream *is;
-#else
- void *os; /* preserve struct size */
- void *is; /* preserve struct size */
-#endif
-#ifndef UNDER_CE
- int sendfd;
- int recvfd;
-#else
- FILE *sendfd;
- FILE *recvfd;
-#endif
- size_t bufidx; /* index in soap.buf[] */
- size_t buflen; /* length of soap.buf[] content */
- soap_wchar ahead; /* parser lookahead */
- short cdata; /* CDATA parser state */
- short body; /* parsed XML element has a body or not */
- unsigned int level; /* XML nesting level */
- size_t count; /* message length counter */
- size_t length; /* message length as set by HTTP header */
- char *labbuf; /* look-aside buffer */
- size_t lablen; /* look-aside buffer allocated length */
- size_t labidx; /* look-aside buffer index to available part */
- char buf[SOAP_BUFLEN];/* send and receive buffer */
- char msgbuf[1024]; /* in/out buffer for HTTP/MIME headers >=1024 bytes */
- char tmpbuf[1024]; /* in/out buffer for HTTP/MIME headers, simpleType values, element and attribute tag names, and DIME must be >=1024 bytes */
- char tag[SOAP_TAGLEN];
- char id[SOAP_TAGLEN];
- char href[SOAP_TAGLEN];
- char type[SOAP_TAGLEN];
- char arrayType[SOAP_TAGLEN];
- char arraySize[SOAP_TAGLEN];
- char arrayOffset[SOAP_TAGLEN];
- short other;
- short position;
- int positions[SOAP_MAXDIMS];
- short root;
- struct soap_attribute *attributes; /* attribute list */
- short encoding; /* when set, output encodingStyle */
- short mustUnderstand; /* a mustUnderstand element was parsed or is output */
- short null; /* parsed XML is xsi:nil */
- short ns; /* when not set, output full xmlns bindings */
- short part; /* parsing state */
- short alloced;
- short peeked;
- size_t chunksize;
- size_t chunkbuflen;
- char endpoint[SOAP_TAGLEN];
- char path[SOAP_TAGLEN];
- char host[SOAP_TAGLEN];
- char *action;
- char *authrealm; /* HTTP authentication realm */
- char *prolog; /* XML declaration prolog */
- unsigned long ip; /* IP number */
- int port; /* port number */
- short keep_alive; /* connection should be kept open */
- short tcp_keep_alive; /* enable SO_KEEPALIVE */
- unsigned int tcp_keep_idle; /* set TCP_KEEPIDLE */
- unsigned int tcp_keep_intvl; /* set TCP_KEEPINTVL */
- unsigned int tcp_keep_cnt; /* set TCP_KEEPCNT */
- unsigned int max_keep_alive; /* maximum keep-alive session (default=100) */
- const char *proxy_http_version;/* HTTP version of proxy "1.0" or "1.1" */
- const char *proxy_host; /* Proxy Server host name */
- int proxy_port; /* Proxy Server port (default = 8080) */
- const char *proxy_userid; /* Proxy Authorization user name */
- const char *proxy_passwd; /* Proxy Authorization password */
- const char *proxy_from; /* X-Forwarding-For header returned by proxy */
- int status; /* -1 when request, else error code to be returned by server */
- int error;
- int errmode;
- int errnum;
-#ifndef WITH_LEANER
- struct soap_dom_element *dom;
- struct soap_dime dime;
- struct soap_mime mime;
- struct soap_xlist *xlist;
-#endif
-#if !defined(WITH_LEAN) || defined(SOAP_DEBUG)
- const char *logfile[SOAP_MAXLOGS];
- FILE *fdebug[SOAP_MAXLOGS];
- struct soap_mlist *mht[SOAP_PTRHASH];
-#endif
-#ifndef WITH_LEAN
- const char *wsuid; /* space-separated string of element tags */
- const char *c14nexclude; /* space-separated string of prefixes */
- struct soap_cookie *cookies;
- const char *cookie_domain;
- const char *cookie_path;
- int cookie_max;
-#endif
-#ifndef WITH_NOIO
- int ipv6_multicast_if; /* always include this to keep the soap struct size the same in v4 and v6 */
- char* ipv4_multicast_if; /* always include this to keep the soap struct size the same in v4 and v6 */
- int ipv4_multicast_ttl; /* multicast scope */
-#ifdef WITH_IPV6
- struct sockaddr_storage peer; /* IPv6: set by soap_accept and by UDP recv */
-#else
- struct sockaddr_in peer; /* IPv4: set by soap_connect/soap_accept and by UDP recv */
-#endif
-#endif
- size_t peerlen;
-#if defined(WITH_OPENSSL) /* OpenSSL */
- int (*fsslauth)(struct soap*);
- int (*fsslverify)(int, X509_STORE_CTX*);
- BIO *bio;
- SSL *ssl;
- SSL_CTX *ctx;
- SSL_SESSION *session;
-#else /* No SSL/TLS */
- void *fsslauth; /* dummy members, to preserve struct size */
- void *fsslverify;
- void *bio;
- void *ssl;
- void *ctx;
- void *session;
-#endif
- unsigned short ssl_flags;
- const char *keyfile;
- const char *password;
- const char *dhfile;
- const char *cafile;
- const char *capath;
- const char *crlfile;
- const char *randfile;
- char session_host[SOAP_TAGLEN];
- int session_port;
-#ifdef WITH_C_LOCALE
- locale_t c_locale; /* set to C locale by default */
-#else
- void *c_locale;
-#endif
-#ifdef WITH_ZLIB
- z_stream *d_stream; /* decompression stream */
- uLong z_crc; /* internal gzip crc */
-#else
- void *d_stream; /* dummy members, to preserve struct size */
- soap_int32 z_crc;
-#endif
- const char *z_dict; /* support for zlib static dictionaries */
- unsigned int z_dict_len;
- short zlib_state; /* SOAP_ZLIB_NONE, SOAP_ZLIB_DEFLATE, or SOAP_ZLIB_INFLATE */
- short zlib_in; /* SOAP_ZLIB_NONE, SOAP_ZLIB_DEFLATE, or SOAP_ZLIB_GZIP */
- short zlib_out; /* SOAP_ZLIB_NONE, SOAP_ZLIB_DEFLATE, or SOAP_ZLIB_GZIP */
- char *z_buf; /* buffer */
- size_t z_buflen;
- unsigned short z_level; /* compression level to be used (0=none, 1=fast to 9=best) */
- float z_ratio_in; /* detected compression ratio compressed_length/length of inbound message */
- float z_ratio_out; /* detected compression ratio compressed_length/length of outbound message */
-#ifdef WMW_RPM_IO /* VxWorks */
- void *rpmreqid;
-#endif
-#ifdef __cplusplus
- soap();
- soap(soap_mode);
- soap(soap_mode, soap_mode);
- soap(const struct soap&);
- virtual ~soap();
-#else
- void (*dummy)();
-#endif
-};
-
-struct soap_code_map
-{ long code;
- const char *string;
-};
-
-/* forwarding list */
-struct soap_flist
-{ struct soap_flist *next;
- int type;
- void *ptr;
- unsigned int level;
- size_t len;
- void (*fcopy)(struct soap*, int, int, void*, size_t, const void*, size_t);
-};
-
-/* id-ref forwarding list */
-struct soap_ilist
-{ struct soap_ilist *next;
- int type;
- size_t size;
- void *link;
- void *copy;
- struct soap_flist *flist;
- void *ptr;
- unsigned int level;
- char id[1]; /* the actual id string value flows into the allocated region below this struct */
-};
-
-struct soap_plugin
-{ struct soap_plugin *next;
- const char *id;
- void *data;
- int (*fcopy)(struct soap *soap, struct soap_plugin *dst, struct soap_plugin *src);
- void (*fdelete)(struct soap *soap, struct soap_plugin *p); /* should delete fields of plugin only and not free(p) */
-};
-
-#ifndef WITH_NONAMESPACES
-extern SOAP_NMAC struct Namespace namespaces[];
-#endif
-
-#ifndef WITH_LEAN
-# define soap_get0(soap) (((soap)->bufidx>=(soap)->buflen && soap_recv(soap)) ? EOF : (unsigned char)(soap)->buf[(soap)->bufidx])
-# define soap_get1(soap) (((soap)->bufidx>=(soap)->buflen && soap_recv(soap)) ? EOF : (unsigned char)(soap)->buf[(soap)->bufidx++])
-#else
-soap_wchar soap_get0(struct soap*);
-soap_wchar soap_get1(struct soap*);
-#endif
-
-#define soap_revget1(soap) ((soap)->bufidx--)
-#define soap_unget(soap, c) ((soap)->ahead = c)
-#define soap_register_plugin(soap, plugin) soap_register_plugin_arg(soap, plugin, NULL)
-#define soap_imode(soap, n) ((soap)->mode = (soap)->imode = (n))
-#define soap_set_imode(soap, n) ((soap)->imode |= (n))
-#define soap_clr_imode(soap, n) ((soap)->imode &= ~(n))
-#define soap_omode(soap, n) ((soap)->mode = (soap)->omode = (n))
-#define soap_set_omode(soap, n) ((soap)->omode |= (n))
-#define soap_clr_omode(soap, n) ((soap)->omode &= ~(n))
-#define soap_set_mode(soap, n) ((soap)->imode |= (n), (soap)->omode |= (n))
-#define soap_clr_mode(soap, n) ((soap)->imode &= ~(n), (soap)->omode &= ~(n))
-#define soap_destroy(soap) soap_delete((soap), NULL)
-
-#ifdef HAVE_STRRCHR
-# define soap_strrchr(s, t) strrchr(s, t)
-#else
- SOAP_FMAC1 char* SOAP_FMAC2 soap_strrchr(const char *s, int t);
-#endif
-
-#ifdef HAVE_STRTOL
-# define soap_strtol(s, t, b) strtol(s, t, b)
-#else
- SOAP_FMAC1 long SOAP_FMAC2 soap_strtol(const char *s, char **t, int b);
-#endif
-
-#ifdef HAVE_STRTOUL
-# define soap_strtoul(s, t, b) strtoul(s, t, b)
-#else
- SOAP_FMAC1 unsigned long SOAP_FMAC2 soap_strtoul(const char *s, char **t, int b);
-#endif
-
-#if defined(WITH_OPENSSL)
-# define soap_random soap_rand()
-SOAP_FMAC1 int SOAP_FMAC2 soap_rand(void);
-#elif defined(HAVE_RANDOM)
-# define soap_random (int)random()
-#else
-# define soap_random rand()
-#endif
-
-#ifdef WITH_NOIDREF
-# define soap_embedded(s, p, t) (0)
-# define soap_id_lookup(s, i, p, t, n, k) (p)
-# define soap_id_forward(s, h, p, len, st, tt, n, k, fc) (p)
-# define soap_reference(s, a, t) (1)
-# define soap_array_reference(s, p, a, n, t) (1)
-# define soap_embed(s, p, a, n, t, pp) (0)
-# define soap_embedded_id(s, i, p, t) (i)
-# define soap_is_embedded(s, p) (0)
-# define soap_is_single(s, p) (1)
-# define soap_lookup_type(s, i) (0)
-# define soap_getindependent(s) (0)
-# define soap_putindependent(s) (0)
-# define soap_getelement(s, n) (n)
-# define soap_putelement(s, p, t, i, n) (0)
-# define soap_markelement(s, p, n) (0)
-#endif
-
-SOAP_FMAC1 void SOAP_FMAC2 soap_header(struct soap*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_fault(struct soap*);
-SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultcode(struct soap*);
-SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultsubcode(struct soap*);
-SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultstring(struct soap*);
-SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultdetail(struct soap*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_serializeheader(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_putheader(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_getheader(struct soap*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_serializefault(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_putfault(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_getfault(struct soap*);
-
-SOAP_FMAC1 void SOAP_FMAC2 soap_ssl_init();
-SOAP_FMAC1 int SOAP_FMAC2 soap_poll(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_connect_command(struct soap*, int, const char*, const char*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_connect(struct soap*, const char*, const char*);
-SOAP_FMAC1 SOAP_SOCKET SOAP_FMAC2 soap_bind(struct soap*, const char*, int, int);
-SOAP_FMAC1 SOAP_SOCKET SOAP_FMAC2 soap_accept(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_ssl_accept(struct soap*);
-SOAP_FMAC1 const char * SOAP_FMAC2 soap_ssl_error(struct soap*, int);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_ssl_server_context(struct soap*, unsigned short, const char*, const char*, const char*, const char*, const char*, const char*, const char*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_ssl_client_context(struct soap*, unsigned short, const char*, const char*, const char*, const char*, const char*);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_puthttphdr(struct soap*, int status, size_t count);
-
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_get_header_attribute(struct soap*, const char*, const char*);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_decode_key(char*, size_t, const char*);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_decode_val(char*, size_t, const char*);
-
-SOAP_FMAC1 size_t SOAP_FMAC2 soap_hash(const char*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_set_endpoint(struct soap*, const char*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_flush_raw(struct soap*, const char*, size_t);
-SOAP_FMAC1 int SOAP_FMAC2 soap_flush(struct soap*);
-SOAP_FMAC1 soap_wchar SOAP_FMAC2 soap_get(struct soap*);
-SOAP_FMAC1 soap_wchar SOAP_FMAC2 soap_getchar(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_tag_cmp(const char*, const char*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_set_fault(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_sender_fault(struct soap*, const char*, const char*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_sender_fault_subcode(struct soap*, const char*, const char*, const char*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_receiver_fault(struct soap*, const char*, const char*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_receiver_fault_subcode(struct soap*, const char*, const char*, const char*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_set_sender_error(struct soap*, const char*, const char*, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_set_receiver_error(struct soap*, const char*, const char*, int);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_send_raw(struct soap*, const char*, size_t);
-SOAP_FMAC1 int SOAP_FMAC2 soap_recv_raw(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_recv(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_send(struct soap*, const char*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_send2(struct soap*, const char*, const char*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_send3(struct soap*, const char*, const char*, const char*);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_pututf8(struct soap*, unsigned long);
-SOAP_FMAC1 soap_wchar SOAP_FMAC2 soap_getutf8(struct soap*);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_putbase64(struct soap*, const unsigned char*, int);
-SOAP_FMAC1 unsigned char* SOAP_FMAC2 soap_getbase64(struct soap*, int*, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_puthex(struct soap*, const unsigned char*, int);
-SOAP_FMAC1 unsigned char* SOAP_FMAC2 soap_gethex(struct soap*, int*);
-
-#ifndef WITH_LEANER
-SOAP_FMAC1 int SOAP_FMAC2 soap_xop_forward(struct soap*, unsigned char**, int*, char**, char**, char**);
-SOAP_FMAC1 int SOAP_FMAC2 soap_dime_forward(struct soap*, unsigned char**, int*, char**, char**, char**);
-#endif
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_lookup_id(struct soap*, void *p, int t, struct soap_plist**);
-SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_lookup(struct soap*, const void *p, int t, struct soap_plist**);
-SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_enter(struct soap*, const void *p, const struct soap_array *a, int n, int t, struct soap_plist**);
-SOAP_FMAC1 int SOAP_FMAC2 soap_array_pointer_lookup(struct soap*, const void *p, const struct soap_array *a, int n, int t, struct soap_plist**);
-SOAP_FMAC1 int SOAP_FMAC2 soap_embed(struct soap *soap, const void *p, const struct soap_array *a, int n, const char *tag, int type);
-SOAP_FMAC1 struct soap_ilist* SOAP_FMAC2 soap_lookup(struct soap*, const char*);
-SOAP_FMAC1 struct soap_ilist* SOAP_FMAC2 soap_enter(struct soap*, const char*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_resolve(struct soap*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_embedded(struct soap*, const void *p, int t);
-SOAP_FMAC1 int SOAP_FMAC2 soap_reference(struct soap*, const void *p, int t);
-SOAP_FMAC1 int SOAP_FMAC2 soap_array_reference(struct soap*, const void *p, const struct soap_array *a, int n, int t);
-SOAP_FMAC1 int SOAP_FMAC2 soap_embedded_id(struct soap*, int id, const void *p, int t);
-SOAP_FMAC1 int SOAP_FMAC2 soap_is_embedded(struct soap*, struct soap_plist*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_is_single(struct soap*, struct soap_plist*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_set_embedded(struct soap*, struct soap_plist*);
-#endif
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_begin_count(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_end_count(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_begin_send(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_end_send(struct soap*);
-
-SOAP_FMAC1 const struct soap_code_map* SOAP_FMAC2 soap_code(const struct soap_code_map*, const char*);
-SOAP_FMAC1 long SOAP_FMAC2 soap_code_int(const struct soap_code_map*, const char*, long);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_code_str(const struct soap_code_map*, long);
-SOAP_FMAC1 long SOAP_FMAC2 soap_code_bits(const struct soap_code_map*, const char*);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_code_list(struct soap*, const struct soap_code_map*, long);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_getline(struct soap*, char*, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_begin_recv(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_end_recv(struct soap*);
-
-SOAP_FMAC1 void* SOAP_FMAC2 soap_malloc(struct soap*, size_t);
-SOAP_FMAC1 void SOAP_FMAC2 soap_dealloc(struct soap*, void*);
-SOAP_FMAC1 struct soap_clist * SOAP_FMAC2 soap_link(struct soap*, void*, int, int, int (*fdelete)(struct soap_clist*));
-SOAP_FMAC1 void SOAP_FMAC2 soap_unlink(struct soap*, const void*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_free_temp(struct soap*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_del(struct soap*);
-
-SOAP_FMAC1 void* SOAP_FMAC2 soap_track_malloc(struct soap*, const char*, int, size_t);
-SOAP_FMAC1 void SOAP_FMAC2 soap_track_free(struct soap*, const char*, int, void*);
-
-#ifndef WITH_NOIDREF
-SOAP_FMAC1 int SOAP_FMAC2 soap_lookup_type(struct soap*, const char *id);
-SOAP_FMAC1 void* SOAP_FMAC2 soap_id_lookup(struct soap*, const char *id, void **p, int t, size_t n, unsigned int k);
-SOAP_FMAC1 void* SOAP_FMAC2 soap_id_forward(struct soap*, const char *id, void *p, size_t len, int st, int tt, size_t n, unsigned int k, void(*fcopy)(struct soap*, int, int, void*, size_t, const void*, size_t));
-#endif
-SOAP_FMAC1 void* SOAP_FMAC2 soap_id_enter(struct soap*, const char *id, void *p, int t, size_t n, unsigned int k, const char *type, const char *arrayType, void *(*finstantiate)(struct soap*, int, const char*, const char*, size_t*));
-SOAP_FMAC1 void SOAP_FMAC2 soap_fcopy(struct soap *soap, int st, int tt, void *p, size_t, const void *q, size_t n);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_size(const int *, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_getoffsets(const char *, const int *, int *, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_getsize(const char *, const char *, int *);
-SOAP_FMAC1 int SOAP_FMAC2 soap_getsizes(const char *, int *, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_getposition(const char *, int *);
-
-SOAP_FMAC1 char* SOAP_FMAC2 soap_putsize(struct soap*, const char *, int);
-SOAP_FMAC1 char* SOAP_FMAC2 soap_putsizesoffsets(struct soap*, const char *, const int *, const int *, int);
-SOAP_FMAC1 char* SOAP_FMAC2 soap_putsizes(struct soap*, const char *, const int *, int);
-SOAP_FMAC1 char* SOAP_FMAC2 soap_putoffset(struct soap*, int);
-SOAP_FMAC1 char* SOAP_FMAC2 soap_putoffsets(struct soap*, const int *, int);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_closesock(struct soap*);
-
-SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_new(void);
-SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_new1(soap_mode);
-SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_new2(soap_mode, soap_mode);
-SOAP_FMAC1 void SOAP_FMAC2 soap_free(struct soap*);
-SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_copy(const struct soap*);
-SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_copy_context(struct soap*, const struct soap*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_copy_stream(struct soap*, struct soap*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_free_stream(struct soap*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_init(struct soap*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_init1(struct soap*, soap_mode);
-SOAP_FMAC1 void SOAP_FMAC2 soap_init2(struct soap*, soap_mode, soap_mode);
-SOAP_FMAC1 void SOAP_FMAC2 soap_done(struct soap*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_cleanup(struct soap*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_begin(struct soap*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_end(struct soap*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_delete(struct soap*, void*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_delegate_deletion(struct soap*, struct soap*);
-
-/* API functions available with DEBUG or SOAP_DEBUG defined: */
-SOAP_FMAC1 void SOAP_FMAC2 soap_set_recv_logfile(struct soap*, const char*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_set_sent_logfile(struct soap*, const char*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_set_test_logfile(struct soap*, const char*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_close_logfiles(struct soap*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_open_logfile(struct soap*, int);
-/* */
-
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_value(struct soap*);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_match_tag(struct soap*, const char*, const char *);
-SOAP_FMAC1 int SOAP_FMAC2 soap_match_array(struct soap*, const char*);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_element(struct soap*, const char*, int, const char*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_element_begin_out(struct soap*, const char *tag, int id, const char *type);
-SOAP_FMAC1 int SOAP_FMAC2 soap_array_begin_out(struct soap*, const char *tag, int id, const char *type, const char *offset);
-SOAP_FMAC1 int SOAP_FMAC2 soap_element_ref(struct soap*, const char *tag, int id, int href);
-SOAP_FMAC1 int SOAP_FMAC2 soap_element_href(struct soap*, const char *tag, int id, const char *ref, const char *val);
-SOAP_FMAC1 int SOAP_FMAC2 soap_element_null(struct soap*, const char *tag, int id, const char *type);
-SOAP_FMAC1 int SOAP_FMAC2 soap_element_id(struct soap*, const char *tag, int id, const void *p, const struct soap_array *a, int d, const char *type, int n);
-SOAP_FMAC1 int SOAP_FMAC2 soap_element_result(struct soap*, const char *tag);
-SOAP_FMAC1 void SOAP_FMAC2 soap_check_result(struct soap*, const char *tag);
-SOAP_FMAC1 int SOAP_FMAC2 soap_element_end_out(struct soap*, const char *tag);
-SOAP_FMAC1 int SOAP_FMAC2 soap_element_start_end_out(struct soap*, const char *tag);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_attribute(struct soap*, const char*, const char*);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_element_begin_in(struct soap*, const char *tag, int nillable, const char *type);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_element_end_in(struct soap*, const char *tag);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_peek_element(struct soap*);
-
-SOAP_FMAC1 void SOAP_FMAC2 soap_retry(struct soap*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_revert(struct soap*);
-
-SOAP_FMAC1 char* SOAP_FMAC2 soap_strdup(struct soap*, const char*);
-SOAP_FMAC1 wchar_t* SOAP_FMAC2 soap_wstrdup(struct soap*, const wchar_t*);
-SOAP_FMAC1 const char * SOAP_FMAC2 soap_tagsearch(const char *big, const char *little);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_string_out(struct soap*, const char *s, int flag);
-SOAP_FMAC1 char* SOAP_FMAC2 soap_string_in(struct soap*, int, long, long);
-
-#ifndef WITH_LEANER
-SOAP_FMAC1 int SOAP_FMAC2 soap_wstring_out(struct soap*, const wchar_t *s, int flag);
-SOAP_FMAC1 wchar_t* SOAP_FMAC2 soap_wstring_in(struct soap*, int, long, long);
-#endif
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_match_namespace(struct soap*, const char *, const char*, size_t n1, size_t n2);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_set_namespaces(struct soap*, const struct Namespace*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_set_local_namespaces(struct soap*);
-
-SOAP_FMAC1 void SOAP_FMAC2 soap_pop_namespace(struct soap*);
-SOAP_FMAC1 struct soap_nlist* SOAP_FMAC2 soap_push_namespace(struct soap*, const char *,const char *);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_current_namespace(struct soap *soap, const char *tag);
-
-SOAP_FMAC1 struct soap_nlist* SOAP_FMAC2 soap_lookup_ns(struct soap *soap, const char *tag, size_t n);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_store_lab(struct soap*, const char*, size_t);
-SOAP_FMAC1 int SOAP_FMAC2 soap_append_lab(struct soap*, const char*, size_t);
-
-SOAP_FMAC1 struct soap_blist* SOAP_FMAC2 soap_new_block(struct soap*);
-SOAP_FMAC1 void* SOAP_FMAC2 soap_push_block(struct soap*, struct soap_blist*, size_t);
-SOAP_FMAC1 void SOAP_FMAC2 soap_pop_block(struct soap*, struct soap_blist*);
-SOAP_FMAC1 size_t SOAP_FMAC2 soap_size_block(struct soap*, struct soap_blist*, size_t);
-SOAP_FMAC1 char* SOAP_FMAC2 soap_first_block(struct soap*, struct soap_blist*);
-SOAP_FMAC1 char* SOAP_FMAC2 soap_next_block(struct soap*, struct soap_blist*);
-SOAP_FMAC1 size_t SOAP_FMAC2 soap_block_size(struct soap*, struct soap_blist*);
-SOAP_FMAC1 char* SOAP_FMAC2 soap_save_block(struct soap*, struct soap_blist*, char*, int);
-SOAP_FMAC1 void SOAP_FMAC2 soap_end_block(struct soap*, struct soap_blist*);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_begin_out(struct soap*);
-SOAP_FMAC1 int soap_envelope_end_out(struct soap*);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_begin_in(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_end_in(struct soap*);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_body_begin_out(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_body_end_out(struct soap*);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_body_begin_in(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_body_end_in(struct soap*);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_recv_header(struct soap*);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_response(struct soap*, int);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_send_empty_response(struct soap*, int status);
-SOAP_FMAC1 int SOAP_FMAC2 soap_recv_empty_response(struct soap*);
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_send_fault(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_recv_fault(struct soap*, int check);
-
-#ifndef WITH_NOSTDLIB
-SOAP_FMAC1 void SOAP_FMAC2 soap_print_fault(struct soap*, FILE*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_print_fault_location(struct soap*, FILE*);
-# ifndef WITH_LEAN
-# ifdef __cplusplus
-SOAP_FMAC1 void SOAP_FMAC2 soap_stream_fault(struct soap*, std::ostream&);
-# endif
-SOAP_FMAC1 char* SOAP_FMAC2 soap_sprint_fault(struct soap*, char*, size_t);
-# endif
-#endif
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_s2byte(struct soap*, const char*, char*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_s2short(struct soap*, const char*, short*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_s2int(struct soap*, const char*, int*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_s2long(struct soap*, const char*, long*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_s2LONG64(struct soap*, const char*, LONG64*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_s2float(struct soap*, const char*, float*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_s2double(struct soap*, const char*, double*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedByte(struct soap*, const char*, unsigned char*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedShort(struct soap*, const char*, unsigned short*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedInt(struct soap*, const char*, unsigned int*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedLong(struct soap*, const char*, unsigned long*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_s2ULONG64(struct soap*, const char*, ULONG64*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_s2string(struct soap*, const char*, char**, long minlen, long maxlen);
-SOAP_FMAC1 int SOAP_FMAC2 soap_s2QName(struct soap*, const char*, char**, long minlen, long maxlen);
-
-#ifndef WITH_LEAN
-SOAP_FMAC1 int SOAP_FMAC2 soap_s2wchar(struct soap*, const char*, wchar_t**, long minlen, long maxlen);
-SOAP_FMAC1 int SOAP_FMAC2 soap_s2dateTime(struct soap*, const char*, time_t*);
-SOAP_FMAC1 char* SOAP_FMAC2 soap_s2base64(struct soap*, const unsigned char*, char*, int);
-SOAP_FMAC1 char* SOAP_FMAC2 soap_s2hex(struct soap*, const unsigned char*, char*, int);
-#endif
-
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_byte2s(struct soap*, char);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_short2s(struct soap*, short);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_int2s(struct soap*, int);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_long2s(struct soap*, long);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_LONG642s(struct soap*, LONG64);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_float2s(struct soap*, float);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_double2s(struct soap*, double);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_unsignedByte2s(struct soap*, unsigned char);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_unsignedShort2s(struct soap*, unsigned short);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_unsignedInt2s(struct soap*, unsigned int);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_unsignedLong2s(struct soap*, unsigned long);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_ULONG642s(struct soap*, ULONG64);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_QName2s(struct soap*, const char*);
-
-#ifndef WITH_LEAN
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_wchar2s(struct soap*, const wchar_t*);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_dateTime2s(struct soap*, time_t);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_base642s(struct soap*, const char*, char*, size_t, int*);
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_hex2s(struct soap*, const char*, char*, size_t, int*);
-#endif
-
-
-SOAP_FMAC1 int* SOAP_FMAC2 soap_inint(struct soap*, const char *tag, int *p, const char *, int);
-SOAP_FMAC1 char* SOAP_FMAC2 soap_inbyte(struct soap*, const char *tag, char *p, const char *, int);
-SOAP_FMAC1 long* SOAP_FMAC2 soap_inlong(struct soap*, const char *tag, long *p, const char *, int);
-SOAP_FMAC1 LONG64* SOAP_FMAC2 soap_inLONG64(struct soap*, const char *tag, LONG64 *p, const char *, int);
-SOAP_FMAC1 short* SOAP_FMAC2 soap_inshort(struct soap*, const char *tag, short *p, const char *, int);
-SOAP_FMAC1 float* SOAP_FMAC2 soap_infloat(struct soap*, const char *tag, float *p, const char *, int);
-SOAP_FMAC1 double* SOAP_FMAC2 soap_indouble(struct soap*, const char *tag, double *p, const char *, int);
-SOAP_FMAC1 unsigned char* SOAP_FMAC2 soap_inunsignedByte(struct soap*, const char *tag, unsigned char *p, const char *, int);
-SOAP_FMAC1 unsigned short* SOAP_FMAC2 soap_inunsignedShort(struct soap*, const char *tag, unsigned short *p, const char *, int);
-SOAP_FMAC1 unsigned int* SOAP_FMAC2 soap_inunsignedInt(struct soap*, const char *tag, unsigned int *p, const char *, int);
-SOAP_FMAC1 unsigned long* SOAP_FMAC2 soap_inunsignedLong(struct soap*, const char *tag, unsigned long *p, const char *, int);
-SOAP_FMAC1 ULONG64* SOAP_FMAC2 soap_inULONG64(struct soap*, const char *tag, ULONG64 *p, const char *, int);
-SOAP_FMAC1 char** SOAP_FMAC2 soap_instring(struct soap*, const char *tag, char **p, const char *, int, int, long, long);
-SOAP_FMAC1 char** SOAP_FMAC2 soap_inliteral(struct soap*, const char *tag, char **p);
-
-#ifndef WITH_LEAN
-SOAP_FMAC1 time_t* SOAP_FMAC2 soap_indateTime(struct soap*, const char *tag, time_t *p, const char *, int);
-SOAP_FMAC1 time_t SOAP_FMAC2 soap_timegm(struct tm*);
-#endif
-
-#ifndef WITH_LEANER
-SOAP_FMAC1 wchar_t** SOAP_FMAC2 soap_inwstring(struct soap*, const char *tag, wchar_t **p, const char *, int, long, long);
-SOAP_FMAC1 wchar_t** SOAP_FMAC2 soap_inwliteral(struct soap*, const char *tag, wchar_t **p);
-#endif
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_outbyte(struct soap*, const char *tag, int id, const char *p, const char *, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_outshort(struct soap*, const char *tag, int id, const short *p, const char *, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_outint(struct soap*, const char *tag, int id, const int *p, const char *, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_outlong(struct soap*, const char *tag, int id, const long *p, const char *, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_outLONG64(struct soap*, const char *tag, int id, const LONG64 *p, const char *, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_outfloat(struct soap*, const char *tag, int id, const float *p, const char *, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_outdouble(struct soap*, const char *tag, int id, const double *p, const char *, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedByte(struct soap*, const char *tag, int id, const unsigned char *p, const char *, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedShort(struct soap*, const char *tag, int id, const unsigned short *p, const char *, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedInt(struct soap*, const char *tag, int id, const unsigned int *p, const char *, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedLong(struct soap*, const char *tag, int id, const unsigned long *p, const char *, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_outULONG64(struct soap*, const char *tag, int id, const ULONG64 *p, const char *, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_outstring(struct soap*, const char *tag, int id, char *const*p, const char *, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_outliteral(struct soap*, const char *tag, char *const*p, const char *type);
-
-#ifndef WITH_LEAN
-SOAP_FMAC1 int SOAP_FMAC2 soap_outdateTime(struct soap*, const char *tag, int id, const time_t *p, const char *, int);
-#endif
-
-#ifndef WITH_LEANER
-SOAP_FMAC1 int SOAP_FMAC2 soap_outwstring(struct soap*, const char *tag, int id, wchar_t *const*p, const char *, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_outwliteral(struct soap*, const char *tag, wchar_t *const*p, const char *type);
-#endif
-
-#ifndef WITH_LEANER
-SOAP_FMAC1 int SOAP_FMAC2 soap_attachment(struct soap *, const char*, int, const void*, const struct soap_array*, const char*, const char*, const char*, int, const char*, int);
-SOAP_FMAC1 int SOAP_FMAC2 soap_move(struct soap*, long);
-SOAP_FMAC1 size_t SOAP_FMAC2 soap_tell(struct soap*);
-SOAP_FMAC1 char* SOAP_FMAC2 soap_dime_option(struct soap*, unsigned short, const char*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_getdimehdr(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_getdime(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_putdimehdr(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_putdime(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_getmimehdr(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_getmime(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_putmimehdr(struct soap*, struct soap_multipart*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_putmime(struct soap*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_set_dime(struct soap*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_set_mime(struct soap*, const char *boundary, const char *start);
-SOAP_FMAC1 void SOAP_FMAC2 soap_clr_dime(struct soap*);
-SOAP_FMAC1 void SOAP_FMAC2 soap_clr_mime(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_set_dime_attachment(struct soap*, char *ptr, size_t size, const char *type, const char *id, unsigned short optype, const char *option);
-SOAP_FMAC1 int SOAP_FMAC2 soap_set_mime_attachment(struct soap*, char *ptr, size_t size, enum soap_mime_encoding encoding, const char *type, const char *id, const char *location, const char *description);
-SOAP_FMAC1 void SOAP_FMAC2 soap_post_check_mime_attachments(struct soap *soap);
-SOAP_FMAC1 int SOAP_FMAC2 soap_check_mime_attachments(struct soap *soap);
-SOAP_FMAC1 struct soap_multipart* SOAP_FMAC2 soap_get_mime_attachment(struct soap *soap, void *handle);
-SOAP_FMAC1 int SOAP_FMAC2 soap_match_cid(struct soap*, const char*, const char*);
-#endif
-
-SOAP_FMAC1 int SOAP_FMAC2 soap_register_plugin_arg(struct soap*, int (*fcreate)(struct soap*, struct soap_plugin*, void*), void*);
-SOAP_FMAC1 void* SOAP_FMAC2 soap_lookup_plugin(struct soap*, const char*);
-
-SOAP_FMAC1 const char* SOAP_FMAC2 soap_attr_value(struct soap *soap, const char *name, int flag);
-SOAP_FMAC1 int SOAP_FMAC2 soap_set_attr(struct soap *soap, const char *name, const char *value, int flag);
-SOAP_FMAC1 void SOAP_FMAC2 soap_clr_attr(struct soap *soap);
-
-#ifdef WITH_COOKIES
-SOAP_FMAC1 void SOAP_FMAC2 soap_getcookies(struct soap *soap, const char *val);
-SOAP_FMAC1 size_t SOAP_FMAC2 soap_encode_cookie(const char*, char*, size_t);
-SOAP_FMAC1 extern struct soap_cookie* SOAP_FMAC2 soap_set_cookie(struct soap*, const char*, const char*, const char*, const char*);
-SOAP_FMAC1 extern struct soap_cookie* SOAP_FMAC2 soap_cookie(struct soap*, const char*, const char*, const char*);
-SOAP_FMAC1 extern char* SOAP_FMAC2 soap_cookie_value(struct soap*, const char*, const char*, const char*);
-SOAP_FMAC1 extern char* SOAP_FMAC2 soap_env_cookie_value(struct soap*, const char*, const char*, const char*);
-SOAP_FMAC1 extern time_t SOAP_FMAC2 soap_cookie_expire(struct soap*, const char*, const char*, const char*);
-SOAP_FMAC1 extern int SOAP_FMAC2 soap_set_cookie_expire(struct soap*, const char*, long, const char*, const char*);
-SOAP_FMAC1 extern int SOAP_FMAC2 soap_set_cookie_session(struct soap*, const char*, const char*, const char*);
-SOAP_FMAC1 extern int SOAP_FMAC2 soap_clr_cookie_session(struct soap*, const char*, const char*, const char*);
-SOAP_FMAC1 extern void SOAP_FMAC2 soap_clr_cookie(struct soap*, const char*, const char*, const char*);
-SOAP_FMAC1 extern int SOAP_FMAC2 soap_getenv_cookies(struct soap*);
-SOAP_FMAC1 extern struct soap_cookie* SOAP_FMAC2 soap_copy_cookies(struct soap*, const struct soap*);
-SOAP_FMAC1 extern void SOAP_FMAC2 soap_free_cookies(struct soap*);
-SOAP_FMAC1 int SOAP_FMAC2 soap_putsetcookies(struct soap *soap);
-SOAP_FMAC1 int SOAP_FMAC2 soap_putcookies(struct soap *soap, const char *domain, const char *path, int secure);
-#endif
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* STDSOAP_H */
diff --git a/usr/src/lib/libkmsagent/common/SYSCommon.c b/usr/src/lib/libkmsagent/common/SYSCommon.c
deleted file mode 100644
index dd418fec4b..0000000000
--- a/usr/src/lib/libkmsagent/common/SYSCommon.c
+++ /dev/null
@@ -1,2307 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/*---------------------------------------------------------------------------
- * Module: SYSCommon.c
- *-------------------------------------------------------------------------*/
-
-#include <stdio.h>
-#include "SYSCommon.h"
-#include <time.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <signal.h>
-
-#ifndef WIN32
-#include <unistd.h>
-#endif
-
-#ifdef WIN32
-#include <io.h>
-#include <stdlib.h> /* for malloc, calloc, and free */
-#elif defined K_LINUX_PLATFORM
-#include <unistd.h> /* it includes usleep(us) */
-#include <sys/time.h>
-#include <fts.h>
-#else
-/*
- * Directory traversal code is not yet available for Solaris.
- * If such code will need to be written, then it will probably use ftw.h.
- */
-#endif
-
-#ifdef K_SOLARIS_PLATFORM
-/* For K_AdjustLocalClock */
-#include <unistd.h>
-/* For K_SetRootPassword */
-#define __EXTENSIONS__ /* to expose flockfile and friends in stdio.h */
-#include <errno.h>
-#include <libgen.h>
-#include <malloc.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <strings.h>
-#include <stropts.h>
-#include <unistd.h>
-#include <termio.h>
-#include <security/pam_appl.h>
-#include <widec.h>
-#endif
-
-#ifdef K_LINUX_PLATFORM
-extern int pthread_mutexattr_settype __P ((pthread_mutexattr_t *__attr,
- int __kind));
-#endif
-
-#ifdef K_HPUX_PLATFORM
-int64 atoll(const char *str)
-{
- int64 tmp = 0;
- sscanf(str, "%lld", &tmp);
- return tmp;
-}
-
-#endif
-
-
-/*---------------------------------------------------------------------------
- * Function: K_CreateThread
- *
- * Description:
- * Thread creation function "CreateThread" takes a thread function
- * and its parameter to create a thread. It also has a Boolean
- * parameter to indicate if the thread is detached or joinable.
- * A new thread's handle is returned through the output parameter.
- *
- * Input
- * -----
- * i_pFunc Function pointer of the thread function
- * i_pvData The point of the parameter passed to the thread function
- * i_bIsDetached The thread is detached or not
- * (Note: It is not supported on Win32)
- *
- * Output
- * ------
- * o_pNewThread The Thread handle
- *
- * Return value Error code
- *
- *--------------------------------------------------------------------------*/
-
-int K_CreateThread(K_ThreadFunc i_pFunc,
- void *i_pvData,
- int i_bIsDetached,
- K_THREAD_HANDLE *o_pNewThread)
-{
- int iOK = K_SYS_OK;
- int iReturn = 0;
-
-#ifdef WIN32
-
- {
- unsigned id;
-
- *o_pNewThread = (HANDLE)_beginthreadex(NULL,
- 0,
- (int (_stdcall *) (void *vpData))i_pFunc,
- i_pvData,
- 0,
- &id);
-
-
- if(*o_pNewThread == 0)
- {
-#ifdef SYS_DEBUG
- printf(" (%s, %d): error creating pthread, error = %d\n",
- __FILE__, __LINE__, iReturn);
-#endif
- return K_SYS_ERR_CREATE_THREAD;
- }
-
- return K_SYS_OK;
- }
-
-#else
- pthread_attr_t attr;
-
- iReturn = pthread_attr_init(&attr);
-
- if ( iReturn == 0 )
- {
- iReturn = pthread_attr_setdetachstate(&attr, (i_bIsDetached) ?
- PTHREAD_CREATE_DETACHED :
- PTHREAD_CREATE_JOINABLE);
- }
-
-#ifdef UNIX
- if ( iReturn == 0 )
- {
- iReturn = pthread_attr_setstacksize(&attr, 1024*1024);
- }
-#endif
-
- if ( iReturn == 0 )
- {
- iReturn = pthread_create(o_pNewThread, &attr, (void *(*)(void *)) i_pFunc, i_pvData);
- }
-
- if ( iReturn == 0 )
- {
- iReturn = pthread_attr_destroy(&attr);
- }
-
- // TODO: Log error?
- if ( iReturn )
- {
-#ifdef SYS_DEBUG
- printf(" (%s, %d): error creating pthread, error = %d\n",
- __FILE__, __LINE__, iReturn);
-#endif
-
- iOK = K_SYS_ERR_CREATE_THREAD;
- }
-
- return iOK;
-#endif
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_JoinThread
- *
- * Description:
- * Thread joining function is called when the current thread
- * waits another thread to terminate.
- *
- * Input
- * -----
- * i_hThread The thread handle of the to-be-joined thread
- *
- * Output
- * ------
- * (none)
- *
- * Return value Error code
- *
- *--------------------------------------------------------------------------*/
-
-int K_JoinThread(K_THREAD_HANDLE i_hThread)
-{
- int iOK = K_SYS_OK;
-#ifdef WIN32
-
- WaitForSingleObject(i_hThread, INFINITE);
-
-#else
- {
- int iReturn;
- iReturn = pthread_join(i_hThread, NULL);
-
- if ( iReturn )
- {
-
-#ifdef SYS_DEBUG
- printf(" (%s, %d): error creating pthread, error = %d\n",
- __FILE__, __LINE__, iReturn);
-#endif
- iOK = K_SYS_ERR_JOIN_THREAD;
- }
- }
-
-#endif
- return iOK;
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_GetCurrentThreadId
- *
- * Description:
- * Returns the thread ID of the current thread.
- *
- * Input
- * -----
- * (none)
- *
- * Output
- * ------
- * (none)
- *
- * Return value The thread ID
- *
- *--------------------------------------------------------------------------*/
-
-int K_GetCurrentThreadId()
-{
-#ifdef WIN32
- return GetCurrentThreadId();
-#else
- return pthread_self();
-#endif
-
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_CreateMutex
- *
- * Description:
- * The mutex creation function creates a mutex according to the given
- * mutex type, and returns the mutex handle to the output parameter.
- *
- * Input
- * -----
- * i_bIsRecursive Indication whether the mutex can be entered recursively
- *
- * Output
- * ------
- * o_phandle the handle pointer to the mutex
- *
- * Return value Error Code
- *
- *--------------------------------------------------------------------------*/
-
-int K_CreateMutex( K_MUTEX_HANDLE *o_phandle )
-{
- int iOK = K_SYS_OK;
- BOOL bIsRecursive = 1; // this used to be an input -- but why do we want this to be optional?
-
-#ifdef WIN32
- {
- *o_phandle = (WIN32Mutex *)malloc(sizeof(WIN32Mutex));
- if(*o_phandle == NULL)
- {
- return K_SYS_ERR_NO_MEMORY;
- }
- (*o_phandle)->m_bIsRecursive = bIsRecursive;
- if(bIsRecursive)
- {
- InitializeCriticalSection(&((*o_phandle)->m_stCriticalSection));
- }
- else
- {
- (*o_phandle)->m_handle = CreateMutex(NULL, FALSE, NULL);
- }
-
- }
-#else
- {
- int iType;
- pthread_mutexattr_t attr;
-
- if ( pthread_mutexattr_init(&attr) )
- {
- return K_SYS_ERR_COND;
- }
-
- if(bIsRecursive)
- {
- iType =
-#ifdef K_LINUX_PLATFORM
- PTHREAD_MUTEX_RECURSIVE_NP;
-#else
- PTHREAD_MUTEX_RECURSIVE;
-#endif
-
- if ( pthread_mutexattr_settype(&attr, iType) )
- {
- return K_SYS_ERR_COND;
- }
- }
-
- *o_phandle = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
- if(*o_phandle == NULL)
- {
- return K_SYS_ERR_NO_MEMORY;
- }
-
- if ( pthread_mutex_init(*o_phandle, &attr) )
- {
- return K_SYS_ERR_COND;
- }
-
- if ( pthread_mutexattr_destroy(&attr) )
- {
- return K_SYS_ERR_COND;
- }
- }
-#endif
-
- return iOK;
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_LockMutex
- *
- * Description:
- * K_LockMutex is used to lock the mutex, and K_UnlockMutex is
- * used to unlock it.
- *
- * Input
- * -----
- * i_handle the mutex handle
- *
- * Output
- * ------
- * (none)
- *
- * Return value Error Code
- *
- *--------------------------------------------------------------------------*/
-
-int K_LockMutex(K_MUTEX_HANDLE i_handle)
-{
- int iOK = K_SYS_OK;
-#ifdef WIN32
-
- if(i_handle->m_bIsRecursive)
- {
- EnterCriticalSection(&(i_handle->m_stCriticalSection));
- }
- else
- {
- WaitForSingleObject(i_handle->m_handle, INFINITE);
- }
-
-#else
-
- if ( pthread_mutex_lock(i_handle) )
- {
- return K_SYS_ERR_COND;
- }
-
-#endif
- return iOK; // TODO: better error handling
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_UnlockMutex
- *
- * Description:
- * K_UnlockMutex is used to unlock the lock.
- *
- * Input
- * -----
- * i_handle the mutex handle
- *
- * Output
- * ------
- * (none)
- *
- * Return value Error Code
- *
- *--------------------------------------------------------------------------*/
-
-int K_UnlockMutex(K_MUTEX_HANDLE i_handle)
-{
- int iOK = K_SYS_OK;
-
-#ifdef WIN32
- if(i_handle->m_bIsRecursive)
- {
- LeaveCriticalSection(&(i_handle->m_stCriticalSection));
- }
- else
- {
- ReleaseMutex(i_handle->m_handle);
- }
-
-#else
-
- if ( pthread_mutex_unlock(i_handle) )
- {
- return K_SYS_ERR_COND;
- }
-#endif
-
- return iOK; // TODO: better error handling
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_DestroyMutex
- *
- * Description:
- * When a mutex is no longer needed, K_DestroyMutex must be called
- * to destroy it.
- *
- * Input
- * -----
- * i_handle the mutex handle
- * Output
- * ------
- * (none)
- *
- * Return value Error Code
- *
- *--------------------------------------------------------------------------*/
-
-int K_DestroyMutex(K_MUTEX_HANDLE i_handle)
-{
-
- int iOK = K_SYS_OK;
-
-#ifdef WIN32
-
- if(i_handle->m_bIsRecursive)
- {
- DeleteCriticalSection(&(i_handle->m_stCriticalSection));
- }
- else
- {
- CloseHandle(i_handle->m_handle);
- }
- free(i_handle);
-
-#else
- pthread_mutex_destroy(i_handle);
- free(i_handle);
-#endif
- return iOK; // TODO: better error handling
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_InitConditionalVariable
- *
- * Description:
- * This function initializes a conditional variable. Upon successful
- * completion, the new condition variable is returned via the condition
- * parameter, and 0 is returned. Otherwise, an error code is returned.
- *
- * Input
- * -----
- * i_pCond the pointer to the conditional variable which is to be
- * initialized
- *
- * Output
- * ------
- * (none)
- *
- * Return value Error Code
- *
- *--------------------------------------------------------------------------*/
-
-int K_InitConditionalVariable (K_ConditionalVariable * i_pCond)
-{
- int iOK = K_SYS_OK;
-#ifdef WIN32
-
- i_pCond->m_hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
- i_pCond->m_hMutex = CreateMutex(NULL, FALSE, NULL);
- i_pCond->m_iSignalAll = 0;
- i_pCond->m_iNumWaiting = 0;
-
-#else
-
- if ( pthread_cond_init(i_pCond, NULL) )
- {
- return K_SYS_ERR_COND;
- }
-
-#endif
-
- return iOK;
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_DestroyConditionalVariable
- *
- * Description:
- * This function destroys a conditional variable. Upon successful
- * completion, the condition variable is destroyed, and 0 is returned.
- * Otherwise, an error code is returned.
- * After deletion of the condition variable, the condition parameter
- * is not valid until it is initialized again by a call to the
- * K_InitConditionalVariable subroutine.
- *
- * Input
- * -----
- * i_pCond the pointer to the conditional variable which is to be
- * destroyed
- * Output
- * ------
- * (none)
- *
- * Return value Error Code
- *
- *--------------------------------------------------------------------------*/
-
-int K_DestroyConditionalVariable(K_ConditionalVariable * i_pCond)
-{
- int iOK = K_SYS_OK;
-#ifdef WIN32
- CloseHandle(i_pCond->m_hMutex);
- CloseHandle(i_pCond->m_hEvent);
-#else
-
- if ( pthread_cond_destroy(i_pCond) )
- {
- return K_SYS_ERR_COND;
- }
-
-#endif
- return iOK;
-
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_WaitConditionalVariable
- *
- * Description:
- * This function is used to block on a condition variable.
- * They are called with mutex locked by the calling thread or undefined
- * behaviour will result.
- *
- * Input
- * -----
- * i_pCond the pointer to the conditional variable
- * i_handle the companion mutex handle
- *
- * Output
- * ------
- * (none)
- *
- * Return value Error Code
- *
- *--------------------------------------------------------------------------*/
-
-int K_WaitConditionalVariable(K_ConditionalVariable * i_pCond,
- K_MUTEX_HANDLE i_handle)
-{
-
- int iOK = K_SYS_OK;
-#ifdef WIN32
- DWORD res;
-
- while (1)
- {
- iOK = WaitForSingleObject(i_pCond->m_hMutex, INFINITE);
- if (iOK != WAIT_OBJECT_0)
- {
- return K_SYS_ERR_COND;
- }
- i_pCond->m_iNumWaiting++;
- ReleaseMutex(i_pCond->m_hMutex);
-
- K_UnlockMutex(i_handle);
- res = WaitForSingleObject(i_pCond->m_hEvent, INFINITE);
- i_pCond->m_iNumWaiting--;
-
- if (res != WAIT_OBJECT_0)
- {
- ReleaseMutex(i_pCond->m_hMutex);
- return K_SYS_ERR_COND;
- }
-
- if (i_pCond->m_iSignalAll)
- {
- if (i_pCond->m_iNumWaiting == 0)
- {
- ResetEvent(i_pCond->m_hEvent);
- }
- break;
- }
-
- if (i_pCond->m_iSignalled)
- {
- i_pCond->m_iSignalled = 0;
- ResetEvent(i_pCond->m_hEvent);
- break;
- }
- ReleaseMutex(i_pCond->m_hMutex);
- }
-
- K_LockMutex(i_handle);
-
- return K_SYS_OK;
-#else
-
- if ( pthread_cond_wait(i_pCond, i_handle) )
- {
- return K_SYS_ERR_COND;
- }
-
-#endif
- return iOK; // TODO: better error handling
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_SignalConditionalVariable
- *
- * Description:
- * This function is used to restart one of the threads that are waiting on
- * the condition variable. If no threads are waiting on it, nothing happens.
- * If several threads are waiting on it, exactly one is restarted.
- *
- * Input
- * -----
- * i_pCond the pointer to the conditional variable
- *
- * Output
- * ------
- * (none)
- *
- * Return value Error Code
- *
- *--------------------------------------------------------------------------*/
-
-int K_SignalConditionalVariable(K_ConditionalVariable * i_pCond)
-{
- int iOK = K_SYS_OK;
-#ifdef WIN32
-
- int iReturn;
-
- iReturn = WaitForSingleObject(i_pCond->m_hMutex, INFINITE);
- if (iReturn != WAIT_OBJECT_0)
- {
- return K_SYS_ERR_COND;
- }
-
- i_pCond->m_iSignalled = 1;
-
- iReturn = SetEvent(i_pCond->m_hEvent);
- if (iReturn == 0)
- {
- iOK = K_SYS_ERR_COND;
- }
- ReleaseMutex(i_pCond->m_hMutex);
-
- return iOK;
-#else
-
- if ( pthread_cond_signal(i_pCond) )
- {
- return K_SYS_ERR_COND;
- }
-
-#endif
- return iOK;
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_BroadcastConditionalVariable
- *
- * Description:
- * This function is used to restart all threads that are waiting on
- * the condition variable.
- *
- * Input
- * -----
- * i_pCond the pointer to the conditional variable
- *
- * Output
- * ------
- * (none)
- *
- * Return value Error Code
- *
- *--------------------------------------------------------------------------*/
-
-int K_BroadcastConditionalVariable(K_ConditionalVariable * i_pCond)
-{
-
- int iOK = K_SYS_OK;
-
-#ifdef WIN32
-
- int iReturn;
-
- iReturn = WaitForSingleObject(i_pCond->m_hMutex, INFINITE);
- if (iReturn != WAIT_OBJECT_0)
- {
- return K_SYS_ERR_COND;
- }
- i_pCond->m_iSignalled = 1;
- i_pCond->m_iSignalAll = 1;
-
- iReturn = SetEvent(i_pCond->m_hEvent);
-
- if (iReturn == 0)
- {
- iOK = K_SYS_ERR_COND;
- }
-
- ReleaseMutex(i_pCond->m_hMutex);
-
- return iOK;
-
-#else
-
- if ( pthread_cond_broadcast(i_pCond) )
- {
- return K_SYS_ERR_COND;
- }
-
-#endif
- return iOK;
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_Sleep
- *
- * Description:
- * Sleep for a given period in given milliseconds.
- *
- * Input
- * -----
- * i_ms milliseconds
- *
- * Output
- * ------
- * (none)
- *
- * Return value (none)
- *
- *--------------------------------------------------------------------------*/
-
-void K_Sleep(int i_ms)
-{
-#ifdef WIN32
- Sleep(i_ms);
-#else
- usleep(i_ms * 1000);
-#endif
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_GetTickCount
- *
- * Description:
- * The K_GetTickCount function retrieves the number of
- * milliseconds that have elapsed since the system was started.
- *
- * Input
- * -----
- * (none)
- *
- * Output
- * ------
- * (none)
- *
- * Return value the elasped milliseconds since the system was started
- *
- *--------------------------------------------------------------------------*/
-
-unsigned int K_GetTickCount()
-{
-#ifdef WIN32
- return (unsigned int)GetTickCount();
-#else
- {
- struct timeval tv;
- gettimeofday( &tv, NULL );
- /* this will rollover ~ every 49.7 days
- dont surprise when it returns negative values, since we are only interested
- in using sth like "tickCount2 - tickCount1" to get the time interval
- */
- return ( tv.tv_sec * 1000 ) + ( tv.tv_usec / 1000 );
- }
-#endif
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_AdjustClock
- *
- * Description:
- * The K_AdjustClock function immediately adjusts the system clock by
- * the given number of seconds. A positive number adjusts the system
- * clock forward; a negative number adjusts the system clock backward.
- *
- * Input
- * -----
- * i_iAdjustmentInSeconds Number of seconds by which to adjust the
- * system clock
- * Output
- * ------
- * (none)
- *
- * Return value 1 if successful, 0 on error
- *
- *--------------------------------------------------------------------------*/
-
-int K_AdjustClock( long i_iAdjustmentInSeconds )
-{
-#ifndef WIN32
- struct timeval stDateTime;
- if ( 0 != gettimeofday(&stDateTime, NULL) )
- {
- return FALSE;
- }
-
- stDateTime.tv_sec += i_iAdjustmentInSeconds;
-
- if ( 0 != settimeofday(&stDateTime, NULL) )
- {
- return FALSE;
- }
-#else
- // TODO: implement for Windows
- return FALSE;
-#endif
-
- return TRUE;
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_IsLittleEndian
- *
- * Description:
- * Checks to see whether this platform uses little endian integer
- * representation.
- *
- * Input
- * -----
- * (none)
- *
- * Output
- * ------
- * (none)
- *
- * Return value 1 for little endian
- *
- *--------------------------------------------------------------------------*/
-
-int K_IsLittleEndian()
-{
- short iWord = 0x4321;
- return ((*(unsigned char*)&iWord) == 0x21);
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_FileLength32
- *
- * Description:
- * Gets the size in bytes of the file associated with the given FILE pointer.
- *
- * Input
- * -----
- * i_fpFile File handle
- *
- * Output
- * ------
- * (none)
- *
- * Return value File size in bytes, or -1L on error
- *
- *--------------------------------------------------------------------------*/
-
-long K_FileLength32( FILE* i_fpFile )
-{
-#ifdef WIN32
- int iFileDescriptor = _fileno( i_fpFile );
- struct _stat stStat;
-
- if ( _fstat(iFileDescriptor, &stStat) != 0)
- {
- // error
- return -1L;
- }
-
-#else
- int iFileDescriptor = fileno( i_fpFile );
- struct stat stStat;
-
- if ( fstat(iFileDescriptor, &stStat) != 0)
- {
- // error
- return -1L;
- }
-
-#endif
-
- return stStat.st_size;
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_StringCompareNoCase
- *
- * Description:
- * Compares the two given strings insensitive to case.
- *
- * Input
- * -----
- * i_sString1 First string
- * i_sString2 Second string
- *
- * Output
- * ------
- * (none)
- *
- * Return value 0 if identical, -1 if first string is less than second
- * string, or 1 if first string is greater than second
- *
- *--------------------------------------------------------------------------*/
-
-int K_StringCompareNoCase( const char* i_sString1, const char* i_sString2 )
-{
-#ifdef WIN32
- return _stricmp( i_sString1, i_sString2 );
-#else
- return strcasecmp( i_sString1, i_sString2 );
-#endif
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_StringCompareNoCaseWide
- *
- * Description:
- * Compares the two given wide strings insensitive to case.
- *
- * Input
- * -----
- * i_wsString1 First wide string
- * i_wsString2 Second wide string
- *
- * Output
- * ------
- * (none)
- *
- * Return value 0 if identical, -1 if first string is less than second
- * string, or 1 if first string is greater than second
- *
- *--------------------------------------------------------------------------*/
-
-int K_StringCompareNoCaseWide( const wchar_t* i_wsString1, const wchar_t* i_wsString2 )
-{
-#ifdef WIN32
- return _wcsicmp( i_wsString1, i_wsString2 );
-#elif defined K_SOLARIS_PLATFORM
- return wscasecmp( i_wsString1, i_wsString2 );
-#else
- return wcscasecmp( i_wsString1, i_wsString2 );
-#endif
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_CreateDirectory
- *
- * Description:
- * Creates a directory with the given path name.
- *
- * Input
- * -----
- * i_sDirectoryName Directory name
- *
- * Output
- * ------
- * (none)
- *
- * Return value 0 on success, -1 on failure
- *
- *--------------------------------------------------------------------------*/
-
-int K_CreateDirectory( const char* i_sDirectoryName )
-{
- // TODO: make this build all parent directories as well.
-
-#ifdef WIN32
- if ( CreateDirectoryA( i_sDirectoryName, NULL ) )
- {
- return 0;
- }
- else
- {
- DWORD dwError = GetLastError();
- return ( dwError == ERROR_ALREADY_EXISTS ) ? 0 : (dwError ? dwError : -1);
- }
-#else
- if ( mkdir( i_sDirectoryName, S_IRWXU ) == 0 )
- {
- return 0;
- }
- else
- {
- return ( errno == EEXIST ) ? 0 : (errno ? errno : -1);
- }
-#endif
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_DeleteFile
- *
- * Description:
- * Deletes the given file.
- *
- * Input
- * -----
- * i_sFilename Name of file to delete
- *
- * Output
- * ------
- * (none)
- *
- * Return value 0 on success, errno on failure
- *
- *--------------------------------------------------------------------------*/
-
-int K_DeleteFile( const char* i_sFilename )
-{
- int bSuccess = 0;
-
- bSuccess =
-#ifdef WIN32
- _unlink(
-#else
- unlink(
-#endif
- i_sFilename ) == 0;
-
- return bSuccess ? 0 : errno;
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_ReadFile
- *
- * Description:
- * Reads from the given file and passes the bytes read back to the output
- * parameter. The caller must deallocate o_ppFileData using free().
- *
- * Input
- * -----
- * i_sFilename Name of file from which to read
- *
- * Output
- * ------
- * o_ppFileData Pointer to bytes read
- *
- * Return value Number of bytes read on success, -1 on failure
- *
- *--------------------------------------------------------------------------*/
-
-int K_ReadFile( const char* i_sFilename, unsigned char** o_ppFileData )
-{
- FILE* pFile = 0;
- long iFileSize = 0;
-
- if ( !i_sFilename || (strlen(i_sFilename) <= 0) || !o_ppFileData )
- {
- return -1;
- }
-
- *o_ppFileData = 0;
-
- // Open the file
-
- pFile = fopen( i_sFilename, "rb" );
- if ( !pFile )
- {
- return -1;
- }
-
- // Determine the file size
-
- if ( fseek( pFile, 0, SEEK_END ) )
- {
- (void) fclose( pFile );
- return -1;
- }
-
- iFileSize = ftell( pFile );
- if ( iFileSize < 0 )
- {
- (void) fclose( pFile );
- return -1;
- }
- else if ( iFileSize == 0 )
- {
- (void) fclose( pFile );
- return 0;
- }
-
- if ( fseek( pFile, 0, SEEK_SET ) )
- {
- (void) fclose( pFile );
- return -1;
- }
-
- *o_ppFileData = (unsigned char*)malloc( iFileSize );
- if ( !*o_ppFileData )
- {
- // Out of memory.
- (void) fclose( pFile );
- return -1;
- }
-
- if ( iFileSize != (long)fread( *o_ppFileData, 1, iFileSize, pFile ) )
- {
- free( *o_ppFileData );
- *o_ppFileData = 0;
- (void) fclose( pFile );
- return -1;
- }
-
- (void) fclose( pFile );
-
- return iFileSize;
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_ReadFileString
- *
- * Description:
- * Reads from the given file and passes the bytes read back to the output
- * parameter, appending these bytes with a null terminator. There is no
- * guarantee that there are no non-text characters in the returned "string".
- * The caller must deallocate o_ppFileData using free().
- *
- * Input
- * -----
- * i_sFilename Name of file from which to read
- *
- * Output
- * ------
- * o_psFileDataString Pointer to bytes read
- *
- * Return value Number of bytes read (including null terminator) on
- * success (0 if file is empty), -1 on failure
- *
- *--------------------------------------------------------------------------*/
-
-int K_ReadFileString( const char* i_sFilename, char** o_psFileDataString )
-{
- unsigned char* pFileData = 0;
- int iFileSize = 0;
-
- *o_psFileDataString = 0;
-
- iFileSize = K_ReadFile( i_sFilename, &pFileData );
-
- if ( iFileSize <= 0 )
- {
- return iFileSize;
- }
-
- *o_psFileDataString = (char*)malloc( iFileSize+1 );
-
- if ( !*o_psFileDataString )
- {
- // Out of memory.
- if ( pFileData )
- {
- free( pFileData );
- }
- return -1;
- }
-
- memcpy( *o_psFileDataString, pFileData, iFileSize );
-
- (*o_psFileDataString)[iFileSize] = '\0';
-
- if ( pFileData )
- {
- free( pFileData );
- }
-
- return iFileSize+1;
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_WriteFile
- *
- * Description:
- * Writes the given bytes to the given file.
- *
- * Input
- * -----
- * i_sFilename Name of file to which to write
- * i_pFileData Bytes to write
- * i_iFileDataSize Number of bytes to write
- *
- * Output
- * ------
- * (none)
- *
- * Return value 0 on success, errno or -1 (generic error) on failure
- *
- *--------------------------------------------------------------------------*/
-
-int K_WriteFile( const char* i_sFilename, const unsigned char* i_pFileData, int i_iFileDataSize )
-{
- FILE* pFile = 0;
-
- if ( !i_sFilename || (strlen(i_sFilename) <= 0) || (!i_pFileData && (i_iFileDataSize > 0)) || (i_iFileDataSize < 0) )
- {
- return -1;
- }
-
- pFile = fopen( i_sFilename, "wb" );
- if ( !pFile )
- {
- int iError = errno;
- return (iError != 0) ? iError : -1;
- }
-
- if ( i_iFileDataSize > 0 )
- {
- if ( i_iFileDataSize != (int)fwrite( i_pFileData, 1, i_iFileDataSize, pFile ) )
- {
- int iError = ferror( pFile );
- (void) fclose( pFile );
- return (iError != 0) ? iError : -1;
- }
- }
-
- (void) fclose( pFile );
-
- return 0;
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_WriteFileString
- *
- * Description:
- * Writes the given null-terminated bytes to the given file. The null
- * terminator itself is not written to the file.
- *
- * Input
- * -----
- * i_sFilename Name of file to which to write
- * i_sFileData Bytes to write
- *
- * Output
- * ------
- * (none)
- *
- * Return value 0 on success, errno or -1 (generic error) on failure
- *
- *--------------------------------------------------------------------------*/
-
-int K_WriteFileString( const char* i_sFilename, const char* i_sFileData )
-{
- if ( !i_sFilename || (strlen(i_sFilename) <= 0) || !i_sFileData || (strlen(i_sFileData) <= 0) )
- {
- return -1;
- }
-
- return K_WriteFile( i_sFilename, (const unsigned char*)i_sFileData, strlen(i_sFileData) );
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_FileExists
- *
- * Description:
- * Checks to see whehter the given file exists.
- *
- * Input
- * -----
- * i_sFilename Name of file to check
- *
- * Output
- * ------
- * (none)
- *
- * Return value 1 if file exists, 0 if not, -1 on failure
- *
- *--------------------------------------------------------------------------*/
-
-int K_FileExists( const char* i_sFilename )
-{
- FILE* pFile = 0;
-
- if ( !i_sFilename || (strlen(i_sFilename) <= 0) )
- {
- return -1;
- }
-
- pFile = fopen( i_sFilename, "r+" );
-
- if ( !pFile )
- {
- if ( errno == ENOENT )
- {
- return 0;
- }
-
- return -1;
- }
-
- (void) fclose( pFile );
-
- return 1;
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_CopyFile
- *
- * Description:
- * Reads from the given source file and writes these bytes to the given
- * destination file.
- *
- * Input
- * -----
- * i_sSrcFilename Name of file from which to read
- * i_sDestFilename Name of file to which to write
- *
- * Output
- * ------
- * o_pbFileExists Non-zero if the destination file already exists
- *
- * Return value 0 on success, errno or -1 (generic error) on failure
- *
- *--------------------------------------------------------------------------*/
-
-int K_CopyFile( const char* i_sSrcFilename, const char* i_sDestFilename, int* o_pbFileExists )
-{
- unsigned char* pFileData = 0;
- int iFileSize = 0;
- int iError, iFileExists;
-
- if ( !i_sSrcFilename || (strlen(i_sSrcFilename) <= 0)
- || !i_sDestFilename || (strlen(i_sDestFilename) <= 0)
- || !o_pbFileExists )
- {
- return -1;
- }
-
- *o_pbFileExists = 0;
-
- iFileExists = K_FileExists( i_sDestFilename );
-
- if ( iFileExists < 0 )
- {
- iError = errno;
- return (iError == 0) ? -1 : iError;
- }
- else if ( iFileExists > 0 )
- {
- *o_pbFileExists = 1;
- return -1;
- }
-
- iFileSize = K_ReadFile( i_sSrcFilename, &pFileData );
- if ( iFileSize < 0 )
- {
- iError = errno;
- return (iError == 0) ? -1 : iError;
- }
-
- iError = K_WriteFile( i_sDestFilename, pFileData, iFileSize );
-
- if ( pFileData )
- {
- free( pFileData );
- }
-
- return iError;
-}
-
-
-#ifdef K_LINUX_PLATFORM
-static int fts_compare( const FTSENT** i_ppF1, const FTSENT** i_ppF2 )
-{
- return strcmp( (*i_ppF1)->fts_name, (*i_ppF2)->fts_name );
-}
-#else
-/*
- * Directory traversal code is not yet available for Solaris.
- * If such code will need to be written, then it will probably use ftw.h.
- */
-#endif
-
-
-/*
- * TODO: Set up functions for platform-specific find-file operations to
- * help clean up the code below.
- */
-
-typedef struct K_FindInfo
-{
-#ifdef WIN32
- struct _finddata_t m_stFindData;
- long m_hFile;
-#elif defined K_LINUX_PLATFORM
- FTS* m_pFTS;
- FTSENT* m_pFTSENT;
-#else
-/*
- * Directory traversal code is not yet available for Solaris.
- * If such code will need to be written, then it will probably use ftw.h.
- */
- int unused;
-#endif
-} K_FindInfo;
-
-// Memory for filename is held in i_pFindInfo.
-const char* K_GetFilenameFromInfo( const K_FindInfo* i_pFindInfo )
-{
- if( !i_pFindInfo )
- {
- return 0;
- }
-
-#ifdef WIN32
- return i_pFindInfo->m_stFindData.name;
-#elif defined K_LINUX_PLATFORM
- return i_pFindInfo->m_pFTSENT->fts_name;
-#else
-/*
- * Directory traversal code is not yet available for Solaris.
- * If such code will need to be written, then it will probably use ftw.h.
- */
- FATAL_ASSERT( 0 );
- return 0;
-#endif
-}
-
-// Forward declarations
-int K_FindFileNext( K_FindInfo* io_pFindInfo );
-void K_FindFileClose( K_FindInfo* io_pFindInfo );
-
-// Returns 0 if successful, 1 if not found, -1 if error.
-// If not error, K_FindFileClose must be called.
-// o_pFindInfo must not be null.
-int K_FindFileFirst( const char* i_sDirectoryName, K_FindInfo* o_pFindInfo )
-{
-#ifdef WIN32
- char* sSearchString = 0;
- int iSearchStringIndex = 0;
-#endif
-
- if ( !i_sDirectoryName || (strlen(i_sDirectoryName) <= 0) || !o_pFindInfo )
- {
- return -1;
- }
-
-#ifdef WIN32
- memset( o_pFindInfo, 0, sizeof(K_FindInfo) );
-
- iSearchStringIndex = strlen(i_sDirectoryName);
- if ( i_sDirectoryName[iSearchStringIndex-1] == PATH_SEPARATOR )
- {
- iSearchStringIndex += 2;
- }
- else
- {
- iSearchStringIndex += 3;
- }
-
- sSearchString = (char*)calloc( iSearchStringIndex, 1 );
- if ( !sSearchString )
- {
- return -1;
- }
-
- strcpy( sSearchString, i_sDirectoryName );
- iSearchStringIndex--;
- sSearchString[iSearchStringIndex] = '\0';
- iSearchStringIndex--;
- sSearchString[iSearchStringIndex] = '*';
- iSearchStringIndex--;
- sSearchString[iSearchStringIndex] = PATH_SEPARATOR;
-
- o_pFindInfo->m_hFile = _findfirst( sSearchString, &o_pFindInfo->m_stFindData );
- free( sSearchString );
- if ( o_pFindInfo->m_hFile == -1 )
- {
- if ( errno == ENOENT )
- {
- return 1;
- }
- else
- {
- return -1;
- }
- }
-#elif defined K_LINUX_PLATFORM
- memset( o_pFindInfo, 0, sizeof(K_FindInfo) );
-
- o_pFindInfo->m_pFTS = fts_open( aPath, FTS_PHYSICAL | FTS_NOSTAT, fts_compare );
- if ( !o_pFindInfo->m_pFTS )
- {
- return -1;
- }
-
- o_pFindInfo->m_pFTSENT = fts_read( o_pFindInfo->m_pFTS );
- if ( !o_pFindInfo->m_pFTSENT )
- {
- if ( errno == 0 )
- {
- return 1;
- }
- else
- {
- fts_close( o_pFindInfo->m_pFTS );
- return -1;
- }
- }
-#else
-/*
- * Directory traversal code is not yet available for Solaris.
- * If such code will need to be written, then it will probably use ftw.h.
- */
-#endif
-
- // If what we found is not actually a file, get the next hit.
-#ifdef WIN32
- if ( (o_pFindInfo->m_stFindData.attrib & _A_SUBDIR) )
-#elif defined K_LINUX_PLATFORM
- if ( !(o_pFindInfo->m_pFTSENT->fts_info & FTS_F) )
-#else
-/*
- * Directory traversal code is not yet available for Solaris.
- * If such code will need to be written, then it will probably use ftw.h.
- */
-#endif
- {
- int iNextReturn = K_FindFileNext( o_pFindInfo );
- if ( iNextReturn < 0 )
- {
- K_FindFileClose( o_pFindInfo );
- return -1;
- }
- else
- {
- return iNextReturn;
- }
- }
-
-#if defined(WIN32) || defined(K_LINUX_PLATFORM)
- return 0;
-#endif
-}
-
-// Returns 0 if successful, 1 if not found, -1 if error.
-int K_FindFileNext( K_FindInfo* io_pFindInfo )
-{
- if ( !io_pFindInfo )
- {
- return -1;
- }
-
-#ifdef WIN32
- if ( _findnext( io_pFindInfo->m_hFile, &io_pFindInfo->m_stFindData ) != 0 )
- {
- return (errno == ENOENT) ? 1 : -1;
- }
-#elif defined K_LINUX_PLATFORM
- io_pFindInfo->m_pFTSENT = fts_read( io_pFindInfo->m_pFTS );
- if ( !io_pFindInfo->m_pFTSENT )
- {
- return (errno == 0) ? 1 : -1;
- }
-#else
-/*
- * Directory traversal code is not yet available for Solaris.
- * If such code will need to be written, then it will probably use ftw.h.
- */
-#endif
-
- // If what we found is not actually a file, get the next hit.
-#ifdef WIN32
- if ( (io_pFindInfo->m_stFindData.attrib & _A_SUBDIR) )
-#elif defined K_LINUX_PLATFORM
- if ( !(io_pFindInfo->m_pFTSENT->fts_info & FTS_F) )
-#else
-/*
- * Directory traversal code is not yet available for Solaris.
- * If such code will need to be written, then it will probably use ftw.h.
- */
-#endif
- {
- return K_FindFileNext( io_pFindInfo );
- }
-
-#if defined(WIN32) || defined(K_LINUX_PLATFORM)
- return 0;
-#endif
-}
-
-void K_FindFileClose( K_FindInfo* io_pFindInfo )
-{
- if ( !io_pFindInfo )
- {
- return;
- }
-
-#ifdef WIN32
- _findclose( io_pFindInfo->m_hFile );
-#elif defined K_LINUX_PLATFORM
- fts_close( io_pFindInfo->m_pFTS );
-#else
-/*
- * Directory traversal code is not yet available for Solaris.
- * If such code will need to be written, then it will probably use ftw.h.
- */
-#endif
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_GetFilenamesInDirectoryCount
- *
- * Description:
- * Reads the given directory and returns the number of files that it contains.
- *
- * Input
- * -----
- * i_sDirectoryName Name of directory
- *
- * Output
- * ------
- * (none)
- *
- * Return value Number of files on success, -1 on failure
- *
- *--------------------------------------------------------------------------*/
-
-int K_GetFilenamesInDirectoryCount( const char* i_sDirectoryName )
-{
- K_FindInfo stFindInfo;
- int iCurrentFile = 0;
- int iError = 0;
-
- if ( !i_sDirectoryName || (strlen(i_sDirectoryName) <= 0) )
- {
- return -1;
- }
-
- iError = K_FindFileFirst( i_sDirectoryName, &stFindInfo );
- if ( iError < 0 )
- {
- // error
- return -1;
- }
- else if ( iError > 0 )
- {
- // no files found
- K_FindFileClose( &stFindInfo );
- return 0;
- }
-
- while ( 1 )
- {
- iCurrentFile++;
-
- iError = K_FindFileNext( &stFindInfo );
- if ( iError < 0 )
- {
- // error
- K_FindFileClose( &stFindInfo );
- return -1;
- }
- else if ( iError > 0 )
- {
- // no more files found
- break;
- }
- }
-
- K_FindFileClose( &stFindInfo );
-
- return iCurrentFile;
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_GetFilenamesInDirectory
- *
- * Description:
- * Reads the given directory and returns an array of names of files that it
- * contains. A null pointer appears at the last item in the array. The
- * caller must deallocate o_pasFilenames by using K_FreeFilenames or by
- * calling free() for each file name and then calling free() on the array
- * itself.
- *
- * Input
- * -----
- * i_sDirectoryName Name of directory
- *
- * Output
- * ------
- * o_pasFilenames Array of names of files found in this directory
- *
- * Return value Number of files on success, -1 on failure
- *
- *--------------------------------------------------------------------------*/
-
-int K_GetFilenamesInDirectory(
- const char* i_sDirectoryName,
- char*** o_pasFilenames )
-{
- // Note that we iterate through the filenames twice -- once to get the count
- // (K_GetFilenamesInDirectoryCount) and then once to get all the names. But
- // it may happen that the count changes between these calls. So we'll retrieve
- // at most the number of files that's returned in the first pass.
-
- K_FindInfo stFindInfo;
- int iFilenameCount = 0, iCurrentFile = 0;
- int iError = 0;
-
- if ( !i_sDirectoryName || (strlen(i_sDirectoryName) <= 0) || !o_pasFilenames )
- {
- return -1;
- }
-
- *o_pasFilenames = 0;
-
- iFilenameCount = K_GetFilenamesInDirectoryCount( i_sDirectoryName );
-
- if ( iFilenameCount < 0 )
- {
- return -1;
- }
-
- iError = K_FindFileFirst( i_sDirectoryName, &stFindInfo );
- if ( iError < 0 )
- {
- // error
- return -1;
- }
- else if ( iError > 0 )
- {
- // No files found
- K_FindFileClose( &stFindInfo );
- return 0;
- }
-
- *o_pasFilenames = (char**)calloc( (iFilenameCount+1), sizeof(char*) ); // +1 for the null last one
- if ( !*o_pasFilenames )
- {
- // Out of memory
- K_FindFileClose( &stFindInfo );
- return -1;
- }
-
- while ( 1 )
- {
- const char* sFilename = K_GetFilenameFromInfo( &stFindInfo );
-
- size_t iFilenameLength = sFilename ? strlen( sFilename ) : 0;
-
- if ( iFilenameLength <= 0 )
- {
- K_FreeFilenames( *o_pasFilenames );
- K_FindFileClose( &stFindInfo );
- return -1;
- }
-
- (*o_pasFilenames)[iCurrentFile] = (char*)calloc( (iFilenameLength+1), sizeof(char) );
- if ( !(*o_pasFilenames)[iCurrentFile] )
- {
- K_FreeFilenames( *o_pasFilenames );
- K_FindFileClose( &stFindInfo );
- return -1;
- }
-
- strncpy( (*o_pasFilenames)[iCurrentFile], sFilename, iFilenameLength );
- (*o_pasFilenames)[iCurrentFile][iFilenameLength] = '\0';
-
- iCurrentFile++;
-
- if ( iCurrentFile >= iFilenameCount )
- {
- break;
- }
-
- iError = K_FindFileNext( &stFindInfo );
- if ( iError < 0 )
- {
- // error
- K_FindFileClose( &stFindInfo );
- return -1;
- }
- else if ( iError > 0 )
- {
- // no more files found
- break;
- }
- }
-
- K_FindFileClose( &stFindInfo );
-
- return iCurrentFile;
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_FreeFilenames
- *
- * Description:
- * Deallocates the memory allocated in a successful call to
- * K_GetFilenamesInDirectory.
- *
- * Input
- * -----
- * i_asFilenames Array of names of files
- *
- * Output
- * ------
- * (none)
- *
- * Return value (none)
- *
- *--------------------------------------------------------------------------*/
-
-void K_FreeFilenames( char** i_asFilenames )
-{
- int i;
-
- if ( !i_asFilenames )
- {
- return;
- }
-
- for ( i = 0; (i_asFilenames[i] != 0); i++ )
- {
- free( i_asFilenames[i] );
- i_asFilenames[i] = 0;
- }
-
- free( i_asFilenames );
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_AdjustLocalClock
- *
- * Description:
- * The K_AdjustLocalClock function gradually adjusts the system clock by
- * the given number of seconds. A positive number adjusts the system
- * clock forward; a negative number adjusts the system clock backward.
- *
- * Input
- * -----
- * i_iAdjustmentInSeconds Number of seconds by which to adjust the
- * system clock
- * Output
- * ------
- * (none)
- *
- * Return value 1 if successful, 0 on error
- *
- *--------------------------------------------------------------------------*/
-
-int K_AdjustLocalClock( int i_iNumberOfSeconds )
-{
- struct timeval delta, lastchange;
-
-#ifndef K_SOLARIS_PLATFORM
- /* Only supported/tested on Solaris at the moment */
-
- return -1;
-#else
- /* WARNING: uses standard C time functions with Year 2038 limitations */
- time_t now;
-
- if ( (now = time(NULL)) == ((time_t)-1) )
- {
- return -1;
- }
-
- delta.tv_sec = i_iNumberOfSeconds;
- delta.tv_usec = 0;
-
- return adjtime(&delta, &lastchange);
-#endif
-}
-
-
-#ifdef K_SOLARIS_PLATFORM
-static int pam_tty_conv(
- int num_msg,
- struct pam_message** mess,
- struct pam_response** resp,
- void* my_data)
-{
- // Following code implements a console-based PAM "conversation" function
- // (based sample code from Solaris 10 Software Developer Collection >>
- // Solaris Security for Developers Guide >>
- // 3. Writing PAM Applications and Services)
-
- struct pam_message* m = *mess;
- struct pam_response* r;
- int i, j;
- const char* sPassword = (const char*)my_data;
- int error = PAM_CONV_ERR;
-
- if (num_msg <= 0 || num_msg >= PAM_MAX_NUM_MSG)
- {
- (void) fprintf(stderr, "PAM error: bad number of messages");
- *resp = NULL;
- return (PAM_CONV_ERR);
- }
-
- if ((*resp = r = calloc(num_msg, sizeof (struct pam_response))) == NULL)
- {
- return (PAM_BUF_ERR);
- }
-
- // Loop through messages
- for (i = 0; i < num_msg; i++) {
-
- // bad message from service module
- if (m->msg == NULL)
- {
- (void) fprintf(stderr, "PAM error: bad message");
- goto err;
- }
-
- // fix up final newline: removed for prompts, added back for messages
- if (m->msg[strlen(m->msg)] == '\n')
- {
- m->msg[strlen(m->msg)] = '\0';
- }
-
- // Since the KMA has its own password prompts and enforces its own rule checks, we already have the
- // new password in memory. So instead of displaying PAM prompts and collecting user responses, we
- // "automate" by assuming that the prompts correspond to the standard sequence of "New password:"
- // followed by "Confirm password:" and so in each case we immediately return the password we already
- // have in memory. This violates the PAM "conversation" function instructions (which say, basically,
- // not to assume any particular sequence of prompts since there could be any number of underlying
- // password managers), but since the KMA is running on an appliance with a fixed password manager,
- // our assumptions should hold.
-
- r->resp = NULL;
- r->resp_retcode = 0;
- switch (m->msg_style)
- {
- case PAM_PROMPT_ECHO_OFF:
- case PAM_PROMPT_ECHO_ON:
- // Assume the prompt asked for New/Confirm password, so return password.
- if ( (r->resp = strdup(sPassword)) == NULL )
- {
- error = PAM_BUF_ERR;
- goto err;
- }
- break;
-
- case PAM_ERROR_MSG:
- // Assuming the system is configured properly and the KMA password prompts enforce password strength rules,
- // there should not be errors because of weak passwords, etc. Still, print errors so users/support can
- // diagnose problems.
- (void) fputs(m->msg, stderr);
- (void) fputc('\n', stderr);
- break;
-
- case PAM_TEXT_INFO:
- // Supress prompts (again, making assumptions).
- break;
-
- default:
- (void) fprintf(stderr, "PAM error: unknown message");
- goto err;
- }
- if (errno == EINTR)
- {
- goto err;
- }
-
- // next message/response
- m++;
- r++;
- }
- return (PAM_SUCCESS);
-
-err:
- // Service modules do not clean up responses if an error is returned.
- // Free responses here.
- for (j = 0; j < i; j++, r++)
- {
- if (r->resp)
- {
- // clear before freeing -- may be a password
- bzero(r->resp, strlen(r->resp));
- free(r->resp);
- r->resp = NULL;
- }
- }
- free(r);
- *resp = NULL;
- return error;
-}
-#endif
-
-
-/*---------------------------------------------------------------------------
- * Function: K_SetRootPassword
- *
- * Description:
- * The K_SetRootPassword function sets the password for the root user via
- * Pluggable Authentication Module (PAM). This function is interactive.
- *
- * Input
- * -----
- * i_sPassword Password to set
- *
- * Output
- * ------
- * (none)
- *
- * Return value 0 if successful, -1 on error
- *
- *--------------------------------------------------------------------------*/
-
-int K_SetRootPassword( const char* i_sPassword )
-{
- // Only supported/tested on Solaris at the moment
-#ifndef K_SOLARIS_PLATFORM
- return -1;
-#else
- // Based on sample code from Solaris 10 Software Developer Collection >>
- // Solaris Security for Developers Guide >>
- // 3. Writing PAM Applications and Services
-
- // TODO: Return PAM error codes (to be logged) instead of emitting
- // messages to screen?
-
- struct pam_conv conv;
- pam_handle_t *pamh;
- int err;
-
- conv.conv = pam_tty_conv;
- conv.appdata_ptr = (void*)i_sPassword;
-
- // Initialize PAM framework
- err = pam_start("KeyMgr", "root", &conv, &pamh);
- if (err != PAM_SUCCESS)
- {
- fprintf(stderr, "PAM error: %s\n", pam_strerror(pamh, err));
- return -1;
- }
-
- // Change password
- err = pam_chauthtok(pamh, 0);
- if (err != PAM_SUCCESS)
- {
- fprintf(stderr, "PAM error: %s\n", pam_strerror(pamh, err));
- // fall through to cleanup
- }
-
- // Cleanup session
- pam_end(pamh, 0);
-
- return (err == PAM_SUCCESS) ? 0 : -1;
-#endif
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_Alarm
- *
- * Description:
- * Calls alarm(2) on Unix in order to cause the operating system to generate
- * a SIGALRM signal for this process after the given number of real-time
- * seconds. Does nothing on Windows.
- *
- * Input
- * -----
- * i_iSeconds Number of seconds after which to generate a SIGALRM
- * signal
- *
- * Output
- * ------
- * (none)
- *
- * Return value If a previous alarm request is pending, then it returns
- * the number of seconds until this previous request would
- * have generated a SIGALRM signal. Otherwise, returns 0.
- *
- *--------------------------------------------------------------------------*/
-
-unsigned int K_Alarm( unsigned int i_iSeconds )
-{
-#ifndef WIN32
- return alarm( i_iSeconds );
-#else
- return 0;
-#endif
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_GetExtendedVersionFromBase
- *
- * Description:
- * This KMS-specific function prepends the timestamp value to the specified
- * base replication schema version and returns this value as an extended
- * replication schema version.
- *
- * Input
- * -----
- * i_iBaseSchemaVersion Base replication schema version
- *
- * Output
- * ------
- * (none)
- *
- * Return value Extended replication schema version
- *
- *--------------------------------------------------------------------------*/
-
-unsigned int K_GetExtendedVersionFromBase( unsigned int i_iBaseSchemaVersion )
-{
- // seconds since 1970, force to 32-bit
-#ifdef WIN32
- INT32 iTimeStamp = (INT32) time(NULL);
-#else
- int32_t iTimeStamp = (int32_t) time(NULL);
-#endif
- // minutes since 1970
- iTimeStamp = iTimeStamp / 60;
- // minutes since 2000 (approximately)
- iTimeStamp -= (30*365*24*60);
- // shift 8 bits to clear out room for schema version #
- iTimeStamp = iTimeStamp << 8;
- // add schema version # to lower end
- iTimeStamp |= i_iBaseSchemaVersion;
-
- return (unsigned int) iTimeStamp;
-
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_ParseTimestampFromExtendedVersion
- *
- * Description:
- * This KMS-specific function parses the timestamp value from the given
- * extended replication schema version and returns this timestamp value.
- *
- * Input
- * -----
- * i_iExtendedSchemaVersion Extended replication schema version
- *
- * Output
- * ------
- * (none)
- *
- * Return value Timestamp value
- *
- *--------------------------------------------------------------------------*/
-
-unsigned int K_ParseTimestampFromExtendedVersion(
- unsigned int i_iExtendedSchemaVersion )
-{
- unsigned int iTimeStamp = i_iExtendedSchemaVersion >> 8;
-
- return iTimeStamp;
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_ParseBaseFromExtendedVersion
- *
- * Description:
- * This KMS-specific function parses the base replication schema value from
- * the given extended replication schema version and returns this base value.
- *
- * Input
- * -----
- * i_iExtendedSchemaVersion Extended replication schema version
- *
- * Output
- * ------
- * (none)
- *
- * Return value Base replication schema value
- *
- *--------------------------------------------------------------------------*/
-
-unsigned int K_ParseBaseFromExtendedVersion(
- unsigned int i_iExtendedSchemaVersion )
-{
- unsigned int iBaseSchemaVersion = i_iExtendedSchemaVersion & 0x000000FF;
-
- return iBaseSchemaVersion;
-}
-
-
-/*---------------------------------------------------------------------------
- * Function: K_System
- *
- * Description:
- * This function is a thread-safe replacement for the unsafe system(3C) call.
- * See the popen(3C) man page for more information.
- *
- * Input
- * -----
- * i_sCmd Command to execute
- *
- * Output
- * ------
- * (none)
- *
- * Return value Termination status of the command language interpreter
- * if successful, -1 on failure
- *
- *--------------------------------------------------------------------------*/
-
-int K_System( const char *i_sCmd )
-{
-#ifndef WIN32
- FILE *p;
- int rc;
- struct sigaction sOldAction;
-
- // Save signal handler
- sigaction( SIGCHLD, NULL, &sOldAction );
-
- // Use default child signal handler
- sigset( SIGCHLD, SIG_DFL );
-
- p = popen( i_sCmd, "w" );
- if ( p == NULL )
- {
- rc = -1;
- }
- else
- {
- rc = pclose( p );
- }
-
- // Reset signal handler
- sigset( SIGCHLD, sOldAction.sa_handler );
-
- return rc;
-#else
- return system( i_sCmd );
-#endif
-}
-
diff --git a/usr/src/lib/libkmsagent/common/SYSCommon.h b/usr/src/lib/libkmsagent/common/SYSCommon.h
deleted file mode 100644
index 2fd114c4c1..0000000000
--- a/usr/src/lib/libkmsagent/common/SYSCommon.h
+++ /dev/null
@@ -1,1168 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/*---------------------------------------------------------------------------
- * Module: System Abstraction Layer
- *
- * Description:
- * The system layer provides an abstract layer for the most commonly
- * used system calls for multi-platforms including Windows and most
- * Unix variants.
- *
- * All the functions defined in this layer fall into 4 categories:
- * Threading related functions
- * Mutexes
- * Conditional variables
- * Other Utilities
- *--------------------------------------------------------------------------*/
-
-#ifndef SYS_COMMON_H
-#define SYS_COMMON_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*---------------------------------------------------------------------------
- * ERROR code
- *--------------------------------------------------------------------------*/
-
-#define K_SYS_OK 0
-#define K_SYS_ERR_NO_MEMORY 1
-#define K_SYS_ERR_CREATE_THREAD 2
-#define K_SYS_ERR_JOIN_THREAD 3
-#define K_SYS_ERR_COND 4
-
-/*---------------------------------------------------------------------------
- * Header files
- *--------------------------------------------------------------------------*/
-
-#ifdef WIN32
- #include <windows.h>
- #include <process.h>
-#else
- #include <pthread.h>
-
- /* UNIX : added by STG */
- #include <stdlib.h>
- #include <string.h>
-#ifndef METAWARE
- #include <wchar.h>
-#endif
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <stdarg.h>
-
- /*
- * These functions are not needed, since the Agent API hides them
- * enum KeystoneAgent_SortOrder {};
- * enum KeystoneAgent_FilterOperator {};
- */
-
-#endif
-
-/*---------------------------------------------------------------------------
- * MACRO definitions
- *--------------------------------------------------------------------------*/
-
-#ifdef WIN32
-#define PATH_SEPARATOR '\\'
-#define PATH_SEPARATOR_WSTR L"\\"
-#ifndef PATH_MAX
-#define PATH_MAX MAX_PATH
-#endif
-#else
-#define PATH_SEPARATOR '/'
-#define PATH_SEPARATOR_WSTR L"/"
-#endif
-
-#ifndef BOOL
-#define BOOL int
-#endif
-#ifndef TRUE
-#define TRUE 1
-#define FALSE 0
-#endif
-
-#ifdef K_LINUX_PLATFORM
- #ifndef UNIX
- #define UNIX
- #endif
-#endif
-
-#ifdef K_AIX_PLATFORM
- #ifndef UNIX
- #define UNIX
- #endif
-#endif
-
-#ifdef K_SOLARIS_PLATFORM
- #ifndef UNIX
- #define UNIX
- #endif
-#endif
-
-#ifdef K_HPUX_PLATFORM
- #ifndef UNIX
- #define UNIX
- #endif
-#endif
-
-/*---------------------------------------------------------------------------
- * Fatal error definitions
- *--------------------------------------------------------------------------*/
-
-#ifndef __FUNCTION__
-#define __FUNCTION__ "(Unknown)"
-#endif
-
-#ifndef FATAL_APPLICATION_STATE
-
-#ifdef DEBUG
-
-#ifdef WIN32
-#include "crtdbg.h"
-#define DEBUG_BREAK() { _CrtDbgBreak(); }
-#else /* WIN32 */
-#ifdef METAWARE
-#define DEBUG_BREAK() (void *) 0x00000000; /* dummy operation */
-#else
-#if !defined(__i386)
-#define DEBUG_BREAK()
-#else
-#ifdef __GNUC__
-#define DEBUG_BREAK() { __asm__ ( "int3" ); } /* NOTE: This only works for x86 platforms */
-#else
-#define DEBUG_BREAK()
-#endif
-#endif /* __i386 */
-#endif /* METAWARE */
-#endif /* WIN32 */
-
-#define FATAL_APPLICATION_STATE() \
-do { \
- DEBUG_BREAK(); \
- process_fatal_application_state(__FILE__,__FUNCTION__,__LINE__,0); \
-} while(0)
-
-#define FATAL_APPLICATION_STATE1(additional_text) \
-do { \
- DEBUG_BREAK(); \
- process_fatal_application_state(__FILE__,__FUNCTION__,__LINE__,additional_text); \
-} while(0)
-
-#else //DEBUG
-
-#define DEBUG_BREAK()
-
-#define FATAL_APPLICATION_STATE() \
-do { \
- process_fatal_application_state(__FILE__,__FUNCTION__,__LINE__,0); \
-} while(0)
-
-#define FATAL_APPLICATION_STATE1(additional_text) \
-do { \
- process_fatal_application_state(__FILE__,__FUNCTION__,__LINE__,additional_text); \
-} while(0)
-
-#endif //DEBUG
-
-#define FATAL_ASSERT(expression) do { if(!(expression)) {FATAL_APPLICATION_STATE();} } while(0)
-#define FATAL_ASSERT1(expression,additional_text) do { if(!(expression)) {FATAL_APPLICATION_STATE1(additional_text);} } while(0)
-
-/* MS Visual Studio compiler does not support __attribute__() */
-#ifndef __GNUC__
-#define __attribute__(x)
-#endif
-
-void process_fatal_application_state(const char* sFile, const char* sFunction, int iLine, const char* sAdditionalText) __attribute__((noreturn));
-
-void generate_stack_trace(const char* i_sFile, const wchar_t* i_wsErrMsg);
-
-#endif /* FATAL_APPLICATION_STATE */
-
-/*---------------------------------------------------------------------------
- * Primitive type definitions
- *--------------------------------------------------------------------------*/
-
-#ifdef WIN32
-typedef __int64 int64;
-#else
-#ifndef K_AIX_PLATFORM
-typedef signed long long int64;
-#endif
-#endif
-
-
-#ifdef K_HPUX_PLATFORM
-wchar_t* wcsstr (const wchar_t* haystack, const wchar_t* needle);
-int wprintf (const wchar_t* format, ...);
-int swprintf (wchar_t* s, size_t maxlen, const wchar_t* format, ...);
-int vswprintf (wchar_t* s, size_t maxlen, const wchar_t* format, va_list args);
-int swscanf(const wchar_t *s, const wchar_t *format, ...);
-int64 atoll(const char *str);
-#endif
-
-/*---------------------------------------------------------------------------
- * Thread type definitions
- *--------------------------------------------------------------------------*/
-
-#ifdef WIN32
-typedef HANDLE K_THREAD_HANDLE;
-#else
-typedef pthread_t K_THREAD_HANDLE;
-#endif
-
-/*---------------------------------------------------------------------------
- * Mutex type definitions
- *--------------------------------------------------------------------------*/
-
-#ifdef WIN32
-
-typedef struct {
- HANDLE m_handle; /* mutex handle */
-
- CRITICAL_SECTION m_stCriticalSection; /* criticalSection */
-
- int m_bIsRecursive;
-} WIN32Mutex;
-
-typedef WIN32Mutex* K_MUTEX_HANDLE;
-
-#else
-typedef pthread_mutex_t* K_MUTEX_HANDLE;
-#endif
-
-/*---------------------------------------------------------------------------
- * Conditional variable type definitions
- *--------------------------------------------------------------------------*/
-
-#ifdef WIN32
- struct K_CondStruct
- {
- HANDLE m_hEvent;
- HANDLE m_hMutex;
- int m_iSignalAll;
- int m_iNumWaiting;
- int m_iSignalled;
- };
- typedef struct K_CondStruct K_ConditionalVariable;
-
-#else
- typedef pthread_cond_t K_ConditionalVariable;
-#endif
-
-/*---------------------------------------------------------------------------
- * Thread function type definitions
- *--------------------------------------------------------------------------*/
-
- /*
- * Having the function return int breaks compatibility between Windows
- * and Unix; the function has to return void
- */
-/*#ifdef WIN32
- * typedef int (_stdcall *K_ThreadFunc) (void *vpData);
- *#else
- */
- typedef void (*K_ThreadFunc) (void *vpData);
-/*
- *#endif
- */
-
-
-/*---------------------------------------------------------------------------
- * Function: K_CreateThread
- *
- * Description:
- * This thread creation function takes a thread function
- * and its parameter to create a thread. It also has a Boolean
- * parameter to indicate if the thread is detached or joinable.
- * A new thread's handle is returned through the output parameter.
- *
- * Input
- * -----
- * i_pFunc Function pointer of the thread function
- * i_pvData The point of the parameter passed to the thread function
- * i_bIsDetached The thread is detached or not. If detached, then it is
- * not joinable. (Note: It is not supported on Win32)
- *
- * Output
- * ------
- * o_pNewThread The Thread handle
- *
- * Return value Error code
- *
- *--------------------------------------------------------------------------*/
-int K_CreateThread(K_ThreadFunc i_pFunc,
- void *i_pvData,
- int i_bIsDetached,
- K_THREAD_HANDLE *o_pNewThread);
-
-
-/*---------------------------------------------------------------------------
- * Function: K_JoinThread
- *
- * Description:
- * This thread joining function is called when the current thread
- * waits another thread to terminate.
- *
- * Input
- * -----
- * i_hThread The thread handle of the to-be-joined thread
- *
- * Output
- * ------
- * (none)
- *
- * Return value Error code
- *
- *--------------------------------------------------------------------------*/
-int K_JoinThread(K_THREAD_HANDLE i_hThread);
-
-
-/*---------------------------------------------------------------------------
- * Function: K_GetCurrentThreadId
- *
- * Description:
- * Returns the thread ID of the current thread.
- *
- * Input
- * -----
- * (none)
- *
- * Output
- * ------
- * (none)
- *
- * Return value The thread ID
- *
- *--------------------------------------------------------------------------*/
-
-int K_GetCurrentThreadId();
-
-
-/*---------------------------------------------------------------------------
- * Function: K_CreateMutex
- *
- * Description:
- * The mutex creation function creates a mutex according to the given
- * mutex type, and returns the mutex handle to the output parameter.
- *
- * Input
- * -----
- * (none)
- *
- * Output
- * ------
- * o_phandle the handle pointer to the mutex
- *
- * Return value Error Code
- *
- *--------------------------------------------------------------------------*/
-
-int K_CreateMutex( K_MUTEX_HANDLE *o_phandle );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_LockMutex
- *
- * Description:
- * K_LockMutex is used to lock the mutex, and K_UnlockMutex is
- * used to unlock it.
- *
- * Input
- * -----
- * i_handle the mutex handle
- *
- * Output
- * ------
- * (none)
- *
- * return value Error Code
- *
- *--------------------------------------------------------------------------*/
-int K_LockMutex(K_MUTEX_HANDLE i_handle);
-
-
-/*---------------------------------------------------------------------------
- * Function: K_UnlockMutex
- *
- * Description:
- * K_UnlockMutex is used to unlock the lock.
- *
- * Input
- * -----
- * i_handle the mutex handle
- *
- * Output
- * ------
- * (none)
- *
- * Return value Error Code
- *
- *--------------------------------------------------------------------------*/
-int K_UnlockMutex(K_MUTEX_HANDLE i_handle);
-
-
-/*---------------------------------------------------------------------------
- * Function: K_DestroyMutex
- *
- * Description:
- * When a mutex is no longer needed, K_DestroyMutex must be called
- * to destroy it.
- *
- * Input
- * -----
- * i_handle the mutex handle
- *
- * Output
- * ------
- * (none)
- *
- * Return value Error Code
- *
- *--------------------------------------------------------------------------*/
-
-int K_DestroyMutex(K_MUTEX_HANDLE i_handle);
-
-
-/*---------------------------------------------------------------------------
- *
- * The following section defines Conditional Variable
- *
- * Conditional Variable implements similar functionalities defined
- * in POSIX thread library. But it only supports conditional variables
- * inside one process and doesn't support pthread_cond_timedwait().
-*--------------------------------------------------------------------------*/
-
-
-/*---------------------------------------------------------------------------
- * Function: K_InitConditionalVariable
- *
- * Description:
- * This function initializes a conditional variable; Upon successful
- * completion, the new condition variable is returned via the condition
- * parameter, and 0 is returned. Otherwise, an error code is returned.
- *
- * Input
- * -----
- * i_pCond the pointer to the conditional variable which is to be
- * initialized
- *
- * Output
- * ------
- * (none)
- *
- * Return value Error Code
- *
- *--------------------------------------------------------------------------*/
-int K_InitConditionalVariable (K_ConditionalVariable * i_pCond);
-
-
-
-/*---------------------------------------------------------------------------
- * Function: K_DestroyConditionalVariable
- *
- * Description:
- * This function destroys a conditional variable. Upon successful
- * completion, the condition variable is destroyed, and 0 is returned.
- * Otherwise, an error code is returned.
- * After deletion of the condition variable, the condition parameter
- * is not valid until it is initialized again by a call to the
- * K_InitConditionalVariable subroutine.
- *
- * Input
- * -----
- * i_pCond the pointer to the conditional variable which is to be
- * destroyed
- *
- * Output
- * ------
- * (none)
- *
- * Return value Error Code
- *
- *--------------------------------------------------------------------------*/
-
-int K_DestroyConditionalVariable(K_ConditionalVariable * i_pCond);
-
-
-/*---------------------------------------------------------------------------
- * Function: K_WaitConditionalVariable
- *
- * Description:
- * This function is used to block on a condition variable.
- * They are called with mutex locked by the calling thread or undefined
- * behaviour will result.
- *
- * Input
- * -----
- * i_pCond the pointer to the conditional variable
- * i_handle the companion mutex handle
- *
- * Output
- * ------
- * (none)
- *
- * Return value Error Code
- *
- *--------------------------------------------------------------------------*/
-int K_WaitConditionalVariable(K_ConditionalVariable * i_pCond,
- K_MUTEX_HANDLE i_handle);
-
-
-/*---------------------------------------------------------------------------
- * Function: K_SignalConditionalVariable
- *
- * Description:
- * This function is used to restart one of the threads that are waiting on
- * the condition variable. If no threads are waiting on it, nothing happens.
- * If several threads are waiting on it, exactly one is restarted.
- *
- * Input
- * -----
- * i_pCond the pointer to the conditional variable
- *
- * Output
- * ------
- * (none)
- *
- * Return value Error Code
- *
- *--------------------------------------------------------------------------*/
-int K_SignalConditionalVariable(K_ConditionalVariable * i_pCond);
-
-
-/*---------------------------------------------------------------------------
- * Function: K_BroadcastConditionalVariable
- *
- * Description:
- * This function is used to restart all threads that are waiting on
- * the condition variable.
- *
- * Input
- * -----
- * i_pCond the pointer to the conditional variable
- *
- * Output
- * ------
- * (none)
- *
- * Return value Error Code
- *
- *--------------------------------------------------------------------------*/
-int K_BroadcastConditionalVariable(K_ConditionalVariable * i_pCond);
-
-
-/*---------------------------------------------------------------------------
- * Function: K_Sleep
- *
- * Description:
- * Sleep for a given period in the given milliseconds.
- *
- * Input
- * -----
- * i_ms milliseconds
- *
- * Output
- * ------
- * (none)
- *
- * Return value (none)
- *
- *--------------------------------------------------------------------------*/
-void K_Sleep(int i_ms);
-
-
-/*---------------------------------------------------------------------------
- * Function: K_GetTickCount
- *
- * Description:
- * The K_GetTickCount function retrieves the number of
- * milliseconds that have elapsed since the system was started.
- *
- * Input
- * -----
- * (none)
- *
- * Output
- * ------
- * (none)
- *
- * Return value the elasped milliseconds since the system was started
- *
- *--------------------------------------------------------------------------*/
-unsigned int K_GetTickCount();
-
-
-/*---------------------------------------------------------------------------
- * Function: K_AdjustClock
- *
- * Description:
- * The K_AdjustClock function immediately adjusts the system clock by
- * the given number of seconds. A positive number adjusts the system
- * clock forward; a negative number adjusts the system clock backward.
- *
- * Input
- * -----
- * i_iAdjustmentInSeconds Number of seconds by which to adjust the
- * system clock
- * Output
- * ------
- * (none)
- *
- * Return value 1 if successful, 0 on error
- *
- *--------------------------------------------------------------------------*/
-int K_AdjustClock( long i_iAdjustmentInSeconds );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_IsLittleEndian
- *
- * Description:
- * Checks to see whether this platform uses little endian integer
- * representation.
- *
- * Input
- * -----
- * (none)
- *
- * Output
- * ------
- * (none)
- *
- * Return value 1 for little endian
- *
- *--------------------------------------------------------------------------*/
-int K_IsLittleEndian();
-
-
-/*---------------------------------------------------------------------------
- * Function: K_FileLength32
- *
- * Description:
- * Gets the size in bytes of the file associated with the given FILE pointer.
- *
- * Input
- * -----
- * i_fpFile File handle
- *
- * Output
- * ------
- * (none)
- *
- * Return value File size in bytes, or -1L on error
- *
- *--------------------------------------------------------------------------*/
-long K_FileLength32( FILE* i_fpFile );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_StringCompareNoCase
- *
- * Description:
- * Compares the two given strings insensitive to case.
- *
- * Input
- * -----
- * i_sString1 First string
- * i_sString2 Second string
- *
- * Output
- * ------
- * (none)
- *
- * Return value 0 if identical, -1 if first string is less than second
- * string, or 1 if first string is greater than second
- *
- *--------------------------------------------------------------------------*/
-int K_StringCompareNoCase( const char* i_sString1, const char* i_sString2 );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_StringCompareNoCaseWide
- *
- * Description:
- * Compares the two given wide strings insensitive to case.
- *
- * Input
- * -----
- * i_wsString1 First wide string
- * i_wsString2 Second wide string
- *
- * Output
- * ------
- * (none)
- *
- * Return value 0 if identical, -1 if first string is less than second
- * string, or 1 if first string is greater than second
- *
- *--------------------------------------------------------------------------*/
-int K_StringCompareNoCaseWide( const wchar_t* i_wsString1, const wchar_t* i_wsString2 );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_snprintf
- *
- * Description:
- * See the snprintf(3C) man page.
- *
- *--------------------------------------------------------------------------*/
-#ifdef WIN32
-#define K_snprintf _snprintf
-#else
-#define K_snprintf snprintf
-#endif
-
-
-/*---------------------------------------------------------------------------
- * Function: K_snwprintf
- *
- * Description:
- * See the swprintf(3C) man page.
- *
- *--------------------------------------------------------------------------*/
-#ifdef WIN32
-#define K_snwprintf _snwprintf
-#else
-#define K_snwprintf swprintf
-#endif
-
-#ifdef WIN32
-#define K_fseek fseek
-#define K_ftell ftell
-#else
-#define K_fseek fseeko
-#define K_ftell ftello
-#endif
-
-
-/*---------------------------------------------------------------------------
- * Function: K_CreateDirectory
- *
- * Description:
- * Creates a directory with the given path name.
- *
- * Input
- * -----
- * i_sDirectoryName Directory name
- *
- * Output
- * ------
- * (none)
- *
- * Return value 0 on success, -1 on failure
- *
- *--------------------------------------------------------------------------*/
-int K_CreateDirectory( const char* i_sDirectoryName );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_DeleteFile
- *
- * Description:
- * Deletes the given file.
- *
- * Input
- * -----
- * i_sFilename Name of file to delete
- *
- * Output
- * ------
- * (none)
- *
- * Return value 0 on success, errno on failure
- *
- *--------------------------------------------------------------------------*/
-int K_DeleteFile( const char* i_sFilename );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_ReadFile
- *
- * Description:
- * Reads from the given file and passes the bytes read back to the output
- * parameter. The caller must deallocate o_ppFileData using free().
- *
- * Input
- * -----
- * i_sFilename Name of file from which to read
- *
- * Output
- * ------
- * o_ppFileData Pointer to bytes read
- *
- * Return value Number of bytes read on success, -1 on failure
- *
- *--------------------------------------------------------------------------*/
-int K_ReadFile( const char* i_sFilename, unsigned char** o_ppFileData );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_ReadFileString
- *
- * Description:
- * Reads from the given file and passes the bytes read back to the output
- * parameter, appending these bytes with a null terminator. There is no
- * guarantee that there are no non-text characters in the returned "string".
- * The caller must deallocate o_ppFileData using free().
- *
- * Input
- * -----
- * i_sFilename Name of file from which to read
- *
- * Output
- * ------
- * o_psFileDataString Pointer to bytes read
- *
- * Return value Number of bytes read (including null terminator) on
- * success (0 if file is empty), -1 on failure
- *
- *--------------------------------------------------------------------------*/
-int K_ReadFileString( const char* i_sFilename, char** o_psFileDataString );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_WriteFile
- *
- * Description:
- * Writes the given bytes to the given file.
- *
- * Input
- * -----
- * i_sFilename Name of file to which to write
- * i_pFileData Bytes to write
- * i_iFileDataSize Number of bytes to write
- *
- * Output
- * ------
- * (none)
- *
- * Return value 0 on success, errno or -1 (generic error) on failure
- *
- *--------------------------------------------------------------------------*/
-int K_WriteFile( const char* i_sFilename, const unsigned char* i_pFileData, int i_iFileDataSize );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_WriteFileString
- *
- * Description:
- * Writes the given null-terminated bytes to the given file. The null
- * terminator itself is not written to the file.
- *
- * Input
- * -----
- * i_sFilename Name of file to which to write
- * i_sFileData Bytes to write
- *
- * Output
- * ------
- * (none)
- *
- * Return value 0 on success, errno or -1 (generic error) on failure
- *
- *--------------------------------------------------------------------------*/
-int K_WriteFileString( const char* i_sFilename, const char* i_sFileData );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_FileExists
- *
- * Description:
- * Checks to see whehter the given file exists.
- *
- * Input
- * -----
- * i_sFilename Name of file to check
- *
- * Output
- * ------
- * (none)
- *
- * Return value 1 if file exists, 0 if not, -1 on failure
- *
- *--------------------------------------------------------------------------*/
-int K_FileExists( const char* i_sFilename );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_CopyFile
- *
- * Description:
- * Reads from the given source file and writes these bytes to the given
- * destination file.
- *
- * Input
- * -----
- * i_sSrcFilename Name of file from which to read
- * i_sDestFilename Name of file to which to write
- *
- * Output
- * ------
- * o_pbFileExists Non-zero if the destination file already exists
- *
- * Return value 0 on success, errno or -1 (generic error) on failure
- *
- *--------------------------------------------------------------------------*/
-int K_CopyFile(
- const char* i_sSrcFilename,
- const char* i_sDestFilename,
- int* o_pbFileExists );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_GetFilenamesInDirectoryCount
- *
- * Description:
- * Reads the given directory and returns the number of files that it contains.
- *
- * Input
- * -----
- * i_sDirectoryName Name of directory
- *
- * Output
- * ------
- * (none)
- *
- * Return value Number of files on success, -1 on failure
- *
- *--------------------------------------------------------------------------*/
-int K_GetFilenamesInDirectoryCount( const char* i_sDirectoryName );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_GetFilenamesInDirectory
- *
- * Description:
- * Reads the given directory and returns an array of names of files that it
- * contains. A null pointer appears at the last item in the array. The
- * caller must deallocate o_pasFilenames by using K_FreeFilenames or by
- * calling free() for each file name and then calling free() on the array
- * itself.
- *
- * Input
- * -----
- * i_sDirectoryName Name of directory
- *
- * Output
- * ------
- * o_pasFilenames Array of names of files found in this directory
- *
- * Return value Number of files on success, -1 on failure
- *
- *--------------------------------------------------------------------------*/
-int K_GetFilenamesInDirectory(
- const char* i_sDirectoryName,
- char*** o_pasFilenames );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_FreeFilenames
- *
- * Description:
- * Deallocates the memory allocated in a successful call to
- * K_GetFilenamesInDirectory.
- *
- * Input
- * -----
- * i_asFilenames Array of names of files
- *
- * Output
- * ------
- * (none)
- *
- * Return value (none)
- *
- *--------------------------------------------------------------------------*/
-void K_FreeFilenames( char** i_asFilenames );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_AdjustLocalClock
- *
- * Description:
- * The K_AdjustLocalClock function gradually adjusts the system clock by
- * the given number of seconds. A positive number adjusts the system
- * clock forward; a negative number adjusts the system clock backward.
- *
- * Input
- * -----
- * i_iAdjustmentInSeconds Number of seconds by which to adjust the
- * system clock
- * Output
- * ------
- * (none)
- *
- * Return value 1 if successful, 0 on error
- *
- *--------------------------------------------------------------------------*/
-int K_AdjustLocalClock( int i_iNumberOfSeconds );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_SetRootPassword
- *
- * Description:
- * The K_SetRootPassword function sets the password for the root user via
- * Pluggable Authentication Module (PAM). This function is interactive.
- *
- * Input
- * -----
- * i_sPassword Password to set
- *
- * Output
- * ------
- * (none)
- *
- * Return value 0 if successful, -1 on error
- *
- *--------------------------------------------------------------------------*/
-int K_SetRootPassword( const char* i_sPassword );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_Alarm
- *
- * Description:
- * Calls alarm(2) on Unix in order to cause the operating system to generate
- * a SIGALRM signal for this process after the given number of real-time
- * seconds. Does nothing on Windows.
- *
- * Input
- * -----
- * i_iSeconds Number of seconds after which to generate a SIGALRM
- * signal
- *
- * Output
- * ------
- * (none)
- *
- * Return value If a previous alarm request is pending, then it returns
- * the number of seconds until this previous request would
- * have generated a SIGALRM signal. Otherwise, returns 0.
- *
- *--------------------------------------------------------------------------*/
-unsigned int K_Alarm( unsigned int i_iSeconds );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_GetExtendedVersionFromBase
- *
- * Description:
- * This KMS-specific function prepends the timestamp value to the specified
- * base replication schema version and returns this value as an extended
- * replication schema version.
- *
- * Input
- * -----
- * i_iBaseSchemaVersion Base replication schema version
- *
- * Output
- * ------
- * (none)
- *
- * Return value Extended replication schema version
- *
- *--------------------------------------------------------------------------*/
-unsigned int K_GetExtendedVersionFromBase( unsigned int i_iBaseSchemaVersion );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_ParseTimestampFromExtendedVersion
- *
- * Description:
- * This KMS-specific function parses the timestamp value from the given
- * extended replication schema version and returns this timestamp value.
- *
- * Input
- * -----
- * i_iExtendedSchemaVersion Extended replication schema version
- *
- * Output
- * ------
- * (none)
- *
- * Return value Timestamp value
- *
- *--------------------------------------------------------------------------*/
-unsigned int K_ParseTimestampFromExtendedVersion(
- unsigned int i_iExtendedSchemaVersion );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_ParseBaseFromExtendedVersion
- *
- * Description:
- * This KMS-specific function parses the base replication schema value from
- * the given extended replication schema version and returns this base value.
- *
- * Input
- * -----
- * i_iExtendedSchemaVersion Extended replication schema version
- *
- * Output
- * ------
- * (none)
- *
- * Return value Base replication schema value
- *
- *--------------------------------------------------------------------------*/
-
-unsigned int K_ParseBaseFromExtendedVersion(
- unsigned int i_iExtendedSchemaVersion );
-
-
-/*---------------------------------------------------------------------------
- * Function: K_System
- *
- * Description:
- * This function is a thread-safe replacement for the unsafe system(3C) call.
- * See the popen(3C) man page for more information.
- *
- * Input
- * -----
- * i_sCmd Command to execute
- *
- * Output
- * ------
- * (none)
- *
- * Return value Termination status of the command language interpreter
- * if successful, -1 on failure
- *
- *--------------------------------------------------------------------------*/
-
-int K_System( const char *i_sCmd );
-
-#define K_system K_System
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/usr/src/lib/libkmsagent/common/ieee80211_crypto.c b/usr/src/lib/libkmsagent/common/ieee80211_crypto.c
deleted file mode 100644
index 367e8ac932..0000000000
--- a/usr/src/lib/libkmsagent/common/ieee80211_crypto.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#if !defined(K_SOLARIS_PLATFORM) || defined(SOLARIS10)
-#include "rijndael.h"
-#else
-#include <stdlib.h>
-#include <aes_impl.h>
-#endif
-
-#ifdef METAWARE
-#include "sizet.h"
-typedef unsigned char uint8_t;
-typedef unsigned short uint16_t;
-typedef unsigned int uint32_t;
-typedef unsigned long long uint64_t;
-#include <string.h>
-#else
-#ifndef WIN32
-#include <strings.h>
-#endif
-#endif
-
-#include "KMSAgentAESKeyWrap.h"
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-#ifdef WIN32
-#define ovbcopy(x, y, z) memmove(y, x, z);
-#else
-#define ovbcopy(x, y, z) bcopy(x, y, z);
-#endif
-
-#ifndef K_SOLARIS_PLATFORM
-/* similar to iovec except that it accepts const pointers */
-struct vector {
- const void *base;
- size_t len;
-};
-
-#ifdef METAWARE
-#define bcopy(s1, s2, n) memcpy(s2, s1, n)
-#endif
-
-/*
- * AES Key Wrap (see RFC 3394).
- */
-#endif /* K_SOLARIS_PLATFORM */
-
-static const uint8_t aes_key_wrap_iv[8] =
- { 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6 };
-
-void aes_key_wrap (const uint8_t *kek,
- size_t kek_len,
- const uint8_t *pt,
- size_t len,
- uint8_t *ct)
-{
-#if !defined(K_SOLARIS_PLATFORM) || defined(SOLARIS10)
- rijndael_ctx ctx;
-#else
- void *ks;
- size_t ks_size;
-#endif
- uint8_t *a, *r, ar[16], t, b[16];
- size_t i;
- int j;
-
- /*
- * Only allow lengths for 't' values that fit within a byte. This
- * covers all reasonable uses of AES Key Wrap
- */
- if (len > (255 / 6)) {
- return;
- }
-
- /* allow ciphertext and plaintext to overlap (ct == pt) */
- ovbcopy(pt, ct + 8, len * 8);
-
- a = ct;
- memcpy(a, aes_key_wrap_iv, 8); /* default IV */
-
-#if !defined(K_SOLARIS_PLATFORM) || defined(SOLARIS10)
- rijndael_set_key_enc_only(&ctx, (uint8_t *)kek, kek_len * 8);
-#else
- ks = aes_alloc_keysched(&ks_size, 0);
- if (ks == NULL)
- return;
- aes_init_keysched(kek, kek_len * 8, ks);
-#endif
-
- for (j = 0, t = 1; j < 6; j++) {
- r = ct + 8;
- for (i = 0; i < len; i++, t++) {
- memcpy(ar, a, 8);
- memcpy(ar + 8, r, 8);
-#if !defined(K_SOLARIS_PLATFORM) || defined(SOLARIS10)
- rijndael_encrypt(&ctx, ar, b);
-#else
- (void) aes_encrypt_block(ks, ar, b);
-#endif
-
- b[7] ^= t;
- memcpy(a, &b[0], 8);
- memcpy(r, &b[8], 8);
-
- r += 8;
- }
- }
-#if defined(K_SOLARIS_PLATFORM) && !defined(SOLARIS10)
- free(ks);
-#endif
-}
-
-int aes_key_unwrap (const uint8_t *kek,
- size_t kek_len,
- const uint8_t *ct,
- uint8_t *pt,
- size_t len)
-{
-#if !defined(K_SOLARIS_PLATFORM) || defined(SOLARIS10)
- rijndael_ctx ctx;
-#else
- void *ks;
- size_t ks_size;
-#endif
- uint8_t a[8], *r, b[16], t, ar[16];
- size_t i;
- int j;
-
- /*
- * Only allow lengths for 't' values that fit within a byte. This
- * covers all reasonable uses of AES Key Wrap
- */
- if (len > (255 / 6)) {
- return (-1);
- }
-
- memcpy(a, ct, 8);
- /* allow ciphertext and plaintext to overlap (ct == pt) */
- ovbcopy(ct + 8, pt, len * 8);
-
-#if !defined(K_SOLARIS_PLATFORM) || defined(SOLARIS10)
- rijndael_set_key(&ctx, (uint8_t *)kek, kek_len * 8);
-#else
- ks = aes_alloc_keysched(&ks_size, 0);
- if (ks == NULL)
- return (-1);
- aes_init_keysched(kek, kek_len * 8, ks);
-#endif
-
- for (j = 0, t = 6 * len; j < 6; j++) {
- r = pt + (len - 1) * 8;
- for (i = 0; i < len; i++, t--) {
- memcpy(&ar[0], a, 8);
- ar[7] ^= t;
- memcpy(&ar[8], r, 8);
-#if !defined(K_SOLARIS_PLATFORM) || defined(SOLARIS10)
- rijndael_decrypt(&ctx, ar, b);
-#else
- (void) aes_decrypt_block(ks, ar, b);
-#endif
- memcpy(a, b, 8);
- memcpy(r, b + 8, 8);
- r -= 8;
- }
- }
-#if defined(K_SOLARIS_PLATFORM) && !defined(SOLARIS10)
- free(ks);
-#endif
-
- return memcmp(a, aes_key_wrap_iv, 8) != 0;
-}
diff --git a/usr/src/lib/libkmsagent/common/k_setupssl.c b/usr/src/lib/libkmsagent/common/k_setupssl.c
deleted file mode 100644
index de24e499f0..0000000000
--- a/usr/src/lib/libkmsagent/common/k_setupssl.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/*---------------------------------------------------------------------------
- * Module: k_setupssl.c
- * Operating System: Linux, Win32
- *
- * Description:
- * This is the C Implementation file for setting up OpenSSL muti-threading environment
- *
- *-------------------------------------------------------------------------*/
-
-#ifndef WIN32
-#include <signal.h>
-#include <openssl/evp.h> /* UNIX */
-#include <openssl/engine.h>
-#endif
-
-#include "k_setupssl.h"
-#include "stdsoap2.h"
-#include <openssl/crypto.h>
-
-#if defined(WIN32)
-
-#include <windows.h>
-#define MUTEX_TYPE HANDLE
-#define MUTEX_SETUP(x) (x) = CreateMutex(NULL, FALSE, NULL)
-#define MUTEX_CLEANUP(x) CloseHandle(x)
-#define MUTEX_LOCK(x) WaitForSingleObject((x), INFINITE)
-#define MUTEX_UNLOCK(x) ReleaseMutex(x)
-#define THREAD_ID GetCurrentThreadId()
-
-#else
-
-#include <pthread.h>
-
-# define MUTEX_TYPE pthread_mutex_t
-# define MUTEX_SETUP(x) pthread_mutex_init(&(x), NULL)
-# define MUTEX_CLEANUP(x) pthread_mutex_destroy(&(x))
-# define MUTEX_LOCK(x) pthread_mutex_lock(&(x))
-# define MUTEX_UNLOCK(x) pthread_mutex_unlock(&(x))
-# define THREAD_ID pthread_self()
-
-#ifdef K_SOLARIS_PLATFORM
-MUTEX_TYPE init_ssl_mutex = PTHREAD_MUTEX_INITIALIZER;
-static int ssl_initialized = 0;
-#endif
-#endif
-
-struct CRYPTO_dynlock_value
-{ MUTEX_TYPE mutex;
-};
-
-void sigpipe_handle(int x)
-{
-}
-
-static MUTEX_TYPE *mutex_buf;
-
-static struct CRYPTO_dynlock_value *dyn_create_function(const char *file, int line)
-{ struct CRYPTO_dynlock_value *value;
- value = (struct CRYPTO_dynlock_value*)malloc(sizeof(struct CRYPTO_dynlock_value));
- if (value)
- MUTEX_SETUP(value->mutex);
- return value;
-}
-
-static void dyn_lock_function(int mode, struct CRYPTO_dynlock_value *l, const char *file, int line)
-{ if (mode & CRYPTO_LOCK)
- MUTEX_LOCK(l->mutex);
- else
- MUTEX_UNLOCK(l->mutex);
-}
-
-static void dyn_destroy_function(struct CRYPTO_dynlock_value *l, const char *file, int line)
-{ MUTEX_CLEANUP(l->mutex);
- free(l);
-}
-
-void kms_locking_function(int mode, int n, const char *file, int line)
-{ if (mode & CRYPTO_LOCK)
- MUTEX_LOCK(mutex_buf[n]);
- else
- MUTEX_UNLOCK(mutex_buf[n]);
-}
-
-
-unsigned long id_function(void )
-{ return (unsigned long)THREAD_ID;
-}
-
-#ifdef WIN32
-void OpenSSL_add_all_ciphers(void); // UNIX
-void OpenSSL_add_all_digests(void);
-#endif
-
-#ifdef K_HPUX_PLATFORM
-extern void allow_unaligned_data_access();
-#endif
-
-// gSOAP 2.7e:
-// The function ssl_init is defined in stdsoap2.cpp and is not exported by
-// default by gSOAP.
-// gSOAP 2.7.12:
-// The function soap_ssl_init is defined in stdsoap2.cpp. It replaces
-// ssl_init and is exported by gSOAP. gSOAP 2.7.13 also supports a new
-// SOAP_SSL_SKIP_HOST_CHECK flag.
-#ifndef SOAP_SSL_SKIP_HOST_CHECK
-extern int ssl_init();
-#endif
-
-int K_SetupSSL()
-{ int i;
-#ifdef K_SOLARIS_PLATFORM
- if (ssl_initialized)
- return 1;
- MUTEX_LOCK(init_ssl_mutex);
-#endif
- mutex_buf = (MUTEX_TYPE*)OPENSSL_malloc(CRYPTO_num_locks() * sizeof(MUTEX_TYPE));
- if (!mutex_buf) {
-#ifdef K_SOLARIS_PLATFORM
- MUTEX_UNLOCK(init_ssl_mutex);
-#endif
- return 0;
- }
- for (i = 0; i < CRYPTO_num_locks(); i++)
- MUTEX_SETUP(mutex_buf[i]);
- if (CRYPTO_get_id_callback() == NULL)
- CRYPTO_set_id_callback(id_function);
- if (CRYPTO_get_locking_callback() == NULL)
- CRYPTO_set_locking_callback(kms_locking_function);
-
- CRYPTO_set_dynlock_create_callback(dyn_create_function);
- CRYPTO_set_dynlock_lock_callback(dyn_lock_function);
- CRYPTO_set_dynlock_destroy_callback(dyn_destroy_function);
-
-#ifndef WIN32
- /* Need SIGPIPE handler on Unix/Linux systems to catch broken pipes: */
- signal(SIGPIPE, sigpipe_handle);
-#endif
-#ifdef K_HPUX_PLATFORM
-// signal(SIGBUS, sigpipe_handle);
- allow_unaligned_data_access();
-#endif
- OpenSSL_add_all_ciphers();
- OpenSSL_add_all_digests();
-
- // call gSOAP's OpenSSL initialization, which initializes SSL algorithms and seeds RAND
-
- // gSOAP 2.7e:
- // The function ssl_init is defined in stdsoap2.cpp and is not exported by
- // default by gSOAP.
- // gSOAP 2.7.13:
- // The function soap_ssl_init is defined in stdsoap2.cpp. It replaces
- // ssl_init and is exported by gSOAP. gSOAP 2.7.13 also supports a new
- // SOAP_SSL_SKIP_HOST_CHECK flag.
-#ifdef SOAP_SSL_SKIP_HOST_CHECK
- soap_ssl_init();
-#else
- ssl_init();
-#endif
-
-#ifdef K_SOLARIS_PLATFORM
- ssl_initialized = 1;
- MUTEX_UNLOCK(init_ssl_mutex);
-#endif
-
- return 1;
-}
-
-void K_CleanupSSL()
-{ int i;
- if (!mutex_buf)
- return;
-#ifdef K_SOLARIS_PLATFORM
- {
- unsigned long (*id_func)();
-
- if ((id_func = CRYPTO_get_id_callback()) == id_function) {
- ENGINE_cleanup();
- /* EVP_cleanup(); */
- ERR_free_strings();
- CRYPTO_set_id_callback(NULL);
- CRYPTO_set_locking_callback(NULL);
- }
- }
-#endif
- CRYPTO_set_dynlock_create_callback(NULL);
- CRYPTO_set_dynlock_lock_callback(NULL);
- CRYPTO_set_dynlock_destroy_callback(NULL);
- for (i = 0; i < CRYPTO_num_locks(); i++)
- MUTEX_CLEANUP(mutex_buf[i]);
- OPENSSL_free(mutex_buf);
- mutex_buf = NULL;
-}
-
-// TODO: what should 'struct soap' really be?
-int K_SetupCallbacks( struct soap *i_pSoap )
-{
- return 1;
-}
diff --git a/usr/src/lib/libkmsagent/common/k_setupssl.h b/usr/src/lib/libkmsagent/common/k_setupssl.h
deleted file mode 100644
index 31a956e1d7..0000000000
--- a/usr/src/lib/libkmsagent/common/k_setupssl.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/*---------------------------------------------------------------------------
- * Module: k_setupssl.h
- * Operating System: Linux, Win32
- *
- * Description:
- * This is the header file of setting up OpenSSL
- */
-
-#ifndef _K_SETUP_SSL_H
-#define _K_SETUP_SSL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef METAWARE
-#include "stdsoap2.h"
-/**
- * set up gSoap I/O callback functions for environments that need to customize
- * the I/O functions, e.g. embedded agents.
- */
-int K_SetupCallbacks( struct soap *i_pSoap );
-
-int K_ssl_client_context(struct soap *i_pSoap,
- int flags,
- const char *keyfile, /* NULL - SERVER */
- const char *password, /* NULL - SERVER */
- const char *cafile,
- const char *capath, /* ALWAYS NULL */
- const char *randfile);
-#endif
-
-
-int K_SetupSSL();
-void K_CleanupSSL();
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/usr/src/lib/libkmsagent/common/mapfile-vers b/usr/src/lib/libkmsagent/common/mapfile-vers
deleted file mode 100644
index a35bc1fe2b..0000000000
--- a/usr/src/lib/libkmsagent/common/mapfile-vers
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
-#
-
-$mapfile_version 2
-
-SYMBOL_VERSION SUNWprivate {
- global:
- KMSAgent_CreateDataUnit;
- KMSAgent_CreateKey;
- KMSAgent_DisassociateDataUnitKeys;
- KMSAgent_FinalizeLibrary;
- KMSAgent_FreeArrayOfKeys;
- KMSAgent_InitializeLibrary;
- KMSAgent_LoadProfile;
- KMSAgent_RetrieveDataUnit;
- KMSAgent_RetrieveDataUnitByExternalUniqueID;
- KMSAgent_RetrieveDataUnitKeys;
- KMSAgent_UnloadProfile;
- KMSAgent_ChangeLocalPWD;
- KMSAgent_GetProfileStatus;
- local:
- *;
-};