Skip to content

Commit c328a85

Browse files
authored
Merge pull request #871 from Unity-Technologies/unity-master-unitytls-fix-callconvs
Fixed calling conventions for unitytls callbacks
2 parents 7a9ba85 + 2b3f8a5 commit c328a85

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

mcs/class/System/Mono.UnityTls/UnityTls.cs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ public enum unitytls_x509verify_result : UInt32
112112
UNITYTLS_X509VERIFY_FLAG_UNKNOWN_ERROR = 0x08000000,
113113
}
114114

115+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
115116
public delegate unitytls_x509verify_result unitytls_x509verify_callback(void* userData, unitytls_x509_ref cert, unitytls_x509verify_result result, unitytls_errorstate* errorState);
116117

117118
// ------------------------------------
@@ -144,10 +145,15 @@ public struct unitytls_tlsctx_protocolrange
144145
public unitytls_protocol max;
145146
};
146147

148+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
147149
public delegate size_t unitytls_tlsctx_write_callback(void* userData, UInt8* data, size_t bufferLen, unitytls_errorstate* errorState);
150+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
148151
public delegate size_t unitytls_tlsctx_read_callback(void* userData, UInt8* buffer, size_t bufferLen, unitytls_errorstate* errorState);
152+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
149153
public delegate void unitytls_tlsctx_trace_callback(void* userData, unitytls_tlsctx* ctx, Int8* traceMessage, size_t traceMessageLen);
154+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
150155
public delegate void unitytls_tlsctx_certificate_callback(void* userData, unitytls_tlsctx* ctx, Int8* cn, size_t cnLen, unitytls_x509name* caList, size_t caListLen, unitytls_x509list_ref* chain, unitytls_key_ref* key, unitytls_errorstate* errorState);
156+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
151157
public delegate unitytls_x509verify_result unitytls_tlsctx_x509verify_callback(void* userData, unitytls_x509list_ref chain, unitytls_errorstate* errorState);
152158

153159
[StructLayout (LayoutKind.Sequential)]
@@ -172,72 +178,103 @@ public class unitytls_interface_struct
172178
public readonly UInt64 UNITYTLS_INVALID_HANDLE;
173179
public readonly unitytls_tlsctx_protocolrange UNITYTLS_TLSCTX_PROTOCOLRANGE_DEFAULT;
174180

181+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
175182
public delegate unitytls_errorstate unitytls_errorstate_create_t();
176183
public unitytls_errorstate_create_t unitytls_errorstate_create;
184+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
177185
public delegate void unitytls_errorstate_raise_error_t(unitytls_errorstate* errorState, unitytls_error_code errorCode);
178186
public unitytls_errorstate_raise_error_t unitytls_errorstate_raise_error;
179187

188+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
180189
public delegate unitytls_key_ref unitytls_key_get_ref_t(unitytls_key* key, unitytls_errorstate* errorState);
181190
public unitytls_key_get_ref_t unitytls_key_get_ref;
191+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
182192
public delegate unitytls_key* unitytls_key_parse_der_t(UInt8* buffer, size_t bufferLen, Int8* password, size_t passwordLen, unitytls_errorstate* errorState);
183193
public unitytls_key_parse_der_t unitytls_key_parse_der;
194+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
184195
public delegate unitytls_key* unitytls_key_parse_pem_t(Int8* buffer, size_t bufferLen, Int8* password, size_t passwordLen, unitytls_errorstate* errorState);
185196
public unitytls_key_parse_pem_t unitytls_key_parse_pem;
197+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
186198
public delegate void unitytls_key_free_t(unitytls_key* key);
187199
public unitytls_key_free_t unitytls_key_free;
188200

201+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
189202
public delegate size_t unitytls_x509_export_der_t(unitytls_x509_ref cert, UInt8* buffer, size_t bufferLen, unitytls_errorstate* errorState);
190203
public unitytls_x509_export_der_t unitytls_x509_export_der;
191204

205+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
192206
public delegate unitytls_x509list_ref unitytls_x509list_get_ref_t(unitytls_x509list* list, unitytls_errorstate* errorState);
193207
public unitytls_x509list_get_ref_t unitytls_x509list_get_ref;
208+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
194209
public delegate unitytls_x509_ref unitytls_x509list_get_x509_t(unitytls_x509list_ref list, size_t index, unitytls_errorstate* errorState);
195210
public unitytls_x509list_get_x509_t unitytls_x509list_get_x509;
211+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
196212
public delegate unitytls_x509list* unitytls_x509list_create_t(unitytls_errorstate* errorState);
197213
public unitytls_x509list_create_t unitytls_x509list_create;
214+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
198215
public delegate void unitytls_x509list_append_t(unitytls_x509list* list, unitytls_x509_ref cert, unitytls_errorstate* errorState);
199216
public unitytls_x509list_append_t unitytls_x509list_append;
217+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
200218
public delegate void unitytls_x509list_append_der_t(unitytls_x509list* list, UInt8* buffer, size_t bufferLen, unitytls_errorstate* errorState);
201219
public unitytls_x509list_append_der_t unitytls_x509list_append_der;
220+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
202221
public delegate void unitytls_x509list_append_pem_t(unitytls_x509list* list, Int8* buffer, size_t bufferLen, unitytls_errorstate* errorState);
203222
public unitytls_x509list_append_der_t unitytls_x509list_append_pem;
223+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
204224
public delegate void unitytls_x509list_free_t(unitytls_x509list* list);
205225
public unitytls_x509list_free_t unitytls_x509list_free;
206226

