Overview
Comment: | Make SOCKS5 work with TLS sockets |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
eb2bfc674b9c9a9c62d5e06f83be1a25 |
User & Date: | js on 2021-11-07 20:02:32 |
Other Links: | manifest | tags |
Context
2021-11-13
| ||
13:04 | Completely rework the TLS/SSL API check-in: d30efa8bbf user: js tags: trunk | |
2021-11-07
| ||
20:02 | Make SOCKS5 work with TLS sockets check-in: eb2bfc674b user: js tags: trunk | |
19:44 | Let -[OFStream flushWriteBuffer] return a bool check-in: 7faf776e26 user: js tags: trunk | |
Changes
Modified src/OFTCPSocketSOCKS5Connector.h from [a3decd0834] to [cfa41043ad].
︙ | ︙ | |||
18 19 20 21 22 23 24 25 26 27 28 29 30 31 | OF_ASSUME_NONNULL_BEGIN @class OFString; @interface OFTCPSocketSOCKS5Connector: OFObject <OFTCPSocketDelegate> { OFTCPSocket *_socket; OFString *_host; uint16_t _port; id <OFTCPSocketDelegate> _Nullable _delegate; #ifdef OF_HAVE_BLOCKS OFTCPSocketAsyncConnectBlock _Nullable _block; #endif id _Nullable _exception; | > | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | OF_ASSUME_NONNULL_BEGIN @class OFString; @interface OFTCPSocketSOCKS5Connector: OFObject <OFTCPSocketDelegate> { OFTCPSocket *_socket; Class _socketClass; OFString *_host; uint16_t _port; id <OFTCPSocketDelegate> _Nullable _delegate; #ifdef OF_HAVE_BLOCKS OFTCPSocketAsyncConnectBlock _Nullable _block; #endif id _Nullable _exception; |
︙ | ︙ |
Modified src/OFTCPSocketSOCKS5Connector.m from [cef61681e6] to [a3d986247b].
︙ | ︙ | |||
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | _host = [host copy]; _port = port; _delegate = [delegate retain]; #ifdef OF_HAVE_BLOCKS _block = [block copy]; #endif _socket.delegate = self; } @catch (id e) { [self release]; @throw e; } return self; } - (void)dealloc { if (_socket.delegate == self) _socket.delegate = _delegate; [_socket release]; [_host release]; [_delegate release]; #ifdef OF_HAVE_BLOCKS [_block release]; #endif [_exception release]; [_request release]; [super dealloc]; } - (void)didConnect { _socket.delegate = _delegate; #ifdef OF_HAVE_BLOCKS if (_block != NULL) _block(_exception); else { #endif if ([_delegate respondsToSelector: | > > > > > > > > > > > | 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | _host = [host copy]; _port = port; _delegate = [delegate retain]; #ifdef OF_HAVE_BLOCKS _block = [block copy]; #endif /* * Temporarily swizzle it to a TCP socket, so that if it's a * TLS socket, we still get to talk to the SOCKS5 proxy * directly. */ _socketClass = object_getClass(_socket); object_setClass(_socket, [OFTCPSocket class]); _socket.delegate = self; } @catch (id e) { [self release]; @throw e; } return self; } - (void)dealloc { if (_socket.delegate == self) _socket.delegate = _delegate; object_setClass(_socket, _socketClass); [_socket release]; [_host release]; [_delegate release]; #ifdef OF_HAVE_BLOCKS [_block release]; #endif [_exception release]; [_request release]; [super dealloc]; } - (void)didConnect { _socket.delegate = _delegate; object_setClass(_socket, _socketClass); #ifdef OF_HAVE_BLOCKS if (_block != NULL) _block(_exception); else { #endif if ([_delegate respondsToSelector: |
︙ | ︙ |