ObjFW  Diff

Differences From Artifact [a3d986247b]:

To Artifact [cef61681e6]:


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

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