Differences From Artifact [21df00d3c4]:
- File
src/socket.m
— part of check-in
[1833194867]
at
2021-01-14 02:29:31
on branch trunk
— Define _HPUX_ALT_XOPEN_SOCKET_API where necessary
There is a nasty bug in HP-UX: When using the proper socket APIs that
take a socklen_t (which is 64 bit in LP64 mode), it still calls into
methods that expect an int - so there is a type mismatch between the
headers and the compiled system libraries. This leads to all socklen_t
being interpreted as 0 (due to big endian). Defining
_HPUX_ALT_XOPEN_SOCKET_API makes it use the correct symbols in the
system libraries instead. (user: js, size: 21022) [annotate] [blame] [check-ins using] [more...]
To Artifact [d3698b60b2]:
- File src/socket.m — part of check-in [83dc0fe6e5] at 2021-04-17 01:24:38 on branch new-naming-convention — OF_NOT_FOUND -> OFNotFound (user: js, size: 21016) [annotate] [blame] [check-ins using]
| ︙ | ︙ | |||
383 384 385 386 387 388 389 |
for (OFString *component in components) {
unsigned long long number;
if (component.length == 0)
@throw [OFInvalidFormatException exception];
if ([component indexOfCharacterFromSet:
| | | 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 |
for (OFString *component in components) {
unsigned long long number;
if (component.length == 0)
@throw [OFInvalidFormatException exception];
if ([component indexOfCharacterFromSet:
whitespaceCharacterSet] != OFNotFound)
@throw [OFInvalidFormatException exception];
number = component.unsignedLongLongValue;
if (number > UINT8_MAX)
@throw [OFInvalidFormatException exception];
|
| ︙ | ︙ | |||
407 408 409 410 411 412 413 |
static uint16_t
parseIPv6Component(OFString *component)
{
unsigned long long number;
if ([component indexOfCharacterFromSet:
| | | 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 |
static uint16_t
parseIPv6Component(OFString *component)
{
unsigned long long number;
if ([component indexOfCharacterFromSet:
[OFCharacterSet whitespaceCharacterSet]] != OFNotFound)
@throw [OFInvalidFormatException exception];
number = [component unsignedLongLongValueWithBase: 16];
if (number > UINT16_MAX)
@throw [OFInvalidFormatException exception];
|
| ︙ | ︙ | |||
439 440 441 442 443 444 445 | #else addrIn6->sin6_family = AF_UNSPEC; #endif addrIn6->sin6_port = OF_BSWAP16_IF_LE(port); doubleColon = [IPv6 rangeOfString: @"::"].location; | | | 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 |
#else
addrIn6->sin6_family = AF_UNSPEC;
#endif
addrIn6->sin6_port = OF_BSWAP16_IF_LE(port);
doubleColon = [IPv6 rangeOfString: @"::"].location;
if (doubleColon != OFNotFound) {
OFString *left = [IPv6 substringToIndex: doubleColon];
OFString *right = [IPv6 substringFromIndex: doubleColon + 2];
OFArray OF_GENERIC(OFString *) *leftComponents;
OFArray OF_GENERIC(OFString *) *rightComponents;
size_t i;
if ([right hasPrefix: @":"] || [right containsString: @"::"])
|
| ︙ | ︙ |