Differences From Artifact [06ff6d8241]:
- File
src/OFUDPSocket.m
— part of check-in
[6b77a5dd8b]
at
2017-05-21 21:28:57
on branch trunk
— Prefix private methods with of_ instead of OF_
This matches Apple's style. (user: js, size: 14519) [annotate] [blame] [check-ins using]
To Artifact [83754f70d8]:
- File
src/OFUDPSocket.m
— part of check-in
[b4cd87cd81]
at
2017-05-21 23:57:34
on branch trunk
— Use closesocket() instead of close()
Previously, socket_helpers.h would just define close() to whatever is
needed to close a socket. However, this makes it possible to
accidentally call a socket-specific close on something that is not a
socket. Having to explicitly call closesocket() (and defining it to
close() on platforms where it's the same) prevents this. (user: js, size: 14549) [annotate] [blame] [check-ins using]
| ︙ | ︙ | |||
420 421 422 423 424 425 426 |
#if defined(OF_WII) || defined(OF_NINTENDO_3DS)
if (port != 0) {
#endif
if (bind(_socket, results[0]->address,
results[0]->addressLength) != 0) {
int errNo = of_socket_errno();
| | | 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 |
#if defined(OF_WII) || defined(OF_NINTENDO_3DS)
if (port != 0) {
#endif
if (bind(_socket, results[0]->address,
results[0]->addressLength) != 0) {
int errNo = of_socket_errno();
closesocket(_socket);
_socket = INVALID_SOCKET;
@throw [OFBindFailedException
exceptionWithHost: host
port: port
socket: self
errNo: errNo];
|
| ︙ | ︙ | |||
467 468 469 470 471 472 473 |
port = rnd;
break;
}
if (of_socket_errno() != EADDRINUSE) {
int errNo = of_socket_errno();
| | | 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 |
port = rnd;
break;
}
if (of_socket_errno() != EADDRINUSE) {
int errNo = of_socket_errno();
closesocket(_socket);
_socket = INVALID_SOCKET;
@throw [OFBindFailedException
exceptionWithHost: host
port: port
socket: self
errNo: errNo];
|
| ︙ | ︙ | |||
492 493 494 495 496 497 498 |
#if !defined(OF_WII) && !defined(OF_NINTENDO_3DS)
addrLen = (socklen_t)sizeof(addr.storage);
if (of_getsockname(_socket, (struct sockaddr *)&addr.storage,
&addrLen) != 0) {
int errNo = of_socket_errno();
| | | | 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 |
#if !defined(OF_WII) && !defined(OF_NINTENDO_3DS)
addrLen = (socklen_t)sizeof(addr.storage);
if (of_getsockname(_socket, (struct sockaddr *)&addr.storage,
&addrLen) != 0) {
int errNo = of_socket_errno();
closesocket(_socket);
_socket = INVALID_SOCKET;
@throw [OFBindFailedException exceptionWithHost: host
port: port
socket: self
errNo: errNo];
}
if (addr.storage.ss_family == AF_INET)
return OF_BSWAP16_IF_LE(addr.in.sin_port);
# ifdef HAVE_IPV6
if (addr.storage.ss_family == AF_INET6)
return OF_BSWAP16_IF_LE(addr.in6.sin6_port);
# endif
#endif
closesocket(_socket);
_socket = INVALID_SOCKET;
@throw [OFBindFailedException exceptionWithHost: host
port: port
socket: self
errNo: EAFNOSUPPORT];
}
|
| ︙ | ︙ | |||
646 647 648 649 650 651 652 |
}
- (void)close
{
if (_socket == INVALID_SOCKET)
@throw [OFNotOpenException exceptionWithObject: self];
| | | 646 647 648 649 650 651 652 653 654 655 656 |
}
- (void)close
{
if (_socket == INVALID_SOCKET)
@throw [OFNotOpenException exceptionWithObject: self];
closesocket(_socket);
_socket = INVALID_SOCKET;
}
@end
|