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: @"::"]) |
︙ | ︙ |