Libcurl: Difference between revisions
Line 14: | Line 14: | ||
|- | |- | ||
| [[#URL]] || STRINGPOINT || 2 || 10002 || | | [[#URL]] || STRINGPOINT || 2 || 10002 || | ||
|- | |||
| [[#SSL_CTX_FUNCTION]] || FUNCTIONPOINT || 108 || 20108 || | |||
|- | |- | ||
| [[#PROXYAUTOCONFIG]] || LONG || 500 || 500 || 1 | | [[#PROXYAUTOCONFIG]] || LONG || 500 || 500 || 1 | ||
Line 19: | Line 21: | ||
| [[#UNK501]] || LONG || 501 || 501 || 0 | | [[#UNK501]] || LONG || 501 || 501 || 0 | ||
|- | |- | ||
| || OBJECTPOINT | | [[#UNK502]] || OBJECTPOINT || 502 || 10502 || | ||
|- | |- | ||
| || FUNCTIONPOINT || 503 || 20503 || | | [[#UNK503]] || FUNCTIONPOINT || 503 || 20503 || | ||
|- | |- | ||
| || FUNCTIONPOINT || 504 || 20504 || | | [[#UNK504]] || FUNCTIONPOINT || 504 || 20504 || | ||
|- | |- | ||
| || OBJECTPOINT | | [[#UNK505]] || OBJECTPOINT || 505 || 10505 || | ||
|- | |- | ||
| [[#UNK506]] || LONG || 506 || 506 || 0 | | [[#UNK506]] || LONG || 506 || 506 || 0 | ||
Line 42: | Line 44: | ||
Afterwards, ResolveEx is used with the first output string from the latter sscanf as the input. Then the final URL is constructed with the output from ResolveEx. | Afterwards, ResolveEx is used with the first output string from the latter sscanf as the input. Then the final URL is constructed with the output from ResolveEx. | ||
== SSL_CTX_FUNCTION == | |||
This funcptr is called with the same params as normal, with the context ptr being {sdknso container object for [[SSL_services#ISslContext|ISslContext]]}. | |||
This is only used if [[#UNK502]] is not set, in which case an error is thrown if this funcptr is not set. An error is also thrown afterwards if the context wasn't created. | |||
The user must create the [[SSL_services#ISslContext|ISslContext]] using this funcptr, with all required ISslContext initialization - no cmds are used by the caller with ISslContext besides [[SSL_services#CreateConnection|CreateConnection]]. | |||
== PROXYAUTOCONFIG == | == PROXYAUTOCONFIG == | ||
Line 54: | Line 63: | ||
This controls the value of the DataCheck [[SSL_services#VerifyOption|VerifyOption]] bit. | This controls the value of the DataCheck [[SSL_services#VerifyOption|VerifyOption]] bit. | ||
== UNK502 == | |||
If set, this is a ptr to a pre-initialized {sdknso container object for [[SSL_services#ISslContext|ISslContext]]}, which is used instead of creating a new one via [[#SSL_CTX_FUNCTION]]. | |||
== UNK503 == | |||
If set, this funcptr is called at the end of [[SSL_services#ISslConnection|ISslConnection]] setup, prior to using [[SSL_services#SetIoMode|SetIoMode]]. If this funcptr returns non-zero, the CURLcode is set to CURLE_ABORTED_BY_CALLBACK. | |||
This funcptr is called with the following params: (Curl_easy*, {sdknso container object for [[SSL_services#ISslConnection|ISslConnection]]}, [[#UNK505]]). | |||
This allows the user to optionally do additional custom [[SSL_services#ISslConnection|ISslConnection]] setup. | |||
== UNK504 == | |||
If set, this funcptr is called following [[SSL_services#DoHandshakeGetServerCert|DoHandshakeGetServerCert]] usage, if it didn't return error 0x1987B. If this funcptr returns non-zero, the CURLcode is set to CURLE_ABORTED_BY_CALLBACK. | |||
This is essentially a custom version of getting the CERTINFO. | |||
This funcptr is called with the following params: (Curl_easy*, {sdknso container object for [[SSL_services#ISslConnection|ISslConnection]]}, [[#UNK505]], {struct ptr}). | |||
Where the struct has the following format: | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset || Size || Description | |||
|- | |||
| 0x0 || 0x1 || bool CURLcode==0 | |||
|- | |||
| 0x1 || 0x7 || Padding | |||
|- | |||
| 0x8 || 0x8 || Output-size from [[SSL_services#DoHandshakeGetServerCert|DoHandshakeGetServerCert]]. | |||
|- | |||
| 0x10 || 0x8 || Total-certs from [[SSL_services#DoHandshakeGetServerCert|DoHandshakeGetServerCert]]. | |||
|} | |||
== UNK505 == | |||
This option value is used as a param for the [[#UNK503]]/[[#UNK504]] funcptrs. | |||
== UNK506 == | == UNK506 == |