121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
_blocking = enable;
#else
OF_UNRECOGNIZED_SELECTOR
#endif
}
- (uint16_t)of_bindToAddress: (of_socket_address_t *)address
{
void *pool = objc_autoreleasePoolPush();
OFString *host;
uint16_t port;
#if SOCK_CLOEXEC == 0 && defined(HAVE_FCNTL) && defined(FD_CLOEXEC)
int flags;
#endif
if ((_socket = socket(address->sockaddr.sockaddr.sa_family,
SOCK_DGRAM | SOCK_CLOEXEC, 0)) == INVALID_SOCKET) {
host = of_socket_address_ip_string(address, &port);
@throw [OFBindFailedException
exceptionWithHost: host
port: port
socket: self
errNo: of_socket_errno()];
}
|
>
|
|
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
_blocking = enable;
#else
OF_UNRECOGNIZED_SELECTOR
#endif
}
- (uint16_t)of_bindToAddress: (of_socket_address_t *)address
extraType: (int)extraType
{
void *pool = objc_autoreleasePoolPush();
OFString *host;
uint16_t port;
#if SOCK_CLOEXEC == 0 && defined(HAVE_FCNTL) && defined(FD_CLOEXEC)
int flags;
#endif
if ((_socket = socket(address->sockaddr.sockaddr.sa_family,
SOCK_DGRAM | SOCK_CLOEXEC | extraType, 0)) == INVALID_SOCKET) {
host = of_socket_address_ip_string(address, &port);
@throw [OFBindFailedException
exceptionWithHost: host
port: port
socket: self
errNo: of_socket_errno()];
}
|
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
|
socketAddresses = [[OFThread DNSResolver]
resolveSocketAddressesForHost: host
addressFamily: OF_SOCKET_ADDRESS_FAMILY_ANY];
address = *(of_socket_address_t *)[socketAddresses itemAtIndex: 0];
of_socket_address_set_port(&address, port);
port = [self of_bindToAddress: &address];
objc_autoreleasePoolPop(pool);
return port;
}
- (size_t)receiveIntoBuffer: (void *)buffer
|
|
>
|
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
|
socketAddresses = [[OFThread DNSResolver]
resolveSocketAddressesForHost: host
addressFamily: OF_SOCKET_ADDRESS_FAMILY_ANY];
address = *(of_socket_address_t *)[socketAddresses itemAtIndex: 0];
of_socket_address_set_port(&address, port);
port = [self of_bindToAddress: &address
extraType: 0];
objc_autoreleasePoolPop(pool);
return port;
}
- (size_t)receiveIntoBuffer: (void *)buffer
|