* Without the proper knowledge and inputs, crashes may result.
*
* @param provider name of the SOAPTransport class the caller believes is in use
- * @param option implementation-specific data containing the option to set
- * @param value implementation- and option-specific data to use
+ * @param option implementation-specific string containing the option to set
+ * @param value implementation- and option-specific string to use
* @return true iff the transport supports the option and value supplied
*/
- virtual bool setProviderOption(const char* provider, void* option, void* value) {
+ virtual bool setProviderOption(const char* provider, const char* option, const char* value) {
return false;
}
return true;
}
- bool setProviderOption(const char* provider, void* option, void* value) {
+ bool setProviderOption(const char* provider, const char* option, const char* value) {
if (!provider || strcmp(provider, "CURL"))
return false;
// For libcurl, the option is an enum and the value type depends on the option.
- CURLoption opt = static_cast<CURLoption>(reinterpret_cast<long>(option));
+ CURLoption opt = static_cast<CURLoption>(strtol(option, NULL, 10));
if (opt < CURLOPTTYPE_OBJECTPOINT)
- return (curl_easy_setopt(m_handle, opt, reinterpret_cast<long>(value))==CURLE_OK);
+ return (curl_easy_setopt(m_handle, opt, strtol(value, NULL, 10)) == CURLE_OK);
else if (opt < CURLOPTTYPE_OFF_T)
- return (curl_easy_setopt(m_handle, opt, value)==CURLE_OK);
- else if (sizeof(void*) == sizeof(curl_off_t))
- return (curl_easy_setopt(m_handle, opt, reinterpret_cast<curl_off_t>(value))==CURLE_OK);
+ return (curl_easy_setopt(m_handle, opt, value) == CURLE_OK);
+ else if (sizeof(curl_off_t) == sizeof(long))
+ return (curl_easy_setopt(m_handle, opt, strtol(value, NULL, 10)) == CURLE_OK);
return false;
}