Ich versuche, eine schnelle Brücke zu den SecureTransport C-Bibliotheken zu implementieren. Ich denke, ich kann alles als Verbindung weiterleiten, solange ich weiß, wie man in meiner sslReadCallback/sslWriteCallback-Implementierung etwas davon liest. Dies ist die Annahme, mit der ich arbeite. Dies scheint der Fall zu sein, wenn ich die Definition von SSLConnectionRef anzuzeigen:Wie konvertiere ich meine swift-Klasse in einen unsafePointer wie die __bridge in objective-c
/* Opaque reference to an I/O connection (socket, endpoint, etc.) */
public typealias SSLConnectionRef = UnsafePointer<Void>
Also brauche ich nur meine Klasse in UnsafePointer zu drehen. Leider mag der Compiler meine Versuche nicht. Kann mir jemand Tipps geben?
func startSSLProcess()
{
self.sslContext = SSLCreateContext(kCFAllocatorDefault, SSLProtocolSide.ClientSide, SSLConnectionType.StreamType)
if let sslContext = self.sslContext
{
SSLSetIOFuncs(sslContext, sslReadCallback, sslWriteCallback)
SSLSetConnection(sslContext, UnsafePointer(self)) // <-- error
SSLSetSessionOption(sslContext, SSLSessionOption.BreakOnClientAuth, true)
SSLHandshake(sslContext)
}
}
In GCDAsyncSocket, tut es dies:
status = SSLSetConnection(sslContext, (__bridge SSLConnectionRef)self);
und
SubZeroGCDAsyncSocket *asyncSocket = (__bridge SubZeroGCDAsyncSocket *)connection;
.. auszupacken. Was ist das schnelle Äquivalent davon?
Vielen Dank!