227+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
207228
public delegate unitytls_x509verify_result unitytls_x509verify_default_ca_t(unitytls_x509list_ref chain, Int8* cn, size_t cnLen, unitytls_x509verify_callback cb, void* userData, unitytls_errorstate* errorState);
208229
public unitytls_x509verify_default_ca_t unitytls_x509verify_default_ca;
230+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
209231
public delegate unitytls_x509verify_result unitytls_x509verify_explicit_ca_t(unitytls_x509list_ref chain, unitytls_x509list_ref trustCA, Int8* cn, size_t cnLen, unitytls_x509verify_callback cb, void* userData, unitytls_errorstate* errorState);
210232
public unitytls_x509verify_explicit_ca_t unitytls_x509verify_explicit_ca;
211233

234+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
212235
public delegate unitytls_tlsctx* unitytls_tlsctx_create_server_t(unitytls_tlsctx_protocolrange supportedProtocols, unitytls_tlsctx_callbacks callbacks, unitytls_x509list_ref certChain, unitytls_key_ref leafCertificateKey, unitytls_errorstate* errorState);
213236
public unitytls_tlsctx_create_server_t unitytls_tlsctx_create_server;
237+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
214238
public delegate unitytls_tlsctx* unitytls_tlsctx_create_client_t(unitytls_tlsctx_protocolrange supportedProtocols, unitytls_tlsctx_callbacks callbacks, Int8* cn, size_t cnLen, unitytls_errorstate* errorState);
215239
public unitytls_tlsctx_create_client_t unitytls_tlsctx_create_client;
240+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
216241
public delegate void unitytls_tlsctx_server_require_client_authentication_t(unitytls_tlsctx* ctx, unitytls_x509list_ref clientAuthCAList, unitytls_errorstate* errorState);
217242
public unitytls_tlsctx_server_require_client_authentication_t unitytls_tlsctx_server_require_client_authentication;
243+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
218244
public delegate void unitytls_tlsctx_set_certificate_callback_t(unitytls_tlsctx* ctx, unitytls_tlsctx_certificate_callback cb, void* userData, unitytls_errorstate* errorState);
219245
public unitytls_tlsctx_set_certificate_callback_t unitytls_tlsctx_set_certificate_callback;
246+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
220247
public delegate void unitytls_tlsctx_set_trace_callback_t(unitytls_tlsctx* ctx, unitytls_tlsctx_trace_callback cb, void* userData, unitytls_errorstate* errorState);
221248
public unitytls_tlsctx_set_trace_callback_t unitytls_tlsctx_set_trace_callback;
249+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
222250
public delegate void unitytls_tlsctx_set_x509verify_callback_t(unitytls_tlsctx* ctx, unitytls_tlsctx_x509verify_callback cb, void* userData, unitytls_errorstate* errorState);
223251
public unitytls_tlsctx_set_x509verify_callback_t unitytls_tlsctx_set_x509verify_callback;
252+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
224253
public delegate void unitytls_tlsctx_set_supported_ciphersuites_t(unitytls_tlsctx* ctx, unitytls_ciphersuite* supportedCiphersuites, size_t supportedCiphersuitesLen, unitytls_errorstate* errorState);
225254
public unitytls_tlsctx_set_supported_ciphersuites_t unitytls_tlsctx_set_supported_ciphersuites;
255+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
226256
public delegate unitytls_ciphersuite unitytls_tlsctx_get_ciphersuite_t(unitytls_tlsctx* ctx, unitytls_errorstate* errorState);
227257
public unitytls_tlsctx_get_ciphersuite_t unitytls_tlsctx_get_ciphersuite;
258+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
228259
public delegate unitytls_protocol unitytls_tlsctx_get_protocol_t(unitytls_tlsctx* ctx, unitytls_errorstate* errorState);
229260
public unitytls_tlsctx_get_protocol_t unitytls_tlsctx_get_protocol;
261+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
230262
public delegate unitytls_x509verify_result unitytls_tlsctx_process_handshake_t(unitytls_tlsctx* ctx, unitytls_errorstate* errorState);
231263
public unitytls_tlsctx_process_handshake_t unitytls_tlsctx_process_handshake;
264+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
232265
public delegate size_t unitytls_tlsctx_read_t(unitytls_tlsctx* ctx, UInt8* buffer, size_t bufferLen, unitytls_errorstate* errorState);
233266
public unitytls_tlsctx_read_t unitytls_tlsctx_read;
267+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
234268
public delegate size_t unitytls_tlsctx_write_t(unitytls_tlsctx* ctx, UInt8* data, size_t bufferLen, unitytls_errorstate* errorState);
235269
public unitytls_tlsctx_write_t unitytls_tlsctx_write;
270+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
236271
public delegate void unitytls_tlsctx_notify_close_t(unitytls_tlsctx* ctx, unitytls_errorstate* errorState);
237272
public unitytls_tlsctx_notify_close_t unitytls_tlsctx_notify_close;
273+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
238274
public delegate void unitytls_tlsctx_free_t(unitytls_tlsctx* ctx);
239275
public unitytls_tlsctx_free_t unitytls_tlsctx_free;
240276

277+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
241278
public delegate void unitytls_random_generate_bytes_t(UInt8 * buffer, size_t bufferLen, unitytls_errorstate * errorState);
242279
public unitytls_random_generate_bytes_t unitytls_random_generate_bytes;
243280
}

0 commit comments

Comments
 (0)