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:
|
<
<
<
<
<
<
<
<
<
<
<
|
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:
|